社区所有版块导航
Python
python开源   Django   Python   DjangoApp   pycharm  
DATA
docker   Elasticsearch  
aigc
aigc   chatgpt  
WEB开发
linux   MongoDB   Redis   DATABASE   NGINX   其他Web框架   web工具   zookeeper   tornado   NoSql   Bootstrap   js   peewee   Git   bottle   IE   MQ   Jquery  
机器学习
机器学习算法  
Python88.com
反馈   公告   社区推广  
产品
短视频  
印度
印度  
Py学习  »  Python

用Python制作有声小说

Crossin的编程教室 • 5 年前 • 671 次点击  


大家好,欢迎来到 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