Новости из Блогов Система распознавания речевых команд в Linux при помощи ПО julius

Discussion in 'Мировые новости. Обсуждения.' started by d3l3t3, 17 Jul 2012.

  1. d3l3t3

    d3l3t3 Banned

    Joined:
    3 Dec 2010
    Messages:
    1,771
    Likes Received:
    98
    Reputations:
    10
    Система распознавания речевых команд в Linux при помощи ПО julius

    Для декодирования речевых команд можно использовать открытый проект Julius.


    Пользователи Ubuntu могут установить готовые пакеты:

    Code:
       sudo apt-get install julius julius-voxforge
    Так как последний стабильный релиз Julius 4.2.1 некорректной работает с
    подсистемой ALSA, при использовании ALSA может потребоваться пересобрать код из cvs-репозитория:

    Code:
       cvs -z3 -d:pserver:[email protected]:/cvsroot/julius co julius4
       cd julius4
       ./configure --with-mictype=alsa 
       make
    Микрофон можно выбрать через переменную окружения ALSADEV, например:

    Code:
       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:

    Code:
       % 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):

    Code:
       S : NS_B SENT NS_E
       SENT: JOINT_N DIRECTION
       SENT: MANIP M_ACT
       SENT: DEV DEV_IN
       SENT: ROTATION
    NS_E и NS_E определены как начальная и конечная пауза.

    Собираем модель:

    Code:
       mkdfa sample
    в результате получаем набор dfa, dict и term файлы.

    Для распознания выполняем:

    Code:
       julius -input mic -C julian.jconf
    говорим Left, Right, Shoulder Up и наблюдаем:

    Code:
       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/ , но судя по всему
    она пока мало пригодна к использованию.

    25.06.2012
    http://www.opennet.ru/tips/2699_julius_voice_control.shtml
     
Loading...