Як це працює? | Синтез мови

У минулому випуску ми говорили про розпізнавання мовлення, сьогодні ж обговоримо зворотну задачу. Отже, як відбувається синтез мови, або, іншими словами, перетворення рукописного тексту в голос — про це у сьогоднішньому випуску!

Завдання синтезу мови вирішується в кілька етапів. Насамперед спеціальним алгоритмом необхідно підготувати текст, щоб роботу було зручно читати: він записує всі числа словами і розшифровує скорочення. Потім текст розбивається на окремі словосполучення, які потрібно читати з безперервною інтонацією — для цього система орієнтується на знаки пунктуації і стійкі конструкції.

Далі для всіх слів складається фонетична транскрипція. Щоб зрозуміти, як читати слово і де поставити в ньому наголос, система звертається до вбудованим, складеним людьми словників. Якщо потрібне слово в них відсутня, комп’ютер будує транскрипцію самостійно, спираючись на академічні правила. Якщо їх виявляється недостатньо, в справу вступають статистичні правила: система перебирає запису дикторів і визначає, на який слог вони робили наголос.

Коли транскрипція складена, комп’ютер розраховує, скільки в ній фреймів, або, іншими словами, фрагментів довжиною 25 мілісекунд. Далі кожен кадр описується множиною параметрів: частиною якоїсь фонеми він є, яке місце в ній займає, в якій склад входить ця фонема. Також описується ударность або безударность фонеми, у разі якщо це голосна. Крім того, система створює правильну інтонацію, використовуючи дані про фразі і пропозиції.

Потім система задіює акустичну модель, щоб прочитати підготовлений текст. Вона встановлює відповідності між фонемами з певними характеристиками і звуками. Акустична модель знає, як правильно вимовити фонему і надати вірну інтонацію пропозицією завдяки машинного навчання. Чим більше даних, на яких навчається модель, тим краще видається їй результат.

Що ж стосується голосів, то впізнаваними їх робить, у першу чергу, тембр, який залежить від особливостей будови органів мовного апарату. Тембр будь-якого голосу можна змоделювати, тобто описати його характеристики — для цього достатньо начитати в студії невеликий обсяг текстів. Після цього дані про тембрі можна використовувати при синтезі мовлення на будь-якій мові. Коли системі треба щось сказати, вона використовує генератор звукових хвиль — вокодер. У нього завантажується інформація про частотні характеристики фрази, отримана від акустичної моделі, а також дані про тембрі, який надає голосу впізнавану забарвлення.

Варто зазначити, що сучасні технології синтезу мови мають деякі проблеми. Перша з них полягає в штучності. Будь-яка синтезована мова сприймається людиною з працею, і він змушений залучити додаткові ресурси для її розуміння. Тим самим люди можуть нормально сприймати синтезовану мова тільки близько 20 хвилин. Також у синтезованої мови, як правило, відсутнє емоційне забарвлення, і вона має низьку завадостійкість. Іншими словами, сприйняття синтезованої мови людині заважають будь-які, навіть самі невеликі сторонні шуми.