语音识别器不使用我的表单我认为他们没有连接

时间:2014-04-18 10:19:00

标签: c# speech-recognition speech

嘿我正在使用语音识别器它不能识别我的项目中的单词我的意思是他单独认出它们但是他并没有在我的表单中应用它这里是代码

 private void Speak_Load(object sender, EventArgs e)
    {
      sr= new SpeechRecognizer();

        sr.SpeechRecognized += sr_SpeechRecognized;

    }

和言语识别功能:

void sr_SpeechRecognized(object sender, SpeechRecognizedEventArgs e)
    {
        richTextBox1.AppendText(e.Result.Text.ToString() + " ");
    }

我在richtextbox1 ...行上设置了一个断点,但他根本没有输入该功能,虽然我可以看到他识别出一些单词但没有输入它的功能。喜欢它根本没有连接到我的表格,当我去谷歌例如说几句话时,他完全认出它们。 enter image description here

注意:在表格中,它只是识别出他不会识别单词的命令,而且我不知道为什么它没有在我的表单中看到richtextbox

1 个答案:

答案 0 :(得分:0)

如果您使用SpeechRecognizer,请确保焦点位于RichTextBox上,否则无法使用。如果焦点在于另一个控件,它会将单词放在那里。为避免这种情况,请使用SpeechRecognitionEngine

// make sure to set the type of `sr` to SpeechRecognitionEngine
private void Speak_Load(object sender, EventArgs e)
{
    sr = new SpeechRecognitionEngine();
    sr.LoadGrammar(new DictationGrammar()); // load a dictation grammar, to allow dictation (recognizing all words)
    sr.SetInputToDefaultAudioDevice();
    sr.SpeechRecognized += sr_SpeechRecognized;
    sr.RecognizeAsync(RecognizeMode.Multiple); // start recognizing
}

void sr_SpeechRecognized(object sender, SpeechRecognizedEventArgs e)
{
    richTextBox1.AppendText(e.Result.Text.ToString() + " ");
}

SpeechRecognitionEngine需要更多函数调用才能使用它,但现在它总会将文本附加到RichTextBox。