yeahhe365/qwen-voice-clone

GitHub: yeahhe365/qwen-voice-clone

Stars: 0 | Forks: 0

# Qwen Voice Clone

中文 | English

通义千问语音克隆工具 — 从 [omni.qwen.ai/voice-clone](https://omni.qwen.ai/voice-clone) 逆向的语音克隆接口。 提供 **WebUI** 和 **CLI** 两种使用方式。 上传一段音频(10-60 秒),即可生成用该声音朗读任意文本的语音。 ## 工作原理 1. **获取 STS Token** — `POST /api/v2/omni/files/getstsToken`,获取阿里云 OSS 临时上传凭证 2. **上传音频** — 通过 `oss2` SDK 上传到阿里云 OSS 3. **语音克隆** — `POST /api/v2/omni/voice/clone_stream`,SSE 流式返回克隆音频 URL ## 前置条件 - Python 3.8+ - 安装依赖:`pip install requests oss2` - 从浏览器获取认证信息(见下方) ## 获取认证信息 1. 打开 [omni.qwen.ai/voice-clone](https://omni.qwen.ai/voice-clone) 并登录 2. 打开浏览器 DevTools(F12) 3. **获取 Token**: `Application → Local Storage → token` 的值 4. **获取 Cookie**: `Application → Cookies → omni.qwen.ai` 的所有 cookie(可复制任意一条后拼接成 `key=value; key=value` 格式) ## 使用方法 export QWEN_TOKEN="eyJhbGciOiJIUzI1NiIs..." export QWEN_COOKIES="acw_tc=...; cna=...; aui=...; ..." python3 qwen_voice_clone.py /path/to/audio.mp3 自定义文本和模型: python3 qwen_voice_clone.py sample.mp3 \ --text "你好,我是你的AI助手,今天天气不错。" \ --model qwen3.5-omni-plus ### 参数说明 | 参数 | 说明 | 默认值 | |------|------|--------| | `audio_file` | 音频文件路径(10-60 秒,mp3/wav) | 必填 | | `--text` | 克隆声音朗读的文本 | `This is a sample text...` | | `--model` | 模型选择 | `qwen3.5-omni-flash` | 可选模型:`qwen3.5-omni-flash`、`qwen3.5-omni-plus` ## WebUI 模式 图形界面,无需配置环境变量: pip install fastapi uvicorn python-multipart jinja2 oss2 requests python3 webui.py 打开 http://localhost:8008 在网页中填入 Token 和 Cookies、上传音频、输入文本即可克隆。 ## 输出 成功后克隆音频保存为 WAV 文件,URL 会打印在终端。 ## 注意事项 - 认证信息(token/cookie)有过期时间,过期后需要重新从浏览器获取 - `token` cookie 是 HttpOnly 的,无法通过 `document.cookie` 读取,需从 `localStorage.token` 获取 - 请求头必须包含 `source: web`、`version: 0.0.5`、`timezone`,否则服务端返回 `Verification failed` ## 友链 ## License MIT