【发布时间】:2017-03-19 22:08:25
【问题描述】:
我的代码是 python。它调用 espeak 命令来生成 .wav 音频。然后调用ffmpeg将wav转为mp3。
但是此命令无法通过 python 的 subprocess.call 将标准输出从 espeak 发送到 ffmpeg:
espeak -f myfile --stdout | ffmpeg -i - final.mp3
例子:
subprocess.call(["espeak", "test text to speak", "--stdout", "|"]+("ffmpeg -i - -vn -y -ar 22050 -ac 1 -ab 16k -af volume=2 -f mp3 mp3OutFile.mp3").split(" "))
什么是错误?我该怎么办?
【问题讨论】:
-
你能展示示例代码吗?
-
我已经编辑添加了python代码。
-
谢谢!如果您添加参数
shell=True,该代码应该可以工作......但是 ehemient 的答案是我更愿意做的。
标签: python linux subprocess espeak