2 просмотров
Рейтинг статьи
1 звезда2 звезды3 звезды4 звезды5 звезд
Загрузка...

Преобразование текста в речь с помощью нейросети

Содержание

Нейронную сеть научили практически идеально копировать человеческий голос

В прошлом году компания DeepMind, занимающаяся разработками технологий искусственного интеллекта, поделилась деталями о своем новом проекте WaveNet – нейронной сети глубинного обучения, использующейся для синтезации реалистичной человеческой речи. На днях была выпущена усовершенствованная версия этой технологии, которая будет использоваться в качестве основы цифрового мобильного ассистента Google Assistant.

Система голосового синтезирования (также известная как функция преобразования «текст-в-речь», text-to-speech, TTS) обычно строится на базе одного из двух основных методов. Конкатенативный (или компилятивный) метод подразумевает построение фраз путем сбора отдельных кусков записанных слов и частей, заранее записанных с привлечением актера озвучания. Основным недостатком такого метода является необходимость постоянной замены звуковой библиотеки всякий раз, когда происходят какие-нибудь обновления или вносятся изменения.

Другой метод носит название параметрического TTS, и его особенностью является использование наборов параметров, с помощью которых компьютер генерирует нужную фразу. Минус метода в том, что чаще всего результат проявляется в виде нереалистичного или так называемого роботизированного звучания.

Что же касается WaveNet, то она производит звуковые волны с нуля на базе системы, работающей на основе сверточной нейронной сети, где генерация звука происходит в несколько слоев. Сначала для тренировки платформы синтезации «живой» речи ей «скармливают» огромный объем образцов, при этом отмечая, какие звуковые сигналы звучат реалистично, а какие нет. Это наделяет голосовой синтезатор возможностью воспроизводить натуралистичную интонацию и даже такие детали, как чмокающие звуки губами. В зависимости от того, какие образцы речь прогоняются через систему, это позволяет ей развить уникальный «акцент», что в перспективе может использоваться для создания множества разных голосов.

Пожалуй, самым большим ограничением системы WaveNet являлось то, что для ее работы требовалось наличие огромного объема вычислительной мощности, и даже при выполнении этого условия она не отличалась скоростью работы. Например, для генерации 0,02 секунды звука ей требовалось около 1 секунды времени.

Спустя год работы инженеры DeepMind все-таки нашли способ, как улучшить и оптимизировать систему таким образом, что теперь она способна производить сырой звук длительностью в одну секунду всего на 50 миллисекунд, что в 1000 раз быстрее ее изначальных возможностей. Более того, специалистам удалось повысить частоту дискретизации звука с 8-битного до 16-битного, что положительно сказалось на тестах с привлечением слушателей. Благодаря этим успехам, для WaveNet была открыта дорога к интеграции в такие потребительские продукты, как Google Assistant.

В настоящий момент WaveNet может использоваться для генерации английских и японских голосов через Google Assistant и все платформы, где используется этот цифровой ассистент. Так как система может создавать особый тип голосов в зависимости от того, какой набор образцов был ей предоставлен для обучения, то в скором времени Google, вероятнее всего, внедрит в WaveNet поддержку синтезации реалистичной речи и на других языках, и в том числе с учетом их местных диалектов.

Речевые интерфейсы становятся все более и более распространенными на самых разных платформах, однако их явно выраженная неестественная природа звучания отталкивает многих потенциальных пользователей. Попытки компании DeepMind усовершенствовать эту технологию, безусловно, поспособствуют более широкому распространению таких голосовых систем, а также позволят улучшить пользовательский опыт от их использования.

Преобразование текста в речь с помощью нейросети

Для преобразования текста в речь (Text To Speech, TTS) большинству систем необходимы качественные образцы голоса, согласованные фонемы и лингвистические признаки. Мы перевели статью о новом нейросетевом решении с менее строгими требованиями. Архитектура сети основывается на сдвиговом буфере памяти и является более простой, чем в уже существующих приложениях. Исходный код системы открыт и доступен для загрузки и тестирования.

Описание модели VoiceLoop

Методы преобразования текста в речь можно разделить на четыре типа: системы на базе правил (rule-based), конкатенативные, статистико-параметрические (основанные на скрытой марковской модели) и нейронные. Для статистико-параметрических методов необходим тщательный отбор и фильтрация исходных образцов речи. Конкатенативные системы менее строгие, но всё же требуют несколько десятков минут качественных аудиозаписей. Появляющиеся нейронные методы в перспективе обещают подражать реальным голосам, обучаясь на данных, взятых из открытого доступа.

В этой работе решается задача подражания голосу человека на основе образцов речи, взятых из Интернета. Современные системы строятся в основном на тщательно отобранных аудиосэмплах, в то время как предлагаемый метод может использовать звук, взятый из публичных выступлений (на YouTube), несмотря на наличие фонового шума, хлопков и неточной автоматической транскрипции текста. Более того, почти все такие видео содержат несколько говорящих людей, а некоторые ролики имеют низкое качество звука, что создаёт дополнительный шум и выбросы.

Применяемый метод называется VoiceLoop. Он основан на модели рабочей памяти, также известной как фонологическая петля. В этом алгоритме с помощью буфера памяти создаётся фонологическое хранилище, представляющее матрицу. В каждый момент времени все её столбцы сдвигаются вправо, и в буфер помещается новое представление. Это позволяет механизму, создающему представления, использовать уже существующие в буфере данные для формирования долгосрочных зависимостей.

Читать еще:  Удаляем ненужные приложения на Андроид: программы-деинсталляторы

Входные предложения представляются в виде списка фонем. Любая из 42 фонем, используемых в словаре, кодируется как короткий вектор, а входное предложение — как список векторов соответствующих фонем (контекст на этом этапе не учитывается). В каждый момент времени кодировки фонем взвешиваются и затем суммируются с помощью вектора весов внимания. Из них формируется текущий вектор контекста, а в качестве механизма внимания используется модель Грейвза.

Отличительные свойства TTS сети:

  1. Вместо обычных рекуррентных нейронных сетей (Recurrent neural network, RNN) используется буфер памяти.
  2. Одна и та же память распределяется между всеми процессами и многократно используется для выводов.
  3. Для всех вычислений применяются неглубокие полносвязные нейронные сети.
  4. Используется предельно простой механизм считывания данных.

Эти особенности делают архитектуру нейросети более надёжной и позволяют имитировать речь на основе зашумлённых и ограниченных обучающих данных. Кроме того, поскольку выход системы связан со входом, можно обучить новый синтезатор речи с помощью коротких аудиопоследовательностей в сочетании с автоматически генерируемым текстом. Различные интонации можно легко формировать путём прайминга: для этого необходимо инициализировать буфер до процесса синтеза.

Качество метода измерялось двумя способами: для TTS использовалась средняя экспертная оценка (Mean Opinion Score, MOS), а речевой синтезатор проверялся на предварительно обученной мультиклассовой нейросети, которая достигала почти идеальных показателей на реальных данных.

Архитектура сети

Прямая передача данных по сети VoiceLoop состоит из четырёх последовательных этапов. Сначала выполняется контекстно-свободное кодирование входной фразы и речевого синтезатора. Затем вычисляется контекст и происходит обновление буфера памяти. Завершающий шаг — генерация выходных данных. В случае ошибки буфер памяти подаёт сигнал с выхода на более ранние шаги.

Шаг 1 — кодирование синтезатора речи и исходного предложения

Каждый речевой синтезатор представлен в виде вектора. Во время обучения эти векторы сохраняются в таблице поиска (Lookup table, LUT), а для новых синтезаторов, которые обучаются уже после настройки нейросети, они вычисляются путём простой оптимизации.

Входное предложение преобразуется в последовательность фонем с помощью словаря произношения CMU (Carnegie Mellon University). В этом словаре 40 фонем, к которым добавляются ещё два элемента для обозначения пауз различной длины. Затем каждая фонема сопоставляется с кодировкой, основанной на обученной таблице поиска. В результате получается матрица кодирования фонем.

Таким образом, на первом шаге используются две неглубокие сети — таблица поиска для синтезаторов речи и таблица поиска для фонем.

Шаг 2 — вычисление контекста

Для определения контекста применяется механизм монотонного внимания, основанный на смеси гауссовских распределений Грэйвза (Gaussian Mixture Model, GMM). В каждый выходной момент времени сеть внимания принимает буфер с предыдущего шага в качестве входных данных. Сеть имеет один скрытый слой и функцию активации ReLU для него.

Далее для каждого элемента суммируются все компоненты и рассчитываются веса внимания, образующие вектор.

Затем контекстный вектор вычисляется как взвешенная сумма столбцов матрицы вложений входной последовательности (кодировки фонем). Функция потерь всей модели зависит от контекстного вектора, и, следовательно, от вектора внимания.

Шаг 3 — обновление буфера

На каждом временном шаге в буфер добавляется новый вектор представления на место первого столбца. Последний столбец при этом удаляется, а остальные копируются со сдвигом вправо. Здесь количество элементов в буфере равно сумме размерности вложения фонем и размерности вывода.

Вектор нового представления вычисляется с использованием полносвязной неглубокой нейросети с одним скрытым слоем и функцией активации ReLU. В качестве входа сеть принимает буфер с предыдущего шага, вектор контекста и предыдущие выходные данные. Новое представление зависит также от речевого синтезатора и добавляет проекцию его вложения в вектор контекста.

Шаг 4 – генерация вывода

Выходные данные генерируются с помощью проекционной матрицы синтезатора речи и нейросети с такой же архитектурой, как в шагах 2 и 3.

Обучение

Вывод представляет собой вектор признаков вокодера размерностью 63, вычисленный с помощью Merlin toolkit. Во время обучения выходные данные сравниваются с истинными (ground truth) признаками вокодера с использованием среднеквадратичных потерь (Mean squared error, MSE). Этот процесс происходит на каждом временном промежутке и требует точного выравнивания входной и выходной последовательностей.

Но человеческая речь не является детерминированной — повторяя одну и ту же фразу, мы каждый раз произносим её по-разному. Поэтому нельзя ожидать, что детерминированный алгоритм спрогнозирует корректные значения. Даже один и тот же вокодер не может повторить свой голос и при этом полностью устранить MSE-потери, так как при повторном воспроизведении предложения появляется изменчивость. Проблему позволяет решить метод форсирования учителя (teacher forcing). Он устраняет большую часть отклонений и обеспечивает конкретику в произнесении предложений.

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

Эффективность

Полная модель содержит 9.3 миллиона параметров и работает почти в режиме реального времени на одноядерном CPU Intel Xeon E5 и в 5 раз быстрее на GPU NVIDIA M40. Следовательно, даже без специальной оптимизации VoiceLoop можно адаптировать для запуска на мобильном клиенте аналогично существующим не нейронным решениям TTS.

Обучение нового речевого синтезатора

Особенности речи разных людей могут существенно различаться, и приспособиться к этим факторам на основе ограниченного набора голосовых образцов — непростая задача. Цель TTS — научиться подражать новому человеку на основе сравнительно короткой голосовой выборки. В идеале новый голос должен интерпретироваться в виде параметров вложения вектора речевого синтезатора без необходимости переучивать сеть. Для этого нужна достаточно большая выборка обучающих голосовых примеров.

Для обучения нового синтезатора необходимы образцы голоса и расшифрованный текст. Процедура обучения проводится с фиксированными весами всех сетей и проекций. Метод стохастического градиентного спуска (Stochastic Gradient Descent, SGD) позволяет обновлять только вектор речевого синтезатора для формирования вложения нового голоса. Процесс обучения при этом не отличается от описанного ранее.

Читать еще:  Скачать Asterix and Friends на андроид v.1.4.7

Генерирование изменчивости

Как упоминалось выше, естественная речь не является детерминированной и для подражания ей необходимо генерировать изменчивые фразы. VoiceLoop, в отличие от других моделей, не использует для этого случайный компонент (вариационный автоэнкодер) и генерирует выходные последовательности с помощью прайминга.

В прайминге начальный буфер инициализируется на основе вводного процесса, в котором через систему помимо основных входных данных проходит какое-нибудь другое слово или предложение. Это позволяет придать буферу окраску — мы получим разные результаты, если в качестве вводного предложения будем использовать фразу, сказанную с разным эмоциональным контекстом. При таком подходе можно достичь желаемого уровня изменчивости.

Эксперименты и результаты

В опытах использовалось несколько наборов данных. Для сравнения с существующими решениями, создающими только один синтезатор речи, применялись датасеты с голосом одного человека. Обучение нескольких синтезаторов проводилось на выборках из набора данных VCTK. Также создан новый датасет, состоящий из четырёх-пяти публичных выступлений разных людей на YouTube.

Эксперименты для одного синтезатора

Эксперименты проходили на Blizzard Challenge 2011 и 2013 с использованием наборов данных LJ, Nancy и аудиокниг на английском. Результаты сравнивались с истинными образцами, а также с методами Char2Wav и Tacotron. Ниже показаны оценки MOS. Как можно видеть, результаты превосходят эти два решения, но всё ещё хуже, чем истинные.

Нейросеть научилась реалистично имитировать речь человека

Matthew Keefe / Flickr

Британская компания Google DeepMind представила новый алгоритм для синтеза человеческой речи под названием WaveNet. В его основе лежит использование нейросетей, что позволяет добиться более реалистичной имитации голоса. Статья разработчиков, описывающая программу, доступна на сайте компании.

Как правило, в системах преобразования текста в речь используются готовые аудиозаписи голоса людей. Программа выделяет из них звуки и компонует их на основе введенных данных, что позволяет добиться довольно естественного звучания — хорошим примером в данном случае может служить помощник Siri или Google Assistant. Однако такой подход, известный как компиляционный синтез, весьма ограничен, так как для того, чтобы можно было создать нового голосового ассистента или просто изменить тон речи, требуется наличие человека, который запишет все возможные звуки для базы данных.

Образец компиляционного синтеза речи:

Существует также и альтернативный метод, параметрический синтез, которой использует полностью сгенерированный компьютером голос, и не требует библиотеки «живой» речи. Его работа основывается на уже заданных параметрах, соответствующих правилам грамматики и принципам произнесения звуков. Тем не менее, на выходе получается достаточно «машинная» по звучанию речь.

Образец параметрического синтеза речи:

Работа алгоритма WaveNet заключается в поточечной генерации профиля звуковой волны с помощью специальной нейросети. Ее обучили с помощью записей голоса диктора, но звуковые фрагменты этой базы система не использует, она генерирует их самостоятельно. При создании программы разработчики использовали нейросеть типа FCN (Fully convolutional network), архитектура которой была вдохновлена рекуррентной нейросетью PixelRNN и сверточной нейросетью PixelCNN. Каждый сверточный слой в этой сети имеет свой множитель расширения, благодаря которому ее рецептивное поле, то есть часть информации, которую обрабатывают нейроны, растет экспоненциально. В сущности, это позволяет программе охватывать сразу большое количество временных шагов. В нейросети также предусмотрена обратная связь, поэтому каждый последующий звук машинной речи генерируется на основе множества предыдущих. Как сообщают разработчики, WaveNet может помнить 2–3 предыдущие фонемы.

Анимация, показывающая принцип работы FCN-нейросети в WaveNet

Как генерировать правдоподобную речь с помощью нейросетей

GAN-TTS — это генеративная модель для задачи преобразования текста в речь. Архитектура модели состоит из условного feed-forward генератора и ансамбля дискриминаторов. Дискриминаторы оценивают сгенерированную аудиозапись на случайных окнах разного размера. Дискриминаторы анализируют речь с точки зрения реалистичности и того, насколько верно произносится входной текст. Исследователи вводят две количественные метрики для оценки качества сгенерированной речи: Frechet DeepSpeech Distance и Kernel DeepSpeech Distance. Прослушать, как нейросеть озвучивает текст абстракта исследования можно по ссылке .

Прошлое применение генеративных состязательных моделей для задачи генерации аудио было ограничено. Авторегрессионные модели, как WaveNet, оставались state-of-the-art для моделирования человеческой речи. GAN-TTS демонстирует, как GAN справляется с задачей text-to-speech. Чтобы измерить работу модели, исследователи используют субъективную оценку добровольцев и собственные количественные метрики. Введенные количестве метрики кореллируют с человеческой оценкой.

Ключевые преимущества модели — генерация более правдоподобной речи по сравнению с state-of-the-art и способность к параллелизации благодаря структуре генератора. Авторегрессионные модели, которые часто используются для задач генерации речи, менее параллелизуемы.

Некоторые дискриминаторы принимают во внимание лингвистические характеристики сгенерированной речи, чтобы оценить, насколько речь соответствует входному тексту. Остальные дискриминаторы фокусируются на реалистичности генерируемой речи.

Архитектура модели

Модели обучаются на датасете, который состоит из аудиозаписей человеческой речи с соответствующими лингвистическими признаками и текстом речи.

Генератор

Генератор получает на вход лингвистические и звуковые характеристики. На выходе генератор отдает аудиосигнал на 24 килогерц. Генератор состоит из 7 блоков, каждый из которых — это два остаточных блока . Исследователи используют расширенные сверточные слои , чтобы модель могла выучивать долгосрочные зависимости.

Финальный сверточный слой с тангенсом в качестве функции активации производит одноканальный аудиосигнал.

Составные части генератора (GBlock) и дискриминатора (DBlock)

Дискриминатор

Дискриминатор состоит из блоков, которые схожи с блоками в генераторе, но без батч-нормализации . Архитектура условного блока и стандартного блока показана выше на изображении (b и c). Единственное отличие условного блока от стандартного — дополнительный эмбеддинг лингвистических характеристик добавляется к первому сверточному слою. Дискриминатор применяется к случайным маленьким окнам сгенерированного аудио.

Визуализация структуры дискриминатора

Оценка результатов модели

Исследователи проверили, какие части модели вносят больший вклад в качество предсказаний. Помимо этого, они сравнили полную версию модели с стандартной WaveNet и ее параллелизованной версией. Ниже видно, что GAN-TTS выдает сравнимые с state-of-the-art результаты.

Ablation исследование GAN-TTS и сравнение модели с WaveNet. MOS — человеческая оцнка реалистичности, FDSD и KDSD — предложенные количественные метрики

Читать еще:  Flyme 6 с элементами искусственного интеллекта перешла на стадию бета-тестирования

Преобразование текста в речь

A Speech service feature that converts text to lifelike speech

Бесплатная пробная версия Cognitive Services

7-дневная пробная версия

Бесплатная пробная версия Cognitive Services

  • Кредитная карта не требуется
  • По окончании действия пробной версии данные не сохраняются

Бесплатная учетная запись Azure

Пробное использование с бесплатной учетной записью Azure

  • $200 на счете Azure
  • Неограниченный бесплатный доступ
  • Сохранение данных и настроек

Существующая учетная запись Azure

Уже есть учетная запись Azure?

  • Полный отчет по Соглашению об уровне обслуживания
  • Производительность корпоративного уровня
  • Полная интеграция продуктов Azure
  • Простое увеличение масштаба по мере необходимости

Бесплатная пробная версия Cognitive Services

7-дневная пробная версия

Бесплатная пробная версия Cognitive Services

  • Кредитная карта не требуется
  • По окончании действия пробной версии данные не сохраняются

Бесплатная учетная запись Azure

Пробное использование с бесплатной учетной записью Azure

  • $200 на счете Azure
  • Неограниченный бесплатный доступ
  • Сохранение данных и настроек

Существующая учетная запись Azure

Уже есть учетная запись Azure?

  • Полный отчет по Соглашению об уровне обслуживания
  • Производительность корпоративного уровня
  • Полная интеграция продуктов Azure
  • Простое увеличение масштаба по мере необходимости

Войдите, чтобы продолжить

Вы почти готовы к созданию приложений в 7-дневной бесплатной ознакомительной версии.

Для начала войдите с использованием выбранной учетной записи

  • Обзор продукта
  • Компоненты
  • Безопасность
  • Стоимость
  • Документация
  • Больше

Bring your apps to life with natural-sounding voices

Build apps and services that speak naturally, choosing from more than 90 voices in over 40 languages. Differentiate your brand with a customized voice, and access voices with different speaking styles and emotional tones to fit your use case—all in your preferred programming language.

Реалистичная речь

Синтезируйте плавную естественную речь, которая соответствует системам ударения и интонации человеческих голосов.

Customizable voices

Create a unique voice that reflects your brand’s identity.

Fine-grained audio controls

Tune voice output for your scenarios by easily adjusting rate, pitch, pronunciation, pauses, and more.

Flexible deployment

Run Text to Speech anywhere—in the cloud or at the edge in containers.

Access a wide variety of voices for every scenario

Engage global audiences by using more than 90 voices and over 40 languages and variants. Bring your scenarios to life with highly expressive and humanlike voices. Neural Text to Speech supports several speaking styles, including chat, newscast, and customer service, and emotions like cheerfulness and empathy.

Речь в речь. Создаем нейронную сеть, которая подделывает голос

Содержание статьи

Генерация голоса

Голос человека — результат движения связок, языка, губ. В распоряжении компьютера только числа, изображающие записанную микрофоном волну. Как же компьютер создает звук, который мы можем услышать из динамиков или наушников?

Текст в речь

Один из самых популярных и исследованных методов генерации звуков — прямое преобразование текста, который нужно воспроизвести, в звук. Самые ранние программы такого рода склеивали отдельные буквы в слова, а слова — в предложения.

С развитием программ-синтезаторов набор заранее записанных на микрофон фонем (букв) стал набором слогов, а затем и целых слов.

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

Звуки в речь

Этот способ генерации речи относительно быстро заменил собой первый, поскольку лучше имитировал человеческую речь: мы произносим не буквы, а звуки. Именно поэтому системы, основанные на международном фонетическом алфавите — IPA, более качественны и приятны на слух.

В основу этого метода легли заранее записанные в студии отдельные звуки, которые склеиваются в слова. По сравнению с первым подходом заметно качественное улучшение: вместо простого склеивания аудиодорожек используются методы смешивания звуков как на основе математических законов, так и на основе нейронных сетей.

Речь в речь

Относительно новый подход полностью основан на нейронных сетях. Рекурсивная архитектура WaveNet, построенная исследователями из DeepMind, позволяет преобразовывать звук или текст в другой звук напрямую, без привлечения заранее записанных строительных блоков (научная статья).

Ключ к этой технологии — правильное использование рекурсивных нейронов Long Short-Term Memory, которые сохраняют свое состояние не только на уровне каждой отдельной клетки нейронной сети, но и на уровне всего слоя.

Схема работы WaveNet

В целом эта архитектура работает с любым видом звуковой волны, вне зависимости от того, музыка это или голос человека.

На основе WaveNet есть несколько проектов.

  • A WaveNet for speech denoising — уничтожение шумов в записи голоса;
  • Tacotron 2 (статья в блоге Google) — генерация звука из мел-спектрограммы;
  • WaveNet Voice Enhancement — улучшение качества голоса в записи.

Для воссоздания речи такие системы используют генераторы звуковой нотации из текста и генераторы интонаций (ударения, паузы), чтобы создать натурально звучащий голос.

Это самая передовая технология создания речи: она не просто склеивает или смешивает непонятные машине звуки, но самостоятельно создает переходы между ними, делает паузы между словами, меняет высоту, силу и тембр голоса в угоду правильному произношению — или любой другой цели.

Создание поддельного голоса

Для самой простой идентификации, про которую я рассказывал в своей предыдущей статье, подойдет практически любой метод — особенно удачливым хакерам может хватить даже необработанных пяти секунд записанного голоса. Но для обхода более серьезной системы, построенной, например, на нейросетях, нам понадобится настоящий, качественный генератор голоса.

Продолжение доступно только участникам

Вариант 1. Присоединись к сообществу «Xakep.ru», чтобы читать все материалы на сайте

Членство в сообществе в течение указанного срока откроет тебе доступ ко ВСЕМ материалам «Хакера», увеличит личную накопительную скидку и позволит накапливать профессиональный рейтинг Xakep Score! Подробнее

Ссылка на основную публикацию
Статьи c упоминанием слов:
Adblock
detector