☰
把电子书读出声:ebook2audiobook 电子书转有声书完整快速使用指南
2026/10/17 2:30:32 网站建设 项目流程

把电子书读出声:ebook2audiobook 电子书转有声书完整快速使用指南

【免费下载链接】ebook2audiobookGenerate audiobooks from e-books, voice cloning & 1158+ languages!项目地址: https://gitcode.com/GitHub_Trending/eb/ebook2audiobook

书柜里的电子书大多买了没翻,安静地躺着。ebook2audiobook(下称 E2A)把它们直接转成带章节和元数据的 m4b 有声书,还能上传一段你的录音克隆自己的声音来"念"给你听。这篇指南解决四件事:网页怎么跑起来、终端怎么批量转、听感怎么调、扫描版和外语书怎么处理。

成品长什么样

产物是标准的 m4b 文件,带章节和元数据,任何有声书播放器都能按章播放;转换完成后在网页上直接试听、下载。

它能帮你干什么:

  • 章节结构保留:.epub和.mobi自动识别章节,输出直接分章;
  • 格式吃得开:.epub、.mobi、.pdf、.txt、.docx、.html、.zip等 23 种输入格式,m4b、mp3、flac、wav、ogg、aac等 10 种输出格式;
  • 声音克隆:传 1–5 分钟录音,整本书换成"你的声音";
  • 语言够多:支持 1158 种语言,XTTSv2、Bark、VITS、Tacotron2 等 8 种 TTS 引擎,实现见 lib/classes/tts_engines/。

⚠️ E2A 只适用于无 DRM、合法获取的电子书,误用的法律后果与作者无关。

跑起来:两条路任选

网页路线

  1. 拉代码:
git clone https://gitcode.com/GitHub_Trending/eb/ebook2audiobook cd ebook2audiobook

clone 无参数,只负责把源码放进本地ebook2audiobook目录。

  1. 跑启动脚本:
./ebook2audiobook.command

不带参数即网页模式,依赖自动装好,服务起在 7860 端口(Windows 用ebook2audiobook.cmd)。

  1. 打开http://localhost:7860/:电子书拖进上传框,可选传录音做声音克隆,选处理器(CPU/GPU)和语言,点Convert。

命令行路线

一条可整段复制的完整命令(Linux/macOS):

./ebook2audiobook.command --headless --ebook /path/to/book.epub --voice /path/to/voice.wav --language eng

--headless进入无头模式,--language收 ISO-639-3 或两位码,--voice可省略、缺省用内置声音。

常用搭配:

  • --ebooks_dir:指向一个目录,目录里的书一次转完;配--voice_map(JSON 文件)可给每本书指定不同声音;
  • --session <会话名>:中断后从断点续转;
  • --abs_url等:成品直接推进本地 Audiobookshelf 书库;
  • --help查看全部参数。

听感调优指南

听感参数都在网页 "Audio Generation Preferences" 标签页,命令行同样可用(以下均为 XTTS 参数)。

想更快

  • --top_k(10–100):值越低只从高概率词里采样,生成越快;
  • --top_p(0.1–1):累计概率阈值,方向同 top_k,越低越稳越快。

想更像

  • --temperature(0.1–10):越高越"发散",越低越平稳;
  • --repetition_penalty(1–10):值越高越抑制重复短语;
  • --speed(0.5–3):语速倍数,1 为原速;
  • 给某个声音"开小灶":Notebooks/finetune/xtts/ 里有 Colab 与 Kaggle 笔记本,用免费 GPU 微调自己的 XTTSv2。

批量处理

  • --ebooks_dir:整目录一次转完;
  • --voice_map:按 JSON 给每本书分配不同声音;
  • --enable_text_splitting:长文分块合成,适合长书。

🎧 进阶玩法按场景来

克隆自己的声音效果:整本书换成"你的声音",录音带背景噪音、垫着音乐都不怕,E2A 会先清背景再提取人声。做法:录一段 1–5 分钟的音频,传到 Cloning Voice 框,mp3/wav/m4a 等常见格式都行。注意:太短模型"学不扎实",别低于 1 分钟。

精确控制停顿与换声(SML 标签)效果:文本里插几个标记,朗读节奏自己说了算。做法:[break]给 0.3–0.6 秒随机短停顿,[pause]给 1.0–1.6 秒,[pause:3]固定 3 秒,[voice:/路径/声音文件]...[/voice]区间内换声,对话体小说一人分饰两角正合适。注意:不想手动插,官方 E2A-SML 工具链能自动写入。

让扫描版 PDF 也能听效果:没有文本层的 PDF,以及 JPG/PNG/TIFF/BMP 图片书,内置 OCR 先认字再送 TTS。注意:识别质量直接决定听感,字体花哨的扫描页先抽查识别结果。

外语书先翻译再合成效果:选中引擎不支持书的语言时,加--translate(fra、deu 等 ISO-639-3 码),整本书先翻译再合成。注意:翻译输出带_<代码>后缀单独存放,不会覆盖原书结果。

环境与部署

  • 硬件门槛:最低 2GB 内存 / 1GB 显存,推荐 8GB / 4GB;
  • 可用设备:CPU、CUDA、MPS(Apple Silicon)、ROCm、XPU、Jetson;现代 TTS 引擎在纯 CPU 上很慢,官方建议换 YourTTS、Tacotron2 这类轻量引擎;
  • 容器化:DEVICE_TAG=cu128 docker compose --profile gpu up --no-log-prefix一行起 GPU 网页版;镜像自包含、无依赖冲突,无头模式同样可用;注意 MPS 不暴露给容器,只能选 CPU;
  • 改默认值:输出格式(默认 m4b)、声道(默认 mono)、输出目录,编辑 lib/conf.py 即可。

排坑手册

  1. GPU 检测不到— 现象:设备选择回落到 CPU;原因:驱动版本不在支持范围(需 CUDA ≥ 11.8 等);解法:先升级驱动,暂时用 CPU 加轻量引擎。
  2. CPU 转得太慢— 原因:现代引擎在 CPU 上天生慢;解法:上 GPU 接近实时,只能 CPU 就换 YourTTS、Tacotron2 等轻量引擎。
  3. 依赖冲突— 原因:本地环境版本打架;解法:直接用 Docker,镜像自包含,无头模式也能跑。
  4. 音频被截断— 原因:该语言的断句逻辑还不成熟;解法:把原句附进 issue 提给官方,帮着改进。
  5. 转换中断要续转— 原因:崩溃或手动停止;解法:带--session <会话名>重跑,从断点继续。

两个容易踩的坑:EPUB 本身没有统一的"章节/序言"标准,不想被读出来的段落先手动删掉再转;脚本被杀后重启,记得刷新一次浏览器页面,否则连不上新的服务。

建议先拿一本短 EPUB 把上面流程走通,再慢慢碰声音克隆和 SML 标签,比上来就调参数省事。完整说明见 README.md。

【免费下载链接】ebook2audiobookGenerate audiobooks from e-books, voice cloning & 1158+ languages!项目地址: https://gitcode.com/GitHub_Trending/eb/ebook2audiobook

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

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

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

立即咨询