2017-04-17 5 views
0

CMUSphinxとJavaでドイツ語のコマンドとコントロールアプリケーションを実装しようとしています。これまでのところ、アプリケーションはわずかな単語(1から9までの数字、yes/no)を認識する必要があります。CMUSphinxドイツのコマンド&コントロールアプリ、不正確な精度

残念ながら、精度は非常に悪いです。単語が正しく認識されたら、それは偶然だけです。私はここからドイツの音響モデルと辞書をダウンロードした

#JSGF V1.0; 

grammar dialog; 

public <digit> = 1 | 2 | 3 | 4 |5 | 6 | 7 | 8 | 9 | ja | nein; 

:ここ

public static void main(String[] args) throws IOException { 

    // Configuration Object 
    Configuration configuration = new Configuration(); 

    // Set path to the acoustic model. 
    configuration.setAcousticModelPath("resource:/cmusphinx-de-voxforge-5.2"); 

    // Set path to the dictionary. 
    configuration.setDictionaryPath("resource:/cmusphinx-voxforge-de.dic"); 

    // use grammar 
    configuration.setGrammarPath("resource:/"); 
    configuration.setGrammarName("dialog"); 
    configuration.setUseGrammar(true); 

    LiveSpeechRecognizer recognizer = new LiveSpeechRecognizer(configuration); 

    recognizer.startRecognition(true); 
    SpeechResult result; 
    while ((result = recognizer.getResult()) != null) { 
     System.out.format("Hypothesis: %s\n", result.getHypothesis()); 
    } 
    recognizer.stopRecognition(); 
} 

私の文法ファイルである:ここで

は、これまで(チュートリアルから適応)私のJavaコードがあります: https://sourceforge.net/projects/cmusphinx/files/Acoustic%20and%20Language%20Models/German/

ここには何かがありますか?問題はどこだ?

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

+0

問題を再現するために、オーディオデータと変更したモデルを提供する必要があります。 1,2のような数字は、デフォルトでは辞書の一部ではなく、文法では使用できません。 –

+0

あなたのリプレイをありがとう。 1)オーディオデータはどういう意味ですか?私が認識したいオーディオ?それとも、新しい音響モデルですか? 2)私は1をeinsに、それを1に変更しました(これは辞書の一部です)。精度を向上させるようには思われません: –

+0

さらに 'cmusphinx-voxforge-de.lm.bin'を追加しました。効果なし –

答えて

0

精度はあまり良くありません。おそらく元のデータベースにはあなたのような例はあまりありませんでした。部分的にあなたの方言も寄与しています。ドイツ人はzではなく、sで7と言います。あなたの部屋の部分的なエコーも寄与します。オーディオをどのように録音したか分かりません。その間にある圧縮やコーデックを使用した場合は、精度が悪くなる可能性もあります。

精度を向上させるために、数百個のサンプルを収集してMAPアダプテーションを実行したい場合があります。

関連する問題