如何把 EPUB 变成带同步字幕的有声书:abogen 完整上手指南
【免费下载链接】abogenGenerate audiobooks from EPUBs, PDFs and text with synchronized captions.项目地址: https://gitcode.com/GitHub_Trending/ab/abogen
把一本 200 页的 EPUB 拖进 abogen,这款开源有声书生成工具会在几分钟后吐出一份带章节、带同步字幕的 M4B 音频,整个过程不用手动剪辑任何一段声音。它基于 Kokoro-82M 语音合成模型,把 EPUB、PDF、纯文本、Markdown 以及字幕文件读成自然语音,同时生成与发音逐句对齐的字幕;也支持 GPU 加速,让长文档的批量 TTS 转换不必等太久。
abogen 是什么:把文档读成有声书
这一节回答"它到底能干什么"。abogen 把一份电子文档转成可听、可看字幕的有声书文件:输入是ePub、PDF、.txt、.md、.srt、.ass、.vtt,输出是带同步字幕的音频,格式可选 WAV、FLAC、MP3、OPUS,以及带章节标记的 M4B。它提供两套界面——桌面应用abogen(PyQt6)和 Web 界面abogen-web(Flask,默认端口 8808),后者额外带 Supertonic TTS、LLM 文本标准化和 Audiobookshelf 集成。
🚀 部署方式对比:Windows、Linux、macOS、Docker
这一节解决"装到不同系统上要敲哪些命令"。四条路线并列如下,核心差别只在 espeak-ng 这个发音引擎的来源,以及 GPU 加速包的不同。
| 平台 | 前置依赖 | 安装命令 | 启动方式 |
|---|---|---|---|
| Windows | espeak-ng(下载.msi安装) | uv tool install --python 3.12 abogen[cuda],或双击WINDOWS_INSTALL.bat自动装全部环境 | abogen |
| Linux | sudo apt install espeak-ng(Debian/Ubuntu) | uv tool install --python 3.12 abogen;AMD 卡改用abogen[rocm] | abogen/abogen-web |
| macOS | brew install espeak-ng | uv tool install --python 3.13 abogen(Apple 芯片)或--python 3.12(Intel) | abogen/abogen-web |
| Docker | Docker | docker build -t abogen .,再用docker run挂卷并映射 8808 端口 | http://localhost:8808 |
Docker 路线适合固定环境或团队共用,上传文件落在/data/uploads,产物落在/data/outputs:
docker build -t abogen . docker run --rm -p 8808:8808 -v ~/abogen-data:/data --name abogen abogen注意 Python 版本需落在 3.10–3.12 区间,uv安装时用--python参数显式指定即可。
一次完整转换:从文档到带字幕的有声书
这一节带你走一遍真实流程,而不是罗列功能开关。
拿到文件后,把它拖进输入框(或在 Web 界面用上传按钮),EPUB/PDF/Markdown 会被先转成带章节标记的文本并缓存在本地。接着在配置区做四件事:设语速、选音色(或加载一个混音 profile)、定字幕粒度、选输出格式与保存位置。音色用"语言码 + 性别码"两个字母表示,例如a是美式英语、b是英式英语、e是西班牙语、f是法语、p是巴西葡萄牙语、z是普通话,第二字母m/f代表男女声。点开始后,后台按章节合成、拼接并写出字幕,任务完成即可在队列里下载音频与字幕两份文件。
核心参数速查
这一节把最常调的几项整理成表,方便配置时对照。
| 参数 | 取值 / 可选值 | 默认 | 说明 |
|---|---|---|---|
| 语速 Speed | 0.1x–2.0x | 1.0x | 过高过低都会让语音变形,正常语速听感最稳 |
| 音色 Voice | 语言码 +m/f | — | 如am(美式男声)、bf(英式女声) |
| 字幕粒度 | Off / Line / Sentence / Sentence+Comma / Sentence+Highlight / 1–3 words | Sentence | 词级(1–3 words)仅英语可用 |
| 字幕输出格式 | SRT / ASS(宽/窄/居中宽/居中窄) | SRT | 配视频用 ASS 更贴合 |
| 音频格式 | WAV / FLAC / MP3 / OPUS / M4B | — | M4B 带章节;OPUS 压缩比最高;WAV 保真 |
| 章节间静音 | 秒 | 0 | 合并版里各章之间的停顿时长 |
🔧 进阶能力:按需打开
以下能力默认不占主流程,需要时再启用。
如果你要批量处理多份文件,用队列模式:把.txt与字幕文件直接拖进队列列表,EPUB/PDF/Markdown 从主窗口点"Add to Queue"。每个文件保留加入时的配置;勾选"Override item settings with current selection"可让整队统一套用当前主窗口参数。
如果你想要一个独属音色,打开 Voice Mixer:给多个语音模型分配权重、试听后存成 profile,下次直接调用。
如果你要 GPU 加速,装对应 CUDA 版本即可:NVIDIA 卡在 Windows/Linux 用abogen[cuda](旧驱动换[cuda126],新驱动换[cuda130]);AMD 卡只能在 Linux 上用abogen[rocm],Windows 不支持。
如果你要按章节拆分、或出错时只重转某一章,靠章节标记<<CHAPTER_MARKER:章节标题>>;处理 EPUB/PDF/Markdown 时它会自动生成,纯文本可手动写入。
如果你需要精确控制每段何时开口,用时间戳文本(HH:MM:SS或带毫秒),此时字幕粒度设置会被忽略。
如果要把成品推到播放库,M4B 支持写入元数据标签,Web 界面还能直连 Audiobookshelf。
常见现象与排查
这一节合并了报错与性能问题,统一按"现象 → 原因 → 解法"给出,避免逐条问答。
现象:启动提示CUDA GPU is not available. Using CPU。原因:PyTorch 没匹配到 GPU 版本,回退到 CPU;Windows 上只支持 NVIDIA,AMD 需 Linux + ROCm。解法:按驱动重装对应 CUDA 的 torch,或用uv换装abogen[cuda126]/abogen[cuda130];CPU 也能跑,只是更慢。
现象:Linux 提示abogen-cli is installed in ~/.local/bin which is not on PATH。原因:安装目录没进 PATH。解法:把~/.local/bin追加进~/.bashrc并source生效。
现象:安装时报No matching distribution found。原因:当前 Python 不在 3.10–3.12 区间。解法:换用支持的版本,或用uv tool install --python 3.12 abogen让 uv 自行管理版本。
现象:Windows 报[WinError 1114] A dynamic link library (DLL) initialization routine failed。原因:torch 与 CUDA 环境不匹配,常见于无 GPU 的虚拟机。解法:用--force-reinstall装与驱动匹配的cu128版 torch。
现象:非英语下词级字幕(1–3 words)不生效。原因:Kokoro 只为英语提供时间戳 token。解法:其他语言改用句级或逗号级字幕模式。
现象:日语没有声音。原因:Kokoro 的日语需要额外依赖。解法:安装日语对应的文本处理依赖后再试。
参考目录
源码位于 abogen/,桌面与 Web 两套界面、TTS 插件架构(abogen/tts_plugin/)与内置的 kokoro、supertonic 插件都在其中;上手与架构细节见 docs/。
【免费下载链接】abogenGenerate audiobooks from EPUBs, PDFs and text with synchronized captions.项目地址: https://gitcode.com/GitHub_Trending/ab/abogen
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考