声音复刻

更新时间:
复制为 MD 格式

声音复刻(Voice Cloning)只需提供一段 10~20 秒的音频样本,即可生成高度相似的定制音色,无需模型训练。

概述

声音复刻只需 10~20 秒音频样本即可生成高度相似的定制音色,无需模型训练。适用于个性化语音助手、品牌专属播报、有声内容定制化等场景。

百炼平台提供以下模型系列的声音复刻能力:

  • CosyVoice:通过 DashScope SDK 或 HTTP API 创建音色,支持实时与非实时语音合成,可用于北京和新加坡地域。

  • Qwen-TTS:通过 HTTP API 创建音色,支持实时与非实时语音合成,可用于北京和新加坡地域。

  • MiniMax:通过 HTTP API 创建音色,仅支持非实时语音合成,仅限北京地域使用。

如需了解各模型系列的详细对比和选型建议,请参见语音合成

前提条件

  1. 配置 API Key并将其设置到环境变量

  2. 如果通过 DashScope SDK 调用,需要安装最新版SDK

  3. 准备音频文件:音频需符合音频要求

快速开始

声音复刻的使用分为以下三步:

  1. 准备音频:准备一段符合音频要求的音频文件。

  2. 创建音色:调用声音复刻接口上传音频,系统会自动提取声纹特征并生成专属音色。创建时必须通过target_model指定该音色绑定的语音合成模型。

  3. 使用音色合成语音:调用语音合成接口,传入创建音色时返回的音色 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 秒)。整段音频应避免出现背景音乐、环境噪音或其他人声。请使用正常语速的说话音频,不要上传歌曲或唱歌录音。

支持语言

因驱动音色的语音合成模型(通过 target_model 参数指定)而异:

  • cosyvoice-v1、cosyvoice-v2:中文(普通话)、英文

  • cosyvoice-v3-flash:中文(普通话、广东话、东北话、甘肃话、贵州话、河南话、湖北话、江西话、闽南话、宁夏话、山西话、陕西话、山东话、上海话、四川话、天津话、云南话)、英文、法语、德语、日语、韩语、俄语、葡萄牙语、泰语、印尼语、越南语

  • cosyvoice-v3-plus:中文(普通话)、英文、法语、德语、日语、韩语、俄语

  • cosyvoice-v3.5-plus、cosyvoice-v3.5-flash:中文(普通话、广东话、河南话、湖北话、闽南话、宁夏话、陕西话、山东话、上海话、四川话)、英文、法语、德语、日语、韩语、俄语、葡萄牙语、泰语、印尼语、越南语

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 秒无中断)。

  • 录音的开头和结尾部分应保持与中间段落一致的语速,避免因开头或结尾语速过快导致复刻后语音合成时出现卡顿现象。

  • 可加入适当情绪表达(如温暖、亲切、严肃),避免机械朗读。

  • 不包含敏感词汇(如政治、色情、暴力相关内容),否则会导致复刻失败。

操作建议

以普通卧室为例:

  1. 关闭门窗,隔绝外部噪音。

  2. 关闭空调、电扇等电器。

  3. 拉上窗帘,减少玻璃反射。

  4. 在桌面铺放衣物或毛毯,降低桌面反射。

  5. 提前熟悉文案,设定角色语气,自然演绎。

  6. 与录音设备保持约 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-Realtimeqwen3-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-Realtimeqwen3-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:音频质量不好会影响复刻效果吗?

会的。输入音频的质量直接影响复刻效果。背景噪音、混响、多人声等问题都会降低复刻音色的相似度和自然度。建议参照音频要求录音建议准备样本。