Охота на электроовец. Большая книга искусственного интеллекта
Шрифт:
Для того чтобы добиться от модели генерации звука с требуемыми характеристиками, авторы снабдили WaveNet механизмами локального и глобального «обусловливания» (conditioning). Для этого к каждой амплитуде добавляется вектор, называемый обусловливающим. В случае глобального обусловливания этот вектор одинаков для всей последовательности (это может быть, например, вектор эмбеддинга голоса, если в обучении использовался многоголосый корпус, а от модели требуется генерировать речь одним из этих голосов). В случае локального обусловливания этот вектор может принимать различные значения для разных элементов целевой последовательности. Скажем, это могут быть наборы лингвистических признаков (например, сведения о фонемах и величине F0 или же отдельные шаги спектрограмм или мел-кепстральных представлений, используемых в качестве классических входных параметров вокодеров).
Для оценки возможностей WaveNet в качестве модели для синтеза речи авторы работы провели сравнительные тесты. Для сравнения они привлекли две другие модели синтеза (конкатенативную на основе скрытой марковской модели и параметрическую на основе LSTM) для двух языков (английского и китайского). Для обучения всех моделей были
2387
van den Oord A., Dieleman S., Zen H., Simonyan K., Vinyals O., Graves A., Kalchbrenner N., Senior A., Kavukcuoglu K. (2016). WaveNet: A generative model for raw audio // https://arxiv.org/pdf/1609.03499.pdf
2388
van den Oord A., Dieleman S. (2016). WaveNet: A generative model for raw audio // https://deepmind.com/blog/article/wavenet-generative-model-raw-audio
Как видно из этих результатов, использование WaveNet позволило преодолеть более половины дистанции, разделяющей натуральную и синтетическую речь.
Впрочем, описание WaveNet в статье DeepMind не было полноценным описанием системы синтеза речи. Во-первых, в работе не раскрывался способ получения лингвистических признаков, использованных для локального обусловливания синтезируемой речи. По всей видимости, авторы применяли для этой цели параметрический синтезатор речи на базе LSTM, в котором WaveNet выполнял роль вокодера. Во-вторых, использование WaveNet в качестве вокодера сталкивается с одной серьёзной проблемой: несмотря на все трюки, применённые создателями модели, её вычислительная сложность достаточно велика. Даже сейчас, спустя несколько лет после появления WaveNet, несмотря на весь прогресс в области аппаратного обеспечения, использовать модель для синтеза речи в реальном времени по-прежнему неудобно.
Однако появление WaveNet послужило отправной точкой для множества исследований в области нейросетевых вокодеров, что привело к созданию таких моделей, как Parallel WaveNet [2389] , FFTNet [2390] , WaveRNN [2391] , WaveGlow [2392] , LPCNet [2393] и так далее. По качеству синтеза эти модели обычно незначительно уступают WaveNet, но позволяют добиться результата в реальном времени, что даёт возможность использовать их в качестве компонентов современных систем синтеза речи [2394] .
2389
van den Oord A., Li Y., Babuschkin I., Simonyan K., Vinyals O., Kavukcuoglu K., van den Driessche G., Lockhart E., Cobo L. C., Stimberg F., Casagrande N., Grewe D., Noury S., Dieleman S., Elsen E., Kalchbrenner N., Zen H., Graves A., King H., Walters T., Belov D., Hassabis D. (2017). Parallel WaveNet: Fast High-Fidelity Speech Synthesis // https://arxiv.org/abs/1711.10433
2390
Jin Z., Finkelstein A., Mysore G. J., Lu J. (2018). FFTNet: A Real-Time Speaker-Dependent Neural Vocoder / 2018 IEEE International Conference on Acoustics, Speech and Signal Processing (ICASSP) // https://doi.org/10.1109/ICASSP.2018.8462431
2391
Kalchbrenner N., Elsen E., Simonyan K., Noury S., Casagrande N., Lockhart E., Stimberg F., van den Oord A., Dieleman S., Kavukcuoglu K. (2018). Efficient Neural Audio Synthesis // https://arxiv.org/abs/1802.08435
2392
Prenger R., Valle R., Catanzaro B. (2018). WaveGlow: A Flow-based Generative Network for Speech Synthesis // https://arxiv.org/abs/1811.00002
2393
Valin J.-M., Skoglund J. (2018). LPCNet: Improving Neural Speech Synthesis Through Linear Prediction // https://arxiv.org/abs/1810.11846
2394
Govalkar P., Fischer J., Zalkow F., Dittmar C. (2019). A Comparison of Recent Neural Vocoders for Speech Signal Reconstruction / 10th ISCA Speech Synthesis Workshop, 20—22 September 2019, Vienna, Austria // https://doi.org/10.21437/SSW.2019-2
6.4.8 Современные TTS-системы
Не заставил себя ждать и прогресс в области нейросетевых моделей, способных генерировать последовательности лингвистических признаков на базе текстов на естественном языке (или последовательностей символов фонетического алфавита). Задачу полноценного синтеза речи из текстового представления называют обычно задачей «текст-в-речь» (text-to-speech, TTS). Классический подход к этой задаче предполагает, что её редко решают при помощи одной, так называемой сквозной модели. Обычно текстовое представление
2395
Wang Y., Skerry-Ryan RJ, Stanton D., Wu Y., Weiss R. J., Jaitly N., Yang Z., Xiao Y., Chen Z., Bengio S., Le Q., Agiomyrgiannakis Y., Clark R., Saurous R. A. (2017). Tacotron: Towards End-to-End Speech Synthesis // https://arxiv.org/abs/1703.10135
В основе «Такотрона» лежит seq2seq-архитектура, которая использует механизм эмбеддинга для символов входного алфавита. Одним из важных строительных блоков «Такотрона» является так называемый CBHG-модуль (Convolution Bank + Highway + bi-GRU, Свёрточный банк + хайвей + двунаправленный GRU) — сеть, разработанная в 2016 г. Джейсоном Ли и его коллегами для целей машинного перевода [2396] . Свёрточный банк — механизм, позволяющий применять к последовательности одномерные свёртки с фильтрами разной длины. Хайвей — механизм, разработанный Рупешом Сриваставой, Клаусом Греффом и Юргеном Шмидхубером и предназначенный для решения проблемы исчезновения градиента при обучении очень глубоких сетей. В отличие от простых перепрыгивающих соединений хайвей основан на созданном по аналогии с LSTM механизме вентилей, определяющих, какая информация подвергается трансформации слоем, а какая «объезжает» его по хайвею [2397] .
2396
Lee J., Cho K., Hofmann T. (2017). Fully Character-Level Neural Machine Translation without Explicit Segmentation // https://arxiv.org/abs/1610.03017
2397
Srivastava K. R., Greff K., Schmidhuber J. (2015). Training Very Deep Networks // https://arxiv.org/abs/1507.06228
Кроме того, «Такотрон» использует классический механизм внимания Багданау, а также свёрточные и полносвязные слои.
Для обучения модели авторы использовали датасет, составленный из примерно 25 часов записей женской речи на английском языке, произнесённой одним профессиональным диктором. Речь была снабжена синхронным текстом, при этом все числа в тексте были записаны словами. Скорее всего, это был тот же датасет, который использовался для обучения WaveNet (их основные параметры, приведённые в статьях по WaveNet и «Такотрону», совпадают). Авторы также ничего не говорят о том, каким образом речь нарезалась на фрагменты, но, скорее всего, она была разделена в датасете на отдельные фразы.
Интересно, что роль вокодера (а точнее — его декодирующей части) в «Такотроне» выполняет алгоритм Гриффина — Лима, то есть вовсе не нейросетевая модель.
Процесс обучения «Такотрона» устроен следующим образом. Звуковой сигнал для каждого из фрагментов обучающего корпуса трансформируется в спектрограмму при помощи быстрого преобразования Фурье, для этого звук разбивается на перекрывающиеся части: фреймы размером 50 мс с шагом по 12,5 мс. Разложение сигнала в пределах фрейма в ряд Фурье даёт нам один столбец спектрограммы. Также с целью снижения уровня шумов применяется механизм преэмфазиса [pre-emphasis] — усиления слабых высоких частот (с необходимостью обратного преобразования, деэмфазиса [de-emphasis], при использовании сети). Из линейной спектрограммы также изготавливается более «грубая» мел-спектрограмма (спектрограмма на основе мел-шкалы). Таким образом, в распоряжении модели для каждого фрагмента речи оказываются текст и две спектрограммы. В процессе обучения модель учится воссоздавать по тексту сначала мел-спектрограмму, а затем из неё — линейную (при помощи специальной свёрточной постсети [post-net]). Целевая функция представляет собой сумму «манхэттенских расстояний» между спектрограммами оригинального сигнала и спектрограммами, сгенерированными моделью по тексту.
Манхэттенское расстояние, или, как его ещё иногда называют, «расстояние L1» или «расстояние городских кварталов», — метрика, введённая математиком Германом Минковским. Манхэттенское расстояние между двумя точками равно сумме модулей разностей их координат. Соответственно, манхэттенское расстояние между двумя спектрограммами равно сумме абсолютных значений разностей их соответствующих точек.
При обучении модели используется ряд трюков, например так называемый прогрев [warmup]: постепенное увеличение скорости обучения [learning rate], а затем её постепенное снижение [learning rate decay]. Также применяется режим форсирования учителем [teacher-forced], когда некоторые фреймы в результирующей спектрограмме подменяются фреймами оригинальной спектрограммы, что позволяет уменьшить накопление ошибки для авторекуррентной сети.
Поскольку данная модель основана на связке «кодировщик — декодер», то в процессе обучения наблюдается интересное явление — выстраивание так называемых выравниваний [alignment] для фраз в обучающей выборке. Выравнивание — это график, на котором по оси y отмечается номер шага кодировщика, по оси x — номер шага декодера, а цвет показывает накапливаемые веса внимания. Чем больше значения последних, тем больше декодеру «следует обратить внимание» на соответствующую часть данных кодировщика при генерировании очередного фрейма спектрограммы. Вначале графики выглядят неинформативно, но по мере обучения они начинают всё больше напоминать прямые отрезки, хотя для этого модель должна преодолеть несколько тысяч или даже десятков тысяч шагов обучения.
Перед бегущей
8. Легенды Вселенной
Фантастика:
научная фантастика
рейтинг книги
