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

Материал из Викиконспекты
Перейти к: навигация, поиск
(создана страница)
 
(Первая версия статьи с обзором основных подходов)
Строка 1: Строка 1:
 
{{В разработке}}[[Категория:Машинное обучение]]
 
{{В разработке}}[[Категория:Машинное обучение]]
 +
'''Синтез речи''' (англ. 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_0, o_1, \dots, o_N\}</math> звуковой волны <math>\textbf{x} = \{x_0, o_x, \dots, o_T\}</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>\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 ===
 +
=== Tacotron ===
 +
== Проблемы ==
 +
 +
== См. также ==
 +
 +
* [[Нейронные сети, перцептрон]]
 +
* [[Сверточные нейронные сети]]
 +
 +
== Примечания ==
 +
 +
<references/>
 +
 +
== Источники информации ==

Версия 17:28, 9 января 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_0, o_1, \dots, o_N\}[/math] звуковой волны [math]\textbf{x} = \{x_0, o_x, \dots, o_T\}[/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]\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

Tacotron

Проблемы

См. также

Примечания


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