主要用到了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)