Skip to content
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
8 changes: 7 additions & 1 deletion docs/development-guide/backend/tts.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -17,7 +17,7 @@ sidebar_position: 1
## 0. 总览

### 0.1 要求
- 最新版本的 Open-LLM-VTuber,并请切换到 dev 分支进行开发 (Pull Request 也请开到 dev 分支)。
- 最新版本的 Open-LLM-VTuber,并请切换到 `main` 分支进行开发 (Pull Request 也请开到 `main` 分支)。
- 会写 Python (不过你跟着下面步骤走就知道你会不会 Python 了。你可以边走边学)
- 大概理解 GitHub 开源工作流。具体来说,理解 fork 与 Pull Request 的概念。
- 理解如何使用 uv 管理 Python 项目依赖。(不会 uv 的[这里学](https://docs.astral.sh/uv/getting-started/features/#projects))
Expand Down Expand Up @@ -46,6 +46,12 @@ sidebar_position: 1
1. 请前往 [用户指南/后端用户指南/语音合成(TTS)](https://github.com/Open-LLM-VTuber/open-llm-vtuber.github.io/blob/main/docs/user-guide/backend/tts.md),编辑 TTS 文档的源代码并添加你实现的 TTS 的安装指南。
- 如果你在这一步遇到困难,你可以直接联系我,我可以帮你把文档添加进文档网站中 (但安装指南要自己写!)

:::tip
如果你的 TTS 服务已经提供 OpenAI 兼容的 `/v1/audio/speech` 接口,优先复用现有的请求流程,再把服务特有参数留在单独的适配器里。

以 `qwen_tts` 为例,适合的做法是复用 `openai_tts` 的基础调用方式,只在 `qwen_tts` 中补充 Qwen 特有的可选字段,例如 `language`。不要把 Qwen 专用逻辑直接塞进通用的 `openai_tts` 实现中。
:::


## 1. 开发:

Expand Down
38 changes: 38 additions & 0 deletions docs/user-guide/backend/tts.md
Original file line number Diff line number Diff line change
Expand Up @@ -281,6 +281,44 @@ stream(流式生成)推荐填 False,因为本项目已包含语音分段
- 需要保持网络连接
- 配置:在 `conf.yaml` 中设置 `tts_model: edge_tts`

## Qwen3 TTS(本地、OpenAI 兼容接口)
适合已经在本地部署了 Qwen3 TTS FastAPI 服务的用户。这个服务需要提供 OpenAI 兼容的 `POST /v1/audio/speech` 接口,Open-LLM-VTuber 会把它当作一个本地 TTS 后端来调用。

1. 先准备本地 Qwen3 TTS 服务
- 推荐使用干净的 Python 3.12 环境。
- 按你的 Qwen3 TTS 服务说明准备基础模型、voice design 模型和用户自己生成的提示音色资产。
- 参考音频、生成出来的 `.wav` / `.pkl` 提示资产不应该提交到 Git 仓库。

2. 启动本地 FastAPI 服务
- 确认服务已经监听在本地地址,例如 `http://127.0.0.1:8000/v1`
- 确认可以正常响应 `POST /v1/audio/speech`

3. 在 `conf.yaml` 中配置:
```yaml
tts_model: qwen_tts

qwen_tts:
model: "qwen3-tts-en-single"
voice: "default"
api_key: "not-needed"
base_url: "http://127.0.0.1:8000/v1"
file_extension: "wav"
language: "English"
```

4. 配置说明
- `model`: 传给本地 Qwen3 TTS 服务的模型名。
- `voice`: 使用的音色名。建议在服务端把默认值做成可配置项。
- `api_key`: 本地服务一般不需要鉴权,可以保留 `not-needed`。
- `base_url`: 你的 FastAPI 服务地址,通常应包含 `/v1`。
- `file_extension`: 推荐使用 `wav`,与本地流式播放更容易兼容。
- `language`: 可选字段。如果你的服务支持显式语言控制,可以在这里填写。

5. 使用建议
- 先单独测试本地 TTS 服务,再接入 Open-LLM-VTuber。
- 如果你计划开源自己的 Qwen3 TTS 服务,请把安装步骤、模型下载方式、提示资产生成流程写进 README。
- 不要在公开仓库中提交私人参考音频、生成后的提示资产,或写死的角色音色设定。

## Fish Audio TTS(在线、需要 API 密钥)
> 自 `v0.3.0-beta` 版本起可用

Expand Down