簡単な英単語を認識しようとしていますが、認識されません。
private void Form1_Load(object sender, EventArgs e)
{
SpeechRecognitionEngine srEngine = new SpeechRecognitionEngine();
// Create a simple grammar that recognizes "twinkle", "little", "star"
Choices song_00 = new Choices();
song_00.Add(new string[] {"twinkle", "little", "star"});
// Create a GrammarBuilder object and append the choices object
GrammarBuilder gb = new GrammarBuilder();
gb.Append(song_00);
// Create the grammar instance and load it into the sppech reocognition engine.
Grammar g = new Grammar(gb);
g.Enabled = true;
srEngine.LoadGrammar(g);
srEngine.SetInputToDefaultAudioDevice();
// Register a handler for the Speechrecognized event.
srEngine.SpeechRecognized += new EventHandler<SpeechRecognizedEventArgs>(sre_SpeechRecognized);
srEngine.RecognizeAsync(RecognizeMode.Multiple);
}
// Create a simple handler for the SpeechRecognized event.
void sre_SpeechRecognized(object sender, SpeechRecognizedEventArgs e)
{
MessageBox.Show("Speech recognized: " + e.Result.Text);
}
以下もメッセージは表示されません。
foreach (RecognizerInfo ri in SpeechRecognitionEngine.InstalledRecognizers())
{
MessageBox.Show(ri.Culture);
}
ですから、私が考える失敗の主な理由は言語です。
英語以外のバージョンの Windows で英語認識を使用する解決策はありますか? または私が気付かなかった問題はありますか?
- 現在、英語以外のバージョンの windows7 (64 ビット) を使用していますが、マイクはうまく接続されています。(コントロールパネルは確認済みです。)