Модель синтеза речи Baidu Deep Voice3

алгоритм

Это 3-й день моего участия в ноябрьском испытании обновлений, узнайте подробности события:Вызов последнего обновления 2021 г.

INTRODUCTION

Deep Voice3 — это новая полностью сверточная архитектура TTS, предложенная Baidu. Основная работа Baidu разделена на следующие пять областей:

  1. Мы предлагаем полностью сверточную архитектуру преобразования символов в спектрограммы, которая может быть вычислена параллельно и работает быстрее, чем архитектуры, использующие рекуррентные единицы измерения.
  2. Deep Voice3 очень быстро обучается и масштабируется до набора речевых данных LibriSpeech, который содержит 820 часов аудиоданных от 2484 динамиков.
  3. может производитьмонотонное поведение внимания, избегая распространенных ошибок в синтезе речи seq2seq
  4. Сравните качество нескольких методов синтеза сигналов, включая WORLD, Griffin-Lim и WaveNet.
  5. Описывает реализацию ядра логического вывода Deep Voice3, которое может обеспечивать до 10 миллионов логических выводов в день на одном графическом процессоре.

ARCHITECTURE

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

Архитектура Deep Voice3 состоит из 3 компонентов:

  • Кодер: полностью состоит из сверток для извлечения текстовых функций.
  • Декодер: он также полностью состоит из свертки, использующей **многошаговый механизм сверточного внимания** для декодирования извлеченных текстовых функций в низкоразмерные аудиофункции авторегрессивным способом.
  • Преобразователь: также полностью построенный из сверток, он предсказывает окончательные параметры вокодера (в зависимости от выбора вокодера) из скрытого состояния декодера. В отличие от декодера, преобразователь является акаузальным, поэтому он может полагаться на будущую контекстуальную информацию.

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

TEXT PREPROCESSING

  1. Преобразовать все буквы в верхний регистр
  2. удалить все знаки препинания
  3. Конец каждого предложения состоит только из точки или вопросительного знака.
  4. Замените пробелы между словами специальными разделителями, которые указывают, как долго говорящий делает паузу между словами. Есть четыре специальных разделителя, которые обозначают: неоднозначные слова, стандартное произношение и символы пробела, короткие паузы между словами и длинные паузы между словами. Например, предложение «В любом случае, вы должны стрелять очень медленно» с длинной паузой после выстрела и короткой паузой после выстрела можно записать как «В любом случае% вы должны стрелять/очень медленно%». Пауза, / означает короткую паузу. Продолжительность паузы может быть отмечена вручную или с помощью текстового аудиовыравнивателя

CONVOLUTION BLOCKS

Блок свертки содержит одномерный фильтр свертки, вентилируемый обучаемый нелинейный блок, остаточное соединение и коэффициент масштабирования.0.5\sqrt{0.5}. Чтобы ввести функции, связанные с говорящим, функции говорящего добавляются в качестве смещения к выходным данным фильтра свертки после функции активации мягкого знака. Инициализируйте веса фильтров свертки в блоке свертки, используя стандартное нормальное распределение.

Функция мягкого знака:

y=F(x)=x1+x.y=F(x)=\frac{x}{1+|x|}.

ENCODER

Сеть кодировщика сначала начинается с кодирования текста, преобразования символов или фонем в обучаемое векторное представление.heh_e. потомheh_eПодача в полностью связанный слой для проецирования на целевое измерение. Выходные данные, полученные PreNet, затем передаются в серию сверточных блоков для извлечения релевантной во времени текстовой информации. Наконец, они проецируются обратно в измерение встраивания текста, чтобы создать ключевой вектор внимания.hkh_k. Вычислить вектор значения внимания из ключевого вектора внимания и встраивания текстаhv=0.5(hk+he)h_v=\sqrt{0.5}(h_k+h_e), рассматривать совместноheh_eместная информация в иhkh_kдолгосрочная контекстная информация в формате . ключевой векторhkh_kиспользуется каждым блоком внимания для расчета веса внимания, а конечный вектор контекста рассчитывается как вектор значенийhvh_vсредневзвешенное значение

DECODER

Декодер предсказывает следующие r (r>1) кадров мел-спектра авторегрессионным способом. Поскольку данные в более позднее время использовать нельзя, декодер использует причинно-следственную свертку или маскированную свертку.

Мел-спектральные данные сначала проходят через PreNet, а затем превращают их в матрицу запросов через слой случайной свертки. Затем выполните операцию внимания с матрицами Key и Value, выдаваемыми Encoder. Таким образом, несколько слоев накапливаются, и, наконец, следующие r кадров мел-спектра предсказываются через полностью связанный слой, а также предсказывается, следует ли остановить предсказание (аналогично Tacotron2). Функция потерь L1 Потеря и перекрестная энтропия

ATTENTION BLOCK

Модуль «Внимание» — это известный традиционный метод расчета скалярного произведения.Сначала матрица запроса и матрица ключей используются для расчета веса внимания, а затем матрица значений взвешивается и суммируется для получения вектора контекста. Кроме того, блок внимания также вводит позиционное кодирование.hp(i)h_p(i)Выровняйте текст справки и спектр

hp(i)=sin(wsi/10000k/d) ,i=0,2,4,...hp(i)=cos(wsi/10000k/d) ,i=1,3,5,...h_p(i)=sin(w_si/10000^{k/d})\ ,i=0,2,4,...\\ h_p(i)=cos(w_si/10000^{k/d})\ ,i=1,3,5,...

в,iiиндекс шага по времени,kk- индекс канала в позиционном кодировании,dd- количество всех каналов в позиционном кодировании,wsw_sскорость закодированного положения. Скорость местоположения определяет средний наклон центральной линии распределения внимания, примерно соответствующий скорости речи. Для одного динамика в запросеwsw_sфиксируется на 1, ключ вwsw_sфиксируется как отношение временных шагов ввода к временным шагам вывода; для нескольких динамиковwsw_sВычисление с помощью вложений для каждого динамика (левая часть изображения ниже)

Подробный процесс показан на рисунке ниже

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

CONVERTER

Сеть преобразователя принимает на вход выходные данные последнего скрытого слоя декодера, а преобразователь содержит несколько некаузальных сверточных блоков и затем предсказывает параметры нижестоящего вокодера. В отличие от декодера, преобразователь не является каузальным и не авторегрессивным, поэтому он может использовать информацию о будущем декодера для прогнозирования. Есть много видов конвертеров, можно использовать Griffin-fim или вейвнет и т.д. Конечно, эффект от использования вейвнета будет лучше. Вся схема модели выглядит следующим образом

RESULTS

Поскольку в модели Deep Voice3 для извлечения текста и спектральных характеристик используется полная свертка вместо GRU, это может значительно улучшить использование графического процессора во время обучения.При том же размере пакета скорость в 10 раз выше, чем у Tacotron. А количество шагов, необходимых для достижения сходимости, составляет всего 1/4 такотрона. После добавления монотонного внимания улучшается и естественный язык синтезированной речи.

REFERENCE