使用pyttsx3库来实现文字转语音(TTS)_中文没有声音问题的解决方法

下面的代码,如果是英文可以读出来,但是如果是中文却没有声音.经过几天的折腾,终于解决了,现分享给大家.

没有声音是因为在你的系统里没有中文安装包的原因

# 这段代码会把系统里的可用语音包的信息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)

结果为

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: HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Speech\Voices\Tokens\TTS_MS_ZH-CN_HUIHUI_11.0",所以无法读取中文.

【解决办法】:

关于在 Windows 中添加中文语音包,你可以按照以下步骤进行操作:

1、打开控制面板:在 Windows 搜索栏中输入“控制面板”,然后打开控制面板。

2、选择“时钟和区域”:在控制面板中,找到并选择“时钟和区域”选项。

3、进入语言设置:在“时钟和区域”设置页面中,找到“区域”选项,然后点击进入“区域”设置页面。

4、添加语言:在“区域”设置页面中,找到“语言”选项,然后点击“添加一个语言”来添加新的语言。

5、选择中文语言包:在弹出的语言列表中,找到中文语言(简体中文或繁体中文),选中后点击“下一步”继续。

6、完成安装:按照系统提示完成语言包的安装过程。系统会下载并安装相应的中文语音包。

完成以上步骤后,你的系统就会安装并启用中文语音包。这样,在文本转语音等功能中就可以选择中文语音进行使用了。

希望这次回答能够帮助到你。如果有任何其他问题,欢迎随时向我提问。

截图如下

在代码中增加下列代码:

# 读取中文语音包
voices = engine.getProperty('voices')
zh_voice_id=''
for voice in voices:
    if 'ZH-CN' in voice.id:
        zh_voice_id=voice.id
        break
if zh_voice_id=='':
    print('没有安装中文语言包')
# 用语音包ID来配置engine
engine.setProperty('voice', zh_voice_id)

完整的代码如下:

# -*- coding: utf-8 -*-
""" 
@Time    : 2024/3/21 18:40
@Author  : 丿君灬臨天丅
@FileName: 使用pyttsx3库来实现文字转语音(TTS)_003.py
@SoftWare: PyCharm
"""

import pyttsx3
engine = pyttsx3.init()  # 初始化语音引擎
engine.setProperty('rate', 100)  # 设置语速
engine.setProperty('volume', 0.6)  # 设置音量

# 读取中文语音包
voices = engine.getProperty('voices')
zh_voice_id=''
for voice in voices:
    if 'ZH-CN' in voice.id:
        zh_voice_id=voice.id
        break
if zh_voice_id=='':print('没有安装中文语言包')

# 用语音包ID来配置engine
engine.setProperty('voice', zh_voice_id)

engine.say("春光灿烂猪八戒")
engine.runAndWait()
engine.stop()

希望有同样问题的,可以完美解决。

参考文件:https://bbs.csdn.net/topics/600333203

  • 3
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值