Не удается расшифровать с помощью deepspeech с помощью подпроцесса

#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) , но получил пустой файл