付费?不存在的,20 行代码将电子书转换为有声小说

ef11974e6dce82ff9c2b35478df97ab3.png

文 | 豆豆

来源:Python 技术「ID: pythonall」

c9932cb3569f6de818b9b297d290b8a0.png

类似得到电子书或者樊登读书会等平台,现在都可以直接听书了,而且声音方面听起来非常舒服,但无一例外,这些平台都需要购买会员,作为技术人的我简直不能忍,于是尝试自己动手丰衣足食。

既然要将电子书转换为语音文件,那么第一步要解决的问题就是将电子书中的文字解析出来,这个可以用 pdfplumber 库来解决。

安装

pip3 install pdfplumber

读取 PDF 内容

Python 之所以强大就是因为有很多各种各样的库给你用,读取 PDF 内容只需三行代码即可搞定,刚好手里有本「欺骗的艺术」一起来看看。

8f111858df69f0e2712a2ba44c9e1f87.png

重点看第四页的内容即可,接下来就直接用 pdfplumber 来读取第四页内容。

with pdfplumber.open("欺骗的艺术.pdf") as pdf:
    page = pdf.pages[3]
    text = page.extract_text()
    print(text)

看下输出日志:

4c9c3fb68486f48d871fe290e448dc37.png

从日志中可以看出转换还是相当精准的。

文字转音频

文字转音频是使用的 pyttsx3 库,直接安装使用即可。

pip3 install pyttsx3

正式转换之前呢先做一个简单的测试,看看是否可以正确将文字朗读出来。

import pyttsx3

def read_by_mp3(text):
    engine = pyttsx3.init() # 初始化语音引擎
    text = text.replace('\n', '') # 去掉换行符
    engine.say(text) # 读文本
    engine.runAndWait()

if __name__ == '__main__':
    read_by_mp3('一些黑客毁坏别人的文件甚至整个硬盘,他们被称为电脑狂人')

该函数会直接将文本内容读出来,当然你也可以选择下载保存音频文件到本地。

import pyttsx3

def 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 天计划!

老规矩,兄弟们还记得么,右下角的 “在看” 点一下,如果感觉文章内容不错的话,记得分享朋友圈让更多的人知道!

c5553924485ad5d9d311d33cc07e6c84.gif

代码获取方式

识别文末二维码,回复:豆豆

b894e3a112f004dad8c638a041323649.png

  • 15
    点赞
  • 55
    收藏
    觉得还不错? 一键收藏
  • 4
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值