当他们拿起另一端的接收器时,我需要检测用户声音。“SpeechHypothesized event not raised”
因为调制解调器通常在第一个环到达那里时开始播放文件(播放终端)。所以我打算在他们说“你好”时使用语音识别,它可以开始播放文件,直到等待播放文件。
甚至可以开始说话的任何噪音干扰。
我用很少的设置完成了这个。我发现了我的引擎在我们说话时检测到的几个常见单词,以及当它响起时出现的单词。它作为一个独立的应用程序很好,但如果我尝试将它与我的应用程序集成在一起,它不会引发“SpeechHypothesized”事件。
我不明白为什么会发生这种情况。
如果我看到使用断点,引擎正在委托分配和调用属性也被正确初始化,但比不是调用事件。为了打电话,我正在使用C4F tapi管理器和语音识别功能,我使用.Net 3.5的System.Speech库。
事件的代码如下:
engine.SpeechDetected += new EventHandler<SpeechDetectedEventArgs>(engine_SpeechDetected);
engine.SpeechRecognized += new EventHandler<SpeechRecognizedEventArgs>(engine_SpeechRecognized);
engine.SpeechHypothesized+=new EventHandler<SpeechHypothesizedEventArgs> (engine_SpeechHypothesized);
engine.SpeechRecognitionRejected += new EventHandler<SpeechRecognitionRejectedEventArgs>(engine_SpeechRecognitionRejected);
所有事件的上调除speechhypothesized事件。
任何想法为什么会发生这种情况?
编辑:
错误不是由服务抛出它的Windows窗体抛出错误!
该码是用于语音识别如下:
System.Collections.ObjectModel.ReadOnlyCollection<RecognizerInfo>
recognizedSpeeches = System.Speech.Recognition.SpeechRecognitionEngine.InstalledRecognizers(); if(recognizedSpeeches!= null) {
Console.WriteLine(“Recognized Speeches:”);
int recognitionizerNumber = 0;engine = new SpeechRecognitionEngine(recognizedSpeeches[recognizerNumber]); engine.SetInputToDefaultAudioDevice(); engine.SpeechDetected -= new
EventHandler(engine_SpeechDetected); engine.SpeechRecognized - = new EventHandler(engine_SpeechRecognized); engine.SpeechHypothesized - = new EventHandler(engine_SpeechHypothesized); engine.SpeechRecognitionRejected - = new EventHandler(engine_SpeechRecognitionRejected); engine.SpeechDetected + = new EventHandler(engine_SpeechDetected); engine.SpeechRecognized + = new EventHandler(engine_SpeechRecognized); engine.Speech Hypothesized + = new EventHandler(engine_SpeechHypothesized); engine.SpeechRecognitionRejected + = new EventHandler(engine_SpeechRecognitionRejected); 发动机。LoadGrammar(new DictationGrammar());
RecognitionResult srResult = engine.Recognize(新时间跨度(0,0, 30)); }
任何线索????
的服务帐户不** **有一个默认的音频设备;这就是为什么SAPI会引发错误。我假设你正在使用SpeechRecognitionEngine而不是SpeechRecognizer,因为SpeechRecognizer将尝试启动WSR UI,该UI也不会从服务运行。 我不知道为什么这些事件不触发;你需要展示更多的代码。 – 2010-03-08 06:27:24