- gemini
- CosyVoice2-0.5B
- Python 3.10+
- 大模型 API Key
- ffmpeg
- mongodb (可选 GUI 需要)
- 创建虚拟环境
uv venv --python 3.10
.\.venv\Scripts\activate
- 安装依赖
uv add -r requirements.txt
- 配置 API Key
复制 .env.example 文件修改为 .env
添加 .env 文件中的 API Key
文件名 | 功能 |
---|---|
app/getBookList.py | 获取小说章节分页 |
app/getZjList.py | 获取章节列表 |
app/saveBooks.py | 保存小说每章内容 |
app/saveBookJson.py | AI 处理章节对话信息 |
app/createUser.py | 创建角色模型选择表 |
app/createAudio.py | 生成音频 |
文件名 | 功能 |
---|---|
text/key_test.py | 批量测试 API Key 是否可用 |
gui/gui.py | 音频文件排序工具 |
gui/gui2.py | 喜马拉雅作品批量删除管理工具 |
book-gui/gui3.py | 小说爬取管理工具(mongodb) |
先去网站挑好小说 参考站点
我是在这里爬的,似乎没啥防护,随便扒
具体怎么配置可用参考app/*
下面的文件
if __name__ == "__main__":
中的写法
Gui 方面还没有做完,目前只做了
小说爬取
-小说管理
-Gemini API Key 管理
-多线程生成对话信息
所以直接从源码执行的话可以一套流程走下来,如果从
Gui 执行的话就要分开来了,还需要自己增加一点数据库的读取和数据格式处理操作
配置角色表这一步,可以手动去配置一些角色,指定主角和旁白的声音
然后剩下的我是直接随机抽取对应性别的声音的,因为可用的音频模型太少了
一本 1000 章以上的小说甚至有几千个角色,很多杂毛角色
目前的规则是超过 50 句台词的角色除了你指定的外,随机用一个声音,然后小于这个的直接用旁白的声音
虽然硅基的这个模型没有并发限制,但是对IP还是有限制的,我一台电脑一晚上最多跑300章小说
开抢占服务器,多台并行的话每个开 20 线程
我这边测试过的是,开5台机器,每台机器20线程,5小时跑了将近2000章小说
其中可能会有漏章的,最后还需要筛查和补充
整个思路其实很简单
流程 | 作用 | * |
---|---|---|
小说爬取 | 准备小说素材 | |
生成对话信息表 | 区分角色 | 用于后面分配音频 |
配置角色声音模型 | 实现多角色音频 | |
多线程音频生成 | 生成音频 |