简介
epub_to_audiobook 项目是一个将 EPUB 格式的电子书转换为有声书籍的命令行工具。用户可以利用多个文本转语音(TTS)服务,如 Microsoft Azure Text-to-Speech、OpenAI Text-to-Speech 以及 Edge TTS,将电子书的每个章节转化为音频文件。这些生成的音频文件已优化,可直接用于 Audiobookshelf。
语音样例
对于希望了解生成的有声书品质的用户,可以通过以下链接试听示例:
- Azure TTS 样例
- OpenAI TTS 样例
- Edge TTS 的语音效果与 Azure TTS 非常相似
- Piper TTS 样例
环境要求
- Python 3.6+ 或者 Docker
- 对于 Azure TTS,需要一个 Microsoft Azure 帐户并访问 Microsoft Cognitive Services Speech 服务
- 对于 OpenAI TTS,需要 OpenAI API Key
- Edge TTS 不需要 API Key
- Piper TTS 可执行文件及其相应模型
与 Audiobookshelf 集成
生成的有声书特别为 Audiobookshelf 进行了优化。EPUB 文件中的每个章节都会转换为一个单独的 MP3 文件,并包含章节标题作为元数据。这使得在 Audiobookshelf 中的章节导航更加方便。
安装步骤
-
克隆此仓库:
git clone https://github.com/p0n1/epub_to_audiobook.git cd epub_to_audiobook
-
创建并激活虚拟环境:
python3 -m venv venv source venv/bin/activate
-
安装所需依赖:
pip install -r requirements.txt
-
设置环境变量,配置 Azure 或 OpenAI 的 TTS API 认证信息:
export MS_TTS_KEY=<your_subscription_key> # 对于 Azure export MS_TTS_REGION=<your_region> # 对于 Azure export OPENAI_API_KEY=<your_openai_api_key> # 对于 OpenAI
使用方法
要将 EPUB 电子书转换为有声书,请运行以下命令并使用 --tts
选项指定首选 TTS 提供商:
python3 main.py <input_file> <output_folder> [options]
可使用 -h
查看所有可用选项。
Docker 使用
该工具可作为 Docker 镜像运行,省去了管理 Python 依赖包的麻烦。
首先,确保系统已安装 Docker。
然后,使用以下命令拉取 Docker 镜像:
docker pull ghcr.io/p0n1/epub_to_audiobook:latest
运行工具的示例命令:
docker run -i -t --rm -v ./:/app -e MS_TTS_KEY=$MS_TTS_KEY -e MS_TTS_REGION=$MS_TTS_REGION ghcr.io/p0n1/epub_to_audiobook your_book.epub audiobook_output --tts azure
自定义语音和语言
用户可通过在运行脚本时传递 --voice_name
和 --language
选项,定制语音合成时的声音和语言设定。
例如使用英国英语女性语音进行转换的命令如下:
python3 main.py <input_file> <output_folder> --voice_name en-GB-LibbyNeural --language en-GB
问题排查
一些常见问题及解决方案:
- ModuleNotFoundError: No module named 'importlib_metadata':更新 Python 版本至 3.8 或以上。
- FileNotFoundError: [Errno 2] No such file or directory: 'ffmpeg':确保路径中有
ffmpeg
可执行文件。
结尾
epub_to_audiobook 项目简单易用,能将您的 EPUB 电子书无缝转化为可在 Audiobookshelf 中播放的有声书,为您的听书体验增添便捷和乐趣。