【问题标题】:How to recognize a phrase from a voice file如何从语音文件中识别短语
【发布时间】:2012-04-29 23:53:28
【问题描述】:

如何让引擎成功识别语音文件(wav/mp3/etc..)中的短语?

例如,如果我将有一个语音文件和一个书面文本的上下文同一个文件,那么要让它识别语音文件中的书面文字。

我尝试使用 SpeechRecognitionEngine,但到目前为止没有成功。

我会欣赏想法,因为这是我第一次处理语音识别技术。

我已经看到了使用字典的语音到文本的示例,但我不确定它在这里有什么用处。我正在考虑将所有语音文件转换为文本,然后简单地在该文本中查找特定的短语,但我认为这不是正确的方法。将例如 5hrs 语音转换为文本似乎没有意义.. 或者将特定短语用作“字典”并在语音文件中查找此项。

【问题讨论】:

  • 感谢降级的家伙......但你也能帮忙回答一下吗? :)
  • 我根据我想的方向稍微编辑了这个问题......我想到的是将整个语音转换为文本,而不是执行简单的搜索,但看起来像一个愚蠢的解决方案......

标签: c# visual-studio-2010 speech-recognition


【解决方案1】:

您似乎需要在长文件中查找特定单词。这种技术称为“关键字识别”,它与语音识别完全不同,效率更高。显然您不需要转录整个文件来搜索其中的单词,您可以快速浏览文件。 Microsoft 语音识别引擎对关键字定位的支持非常有限。

CMUSphinx 这样的开源引擎可以用来有效地实现关键字识别。更多参考请参见how to implement wake-up listening with pocketsphinx 上的信息。

有关底层算法的更多信息,请参阅ACOUSTIC KEYWORD SPOTTING IN SPEECH WITH APPLICATIONs TO DATA MINING

【讨论】:

    【解决方案2】:

    根据MSDN文章Getting Started with Speech Recognition

    您需要做的步骤是(来自文章)。注意创建识别语法的步骤。文章继续建议使用GrammerBuilderChoices 类。

    语音识别应用程序通常会执行以下基本操作:
    - 启动语音识别器。
    - 创建识别语法。
    - 将语法加载到语音识别器中。
    - 注册语音识别事件通知。
    - 为语音识别事件创建一个处理程序。

    【讨论】:

      【解决方案3】:

      如果您尝试使用 Microsoft 语音引擎转换音频文件,则必须小心。首先,唯一支持的格式是 WAV(它可以编码为 PCM、ALaw 或 uLaw),但您必须验证您的文件是识别器支持的格式。您还必须验证采样率。识别器仅支持一组固定的采样率。在我的机器上,

      • 每个样本 8 位
      • 单声道单声道
      • 每秒 22,050 个样本
      • PCM 编码

      效果很好。有关更多信息,请参阅https://stackoverflow.com/a/6203533/90236。您可能需要使用audacity 之类的工具重新采样或重新编码 WAV 文件。见https://stackoverflow.com/a/9467044/90236

      SAPI and Windows 7 Problem 中有一个简单的示例,可以帮助您入门。

      最后,(我总是重复这一点,抱歉)有一篇关于 Windows .NET 中的编程识别的精彩文章。见http://msdn.microsoft.com/en-us/magazine/cc163663.aspx,有点过时了,但是很好的介绍。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2023-04-02
        • 1970-01-01
        • 1970-01-01
        • 2011-11-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多