环境搭建

源码运行

需要准备 Python 环境

GitHub地址: https://github.com/p0n1/epub_to_audiobook

  1. 克隆代码

    git clone https://github.com/p0n1/epub_to_audiobook.git
    cd epub_to_audiobook
  2. 创建虚拟环境并激活

    python3 -m venv venv
    source venv/bin/activate
  3. 安装所需的依赖项

    pip install -r requirements.txt

Docker 运行

需要准备 Docker 环境

准备账号

Azure 账号准备

  1. 注册地址: https://portal.azure.com/

  2. 此页面创建语音服务

  3. 创建完成后复制 密钥位置/区域 后续使用

OpenAI 账号准备(需要国外手机号)

  1. 注册地址: https://platform.openai.com/signup

  2. 生成 API keys: https://platform.openai.com/api-keys

  3. 复制 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 不支持从环境变量读取,所以要修改源码)

  1. 打开目录: audiobook_generator/tts_providers/openai_tts_provider.py

  2. 找到代码:

    self.client = OpenAI()
  3. 将请求地址修改为服务商地址

    self.client = OpenAI(
       base_url="https://proxyopenai.com/v1",
    )
  4. 运行,运行方式和 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