Python 离线文字转语音 (TTS) 转换器
pyttsx3
是一个 Python 文字转语音转换库。与其他库不同,它可以离线工作。
安装:
pip install pyttsx3
如果遇到安装错误,请确保先升级 wheel 版本:
pip install --upgrade wheel
特点:
- ✨完全离线文字转语音转换
- 🎈 选择系统中安装的不同语音
- 🎛 控制语音速度/速率
- 🎚 调节音量
- 📀 将语音保存为音频文件
- ❤️ 简单、强大且直观的 API
Linux 安装要求:
-
如果您使用的是 Linux 系统,且语音输出不工作,请:
安装 espeak、ffmpeg 和 libespeak1,如下所示:
sudo apt update && sudo apt install espeak ffmpeg libespeak1
使用方法:
import pyttsx3
engine = pyttsx3.init()
# 对于 Mac,如果在运行 `init()` 方法时遇到与 "pyobjc" 相关的错误:
# 安装 9.0.1 版本的 pyobjc:"pip install pyobjc==9.0.1"
engine.say("我将朗读这段文字")
engine.runAndWait()
使用默认选项的 speak 函数单行用法
import pyttsx3
pyttsx3.speak("我将朗读这段文字")
更改语音、速率和音量:
import pyttsx3
engine = pyttsx3.init() # 创建对象
"""速率"""
rate = engine.getProperty('rate') # 获取当前语音速率
print (rate) # 打印当前语音速率
engine.setProperty('rate', 125) # 设置新的语音速率
"""音量"""
volume = engine.getProperty('volume') # 获取当前音量大小(最小为0,最大为1)
print (volume) # 打印当前音量大小
engine.setProperty('volume',1.0) # 设置音量大小,范围在0到1之间
"""语音"""
voices = engine.getProperty('voices') # 获取当前语音详情
#engine.setProperty('voice', voices[0].id) # 更改索引,改变声音。0为男声
engine.setProperty('voice', voices[1].id) # 更改索引,改变声音。1为女声
engine.say("你好,世界!")
engine.say('我当前的语速是 ' + str(rate))
engine.runAndWait()
engine.stop()
"""将语音保存到文件"""
# 在 Linux 上,确保已安装 'espeak' 和 'ffmpeg'
engine.save_to_file('你好,世界', 'test.mp3')
engine.runAndWait()
库的完整文档
https://pyttsx3.readthedocs.io/en/latest/
包含的 TTS 引擎:
- sapi5
- nsss
- espeak
欢迎为 pyttsx3
封装其他文字转语音引擎。
项目链接:
- PyPI (https://pypi.python.org)
- GitHub (https://github.com/nateshmbhat/pyttsx3)
- 完整文档 (https://pyttsx3.readthedocs.org)