Pyttsx,代码中无法更改性别,问题出在哪?
这是我第一次用这个很棒的库!我在Linux系统上使用,开始的时候挺简单的,但现在我想把语音改成女性的声音... 我试着用下面的代码,但没有成功... 能帮帮我吗?
import pyttsx
def say(text):
print "{}".format(text)
engine = pyttsx.init()
engine.setProperty('rate', 100)
voices = engine.getProperty('voices')
for voice in voices:
print voice.gender
engine.setProperty('female', voice.gender)
print "change: {}".format(voice.gender)
engine.say(text)
engine.runAndWait()
3 个回答
0
对我来说,在Linux系统中,唯一能把声音改成女性声音的方法是:
voices = speaker.getProperty('voices')
speaker.setProperty('voice', 'english+f4')
speaker.say('Finally, something worked!')
speaker.runAndWait()
0
你可以试试下面的代码。对我来说效果很好:
for voice in voices:
engine.setProperty('voice',voices[1].id)
engine.say("Hello")
engine.runAndWait()
1
engine.setProperty('female', voice.gender)
这个引擎没有一个叫做 female
的属性,所以把这个属性设置为当前声音的性别是没有意义的,正如你发现的那样,它也不会产生任何效果。
我猜你的意思是想遍历所有可用的声音,然后选择第一个找到的女性声音。如果是这样的话,可以试试下面的代码:
for voice in voices:
if voice.gender == "female"
engine.setProperty('voice', voice.id)
break