我制作了一个应用程序,它使用 SpeechRecognizer 类来设置简单的语法并识别简单的单词。
当我在 Win7 上运行它时,我注意到两件事。
1) 我第一次启动应用程序时,语音识别栏(东西)出现,但我的应用程序的 UI 未显示(正如我在任务管理器中看到的那样,它正在运行)。 当我第二次启动应用程序时(杀死第一个实例后),它正常显示(Windows 语音识别工具栏已在运行)。
2)当我第二次说出我在应用程序中识别的单词之一时,它不会触发事件 - 相反 - 它会选择我的应用程序上的文本,我在列表框中打印出该单词的历史记录已识别的单词。
注意:当我从主屏幕中删除历史列表框时,它会按预期工作。显然,Win7 首先尝试在我的 UI 中查找该单词,当它找不到它时 - 只有这样它才会触发我的编程事件...??
这两个问题对我来说都很奇怪。
有关该应用程序的更多信息:它是一个用 C# 编写的 VS2008/.NET 3.0 WPF 应用程序。该应用程序允许用户编辑用于发送 Midi 命令的设置组(补丁)。每个补丁都标有一个短语。当说出该短语(由应用程序识别)时,所有配置的 Midi 命令都会发送到输出。用户调用的补丁的历史记录会打印在应用程序主屏幕上的“历史记录”列表中。
我希望有人能帮助我解决这个问题。欢迎提出任何建议。
谢谢, 马克·雅可比
最佳答案
我认为您正在使用共享语音识别器(SpeechRecognizer)。当你实例化时 SpeechRecognizer 您将获得一个可以由其他应用程序共享的识别器,通常用于构建应用程序来控制窗口和桌面上运行的应用程序。
听起来您想使用自己的私有(private)识别引擎(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?可能还有一些有用的信息。
关于c# - Windows7 上语音识别 C# WPF 应用程序的两个问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5296367/