Для декодирования речевых команд можно использовать открытый проект [[http://julius.sourceforge.jp/en_index.php Julius]].
Пользователи Ubuntu могут установить готовые пакеты:sudo apt-get install julius julius-voxforge
Так как последний стабильный релиз Julius 4.2.1 некорректной работает с подсистемой ALSA, при использовании ALSA может потребоваться пересобрать код из cvs-репозитория:
cvs -z3 -d:pserver:anonymous@cvs.sourceforge.jp:/cvsroot/julius co julius4
cd julius4
./configure --with-mictype=alsa
makeМикрофон можно выбрать через переменную окружения ALSADEV, например:
export ALSADEV="plughw:1,0
Копируем акустические модели [[http://www.repository.voxforge1.org/downloads/ voxforge]] (в случае, если был установлен пакет julius-voxforge модель уже установлена в /usr/share/julius-voxforge).
Создаём файлы конфигурации по образу /usr/share/doc/julius-voxforge/examples/julian.jconf.gz. На базе sample.grammar и sample.voca создаём модели грамматики фраз и команды, после чего выполняем "mkdfa имя", например:
Файл sample.voca с определением слов Shoulder, Elbow, Wrist, Grip, Light, on/off, up/down, open/close:
% NS_B
<s> sil% NS_E
</s> sil% JOINT_N
WRIST r ih s t
ELBOW eh l b ow
SHOULDER sh ow l d er% DEV
LIGHT l ay t% DEV_IN
ON aa n
OFF ao f% MANIP
GRIP g r ih p% M_ACT
OPEN ow p ax n
CLOSE k l ow s% DIRECTION
UP ah p
DOWN d aw n% ROTATION
LEFT l eh f t
RIGHT r ay tФайл sample.grammar с определением сочетания слов (Joint + up | down,
Grip + open | close, Light + on | off, Left | Right):S : NS_B SENT NS_E
SENT: JOINT_N DIRECTION
SENT: MANIP M_ACT
SENT: DEV DEV_IN
SENT: ROTATION
NS_E и NS_E определены как начальная и конечная пауза.Собираем модель:
mkdfa sample
в результате получаем набор dfa, dict и term файлы.
Для распознания выполняем:
julius -input mic -C julian.jconf
говорим Left, Right, Shoulder Up и наблюдаем:
sentence1: <s> RIGHT </s>
sentence1: <s> LEFT </s>
sentence1: <s> SHOULDER UP </s>Пример скрипта command.py для парсинга и запуска внешних программ при определении тех или иных фраз можно найти в директории /usr/share/doc/julius-voxforge/examples/controlapp
Для распознавания фраз на русском языке можно попробовать использовать акустическую модель с сайта http://www.repository.voxforge1.org/downloads/Russian/Trunk/ , но судя по всему она пока мало пригодна к использованию.
URL: http://www.aonsquared.co.uk/raspi_voice_control http://www.aonsquared.co.uk/robot_arm_tutorial_1
Обсуждается: http://www.opennet.me/tips/info/2699.shtml
В убунте julius довольно древний и бажный, к тому же его уже давно никто не мейнтейнит.
Лучше ставить с офсайта, глядишь, и хак с алсой не понадобится.
В репах генты как обычно нет ни фига похожего. Всё надо подлкючать искать незнамо где
Осиль уже http://gpo.zugaina.org/
emerge eix && eix-remote update
Давным давно в далекой гала^w давно жила была звуковая карта AWE32. Так вот в комплекте к ней шла софтина распознающая команды голосом. Предварительно программу надо было научить понимать голос.
Почему-то не удивило, что это программа - японская
Война давно кончилась, а истинный самурай так и бегает с винтовкой^W CVSом наперевес, потому что настоящий самурай не сдается.
Шикарно: поставить из убунтовских реп, убедиться, что не работает, поставить с офсайта.
Одному мне кажется, что первые два пункта в публичном мануале совершенно необязательны?
> Создаём файлы конфигурации по образу /usr/share/doc/julius-voxforge/examples/julian.jconf.gz. На базе sample.grammar и sample.voca создаём модели грамматики фраз и командыНу да, всё просто: надо всего лишь, без знания принципов обработки голоса, создать модели грамматики фраз! Конечно, вы можете скачать готовые файлы для русского языка, но они всё равно не работают.
Архиполезнейше!
Что делает эта штука? Я надеялся, что я ей звук — она мне букву, но смущают эти "модели грамматики". Что это, понятия о словах? Такая штука должна работать на уровне звуков и не знать про слова.
сюрприз номер один: между звуками нет однозначного соответствия ни в одну, ни в другую сторону
сюрпиз номер два, почти прямое следствие первого: системы распознавания от адекватных создателей не работают по этому принципу
сюрпиз номер три: даже вы в своих словах косвенно это проявили - не сказали "Я надеялся, что я ей букву — она мне букву"
я гляжу, весь пригодный софт для распознавания голоса ушел в тень, софт активно разрабатывается в глубинах корпораций и т.п.
> я гляжу, весь пригодный софт для распознавания голоса ушел в теньСегодня в полдень начал разбираться с Юлией, да к тому же на пьяную голову. Но, успехи уже есть, слова распознаёт, но проблемы с транскрипцией, не могу многие слова подобрать нормально - он меня не понимает и плюётся, приходится по пол часа на слово тратить. Если слова подобрать длинные и редкие, то не будет случайных срабатываний.
что бы не пересобирать всю жульку для алсы, можнос сделать:
atp-get install oss-compat
aoss julius -input mic -C julian.jconf