更改 pyttsx3 语言

问题描述

尝试使用 pyttsx3 时,我只能使用英文语音。我也希望能够使用荷兰语。

我已经在 Windows 设置菜单中安装了文本到语音语言包。但我仍然只能使用聋哑的英语语音。

我该如何解决这个问题?

解决方法

如果您想更改一种语言,您需要更改为支持您的语言的另一种“声音”。

  1. 要查看安装了哪些语音/语言,您可以像这样列出它们:
import pyttsx3

engine = pyttsx3.init()

for voice in engine.getProperty('voices'):
    print(voice)
  1. 不,您可以像这样更改为您喜欢的声音:
engine.setProperty('voice',voice.id)

我个人也使用这个辅助函数 I mentioned here

# language  : en_US,de_DE,...
# gender    : VoiceGenderFemale,VoiceGenderMale
def change_voice(engine,language,gender='VoiceGenderFemale'):
    for voice in engine.getProperty('voices'):
        if language in voice.languages and gender == voice.gender:
            engine.setProperty('voice',voice.id)
            return True

    raise RuntimeError("Language '{}' for gender '{}' not found".format(language,gender))

最后,您可以像这样使用它(如果安装了语言和性别):

import pyttsx3

engine = pyttsx3.init()
change_voice(engine,"nl_BE","VoiceGenderFemale")
engine.say("Hello World")
engine.runAndWait()