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 应该刷新每条消息的标准输出,因此交互式应用程序应该可以工作。
您可以更新您的版本。
我在 Windows 上使用 pocketsphinx_continuous。将输出重定向到文本文件适用于“-infile”参数,但使用“-inmic yes”失败。
如问题
有什么方法可以将 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 应该刷新每条消息的标准输出,因此交互式应用程序应该可以工作。
您可以更新您的版本。