当前位置: 首页 > news >正文

使用 Python 的 pyttsx3 库进行文本转语音

1. 什么是 pyttsx3?

1.1 pyttsx3 是一个 Python 库,它可以将文本转换为语音。与其他文本转语音库(如 gTTS)不同,pyttsx3 不依赖于网络服务,它使用本地的 TTS(Text-to-Speech)引擎,这使得它在离线状态下也能正常工作
1.2 pyttsx3 支持多平台(Windows、Linux 和 macOS),且可以对语音的音量、语速以及语音类型等进行控制

2. 安装 pyttsx3

要使用 pyttsx3,首先需要在你的 Python 环境中安装该库
你可以通过以下命令安装它:

pip install pyttsx3

安装完成后,就可以开始使用它来生成语音了

3. 使用 pyttsx3 播放文本

下面是一个简单的示例,展示了如何使用 pyttsx3 库将文本转换为语音

示例代码:

import pyttsx3# 初始化 pyttsx3 引擎
engine = pyttsx3.init()# 要转换的文本
text = "你好,欢迎使用 pyttsx3 库进行文本转语音转换。"# 播放文本
engine.say(text)# 等待语音播放完毕
engine.runAndWait()

在这段代码中,我们首先通过 pyttsx3.init() 初始化了语音引擎
然后通过 say() 方法将文本添加到语音队列中,最后通过 runAndWait() 方法让引擎开始播放并等待播放结束

4. 控制语音的参数

pyttsx3 库提供了几个可以控制语音效果的参数,包括音量、语速和语音类型
下面是如何调整这些参数的示例

控制音量

音量的取值范围是 0.0 到 1.0,默认值通常为 1.0
你可以通过 setProperty() 方法来设置音量

engine.setProperty('volume', 0.9)  # 设置音量为 90%
控制语速

语速的默认值通常是 200(单位:字/分钟),你可以使用 setProperty() 方法来设置语速

engine.setProperty('rate', 150)  # 设置语速为 150(单位:字/分钟)
控制语音类型

pyttsx3 允许你选择不同的语音引擎
你可以查看可用的语音列表并选择不同的语音类型(例如男声或女声)

voices = engine.getProperty('voices')  # 获取可用的语音列表# 打印出可用的语音类型
for voice in voices:print(f"ID: {voice.id}, Name: {voice.name}, Lang: {voice.languages}")# 设置使用第一个语音(通常是男性语音)
engine.setProperty('voice', voices[0].id)

你可以通过循环输出所有的语音选项,选择你想要的语音
例如,你可以选择一个女性的语音或者不同的语言

5. 保存语音到文件

pyttsx3 默认是播放语音,而不是保存语音文件
如果你希望将生成的语音保存到一个文件中,pyttsx3 本身并没有直接支持输出到文件的功能,但你可以使用其他工具结合来实现,例如 pydub 或其他音频处理库

如果你有兴趣,可以查看下面的代码片段,它展示了如何使用 pydub 将 pyttsx3 的输出保存为 .mp3 文件:

import pyttsx3
from pydub import AudioSegment
import os# 使用 pyttsx3 生成语音并保存为 WAV 文件
engine = pyttsx3.init()
engine.save_to_file("你好,欢迎使用 pyttsx3 库进行文本转语音转换。", "output.wav")
engine.runAndWait()# 使用 pydub 将 WAV 转换为 MP3
audio = AudioSegment.from_wav("output.wav")
audio.export("output.mp3", format="mp3")# 删除临时的 WAV 文件
os.remove("output.wav")

6. 完整代码示例

下面是一个完整的示例代码,它演示了如何使用 pyttsx3 来控制音量、语速、语音类型,并将文本转换为语音:

import pyttsx3# 初始化 pyttsx3 引擎
engine = pyttsx3.init()# 获取当前的音量、语速、语音设置
volume = engine.getProperty('volume')
rate = engine.getProperty('rate')
voices = engine.getProperty('voices')# 输出当前设置
print(f"当前音量: {volume}")
print(f"当前语速: {rate}")
print(f"当前语音: {voices[0].name}")# 设置新的属性
engine.setProperty('volume', 0.8)  # 设置音量为 80%
engine.setProperty('rate', 150)    # 设置语速为 150# 设置使用不同的语音
engine.setProperty('voice', voices[1].id)  # 使用第二个语音(通常是女性语音)# 要转换的文本
text = "你好,欢迎使用 pyttsx3 库进行文本转语音转换。"# 播放文本
engine.say(text)# 等待语音播放完毕
engine.runAndWait()

pyttsx3 是一个功能强大的文本转语音库,可以用于各种应用场景,如语音助手、自动化任务、盲人辅助工具等,通过简单的 API,用户可以轻松控制音量、语速和语音类型等参数,且无需依赖互联网服务,适合离线使用。

相关文章:

使用 Python 的 pyttsx3 库进行文本转语音

1. 什么是 pyttsx3? 1.1 pyttsx3 是一个 Python 库,它可以将文本转换为语音。与其他文本转语音库(如 gTTS)不同,pyttsx3 不依赖于网络服务,它使用本地的 TTS(Text-to-Speech)引擎&a…...

如何在Windows上编译OpenCV4.7.0

前言 ​ 参考:Win10 下编译 OpenCV 4.7.0详细全过程,包含xfeatures2d 这里在其基础上还出现了一些问题,仅供参考。 正文 一、环境 1、win10 2、cmake-gui 3、opencv4.7.0 4、VS2019 二、编译过程 1、下载需要的文件: 通…...

【玩转全栈】----Django连接MySQL

阅前先赞,养好习惯! 目录 1、ORM框架介绍 选择建议 2、安装mysqlclient 3、创建数据库 4、修改settings,连接数据库 5、对数据库进行操作 创建表 删除表 添加数据 删除数据 修改(更新)数据: 获取数据 1、OR…...

25/1/4 算法笔记<强化学习> 生成对抗模仿学习

基于生成对抗网络的模仿学习,假设存在一个专家智能体,其策略可以看成最优策略,我们就可以通过直接模仿这个专家在环境中交互的动作数据来训练一个策略,并不需要用到环境提供的奖励信息。 生成对抗模仿学习GAIL实质上就是模仿了专家…...

Flink维表方案选型

Iceberg Iceberg 采用全量预加载数据的方式将维度表数据全部加载到内存中进行关联,虽然可以避免频繁访问外部数据库,但对计算节点的内存消耗很高,不能适用于数量很大的维度表。除此之外,当 Iceberg 维表数据更新后,可…...

Oracle Database 23ai 新特性: UPDATE 和 DELETE 语句的直接联接

Oracle Database 23c 引入了一系列令人振奋的新特性,其中一项尤为引人注目的是对 UPDATE 和 DELETE 语句支持直接联接(Direct Join)。这一新功能极大地简化了复杂数据操作的实现,提升了性能,并为数据库开发者提供了更强…...

机器学习之随机森林算法实现和特征重要性排名可视化

随机森林算法实现和特征重要性排名可视化 目录 随机森林算法实现和特征重要性排名可视化1 随机森林算法1.1 概念1.2 主要特点1.3 优缺点1.4 步骤1.5 函数及参数1.5.1 函数导入1.5.2 参数 1.6 特征重要性排名 2 实际代码测试 1 随机森林算法 1.1 概念 是一种基于树模型的集成学…...

网络安全图谱以及溯源算法

​ 本文提出了一种网络攻击溯源框架&#xff0c;以及一种网络安全知识图谱&#xff0c;该图由六个部分组成&#xff0c;G <H&#xff0c;V&#xff0c;A&#xff0c;E&#xff0c;L&#xff0c;S&#xff0c;R>。 1|11.知识图 ​ 网络知识图由六个部分组成&#xff0c…...

单片机-外部中断

中断是指 CPU 在处理某一事件 A 时&#xff0c;发生了另一事件 B&#xff0c;请求 CPU 迅速去处理(中断发生)&#xff1b;CPU 暂时停止当前的工作(中断响应)&#xff0c; 转去处理事件 B(中断服务)&#xff1b;待 CPU 将事件 B 处理完毕后&#xff0c;再回到原来事件 A 被中断的…...

《解锁计算机视觉智慧:编程实现图片场景文字描述的开源宝藏》

《解锁计算机视觉智慧&#xff1a;编程实现图片场景文字描述的开源宝藏》 一、MiniGPT-4&#xff1a;小模型撬动大视觉理解&#xff08;一&#xff09;项目概览&#xff08;二&#xff09;核心亮点&#xff08;三&#xff09;上手体验 二、ClipCap-Chinese&#xff1a;中文场景…...

onLoad 生命周期函数是否执行取决于跳转的方式和小程序的页面栈管理机制

文章目录 1. 页面跳转方式2. 你的场景分析3. 页面生命周期4. 总结5. 建议 在微信小程序中&#xff0c;页面跳转时&#xff0c; onLoad 生命周期函数是否执行取决于跳转的方式和小程序的页面栈管理机制。以下是详细说明&#xff1a; 1. 页面跳转方式 微信小程序提供了多种页面…...

Visio 画阀门 符号 : 电动阀的画法

本篇文章介绍阀门&#xff0c;很多朋友在利用Visio绘画管道流程简图时&#xff0c;需要进行阀门符号的绘画&#xff0c;而Visio提供的阀门符号种类并不是很齐全。 本篇文章给出电动阀的画法&#xff1a; 下图是液动阀的符号&#xff1a; 首先&#xff0c;找到“更多形状”中的…...

OOM排查思路

K8S 容器的云原生生态&#xff0c;改变了服务的交付方式&#xff0c;自愈能力和自动扩缩等功能简直不要太好用。 有好的地方咱要夸&#xff0c;不好的地方咱也要说&#xff0c;真正的业务是部署于容器内部&#xff0c;而容器之外&#xff0c;又有一逻辑层 Pod 。 对于容器和…...

《Spring Framework实战》10:4.1.4.2.详细的依赖和配置

欢迎观看《Spring Framework实战》视频教程 集合 <list/>、<set/>、<map/>和<props/>元素分别设置Java集合类型list、set、map和properties的属性和参数。以下示例显示了如何使用它们&#xff1a; <bean id"moreComplexObject" class&qu…...

网络安全-XSS跨站脚本攻击(基础篇)

漏洞扫描的原理 1.跨站脚本攻击介绍 xss跨站脚本攻击&#xff1a; xSS 全称&#xff08;Cross site Scripting &#xff09;跨站脚本攻击&#xff0c;是最常见的Web应用程序安全漏洞之一&#xff0c;位于OWASP top 10 2013/2017年度分别为第三名和第七名&#xff0c;XSS是指攻…...

Git的学习和常见问题

文章目录 1.初始化配置2.新建仓库3.添加和提交文件4.git reset 回退版本5.git diff 查看差异6.git rm 删除文件7.文件 .gitigonre8.克隆远程仓库9.将已有的本地仓库关联到远程仓库10.分支的基本操作11.解决合并冲突配置问题 最近基于GeekHour的视频学习Git&#xff0c;记录了一…...

Flink源码解析之:Flink on k8s 客户端提交任务源码分析

Flink on k8s 客户端提交任务源码分析 当我们需要在代码中提交Flink job到kubernetes上时&#xff0c;需要如何做呢&#xff1f;要引入什么第三方依赖&#xff1f;需要提供什么内容&#xff1f;flink是如何将job提交到k8s上的&#xff1f;经过了什么样的流程&#xff0c;内部有…...

STLG_02_02_MS SQL - SSMS的安装和使用

SQL Server Management Studio (SSMS) 是 Microsoft 提供的一个集成环境&#xff0c;用于管理、开发和维护 SQL Server 数据库和 Analysis Services 数据库。 一、安装 SSMS 下载 SSMS: 访问 Microsoft 官方网站的 SSMS 下载页面。选择适合你操作系统的版本进行下载。SSMS 支持…...

git 常用命令和本地合并解决冲突

目录 一、常用命令 二、本地可视化合并分支解决冲突 一、常用命令 最近&#xff0c;使用mac电脑&#xff0c;无法直接使用小乌龟进行可视化操作&#xff0c;现在记录一些常用命令。 拉取&#xff1a; git clone <git url> 仅拉起某个单独分支&#xff1a; git clo…...

ThinkPHP 8高效构建Web应用-获取请求对象

【图书介绍】《ThinkPHP 8高效构建Web应用》-CSDN博客 《2025新书 ThinkPHP 8高效构建Web应用 编程与应用开发丛书 夏磊 清华大学出版社教材书籍 9787302678236 ThinkPHP 8高效构建Web应用》【摘要 书评 试读】- 京东图书 使用VS Code开发ThinkPHP项目-CSDN博客 编程与应用开…...

树莓派Ubuntu20.04静态IP配置后DNS解析失败的排查与修复

1. 静态IP配置后的典型症状 刚给树莓派刷完Ubuntu 20.04系统&#xff0c;配置静态IP本来是为了远程连接更稳定&#xff0c;结果发现浏览器打不开网页&#xff0c;终端里ping百度也提示"暂时无法解析域名"。右上角WiFi图标上那个黄色问号特别扎眼——这场景我太熟悉了…...

在昇腾Atlas 800I A2上,用vLLM-Ascend 0.9.1-dev部署Qwen2.5-7B的保姆级避坑指南

昇腾Atlas 800I A2实战&#xff1a;vLLM-Ascend部署Qwen2.5-7B的深度避坑手册 当你在Atlas 800I A2服务器上首次尝试用vLLM-Ascend部署Qwen2.5-7B模型时&#xff0c;可能会遇到各种官方文档未曾提及的"暗礁"。本文将从实战角度&#xff0c;拆解那些让开发者夜不能寐的…...

_EMD-KPCA-LSTM 基于经验模态分解和核主成分分析的长短期记忆网络多维时间序列预测_matlab_实现基于EMD-KPCA-LSTM多维时间序列预测模型,与LSTM和EMD-LSTM进行对比

EMD-KPCA-LSTM 基于经验模态分解和核主成分分析的长短期记忆网络多维时间序列预测MATLAB代码&#xff08;含LSTM、EMD-LSTM、EMD-KPCA-LSTM三个模型的对比&#xff09; matlab 参考文档&#xff1a;基于EMD-PCA-LSTM的光伏功率预测模型 研究内容&#xff1a;本案例使用数据集是…...

OpenClaw如何做好记忆持久化的 · 六、经济学与可扩展性——记忆的代价

六、经济学与可扩展性——记忆的代价⏱ 30 秒速览 | 中度使用&#xff08;日均 50 次对话&#xff09;纯记忆附加成本&#xff1a;~$5/月&#xff08;Claude Sonnet&#xff09;/ ~$1/月&#xff08;GPT-4o-mini&#xff09;。72% 花在记忆注入&#xff0c;24% 花在自动提取&am…...

NPC逆变器开环仿真模型:适用于基础研究及多电平模型辨识算法验证,载波层叠调制与多种负载适应性探究

NPC逆变器开环MATLAB仿真模型 开环&#xff01;开环&#xff01;开环&#xff01; 适合基础研究 载波层叠调制、电阻负载 根据情况可以添加阻感负载、LCL滤波等 适合不同多电平模型辨识算法验证、故障诊断等工作&#xff01;最近在搞多电平逆变器的算法验证&#xff0c;发现开环…...

loadtest WebSocket测试全攻略:实时应用的性能验证方法

loadtest WebSocket测试全攻略&#xff1a;实时应用的性能验证方法 【免费下载链接】loadtest Runs a load test on the selected URL. Fast and easy to use. Can be integrated in your own workflow using the API. 项目地址: https://gitcode.com/gh_mirrors/lo/loadtest…...

Windows包管理器自动化部署指南:从痛点解决到企业级应用

Windows包管理器自动化部署指南&#xff1a;从痛点解决到企业级应用 【免费下载链接】winget-install Install WinGet using PowerShell! Prerequisites automatically installed. Works on Windows 10/11 and Server 2019/2022. 项目地址: https://gitcode.com/gh_mirrors/w…...

QTableWidget 表格组件掖

7.1 初识三维模型 7.1.1 三维模型的数据载体 随着计算机图形技术的发展&#xff0c;我们或多或少都会见过或者听说过三维模型。笔者始终记得小时候第一次在电视上看到三维动画《变形金刚&#xff1a;超能勇士》的震撼感受&#xff1b;而现在我们已经可以在手机上玩三维游戏《王…...

抖音直播回放全能下载方案:从技术原理到创新应用的完整攻略

抖音直播回放全能下载方案&#xff1a;从技术原理到创新应用的完整攻略 【免费下载链接】douyin-downloader A practical Douyin downloader for both single-item and profile batch downloads, with progress display, retries, SQLite deduplication, and browser fallback …...

GitHub 智能汉化插件:高效消除英文界面障碍的终极方案

GitHub 智能汉化插件&#xff1a;高效消除英文界面障碍的终极方案 【免费下载链接】github-chinese GitHub 汉化插件&#xff0c;GitHub 中文化界面。 (GitHub Translation To Chinese) 项目地址: https://gitcode.com/gh_mirrors/gi/github-chinese GitHub 作为全球最大…...