news 2025/12/31 11:31:18

【学习心得】Python好库推荐——pyttsx3

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
【学习心得】Python好库推荐——pyttsx3

pyttsx3(Python Text-to-Speech eXtended version 3)是一个跨平台的 Python 库,用于将文本转换为语音(Text-to-Speech, TTS)。它可以在不依赖互联网连接的情况下,在本地将文本朗读出来,支持 Windows、macOS 和 Linux 系统。

一、安装

pip install pyttsx3

如果使用的是Linux系统,还需要额外安装espeak

sudo apt-get install espeak

如果语音输出还是不能正常工作,那么就需要安装espeak-ng和libespeak1

sudo apt update && sudo apt install espeak-ng libespeak1

二、使用

官方PyPI链接:官方介绍

1、简单的快速使用示例:

import pyttsx3 # 初始化引擎 engine = pyttsx3.init() # 设置要朗读的文本 engine.say("你好,我是Python文本转语音引擎") # 开始朗读并等待完成 engine.runAndWait()

2、关键用法速查表

名称类型作用用法示例备注 / 返回值
pyttsx3.init()函数初始化 TTS 引擎(离线)engine = pyttsx3.init()返回Engine实例;自动选择平台后端(SAPI5/macOS/Linux)
pyttsx3.EngineTTS 引擎主对象init()返回所有语音操作均通过此对象进行
engine.say(text)方法将文本加入播报队列engine.say("Hello")非阻塞;需调用runAndWait()才会发声
engine.save_to_file(text, filename)方法将文本合成并保存为音频文件engine.save_to_file("Hi", "output.wav")文件格式通常为.wav必须调用runAndWait()才生效
engine.runAndWait()方法执行队列中的所有任务并等待完成engine.runAndWait()阻塞式调用;用于触发播放或保存
engine.stop()方法立即停止当前及后续播报engine.stop()中断正在运行的runAndWait()
engine.getProperty(name)方法获取引擎属性值rate = engine.getProperty('rate')常用属性:'rate'(语速)、'volume'(音量 0.0–1.0)、'voices'(语音列表)
engine.setProperty(name, value)方法设置引擎属性engine.setProperty('rate', 200)属性名区分大小写;设置无效值可能被忽略
engine.getProperty('voices')方法获取系统支持的语音列表voices = engine.getProperty('voices')返回list[Voice];每个Voice包含id,name,languages
engine.setProperty('voice', voice_id)方法切换语音engine.setProperty('voice', voices[0].id)voice_id必须来自有效Voice.id
Voice.id属性语音唯一标识符v.id用于setProperty('voice', ...);不可读但可设
Voice.name属性语音显示名称v.name'Microsoft Huihui Desktop - Chinese (Simplified)'
Voice.languages属性支持的语言标签v.languages可能为['zh-CN'][b'\x05z\x04h\x04'](macOS 编码)等;判断中文需谨慎
engine.connect(event, callback)方法绑定播报事件回调engine.connect('finished-utterance', on_end)事件类型:
'started-utterance'
'finished-utterance'
'started-word'(部分平台支持)
engine.startLoop(useDriverLoop=False)
engine.endLoop()
方法手动控制事件循环(高级)engine.startLoop(False)
# 自定义逻辑
engine.endLoop()
一般不需要使用;仅在 GUI 或异步环境中替代runAndWait()

3、设置参数和音色

import pyttsx3 # 初始化 TTS 引擎 engine = pyttsx3.init() # 设置语音参数(可选) engine.setProperty('rate', 150) # 语速(默认约200) engine.setProperty('volume', 0.9) # 音量(0.0 到 1.0) # 获取可用语音列表 voices = engine.getProperty('voices') engine.setProperty('voice', voices[1].id) # 选择第二个语音(通常是女声) # 朗读文本 engine.say("你好,欢迎使用 pyttsx3!") engine.runAndWait() # 等待语音播放完成
版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2025/12/17 21:48:38

教育软件用户体验测试:策略、挑战与最佳实践‌

教育软件的独特性与测试需求 教育软件作为数字化学习生态的核心,其用户体验(UX)直接影响学习成效和用户黏性。与传统软件不同,教育软件需兼顾教学性、互动性和易用性,例如在K-12或职业培训场景中,界面设计…

作者头像 李华
网站建设 2025/12/20 7:36:07

【ACWing】151. 表达式计算4

题目地址: https://www.acwing.com/problem/content/description/153/ 给出一个表达式,其中运算符仅包含,-,*,/,^(加 减 乘 整除 乘方)要求求出表达式的最终值。 数据可能会出现括号情况,还有可能出现多余括号情况。 数据保证不…

作者头像 李华
网站建设 2025/12/28 22:44:15

自动化测试的三种核心模式:策略选择与实践洞察

在敏捷开发与DevOps实践成为主流的当下,自动化测试已成为保障软件质量、加速产品迭代的关键环节。据行业报告显示,实施有效自动化测试的团队产品发布周期平均缩短40%。本文将深入解析基于界面的录制回放、数据驱动测试与关键字驱动测试这三种主流自动化测…

作者头像 李华
网站建设 2025/12/17 21:46:57

AVL树要点急速过

AVL树一.概念:1.二叉搜索树2.所有子树高度差至多为13.左右子树都是AVL树4.空树也是AVL树二.特点1.有(或没有)平衡因子,平衡因子 右子树高度 - 左子树高度 1/ 0/ -12.两个logN:高度和时间复杂度3.高度平衡三.结构1.结点(AVLTreeNode):父母,左子树,右子树,平衡因子,值2.AVL树(A…

作者头像 李华
网站建设 2025/12/19 2:35:27

计算机毕业设计springboot基于微信小程序的学生公寓管理系统 基于微信小程序的 Spring Boot 学生公寓管理系统设计与实现 微信小程序驱动的 Spring Boot 学生公寓管理平台开发

计算机毕业设计springboot基于微信小程序的学生公寓管理系统qfj689(配套有源码 程序 mysql数据库 论文) 本套源码可以在文本联xi,先看具体系统功能演示视频领取,可分享源码参考。 随着互联网技术的飞速发展,学生公寓管理逐渐从传…

作者头像 李华
网站建设 2025/12/30 15:47:45

趣味记忆法让背诵变轻松

还记得孩子昨晚背课文时那痛苦的小表情吗?明明半小时前才读过的古诗,到默写时却磕磕绊绊忘了一大半。当传统的死记硬背消耗着孩子对学习的热情,有一种方法正在悄悄改变这一切——在脑轻松学能中心,我们让记忆过程变得像搭积木一样…

作者头像 李华