栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Python

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

Python 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

付费?不存在的,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 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 天计划!

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

【代码获取方式】

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

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/294706.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号