ЖАНРЫ

Охота на электроовец. Большая книга искусственного интеллекта
Шрифт:

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

О том, что стало решающим шагом вперёд, мы поговорим в следующей подглаве.

6.4.7 Появление модели WaveNet и новые проблемы

Прорывом в области параметрического синтеза речи стало появление в 2016 г. получившей название WaveNet модели, созданной Хейгой Дзэном совместно с группой исследователей из DeepMind. WaveNet стал первым нейросетевым вокодером, способным преобразовывать последовательность лингвистических признаков (это могут быть фреймы (временные фрагменты), содержащие значения F0 и наборы мел-кепстральных коэффициентов, либо фреймы линейной или мел-спектрограммы) в последовательность амплитуд речевого сигнала.

WaveNet — авторегрессионная модель, то есть модель, в которой каждый следующий элемент последовательности зависит от предыдущих. Она является наследницей модели под названием PixelCNN, предназначенной для генерации изображений (мы подробнее поговорим о ней в разделе, посвящённом генеративным моделям). Каждая следующая амплитуда речевого сигнала сильно зависит от предыдущих, и эти зависимости могут связывать амплитуды, находящиеся друг от друга на достаточно большом расстоянии. Обычно человеческое ухо способно различать частоты не ниже 20 Гц. При частоте дискретизации 48 кГц длина периода колебаний частотой 20 Гц составляет 48000 / 20 = 2400 шагов. Таким образом, качественной авторегрессионной модели для речевого сигнала нужно довольно большое рецептивное поле (часть входной последовательности, передаваемой на вход модели). Для рекуррентных сетей это слишком большие дистанции, а «наивные» нерекуррентные архитектуры, такие как полносвязные и даже свёрточные сети, содержат слишком большое количество параметров. Проблема такой сети заключается в том, что она должна выполняться каждый раз при вычислении очередной амплитуды. 48 000 выполнений сети на одну секунду аудиосигнала — весьма дорогое удовольствие. Если для вычисления каждой следующей амплитуды нужно знать значение предыдущей, сделать такие расчёты параллельными довольно затруднительно.

Трюк, использованный создателями WaveNet, называется расширенной или растянутой свёрткой [dilated convolution] или даже «свёрткой с дырками» [a trous]. Расширенная свёртка — это свёртка, в которой фильтр (ядро свёртки) применяется к области, превышающей его собственную длину, путём пропуска входных значений с определённым шагом. Математически это эквивалентно свёртке с более крупным фильтром, полученным из исходного путём разбавления его значений нулями, но с вычислительной точки зрения куда более эффективно. Расширенная свёртка позволяет сети эффективно обрабатывать данные, обладающие большей размерностью, чем в случае обычной свёртки. Расширенная свёртка с коэффициентом расширения [dilation], равным 1, является стандартной свёрткой.

Рис. 140. Последовательные расширенные свёртки в WaveNet с коэффициентами расширения (снизу вверх): 1, 2, 4 и 8

Авторы WaveNet не были изобретателями расширенной свёртки, она применялась с конца 1980-х гг. в различных контекстах, например в обработке сигналов [2383] , [2384] или для сегментации изображений [2385] , [2386] . Однако создатели WaveNet подобрали оптимальное количество слоёв, их коэффициенты расширения, а также снабдили сеть перепрыгивающими соединениями. Каждый блок WaveNet включает девять последовательных слоёв расширенной свёртки с коэффициентами 1, 2, 4, 8, 16, 32, 64, 128, 256, 512. Несколько блоков WaveNet могут быть соединены друг с другом с целью расширения рецептивного поля сети.

2383

Holschneider M., Kronland-Martinet R., Morlet J., Tchamitchian P. (1989). A real-time algorithm for signal analysis with the help of the wavelet transform / Combes J.-M., Grossmann A., Tchamitchian P. (1989). Wavelets: Time-Frequency Methods and Phase Space. Springer Berlin Heidelberg // https://books.google.ru/books?id=3R74CAAAQBAJ

2384

Dutilleux P. An implementation of the “algorithme a trous” to compute the wavelet transform / Combes J.-M., Grossmann A., Tchamitchian P. (1989). Wavelets: Time-Frequency Methods and Phase Space. Springer Berlin Heidelberg // https://books.google.ru/books?id=3R74CAAAQBAJ

2385

Yu F., Koltun V. (2016). Multi-scale context aggregation by dilated convolutions / http://arxiv.org/abs/1511.07122

2386

Chen L.-C., Papandreou G., Kokkinos I., Murphy K., Yuille A. L. (2015). Semantic image segmentation with deep convolutional nets and fully connected CRFs // http://arxiv.org/abs/1412.7062

Размер рецептивного поля WaveNet в экспериментах, упомянутых авторами модели, составлял 0,24–0,3 секунды. Если модель при генерации сигнала ориентируется лишь на предшествующие амплитуды, то начинает подражать особенностям корпуса, на котором производилось обучение модели. Если используется речевой корпус, то модель начинает генерировать последовательности, фонетически напоминающие речь на языке корпуса. Конечно, это не осмысленная речь, а глоссолалия, то есть речь, состоящая из бессмысленных слов, имеющая некоторые признаки настоящей речи. В одном из забавных экспериментов создатели WaveNet использовали корпус, состоящий из записей фортепианных концертов. Обученная на таком корпусе модель сочиняла своеобразные музыкальные импровизации.

Для того чтобы добиться от модели генерации звука с требуемыми характеристиками, авторы снабдили WaveNet механизмами локального и глобального «обусловливания» (conditioning). Для этого к каждой амплитуде добавляется вектор, называемый обусловливающим. В случае глобального обусловливания этот вектор одинаков для всей последовательности (это может быть, например, вектор эмбеддинга голоса, если в обучении использовался многоголосый корпус, а от модели требуется генерировать речь одним из этих голосов). В случае локального обусловливания этот вектор может принимать различные значения для разных элементов целевой последовательности. Скажем, это могут быть наборы лингвистических признаков (например, сведения о фонемах и величине F0 или же отдельные шаги спектрограмм или мел-кепстральных представлений, используемых в качестве классических входных параметров вокодеров).

Для оценки возможностей WaveNet в качестве модели для синтеза речи авторы работы провели сравнительные тесты. Для сравнения они привлекли две другие модели синтеза (конкатенативную на основе скрытой марковской модели и параметрическую на основе LSTM) для двух языков (английского и китайского). Для обучения всех моделей были взяты одинаковые речевые корпусы (24,6 часа для английского языка и 34,8 часа для китайского). Кроме того, при сравнении были использованы образцы естественной речи, для кодирования которой применялось два различных способа (с глубиной кодирования 8 и 16 бит). Для оценки использовались как попарные сравнения, так и усреднённая субъективная оценка по пятибалльной шкале. Количество оценщиков, принявших участие в экспериментах, не было раскрыто, однако в статье приведены размеры доверительных интервалов. В таблице ниже представлены полученные в результате тестов усреднённые субъективные оценки [2387] , [2388] .

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). Классический подход к этой задаче предполагает, что её редко решают при помощи одной, так называемой сквозной модели. Обычно текстовое представление сначала преобразуется в фонетическое, для чего используют модели «графемы-в-фонемы» (grapheme-to-phoneme, G2P). Далее, основываясь на фонетическом представлении, модель произношения (prosodic model) генерирует последовательность лингвистических признаков. Затем вокодер на основе этих последовательностей генерирует последовательности амплитуд звукового сигнала. Весной 2017 г. исследователи из компании Google создали модель под названием «Такотрон» (Tacotron, имя модели происходит от «тако» — блюда мексиканской кухни; в списке авторов, вместо традиционных сносок с указанием академических аффилиаций, при помощи сносок обозначены авторы, которые любят тако и которые предпочитают суши) [2395] , способную как выполнять роль модели произношения, так и брать на себя одновременно роль G2P-модели, то есть генерировать последовательность лингвистических признаков непосредственно из текста на естественном языке.

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

Поделиться с друзьями: