В прошлом выпуске мы говорили о распознавании речи, сегодня же обсудим обратную задачу. Итак, как происходит синтез речи, или, иными словами, преобразование произвольного текста в голос — об этом в сегодняшнем выпуске!
Задача синтеза речи решается в несколько этапов. Прежде всего специальному алгоритму необходимо подготовить текст, чтобы роботу было удобно его читать: он записывает все числа словами и расшифровывает сокращения. Затем текст разбивается на отдельные словосочетания, которые нужно читать с непрерывной интонацией — для этого система ориентируется на знаки препинания и устойчивые конструкции.
Далее для всех слов составляется фонетическая транскрипция. Чтобы понять, как читать слово и где поставить в нём ударение, система обращается к встроенным, составленным людьми словарям. Если нужное слово в них отсутствует, компьютер строит транскрипцию самостоятельно, опираясь на академические правила. Если же их оказывается недостаточно, в дело вступают статистические правила: система перебирает записи дикторов и определяет, на какой слог они делали ударение.
Когда транскрипция составлена, компьютер рассчитывает, сколько в ней фреймов, или, иными словами, фрагментов длиной 25 миллисекунд. Далее каждый фрейм описывается множеством параметров: частью какой фонемы он является, какое место в ней занимает, в какой слог входит эта фонема. Также описывается ударность или безударность фонемы, в случае если это гласная. Кроме того, система создает правильную интонацию, используя данные о фразе и предложении.
Затем система задействует акустическую модель, чтобы прочитать подготовленный текст. Она устанавливает соответствия между фонемами с определёнными характеристиками и звуками. Акустическая модель знает, как правильно произнести фонему и придать верную интонацию предложению благодаря машинному обучению. Чем больше данных, на которых учится модель, тем лучше выдаваемый ей результат.
Что же касается голосов, то узнаваемыми их делает, в первую очередь, тембр, который зависит от особенностей строения органов речевого аппарата. Тембр любого голоса можно смоделировать, то есть описать его характеристики — для этого достаточно начитать в студии небольшой объем текстов. После этого данные о тембре можно использовать при синтезе речи на любом языке. Когда системе нужно что-то сказать, она использует генератор звуковых волн — вокодер. В него загружается информация о частотных характеристиках фразы, полученная от акустической модели, а также данные о тембре, который придаёт голосу узнаваемую окраску.
Стоит отметить, что современные технологии синтеза речи имеют некоторые проблемы. Первая их них заключается в искусственности. Любая синтезированная речь воспринимается человеком с трудом, и он вынужден задействовать дополнительные ресурсы для ее понимания. Тем самым люди могут нормально воспринимать синтезированную речь только около 20 минут. Также у синтезированной речи, как правило, отсутствует эмоциональная окраска, и она имеет низкую помехоустойчивость. Иными словами, восприятию синтезированной речи человеку мешают любые, даже самые небольшие посторонние шумы.