ebook2audiobook 一键免费把电子书转成有声书:支持 1158 种语言
【免费下载链接】ebook2audiobookGenerate audiobooks from e-books, voice cloning & 1158+ languages!项目地址: https://gitcode.com/GitHub_Trending/eb/ebook2audiobook
你手里攒了一堆 epub,想听书却只能自己念,或者把章节一段段复制进 TTS 再手动拼接,费时还丢结构。ebook2audiobook(E2A)是个免费开源工具,吃进整本电子书,自动解析章节、逐句合成,再带上章节标记输出成播放器直接能用的 m4b/mp3,覆盖 1158 种语言、23 种书籍格式。照下面走,十分钟以内你就能拿到第一本带章节的有声书。
🔄 整体流程:一本书是怎么变成有声书的
适合谁:有电子书、想躺在地上听书,又不想给每本书花半小时手动折腾音频的人。
提示:它声明只用于无 DRM、合法获取的电子书,别拿它去扫盗版资源,法律后果自己担。
🚀 拿到第一个结果:装完直接转
你不用手动装任何依赖。项目自带启动脚本,第一次跑会自动补齐全套环境,你只要把代码下下来:
git clone https://gitcode.com/GitHub_Trending/eb/ebook2audiobook cd ebook2audiobook第一行把项目拉到本地,第二行进目录,后面所有操作都在这做。
| 系统 | 入口脚本 | 首次运行自动装 |
|---|---|---|
| Linux / macOS | ./ebook2audiobook.command | Homebrew、Python 3.12、calibre、ffmpeg、tesseract 等 |
| Windows | ebook2audiobook.cmd | Scoop、Miniforge、依赖 |
| 容器 | docker-compose.yml | 容器内全部自带,只挂目录 |
最短路径拿第一个产出,两步:
./ebook2audiobook.command --help这一行列出所有合法参数,脚本对不认识的参数会直接拒绝,先查再敲能省掉一半报错。
./ebook2audiobook.command --headless --ebook ebooks/tests/test_eng.epub --language eng这条命令把仓库自带的英文测试书直接转掉,--headless是无头模式(跳过网页,命令直接转),--language填 ISO 语言码,默认就是英文。成品落在audiobooks/目录,丢进播放器就能跳章节。
🛠️ 三种用法:网页、单本、整目录
网页控制台
./ebook2audiobook.command这一行拉起网页界面,浏览器打开http://localhost:7860/就是你的控制台:拖入电子书,选语言,CPU/GPU 二选一,点转换,转完能直接试听、下载。加--share启动则生成临时公网链接,方便在手机上先听两章。
单本转换
上一节的--headless命令就是单本用法。关键参数:
--ebook:电子书路径,和--ebooks_dir二选一--output_format:输出格式,默认 m4b,还能选 mp3、wav、flac 等--output_channel:单声道或立体声,默认 mono
整目录批量
./ebook2audiobook.command --headless --ebooks_dir ./books --output_dir ./out--ebooks_dir指一个装书的目录,里面所有书一次全转,--output_dir把成品统一挪进./out,不占默认位置。仓库里 ebooks/tests/ 放了一整套多语言测试书(英、法、日、中文等 80 来种),拿它练手很方便。
🎙️ 选型指南:TTS 引擎怎么挑
| 选项 | 强项 | 适用场景 |
|---|---|---|
| XTTS | 高质量、支持语音克隆 | 想要自然音色、多语言混读 |
| FAIRSEQ | 低资源语言覆盖最广 | 冷门语种、方言 |
| BARK | 带情感、能加语气词 | 表现力优先的有声书 |
| VITS / TACOTRON / YOURTTS | 轻量,CPU 也能跑 | 没有显卡的环境 |
如果你没有 GPU,就选 YOURTTS 或 TACOTRON,用--tts_engine yourtts指定,因为现代引擎在 CPU 上慢得没法听;有 4GB 以上显存再上 XTTS 追求克隆效果。
✨ 进阶技巧:换声音、换语言、断点续传
语音克隆:录一段 1~5 分钟的清晰人声(带背景音也行,它会先降噪),然后:
./ebook2audiobook.command --headless --ebook book.epub --language fra --voice my_voice.wav这条命令用你自己的声音把法语书读出来——--language管"说什么语言",--voice管"用谁的声音说",两者互相独立。
先翻译再合成:加--translate <ISO3码>,它先把书译成目标语言再读,译文和原文的产物自动分开存放,不互相覆盖。
断点续传:转换中断或崩溃后,用--session接上原来的会话,跳过已合成的句子,不用从头再来。
参数微调:不想敲命令的话,网页里"Audio Generation Preferences"标签页有一排现成滑块——Temperature(越高越有创意)、Repetition Penalty(压重复)、Speed(语速)。
🔍 卡住了怎么办:四步排查
- 报"未知参数"或命令没反应:第一动作是跑
--help把合法参数全列出来对着抄。 - 依赖装了又缺:重跑一次启动脚本,它会自动补装缺失项;看日志里 OK / failed 字样定位卡住的包。
- GPU 识别不到或显存不够:显存最低 1GB、推荐 4GB;不够就
--device CPU强制走 CPU,并换轻量引擎。 - 章节识别乱、夹带杂质:EPUB 本身没有"哪段是章节"的统一标准,先把不想读的部分在书里手动删掉再喂给它。
提示:提交 issue 前先翻一遍已打开和已关闭的 issues,重复问题基本都有现成答案。
📂 源码导览
核心转换流程在 lib/core.py,入口与参数解析在 app.py,网页界面在 lib/gradio.py,各 TTS 引擎实现集中在 lib/classes/tts_engines/,默认语言、格式、路径等配置都写在 lib/conf.py。
打开终端敲下启动脚本,1158 种语言的有声书就从今天开始。
【免费下载链接】ebook2audiobookGenerate audiobooks from e-books, voice cloning & 1158+ languages!项目地址: https://gitcode.com/GitHub_Trending/eb/ebook2audiobook
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考