【发布时间】:2016-06-03 02:32:15
【问题描述】:
我正在尝试将数据流从 NodeJS 传递到 pocketsphinx_continuous 进程。我的想法是使用 NodeJS 的管道功能将我的数据发送到 pocketsphinx 进程的标准输入流。
如果我跑步
pocketsphinx_continuous -infile /dev/stdin -nfft 2048 -samprate 44100 -keyphrase "hello computer" -kws_threshold 1e-18
在命令行上,pocketsphinx_continuous 启动并耐心等待标准输入。
但是,当我添加时
var ps = exec('pocketsphinx_continuous -infile /dev/stdin -nfft 2048 -samprate 44100 -keyphrase "hello computer" -kws_threshold 1e-18', function(error, stdout, stderr) {});
对于我的 NodeJS 程序,我得到:
致命:“continuous.c”,第 158 行:无法打开文件 '/dev/stdin' 进行读取:没有这样的设备或地址
我很难理解为什么在 NodeJS 下运行时会出现此错误,但在正常运行时却不会。
谢谢,
乔什
【问题讨论】:
-
最好使用 node-pocketsphinx 而不是 subprocess,这样您就可以更直接地处理错误。
-
@NikolayShmyrev 我遇到了 node-pocketsphinx 文档非常差的问题。不过,moneppo 的原始版本似乎有不错的文档,我之前正在查看官方 fork。
-
对不起,您所说的“体面的文档”是什么意思?自述文件中的几段或什么?
-
不认真,这是raw.githubusercontent.com/moneppo/node-pocketsphinx/master/… 一个“体面的文档”吗?
-
嗯,你是对的,原版的文档也很糟糕。我说它不错的原因是因为“PocketSphinx 对象是一个接受单声道 16 kHz 16 位 PCM 数据的可写流”这句话。这至少告诉我一些关于我应该如何使用这个包的信息。 cmusphinx 版本根本没有告诉我任何有用的信息。
标签: node.js cmusphinx pocketsphinx