0

私は音声制御アプリケーションを構築しています。ユーザーがユーザー名とパスワードを話すときにテキストボックスのテキストを設定したいのですが、これは起こっていませんが、メッセージを使用して認識された文字列を表示すると

    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) を配置すると、メールは正しく表示されますが、テキスト ボックスのテキストは変更されません。

4

1 に答える 1

0

ほとんどの場合、認識されるテキストには、改行文字またはこのようなものが含まれています。

これを分離するには、*SpeechRecognized イベントで具体的な文字列を指定してみてください。

txtemail.Text = "recognized text";

それはうまくいきますか?はいの場合、特定の文字についてデバッガーで文字列を検査します。

于 2013-03-23T18:06:12.117 に答える