跳转到主要内容
语音合成

声音复刻

根据音频样本创建自定义音色,用于语音合成或实时语音对话。

功能介绍

声音复刻适用于个性化语音助手、品牌专属播报和有声内容定制等场景,无需训练模型。
如需通过自然语言描述创建音色,无需提供音频样本,请使用声音设计。

准备工作

pip install requests
  • 准备符合音频要求的音频文件。Qwen-Audio-TTS、Qwen-Audio-Realtime 和 CosyVoice 支持公网 URL 或 Base64 Data URI;MiniMax 仍使用公网 URL。以下示例使用示例音频的 URL,本地音频的编码和传参方式请参见 HTTP API。

开始使用

Qwen-Audio-TTS / Qwen-Audio-Realtime / CosyVoice 的复刻音色在创建时绑定到 target_model,不能跨模型使用。如需让多个模型使用同一段音频的声音,应为每个模型分别创建音色。
  • Qwen-Audio-TTS / CosyVoice
  • Qwen-Audio-Realtime
  • MiniMax
Qwen-Audio-TTS 和 CosyVoice 使用相同的音色创建和基础合成流程。以下以 qwen-audio-3.1-tts-flash 为例。
  1. 创建音色:通过 HTTP API 的 audio 字段传入参考音频 URL 或 Base64 Data URI,target_model 指定目标模型,prefix 为音色名称前缀。
  2. 合成语音:将返回的音色 ID 传入 voice,使用同一个目标模型合成语音并保存音频。
import os
import time
import requests

target_model = "qwen-audio-3.1-tts-flash"
base_url = "https://maas.qianwenaiapi.com/api/v1"
headers = {"Authorization": f"Bearer {os.environ['DASHSCOPE_API_KEY']}"}

response = requests.post(
  f"{base_url}/services/audio/tts/customization",
  headers=headers,
  json={
    "model": "voice-enrollment",
    "input": {
      "action": "create_voice",
      "target_model": target_model,
      "prefix": "myvoice",
      "audio": "https://dashscope.oss-cn-beijing.aliyuncs.com/samples/audio/cosyvoice/cosyvoice-zeroshot-sample.wav",
    },
  },
  timeout=60,
)
response.raise_for_status()
voice_id = response.json()["output"]["voice_id"]
print(f"voice_id: {voice_id}")

for _ in range(30):
  response = requests.post(
    f"{base_url}/services/audio/tts/customization",
    headers=headers,
    json={
      "model": "voice-enrollment",
      "input": {"action": "query_voice", "voice_id": voice_id},
    },
    timeout=60,
  )
  response.raise_for_status()
  status = response.json()["output"]["status"]
  if status == "OK":
    break
  if status != "DEPLOYING":
    raise RuntimeError(f"Voice status: {status}")
  time.sleep(1)
else:
  raise TimeoutError("Voice is not ready")

response = requests.post(
  f"{base_url}/services/audio/tts/SpeechSynthesizer",
  headers=headers,
  json={
    "model": target_model,
    "input": {
      "text": "今天天气晴朗,适合外出散步。祝你度过愉快的一天。",
      "voice": voice_id,
      "format": "wav",
      "sample_rate": 24000,
    },
  },
  timeout=60,
)
response.raise_for_status()
audio_url = response.json()["output"]["audio"]["url"]
audio_response = requests.get(audio_url, timeout=60)
audio_response.raise_for_status()
with open("output.wav", "wb") as f:
  f.write(audio_response.content)
运行后,合成音频保存为 output.wav。保存打印的音色 ID,后续可继续使用。
更多声音复刻参数与示例请参见 HTTP API、Python SDK 和 Java SDK。 使用复刻音色进行语音合成或实时语音对话的调用方式,请参见:

音频要求

输入音频的质量会影响音色的相似度和自然度。按目标模型的规格准备样本,并参照下方录音建议减少噪声、混响和其他人声。
  • Qwen-Audio-TTS / Qwen-Audio-Realtime / CosyVoice
  • MiniMax
项目要求
支持格式WAV(16-bit)、MP3、M4A
音频时长推荐 10~20 秒,最长不超过 60 秒。
文件大小≤ 10 MB
采样率≥ 16 kHz
声道单声道或双声道。双声道音频仅处理首声道,首声道需包含有效人声。
内容至少包含 5 秒连续清晰的朗读内容,其余部分仅允许短暂停顿(≤ 2 秒)。避免背景音乐、环境噪声和其他人声。使用正常语速的说话音频,不使用歌曲或唱歌录音。
支持语言
  • Qwen-Audio-TTS / Qwen-Audio-Realtime:中文(普通话、广东话、重庆话、东北话、甘肃话、贵州话、浙江话、河北话、河南话、湖北话、湖南话、江西话、宁波话、宁夏话、青岛话、陕西话、山西话、山东话、上海话、四川话、云南话)、英语、日语、韩语、俄语、法语、德语、葡萄牙语、泰语、印尼语、越南语、西班牙语、意大利语、马来西亚语、菲律宾语、阿拉伯语
  • CosyVoice:参考音频支持的语言因驱动音色的目标模型而异。
  • cosyvoice-v3.5-plus、cosyvoice-v3.5-flash、cosyvoice-v3-flash:中文(普通话、广东话、东北话、甘肃话、贵州话、河南话、湖北话、江西话、闽南话、宁夏话、山西话、陕西话、山东话、上海话、四川话、天津话、云南话)、英文、法语、德语、日语、韩语、俄语、葡萄牙语、泰语、印尼语、越南语
  • cosyvoice-v3-plus:中文(普通话、广东话、东北话、甘肃话、贵州话、河南话、湖北话、江西话、闽南话、宁夏话、山西话、陕西话、山东话、上海话、四川话、天津话、云南话)、英文、法语、德语、日语、韩语、俄语
  • cosyvoice-v2:中文(普通话)、英文
清晰、自然的录音有助于获得高质量的参考音频并保留声音特征。录音前可参考以下录音与操作建议。
录音设备可使用手机、数字录音笔、专业录音机等。建议使用支持高采样率(≥ 24 kHz)录音的设备,以满足音频要求。录音环境场地
  • 建议在 10 平方米以内的小型封闭空间录音。
  • 优先选择配有吸音材料(如吸音棉、地毯、窗帘)的房间。
  • 避免空旷大厅、会议室、教室等高混响场所。
噪音控制
  • 室外噪音:关闭门窗,避免交通、施工等干扰。
  • 室内噪音:关闭空调、风扇、日光灯镇流器等设备;可通过手机录制环境音并放大播放,识别潜在噪音源。
混响控制
  • 混响会导致声音模糊、清晰度下降。
  • 减少光滑表面反射:拉上窗帘、打开衣柜门、铺放衣物或床单覆盖桌面/柜面。
  • 利用不规则物体(如书架、软包家具)实现声波漫反射。
录音文案
  • 内容无特殊限制,建议与目标应用场景一致。
  • 避免短句(如你好、是的),应使用完整句子。
  • 保持语义连贯,朗读时避免频繁停顿(建议至少连续 3 秒无中断)。
  • 录音全程保持一致的语速,避免开头或结尾语速过快导致合成时出现卡顿。
  • 可加入适当情绪表达(如温暖、亲切、严肃),避免机械朗读。
  • 不包含敏感词汇(如政治、色情、暴力相关内容),否则会导致复刻失败。
操作建议以普通卧室为例,完成降噪和混响控制后:
  1. 提前熟悉文案,设定角色语气,自然演绎。
  2. 与录音设备保持约 10 厘米距离,避免喷麦或信号过弱。

音色管理

Qwen-Audio-TTS、Qwen-Audio-Realtime 和 CosyVoice 使用相同的音色查询、更新与删除接口。具体接口与参数请参见声音复刻 HTTP API 参考。
  • 查询音色列表:查看账号下已有的自定义音色。
  • 查询音色详情:查看创建时间、绑定模型等信息。
  • 更新音色:替换参考音频,保留原有音色 ID。
  • 删除音色:删除不再使用的音色,释放配额。
创建的音色默认长期有效。保存音色 ID,需要时可通过查询接口确认音色是否可用。
MiniMax 的音色查询与删除请参见声音管理。

支持模型

使用 API Key 调用以下模型:
  • Qwen-Audio-TTS:qwen-audio-3.1-tts-plus、qwen-audio-3.1-tts-flash、qwen-audio-3.0-tts-plus、qwen-audio-3.0-tts-flash
  • Qwen-Audio-Realtime:qwen-audio-3.1-realtime-plus、qwen-audio-3.0-realtime-plus、qwen-audio-3.0-realtime-flash
  • CosyVoice:cosyvoice-v3.5-plus、cosyvoice-v3.5-flash、cosyvoice-v3-plus、cosyvoice-v3-flash、cosyvoice-v2
  • MiniMax:MiniMax/speech-2.8-hd、MiniMax/speech-02-hd、MiniMax/speech-2.8-turbo、MiniMax/speech-02-turbo

配额与限制

  • 音色数量:每个千问AI平台账号的自定义音色总数上限为 1000 个。声音复刻和声音设计共用该配额,不按模型分别计算。
    • 达到上限后,新的声音复刻或声音设计创建请求将失败。需先删除不再使用的音色,释放配额后再创建。
    • MiniMax 创建的音色不受上述数量配额约束。

计费说明

  • Qwen-Audio-TTS / Qwen-Audio-Realtime / CosyVoice:创建音色免费。使用复刻音色合成语音或进行实时语音对话时,按目标模型计费。
  • MiniMax:声音复刻本身不计费。复刻请求生成的试听音频按同步语音合成单价计费;首次使用复刻音色进行语音合成时,扣除 9.9 元音色解锁费用,且无免费额度。
声音复刻 - 千问AI平台