我正在尝试从Ruby运行PocketSphinx。我所做的是从Ruby运行一个终端命令。如下所示:
cmd = "pocketsphinx_continuous \
-lm /usr/local/share/pocketsphinx/model/lm/en_US/hub4.5000.DMP \
-dict /usr/local/share/pocketsphinx/model/lm/en_US/cmu07a.dic\
-infile ~/Path/FileName.wav"
output = `#{cmd}`
puts output如果有文件输入,这会工作得很好。但是,当我尝试处理流式音频时,就像用麦克风说话一样,我只是删除了"-infile“这一行。在这种情况下,它不再起作用。PocketSphinx进程,但它从不像往常那样显示“就绪”。
仅供参考,我使用的是Ubuntu 14.04和Ruby 2.0。
你知道这是怎么回事吗?
发布于 2014-09-13 09:06:24
这是因为读取麦克风输入假设您应该手动结束该过程。有两种选择:在超时时将SIGINT发送到进程,或者从SWIG界面编译Ruby库。您可以通过阅读pocketsphinx的Python interface和查看sources来了解更多关于后者的信息。
此外,请参阅此comprehensive answer,了解如何在Ruby中使用CMU Sphinx。
https://stackoverflow.com/questions/25817246
复制相似问题