5

我在 Windows 上使用 pocketsphinx_continuous。使用“-infile”参数将输出重定向到文本文件,但使用“-inmic yes”失败。

如问题中所述,Pocketsphinx 是否刷新标准输出?pocketsphinx 忽略标准输出(至少在使用 -inmic 时)。

有什么方法可以将带有“-inmic yes”的pocketsphinx_continuous识别的单词保存到文本文件中?

具体来说,我希望我的 Java 程序运行 pocketsphinx_continuous.exe 并从麦克风输入中识别出单词。

解决方案

按照 Alexander Solovets 的建议使用-backtracewith-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);
}
4

2 回答 2

4

没有专门的选项可以仅将结果保存到文件中。但是,您可以使用-backtrace告诉 pocketsphinx 将结果和回溯保存到日志文件,您可以使用-logfn.

于 2015-07-18T19:33:47.540 回答
1

由于修订版 13156 pocketsphinx 应该在每条消息上刷新标准输出,因此交互式应用程序应该可以工作。

您可以更新您的版本。

于 2016-01-06T01:39:30.527 回答