利用Python将PDF文档转为MP3音频
1. 转语音工具
微信读书有一个功能,可以将书里的文字转换为音频,而且声音优化的不错,比传统的机械朗读听起来舒服很多。
记得之前看到过Python有一个工具包,可以将文字转换为语音,支持英文和中文,而且可以调节语速语调、导出mp3等。
去Github查了下,这个库叫:pyttsx3

简单来说,pyttsx3可以文字转语音,而且是离线工作的,这一点就很实用。

安装比较容易,直接在命令行用pip安装:
pip install pyttsx3
我准备动手试试,将PDF书籍转成音频。
用什么书呢?最近在群里看到有人发张磊的新作《价值》电子书,这本今年刚出的畅销书盗版猖獗,我之前在微信读书里看过,对作者长期主义的观点深信不疑。

那就它了。
2. PDF转文本
既然是把PDF转化成语音,肯定是需要先读取PDF中的文字,再利用pyttsx3转语音。
Python中操作PDF的工具库主要是PyPDF2,但发现编码实在有点繁琐,我就换了另一个库pdfplumber,与PyPDF2语法类似,用起来还算流畅。
pdfplumber可以处理PDF包括文本、表格、格式在内的各种信息,小而强大。
# 读取PDF文档
pdf = pdfplumber.open("价值.pdf") # 获取页数
print("总页数:",len(pdf.pages))
print("-----------------------------------------") # 读取第4页
first_page = pdf.pages[3]
print("本页:",first_page.page_number+1)
print("-----------------------------------------") # 导出第4页文本
text = first_page.extract_text()
print(text)
输出:

上面的代码做了几件事情: 「读取PDF文档、读取页数、读取第4页、输出第4页文本」
3. 文本转语音
接下来开始将第4页的文本转化为音频。
import pyttsx3 # 初始化来获取语音引擎
engine = pyttsx3.init() # 去掉文本中的换行符
text = text.replace('\n','') # 朗读文本
engine.say(text)
engine.runAndWait()
上面代码使用pyttsx3将文本转化为音频,然后朗读出来。我是在jupyter notebook上做实验的,代码执行后,电脑会直接朗读。
也可以将生成的音频保存为mp3格式。
# 保存音频到本地,格式为mp3
engine.save_to_file(text, 'test.mp3')
engine.runAndWait()
当然你还可以调整声音的类型、速度、大小。
# 调整人声类型
voices = engine.getProperty('voices')
engine.setProperty('voice', voices[0].id) # 调整语速,范围一般在0~500之间
rate = engine.getProperty('rate')
engine.setProperty('rate', 200) # 调整声量,范围在0~1之间
volume = engine.getProperty('volume')
engine.setProperty('volume',0.8)
最后生成的语音整体还是比较流畅的,虽然不如微信读书语音听着那般舒服,但做做小工具还是不错的。
本文的文字及图片来源于网络,仅供学习、交流使用,不具有任何商业用途,如有问题请及时联系我们以作处理
想要获取更多Python学习资料可以加
QQ:2955637827私聊
或加Q群630390733
大家一起来学习讨论吧!
利用Python将PDF文档转为MP3音频的更多相关文章
- 【技术博客】利用Python将markdown文档转为html文档
利用Python将markdown文档转为html文档 v1.0 作者:FZK 元素简单的md文件 Python中自带有一个markdown库,你可以直接这样使用 md_file = open(&qu ...
- 利用Python操作Word文档【图片】
利用Python操作Word文档
- python实用小技能分享,教你如何使用 Python 将 pdf 文档进行 加密 解密
上次说了怎么将word转换为pdf格式 及 实现批量将word转换为pdf格式(点击这里),这次我又get到一个新技能–使用 Python 将 pdf 文档进行 加密 解密,哈哈哈 希望帮到更多人! ...
- qt 利用 HTML 生成PDF文档,不能显示jpg图片
利用 QPrinter 和html 生成 pdf文档 其中用html语句有显示图片的语句 但只能显示png格式的图片,不能显示jpg格式图片. 经过排查:语法,文件路径等都正确,最终在stack ov ...
- 利用ItextSharp 生成PDF文档改进版
导入的ItextSharp.dll一定要是较高的版本 数据库表结构 生成的PDF样式 代码: namespace WebPDF { public partial class _Default : Sy ...
- Python读取PDF文档
from pdfminer.converter import PDFPageAggregator from pdfminer.layout import LAParams from pdfminer. ...
- 第一节:python提取PDF文档中的图片
由于项目需要将PDF文档当中的图片转换成图片,所以参考了这篇文章https://blog.csdn.net/qq_15969343/article/details/81673302后项目得以解决. 1 ...
- 【转】Python读取PDF文档,输出内容
Python3读取pdf文档,输出内容(txt) from urllib.request import urlopen from pdfminer.pdfinterp import PDFResour ...
- python 操作pdf文档
简介 在实际项目中,我们有可能需要提取当中的部分内容并导出,给PDF文件添加水印,合并多份PDF文件等等,而本文会着重用到PyPDF2模块来玩转PDF文档,以及tabula模块来对PDF文档中的表格数 ...
随机推荐
- 【PUPPETEER】初探之获取元素文本值(三)
一.知识点 page.$eval(selector, pageFunction[, ...args]) page.$$eval(selector, pageFunction[, ...args]) i ...
- 03生成微博授权URL接口
1.创建apps/oauth模块进行oauth认证 '''2.1 在apps文件夹下新建应用: oauth''' cd syl/apps python ../manage.py startapp oa ...
- 【五校联考1day2】JZOJ2020年8月12日提高组T2 我想大声告诉你
[五校联考1day2]JZOJ2020年8月12日提高组T2 我想大声告诉你 题目 Description 因为小Y 是知名的白富美,所以自然也有很多的追求者,这一天这些追求者打算进行一次游戏来踢出一 ...
- 老猿学5G扫盲贴:中国移动的5G计费架构解读
专栏:Python基础教程目录 专栏:使用PyQt开发图形界面Python应用 专栏:PyQt入门学习 老猿Python博文目录 老猿学5G博文目录 一.引言 在<老猿学5G扫盲贴:3GPP中的 ...
- 第11.3节 Python正则表达式搜索支持函数search、match、fullmatch、findall、finditer
一. 概述 re模块的函数search.match.fullmatch.findall.finditer都是用于搜索文本中是否包含指定模式的串,函数的参数都是一样的,第一个参数是模式串.第二个是搜索文 ...
- Python基础概念学习遇到的问题
Python运算符的优先级是怎样的? Python中的迭代是什么意思? Python中的列表解析和列表推导是一回事吗? Python中可迭代对象是什么? Python中容器指的是什么? 关于Pytho ...
- 第12.5节 Python time模块导览
一.时间相关的概念 time模块模块提供了各种时间相关的函数,在介绍时间相关功能前,先介绍一些术语和惯例: epoch 是时间开始的点,并且取决于平台.对于Unix, epoch 是1970年1月1日 ...
- js2py 的用法
python调用js的方法 js2py的简单用法 import js2py js = """ function add(a, b) { return a + b } &q ...
- 安装虚拟机(centos7)
安装VMware 15 这里就不介绍VMware如何安装了,可以自行百度安装. 准备centos7镜像 我选择的是网易的镜像源,地址是:http://mirrors.163.com/centos/7/ ...
- 熊海CMS xhcms v1.0代码审计
有空的时候就进行小型CMS的代码审计,这次审计的对象是熊海CMS v1.0 本地环境安装好了之后,可以看到提示安装了锁文件 说明重装漏洞应该不会存在了,这时候丢进seay代码审计系统的代码也出结果了, ...