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文件 --> 記事本打開 --> 替換 --> 保存 --> 注冊表編輯器打開


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM