Шрифт:
Интервал:
Закладка:
Для оценки возможностей WaveNet в качестве модели для синтеза речи авторы работы провели сравнительные тесты. Для сравнения они привлекли две другие модели синтеза (конкатенативную на основе скрытой марковской модели и параметрическую на основе LSTM) для двух языков (английского и китайского). Для обучения всех моделей были взяты одинаковые речевые корпусы (24,6 часа для английского языка и 34,8 часа для китайского). Кроме того, при сравнении были использованы образцы естественной речи, для кодирования которой применялось два различных способа (с глубиной кодирования 8 и 16 бит). Для оценки использовались как попарные сравнения, так и усреднённая субъективная оценка по пятибалльной шкале. Количество оценщиков, принявших участие в экспериментах, не было раскрыто, однако в статье приведены размеры доверительных интервалов. В таблице ниже представлены полученные в результате тестов усреднённые субъективные оценки[2387], [2388].
Как видно из этих результатов, использование WaveNet позволило преодолеть более половины дистанции, разделяющей натуральную и синтетическую речь.
Впрочем, описание WaveNet в статье DeepMind не было полноценным описанием системы синтеза речи. Во-первых, в работе не раскрывался способ получения лингвистических признаков, использованных для локального обусловливания синтезируемой речи. По всей видимости, авторы применяли для этой цели параметрический синтезатор речи на базе LSTM, в котором WaveNet выполнял роль вокодера. Во-вторых, использование WaveNet в качестве вокодера сталкивается с одной серьёзной проблемой: несмотря на все трюки, применённые создателями модели, её вычислительная сложность достаточно велика. Даже сейчас, спустя несколько лет после появления WaveNet, несмотря на весь прогресс в области аппаратного обеспечения, использовать модель для синтеза речи в реальном времени по-прежнему неудобно.
Однако появление WaveNet послужило отправной точкой для множества исследований в области нейросетевых вокодеров, что привело к созданию таких моделей, как Parallel WaveNet[2389], FFTNet[2390], WaveRNN[2391], WaveGlow[2392], LPCNet[2393] и так далее. По качеству синтеза эти модели обычно незначительно уступают WaveNet, но позволяют добиться результата в реальном времени, что даёт возможность использовать их в качестве компонентов современных систем синтеза речи[2394].
6.4.8 Современные TTS-системы
Не заставил себя ждать и прогресс в области нейросетевых моделей, способных генерировать последовательности лингвистических признаков на базе текстов на естественном языке (или последовательностей символов фонетического алфавита). Задачу полноценного синтеза речи из текстового представления называют обычно задачей «текст-в-речь» (text-to-speech, TTS). Классический подход к этой задаче предполагает, что её редко решают при помощи одной, так называемой сквозной модели. Обычно текстовое представление сначала преобразуется в фонетическое, для чего используют модели «графемы-в-фонемы» (grapheme-to-phoneme, G2P). Далее, основываясь на фонетическом представлении, модель произношения (prosodic model) генерирует последовательность лингвистических признаков. Затем вокодер на основе этих последовательностей генерирует последовательности амплитуд звукового сигнала. Весной 2017 г. исследователи из компании Google создали модель под названием «Такотрон» (Tacotron, имя модели происходит от «тако» — блюда мексиканской кухни; в списке авторов, вместо традиционных сносок с указанием академических аффилиаций, при помощи сносок обозначены авторы, которые любят тако и которые предпочитают суши)[2395], способную как выполнять роль модели произношения, так и брать на себя одновременно роль G2P-модели, то есть генерировать последовательность лингвистических признаков непосредственно из текста на естественном языке.
В основе «Такотрона» лежит seq2seq-архитектура, которая использует механизм эмбеддинга для символов входного алфавита. Одним из важных строительных блоков «Такотрона» является так называемый CBHG-модуль (Convolution Bank + Highway + bi-GRU, Свёрточный банк + хайвей + двунаправленный GRU) — сеть, разработанная в 2016 г. Джейсоном Ли и его коллегами для целей машинного перевода[2396]. Свёрточный банк — механизм, позволяющий применять к последовательности одномерные свёртки с фильтрами разной длины. Хайвей — механизм, разработанный Рупешом Сриваставой, Клаусом Греффом и Юргеном Шмидхубером и предназначенный для решения проблемы исчезновения градиента при обучении очень глубоких сетей. В отличие от простых перепрыгивающих соединений хайвей основан на созданном по аналогии с LSTM механизме вентилей, определяющих, какая информация подвергается трансформации слоем, а какая «объезжает» его по хайвею[2397].
Кроме того, «Такотрон» использует классический механизм внимания Багданау, а также свёрточные и полносвязные слои.
Для обучения модели авторы использовали датасет, составленный из примерно 25 часов записей женской речи на английском языке, произнесённой одним профессиональным диктором. Речь была снабжена синхронным текстом, при этом все числа в тексте были записаны словами. Скорее всего, это был тот же датасет, который использовался для обучения WaveNet (их основные параметры, приведённые в статьях по WaveNet и «Такотрону», совпадают). Авторы также ничего не говорят о том, каким образом речь нарезалась на фрагменты, но, скорее всего, она была разделена в датасете на отдельные фразы.
Интересно, что роль вокодера (а точнее — его декодирующей части) в «Такотроне» выполняет алгоритм Гриффина — Лима, то есть вовсе не нейросетевая модель.
Процесс обучения «Такотрона» устроен следующим образом. Звуковой сигнал для каждого из фрагментов обучающего корпуса трансформируется в спектрограмму при помощи быстрого преобразования Фурье, для этого звук разбивается на перекрывающиеся части: фреймы размером 50 мс с шагом по 12,5 мс. Разложение сигнала в пределах фрейма в ряд Фурье даёт нам один столбец спектрограммы. Также с целью снижения уровня шумов применяется механизм преэмфазиса [pre-emphasis] — усиления слабых высоких частот (с необходимостью обратного преобразования, деэмфазиса [de-emphasis], при использовании сети). Из линейной спектрограммы также изготавливается более «грубая» мел-спектрограмма (спектрограмма на основе мел-шкалы). Таким образом, в распоряжении модели для каждого фрагмента речи оказываются текст и две спектрограммы. В процессе обучения модель учится воссоздавать по тексту сначала мел-спектрограмму, а затем из неё — линейную (при помощи специальной свёрточной постсети [post-net]). Целевая функция представляет собой сумму «манхэттенских расстояний» между спектрограммами оригинального сигнала и спектрограммами, сгенерированными моделью по тексту.
Манхэттенское расстояние, или, как его ещё иногда называют, «расстояние L1» или «расстояние городских кварталов», — метрика, введённая математиком Германом Минковским. Манхэттенское расстояние между двумя точками равно сумме модулей разностей их координат. Соответственно, манхэттенское расстояние между двумя спектрограммами равно сумме абсолютных значений разностей их соответствующих точек.
При обучении модели используется ряд трюков, например так называемый прогрев [warmup]: постепенное увеличение скорости обучения [learning rate], а затем её постепенное снижение [learning rate decay]. Также применяется режим форсирования учителем [teacher-forced], когда некоторые фреймы в результирующей спектрограмме подменяются фреймами оригинальной спектрограммы, что позволяет уменьшить накопление ошибки для авторекуррентной сети.
Поскольку данная модель основана