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