如何使用Sphinx从波形文件中获取MEL系数

时间:2014-04-25 03:07:40

标签: java android cmusphinx feature-extraction mfcc

我需要一个基于java的特征提取库并找到Sphinx,但不知道如何使用。 基本上,我需要将wav文件转换为MEL系数。 一旦我在Matlab中完成了这个,但由于我不熟悉Java,我无法掌握如何使用他们的代码并提取功能。

顺便说一下,如果你知道另一个能够快速完成的开源库,那将非常有帮助。

更新: 由于我将在Android上使用它,我发现使用PocketSphinx可能是一个更好的主意。 (我尝试下载他们的demo app,但它没有在我的设备上运行(Nexus 5),它试图打开一个活动但立即关闭。)我也跟着these steps,但是没有收获。

如果有人可以帮助我弄清楚如何设置它会很棒。 我需要知道: 1-应使用哪些模块, 2-如何将库用于我自己的项目? 3-如何设置库:应使用哪些功能以及如何使用。

提前致谢。

是否有使用

的分步指南

1 个答案:

答案 0 :(得分:3)

当然,可以使用sphinx4计算MFCC功能。但不会说会很快。 sphinx4中有一个前端的概念,负责处理输入数据。典型的前端看起来像这样:

  <component name="liveFrontEnd" type="edu.cmu.sphinx.frontend.FrontEnd">
    <propertylist name="pipeline">
      <item>dataSource </item>
      <item>dataBlocker </item>
      <item>speechClassifier </item>
      <item>speechMarker </item>
      <item>nonSpeechDataFilter </item>
      <item>preemphasizer </item>
      <item>windower </item>
      <item>fft </item>
      <item>autoCepstrum </item>
      <item>liveCMN </item>
      <item>featureExtraction </item>
      <item>featureTransform </item>
    </propertylist>
  </component>

前端的每个元素从前一个元素读取数据,以某种方式处理它,然后传递给下一个元素。这里dataSource接受原始音频输入和autoCepstrum输出MFCC系数。其他一切都与语音识别器的特定设置有关。现在,如果您想使用sphinx4来计算MFCC,您应该自己设置类似的前端,单独实例化和调优每个组件,或者使用ConfigurationManager编写XML配置并实例化前端。