Для декодирования речевых команд можно использовать открытый проект [[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.dev/tips/info/2699.shtml