#python #subprocess #mozilla-deepspeech
Вопрос:
Я пытаюсь расшифровать (речь в текст) с помощью Mozilla Deepspeech, используя приведенный ниже код в подпроцессе python для выполнения этой команды эта команда работает в терминале, а также выполняется в подпроцессе python, и ошибок нет, но когда result.txt генерируется он пустым.
#!C:Program FilesPython36python.exe print("Content-type: text/htmln") import subprocess,os,sys with open("C:/result.txt", mode="wb") as fd: subprocess.run(["deepspeech", "--model", "C:/deepspeechwkdeepspeech-0.6.0-models/output_graph.pb --lm C:/deepspeech/deepspeech-0.6.0-models/lm.binary --trie C:/deepspeech/deepspeech-0.6.0-models/trie", "--audio", "C:/deepspeech/audio/8455-210777-0068.wav"], stdout=fd)
Любая помощь будет высоко оценена. Спасибо
Ответ №1:
Вам нужно передать каждую строку, разделенную пробелом, как отдельную строку для подпроцесса
Замените это:
subprocess.run(["deepspeech", "--model", "C:/deepspeechwkdeepspeech-0.6.0-models/output_graph.pb --lm C:/deepspeech/deepspeech-0.6.0-models/lm.binary --trie C:/deepspeech/deepspeech-0.6.0-models/trie", "--audio", "C:/deepspeech/audio/8455-210777-0068.wav"], stdout=fd)
С этим:
subprocess.run(["deepspeech", "--model", "C:/deepspeechwkdeepspeech-0.6.0-models/output_graph.pb", "--lm", "C:/deepspeech/deepspeech-0.6.0-models/lm.binary", "--trie", "C:/deepspeech/deepspeech-0.6.0-models/trie", "--audio", "C:/deepspeech/audio/8455-210777-0068.wav"], stdout=fd)
Кроме того, вы можете перенаправить ошибку, используя stderr=
вместе с stdout=
напр.. subprocess.run(["deepspeech", "--model", "C:/deepspeechwkdeepspeech-0.6.0-models/output_graph.pb --lm C:/deepspeech/deepspeech-0.6.0-models/lm.binary --trie C:/deepspeech/deepspeech-0.6.0-models/trie", "--audio", "C:/deepspeech/audio/8455-210777-0068.wav"], stdout=fd, stderr=fd)
Комментарии:
1. Спасибо за ваш ответ, я попробовал этот код
import subprocess,os,sys with open("C:/result.txt", mode="wb") as fd: subprocess.run(["deepspeech", "--model", "C:/deepspeechwkdeepspeech-0.6.0-models/output_graph.pb --lm C:/deepspeech/deepspeech-0.6.0-models/lm.binary --trie C:/deepspeech/deepspeech-0.6.0-models/trie", "--audio", "C:/deepspeech/audio/8455-210777-0068.wav"], stdout=fd, stderr=fd)
, но получил пустой файл