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音频的更多相关文章

  1. 【技术博客】利用Python将markdown文档转为html文档

    利用Python将markdown文档转为html文档 v1.0 作者:FZK 元素简单的md文件 Python中自带有一个markdown库,你可以直接这样使用 md_file = open(&qu ...

  2. 利用Python操作Word文档【图片】

    利用Python操作Word文档

  3. python实用小技能分享,教你如何使用 Python 将 pdf 文档进行 加密 解密

    上次说了怎么将word转换为pdf格式 及 实现批量将word转换为pdf格式(点击这里),这次我又get到一个新技能–使用 Python 将 pdf 文档进行 加密 解密,哈哈哈 希望帮到更多人! ...

  4. qt 利用 HTML 生成PDF文档,不能显示jpg图片

    利用 QPrinter 和html 生成 pdf文档 其中用html语句有显示图片的语句 但只能显示png格式的图片,不能显示jpg格式图片. 经过排查:语法,文件路径等都正确,最终在stack ov ...

  5. 利用ItextSharp 生成PDF文档改进版

    导入的ItextSharp.dll一定要是较高的版本 数据库表结构 生成的PDF样式 代码: namespace WebPDF { public partial class _Default : Sy ...

  6. Python读取PDF文档

    from pdfminer.converter import PDFPageAggregator from pdfminer.layout import LAParams from pdfminer. ...

  7. 第一节:python提取PDF文档中的图片

    由于项目需要将PDF文档当中的图片转换成图片,所以参考了这篇文章https://blog.csdn.net/qq_15969343/article/details/81673302后项目得以解决. 1 ...

  8. 【转】Python读取PDF文档,输出内容

    Python3读取pdf文档,输出内容(txt) from urllib.request import urlopen from pdfminer.pdfinterp import PDFResour ...

  9. python 操作pdf文档

    简介 在实际项目中,我们有可能需要提取当中的部分内容并导出,给PDF文件添加水印,合并多份PDF文件等等,而本文会着重用到PyPDF2模块来玩转PDF文档,以及tabula模块来对PDF文档中的表格数 ...

随机推荐

  1. 【PUPPETEER】初探之获取元素文本值(三)

    一.知识点 page.$eval(selector, pageFunction[, ...args]) page.$$eval(selector, pageFunction[, ...args]) i ...

  2. 03生成微博授权URL接口

    1.创建apps/oauth模块进行oauth认证 '''2.1 在apps文件夹下新建应用: oauth''' cd syl/apps python ../manage.py startapp oa ...

  3. 【五校联考1day2】JZOJ2020年8月12日提高组T2 我想大声告诉你

    [五校联考1day2]JZOJ2020年8月12日提高组T2 我想大声告诉你 题目 Description 因为小Y 是知名的白富美,所以自然也有很多的追求者,这一天这些追求者打算进行一次游戏来踢出一 ...

  4. 老猿学5G扫盲贴:中国移动的5G计费架构解读

    专栏:Python基础教程目录 专栏:使用PyQt开发图形界面Python应用 专栏:PyQt入门学习 老猿Python博文目录 老猿学5G博文目录 一.引言 在<老猿学5G扫盲贴:3GPP中的 ...

  5. 第11.3节 Python正则表达式搜索支持函数search、match、fullmatch、findall、finditer

    一. 概述 re模块的函数search.match.fullmatch.findall.finditer都是用于搜索文本中是否包含指定模式的串,函数的参数都是一样的,第一个参数是模式串.第二个是搜索文 ...

  6. Python基础概念学习遇到的问题

    Python运算符的优先级是怎样的? Python中的迭代是什么意思? Python中的列表解析和列表推导是一回事吗? Python中可迭代对象是什么? Python中容器指的是什么? 关于Pytho ...

  7. 第12.5节 Python time模块导览

    一.时间相关的概念 time模块模块提供了各种时间相关的函数,在介绍时间相关功能前,先介绍一些术语和惯例: epoch 是时间开始的点,并且取决于平台.对于Unix, epoch 是1970年1月1日 ...

  8. js2py 的用法

    python调用js的方法 js2py的简单用法 import js2py js = """ function add(a, b) { return a + b } &q ...

  9. 安装虚拟机(centos7)

    安装VMware 15 这里就不介绍VMware如何安装了,可以自行百度安装. 准备centos7镜像 我选择的是网易的镜像源,地址是:http://mirrors.163.com/centos/7/ ...

  10. 熊海CMS xhcms v1.0代码审计

    有空的时候就进行小型CMS的代码审计,这次审计的对象是熊海CMS v1.0 本地环境安装好了之后,可以看到提示安装了锁文件 说明重装漏洞应该不会存在了,这时候丢进seay代码审计系统的代码也出结果了, ...