abogen

GitHub
4.3k 265 中等 1 次阅读 昨天MIT语言模型开发框架音频
AI 解读 由 AI 自动生成,仅供参考

abogen 是一款强大的开源工具,能轻松将 EPUB、PDF、纯文本或 Markdown 文件转化为高质量的有声书,并自动生成完美同步的字幕。它主要解决了传统文字转语音流程繁琐、音画不同步以及难以批量处理文档的痛点,让用户能在几秒钟内获得自然流畅的音频内容。

无论是希望将电子书变为有声读物的普通读者,还是需要为 Instagram、YouTube、TikTok 等平台快速制作配音视频的内容创作者,abogen 都能提供极大的便利。同时,由于其支持命令行调用和灵活的部署方式,开发者和研究人员也能将其集成到自动化工作流中。

abogen 的核心技术亮点在于采用了先进的 Kokoro-82M 语音模型,确保生成的语音听起来自然逼真,而非机械生硬。此外,它在生成音频的同时会自动产出时间轴精准的字幕文件,极大降低了后期制作门槛。工具跨平台支持 Windows、Linux 和 macOS,并提供了一键安装脚本,即使没有深厚的编程背景,用户也能快速上手体验高效的文本转语音服务。

使用场景

一位独立知识博主急需将刚出版的 EPUB 格式行业报告转化为短视频素材,以便在抖音和 YouTube 上快速发布系列解说视频。

没有 abogen 时

  • 流程割裂繁琐:需要先用转换器提取文本,再找单独的 TTS 工具生成音频,最后用字幕软件手动对齐时间轴,三个步骤极易出错。
  • 音质感差且昂贵:免费语音合成听起来像机器人,缺乏情感;若追求自然拟人效果,往往需付费购买商业 API 或聘请专业配音员。
  • 同步耗时巨大:为确保口播内容与画面字幕精准匹配,通常需要人工逐句调整字幕时间点,处理一章内容就要耗费数小时。
  • 格式兼容困难:面对 PDF 或 Markdown 源文件,经常遇到排版错乱、公式识别错误等问题,前期清洗数据就让人头疼。

使用 abogen 后

  • 一键全自动流转:直接导入 EPUB 或 PDF 文件,abogen 自动完成文本解析、高质量语音生成及字幕同步,全程无需人工干预。
  • 拟人化语音输出:内置 Kokoro-82M 模型,生成的音频语调自然、呼吸感强,听感接近真人主播,显著提升观众留存率。
  • 字幕完美卡点:生成的音频自带毫秒级精准同步的字幕文件(SRT/VTT),直接导入剪辑软件即可使用,彻底告别手动对齐。
  • 多格式无缝支持:原生支持 EPUB、PDF、Markdown 等多种格式,智能保留段落结构,让技术文档也能轻松变身有声书。

abogen 将原本需要半天的人工制作流程压缩至几分钟,让创作者能专注于内容策划而非繁琐的技术实现。

运行环境要求

操作系统
  • Windows
  • macOS
  • Linux
GPU
  • 非必需(支持 CPU)
  • NVIDIA GPU 支持 CUDA 12.6/12.8/13.0
  • AMD GPU 仅在 Linux 上支持 ROCm 6.4
  • Windows 不支持 AMD GPU 加速
内存

未说明

依赖
notes1. 所有平台必须先安装系统级依赖 'espeak-ng'。2. Windows 用户若使用脚本安装可自动配置 Python 和 CUDA 环境,否则需手动安装 espeak-ng。3. macOS Silicon (M1/M2) 需安装 kokoro 的开发版以支持 MPS 加速,且需注意 numpy 版本小于 2。4. AMD 显卡用户在 Windows 下无法使用 GPU 加速,必须切换至 Linux。5. 提供桌面版 (PyQt6) 和 Web 版 (Flask) 两种界面,Web 版功能更新。
python3.12 (macOS Silicon 推荐 3.13)
torch
kokoro-82M
espeak-ng
PyQt6
Flask
numpy<2
abogen hero image

快速开始

abogen

构建状态 GitHub 发布 Abogen PyPi Python 版本兼容性 操作系统 PyPi 总下载量 代码风格:black 许可证:MIT

denizsafak%2Fabogen | Trendshift

Abogen 是一款强大的文本转语音转换工具,可轻松将 ePub、PDF、文本、Markdown 或字幕文件在几秒钟内转换为高质量音频,并附带同步的字幕。您可以使用它来制作有声读物、为 Instagram、YouTube、TikTok 或任何需要自然语音合成的项目添加旁白,只需借助 Kokoro-82M 即可。

演示

https://github.com/user-attachments/assets/094ba3df-7d66-494a-bc31-0e4b41d0b865

此演示仅用时 5 秒生成,输出约 1 分钟的音频及完美同步的字幕。如需制作类似视频,请参阅 演示指南

如何安装? Abogen 兼容 PyPi Python 版本

Windows

前往 espeak-ng 最新版本,下载并运行 *.msi 文件。

选项 1:使用脚本安装

  1. 下载 仓库
  2. 解压 ZIP 文件
  3. 双击运行 WINDOWS_INSTALL.bat

此方法会自动完成所有操作——包括在独立环境中安装所有依赖项(含 CUDA),无需单独安装 Python。(您仍需安装 espeak-ng。)

[!注意] 您无需单独安装 Python,脚本会自动为您安装。

选项 2:使用 uv 安装

首先,如果您尚未安装,请先 安装 uv

# 适用于 NVIDIA 显卡(CUDA 12.8)——推荐
uv tool install --python 3.12 abogen[cuda] --extra-index-url https://download.pytorch.org/whl/cu128 --index-strategy unsafe-best-match

# 适用于 NVIDIA 显卡(CUDA 12.6)——较旧驱动
uv tool install --python 3.12 abogen[cuda126] --extra-index-url https://download.pytorch.org/whl/cu126 --index-strategy unsafe-best-match

# 适用于 NVIDIA 显卡(CUDA 13.0)——较新驱动
uv tool install --python 3.12 abogen[cuda130] --extra-index-url https://download.pytorch.org/whl/cu130 --index-strategy unsafe-best-match

# 适用于 AMD 显卡或无显卡——如果您拥有 AMD 显卡,由于 ROCm 在 Windows 上不可用,您需要使用 Linux 来实现 GPU 加速。
uv tool install --python 3.12 abogen
替代方案:使用 pip 安装(点击展开)
# 创建虚拟环境(可选)
mkdir abogen && cd abogen
python -m venv venv
venv\Scripts\activate

# 对于 NVIDIA 显卡:
# 我们需要使用较旧版本的 PyTorch(2.8.0),直到该问题修复:https://github.com/pytorch/pytorch/issues/166628
pip install torch==2.8.0+cu128 torchvision==0.23.0+cu128 torchaudio==2.8.0 --index-url https://download.pytorch.org/whl/cu128

# 对于 AMD 显卡:
# 目前尚不支持,因为 ROCm 在 Windows 上不可用。如有 AMD 显卡,请使用 Linux。

# 安装 abogen
pip install abogen

Mac

首先,如果您尚未安装,请先 安装 uv

# 安装 espeak-ng
brew install espeak-ng

# 对于 Apple Silicon Mac(M1、M2 等)
uv tool install --python 3.13 abogen --with "kokoro @ git+https://github.com/hexgrad/kokoro.git,numpy<2"

# 对于 Intel Mac
uv tool install --python 3.12 abogen --with "kokoro @ git+https://github.com/hexgrad/kokoro.git,numpy<2"
替代方案:使用 pip 安装(点击展开)
# 安装 espeak-ng
brew install espeak-ng

# 创建虚拟环境(推荐)
mkdir abogen && cd abogen
python3 -m venv venv
source venv/bin/activate

# 安装 abogen
pip3 install abogen

# 对于 Apple Silicon Mac(M1、M2 等)
# 安装 abogen 后,我们需要安装 Kokoro 的开发版,其中包含 MPS 支持。
pip3 install git+https://github.com/hexgrad/kokoro.git

Linux

首先,如果您尚未安装,请先 安装 uv

# 安装 espeak-ng
sudo apt install espeak-ng # Ubuntu/Debian
sudo pacman -S espeak-ng # Arch Linux
sudo dnf install espeak-ng # Fedora

# 对于 NVIDIA 显卡或无显卡——此处无需加入 [cuda]。
uv tool install --python 3.12 abogen

# 对于 AMD 显卡(ROCm 6.4)
uv tool install --python 3.12 abogen[rocm] --extra-index-url https://download.pytorch.org/whl/nightly/rocm6.4 --index-strategy unsafe-best-match
替代方案:使用 pip 安装(点击展开)
# 安装 espeak-ng
sudo apt install espeak-ng # Ubuntu/Debian
sudo pacman -S espeak-ng # Arch Linux
sudo dnf install espeak-ng # Fedora

# 创建虚拟环境(推荐)
mkdir abogen && cd abogen
python3 -m venv venv
source venv/bin/activate

# 安装 abogen
pip3 install abogen

# 对于 NVIDIA 显卡:
# 已经支持,无需单独安装 CUDA。

# 对于 AMD 显卡:

# 安装 abogen 后,我们需要卸载现有的 torch 包
pip3 uninstall torch 
pip3 install --pre torch torchvision torchaudio --index-url https://download.pytorch.org/whl/nightly/rocm6.4

请参阅如何解决“CUDA GPU 不可用。正在使用 CPU”警告?

请参阅如何解决 Linux 中的“WARNING: The script abogen-cli is installed in '/home/username/.local/bin' which is not on PATH”错误?

请参阅如何解决“No matching distribution found”错误?

请参阅如何解决“[WinError 1114] 动态链接库 (DLL) 初始化例程失败”错误?

特别感谢 @hg000125#23 中所做的贡献。正是由于他的工作,才得以支持 AMD GPU。

界面

Abogen 提供两种界面,但目前它们的功能集有所不同。Web UI 包含一些较新的功能,这些功能仍在逐步集成到桌面应用程序中。

命令 界面 功能
abogen PyQt6 桌面 GUI 稳定的核心功能
abogen-web Flask Web UI 核心功能 + Supertonic TTSLLM 归一化Audiobookshelf 集成 等!

注意: Web UI 目前仍在积极开发中。我们正努力将这些新功能整合到 PyQt 桌面应用中。在此之前,Web UI 提供了功能最丰富的体验。

特别感谢 @jeremiahsb 的付出!我对他巨大的贡献(超过 55,000 行代码!)感到非常惊讶,正是这些代码让整个 Web UI 成为了现实。

🖥️ 桌面应用程序(PyQt)

如何运行?

只需运行以下命令即可启动 Abogen 桌面 GUI:

abogen

[!提示] 如果您使用 Windows 安装程序 (WINDOWS_INSTALL.bat) 安装了 Abogen,它应该会在同一文件夹或您的桌面上创建一个快捷方式。您可以直接从那里运行。如果您丢失了快捷方式,Abogen 位于 python_embedded/Scripts/abogen.exe。您可以直接从那里运行。

如何使用?

  1. 将任何 ePub、PDF、文本、Markdown 或字幕文件拖放到界面上(或者使用内置的文本编辑器)
  2. 配置设置:
    • 设置语速
    • 选择语音(或使用语音混合器创建自定义语音)
    • 选择字幕生成样式(按句子、单词等)
    • 选择输出格式
    • 选择保存输出的位置
  3. 点击“开始”

实际操作

这里是 Abogen 的实际操作演示:在这个示例中,它仅用 11 秒就处理了约 3,000 个字符的文本,并将其转换为 3 分 28 秒的音频。而我的设备是一块低端的 RTX 2060 Mobile 笔记本显卡。您的结果可能会因硬件不同而有所差异。

配置

选项 描述
输入框 拖放 ePubPDF.TXT.MD.SRT.ASS.VTT 文件(或使用内置文本编辑器)
队列选项 将多个文件添加到队列中并批量处理,每个文件可单独设置。更多详情请参阅 队列模式
语速 调整语速,范围从 0.1x2.0x
选择语音 语言代码的第一个字母表示语言类型(例如,a 表示美式英语,b 表示英式英语等),第二个字母表示性别,m 代表男声,f 代表女声。
语音混合器 通过混合不同的语音模型并结合个人化配置,创建自定义语音。更多详情请参阅 语音混合器
语音预览 在处理前试听所选语音。
生成字幕 禁用一行一句话一句话+逗号一句话+高亮1个词2个词3个词 等(表示每条字幕包含的词数)
输出语音格式 .WAV.FLAC.MP3.OPUS(最佳压缩)M4B(带章节)
输出字幕格式 可将字幕格式配置为 SRT(标准)ASS(宽版)ASS(窄版)ASS(居中宽版)ASS(居中窄版)
将单个换行符替换为空格 将文本中的单个换行符替换为空格。这对于存在人为换行符的文本非常有用。
保存位置 与输入文件同目录保存保存到桌面选择输出文件夹

特别感谢 @brianxiadong 在 PR #75 中添加了 Markdown 支持。

特别感谢 @jborza 在 PR #10 中实现了章节支持。

特别感谢 @mleg 在 PR #94 中增加了字幕生成中的 一行 选项。

图书处理选项 描述
章节控制 从 ePUB 或 Markdown 文件中选择特定章节,或从 PDF 文件中选择“章节+页码”。
分别保存各章节 将电子书中的每个章节保存为单独的音频文件。
创建合并版本 创建一个包含所有章节的单个音频文件。(如果未启用“分别保存各章节”,则此选项将成为默认行为。)
以项目文件夹和元数据保存 将转换后的文件保存在包含可用元数据文件的项目文件夹中。
菜单选项 描述
主题 使用 系统浅色深色 选项更改应用程序主题。
配置每条字幕的最大词数 设置每条字幕的最大词数。
配置章节间的静音时长 设置章节间静音的时长(单位:秒)。
配置日志窗口的最大行数 设置日志窗口最多显示的行数。
分章节音频格式 将分章节的音频格式配置为 wavflacmp3opus
创建桌面快捷方式 在桌面上创建快捷方式,方便快速访问。
打开配置目录 打开存储配置文件的目录。
打开缓存目录 打开存储已转换文本文件的缓存目录。
清除缓存文件 删除在转换或预览过程中生成的缓存文件。
在字幕间使用静音间隔 通过让语音延续到字幕条目之间的静音间隔,避免不必要的音频加速。简而言之,它会忽略字幕条目的结束时间,直接利用静音空间直到下一条字幕开始。若关闭此选项,则音频会按照字幕中指定的时间间隔进行加速。(适用于字幕文件)
字幕速度调整方式 选择在需要时加速音频的方式:TTS 重新生成(质量更好) 会以更快的速度重新生成音频,而 FFmpeg 时间拉伸(速度更快) 则会快速加速已生成的音频。(适用于字幕文件)
使用 spaCy 进行句子分割 启用此选项后,Abogen 将使用 spaCy 更准确地检测句子边界,而不是仅依靠标点符号(如句号、问号等)来分割句子,从而避免错误地截断“Mr.”或“Dr.”等称谓短语。借助 spaCy,句子划分将更加精准。对于非英语文本,spaCy 会在音频生成 之前 运行以创建句子片段;而对于英语文本,则会在字幕生成 期间 运行,以改善时间同步性和可读性。spaCy 仅在字幕模式为 句子句子+逗号 时使用。如果您更倾向于传统的标点符号分割方法,可以关闭此选项。
预先下载模型和语音以供离线使用 打开一个窗口,显示可用的模型和语音。点击 全部下载 按钮即可下载所有必需的模型和语音,使您能够在完全无网络连接的情况下离线使用 Abogen。
禁用 Kokoro 的互联网访问 阻止 Kokoro 从 HuggingFace Hub 下载模型或语音,适合离线使用。
启动时检查更新 程序启动时自动检查更新。
恢复默认设置 将所有设置重置为默认值。

特别感谢 @robmckinnon 在 PR #65 中添加了“句子+高亮”功能。

语音混合器

通过语音混合器,您可以混合不同的语音模型来创建自定义语音。您可以调整每种语音的权重,并将自定义语音保存为个人配置,以便日后使用。语音混合器让您能够创造出独特且个性化的语音。

特别感谢 @jborza 通过他在 #5 中的贡献,使这一功能成为可能。

队列模式

Abogen 支持队列模式,允许您将多个文件添加到处理队列中。如果您希望一次性转换多个文件,此功能非常有用。

  • 您可以使用队列管理器中的添加文件按钮,或直接将文本文件(.txt)和字幕文件(.srt.ass.vtt)拖放到队列列表中来添加这些文件。要添加 PDF、EPUB 或 Markdown 文件,请使用主窗口中的输入框并单击添加到队列按钮。
  • 队列中的每个文件会保留其添加时所使用的配置设置。之后更改主窗口的配置不会影响已加入队列的文件。
  • 您可以启用用当前选择覆盖项目设置选项,以强制队列中的所有项目使用主窗口中当前选定的配置,从而覆盖它们保存的设置。
  • 您可以通过将鼠标悬停在每个文件上来查看其配置。

Abogen 会自动处理队列中的每个项目,并按照配置保存输出文件。

特别感谢 @jborza 在 PR #35 中添加了队列模式


🌐 Web 应用程序 (WebUI)

如何运行?

运行以下命令启动 Web UI:

abogen-web

然后打开 http://localhost:8808,并将您的文档拖入其中。作业会在后台工作进程中运行,浏览器会自动更新。

使用 Web UI

  1. 上传文档(拖放或使用上传按钮)。
  2. 选择语音、语言、语速、字幕样式和输出格式。
  3. 单击创建作业。该作业会立即出现在队列中。
  4. 实时查看进度和日志更新。完成时下载音频/字幕文件。
  5. 随时取消或删除作业。下载日志以进行故障排除。

多个作业可以按顺序运行;工作进程会依次处理它们。

容器镜像

您可以直接从仓库根目录构建一个轻量级容器镜像:

docker build -t abogen .
mkdir -p ~/abogen-data/uploads ~/abogen-data/outputs
docker run --rm \
  -p 8808:8808 \
  -v ~/abogen-data:/data \
  --name abogen \
  abogen

浏览至 http://localhost:8808。上传的源文件存储在 /data/uploads 中,生成的音频/字幕则显示在 /data/outputs 中。

容器环境变量

变量 默认值 用途
ABOGEN_HOST 0.0.0.0 Flask 服务器的绑定地址
ABOGEN_PORT 8808 HTTP 端口
ABOGEN_DEBUG false 启用 Flask 调试模式
ABOGEN_UPLOAD_ROOT /data/uploads 存储上传文件的目录
ABOGEN_OUTPUT_ROOT /data/outputs 生成音频和字幕的目录(ABOGEN_OUTPUT_DIR 的旧别名)
ABOGEN_OUTPUT_DIR /data/outputs 容器中渲染音频/字幕的路径
ABOGEN_SETTINGS_DIR /config 容器中 JSON 设置/配置的路径
ABOGEN_TEMP_DIR /data/cache(Docker)或平台缓存目录 容器中临时音频工作文件的路径
ABOGEN_UID 1000 容器应以之运行的 UID(与主机用户匹配)
ABOGEN_GID 1000 容器应以之运行的 GID(与主机组匹配)
ABOGEN_LLM_BASE_URL "" 用于填充“设置 → LLM”面板的 OpenAI 兼容端点
ABOGEN_LLM_API_KEY "" 传递给上述端点的 API 密钥
ABOGEN_LLM_MODEL "" 刷新模型列表时默认选择的模型
ABOGEN_LLM_TIMEOUT 30 服务器端 LLM 请求的超时时间(秒)
ABOGEN_LLM_CONTEXT_MODE sentence 默认提示上下文窗口(sentenceparagraphdocument
ABOGEN_LLM_PROMPT "" 种子输入到 UI 中的自定义规范化提示模板

您可以在启动容器时使用 -e VAR=value 来设置这些变量。

要查找本地的 UID/GID 以便在容器内匹配文件权限,请运行:

id -u
id -g

使用这些值填充 .env 文件中的 ABOGEN_UIDABOGEN_GID

通过 Docker Compose 运行时,将 .env 文件中的 ABOGEN_SETTINGS_DIRABOGEN_OUTPUT_DIRABOGEN_TEMP_DIR 设置为您希望挂载到容器中的主机目录。Compose 会将它们分别映射到 /config/data/outputs/data/cache,同时将这些容器内的路径导出给应用程序。非音频缓存(例如 Hugging Face 下载)默认会保留在容器内部的 /tmp/abogen-home/.cache 目录下,因此只有转换过程中的临时数据才会接触到挂载的 ABOGEN_TEMP_DIR。请确保每个主机目录都存在,并且您配置的 UID/GID 对其具有写入权限,然后再启动堆栈。

Docker Compose(默认使用 GPU)

该仓库包含 docker-compose.yaml 文件,默认针对配备 GPU 的主机。安装 NVIDIA Container Toolkit 并运行:

docker compose up -d --build

关键构建/运行参数:

  • TORCH_VERSION – 锁定与您的驱动程序匹配的特定 PyTorch 版本(留空则使用配置索引中的最新版本)。
  • TORCH_INDEX_URL – 当您使用不同的 CUDA 构建时,可更换 PyTorch 下载索引。
  • ABOGEN_DATA – 存储上传/输出文件的主机路径(默认为 ./data)。

仅 CPU 部署:注释掉 compose 文件中的 deploy.resources.reservations.devices 块(以及可选的 runtime: nvidia 行)。Compose 将不再请求 GPU。如果您更喜欢经典 CLI:

docker build -f abogen/Dockerfile -t abogen-gpu .
docker run --rm \
  --gpus all \
  -p 8808:8808 \
  -v ~/abogen-data:/data \
  abogen-gpu

LLM 辅助文本规范化

Abogen 可以将棘手的撇号和缩略形式交由兼容 OpenAI 的大型语言模型处理。您可以从设置 → LLM 中进行配置:

  1. 输入您的端点的基本 URL(Ollama、OpenAI 代理等),如果需要,还需提供 API 密钥。使用服务器根路径(对于 Ollama:http://localhost:11434)——Abogen 会自动附加 /v1/...,但也可以接受已经以 /v1 结尾的输入。
  2. 单击刷新模型加载目录,选择默认模型,并调整超时时间或提示模板。
  3. 使用预览框测试提示,然后保存设置。规范化面板可以使用当前配置合成一段简短的音频预览。

当您在 Docker 或 CI 流水线中运行时,可通过 .env 文件中的 ABOGEN_LLM_* 变量自动填充表单。.env.example 文件包含本地 Ollama 服务器的示例值。

Audiobookshelf 集成

Abogen 可以将完成的有声书直接推送至 Audiobookshelf。您可以在 设置 → 集成 → Audiobookshelf 中进行配置,提供以下信息:

  • 基础 URL – 您的 Audiobookshelf 服务器可通过 HTTPS 访问的源(以及可选的路径前缀),例如 https://abs.example.comhttps://media.example.com/abs。请不要在末尾添加 /api
  • 库 ID – 目标 Audiobookshelf 库的标识符(从 ABS 的库设置页面复制)。
  • 文件夹(名称或 ID) – 该库内的目标文件夹。请准确输入文件夹名称(Abogen 会自动将其解析为正确的 ID),粘贴原始的 folderId,或点击 浏览文件夹 来获取可用文件夹并填充字段。
  • API 令牌 – 在 Audiobookshelf 的 账户 → API 令牌 中生成的个人访问令牌。

连接成功后,您可以为未来的任务启用自动上传,也可以从队列中触发单个上传。

反向代理检查清单(Nginx Proxy Manager)

当 Audiobookshelf 部署在 Nginx Proxy Manager (NPM) 后面时,请确保 API 路径和头部信息能够原封不动地传递到后端:

  1. 创建一个指向您的 ABS 容器或主机的 代理主机(默认转发端口为 13378)。
  2. SSL 选项卡中,启用您的证书,并勾选 强制使用 SSL(如果您仅希望使用 HTTPS)。
  3. 高级 选项卡中,添加以下代码片段,以确保承载令牌、客户端 IP 和大文件上传能够顺利通过代理:
    
    

proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_set_header X-Forwarded-Proto $scheme; proxy_set_header X-Forwarded-Host $host; proxy_set_header X-Forwarded-Port $server_port; proxy_set_header Authorization $http_authorization; client_max_body_size 5g; proxy_read_timeout 300s; proxy_connect_timeout 300s;

4. 禁用 **阻止常见漏洞** 功能(在某些 NPM 版本中,此功能会剥离 Authorization 头部)。
5. 在主代理界面中启用 **WebSockets 支持**(Audiobookshelf 使用它来提供 Web 界面,并保持反向代理配置的一致性)。
6. 如果您在路径前缀下发布 Audiobookshelf(例如 `/abs`),则需添加一个 **自定义位置**,设置 `Location: /abs/`,并将 **转发路径** 设置为 `/`。这样可以去除 `/abs` 前缀,使互联网上的 `/abs/api/...` 在后端变为 `/api/...`。请在 Abogen 的“基础 URL”字段中使用相同的带前缀的 URL。

保存代理主机后,从运行 Abogen 的机器上测试 API:

```bash
curl -i "https://abs.example.com/api/libraries" \
  -H "Authorization: Bearer YOUR_API_TOKEN"

如果仍然收到 Cannot GET /api/... 错误,则说明代理正在重写路径。请再次检查 自定义位置 表格(转发路径 列应为空),并在发出 curl 请求时查看 NPM 的访问日志和错误日志,以确认后端接收到完整的 /api/libraries URL。

如果返回包含库列表的 JSON 响应,则表示代理已正确路由 API 请求。随后,您可以使用 浏览文件夹 功能确认库内容,在 Abogen 的设置中运行 测试连接(验证库并解析文件夹),并在已完成的任务上使用“发送至 Audiobookshelf”按钮。

JSON 端点

需要机器可读的状态更新吗?仪表板会调用一组辅助端点,您可以重复使用:

  • GET /api/jobs/<id> 以 JSON 格式返回作业元数据、进度和日志条目。
  • GET /partials/jobs 以 HTML 格式渲染实时作业列表(htmx 使用此功能进行轮询)。
  • GET /partials/jobs/<id>/logs 仅渲染日志窗口。

更多自动化钩子正在规划中;如果您需要额外的路由,欢迎贡献代码。


核心功能(两者均适用)

关于章节标记

当您处理 ePUB、PDF 或 Markdown 文件时,Abogen 会将它们转换为文本文件,并存储在您的缓存目录中。点击“编辑”时,您实际上是在修改这些转换后的文本文件。在这些文本文件中,您会看到类似如下的标签:

<<CHAPTER_MARKER:章标题>>

这些就是章节标记。它们会在您处理 ePUB、PDF 或 Markdown 文件时,根据您选择的章节自动添加。它们具有重要作用:

  • 允许您将文本按章节分割成单独的音频文件
  • 节省时间,当出现错误时,只需重新处理特定章节,而无需重新处理整个文件

您也可以手动将这些标记添加到纯文本文件中,以获得相同的好处。只需在文本中加入如下内容:

<<CHAPTER_MARKER:引言>>
这是我的文本开头……  

<<CHAPTER_MARKER:正文>> 
这里是另一部分内容……  

当您处理该文本文件时,Abogen 会自动检测到这些标记,并询问您是否要分别保存每个章节,同时创建合并版本。

Abogen 章节标记

关于元数据标签

与章节标记类似,您也可以为 M4B 文件添加元数据标签。这对于支持元数据的有声书播放器非常有用,可以让您添加标题、作者、年份等信息。Abogen 在处理 ePUB、PDF 或 Markdown 文件时会自动添加这些标签,但您也可以手动将其添加到文本文件中。请在文本文件的开头添加元数据标签,格式如下:

<<METADATA_TITLE:标题>>
<<METADATA_ARTIST:作者>>
<<METADATA_ALBUM:专辑标题>>
<<METADATA_YEAR:年份>>
<<METADATA_ALBUM_ARTIST:专辑艺人>>
<<METADATA_COMPOSER:旁白者>>
<<METADATA_GENRE:有声书>>
<<METADATA_COVER_PATH:封面图片路径.jpg>>

注意:METADATA_COVER_PATH 用于将封面图片嵌入生成的 M4B 文件中。Abogen 会自动从 ePUB 和 PDF 文件中提取封面,并为您添加此标签。

关于基于时间戳的文本文件

与将字幕文件转换为音频类似,Abogen 可以自动检测包含 HH:MM:SSHH:MM:SS,msHH:MM:SS.ms 格式时间戳的文本文件。当在您的文本文件中找到时间戳时,Abogen 会询问您是否希望将其用于音频定时。这对于创建需要精确控制每个片段播放时间的旁白、脚本或文字稿非常有用。

请按以下格式编写您的文本文件:

00:00:00
这是第一段文字。

00:00:15
这是第二段文字,从第 15 秒开始。

00:00:45
这是第三段文字,从第 45 秒开始。

重要提示:

  • 时间戳必须采用 HH:MM:SSHH:MM:SS,msHH:MM:SS.ms 格式(例如,00:05:30 表示 5 分 30 秒,00:05:30.500 表示 5 分 30.5 秒)。
  • 毫秒部分是可选的,可提供精确到千分之一秒的时间精度。
  • 第一个时间戳之前的文本内容将自动从 00:00:00 开始。
  • 使用时间戳时,字幕生成模式设置将被忽略。

支持的语言

# 🇺🇸 'a' => 美式英语,🇬🇧 'b' => 英式英语
# 🇪🇸 'e' => 西班牙语 es
# 🇫🇷 'f' => 法语 fr-fr
# 🇮🇳 'h' => 印地语 hi
# 🇮🇹 'i' => 意大利语 it
# 🇯🇵 'j' => 日语:pip install misaki[ja]
# 🇧🇷 'p' => 巴西葡萄牙语 pt-br
# 🇨🇳 'z' => 普通话:pip install misaki[zh]

有关支持的语言和语音的完整列表,请参阅 Kokoro 的 VOICES.md 文件。如需收听示例音频输出,请查看 SAMPLES.md 文件。

请参阅 如何解决日语音频无法正常工作的问题?


使用指南与故障排除

MPV 配置

我强烈建议使用 MPV 播放您的音频文件,因为它即使没有视频轨道也能显示字幕。以下是我的 mpv.conf 配置:

# --- MPV 设置 ---
save-position-on-quit
keep-open=yes
audio-display=no
# --- 字幕 ---
sub-ass-override=no
sub-margin-y=50
sub-margin-x=50
# --- 音质 ---
audio-spdif=ac3,dts,eac3,truehd,dts-hd
audio-channels=auto
audio-samplerate=48000
volume-max=200

类似项目

Abogen 是一个独立项目,但它受到其他项目的启发,并与之有一些相似之处。以下是一些相关项目:

  • audiblez:从电子书生成有声读物。(同时支持命令行和图形界面)
  • autiobooks:自动将 EPUB 文件转换为有声读物。
  • pdf-narrator:轻松将 PDF 和 EPUB 文件转换为有声读物。
  • epub_to_audiobook:EPUB 到有声读物转换工具,专为 Audiobookshelf 优化。
  • ebook2audiobook:利用动态 AI 模型和语音克隆技术,将电子书转换为带有章节和元数据的有声读物。

路线图

  • 添加使用 docling/Tesseract 对 PDF 文件进行 OCR 扫描的功能。
  • 为 .m4a 文件添加章节元数据。(问题 #9,拉取请求 #10
  • 在图形界面上增加对多种语言的支持。
  • 添加语音混合功能,允许混合不同的语音模型。(问题 #1,拉取请求 #5
  • 如果有必要,增加对 kokoro-onnx 的支持。
  • 添加深色模式。

故障排除

如果您在运行 Abogen 时遇到任何问题,请尝试通过命令行启动:

abogen-cli

如果您是通过 Windows 安装程序 (WINDOWS_INSTALL.bat) 安装的,请前往 python_embedded/Scripts 目录并运行:

abogen-cli.exe

这将以命令行模式启动 Abogen,并显示详细的错误信息。请在 Issues 页面上提交新问题,附上错误信息及您的问题描述。

常见问题与解决方案

关于“abogen”这个名字

名字 "abogen" 来自于 "audiobook generator" 的缩写,而这也是这个项目的初衷。

在项目发布之后,我从 社区反馈 中了解到,“abo” 这个前缀在某些地区(尤其是澳大利亚和新西兰)可能会被误解为种族歧视用语。由于英语并非我的母语,在命名时我并没有意识到这一点。

我想明确的是,这个名字仅仅是为了表达其技术含义而取的,并无任何冒犯之意。感谢那些善意指出这一问题的人,这有助于确保项目对所有人保持尊重和友好。

如何解决“CUDA GPU 不可用。正在使用 CPU”警告?

这条消息表示 PyTorch 无法使用您的 GPU,因此回退到了 CPU。在 Windows 系统上,Abogen 仅支持配备 CUDA 的 NVIDIA 显卡。Windows 上不支持 AMD 显卡(AMD 显卡仅在 Linux 系统上通过 ROCm 支持)。尽管 Abogen 仍然可以在 CPU 上运行,但相比支持的 GPU,处理速度会慢很多。

如果您在 Windows 上拥有兼容的 NVIDIA 显卡,但仍看到此警告: 请在 Abogen 文件夹(包含 python_embedded 的文件夹)中打开终端,并输入以下命令:

python_embedded\python.exe -m pip install --force-reinstall torch==2.8.0+cu128 torchvision==0.23.0+cu128 torchaudio==2.8.0 --index-url https://download.pytorch.org/whl/cu128

如果上述方法仍未能解决问题,并且您使用的是不支持 CUDA 12.8 的旧款 NVIDIA 显卡,您可以尝试安装一个支持您显卡的较旧版本的 PyTorch。例如,对于 CUDA 12.6,请运行:

python_embedded\python.exe -m pip install --force-reinstall torch==2.8.0+cu126 torchvision==0.23.0+cu126 torchaudio==2.8.0 --index-url https://download.pytorch.org/whl/cu126

如果您使用的是 AMD 显卡,则需要切换到 Linux 系统并按照 Linux/ROCm 的说明进行操作。如果您希望继续在 CPU 上运行,则无需采取任何措施,只是性能会有所下降。更多详情请参阅 #32

如果您使用 uv 安装了 Abogen,可以先卸载,然后尝试使用另一个 CUDA 版本来重新安装:

# 首先卸载 Abogen
uv tool uninstall abogen
# 对于较旧驱动程序,尝试 CUDA 12.6
uv tool install --python 3.12 abogen[cuda126] --extra-index-url https://download.pytorch.org/whl/cu126 --index-strategy unsafe-best-match
# 如果仍然不行,再尝试 CUDA 13.0,适用于较新驱动程序
uv tool install --python 3.12 abogen[cuda130] --extra-index-url https://download.pytorch.org/whl/cu130 --index-strategy unsafe-best-match
如何修复 Linux 系统中的“WARNING: The script abogen-cli is installed in '/home/username/.local/bin' which is not on PATH”错误?

请运行以下命令将 Abogen 添加到您的 PATH 环境变量中:

echo "export PATH=\"/home/$USER/.local/bin:\$PATH\"" >> ~/.bashrc && source ~/.bashrc
如何解决“No matching distribution found”错误?

请尝试在受支持的 Python 版本(3.10 至 3.12)上安装 Abogen。推荐使用 uv 进行安装。您也可以使用 pyenv 在 Linux 系统上轻松管理多个 Python 版本。观看 NetworkChuck 的这个视频可以获得快速指南。

如何解决“[WinError 1114] 动态链接库 (DLL) 初始化例程失败”错误?

我在尝试在一个没有 GPU 支持的虚拟 Windows 机器上运行 Abogen 时遇到了这个错误。以下是解决方法: 如果您使用 Windows 安装程序 (WINDOWS_INSTALL.bat) 安装了 Abogen,请进入 Abogen 的文件夹(包含 python_embedded 的文件夹),在该目录下打开终端并运行:

python_embedded\python.exe -m pip install --force-reinstall torch==2.8.0+cu128 torchvision==0.23.0+cu128 torchaudio==2.8.0 --index-url https://download.pytorch.org/whl/cu128

如果您使用 pip 安装了 Abogen,请在虚拟环境的终端中运行:

pip install torch==2.8.0 torchaudio==2.8.0 torchvision==0.23.0 --index-url https://download.pytorch.org/whl/cu128
如何解决日语音频无法播放的问题?

日语音频可能需要额外的配置。
我目前还不确定具体的解决方案,但似乎与为 Kokoro 安装支持日语的附加依赖有关。请查看 #56 获取更多信息。

如何卸载 Abogen?
  • 从设置菜单中,选择 Open configuration directory 并删除该目录。
  • 从设置菜单中,选择 Open cache directory 并删除该目录。
  • 如果您使用 pip 安装了 Abogen,请输入以下命令:
pip uninstall abogen # 卸载 Abogen
pip cache purge # 清除 pip 缓存
  • 如果您使用 uv 安装了 Abogen,请输入以下命令:
uv tool uninstall abogen # 卸载 Abogen
uv cache clear # 清除 uv 缓存
  • 如果您使用 Windows 安装程序 (WINDOWS_INSTALL.bat) 安装了 Abogen,只需删除包含 Abogen 的文件夹即可。它会将所有内容安装在 python_embedded 文件夹内,不会创建其他目录。
  • 如果您还安装了 espeak-ng,需要单独将其移除。

贡献

我欢迎各位的贡献!如果您有新的功能、改进或 bug 修复的想法,请直接 fork 该项目并提交 pull request。

针对开发者和贡献者

如果您希望修改代码并参与开发,可以下载仓库,解压后运行以下命令来构建安装软件包:

# 进入您解压后的仓库目录并执行:
pip install -e .[dev]       # 以可编辑模式安装软件包,并包含构建依赖
python -m build             # 将软件包构建到 dist 文件夹中(可选)
abogen                      # 打开 GUI

请确保您使用的是 Python 3.10 到 3.12 版本。如有需要,请创建虚拟环境。

替代方案:使用 uv(点击展开)
# 进入您解压后的仓库目录并执行:
uv venv --python 3.12       # 创建一个基于 Python 3.12 的虚拟环境

# 激活虚拟环境后,运行:
uv pip install -e .         # 以可编辑模式安装包
uv build                    # 在 dist 文件夹中构建包(可选)
abogen                      # 打开 GUI

欢迎探索代码并根据需要进行修改。

致谢

  • Web UI 实现由 @jeremiahsb 完成
  • Abogen 使用 Kokoro 进行高质量、自然流畅的文本转语音合成。衷心感谢 Kokoro 团队使这一切成为可能。
  • 感谢 spaCy 项目提供的句子分割工具,这些工具帮助 Abogen 生成更清晰、更自然的句子分割结果。
  • 感谢 @wojiushixiaobai 提供的 Embedded Python 包。这些经过修改的包已预装 pip,使得 Abogen 可以作为独立应用程序运行,而无需用户在 Windows 系统上单独安装 Python。
  • 感谢 EbookLib 的开发者,这是一个用于读取和写入 ePub 文件的 Python 库,Abogen 利用它从 ePub 文件中提取文本。
  • 特别感谢 PyQt 团队,他们提供了跨平台的 GUI 工具包,为 Abogen 的界面提供了支持。
  • 图标:美国英国西班牙法国印度意大利日本巴西中国女性男性调整语音 ID 图标均由 Icons8 提供。

许可证

本项目采用 MIT 许可证授权——详情请参阅 LICENSE 文件。

Kokoro 采用 Apache-2.0 许可证,允许商业使用、修改、分发及私人使用。

星标历史

星标历史图表

[!注意] Abogen 支持所有语言的字幕生成。然而,单词级字幕模式(例如“1 个词”、“2 个词”、“3 个词”等)仅适用于英语,因为 Kokoro 仅为英语文本提供时间戳标记。对于非英语语言,Abogen 会使用基于时长的回退方案,支持句子级和逗号分隔的字幕模式(“行”、“句子”、“句子 + 逗号”)。如果您需要其他语言的单词级字幕,请在 Kokoro 项目 中提出该功能请求。

标签:有声书、Kokoro、文本转语音、TTS、有声书生成器、有声书、文本转语音、有声书制作工具、有声书创作者、有声书生成软件、语音合成、文本转音频、文本转音频转换器、文本转语音转换器、文本转语音生成器、文本转语音软件、文本转语音应用、ePub 转音频、PDF 转音频、Markdown 转音频、字幕转音频、SRT 转音频、ASS 转音频、VTT 转音频、WebVTT 转音频、内容创作、媒体生成

版本历史

v1.3.12026/02/06
v1.2.52025/12/10
v1.2.42025/11/28
v1.2.32025/11/18
v1.2.12025/10/27
v1.2.02025/10/20
v1.1.92025/09/18
v1.1.82025/09/17
v1.1.72025/08/25
v1.1.62025/07/29
v1.1.52025/07/16
v1.1.42025/07/16
v1.1.32025/07/16
v1.1.22025/07/15
v1.1.12025/07/11
v1.0.92025/05/28
v1.0.82025/05/22
v1.0.72025/05/09
v1.0.62025/05/04
v1.0.52025/05/04

常见问题

相似工具推荐

openclaw

OpenClaw 是一款专为个人打造的本地化 AI 助手,旨在让你在自己的设备上拥有完全可控的智能伙伴。它打破了传统 AI 助手局限于特定网页或应用的束缚,能够直接接入你日常使用的各类通讯渠道,包括微信、WhatsApp、Telegram、Discord、iMessage 等数十种平台。无论你在哪个聊天软件中发送消息,OpenClaw 都能即时响应,甚至支持在 macOS、iOS 和 Android 设备上进行语音交互,并提供实时的画布渲染功能供你操控。 这款工具主要解决了用户对数据隐私、响应速度以及“始终在线”体验的需求。通过将 AI 部署在本地,用户无需依赖云端服务即可享受快速、私密的智能辅助,真正实现了“你的数据,你做主”。其独特的技术亮点在于强大的网关架构,将控制平面与核心助手分离,确保跨平台通信的流畅性与扩展性。 OpenClaw 非常适合希望构建个性化工作流的技术爱好者、开发者,以及注重隐私保护且不愿被单一生态绑定的普通用户。只要具备基础的终端操作能力(支持 macOS、Linux 及 Windows WSL2),即可通过简单的命令行引导完成部署。如果你渴望拥有一个懂你

349.3k|★★★☆☆|1周前
Agent开发框架图像

stable-diffusion-webui

stable-diffusion-webui 是一个基于 Gradio 构建的网页版操作界面,旨在让用户能够轻松地在本地运行和使用强大的 Stable Diffusion 图像生成模型。它解决了原始模型依赖命令行、操作门槛高且功能分散的痛点,将复杂的 AI 绘图流程整合进一个直观易用的图形化平台。 无论是希望快速上手的普通创作者、需要精细控制画面细节的设计师,还是想要深入探索模型潜力的开发者与研究人员,都能从中获益。其核心亮点在于极高的功能丰富度:不仅支持文生图、图生图、局部重绘(Inpainting)和外绘(Outpainting)等基础模式,还独创了注意力机制调整、提示词矩阵、负向提示词以及“高清修复”等高级功能。此外,它内置了 GFPGAN 和 CodeFormer 等人脸修复工具,支持多种神经网络放大算法,并允许用户通过插件系统无限扩展能力。即使是显存有限的设备,stable-diffusion-webui 也提供了相应的优化选项,让高质量的 AI 艺术创作变得触手可及。

162.1k|★★★☆☆|1周前
开发框架图像Agent

everything-claude-code

everything-claude-code 是一套专为 AI 编程助手(如 Claude Code、Codex、Cursor 等)打造的高性能优化系统。它不仅仅是一组配置文件,而是一个经过长期实战打磨的完整框架,旨在解决 AI 代理在实际开发中面临的效率低下、记忆丢失、安全隐患及缺乏持续学习能力等核心痛点。 通过引入技能模块化、直觉增强、记忆持久化机制以及内置的安全扫描功能,everything-claude-code 能显著提升 AI 在复杂任务中的表现,帮助开发者构建更稳定、更智能的生产级 AI 代理。其独特的“研究优先”开发理念和针对 Token 消耗的优化策略,使得模型响应更快、成本更低,同时有效防御潜在的攻击向量。 这套工具特别适合软件开发者、AI 研究人员以及希望深度定制 AI 工作流的技术团队使用。无论您是在构建大型代码库,还是需要 AI 协助进行安全审计与自动化测试,everything-claude-code 都能提供强大的底层支持。作为一个曾荣获 Anthropic 黑客大奖的开源项目,它融合了多语言支持与丰富的实战钩子(hooks),让 AI 真正成长为懂上

156.8k|★★☆☆☆|今天
开发框架Agent语言模型

ComfyUI

ComfyUI 是一款功能强大且高度模块化的视觉 AI 引擎,专为设计和执行复杂的 Stable Diffusion 图像生成流程而打造。它摒弃了传统的代码编写模式,采用直观的节点式流程图界面,让用户通过连接不同的功能模块即可构建个性化的生成管线。 这一设计巧妙解决了高级 AI 绘图工作流配置复杂、灵活性不足的痛点。用户无需具备编程背景,也能自由组合模型、调整参数并实时预览效果,轻松实现从基础文生图到多步骤高清修复等各类复杂任务。ComfyUI 拥有极佳的兼容性,不仅支持 Windows、macOS 和 Linux 全平台,还广泛适配 NVIDIA、AMD、Intel 及苹果 Silicon 等多种硬件架构,并率先支持 SDXL、Flux、SD3 等前沿模型。 无论是希望深入探索算法潜力的研究人员和开发者,还是追求极致创作自由度的设计师与资深 AI 绘画爱好者,ComfyUI 都能提供强大的支持。其独特的模块化架构允许社区不断扩展新功能,使其成为当前最灵活、生态最丰富的开源扩散模型工具之一,帮助用户将创意高效转化为现实。

108.3k|★★☆☆☆|5天前
开发框架图像Agent

gemini-cli

gemini-cli 是一款由谷歌推出的开源 AI 命令行工具,它将强大的 Gemini 大模型能力直接集成到用户的终端环境中。对于习惯在命令行工作的开发者而言,它提供了一条从输入提示词到获取模型响应的最短路径,无需切换窗口即可享受智能辅助。 这款工具主要解决了开发过程中频繁上下文切换的痛点,让用户能在熟悉的终端界面内直接完成代码理解、生成、调试以及自动化运维任务。无论是查询大型代码库、根据草图生成应用,还是执行复杂的 Git 操作,gemini-cli 都能通过自然语言指令高效处理。 它特别适合广大软件工程师、DevOps 人员及技术研究人员使用。其核心亮点包括支持高达 100 万 token 的超长上下文窗口,具备出色的逻辑推理能力;内置 Google 搜索、文件操作及 Shell 命令执行等实用工具;更独特的是,它支持 MCP(模型上下文协议),允许用户灵活扩展自定义集成,连接如图像生成等外部能力。此外,个人谷歌账号即可享受免费的额度支持,且项目基于 Apache 2.0 协议完全开源,是提升终端工作效率的理想助手。

100.8k|★★☆☆☆|6天前
插件Agent图像

markitdown

MarkItDown 是一款由微软 AutoGen 团队打造的轻量级 Python 工具,专为将各类文件高效转换为 Markdown 格式而设计。它支持 PDF、Word、Excel、PPT、图片(含 OCR)、音频(含语音转录)、HTML 乃至 YouTube 链接等多种格式的解析,能够精准提取文档中的标题、列表、表格和链接等关键结构信息。 在人工智能应用日益普及的今天,大语言模型(LLM)虽擅长处理文本,却难以直接读取复杂的二进制办公文档。MarkItDown 恰好解决了这一痛点,它将非结构化或半结构化的文件转化为模型“原生理解”且 Token 效率极高的 Markdown 格式,成为连接本地文件与 AI 分析 pipeline 的理想桥梁。此外,它还提供了 MCP(模型上下文协议)服务器,可无缝集成到 Claude Desktop 等 LLM 应用中。 这款工具特别适合开发者、数据科学家及 AI 研究人员使用,尤其是那些需要构建文档检索增强生成(RAG)系统、进行批量文本分析或希望让 AI 助手直接“阅读”本地文件的用户。虽然生成的内容也具备一定可读性,但其核心优势在于为机器

93.4k|★★☆☆☆|1周前
插件开发框架