0
我正在制作一个语音识别软件,其中包含一个名为voice
的类。现在在表单中有一个按钮和一个文本框。当按下按钮时,它将从voice
类创建一个实例并调用方法Loadspeech()
。我的主要问题是运行程序时,启用语音识别和语音,系统将采用这种方法:事件句柄返回值形成
void sRE_SpeechRecognized(object sender, SpeechRecognizedEventArgs e)
这很好。
但是,我希望每次发言时都要将语音值从班级事件处理程序sRE_SpeechRecognized
传递到textbox
。
class Voice
{
public string speech ="";
SpeechRecognitionEngine sRE = new SpeechRecognitionEngine();
public void loadSpeech()
{
sRE.SpeechRecognized += sRE_SpeechRecognized;
sRE.LoadGrammar(new DictationGrammar());
sRE.SetInputToDefaultAudioDevice();
try { sRE.RecognizeAsync(RecognizeMode.Multiple); }
catch (Exception ex) { MessageBox.Show(ex.Message); }
}
void sRE_SpeechRecognized(object sender, SpeechRecognizedEventArgs e)
{
speech = e.Result.Text;
}
是的。你说得对,我已经有了。但是如果我需要从多种形式调用它,该怎么办?那么我会一直重复相同的代码。 –
然后,您应该使您的SpeechRecognitonEngine公开并静态,如下所示:'code'public static SpeechRecognitionEngine sRE = new SpeechRecognitionEngine();那么你应该找到你的另一种形式MainWindow.sRE。 – daniel59
如何在语音类中将e.Result.Text转换为textbox1.Text在表单中的每次发言。 –