Британская компания Google DeepMind представила новый алгоритм для синтеза человеческой речи под названием WaveNet. В его основе лежит использование нейросетей, что позволяет добиться более реалистичной имитации голоса. Статья разработчиков, описывающая программу, доступна на сайте компании.
Как правило, в системах преобразования текста в речь используются готовые аудиозаписи голоса людей. Программа выделяет из них звуки и компонует их на основе введенных данных, что позволяет добиться довольно естественного звучания — хорошим примером в данном случае может служить помощник Siri или Google Assistant. Однако такой подход, известный как компиляционный синтез, весьма ограничен, так как для того, чтобы можно было создать нового голосового ассистента или просто изменить тон речи, требуется наличие человека, который запишет все возможные звуки для базы данных.
Существует также и альтернативный метод, параметрический синтез, которой использует полностью сгенерированный компьютером голос, и не требует библиотеки «живой» речи. Его работа основывается на уже заданных параметрах, соответствующих правилам грамматики и принципам произнесения звуков. Тем не менее, на выходе получается достаточно «машинная» по звучанию речь.
Работа алгоритма WaveNet заключается в поточечной генерации профиля звуковой волны с помощью специальной нейросети. Ее обучили с помощью записей голоса диктора, но звуковые фрагменты этой базы система не использует, она генерирует их самостоятельно. При создании программы разработчики использовали нейросеть типа FCN (Fully convolutional network), архитектура которой была вдохновлена рекуррентной нейросетью PixelRNN и сверточной нейросетью PixelCNN. Каждый сверточный слой в этой сети имеет свой множитель расширения, благодаря которому ее рецептивное поле, то есть часть информации, которую обрабатывают нейроны, растет экспоненциально. В сущности, это позволяет программе охватывать сразу большое количество временных шагов. В нейросети также предусмотрена обратная связь, поэтому каждый последующий звук машинной речи генерируется на основе множества предыдущих. Как сообщают разработчики, WaveNet может помнить 2–3 предыдущие фонемы.
Слой, следующий за входным, имеет множитель расширения равный единице. Последующий множитель уже равен двум, идущий за ним — четырем, а множитель выходного слоя уже равен восьми.
Для обучения FCN-нейросети были взяты аудиозаписи голоса женщин, говорящих на северо-американском английском языке, которые в сумме длились 24,6 часов. Исследователи также использовали 34,8 часов аудиозаписей мандаринского китайского языка. Для реалистичного перевода написанного текста в устную речь разработчики дополнительно научили WaveNet учитывать лингвистические особенности текста: на уровне слов, как правило, это длина слова в слогах и ударная гласная, на уровне предложений — порядок слов, его длина и тип (повествовательное, восклицательное или вопросительное).
В итоге, исследователи получили программу, которая довольно реалистично переводит письменную речь в устную. Разработчики проверили качество работы системы с помощью слепых тестов, в которых они просили добровольцев оценить естественность звучания образцов голоса по шкале от 1 до 5. В итоге, WaveNet получил наиболее высокую оценку среди всех вышеупомянутых синтезаторов речи, сократив предыдущий разрыв в баллах между искусственной и натуральной речью почти на 50 процентов.
Средние оценки для каждого метода, полученные в ходе 100 сравнительных тестов. Персиковым цветом показан компиляционный синтез, за ним следует параметрический. Голубым цветом представлена программа WaveNet, а зеленым — настоящая человеческая речь.
Интересно, что WaveNet на основе анализа исходных форм звуковых волн даже без заданного текста может самостоятельно синтезировать подобие человеческой речи. В таком случае она основывается лишь на предсказаниях о том, как должен звучать каждый последующий звук, когда он следует за некоторым предыдущим. Это позволяет нейросети имитировать звучание голоса отдельного диктора и качество аудиозаписи, а также дыхание говорящего и движение его губ. В ходе эксперимента она смогла правдоподобно сгенерировать речь 109 людей. Получающиеся в результате такой работы записи звучат как реальная речь, но при этом не имеют смысла.
Разработчики DeepMind также дополнительно научили систему по такому же принципу самостоятельно создавать короткие композиции на фортепиано на основе анализа классической музыки. Таким образом, программа оказалась пригодна для выполнения довольно разных задач.
Согласно сообщению The Verge, на текущий момент WaveNet не используется ни в одном из продуктов Google, так как технология требует больших вычислительных мощностей. Однако разработчики не исключают такую возможность в будущем.
Недавно российский программист Mik Ketov использовал нейронную сеть с обратной связью для генерации твитов в стиле Рамзана Кадырова. Для создания системы генерации текста разработчик пользовался алгоритмом char-rnn, который лежал в основе работы системы DeepDrumpf, создающей твиты на основе стенограмм дебатов кандидата в президенты США Дональда Трампа. Char-RNN работает как генератор текста, где каждый последующий символ предсказывается на основании множества предыдущих — этот принцип весьма напоминает принцип работы WaveNet.
Иллюстрация к статье:
Обсуждение