python - 我无法使用 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
解决方案
我看过你的代码,我也遇到了同样的问题。我解决了它,让我告诉你。这是你的代码:
voices = engine.getProperty('voices')
engine.setProperty('voices', voices[2].id)
并通过将您的代码替换为:
voices = engine.getProperty('voices')
engine.setProperty('voice', voices[2].id)
只需从“voices”中删除“s”,IDK 这是一个错误。但不知何故,错误没有显示出来。
希望这可以帮助!
推荐阅读
- ansible - Ansible 模板:如果值设置为 true,则添加部分
- android - Android Kotlin:必需的上下文但找到了字符串
- elasticsearch - Elasticsearch 不会在 ubuntu 18.04.4 LTS 中启动
- angular - 在角度组件中使用velocity.js
- wamp - 在 WAMP 中更改 localhost/phpMyadmin 的浏览器
- c++ - 在 C++ 中反转给定大小的组中的数组
- javascript - 当标记之一为空经度和纬度时,传单地图不显示所有标记
- php - 循环遍历所有复选框,在 PHP 中选中或取消选中它
- node.js - 如何使用 kenxjs 在 psql 中批量插入?
- google-chrome - 在 Web 浏览器中修剪 NURBS