首页 > 解决方案 > 我无法使用 pyttsx3 模块更改声音!任何索引都只返回 DAVID

问题描述

我正在尝试构建一个虚拟助手。我需要一个名为 PaulM 的声音,它出现在我的注册表中。但是任何索引都只返回大卫的声音,甚至没有 ZIRA 或任何其他。

import pyttsx3
import datetime
import speech_recognition as sr

engine = pyttsx3.init('sapi5')

voices = engine.getProperty('voices')
engine.setProperty('voices', voices[2].id)
i=0
while i<5:
    print(voices[i].id)
    i += 1
rate = engine.getProperty('rate')
engine.setProperty('rate', 150)

volume = engine.getProperty('volume')
engine.setProperty('volume',0.5 )

def speak(audio):
    engine.say(audio)
    engine.runAndWait()

def wishMe():
    hour = int(datetime.datetime.now().hour)
    if hour>=0 and hour<12:
        speak('Good morning')
    elif hour>=12 and hour<18:
        speak("Hi there, Good Afternoon")
    else:
        speak("Hi there, Good Evening")

if __name__ == "__main__":
    wishMe()
    speak("Good morning and thank you for one more day of knowing me to the core but still not leaving me. You’re a good friend indeed!")
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Speech\Voices\Tokens\TTS_MS_EN-US_DAVID_11.0
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Speech\Voices\Tokens\TTS_MS_EN-GB_HAZEL_11.0
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Speech\Voices\Tokens\MSTTS_V110_frFR_PaulM
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Speech\Voices\Tokens\TTS_MS_EN-US_ZIRA_11.0
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Speech\Voices\Tokens\TTS_MS_FR-FR_HORTENSE_11.0

标签: pythonpython-3.xvoice-recognitionpyttsx

解决方案


我看过你的代码,我也遇到了同样的问题。我解决了它,让我告诉你。这是你的代码:

    voices = engine.getProperty('voices')
    engine.setProperty('voices', voices[2].id)

并通过将您的代码替换为:

    voices = engine.getProperty('voices')
    engine.setProperty('voice', voices[2].id)

只需从“voices”中删除“s”,IDK 这是一个错误。但不知何故,错误没有显示出来。

希望这可以帮助!


推荐阅读