0

私はAndroidアプリでPocketsphinxを使用しています。私は、コマンドの比較的小さなセットが独立して認識する必要があるので、私はこのようになりますファイルからキーワード検索を使用して終了:個別のキーフレーズに関する分割仮説

one/1.0/ 
done/1.0/ 
recognition on/1e-10/ 
recognition off/1e-10/ 

実際のリストは、英語でそうこれらのキーワードがために任意に選択されているではありませんこの例のために。私は、これらの閾値が最適よりも多少低く、短い単語がミスマッチになりやすいことを認識しています。

問題は、この方法で発生:いくつかの単語はかなり似て聞こえること

@Override 
public void onPartialResult(Hypothesis hypothesis) { 
    if (hypothesis != null) { 
     Log.d(
       "Sphinx", 
       "\"" + hypothesis.getHypstr() + "\" recognized" 
     ); 
    } 
} 

注意。事は、"done one" recognized

    • 「ワン」の結果は"one done" recognized

    の結果は残念ながら、私はあなたが直接することができれば(私は感謝hypstr_get上の任意のドキュメントを見つけることができませんでした「完了」されます私にそれを)しかし効果的に確率の高い順に可能性の高い一致の結合された文字列を返すようだ。

    hypothesisから実際のコマンドを取得するにはどうすればよいですか?私はいくつかのコマンドがキーワードではなくキーフレーズであるので、空白でhypothesis.getHypstr()を分割するだけではいけません。私はただ一つ、最も可能性の高い結果がほしいと思う。

    ありがとうございました。

  • 答えて

    1

    あなたは、セグメントを反復処理することができ、それぞれがキーワード

    for (Segment seg : recognizer.getDecoder().seg()) { 
         System.out.println(seg.getWord() + " " + seg.getProb()); 
        } 
    
    だろう
    関連する問題