Pocketsphinx:捕获 -inmic yes 的实时输出到 .txt

Pocketsphinx: Capturing real-time output of -inmic yes to .txt

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

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

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

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

解决方案

按照 Alexander Solovets 的建议将 -backtrace-logfn 结合使用确实会将结果与日志一起保存在指定的文件中。但是,日志不会像结果发送到终端那样频繁保存。我希望尽快将结果输出到文件中,因此我从源代码构建了 pocketsphinx_continuous.exe,并对 continous.c.

进行了以下更改

在continuous.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);
}

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

指定

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

您可以更新您的版本。