TTS 之 PYTHON库 pyttsx3

pyttsx3是Python中一款轻量级、跨平台的离线文本转语音(TTS)库,可实现文本朗读、语音参数调控、语音文件保存等功能:

一、基本功能

1. pyttsx3初始化 init

复制代码
```python
import pyttsx3
engine = pyttsx3.init()
engine.say("pyttsx3 初始化!")
engine.runAndWait()
engine.stop()
```

2. 基础功能使用

基本文本朗读:

初始化语音引擎后,通过say()方法添加待朗读文本,再用runAndWait()触发语音播放,该方法会阻塞线程直至播放结束,

python 复制代码
    import pyttsx3
    engine = pyttsx3.init()
    text = "Hello, welcome to the world of Python and pyttsx3!"
    engine.say(text)
    engine.runAndWait()
    engine.stop()

语音速率调整:

通过getProperty('rate')获取当前语速(默认有固定值),再用setProperty('rate', value)设置新语速,取值范围通常为0-500,数值越大语速越快:

python 复制代码
	import pyttsx3
	engine = pyttsx3.init()
	rate = engine.getProperty('rate')
	print(f"当前语音速率: {rate}")
	engine.setProperty('rate', 500)
	engine.say("你好 tts.")
	engine.runAndWait()
	engine.stop()

语音音量控制:

借助getProperty('volume')获取当前音量,通过setProperty('volume', value)调节音量,取值范围为0.0(静音)-1.0(最大音量)。

python 复制代码
import pyttsx3
engine = pyttsx3.init()
volume = engine.getProperty('volume')
print(f"当前音量: {volume}")
engine.setProperty('volume', 0.7)
engine.say("你好 tts.")
engine.runAndWait()
engine.stop()

语音类型选择:

getProperty('voices')获取系统可用语音列表,列表中每个语音对象包含ID、名称、性别等信息,再通过setProperty('voice', voice_id)切换语音类型,示例:

python 复制代码
import pyttsx3
engine = pyttsx3.init()
voices = engine.getProperty('voices')
for voice in voices:
    print(f"语音ID: {voice.id}, 语音名称: {voice.name}, 语音性别: {voice.gender}")
engine.setProperty('voice', voices[0].id)
engine.say("This is a test with a different voice.")
engine.runAndWait()
engine.stop()

保存语音到文件:

使用save_to_file(text, filename)将语音保存为指定格式文件(如MP3、WAV,格式取决于系统引擎),且需调用runAndWait()确保保存完成,示例:

python 复制代码
import pyttsx3
engine = pyttsx3.init()
text = "This is a test. The speech will be saved to a file."
engine.save_to_file(text, 'output.mp3')
engine.runAndWait()
engine.stop()
相关推荐
2601_9494800617 小时前
【无标题】
开发语言·前端·javascript
李永奉17 小时前
杰理芯片SDK开发-ENC双麦降噪配置/调试教程
人工智能·单片机·嵌入式硬件·物联网·语音识别
Jack_David17 小时前
Java如何生成Jwt之使用Hutool实现Jwt
java·开发语言·jwt
weixin_4521595517 小时前
如何从Python初学者进阶为专家?
jvm·数据库·python
Hello.Reader17 小时前
面向 403 与域名频繁变更的合规爬虫工程实践以 Libvio 系站点为例
爬虫·python·网络爬虫
瑞雪兆丰年兮17 小时前
[从0开始学Java|第六天]Java方法
java·开发语言
深蓝海拓18 小时前
PySide6从0开始学习的笔记(二十五) Qt窗口对象的生命周期和及时销毁
笔记·python·qt·学习·pyqt
u01092727118 小时前
模板编译期排序算法
开发语言·c++·算法
datalover18 小时前
CompletableFuture 使用示例
java·开发语言
Dfreedom.18 小时前
开运算与闭运算:图像形态学中的“清道夫”与“修复匠”
图像处理·python·opencv·开运算·闭运算