python语音分割_用7行Python代码构建自己的有声读物
欢迎关注 “小白玩转Python”,发现更多 “有趣”
有声读物是我们可以通过音频听取一本书或者其他作品的内容,是现下一种很受欢迎的阅读方式。类似的APP有:喜马拉雅、得到和樊登读书等。
但是如果你有一本pdf格式的书籍,那么你不需要借助上述app,也可以实现自己的有声读物哦~只需要跟随小编学习如何用7行代码实现自己的有声读物。
一、基本实现
Python中有大量不同用途的库,在本文中,我们只需要用到两个库(pyttsx3,PyPDF2)来构建我们的有声读物。
可以通过pip来安装这两个库,
pip install PyPDF2pip install pyttsx3
1. 读取PDF文件
PyPDF2是Python中专门用来处理pdf文件的库,它允许在内存中对pdf进行操作。PyPDF2的主要功能如下所示:
· 提取文件信息,如题目、作者等· 按页分割文件· 按页合并文件· 裁剪页· 将多个页面合并为一个页面· 加密和解密pdf文件
通过这个库,我们将 pdf 文件一页一页地拆分,读取每一页上的文本,并将文本发送到下一步。
import PyPDF2pdfReader = PyPDF2.PdfFileReader(open('file.pdf', 'rb'))
2. 初始化扬声器
Python的pyttsx3库能够实现脱机将文本转换到语音。将上一步中识别到的文本传递给语音文本转换器。
import pyttsx3speaker = pyttsx3.init()
3. 播放有声读物
使用 PyPDF2实现从 pdf 文件中逐页提取文本。通过读取文本并将其输入到 pyttsx3的扬声器引擎,循环遍历每一页,它会大声朗读 pdf 页面上的文本,最后停止pyttsx3的扬声器引擎。
for page_num in range(pdfReader.numPages): text = pdfReader.getPage(page_num).extractText() speaker.say(text) speaker.runAndWait()speaker.stop()
上述步骤的所有代码如下所示:
import pyttsx3, PyPDF2pdfReader = PyPDF2.PdfFileReader(open('file.pdf', 'rb'))speaker = pyttsx3.init()for page_num in range(pdfReader.numPages): text = pdfReader.getPage(page_num).extractText() speaker.say(text) speaker.runAndWait()speaker.stop()
二、改变音色、语速和音量
我们可以调整有声读物的速度和音量,当然也可以改变它的音色(例如男声改为女声)。
1. 速度
初始化 pyttsx3库,并使用 getProperty (“ rate”)获得当前的通话速率。使用 setProperty (‘ rate’ ,x)更改说话的频率,其中 x = 100表示正常速度。
# Initialize the speakerspeaker = pyttsx3.init()rate = speaker.getProperty('rate') print(rate)speaker.setProperty('rate', 125)
2. 音色
初始化 pyttsx3库,并使用 getProperty (“ voice”)获取说话者的当前性别。使用 setProperty (“ voice” ,voice [ x ])改变说话者的性别。这里 x = 0表示男性,x = 1表示女性。
voices = speaker.getProperty('voices')print(voices)#changing index, changes voices, 0 for malespeaker.setProperty('voice', voices[0].id)#changing index, changes voices, 1 for femalespeaker.setProperty('voice', voices[1].id)
3. 音量
初始化 pyttsx3库,并使用 getProperty (“ volume”)获取当前音量。使用 setProperty (‘ volume’ ,x)更改扬声器的音量。音量范围是从0到1,其中0是静音,1是最大音量。
volume = engine.getProperty('volume')print(volume)engine.setProperty('volume',1.0)
4.将声音保存到音频文件:
使用下面的方法就可以将音频输出(audiobook)保存到 mp3文件中。
engine.save_to_file(text, 'audio.mp3')engine.runAndWait()
三、结论:
在本文中,我们介绍了一个基本有声读物的实现,它可以使用几行 python 代码读取整个 pdf 文档并朗读出来。为了获得更好的音频效果,还可以改变音色、调整速率和音量。
· END ·
HAPPY LIFE
python语音分割_用7行Python代码构建自己的有声读物相关推荐
- 用7行Python代码构建自己的有声读物
点击关注我哦 欢迎关注 "小白玩转Python",发现更多 "有趣" 有声读物是我们可以通过音频听取一本书或者其他作品的内容,是现下一种很受欢迎的阅读方式.类似 ...
- python换脸完整程序_小 200 行 Python 代码做了一个换脸程序
原标题:小 200 行 Python 代码做了一个换脸程序 简介 在这篇文章中我将介绍如何写一个简短(200行)的 Python 脚本,来自动地将一幅图片的脸替换为另一幅图片的脸. 这个过程分四步: ...
- 如何用python破解热点_用30行Python代码制作wifi万能钥匙,邻居家wifi网速好快
原标题:用30行Python代码制作wifi万能钥匙,邻居家wifi网速好快 当我们拖着疲惫的身体下班回到家,想开开心心的吹着空调风扇吃着西瓜,然后手机连上wifi打一把游戏好好舒服下,然而家里wif ...
- python抠图教程_简单几行Python代码实现8秒抠图的AI神器,根本无需PS(附教程)...
曾几何时,「抠图」是一个难度系数想当高的活儿,但今天要介绍的这款神工具,只要 3 行代码 5 秒钟就可以完成高精度抠图,甚至都不用会代码,点两下鼠标就完成了. 感受下这款抠图工具抠地有多精细: 是不是 ...
- python语音库_介绍几个python的音频处理库
图 3比如我的机器的地址就是 192.168.152.130.然后将这个ip地址填入 图2 的Host Name 一栏,注意默认端口为22,不要去改它,然后点击open,就会弹出一个登陆界面,接着输入 ...
- python文本替换 数据库_用几行python代码实现大量文本文件里的文本替换
""" 用python进行大量文本替换. 因为工作需要,有时候我们需要替换大量文本文件里的特定文字,用python可以帮我们非常简单快速的处理. 其中最下面的if语句,当 ...
- python 语音分段_教你用Python如何玩转声音文件,将声音按照语音间隙切割为片段...
声音信号在现实生活中有很多,在如今这个信息爆炸的社会中,提取有用的声音信号也变的尤为重要.当我们采集了一段声音信号后,有时候需要将这段声音的每一句话分离开来做分析,提取我们需要的声音信息.在这里提供一 ...
- 基于python的证件照_用20行python代码给证件照换底色
imread:读取图片: imshow:展示图片: waitkey:设置窗口等待,如果不设置,窗口会一闪而过: imread:读取图片: imshow:展示图片: waitkey:设置窗口等待,如果不 ...
- python语音对话查询起始路和目的地_精选:语音对话机器人,百行Python代码就能轻松实现...
原标题:精选:语音对话机器人,百行Python代码就能轻松实现 前言: Python现在非常火,语法简单而且功能强大,很多同学都想学Python! 所以小的给各位看官们准备了收藏已久的视频教程分享给大 ...
最新文章
- 2022-2028年中国互联网+汽车行业深度调研及投资前景预测报告
- 直接线性变换(DLT)求解单应性矩阵
- IBM全面拥抱Linux,为“认知商业”提供POWER
- 2018-3-14智能算法(文章--优化问题的智能算法及其哲学内涵)笔记一(什么是优化问题)
- Linux下用户组、文件权限详解
- 滴滴数据挖掘竞赛题目
- [MapReduce] Google三驾马车:GFS、MapReduce和Bigtable
- Linux下显示当前目录下的全部目录或文件
- php扩展调用php函数,是否可以在PHP字符串中扩展函数调用?
- 背景图怎么置于底层_Ps素材教程含有刻度的背景图
- 页面载入时在导航栏显示背景图片
- Python字符串swapcase()
- 5G 时代,一加的机会在哪里?
- ElasticSearch5.1 基本概念和配置
- css 为什么给span加vertical-align: middle不起作用?
- 嘉楠科技:一家芯片创业公司的上云历程
- (伪)原创,采集工具应用
- Java开发翻译系统
- C语言中free函数如何确定释放的空间大小
- 分享一个免费的计算机书籍资料网站(含有编程语言,算法,人工智能,游戏开发等书籍资料)
热门文章
- windows10 C盘清理
- 改造一下jeecg中的部门树
- Android开发启动未注册的activity,Hook使用demo
- 远程桌面无法连接服务器,启动Terminal Services 服务报1053错误
- .net core2.0 Memcached.ClientLibrary
- powerdesigner 反向工程 oracle,PowerDesigner oracle 反向工程到cdm文件
- Hive中COUNT的高级用法(条件过滤等)
- [NLP-CNN] Convolutional Neural Networks for Sentence Classification -2014-EMNLP
- GCD与LCM【数论】
- 复习Python DB-API