【问题标题】:Specifying path to the acoustic model in pocketsphinx在 pocketsphinx 中指定声学模型的路径
【发布时间】:2015-08-05 20:02:03
【问题描述】:

我想构建一个基于音素的小“对话系统”,它可以收听语音并将其转换为一串音素(无论出错多少都无所谓),处理/存储这些并在音素级别播放它们。我的目标是使用节日/mbrola 或 espeak。都在树莓派上运行(该项目称为 babble pi)。

我在这里遵循了非常好的说明: https://wolfpaulus.com/jounal/embedded/raspberrypi2-sr/

我也得到了很好的认可:

pocketsphinx_continuous -hmm /usr/local/share/pocketsphinx/model/en-us/en-us -lm 3199.lm -dict 3199.dic -samprate 16000/8000/48000 -inmic yes

现在我在 sourceforge 网站上阅读了这篇关于音素识别的文章:http://cmusphinx.sourceforge.net/wiki/phonemerecognition

并且还意识到显然 prealpha5 具有新的二进制格式。 关于音素识别器的文章指出,基本上英语音素识别器是默认安装包的一部分,因此邀请通过以下方式对其进行测试:

pocketsphinx_continuous -infile test/data/goforward.raw -hmm en-us -allphone model/en-us/en-us-phone.lm.dmp -backtrace yes -beam 1e-20 -pbeam 1e-20 -lw 2.0

我假设音素文章指的是旧版本的 (pocket-)sphinx,因为它指的是 .dmp 而不是 .bin 文件扩展名,所以我尝试了:

pocketsphinx_continuous -infile test/data/goforward.raw -hmm en-us -allphone model/en-us/en-us-phone.lm.bin -backtrace yes -beam 1e-20 -pbeam 1e-20 -lw 2.0

但我收到以下错误:

ERROR: "acmod.c", line 83: Folder 'en-us' does not contain acoustic model definition 'mdef'

查看 en-us,实际上只有一个 .dict、一个 .lm.bin 和电话文件。和另一个包含 mdef 文件以及其他几个文件的 en-us 目录。复制它没有帮助。

那么,该怎么办?卸载 prealpha5 并安装版本 4?或者我可以在某处下载正确的文件吗?

【问题讨论】:

    标签: speech-recognition raspberry-pi2 pocketsphinx phoneme


    【解决方案1】:

    您设置为en-us-hmm 选项的参数是文件夹的路径。在您的情况下,它是相对路径。如果lm路径是model/en-us/en-us-phone.lm.bin,那么-hmm路径必须是model/en-us/en-us,而不是简单的en-us

    【讨论】:

    • 好的,我猜你的提示是正确的。实际上 en-us/en-us 没有工作,但是 model/en-us/en-us 导致程序运行到 "INFO: Continuous.c(303): pocketsphinx_continuous COMPILED ON " 然后它需要大约在树莓派 2 上 40 秒,我得到电话列表。所以,是的,它有效!但是:哇,这么慢!我读过它加载了 130k 字,这会使其变慢吗?我可以将 .dict 文件修剪到前 10k(假设它们按频率排序)吗?
    • 语音识别很慢,因为它考虑到大量的变体。您可以将命令行选项-allphone_ci yes 添加到命令行参数以使其更快但不太准确。 13 万个单词的词汇量无关紧要。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-03-13
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多