Ничего не слышу?
Он скажет: «До свидания!»
А слышится: «До здания!»
Он спросит: «Где галоши?»
А слышно: «Это лошадь?»
Казалось бы, если мы можем научить компьютер говорить, то с распознаванием речи никаких трудностей возникнуть не должно. В конце концов, все, что нам нужно, — произвести операции по синтезу речи в обратном порядке. Записать человеческую речь, автоматически разобрать ее на «кирпичики», свериться с базой сэмплов, подставить нужные фонемы, а потом собрать из фонем слова, расставив знаки препинания на основе анализа просодических эффектов. Делов-то.
Как бы не так! То есть в теории-то все верно, а вот на практике…
Когда дело доходит до обратного преобразования, выясняется, что человеческая речь — понятие, в общем-то, весьма растяжимое и наш мозг, оказывается, постоянно выполняет сложнейшую работу по распознаванию образов. Разработчикам систем распознавания речи пришлось столкнуться с тем, что люди в массе своей говорят неразборчиво, очень неразборчиво и не всегда в приемлемых шумовых условиях. Кроме того:
Язык (а разговорный язык — тем более) не является застывшим образованием. В большинстве языков имеется несколько диалектов, и даже в рамках одного диалекта существует несколько равноправных вариантов произношения одного и того же слова.
У каждого из нас есть свои речевые особенности, которые могут затруднить распознавание речи (отсюда, кстати, следует вывод, что не все системы распознавания речи одинаково полезны — конкретно для вас, например, больше может подойти система А, использующая языковую модель A’, а вашему соседу будет проще работать с системой Б, использующей языковую модель Б’).
В естественной речи, ммм, содержатся, эээ, звуки-паразиты, которые, как бы, совершенно, так сказать, необязательно, эээ, распознавать, но хорошо бы отфильтровывать. И чем раньше они будут отброшены — тем лучше.
В реальной жизни редко встречаются идеальные условия для записи звука: как правило, запись речи сопровождается шумами разной природы, которые мешают выделить голосовой сигнал для дальнейшей обработки.
Добавьте сюда вездесущие эффекты коартикуляции (а их правильная обработка в задаче распознавания речи куда критичнее, чем в задаче синтеза; если там мы рискуем лишь тем, что слово будет звучать ненатурально, то здесь в результате неправильной обработки коартикуляции система просто не найдет нужное слово в словаре), и вы получите неполный, но довольно впечатляющий перечень трудностей, стоящих перед разработчиками ASR-систем.
Существующие технологии не позволяют решить эти проблемы в комплексе. Поэтому в зависимости от поставленной задачи техники распознавания речи меняются. Общего у них тоже много (например, почти все современные системы распознавания речи используют для поиска нужных фонем скрытые модели Маркова), но система голосового набора, встроенная в мобильный телефон, отличается от системы распознавания текста общего назначения как мышь от слона.
Долгое время системы распознавания требовали, чтобы пользователь выговаривал каждое слово отдельно, однако в самом конце прошлого века появились пакеты, умеющие обрабатывать так называемую слитную речь. Правда, термин «слитная» не стоит воспринимать буквально. Если вы понесетесь вперед на скорости 300 слов в минуту, ничего хорошего из этого не выйдет. Да, делать «паузы в словах» теперь уже не обязательно, но системе распознавания по-прежнему требуется время на обработку услышанного, и гораздо эффективнее выдавать ей законченные предложения (если они короткие) или более-менее самостоятельные фрагменты предложений. Во многих современных пакетах распознавания есть синтаксические и семантические модули, и подобная разбивка облегчит распознавание, одновременно улучшив качество. Иными словами, «слитная речь» в данном случае является синонимом диктовки. Диктуете вы уже не идиоту, но и не самой спорой машинистке в мире.
Другой важный критерий — привязка к пользователю. На самом деле практически все современные системы распознавания речи являются обучаемыми. Разница только в том, что дикторонезависимую систему обучил производитель, «скормив» ей сотни, а то и тысячи примеров. Поскольку у таких систем — при прочих равных — требования к компьютерным ресурсам намного выше, а производительность хуже, то на потребительском рынке большей популярностью пользуются системы, которые пользователь после покупки подгоняет «под себя» (и благодаря прогрессу компьютерных технологий с каждым годом на этот процесс нужно все меньше и меньше времени). Тем не менее приложений, для которых важна именно независимость от пользователя, более чем достаточно — автоматические корпоративные колл-центры, например, должны быть универсальны.
Третий критерий — размер словаря. Чем меньше словарь, тем проще обучить систему и сделать ее дикторонезависимой. Единственное исключение из этого правила — голосовой набор в мобильных телефонах. Эта система является дикторозависимой и снабжена очень маленьким словарем — но, с другой стороны, и системные требования у нее крайне скромны, раз уж она вполне сносно работает на мобильном телефоне.
Неудивительно, что до 1990-х гг. распознавание речи было уделом компьютерных лабораторий. Однако быстрый рост мощности персональных компьютеров привел к тому, что на рынке появились программные продукты, способные «набирать» текст под диктовку или выполнять команды, данные пользователем (по крайней мере, реклама уверяла потенциальных покупателей именно в этом). Отличительной чертой первых пакетов являлись высокие системные требования, жестче которых были только негласные требования к пользователю. Первые системы распознавания речи требовали нескольких часов предварительного обучения (счастливый владелец какого-нибудь Dragon Dictate должен был прочесть несколько десятков килобайт текста вслух, прежде чем ожидать от системы хоть сколько-нибудь приемлемой функциональности), но даже с обученной системой работать было сущим наказанием. «Диктатор» должен был произносить каждое слово по отдельности, дожидаться его распознания и лишь тогда переходить к следующему. Кроме того, что это тяжело само по себе, такой подход отрицательно влиял на качество распознавания, так как проанализировать предложение в комплексе система не могла. В итоге треть пользовательского времени уходила на диктовку, треть на правку, а еще треть — на проклятия в адрес нерадивых разработчиков и в свой собственный адрес, за то, что клюнул на щедрые рекламные посулы.
Сейчас уже понятно, что тогдашние пакеты просто обогнали свое время. Разработчики переоценили как собственные технологии, так и желание пользователей избавиться от клавиатуры. Пользователи, конечно, хотели бы иметь возможность диктовать тексты, но снижение скорости набора в несколько раз оказалась слишком дорогой ценой.
Потерпев фиаско на рынке домашних приложений, системы распознавания нашли применение на корпоративном рынке, благо задачи, волнующие корпоративных заказчиков, решить было проще. Там, конечно, разработчиков поджидали свои трудности — например, при проектировании приложений для колл-центров нужно было отдельно разбираться с шумами на линии (решается это предварительной «очисткой» сигнала — решение неидеальное и не во всех случаях работающее, однако другого пока нет). Но в целом, повторюсь, корпоративные задачи решать было проще, поскольку распознавание можно было «заточить» под конкретное применение, повысив эффективность распознавания за счет отказа от универсальности.
Сегодня системами распознавания речи вполне можно пользоваться без ущерба для психики, хотя очевидно, что оценка качества распознавания в 90—98% (а многие производители не стесняются указывать такие цифры) является все же завышенной (или, скажем так, верной для идеальных условий, одним из которых является идеальный диктор).Опытного юзера вряд ли устроит скорость практически полезной диктовки (сама диктовка плюс последующая правка), но неопытный или лишенный физической возможности набирать текст на клавиатуре человек уже не считает, что заокеанские программисты над ним издеваются. Нет никаких сомнений в том, что качество распознавания с каждым годом будет расти, и оценка Билла Гейтса, который предположил, что к 2010 году появятся системы, «понимающие» речь не хуже человека, кажется вполне реальной. Конечно, с определенными оговорках. Речь идет о количественных, а не качественных изменениях. Есть вещи, которые современные системы распознавания делать просто не умеют и без смены подхода вряд ли научатся.