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 ...行上设置了一个断点,但他根本没有输入该功能,虽然我可以看到他识别出一些单词但没有输入它的功能。喜欢它根本没有连接到我的表格,当我去谷歌例如说几句话时,他完全认出它们。
注意:在表格中,它只是识别出他不会识别单词的命令,而且我不知道为什么它没有在我的表单中看到richtextbox
答案 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。