Windows7上语音识别C#WPF应用程序的两个问题

Windows7上语音识别C#WPF应用程序的两个问题,c#,windows-7,c#-3.0,speech-recognition,system.speech.recognition,C#,Windows 7,C# 3.0,Speech Recognition,System.speech.recognition,我制作了一个应用程序,它使用SpeechRecognizer类来设置简单的语法和识别简单的单词 当我在Win7上运行它时,我注意到两件事 1) 我第一次启动应用程序时,语音识别栏(thingy)会出现,但我的应用程序的UI没有显示(正如我在任务管理器中看到的,它正在运行)。 当我第二次启动应用程序时(在杀死第一个实例后),它会正常显示(windows语音识别工具栏已经运行) 2) 当我第二次说出我在应用程序中识别的一个单词时,它不会触发一个事件,而是会选择我应用程序上的文本,在列表框中打印识别单

我制作了一个应用程序,它使用SpeechRecognizer类来设置简单的语法和识别简单的单词

当我在Win7上运行它时,我注意到两件事

1) 我第一次启动应用程序时,语音识别栏(thingy)会出现,但我的应用程序的UI没有显示(正如我在任务管理器中看到的,它正在运行)。 当我第二次启动应用程序时(在杀死第一个实例后),它会正常显示(windows语音识别工具栏已经运行)

2) 当我第二次说出我在应用程序中识别的一个单词时,它不会触发一个事件,而是会选择我应用程序上的文本,在列表框中打印识别单词的历史记录

注意:当我从主屏幕中删除历史记录列表框时,它会按预期工作。很明显,Win7首先尝试在我的UI中查找单词,当它找不到它时,它才会触发我的编程事件

这两个问题对我来说都很奇怪

关于该应用程序的更多信息:它是一个用C#编写的VS2008/.NET3.0WPF应用程序。该应用程序允许用户编辑用于发送Midi命令的设置组(补丁)。每个补丁都有一个短语标记。当说出该短语时(由应用程序识别),所有配置的Midi命令都会发送到输出。用户召回的补丁的历史记录打印在应用程序主屏幕上的“历史记录”列表中

我希望有人能帮我。欢迎提出任何建议

Thanx,
Marc Jacobi

我认为您正在使用共享语音识别器(SpeechRecognitor)。当你实例化 SpeechRecognizer您可以获得一个可由其他应用程序共享的识别器,该识别器通常用于构建应用程序,以控制桌面上运行的窗口和应用程序

听起来你想使用自己的私人识别引擎(SpeechRecognitionEngine)。因此,请实例化SpeechRecognitionEngine


可能还有一些有用的信息。

我让它工作了,thanx

使用SpeechRecognition和SpeechRecognitionEngine的主要区别在于:

  • 使用InstalledRecognizers中的RecognizerInfo构建SpeechRecognitionEngine
  • 调用SetInputToXxxx方法之一
  • 调用RecognizeAsync(RecognizeMode.Multiple)来模拟SpeechRecognitizer(SpeechRecognited)事件
  • 呼叫识别取消/停止退出

希望有帮助。

看起来很棒,thanx!我会调查的。你可能也想看看。提到的MSDN文章很有帮助。