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)

猜你喜欢

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