pyttsx3:语音转换,效果不很自然
# pyttsx3 是一个强大的文本到语音(Text-to-Speech,TTS)转换库
# pyttsx3 是一个基于 pyttsx 的库,
# 它使用 SAPI5 (仅限Windows), NSSpeechSynthesizer (仅限macOS) 和 espeak 作为后端来实现文本到语音的转换。
# 这意味着 pyttsx3 可以在不同的操作系统上工作,并且支持多种语言。
# say(text): 将文本添加到队列中等待转换。
# runAndWait(): 同步执行队列中的所有文本。
# stop(): 停止当前的语音输出。
# save_to_file(text, file): 将文本转换为语音并保存到文件
import pyttsx3 # 初始化引擎
# 以下代码可以更改语音引擎,可以选择不同的语音引擎来调用播放功能。
# engine = pyttsx3.init('espeak')
engine = pyttsx3.init() # 将文本转换为语音
# 设置语音属性
rate = engine.getProperty('rate') # 语速
# 一般范围一般在0~500之间
engine.setProperty('rate', 150) # 语速
volume = engine.getProperty('volume',) # 音量,范围从0到1 范围在0~1之间
engine.setProperty('volume', 0.9) # 音量,范围从0到1
voices = engine.getProperty('voices') # 男性(voices[0].id)、女性(voices[1].id)
current_voices = engine.getProperty('voice')
# engine.setProperty('voice', voices[1].id)
# engine.setProperty('voice', voices[1].id)
# 设置语言
engine.setProperty('language', "en")
engine.setProperty('voice', 'com.apple.speech.synthesis.voice.Alex') # macOS上的语音类型
engine.say('你好,我们是好朋友吗?') # 运行引擎
engine.save_to_file("Hello World!!!",'./abc.wav') # 把语音存储到文件
# engine.save_to_file("Hello World!!!",'~/abc.mp3') # 把语音存储到文件
engine.runAndWait() #该方法用于运行并等待语音引擎完成播放任务。
# engine.runAndWaitAsync() #该方法用于异步播放语音内容。
# engine.stop()
# 定义语音助手的回应函数
def respond(text):
print("助手:", text)
engine.say(text)
engine.runAndWait()