Files
Canto/README.zh.md

4.7 KiB
Raw Blame History

Qwen3-TTS WebUI

基于 Qwen3-TTS 的文本转语音 Web 应用,支持自定义语音、语音设计和语音克隆。

English Documentation

功能特性

  • 自定义语音:预定义说话人语音
  • 语音设计:自然语言描述创建语音
  • 语音克隆:上传音频克隆语音
  • 双后端支持:支持本地模型和阿里云 TTS API 切换
  • 多语言支持English、简体中文、繁體中文、日本語、한국어
  • JWT 认证、异步任务、语音缓存、暗黑模式

界面预览

亮色与暗黑模式

亮色模式

亮色模式 - 自定义语音

暗黑模式

暗黑模式 - 自定义语音

语音设计

语音设计列表

管理您的自定义语音设计

保存语音设计

保存语音设计对话框

语音克隆

语音克隆

通过录音或上传音频克隆声音

技术栈

后端FastAPI + SQLAlchemy + PyTorch + JWT 前端React 19 + TypeScript + Vite + Tailwind + Shadcn/ui

快速开始

后端

cd qwen3-tts-backend
python -m venv venv
source venv/bin/activate
pip install -r requirements.txt
cp .env.example .env
# 编辑 .env 配置 MODEL_BASE_PATH 和 DEFAULT_BACKEND
# 本地模型:确保 MODEL_BASE_PATH 指向 Qwen 模型目录
# 阿里云:设置 DEFAULT_BACKEND=aliyun 并在 Web 设置页面配置 API 密钥
uvicorn main:app --host 0.0.0.0 --port 8000 --reload

前端

cd qwen3-tts-frontend
npm install
cp .env.example .env
# 编辑 .env 配置 VITE_API_URL
npm run dev

访问 http://localhost:5173

首次运行: 第一次运行时会自动初始化一个超级管理员账户:

  • 用户名:admin
  • 密码:admin123456
  • 重要: 强烈建议登录后立刻修改密码!

配置

后端配置

后端 .env 关键配置:

SECRET_KEY=your-secret-key
MODEL_DEVICE=cuda:0
MODEL_BASE_PATH=../Qwen
DATABASE_URL=sqlite:///./qwen_tts.db

DEFAULT_BACKEND=local

ALIYUN_REGION=beijing
ALIYUN_MODEL_FLASH=qwen3-tts-flash-realtime
ALIYUN_MODEL_VC=qwen3-tts-vc-realtime-2026-01-15
ALIYUN_MODEL_VD=qwen3-tts-vd-realtime-2026-01-15

后端选项:

  • DEFAULT_BACKEND: 默认 TTS 后端,可选值:localaliyun
  • 本地模式: 使用本地 Qwen3-TTS 模型(需要配置 MODEL_BASE_PATH
  • 阿里云模式: 使用阿里云 TTS API需要用户在设置页面配置 API 密钥)

阿里云配置:

  • 用户需要在 Web 界面的设置页面添加阿里云 API 密钥
  • API 密钥经过加密后安全存储在数据库中
  • 超级管理员可以控制是否为所有用户启用本地模型
  • 获取阿里云 API 密钥,请访问 阿里云控制台

前端配置

前端 .env

VITE_API_URL=http://localhost:8000

使用说明

切换后端

  1. 登录 Web 界面
  2. 进入设置页面
  3. 配置您偏好的后端:
    • 本地模型:选择"本地模型"(需要超级管理员启用本地模型)
    • 阿里云 API:选择"阿里云"并添加您的 API 密钥
  4. 选择的后端将默认用于所有 TTS 操作
  5. 也可以通过 API 的 backend 参数为单次请求指定不同的后端

管理阿里云 API 密钥

  1. 在设置页面找到"阿里云 API 密钥"部分
  2. 输入您的阿里云 API 密钥
  3. 点击"更新密钥"保存并验证
  4. 系统会在保存前验证密钥的有效性
  5. 可随时使用删除按钮删除密钥

API

POST /auth/register          - 注册
POST /auth/token             - 登录
POST /tts/custom-voice       - 自定义语音(支持 backend 参数)
POST /tts/voice-design       - 语音设计(支持 backend 参数)
POST /tts/voice-clone        - 语音克隆(支持 backend 参数)
GET  /jobs                   - 任务列表
GET  /jobs/{id}/download     - 下载结果

Backend 参数:

所有 TTS 接口都支持可选的 backend 参数来指定使用的 TTS 后端:

  • backend: "local" - 使用本地 Qwen3-TTS 模型
  • backend: "aliyun" - 使用阿里云 TTS API
  • 如果不指定,则使用用户的默认后端设置

许可证

Apache-2.0 license