python把一段話用語音讀出來


主要用到了win32com.client 類

核心代碼

speak_out = win32com.client.Dispatch('SAPI.SPVOICE') 
speak_out.Speak("你要讀出來的話")
import win32com.client
import time

def speak(goalStr):
    # Dispatch("APPs") 需要app 注冊COM服務, 且APPs是注冊的名字
    speak_out = win32com.client.Dispatch('SAPI.SPVOICE')  #連接到SAPI.SpVoice COM服務
    value = goalStr.split(',')
    for  value_str in value :
        speak_out.Speak(value_str)
        time.sleep(1)

if __name__ == '__main__':
    strValue ="昆明的天氣情況如下, 日期: 08月18日(星期二), 天氣: 雨, 溫度: 20℃, PM2.5: 20, 相對濕度: 92%"
    speak(strValue)

或者用 pyttsx3 這個庫

核心代碼

    engine = pyttsx3.init()        # 初始化
    engine.say("你要讀出來的話")    # 預設要朗讀的文本數據
    engine.runAndWait()            # 讀出聲音
import pyttsx3

def speak(goalStr):
    engine = pyttsx3.init()   # 初始化
    engine.setProperty('voice', "com.apple.speech.synthesis.voice.sin-ji")  #設置發音人,不過我電腦似乎不起作用
    # engine.setProperty('voice', "com.apple.speech.synthesis.voice.mei-jia")  
    rate = engine.getProperty('rate')  # 改變語速  范圍為0-200   默認值為200
    engine.setProperty('rate', rate-40)
    engine.setProperty('volume', 0.7)  # 設置音量  范圍為0.0-1.0  默認值為1.0
    engine.say(goalStr)   # 預設要朗讀的文本數據
    engine.runAndWait()   # 讀出聲音

if __name__ == '__main__':
    strValue ="昆明的天氣情況如下:日期: 08月18日(星期二), 天氣: 雨, 溫度: 20℃, PM2.5: 20, 相對濕度: 92%"
    speak(strValue)


免責聲明!

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



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