Ничего никому не скажу?
Прежде чем описывать состояние технологий, важных для построения диалоговых интерфейсов, отметим, что все интересующие нас направления разработок - «невезучие». На каждое из них в свое время возлагались большие надежды, которым не суждено было сбыться. У каждого есть своя собственная сверхзадача, которая до сих пор не решена (и неизвестно, будет ли решена в обозримом будущем). Тем не менее исследования в этих областях нельзя считать тупиковыми или бессмысленными. Они не только дали множество полезных побочных результатов. Ключевые технологии тоже вполне работоспособны и востребованы - просто не так широко, как предполагалось вначале.
Впрочем, синтез речи в нашей защите не нуждается. Это, пожалуй, самая состоявшаяся и распространенная из речевых технологий. Возможно, потому, что у нее самая долгая история.
Первые «говорящие машины» пытались делать еще в XII-XIII веках, однако в Европе тех времен подобная деятельность рассматривалась как еретическая, все опытные образцы безжалостно уничтожались, и ни одно достоверное описание подобной машины до наших дней не дожило. Тем не менее молва широко разнесла слухи об успешных экспериментах Альберта Великого и Роджера Бэкона, спровоцировав шутников всех мастей на создание фальшивых «говорящих голов». Чудесные устройства представляли собой хитроумные механизмы, «отвечающие» на вопросы слушателей (на самом деле, отвечал на вопросы человек, который был либо спрятан в самом устройстве, либо находился в соседней комнате, вещая с помощью сложной системы труб). С одной из таких конструкций и встретился герой знаменитого романа Сервантеса.
В конце XVIII века конструкторы научились делать настоящие «говорящие машины», механически имитируя человеческий голосовой аппарат. Правда, считать издаваемые ими звуки «речью» можно с натяжкой. Так, представленные в 1770 году Санкт-Петербургской Академии резонаторы Кратценштайна могли произнести лишь пять гласных звуков. В арсенале построенной спустя двадцать лет машины фон Кемпелена было уже двадцать согласных, что теоретически позволяло оператору «произносить» целые фразы. Но вот понимал ли их кто-то, кроме изобретателя, - вопрос. По чертежам это не определишь, но достаточно сказать, что даже электронный синтезатор Voder, показанный на Нью-Йоркской торговой выставке 1939 года, «говорил» крайне невнятно (звуковые примеры можно послушать в сети: www.cs.indiana.edu/rhythmsp/aSa/parta.html .
Если оператор Voder’а должен был управлять устройством в реальном времени (что совсем не просто - на обучение операторов уходило несколько месяцев), то сегодняшние электронные системы синтеза речи в операторе не нуждаются, поскольку заняты чтением заранее подготовленных текстов. Их так и называют - системы TTS (text-to-speech).
В силу вышесказанного любая современная электронная система синтеза речи состоит из двух основных блоков. Первый отвечает за преобразование орфографического представления в фонетическое - ведь, как правило, слова пишутся не так, как слышатся, и больше того: зачастую прочтение того или иного слова регулируется не правилами языка, а сформировалось исторически (почти как в анекдоте про «вильку» и «тарельку», которые пишутся без мягкого знака и понять это невозможно, нужно запомнить). Кроме того, система осуществляет синтаксический (а иногда и семантический) анализ предложения для того, чтобы верно расставить интонационные акценты (просодическое оформление). В результате на выходе мы имеем подробнейшую инструкцию, как нужно читать предложение.
Описанное преобразование зависит в большей степени от языка и во всех системах реализуется примерно по одним и тем же принципам. А вот когда дело доходит непосредственно до синтеза речи, возможностей для маневра у разработчиков гораздо больше.
Как правило, современные системы синтеза не пытаются в духе ранних экспериментов воспроизвести работу голосового тракта человека. Выяснилось, что проще (и результат получается лучше) «собирать» речевые сообщения из предварительно записанных диктором фрагментов. Для некоторых применений нужен совсем небольшой (в несколько десятков слов) словарь, поэтому в качестве «кирпичиков» в таких системах используются отдельные слова и даже фразы (даже создание фонетического представления орфографического текста для таких систем необязательно - список фраз, которые они могут прочесть, невелик и зачастую достаточно однозначного сопоставления орфографического написания сохраненному в библиотеке сэмплу). Такие синтезаторы называются целостными. Системы, способные читать произвольные тексты, обычно являются компилятивными синтезаторами, то есть составляют из отдельных фрагментов нужные слова и собирают их в предложения.
Библиотека звуковых фрагментов составляется с помощью приглашенных дикторов, которые зачитывают специальным образом составленные тексты (главная задача при составлении таких текстов - охватить все возможные фонемы, которые встречаются в языке). Потом записи разбиваются на элементарные составляющие (иногда вручную, иногда автоматически - в этом случае необходим модуль распознавания речи), и каждому из фрагментов ставится в соответствие фонема.
Сложность реализации компилятивных синтезаторов заключается в том, что фонема - как любая абстракция - недостаточно полно описывает звуки, которые мы можем услышать в естественной речи. Одна и та же фонема может звучать немного по-разному, в зависимости от того, какие звуки ее предваряют и какие следуют за ней (коартикуляционный эффект), кроме того, необходимо учитывать интонационную составляющую (просодические эффекты).
Поэтому, строго говоря, записанные диктором сообщения обычно разбиваются не на фонемы, а на составляющие более низкого уровня (дифоны, аллофоны и т. д.), а помимо сопоставления отдельно взятого фрагмента фонеме в библиотеку записывается информация о сопутствующих коартикуляционных и просодических эффектах. Разработчиков интересует не только вхождение звука в ту или иную фонему, но и его громкость, длительность и высота, из-за чего количество помещенных в библиотеку «кирпичиков» намного превышает количество фонем (их в любом языке не больше нескольких десятков, а вхождений в хорошей библиотеке может быть несколько тысяч). Иногда, чтобы упростить разбиение и не раздувать библиотеку, реализацию просодических эффектов возлагают на DSP, но синтезированная таким способом речь звучит ненатурально, тогда как хорошие системы синтеза речи говорят «почти как люди».