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

标签 c# windows-7 c#-3.0 speech-recognition system.speech.recognition

我制作了一个应用程序,它使用 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/

相关文章:

asp.net - HTTP 错误 500.22 - 内部服务器错误(已检测到不适用于集成托管管道模式的 ASP.NET 设置。)

windows - UDP 监听套接字在网络配置更改后停止监听

c# - System.Drawing.Image 流式传输 C#

c# - 空引用文字控制

c# - 将 foreach 语句重写为 linq

c# - WPF ComboBox : static list of ComboBoxItems, 但数据绑定(bind) SelectedItem?

python - cwd的字符串变量

c# - 错误::类、结构或接口(interface)成员声明中的无效标记 '='

"is"关键字的 C# 使用模式

c# - 确认字典中的所有键都已填充值