Python 文字转语音:使用 pyttsx3 实现文本朗读与避坑指南
pyttsx3 是一个跨平台的文字转语音(TTS)库,支持 Windows、macOS、Linux。它直接调用系统自带的语音引擎,不需要网络,也不需要申请 API 密钥,完全离线使用。
特点:
- 简单易用,几行代码就能朗读文本。
- 可调节语速、音量,选择不同的语音(比如中文、英文)。
- 支持将语音保存为音频文件(.wav)。
1. 环境准备
首先确保你的电脑已经安装了 Python(推荐 3.6 及以上版本)。然后用 pip 安装 pyttsx3:
pip install pyttsx3
安装完成后,你就可以开始写代码了。
2. 基础代码:让电脑开口说话
下面是一个最简示例,朗读一句中英文混合的话。
import pyttsx3
def text_to_speech(text, rate=160, volume=1.0):
# 初始化引擎
engine = pyttsx3.init()
# 设置语速 (默认 200,建议 120-180)
engine.setProperty('rate', rate)
# 设置音量 (0.0~1.0)
engine.setProperty('volume', volume)
# 设置中文语音(需要系统已安装中文语音包)
voices = engine.getProperty('voices')
for voice in voices:
if "chinese" in voice.name.lower():
# 根据系统语音名称匹配
engine.setProperty('voice', voice.id)
break
# 播报文本
engine.say(text)
engine.runAndWait()
# 使用示例
text_to_speech("hello world,欢迎使用 pyttsx3!")
运行这段代码,如果你的电脑有扬声器,就能听到语音了。
代码解释
pyttsx3.init():初始化语音引擎。setProperty('rate', ...):设置语速,数值越大越快,一般 120~180 比较自然。setProperty('volume', ...):音量,范围 0.0~1.0。getProperty('voices'):获取系统所有可用的语音。我们遍历找到包含'chinese'的语音,设为中文发音。如果找不到,就会用默认语音(通常是英文),读中文会很不自然。


