我有一个批处理文件,它执行收听麦克风并将其转换为文本的操作(我使用的是袖珍狮身人面像)。
我用来运行批处理文件的命令是pocketsphinx_continuous.exe -dict <dict name> -lm <language model> -hmm <acoustic model location>
. 批处理文件启动并继续收听麦克风。每当我们说完一个句子时,它就会在命令提示符下将其转换为文本。由于它连续运行,我们通过Ctrl-终止此任务C。
我试图把它变成一个独立的 Java 应用程序。我想通过 Java 运行这个批处理文件,所以我使用Runtime.getRuntime().exec("cmd /c start pocketsphinx_continuous.exe ...")
了所有参数。然而奇怪的是,它在单独的命令提示符下启动批处理但立即退出。我尝试使用process.waitfor()
,但它只是开始执行批处理然后终止。我还没有打电话process.destroy
,所以我无法弄清楚它为什么退出批处理。
另一个问题是,由于批处理文件是连续运行的,在每个口语句子都被转录后,我希望在我的 Java 应用程序中获得输出。我知道我可以将批处理重定向到文件然后读取文件,只是想知道是否有更直接的过程。你能帮我弄清楚我在哪里犯了错误。