如何修复使用子进程在 python 中执行 espeak

How to fix executing espeak in python using subprocess

我正在尝试使用 python 使用 MBROLA 语音 "us1" 执行 espeak。

from subprocess import call

call(["espeak","-v mb-us1","Hello, I am espeak"])

出现如下错误'

Failed to read voice ' mb-us1'

但它适用于:

os.system("espeak -v mb-us1 'hello, I am espeak'")

您必须将“-v mb-us1”拆分为两个列表元素。

from subprocess import call

call(["espeak", "-v", "mb-us1", "Hello, I am espeak"]) 

列表的第 n 个元素将被视为子进程调用的第 n 个参数。

在您的案例中,“-v mb-us1”被视为单个参数而不是两个单独的参数。