python 声音朗读文字



方法1:

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)

方法2:

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)