マイクを聞いてテキストに変換する操作を実行するバッチ ファイルがあります (ポケット スフィンクスを使用しています)。
バッチ ファイルを実行するために使用しているコマンドは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
したことがないので、バッチ プロセスを終了する理由がわかりません。
もう 1 つの質問は、バッチ ファイルが継続的に実行されているためです。話されたすべての文が書き起こされた後、Java アプリケーションで出力を取得したいと考えています。バッチプロセスをファイルにリダイレクトしてからファイルを読み取ることができることはわかっていますが、より直接的なプロセスがあるかどうか疑問に思っていました。どこが間違っているのか教えてください。