для чего синтез речи
Обзор технологий синтеза речи
Всем привет! Меня зовут Влад и я работаю data scientist-ом в команде речевых технологий Тинькофф, которые используются в нашем голосовом помощнике Олеге.
В этой статье я бы хотел сделать небольшой обзор технологий синтеза речи, использующихся в индустрии, и поделиться опытом нашей команды построения собственного движка синтеза.
Синтез речи
Синтез речи — это создание звука на основе текста. Эту задачу сегодня решают двумя подходами:
Речь моделей unit selection имеет высокое качество, низкую вариативность и требует большого объема данных для обучения. В то же время для тренировки параметрических моделей необходимо гораздо меньшее количество данных, они генерируют более разнообразные интонации, но до недавнего времени страдали от общего достаточно низкого качества звука по сравнению с подходом unit selection.
Однако с развитием технологий глубокого обучения модели параметрического синтеза достигли существенного прироста по всем метрикам качества и способны создавать речь, практически неотличимую от человеческой.
Метрики качества
Прежде чем говорить о том, какие модели синтеза речи лучше, нужно определить метрики качества, по которым будет проводиться сравнение алгоритмов.
Поскольку один и тот же текст можно прочитать бесконечным количеством способов, априори правильного способа для произношения конкретной фразы не существует. Поэтому зачастую метрики качества синтеза речи субъективны и зависят от восприятия слушающего.
Стандартная метрика — это MOS (mean opinion score), усредненная оценка естественности речи, выданная асессорами для синтезированных аудио по шкале от 1 до 5. Единица означает совсем неправдоподобное звучание, а пятерка — речь, неотличимую от человеческой. Реальные записи людей обычно получают значения примерно 4,5, и значение больше 4 считается достаточно высоким.
Как работает синтез речи
Первый шаг к построению любой системы синтеза речи — сбор данных для обучения. Обычно это аудиозаписи высокого качества, на которых диктор читает специально подобранные фразы. Примерный размер датасета, необходимый для обучения моделей unit selection, составляет 10—20 часов чистой речи [2], в то время как для нейросетевых параметрических методов верхняя оценка равна примерно 25 часам [4, 5].
Обсудим обе технологии синтеза.
Unit selection
Обычно записанная речь диктора не может покрыть всех возможных случаев, в которых будет использоваться синтез. Поэтому суть метода состоит в разбиении всей аудиобазы на небольшие фрагменты, называющиеся юнитами, которые затем склеиваются друг с другом с использованием минимальной постобработки. В качестве юнитов обычно выступают минимальные акустические единицы языка, такие как полуфоны или дифоны [2].
Весь процесс генерации состоит из двух этапов: NLP frontend, отвечающий за извлечение лингвистического представления текста, и backend, который вычисляет функцию штрафа юнитов для заданных лингвистических признаков. В NLP frontend входят:
Обычно NLP frontend реализован с помощью вручную прописанных правил для конкретного языка, однако в последнее время происходит все больший уклон в сторону использования моделей машинного обучения [7].
Штраф, оцениваемый backend-подсистемой, — это сумма target cost, или соответствия акустического представления юнита для конкретной фонемы, и concatenation cost, то есть уместности соединения двух соседних юнитов. Для оценки штраф функций можно использовать правила или уже обученную акустическую модель параметрического синтеза [2]. Выбор наиболее оптимальной последовательности юнитов с точки зрения выше определенных штрафов происходит с помощью алгоритма Витерби [1].
Примерные значения MOS моделей unit selection для английского языка: 3,7—4,1 [2, 4, 5].
Достоинства подхода unit selection:
Параметрический синтез речи
В основе параметрического подхода лежит идея о построении вероятностной модели, оценивающей распределение акустических признаков заданного текста.
Процесс генерации речи в параметрическом синтезе можно разделить на четыре этапа:
Для обучения duration и акустической моделей можно использовать скрытые марковские модели [3], глубокие нейронные сети или их рекуррентные разновидности [6]. Традиционный вокодер — это алгоритм, основанный на source-filter модели [3], которая предполагает, что речь — это результат применения линейного фильтра шума к первоначальному сигналу.
Общее качество речи классических параметрических методов оказывается достаточно низким из-за большого количества независимых предположений об устройстве процесса генерации звука.
Однако с приходом технологий глубокого обучения стало возможным обучать end-to-end модели, которые напрямую предсказывают акустические признаки по буквам. Например, нейронные сети Tacotron [4] и Tacotron 2 [5] принимают на вход последовательность букв и возвращают мел-спектрограмму с помощью алгоритма seq2seq [8]. Таким образом шаги 1—3 классического подхода заменяются одной нейросетью. На схеме ниже показана архитектура сети Tacotron 2, достигающей достаточно высокого качества звука.
Другим фактором существенного прироста в качестве синтезируемой речи стало применение нейросетевых вокодеров вместо алгоритмов цифровой обработки сигналов.
Первым таким вокодером была нейронная сеть WaveNet [9], которая последовательно, шаг за шагом, предсказывала значения амплитуды звуковой волны.
Благодаря использованию большого количества сверточных слоев с пропусками для захвата большего контекста и skip connection в архитектуре сети удалось достичь примерно 10%-го улучшения MOS по сравнению с моделями unit selection. На схеме ниже представлена архитектура сети WaveNet.
Главный недостаток WaveNet — низкая скорость работы, связанная с последовательной схемой сэмплирования сигнала. Эту проблему можно решить либо с помощью инженерной оптимизации для конкретной архитектуры железа, либо заменой схемы сэмплирования на более быструю.
Оба подхода были успешно реализованы в индустрии. Первый — в Tinkoff.ru, а в рамках второго подхода компания Google представила сеть Parallel WaveNet [10] в 2017 году, наработки которой используются в Google Assistant.
Примерные значения MOS для нейросетевых методов: 4,4—4,5 [5, 11], то есть синтезируемая речь практически не отличается от человеческой.
Достоинства параметрического синтеза:
Как работает синтез речи в Tinkoff
Как следует из обзора, методы параметрического синтеза речи, основанные на нейросетях, на текущий момент существенно превосходят по качеству подход unit selection и гораздо проще для разработки. Поэтому для построения собственного движка синтеза мы использовали именно их.
Для обучения моделей было использовано около 25 часов чистой речи профессионального диктора. Тексты для чтения были специально подобраны так, чтобы наиболее полно покрыть фонетику разговорной речи. Кроме того, чтобы добавить синтезу большее разнообразие в интонации, мы попросили диктора читать тексты с выражением, зависящим от контекста.
Архитектура нашего решения концептуально выглядит так:
Благодаря такой архитектуре наш движок генерирует выразительную речь высокого качества в режиме реального времени, не требует построения фонемного словаря и дает возможность управлять ударениями в отдельных словах. Примеры синтезированных аудио можно прослушать, перейдя по ссылке.
Ссылки:
[1] A. J. Hunt, A. W. Black. Unit selection in a concatenative speech synthesis system using a large speech database, ICASSP, 1996.
[2] T. Capes, P. Coles, A. Conkie, L. Golipour, A. Hadjitarkhani, Q. Hu, N. Huddleston, M. Hunt, J. Li, M. Neeracher, K. Prahallad, T. Raitio, R. Rasipuram, G. Townsend, B. Williamson, D. Winarsky, Z. Wu, H. Zhang. Siri On-Device Deep Learning-Guided Unit Selection Text-to-Speech System, Interspeech, 2017.
[3] H. Zen, K. Tokuda, A. W. Black. Statistical parametric speech synthesis, Speech Communication, Vol. 51, no. 11, pp. 1039-1064, 2009.
[4] Yuxuan Wang, RJ Skerry-Ryan, Daisy Stanton, Yonghui Wu, Ron J. Weiss, Navdeep Jaitly, Zongheng Yang, Ying Xiao, Zhifeng Chen, Samy Bengio, Quoc Le, Yannis Agiomyrgiannakis, Rob Clark, Rif A. Saurous. Tacotron: Towards End-to-End Speech Synthesis.
[5] Jonathan Shen, Ruoming Pang, Ron J. Weiss, Mike Schuster, Navdeep Jaitly, Zongheng Yang, Zhifeng Chen, Yu Zhang, Yuxuan Wang, RJ Skerry-Ryan, Rif A. Saurous, Yannis Agiomyrgiannakis, Yonghui Wu. Natural TTS Synthesis by Conditioning WaveNet on Mel Spectrogram Predictions.
[6] Heiga Zen, Andrew Senior, Mike Schuster. Statistical parametric speech synthesis using deep neural networks.
[7] Hao Zhang, Richard Sproat, Axel H. Ng, Felix Stahlberg, Xiaochang Peng, Kyle Gorman, Brian Roark. Neural Models of Text Normalization for Speech Applications.
[8] Ilya Sutskever, Oriol Vinyals, Quoc V. Le. Sequence to Sequence Learning with Neural Networks.
[9] Aaron van den Oord, Sander Dieleman, Heiga Zen, Karen Simonyan, Oriol Vinyals, Alex Graves, Nal Kalchbrenner, Andrew Senior, Koray Kavukcuoglu. WaveNet: A Generative Model for Raw Audio.
[10] Aaron van den Oord, Yazhe Li, Igor Babuschkin, Karen Simonyan, Oriol Vinyals, Koray Kavukcuoglu, George van den Driessche, Edward Lockhart, Luis C. Cobo, Florian Stimberg, Norman Casagrande, Dominik Grewe, Seb Noury, Sander Dieleman, Erich Elsen, Nal Kalchbrenner, Heiga Zen, Alex Graves, Helen King, Tom Walters, Dan Belov, Demis Hassabis. Parallel WaveNet: Fast High-Fidelity Speech Synthesis.
[11] Wei Ping Kainan Peng Jitong Chen. ClariNet: Parallel Wave Generation in End-to-End Text-to-Speech.
[12] Dario Rethage, Jordi Pons, Xavier Serra. A Wavenet for Speech Denoising.
Нейросетевой синтез речи своими руками
Синтез речи на сегодняшний день применяется в самых разных областях. Это и голосовые ассистенты, и IVR-системы, и умные дома, и еще много чего. Сама по себе задача, на мой вкус, очень наглядная и понятная: написанный текст должен произноситься так, как это бы сделал человек.
Некоторое время назад в область синтеза речи, как и во многие другие области, пришло машинное обучение. Выяснилось, что целый ряд компонентов всей системы можно заменить на нейронные сети, что позволит не просто приблизиться по качеству к существующим алгоритмам, а даже значительно их превзойти.
Я решил попробовать сделать полностью нейросетевой синтез своими руками, а заодно и поделиться с сообществом своим опытом. Что из этого получилось, можно узнать, заглянув под кат.
Синтез речи
Чтобы построить систему синтеза речи, нужна целая команда специалистов из разных областей. По каждой из них существует целая масса алгоритмов и подходов. Написаны докторские диссертации и толстые книжки с описанием фундаментальных подходов. Давайте для начала поверхностно разберемся с каждой их них.
Лингвистика
Просодика
Фонетика
Акустика
Реализации
Мы попытаемся найти End-2-End (E2E) реализацию синтеза, которая бы взяла на себя все сложности, связанные с тонкостями языка. Другими словами, мы хотим построить систему, основанную на нейронных сетях, которая бы на вход принимала текст, а на выходе давала бы синтезированную речь. Можно ли обучить такую сеть, которая позволила бы заменить целую команду специалистов из узких областей на команду (возможно даже из одного человека), специализирующуюся на машинном обучении?
На запрос end2end tts Google выдает целую массу результатов. Во главе — реализация Tacotron от самого Google. Самым простым мне показалось идти от конкретных людей на Github, которые занимаются исследованиям в этой области и выкладывают свои реализации различных архитектур.
Я бы выделил троих:
Автор выложил результаты работы синтеза по трем различным базам и на разных стадиях обучения. На мой вкус, как не носителя языка, они звучат весьма прилично. Последняя из баз на английском языке (Kate Winslet’s Audiobook) содержит всего 5 часов речи, что для меня тоже является большим преимуществом, так как моя база содержит примерно сопоставимое количество данных.
Через некоторое время после того, как я обучил свою систему, в репозитории появилась информация о том, что автор успешно обучил модель для корейского языка. Это тоже довольно важно, так как языки могут сильно разниться и робастность по отношению к языку — это приятное дополнение. Можно ожидать, что в процессе обучения не потребуется особого подхода к каждому набору обучающих данных: языку, голосу или еще каким-то характеристикам.
Еще один важный момент для такого рода систем — это время обучения. Tacotron на том железе, которое у меня есть, по моим оценкам учился бы порядка 2 недель. Для прототипирования на начальном уровне мне показалось это слишком ресурсоемким. Педали, конечно, крутить не пришлось бы, но на создание какого-то базового прототипа потребовалось бы очень много календарного времени. DCTTS в финальном варианте учится за пару дней.
У каждого исследователя есть набор инструментов, которыми он пользуется в своей работе. Каждый подбирает их себе по вкусу. Я очень люблю PyTorch. К сожалению, на нем реализации DCTTS я не нашел, и пришлось использовать TensorFlow. Возможно в какой-то момент выложу свою реализацию на PyTorch.
Данные для обучения
Хорошая база для реализации синтеза — это основной залог успеха. К подготовке нового голоса подходят очень основательно. Профессиональный диктор произносит заранее подготовленные фразы в течение многих часов. Для каждого произнесения нужно выдержать все паузы, говорить без рывков и замедлений, воспроизвести правильный контур основного тона и все это в купе с правильной интонацией. Кроме всего прочего, не все голоса одинаково приятно звучат.
У меня на руках была база порядка 8 часов, записанная профессиональным диктором. Сейчас мы с коллегами обсуждаем возможность выложить этот голос в свободный доступ для некоммерческого использования. Если все получится, то дистрибутив с голосом помимо самих записей будет включать в себя точные текстовки для каждой из них.
Начнем
Мы хотим создать сеть, которая на вход принимала бы текст, а на выходе давала бы синтезированный звук. Обилие реализаций показывает, что это возможно, но есть конечно и ряд оговорок.
Основные параметры системы обычно называют гиперпараметрами и выносят в отдельный файл, который называется соответствующим образом: hparams.py или hyperparams.py, как в нашем случае. В гиперпараметры выносится все, что можно покрутить, не трогая основной код. Начиная от директорий для логов, заканчивая размерами скрытых слоев. После этого гиперпараметры в коде используются примерно вот так:
Далее по тексту все переменные имеющие префикс hp. берутся именно из файла гиперпараметров. Подразумевается, что эти параметры не меняются в процессе обучения, поэтому будьте осторожны перезапуская что-то с новыми параметрами.
Текст
Для обработки текста обычно используются так называемый embedding-слой, который ставится самым первым. Суть его простая — это просто табличка, которая каждому символу из алфавита ставит в соответствие некий вектор признаков. В процессе обучения мы подбираем оптимальные значения для этих векторов, а когда синтезируем по готовой модели, просто берем значения из этой самой таблички. Такой подход применяется в уже довольно широко известных Word2Vec, где строится векторное представление для слов.
Для примера возьмем простой алфавит:
В процессе обучения мы выяснили, что оптимальные значения каждого их символов вот такие:
Тогда для строчки aabbcc после прохождения embedding-слоя мы получим следующую матрицу:
Эта матрица дальше подается на другие слои, которые уже не оперируют понятием символ.
В этот момент мы видим первое ограничение, которое у нас появляется: набор символов, который мы можем отправлять на синтез, ограничен. Для каждого символа должно быть какое-то ненулевое количество примеров в обучающих данных, лучше с разным контекстом. Это значит, что нам нужно быть осторожными в выборе алфавита.
В своих экспериментах я остановился на варианте:
Это алфавит русского языка, дефис, пробел и обозначение конца строки. Тут есть несколько важных моментов и допущений:
Почти все системы оперируют не самим сигналом, а разного рода спектрами полученными на окнах с определенным шагом. Я не буду вдаваться в подробности, по этой теме довольно много разного рода литературы. Сосредоточимся на реализации и использованию. В реализации DCTTS используются два вида спектров: амплитудный спектр и мел-спектр.
Считаются они следующим образом (код из этого листинга и всех последующих взят из реализации DCTTS, но видоизменен для наглядности):
Для вычислений почти во всех проектах E2E-синтеза используется библиотека LibROSA (https://librosa.github.io/librosa/). Она содержит много полезного, рекомендую заглянуть в документацию и посмотреть, что в ней есть.
Теперь давайте посмотрим как амплитудный спектр (magnitude spectrum) выглядит на одном из файлов из базы, которую я использовал:
Такой вариант представления оконных спекторов называется спектрограммой. На оси абсцисс располагается время в секундах, на оси ординат — частота в герцах. Цветом выделяется амплитуда спектра. Чем точка ярче, тем значение амплитуды больше.
Мел-спектр — это амплитудный спектр, но взятый на мел-шкале с определенным шагом и окном. Количество шагов мы задаем заранее, в большинстве реализаций для синтеза используется значение 80 (задается параметром hp.n_mels). Переход к мел-спектру позволяет сильно сократить количество данных, но этом сохранить важные для речевого сигнала характеристики. Мел-спектрограмма для того же файла выглядит следующим образом:
Обратите внимание на прореживание мел-спектров во времени на последней строке листинга. Мы берем только каждый 4 вектор (hp.r == 4), соответственно уменьшая тем самым частоту дискретизации. Синтез речи сводится к предсказанию мел-спектров по последовательности символов. Идея простая: чем меньше сети приходится предсказывать, тем лучше она будет справляться.
Хорошо, мы можем получить спектрограмму по звуку, но послушать мы ее не можем. Соответственно нам нужно уметь восстанавливать сигнал обратно. Для этих целей в системах часто используется алгоритм Гриффина-Лима и его более современные интерпретации (к примеру, RTISILA, ссылка). Алгоритм позволяет восстановить сигнал по его амплитудным спектрам. Реализация, которую использовал я:
А сигнал по амплитудной спектрограмме можно восстановить вот так (шаги, обратные получению спектра):
Давайте попробуем получить амплитудный спектр, восстановить его обратно, а затем послушать.
7 способов использовать синтез речи в обучении
Равные возможности обучения. Для студентов с дислексией, изучающих родной или иностранный язык, может стать трудностью создание инклюзивной школьной среды. Доказано, что TTS улучшает успеваемость среди таких учащихся. Использование технологии также сэкономит средства на создании индивидуальных программ обучения, так как TTS более эффективное решение для проблем с чтением.
Упрощение процесса чтения. Для большинства учеников чтение — утомительный процесс. Но его можно упростить с помощью технологии. Например, когда студенту надоело читать, то он может надеть наушники и продолжить с помощью TTS. Исследования показывают, что технология помогает сконцентрироваться на содержании материала, а не процессе чтения, что улучшает его понимание.
Подставьте в блок любой текст и послушайте, как он звучит. В демо его можно прочитать с разной эмоциональной окраской, а в полной — использовать любые голоса. Представьте, что достаточно нажать на кнопку «Озвучить» в электронной книге или учебники, тем самым упростив процесс чтения.
TTS помогает работать с текстом. Часто люди ленятся вычитывать написанный текст или просто чувствуют себя неловко, когда делаю это вслух. Но послушать свои слова бывает полезно: можно заметить пропущенные знаки препинания, опечатки и неблагозвучие.
Виртуальный HR-ассистент. На его можно переложить задачи по адаптации новых сотрудников: разработать программу обучения, добавить базу знаний и FAQ. Так даже старый сотрудник может без стеснения задать вопросы.
Интерактивное обучение. Вместе с системой компьютерного зрения TTS можно превратить в виртуального наставника, который будет обучать работе с оборудованием. Например, давать подсказки по ремонту автомобиля или учить жарить котлеты.
Платформы с виртуальной реальностью, искусственным интеллектом и распознаванием речи могут обеспечить сотрудникам персонализированный подход. Например, сотрудники отделов продаж могут обучаться на виртуальных клиентах и общаться с машиной как с реальным человеком. Это поможет им подготовиться ко встречам с настоящими клиентами.
Проверьте себя с помощью нашего теста. Попробуйте угадать, где говорит робот, а где — реальный человек.
Языковая практика. Это важный момент в изучении иностранного языка, потому что таким образом запрекляется материал и запоминается произношение. Но не все могут позволить общение с носителем, поездку в языковой лагерь, а кто-то просто стесняется говорить с другими на иностранном. С помощью разговорных технологий можно снять этот барьер.
Сейчас мы разрабатываем чат-бота, который помогает изучать английский язык. Человек общается с ботом со встроенным GPT-2, он фиксирует неправильное произношение и другие ошибки в речи, а затем выдает отчет и предлагает повторить эти слова.
Развитие грамотности. На планете более 780 млн не умеют читать и писать. В основном это жители Центральной Африки и Западной Азии, где проживает 76% всех неграмотных людей. Системы синтеза и распознавания речи способны сделать для таких людей информацию и обучение доступнее. Мы безвозмездно предоставляем 1% наших мощностей для реализации проектов для малограмотного населения.
Синтез речи (Text To Speech) основан на машинном обучении. Технологию можно использовать для преобразования текста в речь, генерации музыки, речи, создавать устройства с голосовой поддержкой, разработки систем навигации и реализации доступности для людей с нарушениями зрения. Например, с помощью TTS Стивен Хокинг общался с другими людьми.
Распознавание речи (Automatic Speech Recognition) сложнее, чем TTS, потому что нужно преобразовать разговорную речь в неидеальных условиях, где есть побочные шумы, особенности произношения и другие помехи. Чаще всего технология используется в виртуальных помощниках, например, Сири или Алекса.
Понимание естественного языка (Natural Language Understanding) используется с двумя предыдущими технологиями. С ее помощью можно автоматизировать работу колл-центров и служб поддержки, научить общаться ботов и умные устройства.
Lipsync позволяет сопоставить движение губ говорящего или поющего с предварительно записанным голосом, который будут слышать люди. С ее помощью можно «оживить» виртуального ассистента, учителя или игрового персонажа.
GPT-2 — языковая модель, которая обучалась на 8 млн веб-страниц. Она умеет предсказывать следующее слово в тексте, учитывая предыдущий контекст. Модель также распознает текст, отвечает на вопросы и переводит фразы без дополнительного обучения.
BERT — лингвистическая модель от Google, помогающая понимать и обрабатывать текст на естественном языке. Компании ее используют для обучения собственных моделей, а Google — для понимания контекста в поисковых запросах.
Имитация реальности. С помощью технологий можно воссоздать реальные ситуации и диалоги, чтобы отработать конкретные навыки. Например, кто-то хочет подтянуть английский язык перед поездкой, а другой — перед выступление на ИТ-конференции. Одному сотруднику нужно научиться общаться с премиальными клиентами, а другому — отрабатывать клиентский негатив. Для каждого из этих случаев можно создать реальные истории.
И если все это вам кажется неправдоподобным, то это только потому, что вы еще не слышали наших роботов. Послушайте, посмотрите, попробуйте поиграть с настройками нашего демо – и сравните их с голосами наших конкурентов.
Речевые технологии. Часть 1. Text-to-Speech: как работает синтез речи
Технологии распознавания и синтеза речи постоянно совершенствуются. Голосовые роботы уже берут на себя большую часть рутинных задач колл-центров, а ИИ способен не только понимать человеческую речь и распознавать эмоции, но и поддерживать разговор. Теперь в процессе общения по телефону отличить робота от человека бывает очень трудно. Все это делает жизнь людей проще, но речевые технологии созданы не для развлечения. Это инструмент бизнеса, который позволяет ему работать более эффективно.
Начнем погружение в речевые технологии с синтеза речи. Рассказываем, что такое технология Text-to-Speech и как она работает.
Что такое синтез речи
Синтез речи или Text-to-Speech (TTS) — технология преобразования текста в речь. Это компьютерное моделирование человеческой речи из текстового представления при помощи методов машинного обучения. Обычно синтез речи используют разработчики для создания голосовых роботов, например, IVR (интерактивный голосовой ответ).
Синтез речи экономит время и деньги бизнеса, так как генерирует звук автоматически и этим избавляет компанию от ручной записи (и перезаписи) аудиофайлов.
Благодаря синтезу речи можно прочитать любой текст голосом, максимально похожим на естественный. Чтобы сделать синтезированную речь натуральной, необходимо отточить ее тембр, плавность звучания, расстановку ударений и пауз, интонацию и другие области.
Для этого используются два подхода:
Как работает Text-to-Speech
Чтобы преобразовать текст в голос, система должна пройти три этапа: преобразовать текст в слова, выполнить фонетическую транскрибацию и преобразовать транскрибацию в речь.
1. Преобразовать текст в слова
Специальный алгоритм должен подготовить текст и преобразовать его в удобный формат для чтения. Проблема в том, что исходный текст помимо слов содержит числа, сокращения, даты и пр. Такие компоненты необходимо расшифровать и записать словами. Затем алгоритм разделяет текст на отдельные фразы, которые потом система прочитает с подходящей интонацией. Для этого при создании фраз робот ориентируется на пунктуацию и устойчивые конструкции в тексте.
2. Выполнить фонетическую транскрибацию
После того, как алгоритм разбил текст на фразы, ему необходимо выполнить фонетическую транскрибацию. Каждое предложение можно произносить по-разному в зависимости от смысла и эмоциональной окраски текста. Более того, даже одно слово может читаться разными способами. Чтобы понять, как произносится каждое слово и где именно ставить ударение, система использует встроенные словари. Если необходимое слово в них отсутствует, компьютер строит транскрибацию самостоятельно, используя академические правила. Если это тоже не помогает, то алгоритм опирается на записи дикторов и определяет, на каких частях слов они делали акценты.
Затем система рассчитывает, сколько в составленной транскрибации фрагментов длиной 25 миллисекунд. Каждый фрагмент она описывает различными параметрами: частью какой фонемы он является, какое место в ней занимает, в какой слог входит эта фонема и др. После этого система воссоздает подходящую интонацию с помощью данных о фразах и предложениях.
Фонема — минимальная единица звукового строя языка.
Преобразовать транскрибацию в речь
Чтобы прочитать подготовленный текст, система использует акустическую модель. Она устанавливает связь между фонемами и звуками, придавая им верную интонацию благодаря машинному обучению. Чтобы что-то сказать, робот использует генератор звуковых волн, в который загружаются все данные о частотных характеристиках фраз, полученные от акустической модели.
Как синтез речи используется в бизнесе
Синтез речи можно применять в следующих областях:
Например, компания KFC настроила автоматическую верификацию заявок HR с помощью Voximplant. HR-департамент KFC загружает в свою CRM-систему список телефонных номеров кандидатов и текст вакансии. Voximplant делает несколько попыток дозвона. После успешного соединения робот спрашивает, интересно ли получить информацию о работе (синтез речи). Если кандидат ответил утвердительно (распознавание речи), робот рассказывает о вакансии и ставит в очередь к сотруднику колл-центра. До начала разговора сотрудник KFC получает информацию о соискателе в текстовом виде.
Например, компания «КЛЮЧАВТО» с помощью Voximplant настроила автоматизированный сбор обратной связи клиентов по итогам покупки автомобиля и прохождения ТО. Робот приветствует клиента по имени и просит оценить ряд критериев по шкале от 1 до 10. Развернутые ответы транскрибируются и сохраняются в текстовом виде.
Решение от Voximplant
Voximplant предоставляет API, позволяющий легко интегрировать функциональность TTS в свое приложение или веб-сайт. Компании используют TTS для обработки входящих и исходящих вызовов, а также для управления голосовыми уведомлениями, при этом не требуется никакого оборудования или сложного программирования.
Voximplant поддерживает TTS на базе таких сервисов, как Amazon Polly, Google WaveNet, Dialogflow, IBM Watson, Яндекс SpeechKit, Tinkoff VoiceKit и Microsoft Azure. WaveNet также используется онлайн-сервисами Google: Google Assistant, Google Search и Google Translate. WaveNet генерирует необработанные аудиосигналы с помощью нейронной сети, обученной на большом количестве речевых образцов. Вся необходимая информация для генерации речи хранится в параметрах модели, а тон голоса можно контролировать с помощью настроек модели.
Особенности решения от Voximplant:
Бизнесу из любой сферы интересен ИИ, который может не просто озвучивать текстовые фрагменты, но и синтезировать их. Все это осуществимо благодаря машинному обучению. Но система синтеза речи должна также уметь подбирать интонацию, правильно расставлять ударения и паузы, различать слова-омографы (например, «замОк» и «зАмок»). Это непростая задача, поэтому для создания полноценной системы синтеза речи помимо компьютера может потребоваться большая команда специалистов.