首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >我的pyttsx3不能正常工作,因为它不能给大卫说话

我的pyttsx3不能正常工作,因为它不能给大卫说话
EN

Stack Overflow用户
提问于 2020-10-22 11:18:01
回答 1查看 588关注 0票数 2

我想要微软大卫之声为我的pyttsx3模块。我写了以下代码。对于voices[0].id,它给出了Zira (女声),当我使用voices[1].id时,它显示了错误list is out of index。请帮帮忙。我怎么才能得到大卫之声?

代码语言:javascript
复制
import pyttsx3
engine = pyttsx3.init()
voices = engine.getProperty('voices')
engine.setProperty('voice', voices[1].id) #changing index changes voices but ony 0 and 1 are working here
engine.say('Hello World')
engine.runAndWait()
代码语言:javascript
复制
Traceback (most recent call last):
  File "C:/Users/admin/Desktop/delet.py", line 4, in <module>
    engine.setProperty('voice', voices[1].id) #changing index changes voices but ony 0 and 1 are working here
IndexError: list index out of range
EN

回答 1

Stack Overflow用户

发布于 2022-04-20 14:44:54

我也有同样的问题。当我们的窗户没有声音的时候它就会出现。您可以通过从windows图标(Windows 10)搜索语音设置来进行检查。

在选择一个声音,你会发现自己只有一个声音,但当你下来,你将能够添加声音。在那里,你必须增加英语(我们)或任何其他根据你的要求。

下载语音后,设置选项卡将自动关闭,几分钟后,您的Python中将有2个语音处于空闲状态。

你可以通过以下方式检查:

代码语言:javascript
复制
import pyttsx3
engine = pyttsx3.init('sapi5')
voices = engine.getProperty('voices')
for voice in voices:
    print(voice, voice.id)
    engine.setProperty('voice', voice.id)
    engine.say("Hello World!")
    engine.runAndWait()
    engine.stop()

之前的输出是1个声音,但现在我得到了2个声音,即齐拉和大卫。

确保在初始化sapi5时使用“pyttsx3”。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/64481114

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档