声音复刻(Voice Cloning)只需提供一段 10~20 秒的音频样本,即可生成高度相似的定制音色,无需模型训练。
概述
声音复刻只需 10~20 秒音频样本即可生成高度相似的定制音色,无需模型训练。适用于个性化语音助手、品牌专属播报、有声内容定制化等场景。
百炼平台提供以下模型系列的声音复刻能力:
CosyVoice:通过 DashScope SDK 或 HTTP API 创建音色,支持实时与非实时语音合成,可用于北京和新加坡地域。
Qwen-TTS:通过 HTTP API 创建音色,支持实时与非实时语音合成,可用于北京和新加坡地域。
MiniMax:通过 HTTP API 创建音色,仅支持非实时语音合成,仅限北京地域使用。
如需了解各模型系列的详细对比和选型建议,请参见语音合成。
前提条件
已配置 API Key并将其设置到环境变量。
如果通过 DashScope SDK 调用,需要安装最新版SDK。
准备音频文件:音频需符合音频要求。
快速开始
声音复刻的使用分为以下三步:
准备音频:准备一段符合音频要求的音频文件。
创建音色:调用声音复刻接口上传音频,系统会自动提取声纹特征并生成专属音色。创建时必须通过
target_model指定该音色绑定的语音合成模型。使用音色合成语音:调用语音合成接口,传入创建音色时返回的音色 ID。注意,语音合成模型必须与创建音色时指定的
target_model一致,否则合成将失败。
Qwen-TTS 声音复刻
以下示例演示完整的声音复刻流程:先上传音频创建音色,再使用该音色进行语音合成。示例中使用本地音频文件voice.mp3,运行时请替换为实际的文件路径。
创建音色时的target_model必须与语音合成时使用的模型完全一致,否则合成将失败。
Python
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:
"""
创建音色,并返回 voice 参数
"""
# 新加坡和北京地域的API Key不同。获取API Key:https://help.aliyun.com/zh/model-studio/get-api-key
# 若没有配置环境变量,请用百炼API Key将下行替换为:api_key = "sk-xxx"
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,若使用新加坡地域的模型,需将url替换为:https://dashscope-intl.aliyuncs.com/api/v1/services/audio/tts/customization
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"创建 voice 失败: {resp.status_code}, {resp.text}")
try:
return resp.json()["output"]["voice"]
except (KeyError, ValueError) as e:
raise RuntimeError(f"解析 voice 响应失败: {e}")
if __name__ == '__main__':
# 以下为北京地域url,若使用新加坡地域的模型,需将url替换为:https://dashscope-intl.aliyuncs.com/api/v1
dashscope.base_http_api_url = 'https://dashscope.aliyuncs.com/api/v1'
text = "今天天气怎么样?"
response = dashscope.MultiModalConversation.call(
model=DEFAULT_TARGET_MODEL,
# 新加坡和北京地域的API Key不同。获取API Key:https://help.aliyun.com/zh/model-studio/get-api-key
# 若没有配置环境变量,请用百炼API Key将下行替换为:api_key = "sk-xxx"
api_key=os.getenv("DASHSCOPE_API_KEY"),
text=text,
voice=create_voice(VOICE_FILE_PATH), # 将voice参数替换为复刻生成的专属音色
stream=False
)
print(response)cURL
通过 cURL 进行声音复刻分为两步:先创建音色,再用该音色合成语音。
步骤一:创建音色
# 将 voice.mp3 替换为实际音频文件路径
# 以下为北京地域url,若使用新加坡地域的模型,需将url替换为:https://dashscope-intl.aliyuncs.com/api/v1/services/audio/tts/customization
# 新加坡和北京地域的API Key不同。获取API Key:https://help.aliyun.com/zh/model-studio/get-api-key
AUDIO_BASE64=$(base64 -i voice.mp3)
curl -X POST 'https://dashscope.aliyuncs.com/api/v1/services/audio/tts/customization' \
-H "Authorization: Bearer $DASHSCOPE_API_KEY" \
-H 'Content-Type: application/json' \
-d '{
"model": "qwen-voice-enrollment",
"input": {
"action": "create",
"target_model": "qwen3-tts-vc-2026-01-22",
"preferred_name": "guanyu",
"audio": {"data": "data:audio/mpeg;base64,'$AUDIO_BASE64'"}
}
}'步骤二:使用复刻音色合成语音
将上一步返回的voice值填入以下请求中。
# 将 YOUR_VOICE_ID 替换为上一步返回的 voice 值
# 以下为北京地域url,若使用新加坡地域的模型,需将url替换为:https://dashscope-intl.aliyuncs.com/api/v1/services/aigc/multimodal-generation/generation
curl -X POST 'https://dashscope.aliyuncs.com/api/v1/services/aigc/multimodal-generation/generation' \
-H "Authorization: Bearer $DASHSCOPE_API_KEY" \
-H 'Content-Type: application/json' \
-d '{
"model": "qwen3-tts-vc-2026-01-22",
"input": {
"text": "今天天气怎么样?",
"voice": "YOUR_VOICE_ID"
}
}'CosyVoice 声音复刻
CosyVoice 声音复刻通过专用的声音复刻 API 进行操作,同样遵循"创建音色 → 使用音色合成"的流程。
CosyVoice 声音复刻仅支持北京地域(v3.5/v2/v1 系列)和新加坡地域(v3 系列)。
步骤一:创建音色
调用声音复刻 API 上传音频并创建音色。url参数传入音频文件的可访问 URL 地址,prefix参数作为音色名称前缀。
# 将 url 替换为实际音频文件的可访问地址
# 以下为北京地域 URL
# 获取 API Key:https://help.aliyun.com/zh/model-studio/get-api-key
curl -X POST https://dashscope.aliyuncs.com/api/v1/services/audio/tts/customization \
-H "Authorization: Bearer $DASHSCOPE_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "voice-enrollment",
"input": {
"action": "create_voice",
"target_model": "cosyvoice-v3.5-plus",
"prefix": "myvoice",
"url": "https://your-audio-url.wav",
"language_hints": ["zh"]
}
}'步骤二:使用复刻音色合成语音
将上一步返回的voice值填入以下请求中。
# 将 YOUR_VOICE_ID 替换为上一步返回的 voice 值
# 以下为北京地域 URL
curl -X POST https://dashscope.aliyuncs.com/api/v1/services/audio/tts/SpeechSynthesizer \
-H "Authorization: Bearer $DASHSCOPE_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "cosyvoice-v3.5-plus",
"input": {
"text": "今天天气怎么样?",
"voice": "YOUR_VOICE_ID",
"format": "wav",
"sample_rate": 24000
}
}'MiniMax 音色复刻
MiniMax 音色复刻仅在中国内地地域可用。提交复刻请求后,系统会生成一段试听音频(按同步语音合成单价计费)。首次使用复刻音色进行语音合成时,需支付 9.9 元音色解锁费用。
步骤一:创建音色
调用音色复刻 API 上传音频并创建音色。voice_id参数用于指定新音色的 ID,audio_url参数传入音频文件的可访问 URL 地址。
# 将 audio_url 替换为实际音频文件的可访问地址
# 将 voice_id 替换为自定义的音色 ID
# 获取 API Key:https://help.aliyun.com/zh/model-studio/get-api-key
curl -X POST 'https://dashscope.aliyuncs.com/api/v1/services/aigc/multimodal-generation/generation' \
-H "Authorization: Bearer $DASHSCOPE_API_KEY" \
-H 'Content-Type: application/json; charset=utf-8' \
-d '{
"input": {
"action": "voice_clone",
"voice_id": "my-custom-voice",
"audio_url": "https://your-audio-url.wav",
"text": "你说是什么就是什么"
},
"model": "MiniMax/speech-2.8-turbo"
}'步骤二:使用复刻音色合成语音
将上一步指定的voice_id值填入以下请求中。
# 将 voice_id 替换为上一步指定的音色 ID
curl -X POST "https://dashscope.aliyuncs.com/api/v1/services/aigc/multimodal-generation/generation" \
-H "Authorization: Bearer $DASHSCOPE_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "MiniMax/speech-2.8-turbo",
"input": {
"text": "今天天气怎么样?",
"voice_setting": {
"voice_id": "my-custom-voice",
"speed": 1,
"vol": 1,
"pitch": 0
},
"audio_setting": {
"sample_rate": 32000,
"bitrate": 128000,
"format": "mp3",
"channel": 1
}
}
}'音频要求
输入音频的质量直接决定复刻效果。不同模型系列对音频的具体要求有所差异,请按照目标模型的要求准备音频样本。
CosyVoice
项目 | 要求 |
支持格式 | WAV (16bit)、MP3、M4A |
音频时长 | 推荐 10~20 秒,最长不超过 60 秒 |
文件大小 | ≤ 10 MB |
采样率 | ≥ 16 kHz |
声道 | 单声道或双声道。双声道音频仅处理首声道,请确保首声道包含有效人声。 |
内容 | 音频必须包含至少 5 秒连续清晰的朗读内容(无背景音),其余部分仅允许短暂停顿(≤ 2 秒)。整段音频应避免出现背景音乐、环境噪音或其他人声。请使用正常语速的说话音频,不要上传歌曲或唱歌录音。 |
支持语言 | 因驱动音色的语音合成模型(通过
|
Qwen-TTS
项目 | 要求 |
支持格式 | WAV (16bit)、MP3、M4A |
音频时长 | 推荐 10~20 秒,最长不超过 60 秒 |
文件大小 | < 10 MB |
采样率 | ≥ 24 kHz |
声道 | 单声道 |
内容 | 音频必须包含至少 3 秒连续清晰的朗读内容(无背景音),其余部分仅允许短暂停顿(≤ 2 秒)。整段音频应避免出现背景音乐、环境噪音或其他人声。请使用正常语速的说话音频,不要上传歌曲或唱歌录音。 |
支持语言 | 中文、英文、德语、意大利语、葡萄牙语、西班牙语、日语、韩语、法语、俄语 |
MiniMax
项目 | 要求 |
支持格式 | MP3、M4A、WAV |
音频时长 | 不低于 10 秒,最长不超过 5 分钟 |
文件大小 | ≤ 20 MB |
内容 | 音频应包含连续清晰的朗读内容(无背景音),停顿时长不超过 2 秒。整段音频应避免出现背景音乐、环境噪音或其他人声。请使用正常语速的说话音频,不要上传歌曲或唱歌录音。 |
支持语言 | 无特殊限制 |
为获得最佳复刻效果,建议参照录音建议准备样本。
录音建议
高质量的输入音频是获得优质复刻效果的基础。以下从录音设备、录音环境、录音文案和操作流程四个方面提供建议。
录音设备
可使用手机、数字录音笔、专业录音机等。建议使用支持高采样率(≥ 24 kHz)录音的设备,以满足音频要求。
录音环境
场地
建议在 10 平方米以内的小型封闭空间录音。
优先选择配有吸音材料(如吸音棉、地毯、窗帘)的房间。
避免空旷大厅、会议室、教室等高混响场所。
噪音控制
室外噪音:关闭门窗,避免交通、施工等干扰。
室内噪音:关闭空调、风扇、日光灯镇流器等设备;可通过手机录制环境音并放大播放,识别潜在噪音源。
混响控制
混响会导致声音模糊、清晰度下降。
减少光滑表面反射:拉上窗帘、打开衣柜门、铺放衣物或床单覆盖桌面/柜面。
利用不规则物体(如书架、软包家具)实现声波漫反射。
录音文案
内容无特殊限制,建议与目标应用场景一致。
避免短句(如"你好"、"是的"),应使用完整句子。
保持语义连贯,朗读时避免频繁停顿(建议至少连续 3 秒无中断)。
录音的开头和结尾部分应保持与中间段落一致的语速,避免因开头或结尾语速过快导致复刻后语音合成时出现卡顿现象。
可加入适当情绪表达(如温暖、亲切、严肃),避免机械朗读。
不包含敏感词汇(如政治、色情、暴力相关内容),否则会导致复刻失败。
操作建议
以普通卧室为例:
关闭门窗,隔绝外部噪音。
关闭空调、电扇等电器。
拉上窗帘,减少玻璃反射。
在桌面铺放衣物或毛毯,降低桌面反射。
提前熟悉文案,设定角色语气,自然演绎。
与录音设备保持约 10 厘米距离,避免喷麦或信号过弱。
管理自定义音色
音色创建完成后,您可以通过 API 对已有音色进行查询和管理(Qwen-TTS 和 CosyVoice 支持)。
MiniMax 仅支持创建音色,不支持查询和删除等音色管理操作。
查询音色列表:获取当前账号下所有自定义音色的列表。
查询音色详情:查看指定音色的详细信息,如创建时间、绑定的语音合成模型等。
删除音色:删除不再需要的自定义音色,释放配额。
各模型的 API 接口和参数详情请参见API 参考。
适用范围
不同服务部署范围支持的模型不同:
中国内地
服务部署范围为中国内地时,模型推理计算资源仅限于中国内地;静态数据存储于您所选的地域。该部署范围支持的地域:华北2(北京)。
调用以下模型时,请选择北京地域的API Key:
CosyVoice:cosyvoice-v3.5-plus、cosyvoice-v3.5-flash、cosyvoice-v3-plus、cosyvoice-v3-flash、cosyvoice-v2、cosyvoice-v1
MiniMax:MiniMax/speech-2.8-hd、MiniMax/speech-02-hd、MiniMax/speech-2.8-turbo、MiniMax/speech-02-turbo
Qwen-TTS:
千问3-TTS-VC-Realtime:qwen3-tts-vc-realtime-2026-01-15(最新快照版)、qwen3-tts-vc-realtime-2025-11-27(快照版)
千问3-TTS-VC:qwen3-tts-vc-2026-01-22(最新快照版)
国际
服务部署范围为国际时,模型推理计算资源在全球范围内动态调度(不含中国内地);静态数据存储于您所选的地域。该部署范围支持的地域:新加坡。
调用以下模型时,请选择新加坡地域的API Key:
CosyVoice:cosyvoice-v3-plus、cosyvoice-v3-flash
Qwen-TTS:
千问3-TTS-VC-Realtime:qwen3-tts-vc-realtime-2026-01-15(最新快照版)、qwen3-tts-vc-realtime-2025-11-27(快照版)
千问3-TTS-VC:qwen3-tts-vc-2026-01-22(最新快照版)
API 参考
常见问题
Q:创建音色后可以用于不同的语音合成模型吗?
不可以。音色在创建时通过target_model绑定到特定的语音合成模型,不能跨模型使用。如果您需要在多个模型上使用同一段音频的声音,请为每个模型分别创建音色。
Q:复刻音色的有效期是多久?
Qwen-TTS 和 CosyVoice 创建的音色默认长期有效,但长时间未使用的音色可能会被系统清理。建议妥善保存音色 ID,需要时可通过查询接口确认音色是否仍然可用。
Q:音频质量不好会影响复刻效果吗?
会的。输入音频的质量直接影响复刻效果。背景噪音、混响、多人声等问题都会降低复刻音色的相似度和自然度。建议参照音频要求和录音建议准备样本。