【python学习笔记】pyttsx3库疑似只播报一次语音

最近写了个简单的python程序用到了pyttsx3库,但是发现似乎这个库在很多时候只会播报第一句语音。专门设置了支持中文的语音包也不行。

例如下方的程序,我执行后发现,他只播报了"你好,欢迎使用Python进行语音合成。",还有"这是第一句。"

python 复制代码
import pyttsx3
engine = pyttsx3.init()
# 获取所有声音
voices= engine.getProperty('voices')
#设置中文语音(根据实际输出选择合适的id)
for voice in voices:
    if'zh' in voice.languages:
        engine.setProperty('voice',voice.id)
        break
text="你好,欢迎使用Python进行语音合成。"
engine.say(text)
engine.runAndWait()
texts = ["这是第一句。", "这是第二句。"]
for text in texts:
    engine.say(text)
engine.runAndWait()

之后询问AI得知,pyttsx3 的 runAndWait() 是阻塞调用,但如果引擎在第一次调用后未正确重置,第二次调用可能因状态异常而提前返回或静默失败。

另外多线程环境下,引擎初始化或语音队列操作也可能导致问题。

目前试了可用的解决办法是换用pywin32库,同样支持可选中文语音。

python 复制代码
# 设置中文语音
voices = speaker.GetVoices()
for voice in voices:
    if "zh" in voice.GetDescription():
        speaker.Voice = voice
        break
相关推荐
cao23336 小时前
关于 y0 y1 yn 变量名冲突说法的指正
笔记
进击的明明8 小时前
当AI开始“边想边干”:深入聊聊ReAct,以及如何用Python手搓一个简单Agent
python·面试·agent
全栈弄潮儿9 小时前
Python实战第8期:函数
后端·python·编程语言
卷无止境11 小时前
暗流与破局:AI时代的代码安全审查工具全景指南
后端·python
卷无止境13 小时前
一人公司的全栈选型指南:让 AI Agent 写得快,也让生意跑得稳
后端·python
~patience~15 小时前
WAV 逆向分析工具使用笔记
笔记
滴啦嘟啦哒15 小时前
【具身笔记】【π0.5 微调与仿真】五、在MuJoCo中实现可视化仿真
笔记·python·vla·具身
xier_ran15 小时前
【infra之路】AI 编译器学习笔记(十三):AI 编译器全景——TVM、XLA、IREE 与其他
人工智能·笔记·学习
连山齐名15 小时前
ai应用开发的学习笔记
服务器·笔记·学习
全栈练习生15 小时前
AI安全与红队测试
python·ai