Skip to content

Latest commit

 

History

History
167 lines (110 loc) · 5.36 KB

README.md

File metadata and controls

167 lines (110 loc) · 5.36 KB

MiGPT-TTS

适用于 MiGPT 的 TTS 模块,支持火山引擎 21 款免费音色。

⚡️ 快速开始

1. 创建火山引擎语音合成账号

首先,登录注册火山引擎:https://console.volcengine.com/auth/signup

然后,在产品列表搜索「语音合成」,选择「语音技术」,创建应用,勾选「语音合成」。

👉 查看教程

注意:账号注册成功之后,请先在个人中心完成实名认证,然后才能创建语音合成应用。

2. 配置环境变量

重命名本项目根目录下的 .env.example 文件为 .env

然后,将里面的环境变量修改成你自己的,参数含义如下:

环境变量名称 描述 示例
VOLCANO_TTS_APP_ID 火山引擎语音合成 APP ID 123456
VOLCANO_TTS_ACCESS_TOKEN 火山引擎语音合成 Access Token xxxxxx
TTS_DEFAULT_SPEAKER 默认音色名称或 ID(可选,查看完整音色列表和费用详情) BV700_streaming

3. 部署 MiGPT-TTS 服务

考虑到国内网络访问 Vercel 并不友好,此处仅提供 Docker 部署方式。

Docker Image Version

docker run -d --env-file $(pwd)/.env -p 4321:3000 idootop/mi-gpt-tts:latest

启动成功后,访问 http://[你的公网/局域网地址]:4321/api/tts.mp3 即可查看语音合成效果。

注意:如果你是通过 Node.js 本地启动本项目,则默认服务端口为 3000

4. 修改 MiGPT 默认 TTS 引擎

你可以通过以下步骤,切换 MiGPT 使用的 TTS 引擎:

  1. 配置 TTS_BASE_URL 环境变量
  2. 切换 speaker.ttscustom
// mi-gpt/.env
TTS_BASE_URL=http://[你的公网/局域网地址]:[端口号]/api

// mi-gpt/.migpt.js
export default {
  speaker: {
    // TTS 引擎
    tts: 'custom',
    // ...
  },
};

如果你的 MiGPT-TTS 服务与小爱音箱处在同一局域网下,那么也可以使用局域网地址。

注意:本项目中的部分音色名称,与火山引擎官方文档中的名称并不一致,完整的音色列表和名称以此处为准:volcano.ts

5. (可选)更新 MiGPT 提示音效链接

本项目内置了一些 MiGPT 使用的默认提示音效,部署成功后你可以使用提示音效替换原来的文字提示语。

# mi-gpt/.env
AUDIO_SILENT=http://[你的公网/局域网地址]:[端口号]/slient.wav
AUDIO_BEEP=http://[你的公网/局域网地址]:[端口号]/beep.wav
AUDIO_ACTIVE=http://[你的公网/局域网地址]:[端口号]/active.wav
AUDIO_ERROR=http://[你的公网/局域网地址]:[端口号]/error.wav

🛠️ 本地开发

如果你想要修改代码,添加对更多 TTS 引擎的支持(比如 ChatTTS、OpenAI 等),可以参考以下本地开发教程。

初始化

# 克隆项目到本地
git clone https://github.com/idootop/mi-gpt-tts.git
cd mi-gpt-tts

# 安装依赖
npm install

# 构建项目
npm run build

# 启动项目
npm run start

本地调试

在 VS Code 中打开本项目,然后在 tests/index.ts 配置好你想要调试的模块,然后按 F5 即可下断调试代码。

构建镜像

此项目默认支持 linux/amd64, linux/arm64linux/arm32/v7,可使用以下命令构建指定平台的镜像:

docker build --platform linux/arm/v7 -t mi-gpt-tts .

运行构建后的 Docker 镜像

docker run -d --env-file $(pwd)/.env -p 4321:3000 mi-gpt-tts

🔗 接口定义

本项目主要实现了 MiGPT 用到的以下两个接口规范:

GET /api/tts.mp3

文字合成音频,请求示例:/api/tts.mp3?speaker=BV700_streaming&text=很高兴认识你

其中,请求参数 speaker 为指定音色名称或标识,可选。

GET /api/speakers

获取音色列表

属性 说明 示例
name 音色名称 灿灿
gender 性别
speaker 音色标识 BV700_streaming

返回值示例

[
  {
    "name": "广西老表",
    "gender": "",
    "speaker": "BV213_streaming"
  },
  {
    "name": "甜美台妹",
    "gender": "",
    "speaker": "BV025_streaming"
  }
]

License

MIT License © 2024-PRESENT Del Wang