AI个人学习
和实操指南
豆包Marscode1

自动爬取小说并生成多角色有声书的工具

综合介绍

Auto-Audio-Book 是一个开源项目,托管在 GitHub 上。它能自动从网站爬取小说内容,并将其转换为带有多角色配音的有声书。开发者 zqq-nuli 使用 Python 3.10+ 编写,结合大模型(如 Gemini 和 CosyVoice2-0.5B)实现文本处理和语音合成。项目不仅支持基本的文本转音频,还能区分小说中的角色并分配不同声音,生成类似广播剧的效果。代码公开,用户可自由下载、修改。截至 2025 年 3 月 24 日,项目仍在开发中,GUI 未完全完善,但已能通过命令行完成全流程,适合技术爱好者和有声书制作者。

 

功能列表

  • 小说爬取:从指定网站自动下载小说章节内容。
  • 对话信息生成:利用 AI 分析文本,区分角色和对话。
  • 多角色配音:为小说角色分配不同声音,支持主角、旁白和随机配音。
  • 音频生成:将文本转为 MP3 格式的有声书,支持多线程加速。
  • 管理工具:提供 GUI 辅助管理小说数据和音频文件。
  • 开源可扩展:用户可修改代码,添加新功能或优化效果。

 

使用帮助

Auto-Audio-Book 需要一定的技术基础才能安装和使用。以下是详细的安装和操作指南,帮助你从零开始生成有声书。

安装流程

  1. 环境准备
    • 安装 Python 3.10 或更高版本,从 https://www.python.org/downloads/ 下载。
    • 安装 ffmpeg,用于音频处理。Windows 可从 https://ffmpeg.org/download.html 下载,Mac 用 brew install ffmpeg,Linux 用 sudo apt install ffmpeg
    • (可选)安装 MongoDB,用于 GUI 管理小说数据,下载地址:https://www.mongodb.com/try/download/community。
    • 检查环境:在命令行输入 python --version 和 ffmpeg -version,确保版本显示正常。
  2. 下载代码
    • 用 Git 克隆项目到本地:
      git clone https://github.com/zqq-nuli/auto-audio-book.git
      
    • 进入项目目录:
      cd auto-audio-book
      
  3. 创建虚拟环境
    • 使用 uv 创建虚拟环境(需先安装 uv,用 pip install uv):
      uv venv --python 3.10
      
    • 激活环境:
      • Windows:.\.venv\Scripts\activate
      • Mac/Linux:source .venv/bin/activate
  4. 安装依赖
    • 在虚拟环境中安装所需库:
      uv add -r requirements.txt
      
    • 如果缺少 requirements.txt,可手动安装核心库:
      pip install requests gTTS PyPDF2 pymongo
      
  5. 配置 API Key
    • 复制 .env.example 文件为 .env
      copy .env.example .env  # Windows
      cp .env.example .env    # Mac/Linux
      
    • 编辑 .env 文件,填入大模型 API Key,例如 Gemini 的密钥,可从对应平台申请。

使用步骤

  1. 爬取小说
    • 选择小说网站(如 https://m.ilwxs.com/),项目默认支持无防护站点。
    • 运行爬取脚本:
      python app/getBookList.py
      
    • 然后获取章节列表并保存内容:
      python app/getZjList.py
      python app/saveBooks.py
      
  2. 生成对话信息
    • 用 AI 处理章节,区分角色和对话:
      python app/saveBookJson.py
      
    • 输出结果保存为 JSON 文件,用于后续配音。
  3. 配置角色声音
    • 运行脚本创建角色表:
      python app/createUser.py
      
    • 手动指定主角和旁白的声音(支持 CosyVoice2-0.5B 等模型)。其他角色可随机分配:
      • 超过 50 句台词的角色用独立声音。
      • 少于 50 句的用旁白声音。
  4. 生成音频
    • 运行音频生成脚本:
      python app/createAudio.py
      
    • 支持多线程加速,例如开 20 线程:
      python app/createAudio.py --threads 20
      
    • 输出为 MP3 文件,存放在项目目录。
  5. 管理音频(可选)
    • 用 GUI 工具排序音频:
      python gui/gui.py
      
    • 或批量删除喜马拉雅作品:
      python gui/gui2.py
      

操作注意

  • 效率优化:一台电脑单线程一晚可处理 300 章。测试显示,5 台机器每台 20 线程,5 小时可生成 2000 章。
  • 错误排查:若有漏章,检查网络或重新运行对应章节脚本。
  • 模型限制:硅基模型对 IP 有限制,多机并行需抢占服务器。

示例流程

假设你要转换一本小说:

  1. 爬取 https://m.ilwxs.com/ 的小说《某某》,保存章节。
  2. 生成对话信息,识别主角 A 和旁白。
  3. 配置 A 用中文男声,旁白用女声,其他随机。
  4. 运行多线程生成,得到 chapter1.mp3 等文件。

完成后,可上传至喜马拉雅等平台,成品示例见 https://www.ximalaya.com/album/88023000。


 

应用场景

  1. 有声书制作
    把网络小说转为多角色有声书,上传平台分享或盈利。
  2. 学习实验
    技术爱好者用它学习爬虫、AI 和音频处理技术。
  3. 个人娱乐
    将喜欢的小说转为音频,随时随地收听。

 

QA

  1. 支持哪些大模型?
    当前支持 Gemini 和 CosyVoice2-0.5B,需自行申请 API Key。
  2. 为什么有些章节没生成?
    可能是网络中断或爬取失败,检查日志后重跑对应章节。
  3. 如何提高音频质量?
    默认模型效果有限,可替换为其他 TTS 引擎,需修改代码。
未经允许不得转载:首席AI分享圈 » 自动爬取小说并生成多角色有声书的工具
zh_CN简体中文