Изменения

Перейти к: навигация, поиск

Синтез речи

680 байт добавлено, 13:31, 9 февраля 2021
Алгоритмы, основанные на нейронных сетях
Данный подход является самым популярным на сегодняшний момент, в том числе из-за того, что он позволяет использовать подходы, основанные на нейронных сетях. Современными продуктами, использующие основанный на глубоком обучении параметрический синтез являются Amazon Lex и Alexa <ref>[https://www.allthingsdistributed.com/2016/11/amazon-ai-and-alexa-for-all-aws-apps.html Bringing the Magic of Amazon AI and Alexa to Apps on AWS.] </ref>, Google Ассистент <ref name="cnet wavenet">Martin, Taylor (May 9, 2018).[https://www.cnet.com/how-to/how-to-get-all-google-assistants-new-voices-right-now/ "Try the all-new Google Assistant voices right now"]. CNET.</ref> и умные дисплеи Portal от Facebook <ref>[https://venturebeat.com/2020/05/15/facebooks-voice-synthesis-ai-generates-speech-in-500-milliseconds/ Facebook’s voice synthesis AI generates speech in 500 milliseconds.]</ref>.
== Алгоритмы, основанные на нейронных сетях ==
Рассмотрим две популярные сети для преобразования текста в спектрограмму (Tacotron) и для синтеза речи по спектрограмме (WaveNet).
Для синтеза речи по спектрограмме предложено множество моделей: авторегрессионныее (WaveNet, WaveRNN, LPCNet), неавторегресионные (WaveGlow, MelGAN, WaveGrad) и разнообразные (например, можно натренировать сети GAN для генерации лиц под задачу генерации спектрограммы).
=== Tacotron ===
[[Файл:Tacotron.PNG|thumb|300px| Рисунок 3 — строение модели Tacotron<ref name="tacotron">Yuxuan Wang, RJ Skerry-Ryan, Daisy Stanton, Yonghui Wu, Ron J. Weiss, Navdeep Jaitly, Zongheng Yang, Ying Xiao, Zhifeng Chen, Samy Bengio, Quoc Le, Yannis Agiomyrgiannakis, Rob Clark, & Rif A. Saurous. (2017). Tacotron: Towards End-to-End Speech Synthesis. [https://arxiv.org/abs/1703.10135/ arXiv:1703.10135]</ref>]]
[[Файл:Tacotron-cbhg.PNG|thumb|300px| Рисунок 4 —строение модуля CBHG модели Tacotron<ref name="tacotron">Yuxuan Wang, RJ Skerry-Ryan, Daisy Stanton, Yonghui Wu, Ron J. Weiss, Navdeep Jaitly, Zongheng Yang, Ying Xiao, Zhifeng Chen, Samy Bengio, Quoc Le, Yannis Agiomyrgiannakis, Rob Clark, & Rif A. Saurous. (2017). Tacotron: Towards End-to-End Speech Synthesis. [https://arxiv.org/abs/1703.10135/ arXiv:1703.10135]</ref>]]
Tacotron {{---}} модель<ref name="tacotron">Yuxuan Wang, RJ Skerry-Ryan, Daisy Stanton, Yonghui Wu, Ron J. Weiss, Navdeep Jaitly, Zongheng Yang, Ying Xiao, Zhifeng Chen, Samy Bengio, Quoc Le, Yannis Agiomyrgiannakis, Rob Clark, & Rif A. Saurous. (2017). Tacotron: Towards End-to-End Speech Synthesis. [https://arxiv.org/abs/1703.10135/ arXiv:1703.10135]</ref> параметрического синтеза речи, основанная на подходе [[Механизм внимания | seq2seq]], разработанная Google и опубликованная в 2017 году. Модель состоит из кодера, декодера с [[Механизм внимания | вниманием]] и нейронной сети для
пост-процессинга сигнала. Схема модели изображена на Рисунке 2.
 
Кодер и сеть пост-процессинга опираются на блок CBHG, схема которого изображена на Рисунке 3. Блок состоит из набора одномерных сверточных фильтров, за которыми следуют
шоссейные нейронные сети (англ. highway networks)<ref>Rupesh Kumar Srivastava, Klaus Greff, and J ̈urgen Schmidhuber. Highway networks. [https://arxiv.org/abs/1505.00387/ arXiv:1505.00387], 2015.</ref>, являющиеся модификацией [[Долгая краткосрочная память | LSTM сетей]], и двунаправленный [[Долгая краткосрочная память#Управляемые рекуррентные нейроны | управляемый рекуррентный блок]]. Входная последовательность сначала обрабатывается <math>K</math>
наборами сверточных фильтров с размерностью <math>1, 2, \dots, K</math>. Эти фильтры моделируют локальную и контекстно-зависимую информацию (по аналогии с моделированием униграмм,
биграмм, вплоть до <math>K</math>-грамм). Выход сверточного уровня далее обрабатывается шоссейной сетью для дальнейшего выделения параметров. В конце CBHG
используется управляемый рекуррентный блок, который для выделения параметров опирается на контекст перед рассматриваемым символом и после рассматриваемого символа.
 
Задача кодера заключается в извлечении последовательных параметров из текста. Его входом является последовательность символов, в которой каждый символ был закодирован one-hot
кодированием и объединен в единый непрерывный вектор. К данному входу применяется ряд нелинейных преобразований в виде сети с бутылочным горлышком (англ. bottleneck layer), что позволяет улучшить
обобщаемость сети и ускорить сходимость. Модуль CBHG преобразует выход нелинейных преобразований в итоговое представление текста, которая передается в декодер.
 
Декодер является рекуррентной нейронной сетью с вниманием, в которой запрос внимания генерируется каждый временной промежуток. Вектор контекста соединяется с выходом ячейки внимания
и подается на вход декодирующим рекуррентным нейронным сетям, которые являются управляемыми рекуррентными блоками. Выходом декодера является спектрограмма звуковой волны, которая
передается сети пост-обработки для генерации непосредственно звуковой волны.
 
В качестве сети пост-обработки используется модуль CBHG, описанный ранее. После этого спектрограмма звуковой волны передается на вход [[Синтез речи#Генерация звуковой волны | алгоритму Гриффина-Лима]], который генерирует итоговую звуковую волну.
 
Модель Tacotron была значительно улучшена в последующей модификации Tacotron 2 <ref>Jonathan Shen, Ruoming Pang, Ron J. Weiss, Mike Schuster, Navdeep Jaitly, Zongheng Yang, Zhifeng Chen, Yu Zhang, Yuxuan Wang, RJ Skerry-Ryan, Rif A. Saurous, Yannis Agiomyrgiannakis, & Yonghui Wu. (2018). Natural TTS Synthesis by Conditioning WaveNet on Mel Spectrogram Predictions. [https://arxiv.org/abs/1712.05884 arXiv:1712.05884].</ref>, которая переработала исходную архитектуру Tacotron и объединила её с вокодером на основе WaveNet. Данная модель способна синтезировать речь высокого качества, принимая на вход только текст, который необходимо озвучить<ref name="tacotron2">[https://ai.googleblog.com/2017/12/tacotron-2-generating-human-like-speech.html/ Tacotron 2: Generating Human-like Speech from Text]</ref>. Реализация данной модели доступна на [https://github.com/NVIDIA/tacotron2 Github].
 
=== WaveNet ===
WaveNet<ref name="wavenet">Aaron van den Oord, Sander Dieleman, Heiga Zen, Karen Simonyan, Oriol Vinyals, Alex Graves, Nal Kalchbrenner, Andrew Senior, & Koray Kavukcuoglu. (2016). WaveNet: A Generative Model for Raw Audio. [https://arxiv.org/abs/1609.03499/ arXiv:1609.03499]</ref> является [[Порождающие модели | порождающей моделью]], использующей параметрический подход к синтезу речи. Её задача {{---}} восстановить распределение вероятностей звукового сигнала
Самый известный пример применения WaveNet для синтеза речи является технология Google Ассистент, которая использует WaveNet для генерации голосов ассистентов на различных
языках. Модель позволила значительно сократить количество записей речи актеров озвучки, требуемых для создания голосовой модели<ref name="cnet wavenet">Martin, Taylor (May 9, 2018).[https://www.cnet.com/how-to/how-to-get-all-google-assistants-new-voices-right-now/ "Try the all-new Google Assistant voices right now"]. CNET.</ref>.
=== Tacotron ===
[[Файл:Tacotron.PNG|thumb|300px| Рисунок 3 — строение модели Tacotron<ref name="tacotron">Yuxuan Wang, RJ Skerry-Ryan, Daisy Stanton, Yonghui Wu, Ron J. Weiss, Navdeep Jaitly, Zongheng Yang, Ying Xiao, Zhifeng Chen, Samy Bengio, Quoc Le, Yannis Agiomyrgiannakis, Rob Clark, & Rif A. Saurous. (2017). Tacotron: Towards End-to-End Speech Synthesis. [https://arxiv.org/abs/1703.10135/ arXiv:1703.10135]</ref>]]
[[Файл:Tacotron-cbhg.PNG|thumb|300px| Рисунок 4 —строение модуля CBHG модели Tacotron<ref name="tacotron">Yuxuan Wang, RJ Skerry-Ryan, Daisy Stanton, Yonghui Wu, Ron J. Weiss, Navdeep Jaitly, Zongheng Yang, Ying Xiao, Zhifeng Chen, Samy Bengio, Quoc Le, Yannis Agiomyrgiannakis, Rob Clark, & Rif A. Saurous. (2017). Tacotron: Towards End-to-End Speech Synthesis. [https://arxiv.org/abs/1703.10135/ arXiv:1703.10135]</ref>]]
Tacotron {{---}} модель<ref name="tacotron">Yuxuan Wang, RJ Skerry-Ryan, Daisy Stanton, Yonghui Wu, Ron J. Weiss, Navdeep Jaitly, Zongheng Yang, Ying Xiao, Zhifeng Chen, Samy Bengio, Quoc Le, Yannis Agiomyrgiannakis, Rob Clark, & Rif A. Saurous. (2017). Tacotron: Towards End-to-End Speech Synthesis. [https://arxiv.org/abs/1703.10135/ arXiv:1703.10135]</ref> параметрического синтеза речи, основанная на подходе [[Механизм внимания | seq2seq]], разработанная Google и опубликованная в 2017 году. Модель состоит из кодера, декодера с [[Механизм внимания | вниманием]] и нейронной сети для
пост-процессинга сигнала. Схема модели изображена на Рисунке 2.
 
Кодер и сеть пост-процессинга опираются на блок CBHG, схема которого изображена на Рисунке 3. Блок состоит из набора одномерных сверточных фильтров, за которыми следуют
шоссейные нейронные сети (англ. highway networks)<ref>Rupesh Kumar Srivastava, Klaus Greff, and J ̈urgen Schmidhuber. Highway networks. [https://arxiv.org/abs/1505.00387/ arXiv:1505.00387], 2015.</ref>, являющиеся модификацией [[Долгая краткосрочная память | LSTM сетей]], и двунаправленный [[Долгая краткосрочная память#Управляемые рекуррентные нейроны | управляемый рекуррентный блок]]. Входная последовательность сначала обрабатывается <math>K</math>
наборами сверточных фильтров с размерностью <math>1, 2, \dots, K</math>. Эти фильтры моделируют локальную и контекстно-зависимую информацию (по аналогии с моделированием униграмм,
биграмм, вплоть до <math>K</math>-грамм). Выход сверточного уровня далее обрабатывается шоссейной сетью для дальнейшего выделения параметров. В конце CBHG
используется управляемый рекуррентный блок, который для выделения параметров опирается на контекст перед рассматриваемым символом и после рассматриваемого символа.
 
Задача кодера заключается в извлечении последовательных параметров из текста. Его входом является последовательность символов, в которой каждый символ был закодирован one-hot
кодированием и объединен в единый непрерывный вектор. К данному входу применяется ряд нелинейных преобразований в виде сети с бутылочным горлышком (англ. bottleneck layer), что позволяет улучшить
обобщаемость сети и ускорить сходимость. Модуль CBHG преобразует выход нелинейных преобразований в итоговое представление текста, которая передается в декодер.
 
Декодер является рекуррентной нейронной сетью с вниманием, в которой запрос внимания генерируется каждый временной промежуток. Вектор контекста соединяется с выходом ячейки внимания
и подается на вход декодирующим рекуррентным нейронным сетям, которые являются управляемыми рекуррентными блоками. Выходом декодера является спектрограмма звуковой волны, которая
передается сети пост-обработки для генерации непосредственно звуковой волны.
 
В качестве сети пост-обработки используется модуль CBHG, описанный ранее. После этого спектрограмма звуковой волны передается на вход [[Синтез речи#Генерация звуковой волны | алгоритму Гриффина-Лима]], который генерирует итоговую звуковую волну.
 
Модель Tacotron была значительно улучшена в последующей модификации Tacotron 2 <ref>Jonathan Shen, Ruoming Pang, Ron J. Weiss, Mike Schuster, Navdeep Jaitly, Zongheng Yang, Zhifeng Chen, Yu Zhang, Yuxuan Wang, RJ Skerry-Ryan, Rif A. Saurous, Yannis Agiomyrgiannakis, & Yonghui Wu. (2018). Natural TTS Synthesis by Conditioning WaveNet on Mel Spectrogram Predictions. [https://arxiv.org/abs/1712.05884 arXiv:1712.05884].</ref>, которая переработала исходную архитектуру Tacotron и объединила её с вокодером на основе WaveNet. Данная модель способна синтезировать речь высокого качества, принимая на вход только текст, который необходимо озвучить<ref name="tacotron2">[https://ai.googleblog.com/2017/12/tacotron-2-generating-human-like-speech.html/ Tacotron 2: Generating Human-like Speech from Text]</ref>. Реализация данной модели доступна на [https://github.com/NVIDIA/tacotron2 Github].
== Проблемы ==
174
правки

Навигация