Qwen3-TTS-VC

复制成功!
立即体验加入对比
语音合成

概述

语音合成

Qwen3-TTS-Flash模型是通义最新推出的实时语音合成大模型,可对qwen-voice-enrollment服务复刻的声音进行高保真实时语音合成,且同一音色支持11个语种的语音输出。该模型经过海量数据训练,合成音频可以根据文本自适应调节语气,对复杂文本合成也有较好的处理能力。该模型为2026年01月22日快照版本模型。

输入

文本

输出

音频

功能

前缀补全

您可在调用通义千问 API 时启用 Partial Mode,确保模型严格基于您的起始文本进行生成。查看文档

函数调用

您可以使用 函数调用 功能,通过引入外部工具,使得大模型可以与外部世界进行交互。查看文档

缓存

Context Cache 技术会缓存长上下文请求的公共前缀,减少推理时的重复计算,提升响应速度同时降低您的使用成本。查看文档

结构化输出

开启结构化输出功能可以确保大模型输出标准格式的 JSON 字符串。查看文档

批量任务

联网搜索

启用联网检索功能后,模型将基于实时检索数据进行回复。查看文档

微调

定价

  • 语音合成
    ¥0.8每万字符

速率限制

  • RPM每分钟请求数
    180

API 参考

获取 API Key
复制成功!
12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364
import os
import requests
import base64
import pathlib
import dashscope


DEFAULT_TARGET_MODEL = "qwen3-tts-vc-2026-01-22"
DEFAULT_PREFERRED_NAME = "guanyu"
DEFAULT_AUDIO_MIME_TYPE = "audio/mpeg"
VOICE_FILE_PATH = "voice.mp3"


def create_voice(file_path: str,
                 target_model: str = DEFAULT_TARGET_MODEL,
                 preferred_name: str = DEFAULT_PREFERRED_NAME,
                 audio_mime_type: str = DEFAULT_AUDIO_MIME_TYPE) -> str:
    api_key = os.getenv("DASHSCOPE_API_KEY")

    file_path_obj = pathlib.Path(file_path)
    if not file_path_obj.exists():
        raise FileNotFoundError(f"音频文件不存在: {file_path}")

    base64_str = base64.b64encode(file_path_obj.read_bytes()).decode()
    data_uri = f"data:{audio_mime_type};base64,{base64_str}"

    url = "https://dashscope.aliyuncs.com/api/v1/services/audio/tts/customization"
    payload = {
        "model": "qwen-voice-enrollment",
        "input": {
            "action": "create",
            "target_model": target_model,
            "preferred_name": preferred_name,
            "audio": {"data": data_uri}
        }
    }
    headers = {
        "Authorization": f"Bearer {api_key}",
        "Content-Type": "application/json"
    }

    resp = requests.post(url, json=payload, headers=headers)
    if resp.status_code != 200:
        raise RuntimeError(f"create voice failed: {resp.status_code}, {resp.text}")

    try:
        return resp.json()["output"]["voice"]
    except (KeyError, ValueError) as e:
        raise RuntimeError(f"failed: {e}")


if __name__ == '__main__':
    dashscope.base_http_api_url = 'https://dashscope.aliyuncs.com/api/v1'

    text = "今天天气怎么样?"
    
    response = dashscope.MultiModalConversation.call(
        model=DEFAULT_TARGET_MODEL,
        api_key=os.getenv("DASHSCOPE_API_KEY"),
        text=text,
        voice=create_voice(VOICE_FILE_PATH),
        stream=False
    )
    print(response)