Система распознавания речевых команд в 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