从EPUB到Audiobook 将电子书转化为有声书(Azure、OpenAI)
环境搭建
源码运行
需要准备 Python 环境
GitHub地址: https://github.com/p0n1/epub_to_audiobook
克隆代码
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
Docker 运行
需要准备 Docker 环境
准备账号
Azure 账号准备
在此页面创建语音服务
创建完成后复制
密钥
、位置/区域
后续使用
OpenAI 账号准备(需要国外手机号)
生成
API keys
: https://platform.openai.com/api-keys复制
Secret Key
后续使用
转发 OpenAI
自行去提供商准备 API Keys
若 转发 OpenAI 提供商的 Key 不与官方通用,则后续需要修改源码的 OpenAI 请求地址,所以若使用此方案建议使用源码运行方案
使用说明
参数详情说明参考 https://github.com/p0n1/epub_to_audiobook?tab=readme-ov-file#usage
源码运行
在项目跟目录下新建文件夹 epub
用于存放电子书,audiobook_output
用于存放输出的 MP3 文件
打开终端 配置相应服务运行所需参数
export MS_TTS_KEY=<your_subscription_key> # for Azure
export MS_TTS_REGION=<your_region> # for Azure
export OPENAI_API_KEY=<your_openai_api_key> # for OpenAI
Azure 服务
请参考 Docker 运行中的 Azure 服务运行示例,或官方文档
OpenAI 服务
python3 main.py ./epub/bBE911Mb_银荆的告白.05.epub ./audiobook_output --tts openai --model_name "tts-1-hd" --voice_name "fable" --log INFO
./epub/银荆的告白.05.epub
为电子书文件,./audiobook_output
为 MP3 输出目录
--modal_name
为使用的语音模型,这里使用了 fable 模型,模型列表点此查看
转发 OpenAI 服务
若你的 Key 不是官方的,则需要通过以下方式修改 openai 的请求地址(目前最新版本0.6.1 不支持从环境变量读取,所以要修改源码)
打开目录:
audiobook_generator/tts_providers/openai_tts_provider.py
找到代码:
self.client = OpenAI()
将请求地址修改为服务商地址
self.client = OpenAI( base_url="https://proxyopenai.com/v1", )
运行,运行方式和 OpenAI 官方服务一致
Docker 运行
新建一个文件夹比如 epub_to_audiobook
在文件夹内再新建文件夹 epub
用于存放电子书,audiobook_output
用于存放输出的 MP3 文件
Azure 服务
docker run -i -t --rm -v ./:/app -e MS_TTS_KEY=ttskey -e MS_TTS_REGION=eastasia ghcr.io/p0n1/epub_to_audiobook ./epub/银荆的告白.05.epub ./audiobook_output --tts azure --language zh-CN --voice_name "zh-CN-XiaochenMultilingualNeural" --log INFO --break_duration "350"
其中 MS_TTS_KEY
需填写自己申请的应用密钥,MS_TTS_REGION
为应用位置
./epub/银荆的告白.05.epub
为电子书文件,./audiobook_output
为 MP3 输出目录
--voice_name
这里使用了 zh-CN-XiaochenMultilingualNeural 这个语音,当然你也可以设置其他的,点击此处语音支持查看支持的语音
OpenAI 服务
docker run -i -t --rm -v ./:/app -e OPENAI_API_KEY=sk-openaikey ghcr.io/p0n1/epub_to_audiobook ./epub/bBE911Mb_银荆的告白.05.epub ./audiobook_output --tts openai --model_name "tts-1-hd" --voice_name "shimmer" --log INFO
其中 OPENAI_API_KEY
需要换成 OpenAI 密钥
./epub/银荆的告白.05.epub
为电子书文件,./audiobook_output
为 MP3 输出目录
--modal_name
为使用的语音模型,这里使用了 shimmer 模型,模型列表点此查看
搭建AudioBookShelf
官方文档地址: https://www.audiobookshelf.org/docs/
手机 APP 软件包: https://github.com/advplyr/audiobookshelf-app