Синтез речи — различия между версиями

Материал из Викиконспекты
Перейти к: навигация, поиск
(Добавлен раздел с проблемами)
(Добавлены ссылки на рисунки, английские варианты терминов)
Строка 1: Строка 1:
 
{{В разработке}}[[Категория:Машинное обучение]]
 
{{В разработке}}[[Категория:Машинное обучение]]
'''Синтез речи''' (англ. speech synthesis) - процесс генерации компьютером человеческой речи. Компьютерная система, способная к синтезу речи, называется речевым синтезатором.
+
'''Синтез речи''' (англ. speech synthesis) {{---}} процесс генерации компьютером человеческой речи. Компьютерная система, способная к синтезу речи, называется речевым синтезатором.
 
Система, генерирующая человеческую речь, основываясь на тексте, называется '''text-to-speech''' системой (сокр. TTS).
 
Система, генерирующая человеческую речь, основываясь на тексте, называется '''text-to-speech''' системой (сокр. TTS).
  
Процесс человеческой речи сначала транслирует некоторый текст или мысленный концепт в движение мышц, связанных с органами дыхания и речи. Затем, используя поток воздуха из легких,
+
В процессе человеческой речи сначала транслируется некоторый текст или мысленный концепт в движение мышц, связанных с органами дыхания и речи. Затем, используя поток воздуха из легких,
 
производится генерация акустического сигнала, который содержит как периодические компоненты (созданные с помощьью вибрации органов речи), так и апериодические
 
производится генерация акустического сигнала, который содержит как периодические компоненты (созданные с помощьью вибрации органов речи), так и апериодические
 
(созданные окружающей средой и фоновым шумом). Используя изменяющиеся во времени сокращения мышц, меняются частотные характеристики акустического сигнала.
 
(созданные окружающей средой и фоновым шумом). Используя изменяющиеся во времени сокращения мышц, меняются частотные характеристики акустического сигнала.
Задача систем генерации речи по тексту - симулировать данный процесс в каком-либо виде.
+
Задача систем генерации речи по тексту {{---}} симулировать данный процесс в каком-либо виде.
  
 
== Этапы синтеза речи ==
 
== Этапы синтеза речи ==
Системы синтеза речи по тексту, как правило, можно разделить на два этапа, за которые отвечают два отдельных компонента - обработка текста и синтез речи.
+
Работу систем синтеза речи по тексту, как правило, можно разделить на два этапа, за которые отвечают два отдельных компонента {{---}} обработка текста и синтез речи.
  
 
Первый этап обычно содержит несколько этапов [[Обработка естественного языка|обработки естественного языка]], такие, как разбиение  на предложения, разбиение на слова, нормализация текста,
 
Первый этап обычно содержит несколько этапов [[Обработка естественного языка|обработки естественного языка]], такие, как разбиение  на предложения, разбиение на слова, нормализация текста,
автоматическая морфологическая разметка, и конвертация графем в фонемы (англ. grapheme-to-phoneme conversion, G2P).
+
автоматическая морфологическая разметка и конвертация графем в фонемы (англ. grapheme-to-phoneme conversion, G2P).
 
Данный этап принимает в качестве входных параметров текст и возвращает последовательность фонем с различными выделенными лингвистическими особенностями.
 
Данный этап принимает в качестве входных параметров текст и возвращает последовательность фонем с различными выделенными лингвистическими особенностями.
  
 
Этап синтеза речи, в свою очередь, принимает на вход последовательность фонем и возвращает синтезированную звуковую волну речи.
 
Этап синтеза речи, в свою очередь, принимает на вход последовательность фонем и возвращает синтезированную звуковую волну речи.
 
Данный этап обычно включает в себя алгоритмы предсказания просодии и алгоритмы генерации звуковых волн речи, а так же может содержать
 
Данный этап обычно включает в себя алгоритмы предсказания просодии и алгоритмы генерации звуковых волн речи, а так же может содержать
вокодер (англ. voice encoder) - алгоритм или устройство,
+
вокодер (англ. voice encoder) {{---}} алгоритм или устройство,
 
способное выделить из звуковой волны определенные параметры и затем использовать её для генерации похожей волны.
 
способное выделить из звуковой волны определенные параметры и затем использовать её для генерации похожей волны.
  
Строка 25: Строка 25:
 
Идеальный синтезатор речи генерирует одновременно и натуральную, и разборчивую речь.
 
Идеальный синтезатор речи генерирует одновременно и натуральную, и разборчивую речь.
 
=== Конкатенативный синтез ===
 
=== Конкатенативный синтез ===
'''Конкатенативный синтез''' (англ. concatenative synthesis) основывается на конкатенации предварительно записанных примеров человеческой речи в единую звуковую последовательность. Данный подход генерирует наиболее естественную речь, но генерируемая речь часто содержит значительные отличия и ошибки по сравнению с человеческой речью.
+
'''Конкатенативный синтез''' (англ. concatenative synthesis) основывается на конкатенации предварительно записанных примеров человеческой речи в единую звуковую последовательность. Данный подход синтезирует наиболее естественную речь, но генерируемая речь часто содержит значительные отличия и ошибки по сравнению с человеческой речью.
  
'''Синтез с выбором''' (англ. unit selection synthesis) является самым используемым подходом конкатенативного синтеза и использует большую базу данных записанной речи. При создании базы данных, записанные фразы могут делиться на различные звуковые единицы, такие, как фоны, дифоны, полуфоны, слоги, морфемы, целые фразы или предложения. При запуске, алгоритм генерирует выходную звуковую волну с помощью выбора наилучшей последовательности звуковых единиц из базы данных. Данный выбор обычно реализован с помощью [[Дерево решений и случайный лес|дерева решений]].
+
'''Синтез с выбором''' (англ. unit selection synthesis) является самым используемым подходом конкатенативного синтеза и использует большую базу данных записанной речи. При создании базы данных записанные фразы могут делиться на различные звуковые единицы, такие, как фоны, дифоны, полуфоны, слоги, морфемы, целые фразы или предложения. При запуске, алгоритм генерирует выходную звуковую волну с помощью выбора наилучшей последовательности звуковых единиц из базы данных. Данный выбор обычно реализован с помощью [[Дерево решений и случайный лес|дерева решений]].
 
Данный подход обеспечивает наиболее естественную речь, так как использует минимальную цифровую обработку сигналов. Недостатком подхода является необходимость в довольно большой базе данных звуков для достижения наибольшей естественности речи.
 
Данный подход обеспечивает наиболее естественную речь, так как использует минимальную цифровую обработку сигналов. Недостатком подхода является необходимость в довольно большой базе данных звуков для достижения наибольшей естественности речи.
  
'''Дифонный синтез''' (англ. diphone synthesis) является частным случаем синтеза с выбором, который использует в качестве звуковых единиц дифоны (переход от звука к звуку). Подход использует только один образец каждого дифона. База данных дифонов при этом получается сравнительно небольшой. Например, немецкий язык содержит около 800 дифонов, а испанский - около 2500. При работе алгоритма просодия входной последовательности накладывается на дифоны в базе данных с помощью различных алгоритмов цифровой обработки сигналов. Данный алгоритм значительно уступает по качеству другим подходам и, кроме меньшего размера базы данных, не дает весомых преимуществ.
+
'''Дифонный синтез''' (англ. diphone synthesis) является частным случаем синтеза с выбором, который использует в качестве звуковых единиц дифоны (переход от звука к звуку). Подход использует только один образец каждого дифона. База данных дифонов при этом получается сравнительно небольшой. Например, немецкий язык содержит около 800 дифонов, а испанский {{---}} около 2500. При работе алгоритма просодия входной последовательности накладывается на дифоны в базе данных с помощью различных алгоритмов цифровой обработки сигналов. Данный алгоритм значительно уступает по качеству другим подходам и, кроме меньшего размера базы данных, не дает весомых преимуществ.
  
 
'''Синтез речи, ограниченный предметной областью''' (англ. domain-specific speech synthesis) также является частным случаем синтеза с выбором и использует базу данных предварительно записанных слов, фраз и предложений для составления выходной последовательности. Он используется в задачах, где вариативность и размер используемых фраз ограничены некоторой предметной областью, например, прогнозирование погоды или составление расписания транспорта. Из-за значительной простоты реализации и использования данный подход уже долго применяется в коммерческих продуктах, например, говорящие часы или калькуляторы. При этом данный подход может обеспечивать высокую естественность речи вследствие ограниченности используемой базы данных. Недостатками таких систем является ограниченность областью применимости и неспособность учитывать контекст речи, что может вызывать ощутимые ошибки в некоторых языках.
 
'''Синтез речи, ограниченный предметной областью''' (англ. domain-specific speech synthesis) также является частным случаем синтеза с выбором и использует базу данных предварительно записанных слов, фраз и предложений для составления выходной последовательности. Он используется в задачах, где вариативность и размер используемых фраз ограничены некоторой предметной областью, например, прогнозирование погоды или составление расписания транспорта. Из-за значительной простоты реализации и использования данный подход уже долго применяется в коммерческих продуктах, например, говорящие часы или калькуляторы. При этом данный подход может обеспечивать высокую естественность речи вследствие ограниченности используемой базы данных. Недостатками таких систем является ограниченность областью применимости и неспособность учитывать контекст речи, что может вызывать ощутимые ошибки в некоторых языках.
Строка 37: Строка 37:
 
Параметрический синтез (англ. statistical parametrical synthesis) для генерации выходной звуковой волны, в отличии от конкатенативного синтеза, не использует реальные примеры речи, а строит вероятностное распределение некоторых параметров и акустических свойств звуковой волны.
 
Параметрический синтез (англ. statistical parametrical synthesis) для генерации выходной звуковой волны, в отличии от конкатенативного синтеза, не использует реальные примеры речи, а строит вероятностное распределение некоторых параметров и акустических свойств звуковой волны.
 
В начале работы параметрического синтезатора с помощью вокодера извлекаются параметры
 
В начале работы параметрического синтезатора с помощью вокодера извлекаются параметры
<math>\textbf{o} = \{o_1, \dots, o_N\}</math> звуковой волны <math>\textbf{x} = \{x_1, \dots, x_T\}</math> и лингвистические данные <math>l</math> из текста <math>W</math>, где <math>N</math> и <math>T</math>
+
<math>\textbf{o} = \{o_1, \dots, o_N\}</math> дискретизированной звуковой волны <math>\textbf{x} = \{x_1, \dots, x_T\}, -1 < x_i < 1</math> и лингвистические данные <math>l</math> из текста <math>W</math>, где <math>N</math> и <math>T</math>
 
соответствуют параметрам вокодера и количеству сигналов звуковой волны. Затем, генеративная модель, например, [[Марковская цепь|скрытая марковская цепь]],
 
соответствуют параметрам вокодера и количеству сигналов звуковой волны. Затем, генеративная модель, например, [[Марковская цепь|скрытая марковская цепь]],
 
[[Нейронные сети, перцептрон#Сети прямого распространения|нейронная сеть прямого распространения]] или [[Рекуррентные нейронные сети|рекуррентная нейронная сеть]], обучается по выделенным параметрам <math>\textbf{o}</math> и <math>l</math>, получая
 
[[Нейронные сети, перцептрон#Сети прямого распространения|нейронная сеть прямого распространения]] или [[Рекуррентные нейронные сети|рекуррентная нейронная сеть]], обучается по выделенным параметрам <math>\textbf{o}</math> и <math>l</math>, получая
Строка 43: Строка 43:
 
<math>\hat{\Lambda} = \arg\max\limits_{\Lambda}p(\textbf{o} | l, \Lambda)</math>,
 
<math>\hat{\Lambda} = \arg\max\limits_{\Lambda}p(\textbf{o} | l, \Lambda)</math>,
  
где <math>\hat{\Lambda}</math> - параметры модели. На этапе синтеза, модель генерирует наиболее правдоподобные параметры вокодера как
+
где <math>\Lambda</math> и <math>\hat{\Lambda}</math> {{---}} параметры модели. На этапе синтеза, модель генерирует наиболее правдоподобные параметры вокодера
  
<math>\hat{\textbf{o}} = \arg\max\limits_{\textbf{o}}p(\textbf{o} | l, \hat{\Lambda})</math>,
+
<math>\hat{\textbf{o}} = \arg\max\limits_{\textbf{o}}p(\textbf{o} | l, \hat{\Lambda})</math>.
  
 
Выходная звуковая волна моделируется с помощью вокодера и параметров <math>\hat{\textbf{o}}</math>.
 
Выходная звуковая волна моделируется с помощью вокодера и параметров <math>\hat{\textbf{o}}</math>.
Строка 51: Строка 51:
 
=== WaveNet ===
 
=== WaveNet ===
 
[[Файл:dilated-causal-convolutions.png|thumb|300px| [https://arxiv.org/abs/1609.03499/ Рисунок 1 — строение причинной сверточной сети (сверху) и расширенной причинной сверточной сети (снизу)]]]
 
[[Файл:dilated-causal-convolutions.png|thumb|300px| [https://arxiv.org/abs/1609.03499/ Рисунок 1 — строение причинной сверточной сети (сверху) и расширенной причинной сверточной сети (снизу)]]]
WaveNet является генеративной моделью, использующей параметрический подход к синтезу речи. Её задача -- восстановить распределение вероятности звукового сигнала
+
WaveNet является генеративной моделью, использующей параметрический подход к синтезу речи. Её задача {{---}} восстановить распределение вероятности звукового сигнала
 
<math>\textbf{x} = \{x_1, x_2, \dots, x_T\}</math> с помощью произведения условных вероятностей
 
<math>\textbf{x} = \{x_1, x_2, \dots, x_T\}</math> с помощью произведения условных вероятностей
  
<math>p(\textbf{x})=\prod\limits_{t=1}^{T} p(x_t | x_1, x_2, \dots, x_t)</math>
+
<math>p(\textbf{x})=\prod\limits_{t=1}^{T} p(x_t | x_1, x_2, \dots, x_{t-1})</math>.
  
 
Таким образом, вероятность каждого сигнала <math>x_t</math> зависит от вероятностей предыдущих сигналов. При этом, в качестве вокодера используется преобразование, известное
 
Таким образом, вероятность каждого сигнала <math>x_t</math> зависит от вероятностей предыдущих сигналов. При этом, в качестве вокодера используется преобразование, известное
 
как мю-закон <ref name="mu law">[http://www.itu.int/rec/dologin_pub.asp?lang=e&id=T-REC-G.711-198811-I!!PDF-E&type=items/ "ITU-T Recommendation G.711"]</ref>:
 
как мю-закон <ref name="mu law">[http://www.itu.int/rec/dologin_pub.asp?lang=e&id=T-REC-G.711-198811-I!!PDF-E&type=items/ "ITU-T Recommendation G.711"]</ref>:
  
<math>f(x_t) = sign(x_t) \frac{\ln(1+\mu|x_t)}{\ln(1+\mu)}</math>
+
<math>o_t = f(x_t) = sign(x_t) \frac{\ln(1+\mu|x_t|)}{\ln(1+\mu)}</math>,
  
 
где <math>\mu = 255</math> и <math>-1 < x_t < 1</math>.
 
где <math>\mu = 255</math> и <math>-1 < x_t < 1</math>.
Строка 66: Строка 66:
 
Выходом модели является категориальное распределение вероятности, получаемое с помощью softmax-преобразования.
 
Выходом модели является категориальное распределение вероятности, получаемое с помощью softmax-преобразования.
  
Основной идеей модели является использование причинных сверточных сетей и [[Сверточные нейронные сети#Расширенная свертка (aнгл. Dilated convolution) | расширенных ]] причинных сверточных сетей.
+
Основной идеей модели является использование причинных сверточных сетей (англ. causal convolution layers) и [[Сверточные нейронные сети#Расширенная свертка (aнгл. Dilated convolution) | расширенных ]] причинных сверточных сетей (англю dilated causal convolution layers).
 
Причинная сверточная сеть представляет собой несколько уровней сверточной нейронной сети, связанных между собой в порядке, который не нарушает последовательность
 
Причинная сверточная сеть представляет собой несколько уровней сверточной нейронной сети, связанных между собой в порядке, который не нарушает последовательность
 
входного сигнала, т.е. оцениваемая в момент времени <math>t+1</math> вероятность сигнала <math>p(x_{t+1} | x_1, x_2, \dots, x_t)</math> не зависит от сигналов
 
входного сигнала, т.е. оцениваемая в момент времени <math>t+1</math> вероятность сигнала <math>p(x_{t+1} | x_1, x_2, \dots, x_t)</math> не зависит от сигналов
в последующие моменты времени <math>t+2, t+3, \dots, T</math>. Во время обучения сети, известные сигналы из обучающих данных подаются на вход сети одновременно. На этапе генерации
+
в последующие моменты времени <math>t+2, t+3, \dots, T</math>. Во время обучения сети сигналы из обучающих данных подаются на вход сети одновременно. На этапе генерации
 
сигналы на вход модели подаются последовательно: каждый сгенерированный моделью сигнал подается обратно на вход для генерации последующего. Причинные сверточные сети обучаются
 
сигналы на вход модели подаются последовательно: каждый сгенерированный моделью сигнал подается обратно на вход для генерации последующего. Причинные сверточные сети обучаются
быстрее, чем рекуррентные нейронные сети, но требуют достаточно большого количества уровней для обеспечивания большого окна восприятия сигнала.
+
быстрее, чем рекуррентные нейронные сети, но требуют достаточно большого количества уровней для обеспечивания большого окна восприятия сигнала (англ. signal reception window) {{---}} количество предыдущих сигналов, от которых зависит оценка сигнала в текущий момент.
  
 
Модификация причинных сверточных сетей, называемая расширенные причинные сверточные сети, способна увеличить окно восприятия сигнала в разы и является основной идеей модели WaveNet.
 
Модификация причинных сверточных сетей, называемая расширенные причинные сверточные сети, способна увеличить окно восприятия сигнала в разы и является основной идеей модели WaveNet.
Основная идея модификации заключается в применении свертки к области размерности большей, чем её длина, пропуская входные связи с некоторым шагом. Данный подход аналогичен применению
+
Модификация заключается в применении свертки к области размерности большей, чем её длина, пропуская входные связи с некоторым шагом. Данный подход аналогичен применению
 
пулинга или свертки с шагом большим единицы, но результирует в выходную последовательность той же размерности. Расширенные причинные сверточные сети способны достигать большего окна
 
пулинга или свертки с шагом большим единицы, но результирует в выходную последовательность той же размерности. Расширенные причинные сверточные сети способны достигать большего окна
восприятия сигнала, используя меньшее количество уровней, при этом сохраняя вычислительную сложность причинных сверточных сетей.
+
восприятия сигнала, используя меньшее количество уровней, при этом сохраняя вычислительную сложность причинных сверточных сетей. Структура причинных сверточных сетей изображена на Рисунке 1.
  
Самый известный пример применения WaveNet для синтеза речи является  технология Google Ассистент, которая использовала WaveNet для генерации голосов ассистентов на различных
+
Самый известный пример применения 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>.
 
языках. Модель позволила значительно сократить количество записей речи актеров озвучки, требуемых для создания голосовой модели<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 ===
 
[[Файл:Tacotron.PNG|thumb|300px| [https://arxiv.org/abs/1703.10135/ Рисунок 2 — строение модели Tacotron]]]
 
[[Файл:Tacotron.PNG|thumb|300px| [https://arxiv.org/abs/1703.10135/ Рисунок 2 — строение модели Tacotron]]]
 
[[Файл:Tacotron-cbhg.PNG|thumb|300px| [https://arxiv.org/abs/1703.10135/ Рисунок 3 — строение модуля CBHG модели Tacotron]]]
 
[[Файл:Tacotron-cbhg.PNG|thumb|300px| [https://arxiv.org/abs/1703.10135/ Рисунок 3 — строение модуля CBHG модели Tacotron]]]
Tacotron - модель параметрического синтеза речи, основанная на подходе [[Механизм внимания | seq2seq]], разработанная Google и опубликованная в 2017 году. Модель состоит из кодера, декодера с [[Механизм внимания | вниманием]] и нейронной сети для
+
Tacotron {{---}} модель параметрического синтеза речи, основанная на подходе [[Механизм внимания | seq2seq]], разработанная Google и опубликованная в 2017 году. Модель состоит из кодера, декодера с [[Механизм внимания | вниманием]] и нейронной сети для
пост-процессинга сигнала.
+
пост-процессинга сигнала. Схема модели изображена на Рисунке 2.
  
Кодер и сеть пост-процессинга опираются на блок CBHG, который состоит из набора одномерных сверточных фильтров, за которыми следуют
+
Кодер и сеть пост-процессинга опираются на блок CBHG, схема которого изображена на Рисунке 3. Блок состоит из набора одномерных сверточных фильтров, за которыми следуют
шоссейные нейронные сети<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>
+
шоссейные нейронные сети (англ. 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>1, 2, \dots, K</math>. Эти фильтры моделируют локальную и контекстно-зависимую информацию (по аналогии с моделированием униграмм,
 
биграмм, вплоть до <math>K</math>-грамм). Выход сверточного уровня далее обрабатывается шоссейной сетью для дальнейшего выделения параметров. В конце CBHG
 
биграмм, вплоть до <math>K</math>-грамм). Выход сверточного уровня далее обрабатывается шоссейной сетью для дальнейшего выделения параметров. В конце CBHG
 
используется управляемый рекуррентный блок для выделения параметров, опираясь на контекст перед рассматриваемым символом и после рассматриваемого символа.
 
используется управляемый рекуррентный блок для выделения параметров, опираясь на контекст перед рассматриваемым символом и после рассматриваемого символа.
  
 
Задача кодера заключается в извлечении последовательных параметров из текста. Его входом является последовательность символов, в которой каждый символ был закодирован one-hot
 
Задача кодера заключается в извлечении последовательных параметров из текста. Его входом является последовательность символов, в которой каждый символ был закодирован one-hot
кодированием и объединен в единый непрерывный вектор. К данному входу применяется ряд нелинейных преобразований в виде сети с узким местом (bottleneck layer), что позволяет улучшить
+
кодированием и объединен в единый непрерывный вектор. К данному входу применяется ряд нелинейных преобразований в виде сети с бутылочным горлышком (bottleneck layer), что позволяет улучшить
обобщаемость сети и ускорить сходимость. Модуль CBHG преобразует выход нелинейных преобразований в итоговую презентацию текста, которая передается в декодер.
+
обобщаемость сети и ускорить сходимость. Модуль CBHG преобразует выход нелинейных преобразований в итоговое представление текста, которая передается в декодер.
  
 
Декодер является рекуррентной нейронной сетью с вниманием, в которой запрос внимания генерируется каждый временной промежуток. Вектор контекста соединяется с выходом ячейки внимания
 
Декодер является рекуррентной нейронной сетью с вниманием, в которой запрос внимания генерируется каждый временной промежуток. Вектор контекста соединяется с выходом ячейки внимания
Строка 107: Строка 107:
 
Алгоритмы обработки текста могут не справляться с обработкой определенных частей речи, таких, как аббревиатуры, числа и гетеронимы. Произношение определенных слов также зависит от контекста их применения. Большинство систем синтеза речи по тексту не способны выделять контекст предложений и используют различные эвристические подходы с целью различить омографы (слова с одинаковым написанием, но различным произношением).
 
Алгоритмы обработки текста могут не справляться с обработкой определенных частей речи, таких, как аббревиатуры, числа и гетеронимы. Произношение определенных слов также зависит от контекста их применения. Большинство систем синтеза речи по тексту не способны выделять контекст предложений и используют различные эвристические подходы с целью различить омографы (слова с одинаковым написанием, но различным произношением).
 
=== Преобразование текста в фонемы ===
 
=== Преобразование текста в фонемы ===
Процесс преобразования текста в фонемы обычно подразделяется на два подхода - словарный и основанный на правилах. Словарный подход использует словарь с записанными фонетическими представлениями слов и в процессе работы производит поиск в нем с целью конвертации слова в последовательность фонем. Основанный на правилах подход использует набор правил, которые применяются к словам или частям слов с целью выделения фонем. Оба эти подхода имеют существенные недостатки и требуют решения соответствующих проблем.
+
Процесс преобразования текста в фонемы обычно подразделяется на два подхода {{---}} словарный и основанный на правилах. Словарный подход использует словарь с записанными фонетическими представлениями слов и в процессе работы производит поиск в нем с целью конвертации слова в последовательность фонем. Основанный на правилах подход использует набор правил, которые применяются к словам или частям слов с целью выделения фонем. Оба эти подхода имеют существенные недостатки и требуют усовершенствования.
 
=== Оценка качества ===
 
=== Оценка качества ===
 
На данный момент не существует единых критериев оценки качества синтезаторов речи. В каждом отдельном применении технологии синтеза речи могут быть в том числе свои критерии качества, связанные с предметной областью или используемым оборудованием. С другой стороны, ряд исследователей начали оценивать синтезаторы речи используя распространенные наборы данных для синтеза речи <ref>[http://festvox.org/blizzard/ Blizzard Challenge]</ref>.
 
На данный момент не существует единых критериев оценки качества синтезаторов речи. В каждом отдельном применении технологии синтеза речи могут быть в том числе свои критерии качества, связанные с предметной областью или используемым оборудованием. С другой стороны, ряд исследователей начали оценивать синтезаторы речи используя распространенные наборы данных для синтеза речи <ref>[http://festvox.org/blizzard/ Blizzard Challenge]</ref>.

Версия 20:22, 13 января 2021

Эта статья находится в разработке!

Синтез речи (англ. speech synthesis) — процесс генерации компьютером человеческой речи. Компьютерная система, способная к синтезу речи, называется речевым синтезатором. Система, генерирующая человеческую речь, основываясь на тексте, называется text-to-speech системой (сокр. TTS).

В процессе человеческой речи сначала транслируется некоторый текст или мысленный концепт в движение мышц, связанных с органами дыхания и речи. Затем, используя поток воздуха из легких, производится генерация акустического сигнала, который содержит как периодические компоненты (созданные с помощьью вибрации органов речи), так и апериодические (созданные окружающей средой и фоновым шумом). Используя изменяющиеся во времени сокращения мышц, меняются частотные характеристики акустического сигнала. Задача систем генерации речи по тексту — симулировать данный процесс в каком-либо виде.

Этапы синтеза речи

Работу систем синтеза речи по тексту, как правило, можно разделить на два этапа, за которые отвечают два отдельных компонента — обработка текста и синтез речи.

Первый этап обычно содержит несколько этапов обработки естественного языка, такие, как разбиение на предложения, разбиение на слова, нормализация текста, автоматическая морфологическая разметка и конвертация графем в фонемы (англ. grapheme-to-phoneme conversion, G2P). Данный этап принимает в качестве входных параметров текст и возвращает последовательность фонем с различными выделенными лингвистическими особенностями.

Этап синтеза речи, в свою очередь, принимает на вход последовательность фонем и возвращает синтезированную звуковую волну речи. Данный этап обычно включает в себя алгоритмы предсказания просодии и алгоритмы генерации звуковых волн речи, а так же может содержать вокодер (англ. voice encoder) — алгоритм или устройство, способное выделить из звуковой волны определенные параметры и затем использовать её для генерации похожей волны.

Классы подходов к синтезу речи

Основными требованиями к технологиям синтеза речи являются естественность (англ. naturalness) и разборчивость (англ. intelligibility). Естественность описывает, насколько генерируемая речь близка к человеческой, а разборчивость отражает, насколько сложно понять речь. Идеальный синтезатор речи генерирует одновременно и натуральную, и разборчивую речь.

Конкатенативный синтез

Конкатенативный синтез (англ. concatenative synthesis) основывается на конкатенации предварительно записанных примеров человеческой речи в единую звуковую последовательность. Данный подход синтезирует наиболее естественную речь, но генерируемая речь часто содержит значительные отличия и ошибки по сравнению с человеческой речью.

Синтез с выбором (англ. unit selection synthesis) является самым используемым подходом конкатенативного синтеза и использует большую базу данных записанной речи. При создании базы данных записанные фразы могут делиться на различные звуковые единицы, такие, как фоны, дифоны, полуфоны, слоги, морфемы, целые фразы или предложения. При запуске, алгоритм генерирует выходную звуковую волну с помощью выбора наилучшей последовательности звуковых единиц из базы данных. Данный выбор обычно реализован с помощью дерева решений. Данный подход обеспечивает наиболее естественную речь, так как использует минимальную цифровую обработку сигналов. Недостатком подхода является необходимость в довольно большой базе данных звуков для достижения наибольшей естественности речи.

Дифонный синтез (англ. diphone synthesis) является частным случаем синтеза с выбором, который использует в качестве звуковых единиц дифоны (переход от звука к звуку). Подход использует только один образец каждого дифона. База данных дифонов при этом получается сравнительно небольшой. Например, немецкий язык содержит около 800 дифонов, а испанский — около 2500. При работе алгоритма просодия входной последовательности накладывается на дифоны в базе данных с помощью различных алгоритмов цифровой обработки сигналов. Данный алгоритм значительно уступает по качеству другим подходам и, кроме меньшего размера базы данных, не дает весомых преимуществ.

Синтез речи, ограниченный предметной областью (англ. domain-specific speech synthesis) также является частным случаем синтеза с выбором и использует базу данных предварительно записанных слов, фраз и предложений для составления выходной последовательности. Он используется в задачах, где вариативность и размер используемых фраз ограничены некоторой предметной областью, например, прогнозирование погоды или составление расписания транспорта. Из-за значительной простоты реализации и использования данный подход уже долго применяется в коммерческих продуктах, например, говорящие часы или калькуляторы. При этом данный подход может обеспечивать высокую естественность речи вследствие ограниченности используемой базы данных. Недостатками таких систем является ограниченность областью применимости и неспособность учитывать контекст речи, что может вызывать ощутимые ошибки в некоторых языках.

Параметрический синтез

Параметрический синтез (англ. statistical parametrical synthesis) для генерации выходной звуковой волны, в отличии от конкатенативного синтеза, не использует реальные примеры речи, а строит вероятностное распределение некоторых параметров и акустических свойств звуковой волны. В начале работы параметрического синтезатора с помощью вокодера извлекаются параметры [math]\textbf{o} = \{o_1, \dots, o_N\}[/math] дискретизированной звуковой волны [math]\textbf{x} = \{x_1, \dots, x_T\}, -1 \lt x_i \lt 1[/math] и лингвистические данные [math]l[/math] из текста [math]W[/math], где [math]N[/math] и [math]T[/math] соответствуют параметрам вокодера и количеству сигналов звуковой волны. Затем, генеративная модель, например, скрытая марковская цепь, нейронная сеть прямого распространения или рекуррентная нейронная сеть, обучается по выделенным параметрам [math]\textbf{o}[/math] и [math]l[/math], получая

[math]\hat{\Lambda} = \arg\max\limits_{\Lambda}p(\textbf{o} | l, \Lambda)[/math],

где [math]\Lambda[/math] и [math]\hat{\Lambda}[/math] — параметры модели. На этапе синтеза, модель генерирует наиболее правдоподобные параметры вокодера

[math]\hat{\textbf{o}} = \arg\max\limits_{\textbf{o}}p(\textbf{o} | l, \hat{\Lambda})[/math].

Выходная звуковая волна моделируется с помощью вокодера и параметров [math]\hat{\textbf{o}}[/math].

Алгоритмы, основанные на нейронных сетях

WaveNet

WaveNet является генеративной моделью, использующей параметрический подход к синтезу речи. Её задача — восстановить распределение вероятности звукового сигнала [math]\textbf{x} = \{x_1, x_2, \dots, x_T\}[/math] с помощью произведения условных вероятностей

[math]p(\textbf{x})=\prod\limits_{t=1}^{T} p(x_t | x_1, x_2, \dots, x_{t-1})[/math].

Таким образом, вероятность каждого сигнала [math]x_t[/math] зависит от вероятностей предыдущих сигналов. При этом, в качестве вокодера используется преобразование, известное как мю-закон [1]:

[math]o_t = f(x_t) = sign(x_t) \frac{\ln(1+\mu|x_t|)}{\ln(1+\mu)}[/math],

где [math]\mu = 255[/math] и [math]-1 \lt x_t \lt 1[/math]. Модель представляет собой множество слоев сверточной нейронной сети, аналогично модели PixelCNN. Сеть не содержит уровней пулинга и выходной вектор имеет размерность, равную размерности входного вектора. Выходом модели является категориальное распределение вероятности, получаемое с помощью softmax-преобразования.

Основной идеей модели является использование причинных сверточных сетей (англ. causal convolution layers) и расширенных причинных сверточных сетей (англю dilated causal convolution layers). Причинная сверточная сеть представляет собой несколько уровней сверточной нейронной сети, связанных между собой в порядке, который не нарушает последовательность входного сигнала, т.е. оцениваемая в момент времени [math]t+1[/math] вероятность сигнала [math]p(x_{t+1} | x_1, x_2, \dots, x_t)[/math] не зависит от сигналов в последующие моменты времени [math]t+2, t+3, \dots, T[/math]. Во время обучения сети сигналы из обучающих данных подаются на вход сети одновременно. На этапе генерации сигналы на вход модели подаются последовательно: каждый сгенерированный моделью сигнал подается обратно на вход для генерации последующего. Причинные сверточные сети обучаются быстрее, чем рекуррентные нейронные сети, но требуют достаточно большого количества уровней для обеспечивания большого окна восприятия сигнала (англ. signal reception window) — количество предыдущих сигналов, от которых зависит оценка сигнала в текущий момент.

Модификация причинных сверточных сетей, называемая расширенные причинные сверточные сети, способна увеличить окно восприятия сигнала в разы и является основной идеей модели WaveNet. Модификация заключается в применении свертки к области размерности большей, чем её длина, пропуская входные связи с некоторым шагом. Данный подход аналогичен применению пулинга или свертки с шагом большим единицы, но результирует в выходную последовательность той же размерности. Расширенные причинные сверточные сети способны достигать большего окна восприятия сигнала, используя меньшее количество уровней, при этом сохраняя вычислительную сложность причинных сверточных сетей. Структура причинных сверточных сетей изображена на Рисунке 1.

Самый известный пример применения WaveNet для синтеза речи является технология Google Ассистент, которая использует WaveNet для генерации голосов ассистентов на различных языках. Модель позволила значительно сократить количество записей речи актеров озвучки, требуемых для создания голосовой модели[2].

Tacotron

Tacotron — модель параметрического синтеза речи, основанная на подходе seq2seq, разработанная Google и опубликованная в 2017 году. Модель состоит из кодера, декодера с вниманием и нейронной сети для пост-процессинга сигнала. Схема модели изображена на Рисунке 2.

Кодер и сеть пост-процессинга опираются на блок CBHG, схема которого изображена на Рисунке 3. Блок состоит из набора одномерных сверточных фильтров, за которыми следуют шоссейные нейронные сети (англ. highway networks)[3], являющиеся модификацией LSTM сетей, и двунаправленный управляемый рекуррентный блок. Входная последовательность сначала обрабатывается [math]K[/math] наборами сверточных фильтров с размерностью [math]1, 2, \dots, K[/math]. Эти фильтры моделируют локальную и контекстно-зависимую информацию (по аналогии с моделированием униграмм, биграмм, вплоть до [math]K[/math]-грамм). Выход сверточного уровня далее обрабатывается шоссейной сетью для дальнейшего выделения параметров. В конце CBHG используется управляемый рекуррентный блок для выделения параметров, опираясь на контекст перед рассматриваемым символом и после рассматриваемого символа.

Задача кодера заключается в извлечении последовательных параметров из текста. Его входом является последовательность символов, в которой каждый символ был закодирован one-hot кодированием и объединен в единый непрерывный вектор. К данному входу применяется ряд нелинейных преобразований в виде сети с бутылочным горлышком (bottleneck layer), что позволяет улучшить обобщаемость сети и ускорить сходимость. Модуль CBHG преобразует выход нелинейных преобразований в итоговое представление текста, которая передается в декодер.

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

В качестве сети пост-обработки используется модуль CBHG, описанный ранее. После этого спектрограмма звуковой волны передается на вход алгоритму Гриффина-Лима[4], который способен с помощью спектрограммы восстановить исходную волну используя быстрое преобразование Фурье.

Проблемы

Задача обработки текста

Алгоритмы обработки текста могут не справляться с обработкой определенных частей речи, таких, как аббревиатуры, числа и гетеронимы. Произношение определенных слов также зависит от контекста их применения. Большинство систем синтеза речи по тексту не способны выделять контекст предложений и используют различные эвристические подходы с целью различить омографы (слова с одинаковым написанием, но различным произношением).

Преобразование текста в фонемы

Процесс преобразования текста в фонемы обычно подразделяется на два подхода — словарный и основанный на правилах. Словарный подход использует словарь с записанными фонетическими представлениями слов и в процессе работы производит поиск в нем с целью конвертации слова в последовательность фонем. Основанный на правилах подход использует набор правил, которые применяются к словам или частям слов с целью выделения фонем. Оба эти подхода имеют существенные недостатки и требуют усовершенствования.

Оценка качества

На данный момент не существует единых критериев оценки качества синтезаторов речи. В каждом отдельном применении технологии синтеза речи могут быть в том числе свои критерии качества, связанные с предметной областью или используемым оборудованием. С другой стороны, ряд исследователей начали оценивать синтезаторы речи используя распространенные наборы данных для синтеза речи [5].

См. также

Примечания

  1. "ITU-T Recommendation G.711"
  2. Martin, Taylor (May 9, 2018)."Try the all-new Google Assistant voices right now". CNET.
  3. Rupesh Kumar Srivastava, Klaus Greff, and J ̈urgen Schmidhuber. Highway networks. arXiv:1505.00387, 2015.
  4. D. Griffin and Jae Lim, "Signal estimation from modified short-time Fourier transform," ICASSP '83. IEEE International Conference on Acoustics, Speech, and Signal Processing, Boston, Massachusetts, USA, 1983, pp. 804-807, doi: 10.1109/ICASSP.1983.1172092.
  5. Blizzard Challenge

Источники информации

  • 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. arXiv:1609.03499
  • 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. arXiv:1703.10135