@tom_doerr: Alexandria 使用 AI 从书籍生成有声书 https://github.com/Finrandojin/alexandria-audiobook…
摘要
Alexandria 是一个开源工具,利用 AI 驱动的脚本注释和文本转语音技术将书籍转化为全语音有声书,支持本地/云端大语言模型、语音克隆以及内置的 Qwen3-TTS 引擎。
查看缓存全文
缓存时间: 2026/07/05 00:55
Alexandria 通过 AI 将书籍转化为有声书 https://github.com/Finrandojin/alexandria-audiobook… — # Finrandojin/alexandria-audiobook 源码: https://github.com/Finrandojin/alexandria-audiobook # Alexandria 有声书生成器 English | 中文 > 致新用户: Alexandria 最近突然受到大量关注和新用户涌入。作为一个小型项目,我可能无法及时回应每个 issue。在提交 issue 之前,请仔细阅读本 README 和 Wiki (https://github.com/Finrandojin/alexandria-audiobook/wiki) —— 大多数常见问题的答案都已包含其中。感谢您的耐心等待! 将任何书籍或小说转化为全语音有声书,利用 AI 驱动的脚本标注和文本转语音技术。内置 Qwen3-TTS 引擎,支持批量处理,并提供基于浏览器的编辑器,方便您在最终导出前对每一句进行微调。 ## 示例: sample.mp3 (https://github.com/user-attachments/files/25276110/sample.mp3) ## 截图 ## 功能特性 ### AI 驱动管线 - 本地和云端 LLM 支持 - 使用任何兼容 OpenAI 的 API(LM Studio、Ollama、OpenAI 等) - 自动脚本标注 - LLM 将文本解析为包含说话人、对话和 TTS 指令方向的 JSON 格式 - LLM 脚本审查 - 可选的第二轮 LLM 处理,修复常见标注错误:从对话中移除说话人标签、拆分错误归类的旁白/对话、合并过度拆分的叙述者条目,并验证指令字段 - 角色生成 - LLM 分析脚本为每个角色创建语音描述,然后通过 VoiceDesign 生成参考音频,并自动分配克隆语音 —— 一键完成从脚本到全语音角色阵容的转换 - 说话人别名 - 将多个说话人名称映射到同一个语音(例如 “YOUNG ELENA” → “ELENA”),使不同变体共享一个语音配置 - 智能分块 - 将连续同一说话人的语句分组(最多500字符),实现自然流畅的朗读 - 上下文保留 - 在分块之间传递角色名单和最后3条脚本条目,确保名称和风格连贯 ### 语音生成 - 内置 TTS 引擎 - Qwen3-TTS 本地运行,无需外部服务器 - 外部服务器模式 - 可选择连接到远程 Qwen3-TTS Gradio 服务器 - 多语言支持 - 英语、中文、法语、德语、意大利语、日语、韩语、葡萄牙语、俄语、西班牙语,或自动检测 - 自定义语音 - 9种预训练语音,支持基于指令的情感/语调控制 - 语音克隆 - 从5-15秒的参考音频样本中克隆任意语音 - 语音设计师 - 通过文字描述创建新语音(例如“温暖深沉的男声,语气平静而稳定”) - LoRA 语音训练 - 在自定义语音数据集上微调基础模型,创建具有指令跟随能力的持久语音身份 - 内置 LoRA 预设 - 开箱即用的预训练语音适配器,可直接分配给角色 - 数据集生成器 - 交互式工具,用于创建 LoRA 训练数据集,支持逐样本的文本、情感和音频预览 - 批量处理 - 同时生成数十个分块,吞吐量达实时速度的3-6倍 - 编解码编译 - 可选的 torch.compile 优化,批量解码速度提升3-4倍 - 非语言声音 - LLM 生成自然发声(“Ahh!”、“Mmm…”、“Haha!”),附带上下文感知的指令方向 - 自然停顿 - 不同说话人之间可配置静音(默认500ms),同一说话人片段之间默认250ms ### Web UI 编辑器 - 简洁界面 - 5步核心流程(设置、脚本、语音、编辑器、结果)以及高级工具(设计师、数据集、训练) - 分块编辑器 - 可编辑任意语句的说话人、文本和指令 - 选择性重新生成 - 单独重新渲染某些分块,无需重新生成全部内容 - 批量处理 - 优化的批量渲染,子批处理实现高效 GPU 利用率 - 实时进度 - 所有操作的实时日志和状态跟踪 - 音频预览 - 播放单个分块或按顺序预览整本有声书 - 脚本库 - 保存和加载带语音配置的已标注脚本 ### 导出选项 - 合并有声书 - 单个 MP3 文件,包含所有语音和自然停顿 - 独立语音行 - 每句一个单独的 MP3 文件,适合 DAW 编辑(Audacity 等) - Audacity 导出 - 一键压缩包,包含每个说话人的 WAV 音轨、LOF 项目文件和标签,支持自动多轨导入到 Audacity - M4B 有声书 - 带章节标记的 M4B(AAC)格式,支持逐块或自动检测章节标记,兼容有声书播放器(Audiobookshelf、Apple Books、VLC 等) ## 系统要求 - Pinokio (https://pinokio.computer/) - LLM 服务器(任选其一): - LM Studio (https://lmstudio.ai/)(本地) - 推荐:Qwen3 或类似模型 - Ollama (https://ollama.ai/)(本地) - OpenAI API (https://platform.openai.com/)(云端) - 任何兼容 OpenAI 的 API - GPU: 最低 8 GB VRAM,推荐 16 GB 或以上 —— 请参阅下方兼容性表格 - 每个 TTS 模型占用约 3.4 GB;剩余 VRAM 决定批处理大小 - 所有平台均支持 CPU 模式,但速度显著降低 - RAM: 推荐 16 GB(最低 8 GB) - 磁盘: 约 20 GB(8 GB 用于 venv/PyTorch,约 7 GB 用于模型权重,以及音频工作空间) ### GPU 兼容性 | GPU | 操作系统 | 状态 | 驱动要求 | 备注 | |—–|———|——|———|——| | NVIDIA | Windows | 完整支持 | 驱动 550+ (CUDA 12.8) | 包含 Flash attention,加速编码 | | NVIDIA | Linux | 完整支持 | 驱动 550+ (CUDA 12.8) | 包含 Flash attention + triton | | AMD | Linux | 完整支持 | ROCm 6.3+ | 自动应用 ROCm 优化 | | AMD | Windows | 仅 CPU | 无 | 不支持 GPU 加速——应用在 CPU 模式下运行。如需 AMD 的 GPU 加速,请使用 Linux | | Apple Silicon | macOS | 仅 CPU | 无 | 目前不支持 MPS 加速。可用但速度慢 | | Intel | macOS | 仅 CPU | 无 | | > 注意: 无需外部 TTS 服务器。Alexandria 包含内置的 Qwen3-TTS 引擎,可直接加载模型。模型权重在首次使用时自动下载(每个模型变体约 3.5 GB)。 > 文档: 如需深入了解语音类型、LoRA 训练、批量生成等,请参阅 Wiki (https://github.com/Finrandojin/alexandria-audiobook/wiki)。 ## 安装 ### 选项 A:Pinokio(推荐) 1. 安装 Pinokio (https://pinokio.computer/)(如尚未安装) 2. 在 Pinokio 上打开 Alexandria:通过 Pinokio 安装 (https://beta.pinokio.co/apps/github-com-finrandojin-alexandria-audiobook) - 或手动操作:在 Pinokio 中点击 下载,粘贴 https://github.com/Finrandojin/alexandria-audiobook 3. 点击 安装 以设置依赖 4. 点击 启动 以打开 Web 界面 ### 选项 B:Google Colab(无需安装) 没有 GPU 或操作系统不合适?在浏览器中使用免费的 T4 GPU 运行 Alexandria: 在 Colab 中打开 (https://colab.research.google.com/github/Finrandojin/alexandria-audiobook/blob/main/alexandria_colab.ipynb) 需要一个免费的 ngrok 账号 (https://dashboard.ngrok.com/signup) 来建立 Web UI 隧道。请参阅笔记本中的完整说明。 ### 选项 C:Docker(NVIDIA GPU) 适用于集成到自动化流水线或服务器部署: bash git clone https://github.com/Finrandojin/alexandria-audiobook.git cd alexandria-audiobook docker compose up --build 需要 Docker (https://docs.docker.com/get-docker/) 和 NVIDIA Container Toolkit (https://docs.nvidia.com/datacenter/cloud-native/container-toolkit/install-guide.html)。Web UI 可通过 http://localhost:4200 访问。TTS 模型在首次使用时下载,并缓存在 Docker 卷中。用户数据(上传文件、语音配置、训练的 LoRA 适配器、音频输出)通过绑定挂载到项目目录来持久化。 ## 首次启动——期待什么 如果您是第一次运行 Alexandria,请先阅读此部分。 ### 1. 您需要先运行一个 LLM 服务器 Alexandria 不包含 LLM —— 它通过 API 连接到外部 LLM。在生成脚本之前,您必须运行以下其中之一: | 服务器 | 默认 URL | 安装方式 | |––––|———|———| | LM Studio (https://lmstudio.ai/) | http://localhost:1234/v1 | 下载、加载模型、启动服务器 | | Ollama (https://ollama.ai/) | http://localhost:11434/v1 | ollama run qwen3 | | OpenAI API (https://platform.openai.com/) | https://api.openai.com/v1 | 获取 API 密钥 | 如果在点击“生成脚本”时 LLM 服务器未运行,生成将失败。请在 Pinokio 终端中查看错误详情。 ### 2. 首次 TTS 生成下载约 3.5 GB TTS 模型不包含在安装包中。它们会在您首次生成音频时自动从 Hugging Face 下载。这属于正常现象: - 每个模型变体约 3.5 GB(CustomVoice、Base/Clone、VoiceDesign) - 只会下载您使用的变体(大多数用户从 CustomVoice 开始) - 下载在后台进行——请查看 Pinokio 终端以了解进度 - 在此期间 Web UI 可能看似卡住。实际上并没有——它在等待下载完成 - 首次下载后,模型会缓存在本地,加载仅需几秒 > 提示: 如果下载似乎卡住,请检查您的网络连接。如果失败,请重启应用并重试——它将从断点处继续下载。 ### 3. 首次批处理有额外预热时间 会话中的首次批处理生成需要比后续更长时间: - MIOpen 自动调优(AMD GPU):GPU 内核优化器每会话运行一次,增加 30-60 秒 - 编解码编译(如果启用):一次性约 30-60 秒预热,之后所有批处理速度提升 3-4 倍 - 这是预期行为。 首次批处理后,生成速度将稳定下来 ### 4. VRAM 决定您能做什么 | 可用 VRAM | 适用场景 | |–––––|———| | 8 GB | 一次处理一个模型,小批次(2-5 个分块),可能需要 CPU 卸载 | | 16 GB | 大多数情况舒适使用,批次规模 10-20 个分块 | | 24 GB+ | 全速运行,批次规模 40-60 个分块,开启编解码编译 | - 如果 VRAM 不足,请在“设置”选项卡中减少并行工作数或每批次最大字符数 - 生成前关闭其他 GPU 应用(游戏、其他 AI 工具) - 切换语音类型(Custom → Clone → LoRA)会卸载并重新加载模型,临时释放 VRAM ### 5. 出问题时应查看哪里 Web UI 显示高级状态,但详细日志在 Pinokio 终端中: - 点击 Pinokio 侧边栏中的终端查看实时输出 - 模型加载、下载进度、VRAM 估算和错误信息都会显示在此处 - 如果 UI 中生成无声失败,终端会显示原因 常见问题及解决方案,请参阅故障排除 (https://github.com/Finrandojin/alexandria-audiobook/wiki/Troubleshooting)。 — ## 快速入门 界面分为 5 步核心流程(绿色标签页,带编号)和高级工具(蓝色标签页,无编号)。只需核心流程即可生成有声书。 ### 核心流程 第 1 步 — 设置 配置 LLM 连接和 TTS 引擎。您至少需要: - LLM Base URL:http://localhost:1234/v1(LM Studio)或 http://localhost:11434/v1(Ollama) - LLM API Key:您的 API 密钥(本地服务器使用 local) - LLM Model Name:要使用的模型(例如 qwen2.5-14b) - TTS Mode:local(内置,推荐)—— 直接加载模型,无需外部服务器 - 完成后点击保存配置 第 2 步 — 脚本 - 使用文件选择器选择您的书籍文件(.txt、.md 或 .epub)——它会自动上传 - 点击生成标注脚本——这将把书籍发送给您的 LLM,将其拆分为带有说话人标签和语音指令的标注分块 - (可选) 如果生成的脚本有问题,点击审查脚本——这会运行第二轮 LLM 处理以修复说话人归因错误或格式问题 - 您可以使用下方的“保存”功能保存脚本以备后用 第 3 步 — 语音 脚本中检测到的每个角色都会获得一个语音卡片。对于每个说话人: - 选择语音类型:Custom Voice(最简单)、Clone Voice、LoRA Voice 或 Voice Design - 对于 Custom Voice,从 9 个预设中选择(Ryan、Serena、Aiden 等),并可选择性设置角色风格(例如“浓重的苏格兰口音”) - 生成角色——点击让 LLM 分析脚本,为每个角色创建语音描述,生成参考音频,并自动分配克隆语音。可切换“高级”选项以控制批次大小。这是为所有角色分配独特语音的最快方式 - 说话人别名——在任何语音卡片的“别名自”下拉菜单中,将说话人映射到另一个角色的语音(例如将“YOUNG ELENA”设置为“ELENA”的别名)。别名说话人在生成时使用目标角色的语音配置 - 更改会自动保存 —— 请参阅语音类型 (https://github.com/Finrandojin/alexandria-audiobook/wiki/Voice-Types) 以了解每种类型的指南 第 4 步 — 编辑器 - 点击渲染待处理以批量生成所有分块的音频 - 收听单个分块,或点击播放序列以按顺序预览 - 内联编辑任意分块的文本、说话人或指令,并单独重新生成 - 满意后,点击合并全部以将所有内容组合成最终有声书 第 5 步 — 结果 - 在浏览器中收听完成的有声书 - 下载为 MP3,或点击导出到 Audacity 以获取每个说话人的 WAV 音轨 ### 高级工具(可选) 这些标签页面向希望更精细控制语音创建的高级用户: - 设计师——通过文字描述创建新语音(例如“声音温暖、略带沙哑的老妇人”)。保存后可在“语音”标签页中用作克隆参考 - 数据集——交互式构建 LoRA 训练数据集,一次一个样本,并带有音频预览 - 训练——在语音数据集上训练 LoRA 适配器,创建遵循指令方向的持久语音身份 ## 网页界面 ### 设置标签页 配置 LLM 和 TTS 引擎的连接。 TTS 设置: - 模式 - local(内置引擎)或 external(连接到 Gradio 服务器) - 设备 - auto(推荐)、cuda、cpu 或 mps - 语言 - TTS 合成语言:英语(默认)、中文、法语、德语、意大利语、日语、韩语、葡萄牙语、俄语、西班牙语,或自动(让模型检测) - 并行工作数 - 快速批量渲染的批次大小(数值越高,VRAM 使用越多) - 批处理种子 - 固定种子以实现可重现的批处理输出(留空则为随机) - 编译编解码器 - 启用 torch.compile 以将批量解码速度提升 3-4 倍(首次生成增加约 30-60 秒预热) - 子批处理 - 根据文本长度拆分批次,减少填充消耗的 GPU 算力(默认启用) - 最小子批次大小 - 允许拆分前每个子批次的最小分块数(默认:4) - 长度比率 - 最长/最短文本长度比的最大值,超过此值将强制拆分批次(默认:5) - 说话人切换停顿 - 合并时不同说话人之间的静音毫秒数(默认:500) - 同一说话人停顿 - 合并时同一说话人连续时的静音毫秒数(默认:250) 提示设置(高级): - 生成设置 - LLM 响应的分块大小和最大 token 数 - LLM 采样参数 - 温度、Top P、Top K、Min P 和存在惩罚 - 禁用 token - 以逗号分隔的 token 列表,禁止在 LLM 输出中出现(用于禁用如 GLM4、DeepSeek-R1 等模型的思考模式) - 提示自定义 - 用于脚本生成的系统提示和用户提示。默认值从 default_prompts.txt 加载,可在 UI 中按会话自定义。点击“重置为默认”可重新加载基于文件的默认值(无需重启应用即可拾取编辑) ### 脚本标签页 上传文本文件(.txt、.md 或 .epub)并生成标注脚本。EPUB 文件会自动转换。
相似文章
@eladgil: 对与 @IvankaTrump 合作的 Alexandria 项目非常兴奋。用 AI 翻译 1000 本世界上最伟大的书籍,以带来广泛的访问…
Elad Gil 和 Ivanka Trump 正在启动 Alexandria 项目,利用 AI 将 1000 本伟大的公共领域书籍翻译成每一种主要语言,以文本、有声书和聊天功能的形式免费开放。
@tom_doerr: 以70倍实时速度转录音频 https://github.com/m-bain/whisperX
WhisperX是一个用于快速自动语音识别的工具,提供词级时间戳和说话人分离,使用Whisper large-v2实现70倍实时转录。
@0x0SojalSec: 别再为ElevenLabs或云端TTS付费了。只需3秒即可在笔记本电脑上完全本地克隆声音,将你的文档转…
一个免费、完全本地的语音克隆和TTS工具,由Qwen3-TTS和Kokoro驱动,通过MLX在Apple Silicon上运行,无需云服务即可从PDF生成工作室级有声书。
@tom_doerr: 零样本语音克隆支持30种语言 https://github.com/sunnyxrxrx/X-Voice…
X-Voice 是一个基于流匹配的多语言文本转语音系统,支持跨30种语言的零样本语音克隆,并提供开源代码、模型及演示。
Amazon 的新 Alexa+ 功能可生成播客剧集
Amazon 宣布推出名为 Alexa Podcasts 的新 Alexa+ 功能,可利用 AI 生成任意主题的播客剧集,提供自定义时长和语调的选项,由 AI 主播声音进行叙述。