當他們拿起另一端的接收器時,我需要檢測用戶聲音。「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