epub_to_audiobook

把电子书一键变成有声书,直接导入 Audiobookshelf 听

epub_to_audiobook 是一个将 EPUB 电子书转换为有声书的开源工具,专为 Audiobookshelf 优化,并内置 WebUI。它解决了用户手动拆分章节、调用 TTS 服务并生成有声书文件的繁琐流程。核心能力包括:解析 EPUB 文件并提取章节内容,支持调用 OpenAI 的 ChatGPT 和 TTS 接口进行文本处理和语音合成,生成标准的有声书文件(如 M4B),并可直接导入 Audiobookshelf 进行管理。项目提供 Web 界面,方便非技术用户操作,支持批量转换和进度跟踪。

开源 free 对话助手
访问官网 ↗ GitHub ↗ 文档 ↗
GitHub 星标 ★ 2066
维护状态 低维护
是否开源
定价模式 free

项目数据

分类对话助手
开发团队p0n1
所属国家
定价模式free
价格说明开源项目,MIT许可证,完全免费,可自行部署使用。
访问状态
是否开源
开源协议MIT
主要语言Python
技术栈/模型audiobooks,audiobookshelf,chatgpt,epub,openai,tts,webui
GitHub 星标★ 2066
30天Star增速
HF 下载量
上线时间2023-03-21 00:00:00
最近更新2026-09-23 00:00:00
维护状态低维护
中文支持
访问方式
移动端支持
综合评分
收录时间2026-08-09
浏览次数3

使用教程

难度:入门 约 10 分钟 部署方式:命令行工具 7 步

环境要求

  • Python 3 环境(README 使用 python3 命令)
  • pip,可安装 requirements.txt 中的依赖
  • OpenAI API Key,或 Azure Text-to-Speech 的 KEY 与 REGION
  • 如使用 Docker WebUI,需已安装 Docker 与 docker compose

安装与启动步骤

  1. 1克隆仓库

    把项目代码下载到本地并进入项目目录,后续所有命令都在该目录执行。

    git clone https://github.com/p0n1/epub_to_audiobook.git
    cd epub_to_audiobook
  2. 2创建虚拟环境

    用 venv 隔离依赖,避免污染系统 Python;Windows 下激活命令不同。

    python3 -m venv venv
    source venv/bin/activate
  3. 3安装依赖

    安装 requirements.txt 中的全部依赖。Python 3.14 需使用仓库中最新的依赖集。

    pip install -r requirements.txt
  4. 4配置 API 密钥

    按所选 TTS 服务设置对应环境变量:OpenAI 用 OPENAI_API_KEY,Azure 需 KEY 与 REGION。

    export OPENAI_API_KEY=sk-xxxxxxxx
  5. 5试运行检查章节

    加 --preview 只打印章节序号、标题与字数,不调用 TTS,可先确认拆分是否正确。

    python3 main.py your_book.epub ./output --preview
  6. 6正式转换有声书

    指定输入 EPUB、输出目录和 TTS 提供方;中文书加 --language zh-CN。

    python3 main.py your_book.epub ./output --tts openai --language zh-CN
  7. 7Docker 启动 WebUI

    先编辑 docker-compose.webui.yml 填入 API 密钥,再启动,适合不想用命令行的用户。

    docker compose -f docker-compose.webui.yml up

关键配置

配置项必填说明示例
OPENAI_API_KEY使用 OpenAI TTS(--tts=openai)时必须设置sk-xxxxxxxx
MS_TTS_KEY使用 Azure TTS(默认 --tts=azure)时必须设置your_subscription_key
MS_TTS_REGIONAzure 语音服务的区域,与 MS_TTS_KEY 配套使用eastus
--tts选择 TTS 提供方,默认 azureopenai
--language语音语言,默认 en-US;中文书用 zh-CN/zh-TW/zh-HKzh-CN
--worker_count并行处理的 worker 数量,可显著加速转换4

如何确认成功

WebUI 启动后浏览器访问 http://localhost:7860 可打开界面;命令行可先跑 python3 main.py -h 确认参数正常,转换完成后输出目录会生成音频文件。

常见问题

Q:转换中文电子书要加什么参数?

A:加 --language zh-CN(繁体可用 zh-TW、zh-HK)。该参数会帮助工具用更适合中文的策略切分文本块。

Q:如何查看全部可用参数?

A:在项目目录执行 python3 main.py -h,会打印完整的 usage 与参数说明。

Q:转换前想确认成本,不想每次手动确认怎么办?

A:脚本会在估算云 TTS 成本后询问是否继续;加 --no_prompt 可跳过该询问,适合脚本化运行。

Q:想先看章节拆分结果、不生成音频?

A:加 --preview,脚本不会调用 TTS,只打印章节索引、标题和字符数。

Q:安装依赖时报 PyO3 兼容错误怎么办?

A:README 指出 Python 3.14 需使用本仓库更新后的依赖集;旧版固定 gradio==5.33.1 会强制 pydantic-core 源码构建并失败。

注意事项

  • --tts 默认值为 azure,用 OpenAI 时务必显式传 --tts openai 并设置 OPENAI_API_KEY。
  • Docker WebUI 方式必须先把 API 密钥写入 docker-compose.webui.yml,README 未提供其他配置方式。
  • 使用 --worker_count 并行时章节处理顺序可能变化,但不影响最终有声书结果。
  • 密钥请通过环境变量或 compose 文件传入,不要写进命令历史或提交到仓库。

核心亮点

  • 内置 WebUI,无需命令行即可操作,降低使用门槛
  • 深度适配 Audiobookshelf,生成文件可直接导入并保留元数据
  • 支持 OpenAI TTS 多种语音,可定制朗读风格

不足之处

  • 依赖 OpenAI API,需要付费且网络环境稳定
  • 文档/社区待观察

适用场景

  • 个人将收藏的 EPUB 书籍转为有声书,在通勤时收听
  • 自建 Audiobookshelf 服务的用户批量转换电子书
  • 内容创作者为电子书生成音频版本用于分发

替代项目

Audiobook Maker、Coqui TTS、Edge TTS

项目介绍

epub_to_audiobook 是音频音乐领域的开源项目,由 p0n1 开发,2023 年首次发布。

在全站 13,014 个收录项目中,它的 GitHub 星标数(2,066)位列前 30%,在音频音乐分类的 738 个项目里位列前 10%。

项目已超过三个月没有代码更新,维护节奏明显放缓,最近一次代码更新于 2026-09-23。MIT许可证,完全免费,可自行部署使用。

它主要面向的使用场景是:个人将收藏的EPUB书籍转为有声书,在通勤时收听。同类可对比的替代方案包括 Audiobook Maker、Coqui TTS、Edge TTS。

上一篇:subvert

下一篇:chatterbox-tts-api

同类项目推荐

tango 开源

输入一句话,自动生成匹配的音频内容

A family of diffusion models for text-to-audio generation.

★ 1239 2026-08-09
AuK 开源

一个模型搞定语音生成、编辑与分离

AuK: An Open-Source Foundational Model for Speech Generation and Editing

★ 1236 2026-09-13
swift-tts 开源

Swift 项目三行代码接入系统 TTS,兼容 TCA 和 Combine

A straightforward package containing version for Swift modern concurrency, Point-Fre···

★ 52 2026-08-09
ai-dj 开源

现场演出中实时用 AI 生成音乐,保持人类掌控

AI music generation for live performance - Standalone (Ableton Link) + VST3/AU. 8 tr···

★ 245 2026-08-09