文 | 豆豆

来源: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 行代码将电子书转换为有声小说相关推荐

  1. 20行代码发一篇NeurIPS:梯度共享已经不安全了

    整理 | 夕颜,Jane 出品 | AI科技大本营(ID:rgznai100) [导读]12 月 8 日-14 日,NeurIPS 2019 在加拿大温哥华举行,和往常一样,今年大会吸引了数万名专家参 ...

  2. php横排代码,20行代码原生js实现文字横向轮播

    20行代码实现文字横向轮播效果 1 页面布局代码 恭喜793765***获得 50元超市充值卡卡奖励 恭喜793765***获得 50元超市充值卡卡奖励 恭喜793765***获得 50元超市充值卡卡 ...

  3. 《看聊天记录都学不会C语言?太菜了吧》(14)这么神奇?我写了20行代码竟然一行就可以搞定?

    好消息2020年4月13日晚7.30我在CSDN开播,等你来聊天 预约连接:https://live.csdn.net/room/A757291228/MJWK0Gem 本系列文章将会以通俗易懂的对话 ...

  4. Python用20行代码实现一个验证码的输入与验证(完整源码)

    我们平常上网处处可见需要输入验证码的地方,利用Python的random()模块,其实我们只用简单20行代码就能实现.下为效果图,能识别是否正确: 其中也没有复杂的函数嵌套.函数递归,逻辑也比较简单, ...

  5. Python用20行代码实现完整邮件功能 [完整代码+建议收藏]

    大家好,我是Lex 喜欢欺负超人那个Lex 擅长领域:python开发.网络安全渗透.Windows域控Exchange架构 今日重点:python脚本实现发送邮件,邮件添加附件,读取接收邮件等功能. ...

  6. 女神相册密码忘记了,我只用Python写了20行代码

    ​视频地址 我用20行代码,帮女神破解相册密码 一.事情是这样的 今早上班,公司女神小姐姐说,她去年去三亚旅游的照片打不开了 好奇问了一下才知道. 原来是,她把照片压缩了,而且还加了密码. 但是密码不 ...

  7. python黑科技:Python大佬用20行代码带你打造一个微信聊天机器人,真神了~

    如何用20行Python代码打造一个微信群聊助手? 1.安装python环境 2.安装python的itchat库 3.安装itchat库 4.Linux 5.申请图灵机器人API和key 6.编写p ...

  8. C# 20行代码解析KRC歌词内容

    C# 20行代码解析KRC歌词内容 文章内容仅供学习参考,禁止转载. KRC 歌词文件支持了逐字精准,解决了一行歌词进度显示不准确的问题.由此好奇其存储歌词的方式,于是参考网络其他资料总结如下: KR ...

  9. python人物抠图算法_比PS还好用!Python 20行代码批量抠图

    抠图前 vs Python自动抠图后 在日常的工作和生活中,我们经常会遇到需要抠图的场景,即便是只有一张图片需要抠,也会抠得我们不耐烦,倘若遇到许多张图片需要抠,这时候你的表情应该会很有趣. Pyth ...

最新文章

  1. Elias-Fano编码算法——倒排索引压缩用,本质上就是桶排序数据结构思路
  2. Apache+php5
  3. MySQL事务的回滚
  4. Machine Learning from Start to Finish with Scikit-Learn
  5. dp打开思路2:POJ2533 HDU1114 HDU1260 HDU1160(水题不水)
  6. 普中51控制火焰传感器_传感器检测:以后,电动车充电会变成这样
  7. golang学习和使用经验总结
  8. 本地使用TensorBoard
  9. html api中文文档,Svelte API 中文文档 | Svelte 中文网
  10. 【学习笔记】如何理解Raft中的ReadIndex?
  11. JavaWeb笔记 黑马程序员课程
  12. 分数加减乘除混合运算带答案_分数加减乘除混合运算150道,小数加减乘除混合运算150到,整数加减乘除混合运算150道,及答案。...
  13. BZOJ 3689 异或之
  14. ansys linux卸载干净,安装了几次ansys14.5,都没有成功,删除重新安装后许可安装不了了...
  15. 传输预编码matlab,基于MATLAB的MIMO系统预编码性能仿真.doc
  16. echaarts水滴(水球图)波浪效果
  17. jsp页面链接下载文件
  18. VBA For Each循环
  19. 《Linux C编程从入门到精通》一第1章 Linux基础1.1 Linux的起源、发展和分类
  20. DriverStudio 3.x 完全版 下载

热门文章

  1. Redis配置文件redis.conf文件详解
  2. larval容器,服务提供者,门面案例
  3. Android中65536问题剖析
  4. Android 65536 详解!
  5. 计算机如何驱动无线网络,电脑如何安装全民WiFi驱动
  6. 教你2种常用的电商高并发处理解决方案
  7. ORACLE EBS中消息队列fnd_msg_pub、fnd_message在PL/SQL中的应用
  8. linux 内网yum,Linux下 内网环境 通过ISO yum安装依赖
  9. 开放平台–扫描微信二维码登录
  10. 如何在win10自带的Edge浏览器中切换成IE浏览器浏览网站