Ничего никому не скажу?
Ничего никому не скажу?
Первым нагнулся к уху головы сам дон Антоньо; он спросил ее тихо,
но так, однако же, что все его услышали:
- Заклинаю тебя, голова, волшебною силою, в тебе заключенною:
скажи мне, какие у меня сейчас мысли?
И голова, не разжимая губ, ясно и отчетливо,
так, что все ее расслышали, ответила ему:
- Мыслей я не читаю.
При этих словах все обмерли, особливо когда удостоверились,
что во всей комнате, а равно и возле самого столика с волшебною головою,
нет живой души, которая могла бы за нее ответить.
Мигель де Сервантес Сааведра, «Хитроумный идальго Дон Кихот Ламанчский»
Прежде чем описывать состояние технологий, важных для построения диалоговых интерфейсов, отметим, что все интересующие нас направления разработок - «невезучие». На каждое из них в свое время возлагались большие надежды, которым не суждено было сбыться. У каждого есть своя собственная сверхзадача, которая до сих пор не решена (и неизвестно, будет ли решена в обозримом будущем). Тем не менее исследования в этих областях нельзя считать тупиковыми или бессмысленными. Они не только дали множество полезных побочных результатов. Ключевые технологии тоже вполне работоспособны и востребованы - просто не так широко, как предполагалось вначале.
Впрочем, синтез речи в нашей защите не нуждается. Это, пожалуй, самая состоявшаяся и распространенная из речевых технологий. Возможно, потому, что у нее самая долгая история.
Первые «говорящие машины» пытались делать еще в XII-XIII веках, однако в Европе тех времен подобная деятельность рассматривалась как еретическая, все опытные образцы безжалостно уничтожались, и ни одно достоверное описание подобной машины до наших дней не дожило. Тем не менее молва широко разнесла слухи об успешных экспериментах Альберта Великого и Роджера Бэкона, спровоцировав шутников всех мастей на создание фальшивых «говорящих голов». Чудесные устройства представляли собой хитроумные механизмы, «отвечающие» на вопросы слушателей (на самом деле, отвечал на вопросы человек, который был либо спрятан в самом устройстве, либо находился в соседней комнате, вещая с помощью сложной системы труб). С одной из таких конструкций и встретился герой знаменитого романа Сервантеса.
В конце XVIII века конструкторы научились делать настоящие «говорящие машины», механически имитируя человеческий голосовой аппарат. Правда, считать издаваемые ими звуки «речью» можно с натяжкой. Так, представленные в 1770 году Санкт-Петербургской Академии резонаторы Кратценштайна могли произнести лишь пять гласных звуков. В арсенале построенной спустя двадцать лет машины фон Кемпелена было уже двадцать согласных, что теоретически позволяло оператору «произносить» целые фразы. Но вот понимал ли их кто-то, кроме изобретателя, - вопрос. По чертежам это не определишь, но достаточно сказать, что даже электронный синтезатор Voder, показанный на Нью-Йоркской торговой выставке 1939 года, «говорил» крайне невнятно (звуковые примеры можно послушать в сети: www.cs.indiana.edu/rhythmsp/aSa/parta.html.
Если оператор Voder’а должен был управлять устройством в реальном времени (что совсем не просто - на обучение операторов уходило несколько месяцев), то сегодняшние электронные системы синтеза речи в операторе не нуждаются, поскольку заняты чтением заранее подготовленных текстов. Их так и называют - системы TTS (text-to-speech).
В силу вышесказанного любая современная электронная система синтеза речи состоит из двух основных блоков. Первый отвечает за преобразование орфографического представления в фонетическое - ведь, как правило, слова пишутся не так, как слышатся, и больше того: зачастую прочтение того или иного слова регулируется не правилами языка, а сформировалось исторически (почти как в анекдоте про «вильку» и «тарельку», которые пишутся без мягкого знака и понять это невозможно, нужно запомнить). Кроме того, система осуществляет синтаксический (а иногда и семантический) анализ предложения для того, чтобы верно расставить интонационные акценты (просодическое оформление). В результате на выходе мы имеем подробнейшую инструкцию, как нужно читать предложение.
Описанное преобразование зависит в большей степени от языка и во всех системах реализуется примерно по одним и тем же принципам. А вот когда дело доходит непосредственно до синтеза речи, возможностей для маневра у разработчиков гораздо больше.
Как правило, современные системы синтеза не пытаются в духе ранних экспериментов воспроизвести работу голосового тракта человека. Выяснилось, что проще (и результат получается лучше) «собирать» речевые сообщения из предварительно записанных диктором фрагментов. Для некоторых применений нужен совсем небольшой (в несколько десятков слов) словарь, поэтому в качестве «кирпичиков» в таких системах используются отдельные слова и даже фразы (даже создание фонетического представления орфографического текста для таких систем необязательно - список фраз, которые они могут прочесть, невелик и зачастую достаточно однозначного сопоставления орфографического написания сохраненному в библиотеке сэмплу). Такие синтезаторы называются целостными. Системы, способные читать произвольные тексты, обычно являются компилятивными синтезаторами, то есть составляют из отдельных фрагментов нужные слова и собирают их в предложения.
Библиотека звуковых фрагментов составляется с помощью приглашенных дикторов, которые зачитывают специальным образом составленные тексты (главная задача при составлении таких текстов - охватить все возможные фонемы, которые встречаются в языке). Потом записи разбиваются на элементарные составляющие (иногда вручную, иногда автоматически - в этом случае необходим модуль распознавания речи), и каждому из фрагментов ставится в соответствие фонема.
Сложность реализации компилятивных синтезаторов заключается в том, что фонема - как любая абстракция - недостаточно полно описывает звуки, которые мы можем услышать в естественной речи. Одна и та же фонема может звучать немного по-разному, в зависимости от того, какие звуки ее предваряют и какие следуют за ней (коартикуляционный эффект), кроме того, необходимо учитывать интонационную составляющую (просодические эффекты).
Поэтому, строго говоря, записанные диктором сообщения обычно разбиваются не на фонемы, а на составляющие более низкого уровня (дифоны, аллофоны и т. д.), а помимо сопоставления отдельно взятого фрагмента фонеме в библиотеку записывается информация о сопутствующих коартикуляционных и просодических эффектах. Разработчиков интересует не только вхождение звука в ту или иную фонему, но и его громкость, длительность и высота, из-за чего количество помещенных в библиотеку «кирпичиков» намного превышает количество фонем (их в любом языке не больше нескольких десятков, а вхождений в хорошей библиотеке может быть несколько тысяч). Иногда, чтобы упростить разбиение и не раздувать библиотеку, реализацию просодических эффектов возлагают на DSP, но синтезированная таким способом речь звучит ненатурально, тогда как хорошие системы синтеза речи говорят «почти как люди».
В ранних системах синтеза нужные сэмплы выбирались с помощью предварительно описанных правил, но уже в 70-х гг. прошлого века повсеместно стали применяться более эффективные методы, позволяющие быстро отыскать нужный фрагмент. Но просто сложить вместе найденные сэмплы - мало. На месте склейки будут слышны явные артефакты, «бульканье». Поэтому перед тем, как выдать слушателю результат, система синтеза сглаживает переходы между различными фрагментами.
Если все сделано правильно, на выходе мы услышим слегка монотонную, но вполне внятную и интонационно размеченную речь. К сожалению, полностью избавиться от эффектов склейки удается не всегда, а машинные интонации - хотя формально придраться вроде бы и не к чему - отличаются от человеческих (наверное, слишком уж они правильные). Делают ли системы синтеза ошибки? Конечно, особенно на незнакомых словах (см. табл. 1). Но у людей довольно гибкая система восприятия, и в большинстве случаев мы способны сразу же догадаться, какое слово машина прочитала неправильно, так что подобные ошибки нельзя считать критичными.
Сверхзадачей систем синтеза речи является, конечно, речь, не отличимая на слух от человеческой. Возможно ли это в рамках используемых сегодня моделей? Справедливости ради, признаем, что единого мнения на этот счет нет, к тому же с каждым годом появляется все больше сомнений, что эта задача имеет какое-то практическое значение. Потребители хотят знать, когда они говорят с компьютером, а когда - с человеком. И легкий «нечеловеческий» акцент как безошибочный маркер их, по большому счету, вполне устраивает.
- Тихо - сказал Форд. - Послушай, это может быть важно.
- Ва… важно?
- Это вогонский капитан делает объявление с корабельного узла.
- Ты хочешь сказать, что так вогоны разговаривают?
- Слушай же!
- Но я не понимаю по-вогонски!
- Тебе и не надо. Просто засунь рыбку в ухо.
Дуглас Адамс, «Путеводитель вольного путешественника по галактике»
Ничего не слышу?
Он скажет: «До свидания!»
А слышится: «До здания!»
Он спросит: «Где галоши?»
А слышно: «Это лошадь?»
С. Михалков, «Сашина каша»
Казалось бы, если мы можем научить компьютер говорить, то с распознаванием речи никаких трудностей возникнуть не должно. В конце концов, все, что нам нужно, - произвести операции по синтезу речи в обратном порядке. Записать человеческую речь, автоматически разобрать ее на «кирпичики», свериться с базой сэмплов, подставить нужные фонемы, а потом собрать из фонем слова, расставив знаки препинания на основе анализа просодических эффектов. Делов-то.
Как бы не так! То есть в теории-то все верно, а вот на практике…
Когда дело доходит до обратного преобразования, выясняется, что человеческая речь - понятие, в общем-то, весьма растяжимое и наш мозг, оказывается, постоянно выполняет сложнейшую работу по распознаванию образов. Разработчикам систем распознавания речи пришлось столкнуться с тем, что люди в массе своей говорят неразборчиво, очень неразборчиво и не всегда в приемлемых шумовых условиях. Кроме того:
Язык (а разговорный язык - тем более) не является застывшим образованием. В большинстве языков имеется несколько диалектов, и даже в рамках одного диалекта существует несколько равноправных вариантов произношения одного и того же слова.
У каждого из нас есть свои речевые особенности, которые могут затруднить распознавание речи (отсюда, кстати, следует вывод, что не все системы распознавания речи одинаково полезны - конкретно для вас, например, больше может подойти система А, использующая языковую модель A’, а вашему соседу будет проще работать с системой Б, использующей языковую модель Б’).
В естественной речи, ммм, содержатся, эээ, звуки-паразиты, которые, как бы, совершенно, так сказать, необязательно, эээ, распознавать, но хорошо бы отфильтровывать. И чем раньше они будут отброшены - тем лучше.
В реальной жизни редко встречаются идеальные условия для записи звука: как правило, запись речи сопровождается шумами разной природы, которые мешают выделить голосовой сигнал для дальнейшей обработки.
Добавьте сюда вездесущие эффекты коартикуляции (а их правильная обработка в задаче распознавания речи куда критичнее, чем в задаче синтеза; если там мы рискуем лишь тем, что слово будет звучать ненатурально, то здесь в результате неправильной обработки коартикуляции система просто не найдет нужное слово в словаре), и вы получите неполный, но довольно впечатляющий перечень трудностей, стоящих перед разработчиками ASR-систем.
Существующие технологии не позволяют решить эти проблемы в комплексе. Поэтому в зависимости от поставленной задачи техники распознавания речи меняются. Общего у них тоже много (например, почти все современные системы распознавания речи используют для поиска нужных фонем скрытые модели Маркова), но система голосового набора, встроенная в мобильный телефон, отличается от системы распознавания текста общего назначения как мышь от слона.
Долгое время системы распознавания требовали, чтобы пользователь выговаривал каждое слово отдельно, однако в самом конце прошлого века появились пакеты, умеющие обрабатывать так называемую слитную речь. Правда, термин «слитная» не стоит воспринимать буквально. Если вы понесетесь вперед на скорости 300 слов в минуту, ничего хорошего из этого не выйдет. Да, делать «паузы в словах» теперь уже не обязательно, но системе распознавания по-прежнему требуется время на обработку услышанного, и гораздо эффективнее выдавать ей законченные предложения (если они короткие) или более-менее самостоятельные фрагменты предложений. Во многих современных пакетах распознавания есть синтаксические и семантические модули, и подобная разбивка облегчит распознавание, одновременно улучшив качество. Иными словами, «слитная речь» в данном случае является синонимом диктовки. Диктуете вы уже не идиоту, но и не самой спорой машинистке в мире.
Другой важный критерий - привязка к пользователю. На самом деле практически все современные системы распознавания речи являются обучаемыми. Разница только в том, что дикторонезависимую систему обучил производитель, «скормив» ей сотни, а то и тысячи примеров. Поскольку у таких систем - при прочих равных - требования к компьютерным ресурсам намного выше, а производительность хуже, то на потребительском рынке большей популярностью пользуются системы, которые пользователь после покупки подгоняет «под себя» (и благодаря прогрессу компьютерных технологий с каждым годом на этот процесс нужно все меньше и меньше времени). Тем не менее приложений, для которых важна именно независимость от пользователя, более чем достаточно - автоматические корпоративные колл-центры, например, должны быть универсальны.
Третий критерий - размер словаря. Чем меньше словарь, тем проще обучить систему и сделать ее дикторонезависимой. Единственное исключение из этого правила - голосовой набор в мобильных телефонах. Эта система является дикторозависимой и снабжена очень маленьким словарем - но, с другой стороны, и системные требования у нее крайне скромны, раз уж она вполне сносно работает на мобильном телефоне.
Неудивительно, что до 1990-х гг. распознавание речи было уделом компьютерных лабораторий. Однако быстрый рост мощности персональных компьютеров привел к тому, что на рынке появились программные продукты, способные «набирать» текст под диктовку или выполнять команды, данные пользователем (по крайней мере, реклама уверяла потенциальных покупателей именно в этом). Отличительной чертой первых пакетов являлись высокие системные требования, жестче которых были только негласные требования к пользователю. Первые системы распознавания речи требовали нескольких часов предварительного обучения (счастливый владелец какого-нибудь Dragon Dictate должен был прочесть несколько десятков килобайт текста вслух, прежде чем ожидать от системы хоть сколько-нибудь приемлемой функциональности), но даже с обученной системой работать было сущим наказанием. «Диктатор» должен был произносить каждое слово по отдельности, дожидаться его распознания и лишь тогда переходить к следующему. Кроме того, что это тяжело само по себе, такой подход отрицательно влиял на качество распознавания, так как проанализировать предложение в комплексе система не могла. В итоге треть пользовательского времени уходила на диктовку, треть на правку, а еще треть - на проклятия в адрес нерадивых разработчиков и в свой собственный адрес, за то, что клюнул на щедрые рекламные посулы.
Сейчас уже понятно, что тогдашние пакеты просто обогнали свое время. Разработчики переоценили как собственные технологии, так и желание пользователей избавиться от клавиатуры. Пользователи, конечно, хотели бы иметь возможность диктовать тексты, но снижение скорости набора в несколько раз оказалась слишком дорогой ценой.
Потерпев фиаско на рынке домашних приложений, системы распознавания нашли применение на корпоративном рынке, благо задачи, волнующие корпоративных заказчиков, решить было проще. Там, конечно, разработчиков поджидали свои трудности - например, при проектировании приложений для колл-центров нужно было отдельно разбираться с шумами на линии (решается это предварительной «очисткой» сигнала - решение неидеальное и не во всех случаях работающее, однако другого пока нет). Но в целом, повторюсь, корпоративные задачи решать было проще, поскольку распознавание можно было «заточить» под конкретное применение, повысив эффективность распознавания за счет отказа от универсальности.
Сегодня системами распознавания речи вполне можно пользоваться без ущерба для психики, хотя очевидно, что оценка качества распознавания в 90-98% (а многие производители не стесняются указывать такие цифры) является все же завышенной (или, скажем так, верной для идеальных условий, одним из которых является идеальный диктор).Опытного юзера вряд ли устроит скорость практически полезной диктовки (сама диктовка плюс последующая правка), но неопытный или лишенный физической возможности набирать текст на клавиатуре человек уже не считает, что заокеанские программисты над ним издеваются. Нет никаких сомнений в том, что качество распознавания с каждым годом будет расти, и оценка Билла Гейтса, который предположил, что к 2010 году появятся системы, «понимающие» речь не хуже человека, кажется вполне реальной. Конечно, с определенными оговорках. Речь идет о количественных, а не качественных изменениях. Есть вещи, которые современные системы распознавания делать просто не умеют и без смены подхода вряд ли научатся.
Если разработчики, занимающиеся синтезом речи, начинали с копирования человеческого голосового аппарата и только потом разработали систему компилятивного синтеза, «собирающую» нужные слова из обрывков фонем, то системы распознавания речи имеют мало общего с тем, как распознает речь человеческий мозг. Скрытые модели Маркова, которые стали применять для распознавания в 1970-е гг., оказались эффективным средством для поиска нужных фонем, но они не являются панацеей и не способны решить все проблемы распознавания речи. Собственно говоря, у современной науки весьма смутные представления о глубинных процессах, отвечающих за распознавание речи в нашем мозге, так что делать какие-то выводы о качестве систем распознавания мы можем лишь потому, что есть задачи, которые им совсем не под силу. А не под силу им вот что:
Они не умеют автоматически распознавать язык диктора. Любой человек, хоть раз слышавший итальянскую речь, скорее всего, узнает ее, услышав снова (при этом он может не иметь ни малейшего представления о самом языке). Машина так не умеет, она применяет заложенную в нее языковую модель, независимо от того, на каком языке с ней говорит человек.
Они не умеют выделять речь по-настоящему. Качество распознавания в шумном окружении падает чуть ли не вдвое, но дело даже не в этом. Главным средством борьбы с шумами являются механизмы подавления, которые эффективны далеко не всегда. Сосредоточиться на речи собеседника, отсеяв все остальные звуки, как необязательные для распознавания, и уж тем более выделить речь одного человека из диалога система не может;
И даже распознают они не очень хорошо. Мы с вами легко поймем общий смысл сказанного и большинство слов, даже если у нашего собеседника очень сильный акцент. В то же время систему распознавания, заточенную под сравнение элементов фонем, наш гипотетический иностранец вполне может довести до виртуального самоубийства.
И, наконец, самое главное. Хотя при распознавании используются элементы синтаксического и семантического анализа, нужно признать, что машины из того, что мы им говорим, ничегошеньки не понимают.
- Ты говорил с ним? - переспросил Форд. - Что значит - ты говорил с ним?
- Ничего особенного. Мне было очень скучно и грустно, поэтому я подошел и подключился к выходному порту его компьютера. Я разговаривал с его компьютером довольно долго. Я открыл ему свой взгляд на мир, - сказал Марвин.
- А он что? - спросил Форд.
- Он покончил с собой, - ответил Марвин и зашагал к «Золотому Сердцу».
Дуглас Адамс, «Путеводитель вольного путешественника по галактике»
Finished MGIMO? Ask!
- Вавилонская рыбка, - тихо заговорил «Путеводитель вольного путешественника по Галактике», - маленькая и похожая на плотву, является, вероятно, самым причудливым созданием во Вселенной.
Дуглас Адамс, «Путеводитель вольного путешественника по Галактике»
Даже если отвлечься от задачи построения разумных интерфейсов, то машинному пониманию нетрудно найти практическое применение. Собственно говоря, качество машинного перевода сегодня таково, что буквально вопиет о потребности в технологии, которая позволит компьютеру переводить текст, понимая его смысл. Публикаций о качестве современного машинного перевода в «КТ» было более чем достаточно, поэтому на забавных аберрациях, возникающих при переводах туда-сюда-обратно, мы останавливаться не будем.
Хотя нет, на одной все-таки остановимся. В 50-х гг. прошлого века область машинного перевода считалась весьма многообещающей. Казалось, еще чуть-чуть - и машины не то что прозу, поэзию будут переводить. Американское правительство не жалело денег на исследования и не жалело бы, наверное, до сих пор, если б не удосужилось в середине 60-х проверить, что же все-таки получилось у ученых. Результаты оказались обескураживающими: комиссия, состоящая из лингвистов, теоретиков ИИ, психологов и исследователей, непосредственно занятых разработкой систем машинного перевода, пришла к очень неприятному для всей индустрии выводу, полностью исключив возможность полезного применения существующих или дальнейших разработок в обозримом будущем. Справедливости ради, упомянем, что еще в 1959 году один из основоположников теории машинного перевода Бар-Хиллел опубликовал «Отчет о современном состоянии машинного перевода в США и Великобритании», в котором признавался, что поставленная цель (возможность перевода произвольных текстов без участия человека) представляется ему недостижимой не только в ближайшей перспективе, но и вообще. В качестве примера беспомощности систем перевода Бар-Хиллель приводил небольшой отрывок, с которым не справилась ни одна разработка:
Little John was looking for his toy box. Finally, he found it. The box was in the pen. John was very happy.
Камнем преткновения, конечно, было слово pen. Все «переводчики» наивно перевели, что коробка Джона нашлась в «ручке». В данном случае «pen» уместнее переводить как сарай (или - раз уж Джон был маленьким - возможно, это детский манеж), но, чтобы выбрать верное значение из словаря, машина должна иметь представление о контексте. И о том, чем сарай отличается от ручки, а ручка - от коробки. Другими словами, для качественного перевода компьютер должен быть оснащен не только лингвистической информацией о языках, с которыми он работает, но и колоссальным массивом данных, не имеющих никакого отношения к лингвистике.
Несмотря на резко урезанное финансирование, работы над системами машинного перевода не сошли на нет, хотя романтики, конечно, поубавилось. Стало понятно, что алгеброй поверить гармонию удается далеко не всегда. А пионеры МП всерьез рассчитывали загнать всю необходимую для перевода информацию в прокрустово ложе математической модели - исторически теория МП выросла из криптографии, так что лингвисты подключились к разработкам позже математиков (и, надо сказать, порой доводили их до белого каления).
За последние сорок лет в теории и практике МП произошли значительные изменения. Во-первых, на смену системам типа direct пришли системы типа transfer. Если первые переводили в лоб (и качество получалось во многих случаях соответствующее), то вторые действуют хитрее. Они сначала воссоздают нужную структуру предложения для языка, на который осуществляется перевод, и только после этого начинают собственно переводить. Сейчас в моду вошли системы типа interlingua, когда для «переноса» используется промежуточное звено - то есть при переводе, допустим, с английского на французский сначала осуществляется перевод на внутренний язык (К) и только потом - перевод уже на французский. Изменение это не качественное, а структурное. Такой подход повышает вероятность возникновения ошибок в не самой безошибочной технологии (по сути, система делает два перевода там, где мог быть один). Однако создавать системы interlingua гораздо проще - достаточно единожды разработать универсальный внутренний язык, а потом просто-напросто описывать правила перевода для языковых пар (английский - универсальный, французский - универсальный и т. д.). Непосредственные языковые пары (английский - французский) нам уже не нужны, так что благодаря interlingua мы имеем абсолютно всеядный переводной движок, к которому нужно лишь подключать разработанные модули.
Впрочем, в моду interlingua вошли пока только в лабораториях. Ни одной коммерческой системы, построенной по этому принципу, до сих пор нет.
Развитие шло и в другом направлении. От систем перевода «по правилам» начали переходить к статистическим моделям, потом - к самообучающимся система перевода, которые «тренируются» на внушительных корпусах параллельных текстов. Сейчас идут эксперименты с системами перевода, чьи лингвистические способности усилены базой знаний об окружающем мире.
Во многих случаях разные подходы комбинируются друг с другом, но путь от исследовательских разработок до коммерческих продуктов довольно долог. В настоящее время существует только один коммерческий пакет, «натасканный» на параллельных текстах, - машинный переводчик от небольшой компании Language Weaver. Google, победивший в августе на конкурсе НИСТ (см. табл. 3 и 4), тоже разрабатывает переводчик, который обучается на огромной библиотеке параллельных текстов, однако это внутренний проект, и когда он будет доведен до коммерческого уровня - неизвестно. Любопытен, кстати, выбор языков для конкурса. В 1950-х гг., в разгар холодной войны, в моде был русский язык, сейчас конкурсантам предлагаются задания на арабском и китайском. Language Weaver, к слову, также первым делом представила систему перевода с арабского на английский, но у нее свой интерес: государственные структуры во всех странах являются очень выгодным заказчиком, и разработчики систем машинного перевода, естественно, пытаются угадать их предпочтения.
Но сказать, что все эти новшества радикально решили проблему непонимания контекста, было бы преувеличением. В общем случае качество перевода и по сей день остается неудовлетворительным. Получить представление о содержании текста на иностранном языке с помощью машинного перевода вполне можно, но гарантий, что содержание это передано верно - никаких. Все современные системы требуют доработки либо исходного текста перед переводом (для уменьшения словаря, искоренения возможных двусмысленностей и предельного упрощения синтаксических конструкций), либо уже сделанного перевода до читаемого уровня. Кстати, переводчикам, которые этим занимаются, не позавидуешь - порой очень нелегко понять, что имелось в виду в оригинале, тогда как ошибки, которые делают при переводе люди, все же более предсказуемы. В защиту машин можно сказать, что, ошибаясь, они ошибаются одинаково и, найдя ошибку один раз, нетрудно проследить в тексте следующие ее вхождения.
Некоторого успеха добились исследователи, сделавшие ставку на упрощение и ограничение задачи. Еще в 1970-х гг. компания Caterpillar, пытаясь сократить расходы на перевод руководств к своей продукции, придумала оригинальный язык - Caterpillar Fundamental English. В каком-то смысле Caterpillar English можно назвать предшественником нашего «технического английского» - это был язык с предельно упрощенным синтаксисом и словарем из 850 слов. По задумке Caterpillar работники зарубежных филиалов компании должны были выучить этот новый вариант английского, чтобы иметь возможность читать руководства без перевода и по возможности без словаря. Из затеи с «выучить» ничего толком не вышло, но сама идея контролируемого языка, приложенная к написанию технических документов, привела к тому, что на свет появилась документация, которую машины могут переводить без особых потерь смысла. Конечно, никаких красот перевода тут ждать не приходится, но их и в оригинале, думается, немного.
В целом же технические тексты (на обычном, не упрощенном языке) вовсе не являются, как можно было бы подумать, желанным объектом для перевода. Несмотря на то что в них, как правило, используется довольно простой язык, отсутствуют идиомы и не очень много неоднозначных фрагментов. Технические тексты для машинного перевода неудобны тем, что довольно часто написаны «левой ногой», с грубыми грамматическими ошибками, а компьютер - в отличие от человека - не может заметить ошибку на языке исходника. Он переводит то, что дали, свято веруя, что исходный текст правильный во всех отношениях. И, конечно, ошибки, которые носителю языка кажутся шероховатостями, не меняющими общую картину, при переводе могут многократно усилиться и совершенно исказить смысл.
Рынок переводов сегодня оценивается примерно в 10 млрд. долларов. Машинам доверяют перевести только одну страницу из ста (то есть пара десятков крупных лабораторий, несколько серьезных софтверных компаний бьются между собой ради куска пирога в 100-150 млн. долларов). Два кризиса идей в теории МП (первый был в шестидесятых, второй - после короткого ренессанса в 80-х) и общее разочарование в моделях, обещавших когда-то создание эффективных компьютерных переводчиков, привели к тому, что многие специалисты сменили вектор исследований и теперь занимаются непосредственно проблемами обучения машин. Они учат компьютеры понимать.
Озорства ради мы решили проверить, как справляются с тестом Бар-Хиллела современные системы перевода, и попытались перевести историю про Джона с помощью известных онлайновых систем:
Маленький Джон искал его игрушечную коробку. Наконец, он нашел это. Коробка была в ручке. Джон был очень счастлив.
Маленький john смотрел для его коробки игрушки. Окончательно, он нашел его. Коробка находилась в пер. John был очень счастлив.
Прошло почти полвека, а коробку все никак не могут вытащить из ручки.
Окончательно, он нашел его. Я сошла с ума, какая досада.
Это же была бессловесная машина. Я сказал «бессловесная»? У нее были все органы чувств. Она даже могла говорить. Могла и говорила. Она болтала без передышки. И слушала все наши разговоры. Она читала через наши плечи и давала непрошеные советы, когда мы играли в покер. Порой нам хотелось убить ее, да вот убить робота нельзя… такого совершенного.
Клиффорд Саймак, «Прелесть»
Моя твоя не понимай
Описывая реально доступные сегодня технологии, мы старались не распыляться и уделили внимание лишь тем аспектам, которые, на наш взгляд, важны для построения диалоговых интерфейсов. Поэтому в разделе о машинном переводе обсуждается только полный автоматический машинный перевод (хотя есть разработки, предполагающие участие человека, - и у них качество перевода в целом выше), а в разделе о технологии распознавании речи лишь мельком упомянули о технологии распознавания голоса по телефонной линии, которая не особенно интересна в аспекте построения диалоговых интерфейсов, но коммерчески вполне успешна. Но все равно впечатление получается двойственное.
С одной стороны, мы уже многое умеем. И построить систему, которая будет поддерживать «светский разговор», давно не составляет труда. В этом году приз Лёбнера (за псевдопрохождение теста Тюринга) получил бот Jabberwocky, с которым можно разговаривать часами. И голос синтезировать у нас тоже получается хорошо (правда, не только за счет технологий, но и за счет человеческой способности к узнаванию образов). С распознаванием речи, конечно, дела обстоят не ахти, но научимся и распознавать.
То есть построить диалоговый интерфейс с заданными командами на уровне «открой файл», «сохрани изменения» и «закрой файл» мы можем уже сегодня (и такие продукты есть).
Тем не менее остается еще один, самый главный кирпичик. Если мы хотим, чтобы общение с компьютером было продуктивным, компьютер должен нас понимать. Собственно, natural language understanding - это огромное междисциплинарное направление, на которое и отдельной темы номера не хватит, но не нужно быть семи пядей во лбу, чтобы прийти к очевидному выводу: построение эффективных речевых коммуникаций невозможно без нахождения обоих собеседников в одном и том же контексте.
В разделе, посвященном машинному переводу, мы приводили пример с коробкой в ручке, но вот другой пример, никак не связанный с переводами. Допустим, у нас есть компьютер, загруженный по самое не хочу словарями, семантикой, лингвистическими правилами, статистическими алгоритмами и прочая, и прочая, и прочая. Что он ответит на элементарный вопрос «есть ли вода в холодильнике?» Нормальный компьютер, конечно же, ответит, что вода в холодильнике есть. Во всяком холодильнике в любой момент времени можно найти множество молекул воды. На любой вкус. При этом компьютер не путает определения (как он делал в случае с «pen»). Формально он прав. Но мы-то спрашивали совсем о другом.
Человек, услышав тот же вопрос, сразу поймет, что имеется в виду не просто вода, а бутылка с минералкой. Иными словами, компьютер неправильно (с нашей точки зрения) отвечает на вопрос, хотя вся необходимая для ответа информация ему доступна.
Проблема в том, что речевая коммуникация - это не вещь в себе. Это верхушка айсберга, и если мы пытаемся подтянуть компьютеры до нашего уровня, то не можем усовершенствовать только их коммуникационные способности. Нельзя научить улитку французскому языку. И очень вероятно, что все описанные в статье задачи - распознавание речи, синтез текста, качественный машинный перевод - неразрешимы, пока не решена более глобальная задача: построение искусственного интеллекта.
Разработчики не любят говорить на эту тему. Задача создания ИИ давно уже табуирована. Но странное совпадение: сразу несколько исследовательских организаций (включая MIT Labs и Марвина Мински) работает сегодня над компьютерными программами (стоит ли называть их программами - тоже вопрос), обладающими зачатками здравого смысла и умеющими учиться. Они обучают нейросети простым, интуитивно понятным каждому человеку вещам. И не исключено, что когда-нибудь эти разработки действительно дадут нам возможность общаться с компьютером, не задумываясь о том, поймет он нас или нет.
В 1988 году Робин Бердженер (Robin Burgener) построил нейросеть для игры в «двадцать вопросов» (20Q.net). С тех пор сеть сыграла миллионы партий и теперь зачастую справляется с загадкой намного раньше двадцатого вопроса. Сам Бердженер уверен, что за это время сеть не только развила свои способности в угадывании, но и обрела некоторые личностные характеристики («у нее бывают дни, когда из рук все валится, а иногда она в ударе»).
Звучит фантастично? Пока - да.