Система распознавания речевых команд в Linux при помощи ПО julius
Для декодирования речевых команд можно использовать открытый проект 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
Копируем акустические модели 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/ , но судя по всему
она пока мало пригодна к использованию.
Обратная связь
Интересуют вопросы реализации алгоритмов, программирования, выбора электроники и прочая информация, постараюсь осветить в отдельных статьях
пишите мне на netdm@mail.ru
Добавить комментарий