【问题标题】:Use speech recognition from C#使用 C# 中的语音识别
【发布时间】:2009-06-29 18:19:19
【问题描述】:

我正在尝试编写一个通过自定义(专业)语法支持语音识别的程序。但是,SpeechRecognized 事件永远不会触发,并且语音识别小程序的行为就像语法不存在一样。

这是我的具体步骤。请告诉我哪里出错了。

  1. 打开控制面板,搜索“语音”,然后点击“开始语音识别”。
  2. 打开 Visual C#,新建一个 Windows 窗体项目
  3. the first answer on this Stack Overflow question 复制代码并将其粘贴到项目中。
  4. 添加对 System.Speech 的必要引用。
  5. 运行程序,语音识别小程序仍在运行。
  6. 说“开始收听”。
  7. 说出一个 1 到 100 之间的数字。

标签的文本永远不会改变其默认值(“label1”),因此似乎永远不会调用 rec_SpeechRecognized(),即 SpeechRecognized 事件永远不会触发。如果我在开始菜单中说出一个听起来与打开的窗口或程序的名称有些相似的数字,它会问我这是否是我的意思。它似乎与我刚刚定义的自定义语法完全无关。

我尝试了很多我在网上找到的示例,这些示例都与我链接到的答案中的示例几乎相同,只是语法不同。我对所有这些都得到了相同的结果,所以我认为我一定是做错了什么。

我做错了什么?

【问题讨论】:

  • 你有没有在识别器回调上设置一个断点,看看它是否被调用/

标签: c# speech-recognition


【解决方案1】:

我认为您没有将 Form1 加载事件链接到设计器中的 Form1_Load 例程。我完全按照您的步骤进行操作,并且得到了相同的结果;看看是否可以在Form1_Load 的任意位置获得断点。

一旦我编辑了设计器以确保 Form1_Load 确实被调用,它运行良好。

【讨论】:

  • 是的,我确实链接了该活动。当然我试过设置断点; Form1_Load 中的代码确实运行。您说“它运行良好”——您是否尝试过语音识别,它是否真的为您识别了数字?
【解决方案2】:

由于缺乏答案,我怀疑它适用于其他所有人,但不适用于我。因此,看起来答案是“不可能”。

【讨论】:

    【解决方案3】:

    如果您阅读同一主题中的其他帖子,有一篇说您应该将数字添加为 1、2 等,而不是 1、2...

    【讨论】:

      猜你喜欢
      • 2018-02-23
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-05-23
      • 1970-01-01
      • 1970-01-01
      • 2011-03-16
      相关资源
      最近更新 更多