0

音声コマンドを認識し、認識するカスタム辞書と単語を作成するために、Android アプリケーションに Pocketphinx を実装しました。これが私の実装です:

 private void setupRecognizer(File assetsDir) throws IOException {
    recognizer = defaultSetup()
            .setAcousticModel(new File(assetsDir, "en-us-ptm"))
            .setDictionary(new File(assetsDir, "cmudict-en-us.dict"))
            //.setRawLogDir(assetsDir)
            .setKeywordThreshold(1e-10f)
            .setBoolean("-allphone_ci", true)

            .getRecognizer();
    recognizer.addListener(this);

    // Create keyword-activation search.
    // recognizer.addKeyphraseSearch(KWS_SEARCH, KEYPHRASE);

    File menuGrammar = new File(assetsDir, "target-words.gram");
    recognizer.addKeywordSearch(KWS_SEARCH, menuGrammar);

}

単語リストの場合:

yalp /1-0/
yaalp /1-0/
yeelp /1e-1/
yelp /1e-1/

と文法:

yalp Y AE L P
yaalp Y AA L P
yealp Y EH L P
yeelp Y IY L P
yelp Y EH L P

しかし、私は間違った結果を得ています。つまり、私が話していない、または音を出していない場合 (拍手でも)、Yelp Yealp などの onPartialResult を取得しています。setKeywordThreshold() // 1e-10f、1e-20f、1e-30f などを単語リストと同じように調整して、1-0/1e-1 などの異なる範囲を追加しようとしましたが、これを正しくするために何も機能していません。なぜこれが間違った結果を生み出しているのか、誰かが私に提案できますか..

これが私の資産の画像です: ここに画像の説明を入力

4

0 に答える 0