December 8th, 2010

geass

Распознавание речи 1996-2010

Первый компьютер типа IBM PC у меня появился в 1996 году и знаете какой диск с программами я купил самым первым? Нет, не с играми и даже не коллекцию компиляторов. Это был диск с программами распознавания речи. Впервые я увидел говорящий компьютер в 1995ом. Не просто какой-то космический компьютер из далёкого будущего, а вполне обычную машину (на процессорах Альфа) к которой написали программу имитирующую интеллект и речевой интерфейс. То есть к компьютеру можно было обращаться на обычном языке, отдавая команды по запуску различных приложений, а он отвечал так-же голосом, при этом высказывая различные "собственные" суждения и запоминая предпочтения человека. По сути это был прообраз современных программ-агентов. Я сразу влюбился в эту идею, мысль о том чтобы говорить с компьютером как с товарищем засела глубоко в памяти. Но до имитации интеллекта было далеко, чего не скажешь о распознавании речи. Интернета тогда в городе практические не было, но в одном из номеров журнала PC Magazine Russian Edition был обзор современных программ распознавания речи. По мнению редакции, самой продвинутой на то время программой была Dragon Dictate 2.5, диск с которой я и купил.

Программа была интересная, хотя качество распознавания было достаточно средним. Она позволяла голосом вводить текст в редакторе и активировать голосом различные программные функции. Вскоре, ворох других проблем поглотил меня и идея была забыта на долгий срок. Спустя четырнадцать лет каким то образом она всплыла заново и я решил узнать - что же изменилось в этих технологиях за прошедшие годы.

Простой поиск дал понять, что ничего революционного не произошло, однако куча различных программ некогда имеющие собственные алгоритмы распознавания исчезли, а современные работают на универсальном наборе библиотек от Микрософт, называемых Microsoft Speech API и которые можно свободно скачать и использовать в собственных программах. Так-же я нашёл древнюю утилитку Voice Commander написаную а России аж в 2000 году и с тех пор не обновляемую. Утилитка имела два достоинства - собственный редактор команд и грамотный минимализм функциональности и интерфейса, а работала на основе библиотек от Микрософта.

Моя цель была простая - запрограммировать компьютер на выполнение команд отданных голосом. То есть я придумываю фразу и указываю какие действия должен выполнить компьютер когда "услышит" её. Например, открыть приложение, навигация по файловой системе, переключение треков в музыкальном плейре, открытие закладок в браузере. К сожалению, при всех достоинствах, программа имела огромные недостатки. Во-первых, она глючила, а именно периодически вылетала. Во-вторых, редактор команд был весьма беден - только линейное исполнение, без возможности введения проверок на дополнительные условия и запуска сторонних процедур. Вот это видео демонстрирует то, чего удалось добиться за первый вечер работы с программой. (если видео коряво - вот прямой линк http://www.youtube.com/watch?v=uf73t0CHU0s)



На последних секундах видео видно как программа вылетает, а посему было принято решение написать свою программу на основе имеющихся библиотек с требуемой функциональностью и удовлетворяющим сервисом. В интернете было найдено описание классов библиотеки, готовые простые примеры их использования, включая синтез речи из текста и в настоящее время я с этим потихоньку разбираюсь.

Я полностью отдаю себе отчёт в том, что данная технология на современном этапе истории не может полностью заменить мышь и клавиатуру. Но в некоторых областях распознавание отдельных команд может оказаться удобным, полезным и интересным. Например, в нас в Японии, в доме прохладно и я, при просмотре фильмов или аниме, накидываю на себя одеяло а под него пускаю тепло от сушилки. В этом случае голосовое управление мне очень помогает - ведь я могу не снимать оделяло, что-бы освободить руки. Или, по приходу домой, голосом из другой комнаты запустить проверку почты или музыку. В перспективах, данные технологии можно использовать для управления оборудованием - включать голосом свет, кондиционер или вентилятор. Конечно, можно сказать что это просто игрушки, но я люблю эту технологию и верю, что однажды мы будем свободно говорить с компьютером и он тоже ответит нам.