新闻详情

新闻详情

首页 / 资讯中心 / 详情

ebook2audiobook 实战指南:用多引擎 TTS、语音克隆与 1158 种语言把电子书批量变成有声书

发布时间:2026/10/1 21:38:11来源:尧图网络
ebook2audiobook 实战指南:用多引擎 TTS、语音克隆与 1158 种语言把电子书批量变成有声书
AI 应用语音音频本地部署【免费下载链接】ebook2audiobookGenerate audiobooks from e-books, voice cloning 1158 languages!项目地址https://gitcode.com/GitHub_Trending/eb/ebook2audiobook点击查看免费下载本文基于仓库 readme/README_spa.md项目官方西班牙语 README撰写并结合仓库源码app.py、lib/conf.py、lib/conf_models.py、lib/conf_lang.py、lib/core.py 等对安装、CLI 参数、SML 标签、Docker 部署与底层实现进行深度展开。文章中的命令、配置与参数以当前仓库实际内容为准。项目定位与核心能力ebook2audiobook简称 E2A是一个同时支持 CPU 与 GPU 的电子书转有声书工具它读取.epub、.mobi、.azw3等格式的电子书按章节与元数据组织文本交给 8 种以上先进 TTSText-to-Speech引擎合成语音最终输出带章节信息的m4b等格式有声书。它同时具备两大特色能力语音克隆上传一段你自己的声音样本15 分钟即可E2A 会先自动降噪再用它合成整本有声书超多语言除内置 20 余种常见语言的语音模型外还依托 MMS 系列模型支持1158 种语言与方言。项目声明其唯一合法用途是转换无 DRM 且合法购买的电子书作者不对任何滥用行为及由此产生的法律后果负责请务必遵守所在地法律合规使用。功能特性总览从 README 中提炼的核心能力清单如下TTS 引擎XTTSv2、Bark、Fairseq、VITS、Tacotron2、Tortoise、GlowTTS、YourTTS源码中另有PIPER见 lib/conf_models.py 的TTS_ENGINES定义电子书格式.epub、.mobi、.azw3、.fb2、.lrf、.rb、.snb、.tcr、.pdf、.txt、.rtf、.doc、.docx、.html、.odt、.azw、.tiff、.tif、.png、.jpg、.jpeg、.bmp、.zip文本直转内置文本输入区可直接把短文本转换为音频OCR 扫描对纯图片页面的 PDF/JPG/BMP/PNG/TIFF 进行 OCR 文字识别语音克隆使用自己的语音文件进行零样本zero-shot克隆语言数量支持 1158 种语言低配置友好最低2 GB RAM / 1 GB VRAM即可运行输出格式单声道或立体声的aac、flac、mp3、m4b、m4a、mp4、mov、ogg、wav、webmSML 标签支持对停顿、换声等进行精细控制自定义模型可加载自训练的 XTTSv2、VITS、FAIRSEQ、PIPER 等模型 ZIP预置与微调模型E2A 团队维护了一批预置与微调模型也可联系团队把自己的模型加入官方预置列表。硬件要求与设备支持官方给出的最低与推荐配置资源最低推荐内存RAM2 GB8 GB显存VRAM1 GB4 GBWindows 下运行 Docker需开启虚拟化—支持的算力后端CPU、XPUIntel/AMD/ARM、CUDA、ROCm、JETSON、MPSApple Silicon。注意现代 TTS 引擎在纯 CPU 上速度很慢官方建议 CPU 场景优先选用 YourTTS、Tacotron2 等轻量引擎GPU 可以做到接近实时的合成速度。从源码看设备与 PyTorch 版本的映射关系集中维护在 lib/conf.py 中devices字典定义了CPU/CUDA/MPS/ROCM/XPU/JETSON六类设备torch_matrix则为每类设备含cu118/cu121/cu124/cu126/cu128、rocm5.7rocm7.2、mps、xpu、jetson51/60/61等指定了对应的 PyTorch 版本与操作系统/架构约束。应用启动时会通过DeviceInstallerlib/classes/device_installer.py自动检测设备并安装匹配的驱动包。支持的语言、电子书格式与输出格式内置核心语言语言语言语言语言Arabic (ar)Chinese (zh)English (en)Spanish (es)French (fr)German (de)Italian (it)Portuguese (pt)Polish (pl)Turkish (tr)Russian (ru)Dutch (nl)Czech (cs)Japanese (ja)Hindi (hi)Bengali (bn)Hungarian (hu)Korean (ko)Vietnamese (vi)Swedish (sv)Persian (fa)Yoruba (yo)Swahili (sw)Indonesian (id)Slovak (sk)Croatian (hr)Tamil (ta)Danish (da)除以上内置语言外还可通过 MMSMeta 多语种语音系列模型覆盖1130 种额外语言与方言。各 TTS 引擎实际支持的语言子集可在 lib/conf_models.py 中按引擎查看例如 XTTSv2 支持 17 种语言PIPER 支持 30 种Fairseq 则列出了数百个 MMS 语言代码。电子书格式支持.epub、.pdf、.mobi、.txt、.html、.rtf、.chm、.lit、.pdb、.fb2、.odt、.cbr、.cbz、.prc、.lrf、.pml、.snb、.cbc、.rb、.tcr。最佳效果提示.epub或.mobi对自动章节检测的支持最好。需要提醒的是EPUB 本身没有统一标准来定义“章节/段落/前言”因此在转换前最好手动删除不打算转成音频的文本。源码 lib/core.py 顶部的注释也明确说明代码中的 CHAPTER 并不对应电子书的真实章节开发者用 BLOCK 一词在终端中输出以避免误解。输出与中间处理格式输出格式.m4b、.m4a、.mp4、.webm、.mov、.mp3、.flac、.wav、.ogg、.aac默认输出为m4b默认单声道中间音频处理格式默认为flac24 kHz两者均可在 lib/conf.py 中修改default_output_format、default_audio_proc_format、default_output_channel等。SML 标签精细控制停顿与换声SMLSpeech Markup Language是 E2A 提供的朗读控制标签可以嵌在文本中精确控制静音时长与声音切换标签含义默认行为[break]短暂静音随机0.3–0.6 秒[pause]较长静音随机1.0–1.6 秒[pause:N]固定时长静音精确N 秒[voice:/path/to/voice/file]...[/voice]切换声音在默认/选定的声音与该文件声音之间切换用法示例如果觉得停顿不够直接在文本里写[pause:3]即可获得 3 秒的固定静音。从源码看标签语法由 lib/conf_models.py 中的TTS_SML字典与SML_TAG_PATTERN正则定义支持大小写、可带冒号参数、可配对闭合而实际静音生成逻辑位于 lib/classes/tts_engines/common/utils.py 的_convert_sml()方法break会以随机采样追加一段 0.3–0.5 秒的静音张量无参数的pause会追加 0.6–1.1 秒静音带N参数时严格追加 N 秒voice开标签则校验路径存在性并把当前声音切换为指定文件闭合标签恢复原声音。所有 TTS 引擎lib/classes/tts_engines/xtts.py 等在句子切分时都会调用SML_TAG_PATTERN保护这些标签不被拆分确保成对标签始终完整。安装与启动1. 克隆仓库并进入目录git clone https://github.com/DrewThomasson/ebook2audiobook.git cd ebook2audiobook2. 运行安装/启动脚本Linux/macOS./ebook2audiobook.commandmacOS 用户注意脚本会自动通过 homebrew 安装缺失的程序。Windowsebook2audiobook.cmd也可以直接双击ebook2audiobook.cmd。Windows 用户注意脚本会通过 scoop 在无需管理员权限的情况下安装缺失程序。首次运行脚本会自动创建独立的 Python 虚拟环境基于uv管理Python 版本要求 3.103.12见 lib/conf.py 的min_python_version/max_python_version并安装依赖与内置声音包。3. 打开 Web 界面启动后终端会打印 URL浏览器访问http://localhost:7860/即可使用 Gradio Web 界面完成上传、参数设置、转换与预览。4. 生成公网共享链接可选./ebook2audiobook.command --share # Linux/macOS ebook2audiobook.cmd --share # Windows python app.py --share # 全平台重要提醒如果脚本被中断后重新运行必须刷新 Gradio 网页让页面重新连接到新的 socket。无界面Headless批量转换GUI 之外E2A 支持完全无界面的命令行转换适合服务器与自动化场景Linux/macOS./ebook2audiobook.command --headless --ebook path_to_ebook_file --voice path_to_voice_file --language language_codeWindowsebook2audiobook.cmd --headless --ebook path_to_ebook_file --voice path_to_voice_file --language language_code三个核心参数--ebook电子书文件路径--voice语音克隆文件路径可选--languageISO-639-3 语言代码例如ita意大利语、eng英语、deu德语同时兼容 2 位 ISO-639-1 代码。默认语言为eng可在 lib/conf_lang.py 中修改default_language_code。从源码看headless 模式的入口校验在 app.py 中完成--ebook、--ebooks_dir整目录批量转换、--text纯文本直转三者只能指定其一--voice路径不存在时会报错语言代码会通过iso639.Lang自动规范化。真正转换逻辑由lib.core.convert_ebook()lib/core.py执行包括语言校验、翻译开关判断、会话状态写入、文本分块、逐块 TTS 合成与最终音频拼接。完整 CLI 参数速查--help 全量输出运行以下命令可随时查看全部参数./ebook2audiobook.command --help # Linux/macOS ebook2audiobook.cmd --help # Windows python app.py --help # 全平台以下为app.py --help的完整输出与 app.py 中 argparse 定义一致usage: app.py [-h] [--session SESSION] [--share] [--headless] [--ebook EBOOK] [--ebooks_dir EBOOKS_DIR] [--language LANGUAGE] [--voice VOICE] [--voice_map VOICE_MAP] [--device {CPU,CUDA,MPS,ROCM,XPU,JETSON}] [--tts_engine {XTTS,BARK,VITS,FAIRSEQ,TACOTRON,YOURTTS,xtts,bark,vits,fairseq,tacotron,yourtts}] [--custom_model CUSTOM_MODEL] [--fine_tuned FINE_TUNED] [--output_format OUTPUT_FORMAT] [--output_channel OUTPUT_CHANNEL] [--temperature TEMPERATURE] [--length_penalty LENGTH_PENALTY] [--num_beams NUM_BEAMS] [--repetition_penalty REPETITION_PENALTY] [--top_k TOP_K] [--top_p TOP_P] [--speed SPEED] [--enable_text_splitting] [--text_temp TEXT_TEMP] [--waveform_temp WAVEFORM_TEMP] [--output_dir OUTPUT_DIR] [--version] Convert eBooks to Audiobooks using a Text-to-Speech model. You can either launch the Gradio interface or run the script in headless mode for direct conversion. options: -h, --help show this help message and exit --session SESSION Session to resume the conversion in case of interruption, crash, or reuse of custom models and custom cloning voices. **** The following option is for gradio/gui mode only: --share (Optional) Enable a public shareable Gradio link. **** The following options are for --headless mode only: --headless Run the script in headless mode --ebook EBOOK Path to the ebook file for conversion. Cannot be used when --ebooks_dir is present. --ebooks_dir EBOOKS_DIR Relative or absolute path of the directory containing the files to convert. Cannot be used when --ebook is present. --text TEXT Raw text for conversion. Cannot be used when --ebook or --ebooks_dir is present. --language LANGUAGE Language of the e-book. Default language is set in ./lib/lang.py sed as default if not present. All compatible language codes are in ./lib/lang.py optional parameters: --translate ISO3 (Optional) Translate ebook to a target language (ISO 639-3 code, e.g. eng, fra, deu) before TTS synthesis. Uses argostranslate. The target language becomes the effective TTS language for the run. A copy of the source ebook is made with the _iso3 suffix so translated and non-translated outputs stay isolated (independent process folder, audio chunks, and final file). --voice VOICE (Optional) Path to the voice cloning file for TTS engine. Uses the default voice if not present. --voice_map VOICE_MAP (Optional, --ebooks_dir only) Path to a JSON file mapping ebook path - voice path. Each entry overrides --voice for that specific ebook. Missing/null entries fall back to --voice. Keys may be absolute paths or basenames. Example: {book1.epub: /voices/eng/adult/female/alice.wav, /abs/path/book2.epub: null} --device {CPU,CUDA,MPS,ROCM,XPU,JETSON} (Optional) Processor unit type for the conversion. Default is set in ./lib/conf.py if not present. Fall back to CPU if CUDA or MPS is not available. --tts_engine {XTTS,BARK,VITS,FAIRSEQ,TACOTRON,YOURTTS,xtts,bark,vits,fairseq,tacotron,yourtts} (Optional) Preferred TTS engine (available are: [XTTS, BARK, VITS, FAIRSEQ, TACOTRON, YOURTTS, xtts, bark, vits, fairseq, tacotron, yourtts]. Default depends on the selected language. The tts engine should be compatible with the chosen language --custom_model CUSTOM_MODEL (Optional) Path to the custom model zip file cntaining mandatory model files. Please refer to ./lib/models.py --fine_tuned FINE_TUNED (Optional) Fine tuned model path. Default is builtin model. --output_format OUTPUT_FORMAT (Optional) Output audio format. Default is m4b set in ./lib/conf.py --output_channel OUTPUT_CHANNEL (Optional) Output audio channel. Default is mono set in ./lib/conf.py --temperature TEMPERATURE (xtts only, optional) Temperature for the model. Default to config.json model. Higher temperatures lead to more creative outputs. --length_penalty LENGTH_PENALTY (xtts only, optional) A length penalty applied to the autoregressive decoder. Default to config.json model. Not applied to custom models. --num_beams NUM_BEAMS (xtts only, optional) Controls how many alternative sequences the model explores. Must be equal or greater than length penalty. Default to config.json model. --repetition_penalty REPETITION_PENALTY (xtts only, optional) A penalty that prevents the autoregressive decoder from repeating itself. Default to config.json model. --top_k TOP_K (xtts only, optional) Top-k sampling. Lower values mean more likely outputs and increased audio generation speed. Default to config.json model. --top_p TOP_P (xtts only, optional) Top-p sampling. Lower values mean more likely outputs and increased audio generation speed. Default to config.json model. --speed SPEED (xtts only, optional) Speed factor for the speech generation. Default to config.json model. --enable_text_splitting (xtts only, optional) Enable TTS text splitting. This option is known to not be very efficient. Default to config.json model. --text_temp TEXT_TEMP (bark only, optional) Text Temperature for the model. Default to config.json model. --waveform_temp WAVEFORM_TEMP (bark only, optional) Waveform Temperature for the model. Default to config.json model. --output_dir OUTPUT_DIR (Optional) Path to the output directory. Default is set in ./lib/conf.py --abs_url ABS_URL Audiobookshelf server URL (e.g. http://localhost:13378). --abs_api_token ABS_API_TOKEN Audiobookshelf API token. --abs_library ABS_LIBRARY Audiobookshelf library ID. --version Show the version of the script and exit Example usage: Windows: Gradio/GUI: ebook2audiobook.cmd Headless mode: ebook2audiobook.cmd --headless --ebook /path/to/file --language eng Linux/Mac: Gradio/GUI: ./ebook2audiobook.command Headless mode: ./ebook2audiobook.command --headless --ebook /path/to/file --language eng SML tags available: [break] — silence (random range 0.3–0.6 sec.) [pause] — silence (random range 1.0–1.6 sec.) [pause:N] — fixed pause (N sec.) [voice:/path/to/voice/file]...[/voice] — switch voice from default or selected voice from GUI/CLI参数细节的源码级说明默认值来源--language默认englib/conf_lang.py 的default_language_code--device默认cpu、--output_format默认m4b、--output_channel默认mono、输出目录等均在 lib/conf.py 中定义XTTS 专属采样参数temperature默认 0.75、length_penalty1.0、num_beams1、repetition_penalty2.0、top_k40、top_p0.95、speed1.0等默认值来自 lib/conf_models.py 的default_engine_settings[xtts]未指定时回退到模型config.json的默认值Bark 专属参数text_temp默认 0.22与waveform_temp默认 0.44同样来自default_engine_settings[bark]批量目录转换--ebooks_dir模式下会按自然排序遍历目录中所有受支持格式文件并可通过--voice_mapJSON电子书路径 → 语音路径映射为每个文件单独指定克隆声音缺省项回退到--voice该逻辑在 app.py 中实现翻译功能--translate ISO3使用 argostranslate 先把整本书翻译成目标语言再合成翻译结果会以_iso3后缀隔离存放避免与未翻译的输出混在一起会话恢复headless 转换中断或崩溃后可用--session SESSION恢复同时可复用已加载的自定义模型与克隆声音。GUI 模式注意取消正在进行的转换只需点击电子书上传组件的 [X] 关闭按钮即可。自定义模型 ZIP 上传E2A 允许在 headless 模式下加载自训练/自下载的模型文件必须是包含各引擎必需文件的.zip压缩包。以 XTTSv2 为例压缩包内必须包含config.json、model.pth、vocab.json、ref.wav。# Linux/macOS ./ebook2audiobook.command --headless --ebook ebook_file_path --language language --custom_model custom_model_path # Windows ebook2audiobook.cmd --headless --ebook ebook_file_path --language language --custom_model custom_model_path注意自定义模型包内的ref.wav将始终作为本次转换的克隆声音。各引擎对模型包的要求可在 lib/conf_models.py 中按files字段查询XTTSv2 需要[config.json,model.pth,vocab.json,ref.wav]PIPER 需要[config.onnx.json,model.onnx,ref.wav]VITS 需要[config.json,best_model.pth,ref.wav]FAIRSEQ 需要[config.json,G_100000.pth,vocab.txt,ref.wav]。另外--fine_tuned参数可指定微调模型路径默认使用内置模型internal。Docker 与 Podman 部署Docker 方式完全自包含最适合规避依赖问题。构建镜像# Windows ebook2audiobook.cmd --script_mode build_docker # Docker ebook2audiobook.cmd --script_mode build_docker --docker_mode compose # Docker Compose ebook2audiobook.cmd --script_mode build_docker --docker_mode podman # Podman Compose # Linux/macOS ./ebook2audiobook.command --script_mode build_docker ./ebook2audiobook.command --script_mode build_docker --docker_mode compose ./ebook2audiobook.command --script_mode build_docker --docker_mode podman运行容器GUI 模式以docker run直接启动按设备选择镜像标签cpu、cu118/122/124/126、rocm6.0/6.1/6.4、xpu、jetson51/60/61# CPU docker run -v ./ebooks:/app/ebooks -v ./audiobooks:/app/audiobooks -v ./models:/app/models -v ./voices:/app/voices -v ./tmp:/app/tmp --rm -it -p 7860:7860 athomasson2/ebook2audiobook:cpu # CUDA docker run -v ./ebooks:/app/ebooks -v ./audiobooks:/app/audiobooks -v ./models:/app/models -v ./voices:/app/voices -v ./tmp:/app/tmp --gpus all --rm -it -p 7860:7860 athomasson2/ebook2audiobook:cu[118/122/124/126 etc..] # ROCm docker run -v ./ebooks:/app/ebooks -v ./audiobooks:/app/audiobooks -v ./models:/app/models -v ./voices:/app/voices -v ./tmp:/app/tmp --device/dev/kfd --device/dev/dri --rm -it -p 7860:7860 athomasson2/ebook2audiobook:rocm[6.0/6.1/6.4 etc..] # XPU docker run -v ./ebooks:/app/ebooks -v ./audiobooks:/app/audiobooks -v ./models:/app/models -v ./voices:/app/voices -v ./tmp:/app/tmp --device/dev/dri --rm -it -p 7860:7860 athomasson2/ebook2audiobook:xpu # JETSON docker run -v ./ebooks:/app/ebooks -v ./audiobooks:/app/audiobooks -v ./models:/app/models -v ./voices:/app/voices -v ./tmp:/app/tmp --runtime nvidia --rm -it -p 7860:7860 athomasson2/ebook2audiobook:jetson[51/60/61 etc...]运行容器Headless 模式容器 headless 模式通过额外的卷挂载把宿主机真实电子书目录映射进容器如/app/another_ebook_folder再传入--headless --ebook等参数# CPU docker run -v ./ebooks:/app/ebooks -v ./audiobooks:/app/audiobooks -v ./models:/app/models -v ./voices:/app/voices -v ./tmp:/app/tmp -v /my/real/ebooks/folder/absolute/path:/app/another_ebook_folder --rm -it -p 7860:7860 ebook2audiobook:cpu --headless --ebook /app/another_ebook_folder/myfile.pdf [--voice /app/my/voicepath/voice.mp3 etc..]CUDA、ROCm、XPU、JETSON 的 headless 命令结构相同只需把镜像标签与--gpus all/--device参数替换为对应设备的写法可参考 app.py 的 epilog 帮助文本其中包含了完整命令模板。Docker Compose / Podman Compose# 例如 CUDA 12.8启动 Gradio GUI DEVICE_TAGcu128 docker compose --profile gpu up --no-log-prefix # 例如 CUDA 12.8Headless 转换 DEVICE_TAGcu128 docker compose --profile gpu run --rm ebook2audiobook --headless --ebook /app/ebooks/myfile.pdf --voice /app/voices/eng/adult/female/some_voice.wav etc.. # Podman Compose 等价命令 DEVICE_TAGcu128 podman-compose -f podman-compose.yml --profile gpu up DEVICE_TAGcu128 podman-compose -f podman-compose.yml --profile gpu run --rm ebook2audiobook-gpu --headless --ebook /app/ebooks/myfile.pdf --voice /app/voices/eng/adult/female/some_voice.wav etc..注意Docker 容器内不暴露 MPS 后端Apple Silicon 用户需使用 CPU 镜像。语音克隆Cloned Voices上传任意受支持音频格式的说话人录音即可克隆理想时长约 15 分钟录音即使带背景噪音或音乐也没关系E2A 会自动做降噪处理语音文件支持格式见 lib/conf.py 的voice_formats.mp4、.m4b、.m4a、.mp3、.wav、.aac、.flac、.alac、.ogg、.aiff、.aif、.wma、.dsd、.opus、.pcmu、.pcma、.gsm内置克隆声音列表目前以英语为主如需为其他语言提交官方内置声音可联系项目维护者审核后加入。内置默认声音由 lib/conf_models.py 的default_speaker定义voices/eng/adult/male/KumarDahl.wavXTTSv2 还内置了 60 位多语言说话人如 Claribel Dervla、Daisy Studious 等Bark 内置了各语言的*_speaker_09声音。微调 XTTSv2 模型E2A 生态提供了一套训练流水线可以把你自己的声音微调成 XTTSv2 模型仓库内提供了两个开箱即用的训练笔记本Notebooks/finetune/xtts/colab_xtts_finetune_webui.ipynb 与 Notebooks/finetune/xtts/kaggle-xtts-finetune-webui-gradio-gui.ipynb均为带 Web UI 的训练工具训练数据的降噪可借助 DeepFilterNet 类工具预处理训练好的模型放入 ZIP 后即可通过上述--custom_model/--fine_tuned参数加载使用自定义 XTTSv2 模型必须附带一个参考音频片段ref.wav作为克隆声音团队维护的官方微调模型集合可通过 Hugging Face 模型库获取若希望把自己的模型加入官方预置列表可联系维护者。另外仓库还提供了 Notebooks/colab_ebook2audiobook.ipynb 与 Notebooks/kaggle-ebook2audiobook.ipynb 两个免安装的云端运行笔记本适合没有本地 GPU 的环境。自定义配置与版本回退修改全局配置E2A 允许你自由修改 lib/conf.py 来增删各项默认设置默认输出格式、输出声道、接口端口、并发数、上传大小上限、临时目录等。官方建议修改前先复制一份原始conf.py备份这样每次更新项目后都能把自定义配置重新放回去对 lib/conf_models.py 的模型相关配置同样建议执行备份流程如果想把自己的自定义模型转为官方预置preset联系维护者即可加入预置列表。回退到旧版本所有历史版本均以 tag 形式发布回退命令git checkout tags/VERSION_NUM # 例如git checkout tags/v25.7.7常见问题与排查GPU 未被识别NVIDIA/ROCm/XPU/MPS设备检测脚本位于 components/detect_gpu.pylib/classes/device_installer.py 会在启动时自动探测并安装对应 PyTorch 后端若仍无法识别可参考仓库 Wiki 的 GPU 问题专页排查CPU 转换太慢这是正常现象现代 TTS 引擎在 CPU 上速度有限建议换用 YourTTS、Tacotron2 等轻量引擎其语音质量类似 Siri 级别且不支持 zero-shot 克隆但 CPU 上明显更快依赖装不上直接使用 Docker——完全自包含自带 headless 模式在docker run命令末尾加--help即可查看容器内可用参数音频被截断这通常与句子切分逻辑有关请在仓库 Issues 中反馈附上具体语言与文本帮助团队改进切分算法。从源码看一次完整转换的调用链入口app.py 的main()解析全部 CLI 参数校验虚拟环境、Python 版本、端口占用随后由DeviceInstaller安装设备包会话管理headless 模式生成/复用--session会话把参数持久化到会话上下文lib.core.SessionContext中断后可恢复转换核心lib.core.convert_ebook(args)lib/core.py依次完成语言规范化与翻译判断、电子书读取与分块BLOCK、逐块文本清洗lib/conf_lang.py 中维护了跨语言的标点替换表punctuation_switch与硬切分标点集用于消除 TTS 幻觉与异常停顿、SML 标签解析、TTS 引擎合成lib/classes/tts_manager.py 统一调度各引擎实现在 lib/classes/tts_engines/ 下、音频拼接与输出格式封装输出成品写入audiobooks/目录GUI 与 CLI 输出分别位于 audiobooks/gui/ 与 audiobooks/cli/并可通过--abs_url等参数直接推送到 Audiobookshelf 服务器。开发者协作规范摘要仓库对 Python 代码风格有明确约定详见 README 的代码规范化章节函数与类之间保留空行、全部使用单引号dict()与 JSON 除外、4 空格缩进、所有函数严格类型标注参数与返回值、参数与其类型标注之间不加空格、函数与-返回值之间不加空格。仓库还公开征集硬件捐赠CUDA ≥ 11.8 的 Nvidia 显卡、Intel XPU 显卡、ROCm ≥ 5.7 的 AMD 显卡用于 beta 测试并欢迎各语言母语者协助改进模型与翻译。至此你已经掌握了 ebook2audiobook 从安装、GUI/headless 使用、完整 CLI 参数、SML 标签、自定义模型到 Docker 部署与源码原理的完整链路可以直接开始把你的电子书库转换为带章节、带克隆声音的有声书了。赞分享AI 应用语音音频本地部署【免费下载链接】ebook2audiobookGenerate audiobooks from e-books, voice cloning 1158 languages!项目地址https://gitcode.com/GitHub_Trending/eb/ebook2audiobook点击查看免费下载相关推荐ebook2audiobook 从电子书到有声书多引擎 TTS、声音克隆与 1158 种语言的一体化转换指南ebook2audiobook 从电子书到有声书多引擎 TTS、声音克隆与 1158 种语言的一体化转换指南 本项目 ebook2audiobook简称 EAI 应用语音音频本地部署ebook2audiobookE2A实战指南基于多引擎 TTS、语音克隆与 1158 语种支持的电子书转有声书方案ebook2audiobookE2A实战指南基于多引擎 TTS、语音克隆与 1158 语种支持的电子书转有声书方案 本篇技术指南以仓库中的荷兰语版官方文档AI 应用语音音频本地部署ebook2audiobook 完整技术指南多 TTS 引擎、语音克隆与 1158 语言的电子书转有声书方案ebook2audiobook 完整技术指南多 TTS 引擎、语音克隆与 1158 语言的电子书转有声书方案 本指南以 ebook2audiobookE2AI 应用语音音频本地部署上一篇Context for Claude 设计系统深度解析Ink 语义色彩、玻璃拟态对比度算术与 macOS 原生界面规范下一篇Astryx Layout Regions 家族契约Section、Layout 五槽位与 Toolbar 的页面结构化区域体系创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
网站建设高端定制企业官网
RELATED

相关资讯

更多精彩内容,欢迎继续阅读

较早相关资讯

最新相关资讯

STM32CubeMX从入门到实战:图形化配置、时钟树与HAL库 2026/10/2 1:25:24

STM32CubeMX从入门到实战:图形化配置、时钟树与HAL库

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

阅读更多 →
CenterNet热图高斯半径优化:从圆形到椭圆的自适应实现 2026/10/2 1:25:23

CenterNet热图高斯半径优化:从圆形到椭圆的自适应实现

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

阅读更多 →
SRE校招面试全解析:从基础理论到实战场景的能力构建指南 2026/10/2 1:25:22

SRE校招面试全解析:从基础理论到实战场景的能力构建指南

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

阅读更多 →
APDL命令流实现混凝土与形状记忆合金高精度本构建模 2026/10/2 1:25:16

APDL命令流实现混凝土与形状记忆合金高精度本构建模

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

阅读更多 →
CentOS7上Ollama私有大模型部署实战与避坑指南 2026/10/2 1:25:16

CentOS7上Ollama私有大模型部署实战与避坑指南

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

阅读更多 →
SCANLAB振镜RTC配置五步法:从没响应到光斑飞舞 2026/10/2 1:25:16

SCANLAB振镜RTC配置五步法:从没响应到光斑飞舞

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

阅读更多 →

今日资讯

本周资讯

本月资讯

看完文章仍有疑问?

联系尧图顾问,获取一对一建站咨询

立即免费咨询 📞 400-888-8888
📞 ✉