1、概述
pyttsx3 是一个文本到语音(TTS)库,它允许你在Python中将文本转换为语音。 pyttsx3 支持多种语音引擎,包括一些可以设置不同性别声音的引擎。
2、实现
安装库: pip install pyttsx3
实现过程:1、初始化了一个 pyttsx3 引擎
2、通过getProperty('voices') 获取所有可用的语音属性。通过遍历这些属性,找到不同性别的声音。在找到合适的女性声音后,使用 setProperty('voice', voice.id) 设置为该声音。
注意:可用的声音和它们的属性(如性别)取决于你的操作系统和已安装的语音引擎。在某些系统上,可能没有明确标识性别的语音,或者语音引擎可能不支持设置性别。
此外, pyttsx3 支持的语音引擎可能在不同的操作系统上有所不同。例如,在Windows上,它可能支持SAPI5和SAPI4引擎,而在macOS上,它可能支持NSSpeechSynthesizer引擎。每种引擎支持的属性和功能可能有所不同。
import pyttsx3
# 初始化 pyttsx3 引擎
engine = pyttsx3.init()
# 设置语音属性
# 这里以使用 SAPI5 语音引擎为例,它支持设置性别
voices = engine.getProperty("voices")
for voice in voices:
# 打印所有可用的语音属性,以找到合适的男女声音
print("Voice:")
print(f" - ID: {voice.id}")
print(f" - Name: {voice.name}")
print(f" - Languages: {voice.languages}")
print(f" - Gender: {voice.gender}")
print(f" - Age: {voice.age}")
# 选择一个男性或女性声音
# 例如,选择第一个女性声音
for voice in voices:
if voice.gender == "Female":
engine.setProperty("voice", voice.id)
break
else:
# 如果没有找到女性声音,使用默认声音
engine.setProperty("voice", voices[0].id)
# 设置语速
engine.setProperty("rate", 120) # 语速范围一般为100-200
# 将文本转换为语音
text = "赵佳琪给爸爸讲个故事吧"
engine.save_to_file(text, "outputv2.mp3")
engine.say(text)
# 播放语音
engine.runAndWait()