Это 3-й день моего участия в ноябрьском испытании обновлений, узнайте подробности события:Вызов последнего обновления 2021 г.
INTRODUCTION
Deep Voice3 — это новая полностью сверточная архитектура TTS, предложенная Baidu. Основная работа Baidu разделена на следующие пять областей:
- Мы предлагаем полностью сверточную архитектуру преобразования символов в спектрограммы, которая может быть вычислена параллельно и работает быстрее, чем архитектуры, использующие рекуррентные единицы измерения.
- Deep Voice3 очень быстро обучается и масштабируется до набора речевых данных LibriSpeech, который содержит 820 часов аудиоданных от 2484 динамиков.
- может производитьмонотонное поведение внимания, избегая распространенных ошибок в синтезе речи seq2seq
- Сравните качество нескольких методов синтеза сигналов, включая WORLD, Griffin-Lim и WaveNet.
- Описывает реализацию ядра логического вывода Deep Voice3, которое может обеспечивать до 10 миллионов логических выводов в день на одном графическом процессоре.
ARCHITECTURE
Deep Voice3 может преобразовывать различные текстовые функции (такие как символы, фонемы, акценты) в различные параметры вокодера, такие как мел-спектр, линейный логарифмический спектр, основная частота, спектральная огибающая и т. д. Эти параметры вокодера можно использовать в качестве входных данных для модели синтеза сигналов.
Архитектура Deep Voice3 состоит из 3 компонентов:
- Кодер: полностью состоит из сверток для извлечения текстовых функций.
- Декодер: он также полностью состоит из свертки, использующей **многошаговый механизм сверточного внимания** для декодирования извлеченных текстовых функций в низкоразмерные аудиофункции авторегрессивным способом.
- Преобразователь: также полностью построенный из сверток, он предсказывает окончательные параметры вокодера (в зависимости от выбора вокодера) из скрытого состояния декодера. В отличие от декодера, преобразователь является акаузальным, поэтому он может полагаться на будущую контекстуальную информацию.
Целью оптимизации являетсядекодерипреобразовательЛинейная комбинация потерь. Авторы разделяют декодер и преобразователь и применяют их к многозадачному обучению, поскольку это позволяет лучше обучать внимание на практике. В частности, потеря предсказания мель-спектра направляет тренировку механизма внимания, поскольку тренировка внимания использует предсказание мель-спектра, а также градиенты предсказаний параметров вокодера.
TEXT PREPROCESSING
- Преобразовать все буквы в верхний регистр
- удалить все знаки препинания
- Конец каждого предложения состоит только из точки или вопросительного знака.
- Замените пробелы между словами специальными разделителями, которые указывают, как долго говорящий делает паузу между словами. Есть четыре специальных разделителя, которые обозначают: неоднозначные слова, стандартное произношение и символы пробела, короткие паузы между словами и длинные паузы между словами. Например, предложение «В любом случае, вы должны стрелять очень медленно» с длинной паузой после выстрела и короткой паузой после выстрела можно записать как «В любом случае% вы должны стрелять/очень медленно%». Пауза, / означает короткую паузу. Продолжительность паузы может быть отмечена вручную или с помощью текстового аудиовыравнивателя
CONVOLUTION BLOCKS
Блок свертки содержит одномерный фильтр свертки, вентилируемый обучаемый нелинейный блок, остаточное соединение и коэффициент масштабирования.. Чтобы ввести функции, связанные с говорящим, функции говорящего добавляются в качестве смещения к выходным данным фильтра свертки после функции активации мягкого знака. Инициализируйте веса фильтров свертки в блоке свертки, используя стандартное нормальное распределение.
Функция мягкого знака:
ENCODER
Сеть кодировщика сначала начинается с кодирования текста, преобразования символов или фонем в обучаемое векторное представление.. потомПодача в полностью связанный слой для проецирования на целевое измерение. Выходные данные, полученные PreNet, затем передаются в серию сверточных блоков для извлечения релевантной во времени текстовой информации. Наконец, они проецируются обратно в измерение встраивания текста, чтобы создать ключевой вектор внимания.. Вычислить вектор значения внимания из ключевого вектора внимания и встраивания текста, рассматривать совместноместная информация в идолгосрочная контекстная информация в формате . ключевой векториспользуется каждым блоком внимания для расчета веса внимания, а конечный вектор контекста рассчитывается как вектор значенийсредневзвешенное значение
DECODER
Декодер предсказывает следующие r (r>1) кадров мел-спектра авторегрессионным способом. Поскольку данные в более позднее время использовать нельзя, декодер использует причинно-следственную свертку или маскированную свертку.
Мел-спектральные данные сначала проходят через PreNet, а затем превращают их в матрицу запросов через слой случайной свертки. Затем выполните операцию внимания с матрицами Key и Value, выдаваемыми Encoder. Таким образом, несколько слоев накапливаются, и, наконец, следующие r кадров мел-спектра предсказываются через полностью связанный слой, а также предсказывается, следует ли остановить предсказание (аналогично Tacotron2). Функция потерь L1 Потеря и перекрестная энтропия
ATTENTION BLOCK
Модуль «Внимание» — это известный традиционный метод расчета скалярного произведения.Сначала матрица запроса и матрица ключей используются для расчета веса внимания, а затем матрица значений взвешивается и суммируется для получения вектора контекста. Кроме того, блок внимания также вводит позиционное кодирование.Выровняйте текст справки и спектр
в,индекс шага по времени,- индекс канала в позиционном кодировании,- количество всех каналов в позиционном кодировании,скорость закодированного положения. Скорость местоположения определяет средний наклон центральной линии распределения внимания, примерно соответствующий скорости речи. Для одного динамика в запросефиксируется на 1, ключ вфиксируется как отношение временных шагов ввода к временным шагам вывода; для нескольких динамиковВычисление с помощью вложений для каждого динамика (левая часть изображения ниже)
Подробный процесс показан на рисунке ниже
В сценариях перевода соответствующий порядок слов в предложениях на исходном языке и предложениях на целевом языке не является строго монотонным, в то время как при синтезе речи речь читается в текстовом порядке, поэтому отношение выравнивания будет более строгим.
CONVERTER
Сеть преобразователя принимает на вход выходные данные последнего скрытого слоя декодера, а преобразователь содержит несколько некаузальных сверточных блоков и затем предсказывает параметры нижестоящего вокодера. В отличие от декодера, преобразователь не является каузальным и не авторегрессивным, поэтому он может использовать информацию о будущем декодера для прогнозирования. Есть много видов конвертеров, можно использовать Griffin-fim или вейвнет и т.д. Конечно, эффект от использования вейвнета будет лучше. Вся схема модели выглядит следующим образом
RESULTS
Поскольку в модели Deep Voice3 для извлечения текста и спектральных характеристик используется полная свертка вместо GRU, это может значительно улучшить использование графического процессора во время обучения.При том же размере пакета скорость в 10 раз выше, чем у Tacotron. А количество шагов, необходимых для достижения сходимости, составляет всего 1/4 такотрона. После добавления монотонного внимания улучшается и естественный язык синтезированной речи.