6.4.7 Появление модели WaveNet и новые проблемы
Прорывом в области параметрического синтеза речи стало появление в 2016 г. получившей название WaveNet модели, созданной Хейгой Дзэном совместно с группой исследователей из DeepMind. WaveNet стал первым нейросетевым вокодером, способным преобразовывать последовательность лингвистических признаков (это могут быть фреймы (временные фрагменты), содержащие значения F0 и наборы мел-кепстральных коэффициентов, либо фреймы линейной или мел-спектрограммы) в последовательность амплитуд речевого сигнала.
WaveNet — авторегрессионная модель, то есть модель, в которой каждый следующий элемент последовательности зависит от предыдущих. Она является наследницей модели под названием PixelCNN, предназначенной для генерации изображений (мы подробнее поговорим о ней в разделе, посвящённом генеративным моделям). Каждая следующая амплитуда речевого сигнала сильно зависит от предыдущих, и эти зависимости могут связывать амплитуды, находящиеся друг от друга на достаточно большом расстоянии. Обычно человеческое ухо способно различать частоты не ниже 20 Гц. При частоте дискретизации 48 кГц длина периода колебаний частотой 20 Гц составляет 48000 / 20 = 2400 шагов. Таким образом, качественной авторегрессионной модели для речевого сигнала нужно довольно большое рецептивное поле (часть входной последовательности, передаваемой на вход модели). Для рекуррентных сетей это слишком большие дистанции, а «наивные» нерекуррентные архитектуры, такие как полносвязные и даже свёрточные сети, содержат слишком большое количество параметров. Проблема такой сети заключается в том, что она должна выполняться каждый раз при вычислении очередной амплитуды. 48 000 выполнений сети на одну секунду аудиосигнала — весьма дорогое удовольствие. Если для вычисления каждой следующей амплитуды нужно знать значение предыдущей, сделать такие расчёты параллельными довольно затруднительно.
Трюк, использованный создателями WaveNet, называется расширенной или растянутой свёрткой [dilated convolution] или даже «свёрткой с дырками» [à trous]. Расширенная свёртка — это свёртка, в которой фильтр (ядро свёртки) применяется к области, превышающей его собственную длину, путём пропуска входных значений с определённым шагом. Математически это эквивалентно свёртке с более крупным фильтром, полученным из исходного путём разбавления его значений нулями, но с вычислительной точки зрения куда более эффективно. Расширенная свёртка позволяет сети эффективно обрабатывать данные, обладающие большей размерностью, чем в случае обычной свёртки. Расширенная свёртка с коэффициентом расширения [dilation], равным 1, является стандартной свёрткой.
Рис. 140. Последовательные расширенные свёртки в WaveNet с коэффициентами расширения (снизу вверх): 1, 2, 4 и 8
Авторы WaveNet не были изобретателями расширенной свёртки, она применялась с конца 1980-х гг. в различных контекстах, например в обработке сигналов[1], [2] или для сегментации изображений[3], [4]. Однако создатели WaveNet подобрали оптимальное количество слоёв, их коэффициенты расширения, а также снабдили сеть перепрыгивающими соединениями. Каждый блок WaveNet включает девять последовательных слоёв расширенной свёртки с коэффициентами 1, 2, 4, 8, 16, 32, 64, 128, 256, 512. Несколько блоков WaveNet могут быть соединены друг с другом с целью расширения рецептивного поля сети.
Размер рецептивного поля WaveNet в экспериментах, упомянутых авторами модели, составлял 0,24–0,3 секунды. Если модель при генерации сигнала ориентируется лишь на предшествующие амплитуды, то начинает подражать особенностям корпуса, на котором производилось обучение модели. Если используется речевой корпус, то модель начинает генерировать последовательности, фонетически напоминающие речь на языке корпуса. Конечно, это не осмысленная речь, а глоссолалия, то есть речь, состоящая из бессмысленных слов, имеющая некоторые признаки настоящей речи. В одном из забавных экспериментов создатели WaveNet использовали корпус, состоящий из записей фортепианных концертов. Обученная на таком корпусе модель сочиняла своеобразные музыкальные импровизации.
Для того чтобы добиться от модели генерации звука с требуемыми характеристиками, авторы снабдили WaveNet механизмами локального и глобального «обусловливания» (conditioning). Для этого к каждой амплитуде добавляется вектор, называемый обусловливающим. В случае глобального обусловливания этот вектор одинаков для всей последовательности (это может быть, например, вектор эмбеддинга голоса, если в обучении использовался многоголосый корпус, а от модели требуется генерировать речь одним из этих голосов). В случае локального обусловливания этот вектор может принимать различные значения для разных элементов целевой последовательности. Скажем, это могут быть наборы лингвистических признаков (например, сведения о фонемах и величине F0 или же отдельные шаги спектрограмм или мел-кепстральных представлений, используемых в качестве классических входных параметров вокодеров).
Для оценки возможностей WaveNet в качестве модели для синтеза речи авторы работы провели сравнительные тесты. Для сравнения они привлекли две другие модели синтеза (конкатенативную на основе скрытой марковской модели и параметрическую на основе LSTM) для двух языков (английского и китайского). Для обучения всех моделей были взяты одинаковые речевые корпусы (24,6 часа для английского языка и 34,8 часа для китайского). Кроме того, при сравнении были использованы образцы естественной речи, для кодирования которой применялось два различных способа (с глубиной кодирования 8 и 16 бит). Для оценки использовались как попарные сравнения, так и усреднённая субъективная оценка по пятибалльной шкале. Количество оценщиков, принявших участие в экспериментах, не было раскрыто, однако в статье приведены размеры доверительных интервалов. В таблице ниже представлены полученные в результате тестов усреднённые субъективные оценки[5], [6].
Варианты синтеза/Образцы речи | Средняя субъективная оценка естественности речи по пятибалльной шкале | |
североамериканский английский |
китайский (путунхуа) | |
Параметрический на базе LSTM-RNN | 3,67 ± 0,098 | 3,79 ± 0,084 |
Конкатенативный на базе скрытой марковской модели |
3,86 ± 0,137 | 3,47 ± 0,108 |
WaveNet |
4,21 ± 0,081 | 4,08 ± 0,085 |
Естественная речь (8 бит, μ-закон) |
4,46 ± 0,067 | 4,25 ± 0,082 |
Естественная речь (16 бит, линейный, импульсно-кодовая модуляция) |
4,55 ± 0,075 | 4,21 ± 0,071 |
Как видно из этих результатов, использование WaveNet позволило преодолеть более половины дистанции, разделяющей натуральную и синтетическую речь.
Впрочем, описание WaveNet в статье DeepMind не было полноценным описанием системы синтеза речи. Во-первых, в работе не раскрывался способ получения лингвистических признаков, использованных для локального обусловливания синтезируемой речи. По всей видимости, авторы применяли для этой цели параметрический синтезатор речи на базе LSTM, в котором WaveNet выполнял роль вокодера. Во-вторых, использование WaveNet в качестве вокодера сталкивается с одной серьёзной проблемой: несмотря на все трюки, применённые создателями модели, её вычислительная сложность достаточно велика. Даже сейчас, спустя несколько лет после появления WaveNet, несмотря на весь прогресс в области аппаратного обеспечения, использовать модель для синтеза речи в реальном времени по-прежнему неудобно.
Однако появление WaveNet послужило отправной точкой для множества исследований в области нейросетевых вокодеров, что привело к созданию таких моделей, как Parallel WaveNet[7], FFTNet[8], WaveRNN[9], WaveGlow[10], LPCNet[11] и так далее. По качеству синтеза эти модели обычно незначительно уступают WaveNet, но позволяют добиться результата в реальном времени, что даёт возможность использовать их в качестве компонентов современных систем синтеза речи[12].
- ↑ 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
- ↑ 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
- ↑ Yu F., Koltun V. (2016). Multi-scale context aggregation by dilated convolutions / http://arxiv.org/abs/1511.07122
- ↑ 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
- ↑ 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
- ↑ van den Oord A., Dieleman S. (2016). WaveNet: A generative model for raw audio // https://deepmind.com/blog/article/wavenet-generative-model-raw-audio
- ↑ 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
- ↑ 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
- ↑ 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
- ↑ Prenger R., Valle R., Catanzaro B. (2018). WaveGlow: A Flow-based Generative Network for Speech Synthesis // https://arxiv.org/abs/1811.00002
- ↑ Valin J.-M., Skoglund J. (2018). LPCNet: Improving Neural Speech Synthesis Through Linear Prediction // https://arxiv.org/abs/1810.11846
- ↑ 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