【问题标题】:How to get MEL Coefficients from a wave file using Sphinx如何使用 Sphinx 从波形文件中获取 MEL 系数
【发布时间】:2014-06-10 14:22:46
【问题描述】:

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

顺便说一句,如果您有机会知道另一个能够快速做到这一点的开源库,那将非常有帮助。

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

如果有人能帮我弄清楚如何设置它,那就太好了。 我需要知道: 1-应该使用哪些模块, 2-我如何将库用于我自己的项目? 3- 如何设置库:应该使用哪些函数以及如何使用。

提前致谢。

有没有一步一步的使用指南

【问题讨论】:

  • 请分享发生错误时的LogCat部分。该演示应在所有 Android >= 2.3 的设备上运行。

标签: java android cmusphinx feature-extraction mfcc


【解决方案1】:

当然,可以使用 sphinx4 计算 MFCC 特征。但不会说它会很快。 sphinx4 中有一个 frontend 的概念,它负责处理输入数据。典型的前端如下所示:

  <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,您应该自己设置类似的前端,分别实例化和调整每个组件,或者可以编写 XML 配置并使用 ConfigurationManager 实例化前端。

【讨论】:

  • 谢谢!我想我先尝试 ConfigurationManager 会更容易。这是使用 ConfigurationManager 的正确方法吗? ConfigurationManager cm = new ConfigurationManager(myXML.xml);那我怎样才能找回系数呢?
  • 您应该从配置管理器获取前端实例并读取其数据。使用ConfigurationManager#lookup(String) 获取实例,使用FrontEnd#getData() 读取数据。数据有多种类型,更多信息见Data的实现列表。
猜你喜欢
  • 2023-02-26
  • 2017-05-29
  • 1970-01-01
  • 1970-01-01
  • 2014-05-23
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多