Как вы извлекаете теги из грамматик JSGF с помощью sphinx?

Я написал приложение на Java, которое использует API CloudGarden для анализа грамматик JSAPI, возврата тегов из правил грамматики и последующей обработки этих тегов соответствующим образом. Проблема с API CloudGarden заключается в его зависимости от Windows. Мне нужна кроссплатформенная библиотека, которая может выполнять ту же задачу. Мне не нужен ни синтез речи, ни распознавание речи. По сути, программе передается строка, содержащая транскрибированную речь. Мне нужно проанализировать эту строку в моих файлах грамматики, чтобы получить теги действий (текст между { } в правиле грамматики JSGF). Затем моя программа использует полученные теги действий для выполнения других функций.

Я искал бесплатную библиотеку, которая может анализировать файлы грамматики JSGF, соответствующие JSAPI. Единственной реальной альтернативой, которую я нашел, был механизм распознавания речи Sphinx/CMUSphinx. Я изучал Sphinx, который привел меня к классу ActionTagsParser в их документации. Я не могу понять, как разобрать грамматику и получить теги. Может ли кто-нибудь указать мне в правильном направлении или объяснить это мне?

Спасибо, Ной

РЕДАКТИРОВАТЬ:

Нужно ли настраивать Sphinx для анализа грамматик? В следующем коде RuleParse всегда оценивается как NULL. RuleGrammar и текст допустимы.

    try {
        if(recognizer == null){
            recognizer = new BaseRecognizer();
            recognizer.allocate();
        }

        rg.setEnabled(true);
        recognizer.commitChanges();

        RuleParse p = rg.parse(text, null);
        if (p == null) {
            return null;
        }

        return p.getTags();
    } catch (Exception ex) {
        ex.printStackTrace();
        return null;
    }

person noahnu    schedule 30.12.2012    source источник


Ответы (3)


Мы удалили теги, см. ответ Трэвиса ниже.

person Nikolay Shmyrev    schedule 30.12.2012
comment
Я отредактировал свой вопрос. Почему RuleParse не анализирует? Он оценивается как NULL независимо от текста. - person noahnu; 31.12.2012
comment
Я починил это. У меня был конфликтующий класс (я еще не удалил CloudGarden API). - person noahnu; 31.12.2012
comment
Привет Николай, как насчет этой библиотеки? ( github.com/goxr3plus/ ) - person GOXR3PLUS; 25.05.2017
comment
Хорошо для простых вещей, возможно, немного упрощенно для сложных грамматик. - person Nikolay Shmyrev; 26.05.2017

Удалена возможность парсить теги согласно форумам проекта.

Сообщение на форуме, в котором обсуждается, что это не функция.

person Travis    schedule 24.10.2014

Вчера я написал библиотеку, которая, возможно, вам нужна:

Ссылка-> https://github.com/goxr3plus/JSFG-Grammar-Rules-Parser-Library-for-Sphinx4-5

Пример кода для его использования (Вы можете найти больше примеров на github):

List<String> rules;

rules = JSGFGrammarParser.getAllGrammarRules(JSGFGrammarParserTester.class.getResourceAsStream("grammar1.gram"), false);
System.out.println("Grammar Rules , without definitions: " + rules + "\n");

rules = JSGFGrammarParser.getAllGrammarRules(JSGFGrammarParserTester.class.getResourceAsStream("grammar1.gram"), true);
System.out.println("Grammar Rules , with definitions: " + rules + "\n");
person GOXR3PLUS    schedule 25.05.2017