☰
新手指南:用 abogen 把一本 EPUB 变成带字幕的有声书
2026/9/26 10:07:25 网站建设 项目流程

新手指南:用 abogen 把一本 EPUB 变成带字幕的有声书

【免费下载链接】abogenGenerate audiobooks from EPUBs, PDFs and text with synchronized captions.项目地址: https://gitcode.com/GitHub_Trending/ab/abogen

abogen 是一款开源的文本转语音工具,能把 EPUB、PDF 和文本文件合成为带同步字幕的有声书。这篇笔记围绕一个具体目标展开:拿一本电子书,产出一套能直接放进播放器、字幕和语音逐句对齐的有声书文件。过程中会依次解决选声音、调字幕粒度、批量排队和部署方式这几个问题。

它能吃什么、吐出什么

先对齐输入输出,避免中途才发现格式不对。输入支持 EPUB、PDF、TXT、MD 四种文档,以及 SRT、ASS、VTT 三种字幕文件;语音合成基于 Kokoro-82M 模型。输出侧,音频可选 WAV、FLAC、MP3、OPUS(压缩率最好)和 M4B(带章节信息,适合有声书播放器);字幕输出可选 SRT 或多种 ASS 排版样式。入口有两个:桌面版和 Web 版,能力基本重叠,Web 版功能更新一些。

第一本有声书:从桌面版开始

这一节完成最小闭环:一个文件进去,音频和字幕出来。

在终端运行abogen命令启动桌面界面(PyQt6),然后:

  1. 把 EPUB 拖进输入框,或在内置编辑器里直接粘贴文本;
  2. 设置四个参数:语速(0.1x 到 2.0x)、朗读声音、字幕粒度、输出格式与保存位置(可存到源文件旁、桌面或指定文件夹);
  3. 点击 Start,等待完成。

官方演示里,约 3000 字符的文本在一台 RTX 2060 笔记本上用了 11 秒,产出 3 分 28 秒的音频。没有独显时用 CPU 也能跑,只是慢一些。

选声音:两位编码和语音混合器

声音选择用两位字母编码:第一位是语言,第二位是 m(男声)或 f(女声)。目前已覆盖的语种:

编码语言
a美式英语
b英式英语
e西班牙语
f法语
h印地语
i意大利语
j日语
p巴西葡萄牙语
z普通话

开始前可以先点语音预览试听。如果现成声音都不合意,🎙️ 打开语音混合器,拖动多个声音模型的权重,混出一个自定义声音并存为 profile,下次直接调用:

字幕怎么和语音对齐

字幕粒度决定每条字幕包含多少内容,可选项从"关闭"到"1 词、2 词、3 词":行、句、句+逗号、句+高亮,以及按词数分条。两个事实值得先知道:

  • 逐词字幕目前只对英文有效,因为 Kokoro 只给英文输出词级时间戳;其他语言走句级或逗号级回退,效果是整句高亮;
  • 生成的字幕是独立文件(SRT 或 ASS),播放音频时挂载即可。

播放建议用 MPV,它能在没有视频轨的情况下显示字幕,README 里附了一份可直接使用的 mpv.conf 配置。

批量队列管理:一次排多本书

📚 要转的文件超过一本时,用队列模式统一管理。文本和字幕文件可以直接在队列管理器里添加,EPUB、PDF、MD 则从主窗口输入框点"Add to Queue"。机制上有三点实用:

  • 每个条目冻结入队时的配置,之后改主窗口设置不影响已排队的文件;悬停条目可查看它保存的配置;
  • 打开"用当前选择覆盖条目设置"选项,可强制整个队列统一用当前配置;
  • 队列按顺序自动处理,逐条产出音频和字幕。

Web 版 abogen-web:远程操作与容器部署

跑abogen-web命令后,浏览器打开http://localhost:8808,流程变成:上传文档 → 选声音、语言、语速、字幕样式、输出格式 → 创建任务。任务立刻出现在队列中,进度和日志实时刷新,可随时取消或删除,完成后下载音频与字幕。

Web 版还多了几项桌面版尚未整合的能力:Supertonic TTS 引擎、LLM 辅助文本规范化(处理复杂的撇号和缩写)、把成品有声书直接推送到 Audiobookshelf 书库。

偏好容器化的话,仓库根目录带docker-compose.yaml,装了 NVIDIA Container Toolkit 后执行docker compose up -d --build即可,GPU 默认启用;纯 CPU 部署按 README 说明注释掉相关配置块。

章节标记与 M4B 元数据

这一节解决两个进阶需求:按章节分文件、给播放器写书名作者。

  • 章节标记:处理 EPUB、PDF、MD 时,abogen 在缓存的文本里自动插入<<CHAPTER_MARKER:章节名>>标记。它的作用是把文本拆成独立音频文件,某章出错时只重跑那一章。纯文本文件也可以手写这种标记,效果相同;
  • 元数据标签:<<METADATA_TITLE:...>>、<<METADATA_ARTIST:...>>、<<METADATA_COVER_PATH:...>>等标签放在文本开头,会被写入 M4B 有声书的元信息。处理 EPUB/PDF 时封面会自动提取并填好;
  • 带时间戳的文本:文件里出现HH:MM:SS格式的时间戳时,abogen 会询问是否用它控制朗读节奏,适合脚本和解说词这类需要精确时点的文本。

安装速查:espeak-ng 与 uv

🐳 前面几节默认你已经装好了,这里集中交代安装。前置依赖只有一个 espeak-ng:Windows 从 espeak-ng 的 release 页装 .msi,macOS 用brew install espeak-ng,Linux 用 apt/pacman/dnf。然后是 abogen 本体,推荐用 uv(要求 Python 3.10–3.12):

uv tool install --python 3.12 abogen

NVIDIA 显卡的 Windows 用户把命令换成uv tool install --python 3.12 abogen[cuda]并附加 PyTorch 的 CUDA 索引;AMD 显卡需要 Linux 加abogen[rocm]扩展。也支持直接pip install abogen。

想从源码跑(开发或贡献代码),克隆仓库后装开发依赖即可:

git clone https://gitcode.com/GitHub_Trending/ab/abogen

进入目录执行pip install -e .[dev]就能启动桌面版和 Web 版,docs/getting-started.md 里有完整的开发环境步骤。

遇到问题看哪里

📚 卡住时按这个顺序排查:

  • 用abogen-cli从命令行启动,能打出详细报错信息,比图形界面好定位问题;
  • CUDA 不可用、PATH 警告、"No matching distribution found" 等常见故障,README 的 Common Issues 一节有逐条的修复命令;
  • 长期参考:docs/ 目录下的 getting-started.md(入门)、developer-guide.md(插件架构)、testing.md(测试),以及 tts-plugin-architecture.md(TTS 插件设计)。

【免费下载链接】abogenGenerate audiobooks from EPUBs, PDFs and text with synchronized captions.项目地址: https://gitcode.com/GitHub_Trending/ab/abogen

创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询