admin 管理员组文章数量: 887007
解决pyttsx3不读中文的问题
首先我们需要知道我们自己的系统里自带什么语音包,然后才能从这些自带的语音包里选出一个来用:
# 这段代码会把系统里的可用语音包的信息print出来
import pyttsx3
engine = pyttsx3.init()voices = engine.getProperty('voices')
for voice in voices:print("Voice:")print(" - ID: %s" % voice.id)print(" - Name: %s" % voice.name)print(" - Languages: %s" % voice.languages)print(" - Gender: %s" % voice.gender)print(" - Age: %s" % voice.age)
上面这段代码会把系统里的可用语音包的信息print出来,具体输出结果是什么应该是因人而异,我的运行结果是:
Voice:- ID: HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Speech\Voices\Tokens\TTS_MS_EN-US_DAVID_11.0- Name: Microsoft David Desktop - English (United States)- Languages: []- Gender: None- Age: None
Voice:- ID: HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Speech\Voices\Tokens\TTS_MS_EN-US_ZIRA_11.0- Name: Microsoft Zira Desktop - English (United States)- Languages: []- Gender: None- Age: None
Voice:- ID: HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Speech\Voices\Tokens\TTS_MS_ZH-CN_HUIHUI_11.0- Name: Microsoft Huihui Desktop - Chinese (Simplified)- Languages: []- Gender: None- Age: None
然后我们选择一个语音包,把他的ID作为engine.setProperty()函数的参数:
# 把刚才代码输出的语音包ID信息储存起来
zh_voice_id = "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Speech\Voices\Tokens\TTS_MS_ZH-CN_HUIHUI_11.0"# 用语音包ID来配置engine
engine.setProperty('voice', zh_voice_id)
engine.say('这回可以了吧')engine.runAndWait()
参考:
全部信息和帮助来自于以上参考链接。
PS:本文已经在CSDN社区发过帖子,但是我自己从app上没看到,所以为了自己查看方便,再发在这里,也希望能帮助更多人。
本文标签: 解决pyttsx3不读中文的问题
版权声明:本文标题:解决pyttsx3不读中文的问题 内容由网友自发贡献,该文观点仅代表作者本人, 转载请联系作者并注明出处:http://www.freenas.com.cn/jishu/1732352905h1533597.html, 本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,一经查实,本站将立刻删除。
发表评论