我在 Windows 上使用 pocketsphinx_continuous。使用“-infile”参数将输出重定向到文本文件,但使用“-inmic yes”失败。
如问题中所述,Pocketsphinx 是否刷新标准输出?pocketsphinx 忽略标准输出(至少在使用 -inmic 时)。
有什么方法可以将带有“-inmic yes”的pocketsphinx_continuous识别的单词保存到文本文件中?
具体来说,我希望我的 Java 程序运行 pocketsphinx_continuous.exe 并从麦克风输入中识别出单词。
解决方案
按照 Alexander Solovets 的建议使用-backtrace
with-logfn
确实将结果与指定文件中的日志一起保存。但是,日志的保存频率不如结果发送到终端的频率高。我希望尽快将结果输出到文件中,因此我从源代码构建了 pocketsphinx_continuous.exe,并对continous.c
.
在连续.c 中:
hyp = ps_get_hyp(ps, NULL );
if (hyp != NULL)
{
printf("%s\n", hyp);
FILE * fp;
fp = fopen("file.txt", "a+");
fprintf(fp, hyp);
fprintf(fp, "\r\n");
fclose(fp);
}