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取消/停止退出。

希望它有帮助。