Py学习  »  Python

用Python制作有声小说

Crossin的编程教室 • 2 年前 • 280 次点击  


大家好,欢迎来到 Crossin的编程教室 !


有不少朋友都热衷于看小说。俗话说:小说阅读一时爽,一直阅读一直爽。但是小说阅读时间久了,会给我们的眼睛带来很严重的负担,造成眼部的一些不适。


为了解决这个问题,同时能够让大家体验小说的内容,今天给大家用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”分别控制着音量、语速、语调和音色,大家可以根据自己的习惯进行调节。


至此,我们便完成了从小说对应章节的爬取到文本转换为语音的全过程,最后,为大家带来的是视频演示:



这样,大家就可以解放双眼,用耳朵来“阅读”小说啦。


如果文章对你有帮助,欢迎转发/点赞/收藏~

作者:菜鸟哥

来源:程序员GitHub


_往期文章推荐_

魔性声控游戏“八分音符酱”




如需了解付费精品课程教学答疑服务
请在Crossin的编程教室内回复: 666

Python社区是高质量的Python/Django开发社区
本文地址:http://www.python88.com/topic/111210
 
280 次点击