【问题标题】:Decoding speed issue with CMU Sphinx 4CMU Sphinx 4 的解码速度问题
【发布时间】:2015-09-22 21:32:35
【问题描述】:

我使用 CMU sphinx 4 编写了语音识别应用程序,并遵循了link 中的详细信息。我已经定义了声学、字典和语言模型如下

configuration.setAcousticModelPath("resource:/edu/cmu/sphinx/models/en-us/en-us");

configuration.setDictionaryPath("resource:/edu/cmu/sphinx/models/en-us/cmudict-en-us.dict");

configuration.setLanguageModelPath("resource:/edu/cmu/sphinx/models/en-us/en-us.lm.bin");

使用上述配置,20 分钟的 wav 文件几乎需要接近 20 分钟来完成转录。因此,我尝试传递用户定义的 config.xml。我没有找到配置管理器选项来使用当前版本的Sphinx4传递用户定义的config.xml。然后我通过扩展AbstractSpeechRecognizer.java类编写了自己的识别器(它可能没用) 并更改了 config.xml 的一些参数,我尝试过但仍然没有改善。

我已经从多个来源下载了视频和音频,并使用 FFMPEG 转换为 WAV 文件

命令如下

ffmpeg -i input.mp3 -acodec pcm_s16le -ac 1 -ar 16000 output.wav

环境详情:

Java 8

Ubuntu 14.04

内存 4GB

I5 处理器

我想知道的是,我在这里缺少什么以及如何提高性能?

【问题讨论】:

    标签: speech-recognition cmusphinx sphinx4


    【解决方案1】:

    语音识别是一个资源密集型过程。准确的语音识别预计会很慢,你目前的速度1xRT(1分钟需要1分钟解码)是合理的。有一些商业产品使用 GPU 加速,可以以 0.05xRT 运行,但在 CPU 上运行速度通常不超过 0.2xRT。所以还是要花时间去解码。

    如果您想更快地处理文件,可以将其拆分为多个部分,并在并行线程或并行机器上分别解码每个部分。

    【讨论】:

    • 所以改变配置是没有用的。 Xml 对,什么情况下我需要更改声学模型(仅用于发音)?
    • 不,有用来改变XML的,我们不推荐。我不确定“发音”是什么意思
    猜你喜欢
    • 2016-12-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-11-21
    • 1970-01-01
    • 2012-08-19
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多