使用Python subprocess调用Mozilla Deepspeech转写语音生成的result.txt为空如何解决
问题排查及解决方案
- 核心错误原因:
subprocess.run的参数列表拆分不符合要求。你将--lm、--trie两个独立启动参数和--model的参数值合并到了同一个字符串中,Deepspeech收到异常参数后执行失败,无标准输出内容写入文件,且你未捕获错误输出,因此没有感知到执行异常。另外你原代码中--model对应的路径拼写存在遗漏斜杠的问题,也会导致文件读取失败。 - 修正后的代码示例:
#!C:\Program Files\Python36\python.exe print("Content-type: text/html\n") import subprocess,os,sys with open("C:/result.txt", mode="wb") as fd: subprocess.run([ "deepspeech", "--model", "C:/deepspeech/deepspeech-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添加stderr=subprocess.PIPE参数,执行后打印返回对象的stderr内容即可查看具体报错信息。
内容的提问来源于stack exchange,提问作者user3653474
相关产品推荐
相关产品推荐

