pyttsx3 和 win32com.client 更换说话人的声音

pyttsx3查看可以设置几种声音

    engine = pyttsx3.init()   # 初始化
    voices = engine.getProperty('voices')
    for voice in voices:
        print ('id = {} \nname = {} \n'.format(voice.id, voice.name))
    engine.setProperty('voice', voices[2].id)  #设置发音人

我电脑输出是

id = HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Speech\Voices\Tokens\MS-Lili-2052-20-DSK
name = Microsoft Lili - Chinese (China)

id = HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Speech\Voices\Tokens\MS-Anna-1033-20-DSK
name = Microsoft Anna - English (United States)

id = HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Speech\Voices\Tokens\TTS_MS_zh-CN_HuiHui_11.0
name = Microsoft Server Speech Text to Speech Voice (zh-CN, HuiHui)

engine.setProperty('voice', voices[2].id) 就是设置慧慧(huihui)发音,前两种是电脑自带的,后一种是我自己安装的,怎么安装的下面会讲

pyttsx3 设置音量、语速见这篇博文 https://blog.csdn.net/qq_43657442/article/details/108196462

win32com.client 里面我不知道怎么查看有几种声音

    speak_out = win32com.client.Dispatch('SAPI.SPVOICE')  #连接到SAPI.SpVoice COM服务
    print(speak_out.Volume)  
    speak_out.Volume = 80     # 设置音量 ,值范围是0到100,分别代表最小和最大音量级别
    print(speak_out.Rate)    
    speak_out.Rate = 2        # 设置速度 ,值介于-10到10之间,分别代表最慢的说话速度和最快的说话速度
    print(speak_out.Voice)   
    speak_out.Voice = speak_out.GetVoices().Item(2)  # 用于设置用哪个语音
    print(speak_out.Voice.GetDescription())      # 看这个语音的具体描述

所以 speak_out.Voice = speak_out.GetVoices().Item(2) 里面 Item() 参数能到几我也不知道,我是通过上面的 pyttsx3 猜出来的 0 应该是 lili , 1 是 Anna ,2 是 huihui。peak_out.Voice.GetDescription() 的输出也验证了我的猜想。

其实还有一种方法可以看有几种语音,我电脑 win7

开始 --> 控制面板 --> 轻松访问 --> 语音识别 --> 高级语音选项 --> 文本到语音转换

在这里插入图片描述
然后下拉箭头就可以看有几个语音了

重要的点

其实更改说话的语音很简单,上面的代码也展示了,问题在于你想要的语音包你电脑有吗, pyttsx3, win32com.client 能识别出来吗?我最开始就没有慧慧(huihui),是我自己安装的

接下来介绍语音包的安装

链接:https://pan.baidu.com/s/17f53kXakCyOlaglRj_Ti2w
提取码:38ll

1、把上面百度网盘连接的两个文件下载好

2、先安装SpeechPlatformRuntime.msi(双击安装即可),安装完成之后重启电脑

3、再安装MSSpeech_TTS_zh-CN_HuiHui.msi,安装结束之后需要修改注册表,

4、打开Run(Win键+R键)输入"regedit"即可看到如下registry编辑界面,HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Speech\Voices路径下可以看到默认语音包(我的是 lili 和 anna),

在这里插入图片描述
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Speech Server\v11.0\Voices路径下可看到新安装的语音包(HuiHui):

在这里插入图片描述

5、右键HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Speech Server\v11.0\Voices,将其导出成.reg文件,使用文本编辑器打开这个.reg文件将其中"\Speech Server\v11.0"全部替换成"\Speech"并保存

在这里插入图片描述

6、然后将这个修改后的.reg文件再导入注册表。(打开方式选注册表编辑器就好了,会有警告,但别担心允许就好了)

在这里插入图片描述

导入成功后,便可在注册表和语音识别选项里看到Huihui身影:

在这里插入图片描述

完成了,现在应该 pyttsx3 和 win32com.client 都能设置慧慧(huihui)的语音了

注:还不行的haul,将HKEY_LOCAL_MACHINE\SOFTWARE\WOW6432Node\Microsoft\Speech Server\v11.0\Voices路径的注册表按同样方法也操作一遍。保存为reg文件 --> 记事本打开 --> 替换 --> 保存 --> 注册表编辑器打开

猜你喜欢

转载自blog.csdn.net/qq_43657442/article/details/108205540