私は音声制御アプリケーションを構築しています。ユーザーがユーザー名とパスワードを話すときにテキストボックスのテキストを設定したいのですが、これは起こっていませんが、メッセージを使用して認識された文字列を表示すると
public Form1()
{
InitializeComponent();
GrammarBuilder g = new Choices("wissam.h44", "jordan_6");
Grammar g1 = new Grammar(g);
Grammar g2 = new Grammar(g);
InitializeComponent();
this.Shown += new System.EventHandler(this.Form1_Shown);
Recognizer1.LoadGrammar(g1);
Recognizer2.LoadGrammar(g2);
}
private void Form1_Shown(Object sender, EventArgs e)
{
Synthesizer1.Speak("Application is loaded.");
Synthesizer1.Speak("Please Enter Your Email: ");
Recognizer1.SpeechRecognized +=
new EventHandler<SpeechRecognizedEventArgs>(recognizer1_SpeechRecognized);
Recognizer1.SetInputToDefaultAudioDevice();
Recognizer1.Recognize();
Synthesizer1.Speak("Please Enter Your Password: ");
Recognizer2.SpeechRecognized +=
new EventHandler<SpeechRecognizedEventArgs>(recognizer2_SpeechRecognized);
Recognizer2.SetInputToDefaultAudioDevice();
Recognizer2.Recognize();
}
void recognizer1_SpeechRecognized(object sender, SpeechRecognizedEventArgs e)
{
string eml = e.Result.Text;
txtemail.Text = eml;
}
void recognizer2_SpeechRecognized(object sender, SpeechRecognizedEventArgs r)
{
txtpwd.Text = r.Result.Text;
}
そのため、音声認識イベントで MessageBox.Show(eml) を配置すると、メールは正しく表示されますが、テキスト ボックスのテキストは変更されません。