Перейти к содержанию

6.4.8 Современные TTS-системы

Материал из Охота на электроовец: Большая Книга Искусственного Интеллекта

Не заставил себя ждать и прогресс в области нейросетевых моделей, способных генерировать последовательности лингвистических признаков на базе текстов на естественном языке (или последовательностей символов фонетического алфавита). Задачу полноценного синтеза речи из текстового представления называют обычно задачей «текст-в-речь» (text-to-speech, TTS). Классический подход к этой задаче предполагает, что её редко решают при помощи одной, так называемой сквозной модели. Обычно текстовое представление сначала преобразуется в фонетическое, для чего используют модели «графемы-в-фонемы» (grapheme-to-phoneme, G2P). Далее, основываясь на фонетическом представлении, модель произношения (prosodic model) генерирует последовательность лингвистических признаков. Затем вокодер на основе этих последовательностей генерирует последовательности амплитуд звукового сигнала. Весной 2017 г. исследователи из компании Google создали модель под названием «Такотрон» (Tacotron, имя модели происходит от «тако» — блюда мексиканской кухни; в списке авторов, вместо традиционных сносок с указанием академических аффилиаций, при помощи сносок обозначены авторы, которые любят тако и которые предпочитают суши)[1], способную как выполнять роль модели произношения, так и брать на себя одновременно роль G2P-модели, то есть генерировать последовательность лингвистических признаков непосредственно из текста на естественном языке.

В основе «Такотрона» лежит seq2seq-архитектура, которая использует механизм эмбеддинга для символов входного алфавита. Одним из важных строительных блоков «Такотрона» является так называемый CBHG-модуль (Convolution Bank + Highway + bi-GRU, Свёрточный банк + хайвей + двунаправленный GRU) — сеть, разработанная в 2016 г. Джейсоном Ли и его коллегами для целей машинного перевода[2]. Свёрточный банк — механизм, позволяющий применять к последовательности одномерные свёртки с фильтрами разной длины. Хайвей — механизм, разработанный Рупешом Сриваставой, Клаусом Греффом и Юргеном Шмидхубером и предназначенный для решения проблемы исчезновения градиента при обучении очень глубоких сетей. В отличие от простых перепрыгивающих соединений хайвей основан на созданном по аналогии с LSTM механизме вентилей, определяющих, какая информация подвергается трансформации слоем, а какая «объезжает» его по хайвею[3].

Кроме того, «Такотрон» использует классический механизм внимания Багданау, а также свёрточные и полносвязные слои.

Для обучения модели авторы использовали датасет, составленный из примерно 25 часов записей женской речи на английском языке, произнесённой одним профессиональным диктором. Речь была снабжена синхронным текстом, при этом все числа в тексте были записаны словами. Скорее всего, это был тот же датасет, который использовался для обучения WaveNet (их основные параметры, приведённые в статьях по WaveNet и «Такотрону», совпадают). Авторы также ничего не говорят о том, каким образом речь нарезалась на фрагменты, но, скорее всего, она была разделена в датасете на отдельные фразы.

Интересно, что роль вокодера (а точнее — его декодирующей части) в «Такотроне» выполняет алгоритм Гриффина — Лима, то есть вовсе не нейросетевая модель.

Процесс обучения «Такотрона» устроен следующим образом. Звуковой сигнал для каждого из фрагментов обучающего корпуса трансформируется в спектрограмму при помощи быстрого преобразования Фурье, для этого звук разбивается на перекрывающиеся части: фреймы размером 50 мс с шагом по 12,5 мс. Разложение сигнала в пределах фрейма в ряд Фурье даёт нам один столбец спектрограммы. Также с целью снижения уровня шумов применяется механизм преэмфазиса [pre-emphasis] — усиления слабых высоких частот (с необходимостью обратного преобразования, деэмфазиса [de-emphasis], при использовании сети). Из линейной спектрограммы также изготавливается более «грубая» мел-спектрограмма (спектрограмма на основе мел-шкалы). Таким образом, в распоряжении модели для каждого фрагмента речи оказываются текст и две спектрограммы. В процессе обучения модель учится воссоздавать по тексту сначала мел-спектрограмму, а затем из неё — линейную (при помощи специальной свёрточной постсети [post-net]). Целевая функция представляет собой сумму «манхэттенских расстояний» между спектрограммами оригинального сигнала и спектрограммами, сгенерированными моделью по тексту.

Манхэттенское расстояние, или, как его ещё иногда называют, «расстояние L1» или «расстояние городских кварталов», — метрика, введённая математиком Германом Минковским. Манхэттенское расстояние между двумя точками равно сумме модулей разностей их координат. Соответственно, манхэттенское расстояние между двумя спектрограммами равно сумме абсолютных значений разностей их соответствующих точек.

При обучении модели используется ряд трюков, например так называемый прогрев [warmup]: постепенное увеличение скорости обучения [learning rate], а затем её постепенное снижение [learning rate decay]. Также применяется режим форсирования учителем [teacher-forced], когда некоторые фреймы в результирующей спектрограмме подменяются фреймами оригинальной спектрограммы, что позволяет уменьшить накопление ошибки для авторекуррентной сети.

Поскольку данная модель основана на связке «кодировщик — декодер», то в процессе обучения наблюдается интересное явление — выстраивание так называемых выравниваний [alignment] для фраз в обучающей выборке. Выравнивание — это график, на котором по оси y отмечается номер шага кодировщика, по оси x — номер шага декодера, а цвет показывает накапливаемые веса внимания. Чем больше значения последних, тем больше декодеру «следует обратить внимание» на соответствующую часть данных кодировщика при генерировании очередного фрейма спектрограммы. Вначале графики выглядят неинформативно, но по мере обучения они начинают всё больше напоминать прямые отрезки, хотя для этого модель должна преодолеть несколько тысяч или даже десятков тысяч шагов обучения.

Рис. 141. Пример графика выравнивания

На современных GPU типа GTX 1080 или GTX 2080 модели, подобные «Такотрону», обычно начинают говорить менее чем через сутки после начала обучения, при этом более-менее надёжные результаты можно получить при наличии в обучающей выборке 10–20 часов качественных и аккуратно размеченных аудиозаписей.

Авторы «Такотрона» смогли воплотить в жизнь принцип одновременного решения сетью основной и вторичной задачи (генерация моделью и линейной, и мел-спектрограммы), до этого без особого успеха опробованный эдинбургскими исследователями. Как уже упоминалось выше, для реконструкции аудиосигнала из линейной спектрограммы используется преобразование Гриффина — Лима, названное в честь авторов статьи[4], в которой этот метод был первоначально описан, — Дэниэла Гриффина и Чжэ Су Лима. Дело в том, что для того, чтобы преобразовать спектрограмму обратно в последовательность амплитуд, нужно каким-то образом восстановить информацию о фазе каждого из колебаний, что не является тривиальной задачей. Быстрое преобразование Фурье в нашем случае сокращает размерность данных и является преобразованием с потерями. Восстановление исходного сигнала с минимизацией потерь — задача сложная и вычислительно затратная. Метод Гриффина — Лима — сравнительно «дешёвая» альтернатива WaveNet (особенно при правильной реализации), однако речевой сигнал при прохождении через такое преобразование подвергается специфическим искажениям — в нём возникают слышимые артефакты. Это было одной из причин, по которой «Такотрон» хотя и позволил несколько улучшить качество параметрического синтеза, однако добиться высот, продемонстрированных вокодером WaveNet с механизмом обусловливания, с первого подхода ему не удалось (в статье указано на увеличение MOS до 3,82 ± 0,085 с 3,69 ± 0,109 у параметрической модели Хейги Дзэна, использованной в качестве эталона; обратите внимание на то, что нижняя граница доверительного интервала оценки «Такотрона» смыкается с верхней границей оценки для эталонной параметрической модели).

Результат оказался даже несколько хуже, чем у использованной авторами для сравнения конкатенативной модели (4,09 ± 0,119).

«Такотрон» не был первой моделью, основанной на подобных принципах. К моменту публикации препринта статьи его создателей, уже в числе материалов, заявленных для выступления на Международной конференции по обучению представлений (International Conference on Learning Representations, ICLR) в 2017 г., была статья[5] Хосе Сотело и его коллег (среди которых был, между прочим, и Йошуа Бенджио), посвящённая описанию модели под названием Char2Wav, основанной на классической seq2seq-парадигме. Однако в Char2Wav вокодер SampleRNN[6] обучался отдельно от основной модели, а классическая seq2seq-модель без модификаций, внесённых авторами «Такотрона», не позволила обеспечить столь же высокое качество синтеза.

В том же 2017 г., опередив примерно на месяц создателей «Такотрона», результаты своей работы над аналогичной моделью Deep Voice [Глубокий голос] опубликовали[7] исследователи из компании Baidu, в числе которых был уже известный нам Эндрю Ын. В качестве вокодера авторы Deep Voice использовали собственную модифицированную версию WaveNet, позволяющую при некоторых параметрах достичь синтеза в реальном времени (или даже быстрее). Однако авторы Deep Voice обучали различные компоненты своей комплексной модели (модель G2P, т. е. grapheme-to-phoneme, модель длительности фонем и модель величины F0, а также вокодер) по отдельности, что дало основание создателям «Такотрона» назвать свою модель первой сквозной нейросетевой системой синтеза.

Сквозной нейросетевой системой синтеза можно было бы считать модель, предложенную ещё в 2016 г. Венфу Ваном и его коллегами, однако для её обучения необходимо было сначала получить выравнивания фонем для обучающего корпуса, что достигалось при помощи скрытой марковской модели.

И всё-таки «Такотрон» трудно назвать полностью сквозной нейросетевой системой синтеза речи. От полностью сквозной системы можно было бы ожидать, что она будет выполнять преобразование текста в последовательность амплитуд звукового сигнала без использования прямых и обратных спектральных преобразований, работая не в частотно-временном, а во временном пространстве. Все промежуточные преобразования такая модель будет осуществлять при помощи единой нейросетевой архитектуры.

В качестве шагов в этом направлении можно рассматривать появление таких моделей, как «Такотрон-2» (2018)[8] (здесь место вокодера занял WaveNet, получающий на вход мел-спектрограмму речевого сигнала). Эта модель смогла существенно обойти в качестве синтеза не только свою предшественницу, но и конкатенативный синтез и WaveNet, получающий на вход лингвистические признаки речевого сигнала. Результаты экспериментов по оценке качества синтеза, опубликованные авторами «Такотрона-2», приведены в таблице ниже (для обучения всех моделей использовался тот же набор данных, что и в работе по первой версии «Такотрона»).

Система Оценка по метрике MOS
Эталонная параметрическая модель 3,492 ± 0,096
«Такотрон» (с преобразованием Гриффина — Лима) 4,001 ± 0,087
Конкатенативный синтез 4,166 ± 0,091
WaveNet (на лингвистических признаках) 4,341 ± 0,051
«Такотрон-2» 4,526 ± 0,066
Естественная речь 4,582 ± 0,053

Как видно из таблицы, синтезированная «Такотроном-2» речь по своему качеству уже вплотную приблизилась к естественной.

Параллельно с этим развивались и другие системы — авторы Deep Voice ещё в 2017 г. «прикрутили» WaveNet к оригинальной версии «Такотрона» и продемонстрировали существенный прирост качества синтеза. Также они выпустили новую версию[9] собственной модели, получившую название Deep Voice 2, и осуществили с ней эксперименты по обучению способности говорить сразу несколькими голосами [multi-speaker]. Дальнейшее развитие привело к созданию в последние годы новых моделей: VoiceLoop[10], Deep Voice 3, FastSpeech[11], Transformer TTS, различных модификаций «Такотрона-2» с современными нейросетевыми вокодерами. Они способны генерировать речь с качеством, практически неотличимым от естественной человеческой речи. При помощи таких моделей воссоздают голоса знаменитостей и артистов прошлого (ваш покорный слуга также является участником ряда подобных проектов — ещё в 2017 г. при помощи модели, основанной на «Такотрон» и «Такотрон-2», мы воссоздали голос Иннокентия Михайловича Смоктуновского), создают голоса виртуальных помощников и диалоговых систем, действующих в голосовых каналах.

  1. Wang Y., Skerry-Ryan RJ, Stanton D., Wu Y., Weiss R. J., Jaitly N., Yang Z., Xiao Y., Chen Z., Bengio S., Le Q., Agiomyrgiannakis Y., Clark R., Saurous R. A. (2017). Tacotron: Towards End-to-End Speech Synthesis // https://arxiv.org/abs/1703.10135
  2. Lee J., Cho K., Hofmann T. (2017). Fully Character-Level Neural Machine Translation without Explicit Segmentation // https://arxiv.org/abs/1610.03017
  3. Srivastava K. R., Greff K., Schmidhuber J. (2015). Training Very Deep Networks // https://arxiv.org/abs/1507.06228
  4. Griffin D. W., Lim J. S. (1984). Signal estimation from modified short-time Fourier transform / IEEE Transactions on Acoustics, Speech, and Signal Processing, Vol. 32, Iss. 2, pp. 236—243 // https://doi.org/10.1109/TASSP.1984.1164317
  5. Sotelo J., Mehri S., Kumar K., Santos J. F., Kastner K., Courville A., Bengio Y. (2017). Char2Wav: end-to-end speech synthesis / International Conference on Learning Representations (ICLR-2017) // https://mila.quebec/wp-content/uploads/2017/02/end-end-speech.pdf
  6. Mehri S., Kumar K., Gulrajani I., Kumar R., Jain S., Sotelo J., Courville A., Bengio Y. (2016). SampleRNN: An Unconditional End-to-End Neural Audio Generation Model // https://arxiv.org/abs/1612.07837
  7. Arik S. Ö., Chrzanowski M., Coates A., Diamos S., Gibiansky A., Kang Y., Li X., Miller J., Ng A., Raiman J., Sengupta S., Shoeybi M. (2017). Deep Voice: Real-time Neural Text-to-Speech // https://arxiv.org/abs/1702.07825
  8. Shen J., Pang R., Weiss R. J., Schuster M., Jaitly N., Yang Z., Chen Z., Zhang Y., Wang Y., Skerry-Ryan RJ, Saurous R. A., Agiomyrgiannakis Y., Wu Y. (2018). Natural TTS Synthesis by Conditioning WaveNet on Mel Spectrogram Predictions // https://arxiv.org/abs/1712.05884
  9. Arik S. Ö., Diamos G., Gibiansky A., Miller J., Peng K., Ping W., Raiman J., Zhou Y. (2017). Deep Voice 2: Multi-Speaker Neural Text-to-Speech // https://arxiv.org/abs/1705.08947
  10. Taigman Y., Wolf L., Polyak A., Nachmani E. (2017). VoiceLoop: Voice Fitting and Synthesis via a Phonological Loop // https://arxiv.org/abs/1707.06588
  11. Ren Y., Ruan Y., Tan X., Qin T., Zhao S., Zhao Z., Liu T.-Y. (2019). FastSpeech: Fast, Robust and Controllable Text to Speech / Advances in Neural Information Processing Systems 32 (NIPS 2019) // https://papers.nips.cc/paper/8580-fastspeech-fast-robust-and-controllable-text-to-speech
Loading comments...