在 python 中使用 PYTTSX 模块更改语音

Changing the voice with PYTTSX module in python

在 python 中使用 Pyttsx 模块时,如何更改播放文本时使用的语音 ID?

所提供的文档说明了如何循环使用所有可用语音,但没有说明如何选择特定语音。

呃,你应该使用 engine.setProperty('voice', voice_id)voice_id 是你系统中语音的 ID;你可以从 engine.getProperty('voices') 中获取可用语音列表) that example:

engine = pyttsx.init()
voices = engine.getProperty('voices')
for voice in voices:
   engine.setProperty('voice', voice.id)  # changes the voice
   engine.say('The quick brown fox jumped over the lazy dog.')
engine.runAndWait()

无需循环,无需for循环即可设置语音ID。
就这样吧:

engine = pyttsx.init()
engine.setProperty('voice', voice_id)  # use whatever voice_id you'd like
engine.say('The quick brown fox jumped over the lazy dog.')
import pyttsx

engine = pyttsx.init()
voices = engine.getProperty('voices')

engine.setProperty('voice', voices[0].id) #change index to change voices
engine.say('I\'m a little teapot...')

engine.runAndWait()

这里是 pyttsx3 模块的使用示例:

import pyttsx3
engine = pyttsx3.init('sapi5')
voices = engine.getProperty('voices')
engine.setProperty('voice', voices[1].id)
def speak(audio):
    engine.say(audio)
    engine.runAndWait()
speak('Hello World')

有关详细信息,请参阅 docs