我无法使用pyttsx3模块更改声音!任何索引都只返回DAVID

问题描述

我正在尝试构建虚拟助手。我需要一个叫做PaulM的声音,它存在于我的注册表中。但是任何索引都只返回DAVID声音给我,甚至没有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

解决方法

这不依赖于pyttsx3。声音来自“ sapi5”。因此,请确保从-https://www.microsoft.com/en-us/download/details.aspx?id=10121下载最新版本的sapi5。如果您的计算机已预先安装了sapi5,则由于声音已更改,因此您需要检查计算机的年代到2,但是并不总是一样。以前只有大卫。 HTH