付费?不存在的,20 行代码将电子书转换为有声小说
文 | 豆豆
来源:Python 技术「ID: pythonall」
类似得到电子书或者樊登读书会等平台,现在都可以直接听书了,而且声音方面听起来非常舒服,但无一例外,这些平台都需要购买会员,作为技术人的我简直不能忍,于是尝试自己动手丰衣足食。
既然要将电子书转换为语音文件,那么第一步要解决的问题就是将电子书中的文字解析出来,这个可以用 pdfplumber 库来解决。
安装
pip3 install pdfplumber
读取 PDF 内容
Python 之所以强大就是因为有很多各种各样的库给你用,读取 PDF 内容只需三行代码即可搞定,刚好手里有本「欺骗的艺术」一起来看看。
重点看第四页的内容即可,接下来就直接用 pdfplumber 来读取第四页内容。
with pdfplumber.open("欺骗的艺术.pdf") as pdf:page = pdf.pages[3]text = page.extract_text()print(text)
看下输出日志:
从日志中可以看出转换还是相当精准的。
文字转音频
文字转音频是使用的 pyttsx3 库,直接安装使用即可。
pip3 install pyttsx3
正式转换之前呢先做一个简单的测试,看看是否可以正确将文字朗读出来。
import pyttsx3def read_by_mp3(text):engine = pyttsx3.init() # 初始化语音引擎text = text.replace('\n', '') # 去掉换行符engine.say(text) # 读文本engine.runAndWait()if __name__ == '__main__':read_by_mp3('一些黑客毁坏别人的文件甚至整个硬盘,他们被称为电脑狂人')
该函数会直接将文本内容读出来,当然你也可以选择下载保存音频文件到本地。
import pyttsx3def read_by_mp3(text):engine = pyttsx3.init() # 初始化语音引擎text = text.replace('\n', '') # 去掉换行符engine.save_to_file(text, 'text.mp3') # 保存音频文件到本地engine.runAndWait()
效果如下:
音频整体听起来还是非常流畅的,只是少了些许感情,剩下的流程派森酱就不再赘述啦,无非就是获取到 PDF 所有的内容,然后调用 read_by_mp3 函数就可以啦。
总结
今天派森酱带领大家试着通过语音朗读的方式来读取 PDF 内容,整体流程已经跑通,而且效果比较顺畅,商业化估计有点不够要求,但还是可以考虑做一些小工具的,毕竟免费嘛。
PS:公号内回复「Python」即可进入Python 新手学习交流群,一起 100 天计划!
老规矩,兄弟们还记得么,右下角的 “在看” 点一下,如果感觉文章内容不错的话,记得分享朋友圈让更多的人知道!
【代码获取方式】
识别文末二维码,回复:豆豆
付费?不存在的,20 行代码将电子书转换为有声小说相关推荐
- 20行代码发一篇NeurIPS:梯度共享已经不安全了
整理 | 夕颜,Jane 出品 | AI科技大本营(ID:rgznai100) [导读]12 月 8 日-14 日,NeurIPS 2019 在加拿大温哥华举行,和往常一样,今年大会吸引了数万名专家参 ...
- php横排代码,20行代码原生js实现文字横向轮播
20行代码实现文字横向轮播效果 1 页面布局代码 恭喜793765***获得 50元超市充值卡卡奖励 恭喜793765***获得 50元超市充值卡卡奖励 恭喜793765***获得 50元超市充值卡卡 ...
- 《看聊天记录都学不会C语言?太菜了吧》(14)这么神奇?我写了20行代码竟然一行就可以搞定?
好消息2020年4月13日晚7.30我在CSDN开播,等你来聊天 预约连接:https://live.csdn.net/room/A757291228/MJWK0Gem 本系列文章将会以通俗易懂的对话 ...
- Python用20行代码实现一个验证码的输入与验证(完整源码)
我们平常上网处处可见需要输入验证码的地方,利用Python的random()模块,其实我们只用简单20行代码就能实现.下为效果图,能识别是否正确: 其中也没有复杂的函数嵌套.函数递归,逻辑也比较简单, ...
- Python用20行代码实现完整邮件功能 [完整代码+建议收藏]
大家好,我是Lex 喜欢欺负超人那个Lex 擅长领域:python开发.网络安全渗透.Windows域控Exchange架构 今日重点:python脚本实现发送邮件,邮件添加附件,读取接收邮件等功能. ...
- 女神相册密码忘记了,我只用Python写了20行代码
视频地址 我用20行代码,帮女神破解相册密码 一.事情是这样的 今早上班,公司女神小姐姐说,她去年去三亚旅游的照片打不开了 好奇问了一下才知道. 原来是,她把照片压缩了,而且还加了密码. 但是密码不 ...
- python黑科技:Python大佬用20行代码带你打造一个微信聊天机器人,真神了~
如何用20行Python代码打造一个微信群聊助手? 1.安装python环境 2.安装python的itchat库 3.安装itchat库 4.Linux 5.申请图灵机器人API和key 6.编写p ...
- C# 20行代码解析KRC歌词内容
C# 20行代码解析KRC歌词内容 文章内容仅供学习参考,禁止转载. KRC 歌词文件支持了逐字精准,解决了一行歌词进度显示不准确的问题.由此好奇其存储歌词的方式,于是参考网络其他资料总结如下: KR ...
- python人物抠图算法_比PS还好用!Python 20行代码批量抠图
抠图前 vs Python自动抠图后 在日常的工作和生活中,我们经常会遇到需要抠图的场景,即便是只有一张图片需要抠,也会抠得我们不耐烦,倘若遇到许多张图片需要抠,这时候你的表情应该会很有趣. Pyth ...
最新文章
- Elias-Fano编码算法——倒排索引压缩用,本质上就是桶排序数据结构思路
- Apache+php5
- MySQL事务的回滚
- Machine Learning from Start to Finish with Scikit-Learn
- dp打开思路2:POJ2533 HDU1114 HDU1260 HDU1160(水题不水)
- 普中51控制火焰传感器_传感器检测:以后,电动车充电会变成这样
- golang学习和使用经验总结
- 本地使用TensorBoard
- html api中文文档,Svelte API 中文文档 | Svelte 中文网
- 【学习笔记】如何理解Raft中的ReadIndex?
- JavaWeb笔记 黑马程序员课程
- 分数加减乘除混合运算带答案_分数加减乘除混合运算150道,小数加减乘除混合运算150到,整数加减乘除混合运算150道,及答案。...
- BZOJ 3689 异或之
- ansys linux卸载干净,安装了几次ansys14.5,都没有成功,删除重新安装后许可安装不了了...
- 传输预编码matlab,基于MATLAB的MIMO系统预编码性能仿真.doc
- echaarts水滴(水球图)波浪效果
- jsp页面链接下载文件
- VBA For Each循环
- 《Linux C编程从入门到精通》一第1章 Linux基础1.1 Linux的起源、发展和分类
- DriverStudio 3.x 完全版 下载
热门文章
- Redis配置文件redis.conf文件详解
- larval容器,服务提供者,门面案例
- Android中65536问题剖析
- Android 65536 详解!
- 计算机如何驱动无线网络,电脑如何安装全民WiFi驱动
- 教你2种常用的电商高并发处理解决方案
- ORACLE EBS中消息队列fnd_msg_pub、fnd_message在PL/SQL中的应用
- linux 内网yum,Linux下 内网环境 通过ISO yum安装依赖
- 开放平台–扫描微信二维码登录
- 如何在win10自带的Edge浏览器中切换成IE浏览器浏览网站