【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
相关推荐
叼烟扛炮4 小时前
[LangChain] 学习笔记(07):大模型长出手脚——工具(Tools)定义与调用闭环
笔记·学习·langchain
叼烟扛炮9 小时前
[LangChain] 学习笔记(06):突破大模型限制——结构化输出(Structured Output)
windows·笔记·学习·langchain
且从容.10 小时前
VUE3学习笔记(根据黑马教程总结)
笔记·学习
蒸蒸yyyyzwd11 小时前
关于 AI 开发相关的一些面经。
笔记·学习
卷无止境12 小时前
RAGFlow 项目全景报告:从文档解析引擎到 Agent 原生数据库
后端·python
2603_9696948513 小时前
JDBC 基础学习笔记:API 核心原理解析与 CRUD 代码实操
数据库·笔记·mysql·学习方法·database·sql注入
灿飞屋13 小时前
Kotlin与Java虚拟机三:控制流
android·java·开发语言·后端·python·kotlin·安卓
benchmark_cc13 小时前
单只股票五档盘口接入个人研究仓库:QuantDash 读取、校验与易错点
python·数据分析·pandas·量化交易·股票数据·quantdash
迪康coolmu13 小时前
出差终端数据安全落地实战:基于迪康端点安全一体化管理系统的四道防线实践
运维·服务器·经验分享·笔记·其他·安全·php
青少儿编程课堂15 小时前
蓝桥杯·全国青少年信息素养大赛·电子学会Python/C++考级:中缀表达式求值解析
c++·python·算法·bfs·信息学竞赛