如何识别语音文件中的短语

时间:2012-04-29 23:53:28

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

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

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

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

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

我已经看过使用词典的语音到文本的示例,但我不确定它在这里是如何有用的。我想的可能是将所有语音文件转换为文本,然后只是查找该文本中的特定短语,但我认为这不是正确的方法。将5小时语音转换为文本似乎没有意义....或者可能将特定短语用作“词典”并在语音文件中查找此项目。

3 个答案:

答案 0 :(得分:6)

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

可以使用像CMUSphinx这样的开源引擎来有效地实现关键字定位。有关how to implement wake-up listening with pocketsphinx的详细信息,请参阅参考资料。

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

答案 1 :(得分:0)

根据MSDN文章Getting Started with Speech Recognition

您需要做的步骤(来自文章)。请注意创建识别语法步骤。本文接着建议使用GrammerBuilderChoices类。

  

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

答案 2 :(得分:0)

如果您尝试使用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,它有点过时,但是很棒的介绍。