Alexandria Audiobook Generator

6天前发布 1 00

将一本小说转化为一部由不同角色配音、带有自然停顿和情感表达的有声书,通常需要一个专业的配音团队。现在,借助 Alexandria,你可以在本地完成这一切。它是一个基于 Qwen3-TTS 引擎构建的开源工具,利用大语言模型(LLM)自动标注脚本,并为每个角色分配独特的声音,最终导出为可直接使用的 MP3 或供专业编辑的 Audacity ...

所在地:
美国
收录时间:
2026-02-14
Alexandria Audiobook GeneratorAlexandria Audiobook Generator

无需专业配音团队,无需复杂音频编辑技巧——Alexandria 借助 AI 驱动的脚本标注与文本转语音技术,能将任意书籍、小说文本转化为带多角色配音的完整有声书。内置 Qwen3-TTS 引擎,支持本地/云端运行,搭配浏览器可视化编辑器,可逐行微调语音风格,最终导出 MP3 或适配 Audacity 的多轨编辑文件,全程自动化且高度可定制。

Alexandria Audiobook Generator

作为基于 Qwen3-TTS 构建的专业有声书生成工具,Alexandria 核心优势在于:通过大语言模型(LLM)自动标注脚本,为每个角色分配专属声音;支持按文本描述定制声音风格、克隆参考音频音色,甚至通过 LoRA 微调训练专属声音;批量处理效率可达实时速度的 3-6 倍,兼顾制作效率与音频质量。

Alexandria Audiobook Generator

核心功能特性

1. AI 驱动的脚本处理:精准标注,减少人工修正

Alexandria 依托 LLM 完成脚本的自动化解析与优化,从源头上保证有声书的叙事逻辑:

  • 多端 LLM 兼容:支持 LM Studio、Ollama(本地)、OpenAI API(云端)等所有兼容 OpenAI 接口的大语言模型;
  • 自动脚本标注:LLM 将纯文本解析为包含「说话人+对话内容+TTS 风格指令」的结构化 JSON 格式,无需手动拆分角色台词;
  • 脚本智能审查:可选第二轮 LLM 处理,自动修正标注错误——比如剥离对话中的归属标签(“他说/她回答”)、拆分混排的叙述/对话、合并过度分割的叙述内容、验证语音指令合理性;
  • 智能分块与上下文保留:按说话人将连续台词分组(单块≤500字符),保证语音播放的自然流畅;同时在区块间传递角色列表和最近3条脚本,避免角色名称、语音风格前后不一致。
Alexandria Audiobook Generator

2. 灵活的语音生成:自定义程度高,适配多场景

内置 Qwen3-TTS 引擎,无需依赖外部服务器,语音生成能力覆盖多语言、多风格、多定制方式:

  • 多语言支持:原生支持英/中/法/德/意/日/韩/葡/俄/西等语言,也可自动检测文本语言;
  • 基础语音配置:提供 9 种预训练声音(Aiden/Dylan/Eric 等),支持通过指令控制语音情感/语调;
  • 高级声音定制
    ✅ 声音克隆:仅需 5-15 秒参考音频,即可复刻任意音色;
    ✅ 声音设计:通过文本描述生成全新声音(如“温暖深沉的男声,语调平静沉稳”);
    ✅ LoRA 微调:基于自定义数据集训练专属声音适配器,打造持久、可遵循指令的独特语音身份;
  • 效率优化:支持批量处理(3-6 倍实时速度)、编解码器编译(解码速度提升 3-4 倍),非言语声音(啊/嗯/哈哈)自动生成且贴合上下文;
  • 自然停顿:智能设置停顿时长——说话人切换时停顿 500 毫秒,同角色段落间停顿 250 毫秒,还原真人对话节奏。
Alexandria Audiobook Generator

3. 可视化 Web 编辑器:所见即所得,微调更便捷

8 标签页模块化界面,覆盖从配置到导出的全流程,新手也能快速上手:

  • 核心编辑能力:可逐区块修改说话人、文本、语音指令,支持单个区块选择性再生,无需重新生成全部内容;
  • 批量渲染模式:提供“标准并行”和“快速批量”两种模式,快速批量模式可最大化利用 GPU 算力;
  • 实时监控与预览:操作日志、生成进度实时显示,可单独播放单区块音频或按顺序预览整本书;
  • 脚本库管理:保存/加载已标注的脚本和声音配置,方便复用和二次编辑。

4. 多样化导出选项:适配不同编辑/使用需求

  • 合并有声书:直接导出包含所有声音和自然停顿的单个 MP3 文件,可直接播放;
  • 单独台词文件:每行台词生成独立 MP3,便于在 Audacity 等音频编辑软件中精细化调整;
  • Audacity 专属导出:一键导出压缩包,内含按说话人分类的 WAV 音轨、LOF 项目文件和标签文件,导入 Audacity 即可自动生成多轨工程。
Alexandria Audiobook Generator

系统要求:提前准备,避免运行卡顿

使用前需确保环境满足以下条件,保证工具稳定运行:

类别具体要求补充说明
基础工具Pinokio必须安装,作为运行载体
LLM 服务器LM Studio/Ollama(本地)、OpenAI API(云端)等推荐使用 Qwen3 模型,脚本生成效果最佳
GPU最低 8GB 显存,推荐 16GB+需支持 NVIDIA CUDA 11.8+ 或 AMD ROCm 6.0+;CPU 模式可用但速度极慢
内存最低 8GB,推荐 16GB影响批量处理效率
磁盘约 20GB 空间含 8GB 虚拟环境/PyTorch、7GB 模型权重,及音频工作空间

⚠️ 重要提示:无需额外部署 TTS 服务器,Alexandria 内置 Qwen3-TTS 引擎,模型权重首次使用时自动下载(单变体约 3.5GB);更多进阶指南可参考项目 Wiki

快速上手:5分钟完成有声书制作

步骤1:安装部署

  1. 未安装 Pinokio 先下载:Pinokio 官方地址
  2. 打开 Pinokio,点击「Download」,粘贴 URL:https://github.com/Finrandojin/alexandria-audiobook
  3. 点击「Install」安装依赖,完成后点击「Start」启动 Web 界面。

步骤2:基础配置(设置标签页)

核心配置 LLM 和 TTS 引擎,决定生成效率和效果:

  • LLM 基础 URL:LM Studio 填 http://localhost:1234/v1,Ollama 填 http://localhost:11434/v1
  • LLM API 密钥:本地服务器填 local 即可,云端需填对应平台密钥;
  • LLM 模型名称:推荐 qwen2.5-14b
  • TTS 模式:选 local(内置引擎,推荐),设备选 auto,语言按需选择。

步骤3:生成并优化脚本(脚本标签页)

  1. 上传 .txt/.md 格式的书籍文本,点击「生成标注脚本」;
  2. 可选「审查脚本」,让 LLM 自动修正标注错误(如剥离对话中的“他说”等冗余内容)。

步骤4:配置角色声音(声音标签页)

刷新声音列表后,为每个说话人配置音色:

  • 自定义声音:从 9 种预训练声音中选择,添加角色风格(如“苏格兰口音”);
  • 克隆声音:上传 5-15 秒参考音频,填写准确转录文本;
  • LoRA 声音:选择已训练的 LoRA 适配器,搭配风格指令;
  • 声音设计:通过文本描述生成全新音色(适合次要角色)。

步骤5:微调与生成(编辑器标签页)

  1. 选择「批量(快速)」模式,点击「批量渲染待处理」,最大化生成速度;
  2. 逐区块检查/修改台词、指令,可单独重新生成不满意的区块;
  3. 确认无误后点击「合并所有」,生成完整有声书。

步骤6:导出使用(结果标签页)

按需下载合并后的 MP3,或导出 Audacity 多轨压缩包,完成制作。

Web 界面全解析:每个标签页怎么用?

1. 设置标签页:核心参数调优

除基础配置外,这些高级设置可提升生成效率:

  • 编译编解码器:开启 torch.compile,批量解码速度提升 3-4 倍(首次生成需 30-60 秒预热);
  • 并行工作线程数:数值越高批量速度越快(20-60 为宜),但显存占用越高;
  • 子批处理:默认开启,按文本长度分组处理,减少 GPU 算力浪费。

2. 声音设计师标签页:无参考音频也能造音色

仅需文本描述即可生成专属声音:

  1. 输入描述(如“温暖的老妇人,声音轻柔沙哑,带南方拖腔”);
  2. 用示例文本预览音色,满意后保存到库,可作为克隆声音的参考。

3. LoRA 训练标签页:打造专属语音身份

若需长期复用某类音色,可训练 LoRA 适配器:

  • 数据集准备:上传 WAV 音频+metadata.jsonl,或用「数据集构建器」交互式创建;
  • 核心配置:训练轮数(20+样本推荐 15-30 轮)、学习率(默认 5e-6)、LoRA 秩(8-64,高值锁定音色但表现力弱);
  • 训练提示:数据包含多情感样本(快乐/悲伤/愤怒),生成的声音更有表现力。

4. 编辑器标签页:两种渲染模式怎么选?

模式速度特点适用场景
标准模式~1倍实时速度按说话人种子生成,支持声音克隆少量区块、需精准复刻音色
批量(快速)3-6倍实时速度按文本长度分组,显存利用率高整本书批量生成,追求效率

性能表现:速度有多快?

1. 推荐配置(最大化效率)

  • TTS 模式:local
  • 编译编解码器:开启;
  • 并行工作线程数:20-60;
  • 渲染模式:批量(快速)。

2. 基准测试(AMD RX 7900 XTX 24GB)

配置吞吐量54分钟音频生成耗时
标准模式~1倍实时约54分钟
批量模式(无编译)~2倍实时约27分钟
批量模式(开启编译)3-6倍实时约16分钟

3. AMD GPU 优化

使用 ROCm 环境的 AMD 显卡,工具会自动应用优化:

  • 启用 MIOpen 快速查找模式,避免算力浪费;
  • 为 whisper 编码器开启原生闪存注意力;
  • 修复 torch.compile 兼容性问题,无需手动配置。

技术细节:脚本格式与输出文件

1. 生成的脚本格式(JSON)

结构化存储角色、文本、指令,示例:

[
  {"speaker": "NARRATOR", "text": "The door creaked open slowly.", "instruct": "Calm, even narration."},
  {"speaker": "ELENA", "text": "Ah! Who's there?", "instruct": "Startled and fearful, sharp whispered question, voice cracking with panic."}
]
  • instruct 字段:2-3 句语音指令,直接控制 TTS 输出风格(如“悲痛欲绝,说话间抽泣,以啜泣声结束”);
  • 非言语声音:自动生成可发音文本(“Ah!”/“Haha!”)+ 指令,无需特殊标记。

2. 输出文件说明

  • 合并有声书:cloned_audiobook.mp3(含自然停顿,可直接播放);
  • 单独台词:voicelines/ 目录下按说话人命名的 MP3,便于单句编辑;
  • Audacity 导出:压缩包内含分轨 WAV、LOF 项目文件、标签文件,导入即可多轨编辑。

API 集成:程序化制作有声书

Alexandria 提供完整 REST API,支持 Python/JavaScript 集成,实现自动化制作:

Python 示例(核心流程)

import requests
import time

BASE = "http://127.0.0.1:4200"

# 上传文本文件
with open("mybook.txt", "rb") as f:
    requests.post(f"{BASE}/api/upload", files={"file": f})

# 生成脚本并等待完成
requests.post(f"{BASE}/api/generate_script")
while True:
    status = requests.get(f"{BASE}/api/status/script_generation").json()
    if status.get("status") in ["completed", "error"]:
        break
    time.sleep(2)

# 配置声音并批量生成
voice_config = {"NARRATOR": {"type": "custom", "voice": "Ryan", "character_style": "calm"}}
requests.post(f"{BASE}/api/save_voice_config", json=voice_config)

chunks = requests.get(f"{BASE}/api/chunks").json()
requests.post(f"{BASE}/api/generate_batch_fast", json={"indices": [c["id"] for c in chunks]})

# 合并并下载
requests.post(f"{BASE}/api/merge")
with open("audiobook.mp3", "wb") as f:
    f.write(requests.get(f"{BASE}/api/audiobook").content)

JavaScript 示例(核心流程)

const BASE = "http://127.0.0.1:4200";

// 上传文件
const formData = new FormData();
formData.append("file", fileInput.files[0]);
await fetch(`${BASE}/api/upload`, { method: "POST", body: formData });

// 生成脚本并等待完成
await fetch(`${BASE}/api/generate_script`, { method: "POST" });
async function waitForTask(taskName) {
  while (true) {
    const res = await fetch(`${BASE}/api/status/${taskName}`);
    const data = await res.json();
    if (data.status === "completed" || data.status === "error") return data;
    await new Promise(r => setTimeout(r, 2000));
  }
}
await waitForTask("script_generation");

// 配置声音并生成
await fetch(`${BASE}/api/save_voice_config`, {
  method: "POST",
  headers: { "Content-Type": "application/json" },
  body: JSON.stringify({ NARRATOR: { type: "custom", voice: "Ryan" } })
});

// 下载有声书
await fetch(`${BASE}/api/merge`, { method: "POST" });
const audioRes = await fetch(`${BASE}/api/audiobook`);
const blob = await audioRes.blob();
const url = URL.createObjectURL(blob);
const a = document.createElement("a");
a.href = url;
a.download = "audiobook.mp3";
a.click();

推荐 LLM 模型

脚本生成优先选择非思考型模型,效果更优:

  • 首选:Qwen3(适配中文/英文,标注准确率高);
  • 备选:Qwen2.5-14b、DeepSeek-R1(需禁用思考模式令牌)。

数据统计

相关导航

暂无评论

none
暂无评论...