作者:菜鸟哥
来源:程序员GitHub
大家好,欢迎来到 「Python数据之道」 !
有不少朋友都热衷于看小说。俗话说:小说阅读一时爽,一直阅读一直爽。但是小说阅读时间久了,会给我们的眼睛带来很严重的负担,造成眼部的一些不适。
为了解决这个问题,同时能够让大家体验小说的内容,今天给大家用Python做个有声小说转换工具,通过爬取小说,并将小说转化成语音形式,让大家以听的形式来“阅读”小说,同时解放自己的双眼。
01. 整体的思路如下
首先我们输入想要阅读小说的名称和相应的章节;
然后将小说的文本进行爬取并保存到本地的txt文档之中;
接下来是读取小说的文本,然后转换为语音形式,并保存到本地的mp3文件中;
最后点击播放该mp3文件即可
02. 小说的爬取
小说的文本我们爬取的小说来自于网站笔趣阁(https://www.biquge5200.com/)。先是输入我们想要爬取的小说名称 ,程序如下图所示:
1. 构造出需要爬取的小说名称的链接
由于网页会返回所有名字包含我们输入名称的小说,所以我们要进行筛选,筛选出完全符合我们输入名称的小说,然后返回该小说的地址。如果找不到该小说,则程序退出。
2. 提取小说的章节
接下来是对小说相应章节的提取,get_url函数返回所有章节的地址链接信息。get_txt函数。首先输出所有章节的名称,然后大家选择自己想要阅读的章节,程序接下来便会爬取该章节的内容,并返回选择的章节名称和章节的内容。返回的小说内容会被写入到本地的特定文件夹当中,也就完成了我们流程的前半部分。部分程序如下图所示:
03.文本转化为小说
经过前面几步,我们就可以将文本小说转化为语音小说,并保存到本地的音频文件当中,部分程序如下图所示:
我们利用的是百度AI的语音合成技术,来将文本转化为音频。
官方文档:
https://ai.baidu.com/ai-doc/SPEECH/Ik4nlz8l6
上面有详细的安装使用和示例代码:
我们构造一个语音合成的实例类,并命名为self.client。需要注意的是,由于每次上传的文本最大不能超过1024个字节,所以需要在程序中对字符串进行切分,分批上传,并将结果写入到音频文件中。
上图程序中,synthesis函数中的各个参数都是可以进行调节的,其中“vol”、“spd”、“pit”、“per”分别控制着音量、语速、语调和音色,大家可以根据自己的习惯进行调节。
至此,我们便完成了从小说对应章节的爬取到文本转换为语音的全过程,最后,为大家带来的是视频演示:
这样,大家就可以解放双眼,用耳朵来“阅读”小说啦。
如果文章对你有帮助,欢迎转发/点赞/收藏~
---------End---------
后台回复「微信群」,将邀请加入读者交流群。
回复 600 ,获取 《Python知识手册》
回复 markdown ,获取 《Markdown速查表》
回复 time , 获取 《Python时间使用指南》
回复 str, 获取 《Python字符串速查表》
回复 SQL50 ,获取 《SQL经典50题》
回复 mat ,获取 《Matplotlib入门100个案例》
????分享、点赞、在看,给个三连击呗!????