java - 如何使用 Sphinx 从 wave 文件中获取 MEL 系数

标签 java android cmusphinx feature-extraction mfcc

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

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

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

如果有人能帮我弄清楚如何设置它,那就太好了。 我需要知道: 1- 应该使用哪些模块, 2- 我如何将图书馆用于我自己的项目? 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,你要么自己设置类似的前端来分别实例化和调整每个组件,要么可以编写 XML 配置并使用 ConfigurationManager 实例化前端。 .

关于java - 如何使用 Sphinx 从 wave 文件中获取 MEL 系数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23283482/

相关文章:

java - QEMU-KVM Libvirt Java绑定(bind)错误: Forbidden for read only access

android - 从 appwidget 制作缩放动画

java - 一起运行 Pocketsphinx 和 Google TTS

cmusphinx - 如何区分 8Khz 声学模型和 16Khz 模型之间的区别?

java - CMU sphinx4支持非英语语音识别吗

java - 整齐地返回轮廓 - OpenCV/Java

Java 在效率方面等同于 C# 的 Action Type。 Java 8 还是 Pre-Java 8?

java - 如何从 java 类路径中排除特定的 jar

java - 更新 Firebase 中的键值

android - BottomSheetDialog 在 Android 10 上即使处于隐藏状态也能在底部可见