2

語音識別C#WPF應用程序我做了使用SpeechRecognizer類設置一個簡單的語法和認識簡單的單詞的應用程序。兩個問題上的Windows7

當我Win7上運行它,我注意到兩件事情。

1)我第一次啓動應用程序的語音識別條(啄)來了,但沒有顯示我的應用程序的UI(它正在運行,我可以在任務管理器中看到)。 當我第二次啓動應用程序時(殺死第一個實例後)它正常顯示(windows語音識別工具欄已經運行)。

2)當我第二次說出我在應用程序中認出的單詞時,它不會觸發事件 - 而是選擇我的應用程序中的文本,並在列表框中打印出歷史記錄公認的詞語。

注:當我從主屏幕上刪除歷史記錄列表框,它按預期工作。顯然,Win7試圖首先在我的用戶界面中找到這個單詞,當它找不到時 - 它纔會觸發我的編程事件......?

這兩個問題對我來說都很奇怪。在應用

更多信息:它是一種VS2008/.NET 3.0 WPF應用程序用C#編寫。該應用程序允許用戶編輯用於發送Midi命令的設置組(補丁)。每個修補程序都標有一個短語。當說出該短語(由應用程序識別)時,所有配置的Midi命令都會發送到輸出。用戶調用的補丁歷史記錄打印在應用程序主屏幕上的「歷史記錄」列表中。

我希望有人能幫助我。任何建議是最受歡迎的。

感謝名單, 馬克·雅可比

回答

3

我認爲你正在使用的共享語音識別(SpeechRecognizer)。當你實例化 SpeechRecognizer時,你會得到一個可以被其他應用程序共享的識別器,通常用於構建應用程序來控制在桌面上運行的窗口和應用程序。

這聽起來像你想用自己的私人識別引擎(SpeechRecognitionEngine)。因此改爲實例化一個SpeechRecognitionEngine。

看到http://msdn.microsoft.com/en-us/library/system.speech.recognition.speechrecognizer(v=vs.90).aspx

What is the difference between System.Speech.Recognition and Microsoft.Speech.Recognition?Disable built-in speech recognition commands?可能也有一些有用的信息。

+0

看起來不錯,thanx!我會研究它。 – obiwanjacobi 2011-03-15 08:49:34

+0

您可能還想查看http://stackoverflow.com/questions/5101119/looking-for-a-book-on-net-speech-recognition/5118157#5118157。所提到的MSDN文章是有幫助的。 – 2011-03-16 15:40:26

0

我明白了,thanx!

使用SpeechRecognizer和SpeechRecognitionEngine之間的主要區別是:

  • 構建使用RecognizerInfo從InstalledRecognizers的SpeechRecognitionEngine。
  • 調用其中一個SetInputToXxxx方法
  • 調用RecognizeAsync(RecognizeMode.Multiple)來模擬SpeechRecognizer(SpeechRecognized)事件。
  • Call Recognize取消/停止退出。

希望它有幫助。