У меня есть пакетный файл, который выполняет операцию прослушивания микрофона и преобразования его в текст (я использую карманного сфинкса).
Команда, которую я использую для запуска пакетного файла, 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.Я знаю, что могу перенаправить пакетный процесс в файл, а затем прочитать файл, мне было просто интересно, есть ли более прямой процесс.Не могли бы вы помочь мне выяснить, где я делаю ошибку.