О синтезе речи

В последнее время я немного наловчился в FL Studio, чтобы уже можно было создать что-то, похожее на фоновую музыку для примитивных игрушек, хотя ни нотной грамотой, ни музыкальным слухом я не владею.
Сильно поражают программные синтезаторы — даже довольно примитивные обвешаны кучей настроек, а ведь в серьёзном проекте их число запросто может доходить до сотни и всё это относительно неплохо бегает.
Но то синтезаторы музыки, а есть ещё и синтезаторы речи. Ну, те самые штуки, которые кривым робоголосом пытаются что-нибудь озвучить и редко способны работать без сервера.

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


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

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

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

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