Изменения

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

Синтез речи

5038 байт добавлено, 17:13, 12 января 2021
Добавлен раздел про WaveNet
{{В разработке}}[[Категория:Машинное обучение]]
'''Синтез речи''' (англ. speech synthesis) - процесс генерации компьютером человеческой речи. Компьютерная система, способная к синтезу речи, называется речевым синтезатором. Система, генерирующая человеческую речь,основываясь на тексте, называется '''text-to-speech''' системой (сокр. TTS).
Процесс человеческой речи сначала транслирует некоторый текст или мысленный концепт в движение мышц, связанных с органами дыхания и речи. Затем, используя поток воздуха из легких,
== Алгоритмы, основанные на нейронных сетях ==
=== 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)</math>
 
Таким образом, вероятность каждого сигнала <math>x_t</math> зависит от вероятностей предыдущих сигналов.
Модель представляет собой множество слоев сверточной нейронной сети, аналогично модели PixelCNN.
Сеть не содержит уровней пулинга и выходной вектор имеет размерность, равную размерности входного вектора.
Выходом модели является категориальное распределение вероятности, получаемое с помощью softmax-преобразования. Значения сигнала при этом закодированы используя мю-закон:
 
<math>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>, и приведены к 256 уникальным значениям.
 
Основной идеей модели является использование причинных сверточных сетей и расширенных причинных сверточных сетей.
Причинная сверточная сеть представляет собой несколько уровней сверточной нейронной сети, связанных между собой в порядке, который не нарушает последовательность
входного сигнала, т.е. оцениваемая в момент времени <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>. Во время обучения сети, известные сигналы из обучающих данных подаются на вход сети одновременно. На этапе генерации
сигналы на вход модели подаются последовательно: каждый сгенерированный моделью сигнал подается обратно на вход для генерации последующего. Причинные сверточные сети обучаются
быстрее, чем рекуррентные нейронные сети, но требуют достаточно большого количества уровней для обеспечивания большого окна восприятия сигнала.
 
Модификация причинных сверточных сетей, называемая расширенные причинные сверточные сети, способна увеличить окно восприятия сигнала в разы и является основной идеей модели Wavenet.
Основная идея модификации заключается в применении свертки к области размерности большей, чем её длина, пропуская входные связи с некоторым шагом. Данный подход аналогичен применению
пулинга или свертки с шагом большим единицы, но результирует в выходную последовательность той же размерности. Расширенные причинные сверточные сети способны достигать большего окна
восприятия сигнала, используя меньшее количество уровней, при этом сохраняя вычислительную сложность причинных сверточных сетей.
 
Самый известный пример применения WaveNet для синтеза речи является технология Google Ассистент, которая использовала WaveNet для генерации голосов ассистентов на различных
языках. Модель позволила значительно сократить количество записей речи актеров ощвучки, требуемых для создания голосовой модели.
=== Tacotron ===
== Проблемы ==
29
правок

Навигация