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