使用CMU Sphinx进行数字识别

时间:2016-03-23 14:48:12

标签: speech-recognition voice-recognition cmusphinx pocketsphinx

Hi Recognition Experts,

我有很多包含数字(0 - 9)的mp3文件(原始音频流采样率为11.025 kHz)。

不同的发言者(男/女)说例如" One"," Seven"," Three"等等,它们之间有暂停(约2 - 2.5秒)

我将使用CMU Sphinx识别语音(桌面应用程序)。所以我有一些问题:

  1. MP3解码:如何解码我的mp3文件意味着什么样本 我应该指定ffmpeg(因为我知道它不推荐给 上采样/下采样流)。我应该在解码时过滤噪音和/或频段吗?

  2. 声学模型:如果我没有上采样/下采样流,怎么能 我找到了一个支持11025 kHz的声学模型。如果我,数字的最佳模型是什么?

  3. 识别模式:我发现有两种转录模式 - 密钥 发现和识别。哪种模式会更好 帐户我只有数字(和一些噪音)

  4. 由于

    UPD:

    尼古拉,谢谢你的回答。我已经尝试了你的建议 - 它有效!

    如果你不介意,我想问一些额外的问题:

    1. 我发现其中一个voxforge声学模型比en-us-8khz更准确。可以吗?

    2. 只有45%的文件被识别正确。其他55%的人犯了20-90%的错误。因此,我的问题是:是否有可能估计获得结果的可信度?例如,我可以跳过文件,这些文件不是'#34;不确定"识别?

    3. 如果答案2是"否",您有什么建议可以提高准确度?我知道,问题非常抽象......

    4. 提前谢谢!

      UPD2:

      顺便说一句,设置的最佳参数(我只是经历了各种参数)是:

      -remove_dc yes -remove_noise no -vad_threshold 3.4 -vad_prespeech 19 -vad_postspeech 37 -silprob 2.5
      

1 个答案:

答案 0 :(得分:0)

  

MP3解码:我如何解码我的mp3文件意味着我应该为ffmpeg指定哪个采样率(因为我知道它不推荐用于上采样/下采样流)。我应该在解码时过滤噪音和/或频段吗?

 ffmpeg -i file.mp3 -ar 8000 file.wav
  

声学模型:如果我不对流进行上采样/下采样,我怎样才能找到支持11025 kHz的声学模型。如果我这样做,数字的最佳模型是什么?

en-us-8khz可在下载中找到,您需要在tutorial中创建数字语法,然后按以下方式使用

 pocketsphinx_continuous -infile file.wav -jsgf digits.gram -hmm en-us-8khz -samprate 8000
  

识别模式:我发现有两种转录模式 - 按键定位和识别。考虑到我只有数字(和一些噪音)

,哪种模式会更好

识别模式