网站首页 > 技术文章 正文
网上有很多各式各样的听书软件,网站上也都语音播报功能。前几天突发奇想我能不能自己实现把小说朗读出来呢。经过几天的摸索终于实现了,现在就记录一下过程。这个功能主要是把文字转成语音朗读出来,Python支持的文字转语音的库有很多,这里就介绍常用的几种。
win32com库
win32com库本质是调用Windows电脑本身的语音功能,比较简单,仅仅几行代码就可以实现了。但是不能进行语速、音量控制,而且声音是机器声,比较生硬。
代码实现如下:
win32com.client winspeak = win.Dispatch()speak.Speak()speak.Speak()
pyttsx3库
pyttsx3也是一款文本到语音的转换库,可以脱机工作,与Python2和Python3都兼容。pyttsx3可以实现语速、音量控制,可以调用系统的语音包朗读文本,可以保存为音频文件。
代码实现如下图所示:
代码运行结果如下图所示:
可以看到我们已经生成tssx3.mp3文件,从打印看到我的系统只有两个语音包,一个中文,一个英文。voices[0]是中文,支持朗读中文和英文,voices[1]是英文,只支持英文,读取中文时没有声音。
baidu-aip库
baidu-aip是百度推出的语音合成库,百度智能云有语音合成接口,可以在Python中直接调用,有多种声音可供选择,可以成熟男音也可以撒娇萝莉音。
安装baidu-aip
pip install baidu-aip
调用百度语音合成接口
百度智能云语音合成地址:
https://ai.baidu.com/tech/speech/tts
只要有百度账户就可以登录,点击“立即使用”进入控制台总览,如下图:
点击“应用列表”进入进入列表页面,我这是已经创建了一个应用,如下图:
刚进入的用户需要点击“创建应用”进入应用创建页面,如下图所示:
填入应用名称,勾选要使用的接口,然后点击“立即创建”,就完成应用创建了。创建完成返回应用列表页面,在上面可以看到刚创建应用的AppID,API Key,Secret Key。返回控制台总览页面,服务列表右边有个“免费领取资源”链接,点击进去可以领取接口使用。
点击“API在线调试”进入接口调试页面,选择语音技术,语音合成,如下图所示:
这里就是文本合成语音的接口,技术文档详细介绍了参数的传值规则。
代码实现:win32com.client winspeak = win.Dispatch()speak.Speak()speak.Speak()
根据接口文档我们写一个简单的调用接口的代码,我们需要传入AppID,API Key,Secret Key的值,per的值表示男声女声,度小宇=1,度小美=0,度逍遥(基础)=3,度丫丫=4,度小宇度小美的普通的声音,度逍遥度丫丫是有感情的声音。
总结:
以上就是文本转音频的几种方法了,baidu-aip的效果最好,但百家语音合成接口只免费一段时间,这段时间过后需要收费。pytssx3效果还可以,我们可以在电脑上安装其他语音包,应该也能达成想到的效果。
猜你喜欢
- 2025-04-27 Python实现语音识别与人脸识别技术结合,打造高效安全门禁系统。
- 2025-04-27 Python实现变声器功能,萝莉音御姐音都有的哦
- 2025-04-27 python将文本转化为语音 pyttsx3 详解
- 2025-04-27 Python爬虫--喜马拉雅三国音频爬取
- 2025-04-27 python实现用语音识别打开windows应用,调节亮度,声音很简单的
- 2025-04-27 这一款极好:轻松用Python完成文字转语音
- 2025-04-27 使用Google Speech API在Python中进行语音识别
- 2025-04-27 开源人声分离音频标注工具—基于Python
- 2025-04-27 机器学习中的音频特征:理解Mel频谱图
- 2025-04-27 【Python小技巧】让代码会“报警”!4种方法让你的程序开口说话
- 06-23python3实现线程和进程的状态转换的模块及应用示例
- 06-23原来Python的协程有2种实现方式(python协程gevent)
- 06-23python线程start、run方法本质和区别
- 06-23Python模块datetime、calendar、logging、argparse、re用法
- 06-23Python常见模块机os、sys、pickle、json、time用法
- 06-23python类库configparser(python class库)
- 06-23python字典常用初始化方式、增加元素及遍历
- 06-23python运算符重载和上下文管理(python重载加号)
- 270℃Python短文,Python中的嵌套条件语句(六)
- 268℃python笔记:for循环嵌套。end=""的作用,图形打印
- 266℃PythonNet:实现Python与.Net代码相互调用!
- 262℃Python实现字符串小写转大写并写入文件
- 261℃Python操作Sqlserver数据库(多库同时异步执行:增删改查)
- 121℃原来2025是完美的平方年,一起探索六种平方的算吧
- 101℃Python 和 JavaScript 终于联姻了!PythonMonkey 要火?
- 95℃Ollama v0.4.5-v0.4.7 更新集合:Ollama Python 库改进、新模型支持
- 最近发表
-
- python3实现线程和进程的状态转换的模块及应用示例
- 原来Python的协程有2种实现方式(python协程gevent)
- python线程start、run方法本质和区别
- Python模块datetime、calendar、logging、argparse、re用法
- Python常见模块机os、sys、pickle、json、time用法
- python类库configparser(python class库)
- python字典常用初始化方式、增加元素及遍历
- python运算符重载和上下文管理(python重载加号)
- 《第32天》运维工程师分享:web服务器如何解析python
- Linux面试题Python(linux面试题大全)
- 标签列表
-
- python中类 (31)
- python 迭代 (34)
- python 小写 (35)
- python怎么输出 (33)
- python 日志 (35)
- python语音 (31)
- python 工程师 (34)
- python3 安装 (31)
- python音乐 (31)
- 安卓 python (32)
- python 小游戏 (32)
- python 安卓 (31)
- python聚类 (34)
- python向量 (31)
- python大全 (31)
- python次方 (33)
- python桌面 (32)
- python总结 (34)
- python浏览器 (32)
- python 请求 (32)
- python 前端 (32)
- python验证码 (33)
- python 题目 (32)
- python 文件写 (33)
- python中的用法 (32)