"别催,我正在码代码呢。"
"谁催你了?你电脑怎么会说话?"
"哈哈,我让它学会了说话!"
某天深夜,我写代码写到眼花,突然灵光一闪:要是电脑能用 Python 直接说话,那该多酷?更重要的是,我这破网速,经常掉线,必须得找个离线也能用的方案。于是乎,我就研究了一下 pyttsx3
这个库,发现它真的很好用,不仅没网也能说话,还能调节声音、语速,甚至换个声线,简直是"码农的随身播报员"!🎉
1. pyttsx3 简介:一个会说话的 Python 库
pyttsx3
是一个 Python 文本转语音(TTS,Text-to-Speech)库,最关键的一点------**它不需要联网!**这就意味着,无论是在地铁、深山,还是公司断网的尴尬时刻,它都能稳稳运行。
📌 核心优势:
✅ 离线运行 :不像 gTTS
需要联网,它用的是本地的语音引擎。
✅ 支持多种语音 :不同的声线随便切换。
✅ 可调节语速、音量:自由调整,让它适应你的需求。
安装方法 :
首先,确保你装了 pyttsx3
,如果没有,直接装:
bash
pip install pyttsx3
💡 注意 :如果你遇到安装问题,请先执行以下代码:pip install --upgrade wheel
能解决大部分安装问题
2. 让你的电脑开口说话!
来看看最基础的代码,确保它能正常运行:
python
import pyttsx3
# 初始化语音引擎
engine = pyttsx3.init()
# 让它说点什么
engine.say("Hello, 这是一段Python代码让电脑开口说话的测试!")
engine.runAndWait() # 运行
💡 代码解析:
pyttsx3.init()
:初始化语音引擎。engine.say(text)
:让它说话,文本内容你可以随便换。engine.runAndWait()
:运行语音播放,确保说完再继续执行后面的代码。
运行后,你的电脑是不是开口了?如果没声音,检查静音状态!😂
3. 调节语速,让它说话不再像复读机
你会发现默认语速有点快,像是在赶高铁,我们可以让它慢点说:
python
engine = pyttsx3.init()
rate = engine.getProperty('rate') # 获取当前语速
print(f"当前语速: {rate}")
engine.setProperty('rate', 150) # 设置语速,默认200,降低一点
engine.say("语速调节成功,我现在说话是不是更舒服了?")
engine.runAndWait()
💡 语速调整技巧:
- 默认语速是
200
,改成150
~180
更自然。 - 语速太快了像唐僧,太慢了像卡带,自己调试最适合的速度!
4. 换个声音,男女声随心选!
默认的声音可能不够个性?来试试换个声线:
python
engine = pyttsx3.init()
voices = engine.getProperty('voices') # 获取所有可用声音
for i, voice in enumerate(voices):
print(f"声音 {i} : {voice.name}")
# 选择不同的声音
engine.setProperty('voice', voices[0].id)
engine.say("你好,我是另一种声音,你喜欢吗?")
engine.runAndWait()
💡 声音选择小贴士:
voices[0]
一般是男声,voices[1]
是女声。这个由自己的电脑决定。- Mac 可能有更多可选声音,Windows 用户可能只有2个 ,具体看
print(voice.name)
输出的内容。
5. 调节音量,避免吓到室友
有时候声音太大了,半夜敲代码突然出声,室友可能会吓醒👀。
python
engine = pyttsx3.init()
volume = engine.getProperty('volume') # 获取当前音量
print(f"当前音量: {volume}")
engine.setProperty('volume', 0.5) # 设置音量(范围0.0-1.0)
engine.say("音量调小了,别担心,室友不会被吵醒啦。")
engine.runAndWait()
💡 音量调整小贴士:
1.0
是最大音量,0.0
是静音。- 建议调整到
0.5
~0.8
,既能听清楚,又不至于炸耳朵!
6. 让电脑帮你朗读文件!
如果你有一篇长文章,不想盯着屏幕看,让 Python 读给你听!
python
engine = pyttsx3.init()
with open("article.txt", "r", encoding="utf-8") as file:
text = file.read()
engine.say(text)
engine.runAndWait()
💡 适用场景 :
📖 听论文、听文档、听代码注释......双眼解放,效率翻倍!
7. 重点来了!保存语音到文件 🎤
如果你想保存语音,方便以后播放,分分钟搞定:
python
engine = pyttsx3.init()
engine.save_to_file("你好,这是一个 Python 生成的语音文件!", "output.mp3")
engine.runAndWait()
print("语音文件保存成功!🎉")
运行后,当前目录下会生成 output.mp3
文件,你可以用任意播放器打开听一听!
8. 进阶玩法:定时语音播报
如果你想让电脑每2小时提醒久坐的你注意休闲,可以这样:
python
import pyttsx3
import time
engine = pyttsx3.init()
def report_time():
import datetime
now = datetime.datetime.now().strftime("%H:%M")
engine.say(f"现在时间是 {now},喝杯水休息休息吧!")
engine.runAndWait()
while True:
report_time()
time.sleep(7200) # 每2小时执行一次
效果:
- 每2个小时,电脑会语音播报当前时间。
- 你可以加上更多提醒,比如"该休息了""时间不早了,快睡觉"😂。
9. 让你的 Python 程序"开口说话"吧!
💡 如何让电脑说话的方法给大家了,你们有没有什么好的创意,欢迎在评论区里留言!
结尾彩蛋 🎁 :
你可以写一个定时报时的程序,每小时整点,电脑都会用 Python 说:
"现在是凌晨 2 点,你怎么还不睡?" 😂
最后,如果你觉得这篇文章有用,顺手点赞+在看就是对花姐最大的支持!❤️