Python 将文本转换成语音播放 pyttsx3
目录
Pyttsx3 是一个 Python 库,它提供了文本到语音(Text-to-Speech,TTS)转换的功能。这个库允许 Python 程序通过调用本地计算机上的语音合成引擎来生成语音输出。
Pyttsx3 的主要特点包括:
平台无关性:Pyttsx3 可以在 Windows、macOS 和 Linux 等多种操作系统上运行。
多语言支持:Pyttsx3 支持多种语言的语音合成,具体支持的语言取决于你的操作系统和安装的语音数据。
多引擎支持:Pyttsx3 可以与多种语音合成引擎一起使用,例如 Microsoft 的 SAPI5 或 NSSpeechSynthesizer(仅限 macOS)。
属性控制:你可以控制语音的速度、音量和音调等属性,使语音输出更自然、更有表现力。
事件处理:Pyttsx3 允许你设置回调函数来处理语音合成过程中的事件,如开始说话、暂停、恢复和结束等。
简单易用:Pyttsx3 提供了一个简洁的 API,使得在 Python 中实现文本到语音的转换变得非常简单。
1. 安装
可以通过pip命令轻松安装pyttsx3库。在命令行中输入以下命令即可安装:
pip install pyttsx3
2. 使用
import pyttsx3
# 初始化 TTS 引擎
engine = pyttsx3.init()
# 设置语音属性
engine.setProperty('rate', 150) # 语速设为每分钟 150 个单词
engine.setProperty('volume', 0.8) # 音量设为 80%
# 将文本转换为语音并播放
engine.say('Hello, how are you?')
engine.runAndWait()
3. 封装
import pyttsx3
class TextToSpeech:
def __init__(self):
self.converter = pyttsx3.init()
self.converter.setProperty('rate', 150)
self.converter.setProperty('volume', 0.7)
def say(self, text):
self.converter.say(text)
self.converter.runAndWait()
if __name__ == "__main__":
tts = TextToSpeech()
user_input = input("请输入要转换为语音的文本:")
tts.say(user_input)