1

このスレッドの作成者が行った/解決したことを正確に実行しようとしています:

PocketSphinx を使用した複数のキーワードの認識

彼は、文法ファイルにない単語の検出を避けるために、文法ファイルは次のようにする必要があると言います。

up /1e-1/
down /1e-1/
left /1e-1/
right /1e-1/
forwards /1e-1/
backwards /1e-1/

....しかし、このままではうまくいきません。私はこのようにすることができます:

#JSGF V1.0;
grammar digits;
public <digits> =   /1e-1/ left |
                    /1e-1/ right;

しかし、これは何も変更しません。/1.0/ も何も変更しません。左/右として誤った単語を検出し続けます。

各単語 (著者など) の右側にしきい値を設定すると、アプリがクラッシュします。

誰かがこれについて私を助けることができますか?

アップデート:

関数 setupRecognizer(File assetsDir) で addKeywordSearch を使用して解決しました。私の場合は、PocketSphinx-Demo addGrammarSearch のようでした。完全を期すために(リンクされた質問の作成者のsetupRecognizer関数と同じように):

private void setupRecognizer(File assetsDir)
{
    File modelsDir = new File(assetsDir, "models");

    recognizer = defaultSetup().setAcousticModel(new File(modelsDir, "hmm/en-us-semi"))
                               .setDictionary(new File(modelsDir, "dict/cmu07a.dic"))
                               .setRawLogDir(assetsDir).setKeywordThreshold(1e-20f)
                               .getRecognizer();

    recognizer.addListener(this);

    File digitsGrammar = new File(modelsDir, "grammar/digits.gram");
    recognizer.addKeywordSearch(DIGITS_SEARCH, digitsGrammar);
}

文法ファイルが(著者が投稿したように)次のように見える場合、それは機能します

up /1e-1/
down /1e-1/
left /1e-1/
right /1e-1/
forwards /1e-1/
backwards /1e-1/
4

0 に答える 0