声音克隆
用一段参考音频克隆音色,再用它念出任意文本
给一段参考音频(要模仿的音色)+ 一段文本,生成「用这个音色念这段话」的语音。
异步接口:提交后拿到 task_id,再轮询查结果。
已实测:本页示例为对
api.aiclonevoicefree.com的真实调用,约 7 秒完成。
POST /api/v2/voice/clone
鉴权:Authorization: Bearer sk_...(见鉴权)
基础参数(所有模型通用)
只用这几个参数就能跑通。各模型的额外参数见下方怎么选模型。
| 字段 | 类型 | 必填 | 说明 |
|---|---|---|---|
text | string | ✅ | 要合成的文本 |
reference_audio_url | string | ✅ | 参考音色音频 URL(wav/mp3,公网可访问) |
model | string | ⬜ | 模型,默认 v2-emotion;可选 v1-real / v3-qwen / omni / voxcpm 等 |
speed_ratio | number | ⬜ | 语速,默认 1.0 |
pitch_ratio | number | ⬜ | 音调,默认 0 |
volume_ratio | number | ⬜ | 音量,默认 1.0 |
generate_subtitle | bool | ⬜ | 是否生成字幕 |
subtitle_language | string | ⬜ | 字幕语言 |
compact_mode | bool | ⬜ | 紧凑模式(压缩句间静音) |
compact_max_silence_ms | int | ⬜ | 紧凑模式下最大静音毫秒 |
metadata | object | ⬜ | 透传业务字段,原样回显在结果里 |
curl -X POST https://api.aiclonevoicefree.com/api/v2/voice/clone \
-H "Authorization: Bearer sk_your_api_key" \
-H "Content-Type: application/json" \
-d '{
"text": "你好,这是 v2 接口的声音克隆测试。",
"reference_audio_url": "https://oss.aiclonevoicefree.com/trump.wav",
"model": "v2-emotion"
}'响应 202 Accepted(统一响应格式,详见任务查询)
{
"task_id": "b28f0341-3045-42e5-ad63-a5ccf4a1088e",
"status": "pending",
"capability": "voice",
"action": "clone",
"model": "v2-emotion",
"error": null,
"created_at": 1780704348,
"completed_at": null
}取结果
轮询 GET /api/v2/tasks/{task_id},status 变 completed 时,结果字段直接在顶层(没有嵌套的 result 包):
{
"status": "completed",
"capability": "voice",
"action": "clone",
"audioUrl": "https://oss.aiclonevoicefree.com/tts/2026-06-06/xxxx.wav",
"format": "wav",
"degraded": false,
"providerUsed": "tts-v2-emotion-1",
"completed_at": 1780704355
}| 结果字段 | 说明 |
|---|---|
audioUrl | 合成音频的可下载地址 |
format | wav / mp3 |
degraded | true 表示因降级走了非首选模型,音质可能略差 |
providerUsed | 实际使用的服务 |
怎么选模型?
| 你想要 | 用这个 | 一句话 |
|---|---|---|
| 声音尽量像参考音频 | v1-real | 最稳的逼真克隆 |
| 要有情感 | v2-emotion(默认) | 带情绪的克隆 |
| 多语言 / 想给朗读指令 | v3-qwen | 会多国语言、能听指令 |
| 不想录音,用文字描述造声音 | omni / voxcpm | 写「年轻女声、高音调」就行 |
所有模型都至少要
text+reference_audio_url;语速/音调/音量是通用可选项。 下面每个模型只写它额外要传的参数。
v1-real —— 逼真克隆
最像参考音色、最稳定。不用额外参数,把基础示例里的 model 换成 v1-real 即可。
v2-emotion —— 情感音色
默认模型,输出自带情感。不传任何额外参数时,情感跟随参考音频。想主动控制情感,传一个
emotion 对象:
emotion 字段 | 说明 |
|---|---|
mode | 情感来源:same_as_reference(跟参考音频,默认)/ vector(8 维向量)/ text(文字描述)/ reference_audio(另给情感参考音频)/ random |
vector | mode=vector 时填:8 个 0–1 的数,顺序 [喜, 怒, 哀, 惧, 兴奋, 低落, 惊讶, 平静];各分量之和建议 ≤ 1.4(与官网一致;硬上限 1.5,超出报 emo_vec sum exceeds 1.5) |
text | mode=text 时填:情感描述,如「开心地说」 |
reference_audio_url | mode=reference_audio 时填:情感参考音频 URL |
# 用情感向量:高「喜悦」+ 一点「兴奋」
curl -X POST https://api.aiclonevoicefree.com/api/v2/voice/clone \
-H "Authorization: Bearer sk_your_api_key" \
-H "Content-Type: application/json" \
-d '{
"text": "我今天好开心!",
"reference_audio_url": "https://oss.aiclonevoicefree.com/trump.wav",
"model": "v2-emotion",
"emotion": { "mode": "vector", "vector": [0.9, 0, 0, 0, 0.1, 0, 0, 0] }
}'v3-qwen —— 多语言 + 指令
支持中英日韩等多语言,可用 instructions 告诉它「怎么读」。
额外参数:instructions(字幕语言用基础参数里的 subtitle_language)。
curl -X POST https://api.aiclonevoicefree.com/api/v2/voice/clone \
-H "Authorization: Bearer sk_your_api_key" \
-H "Content-Type: application/json" \
-d '{
"text": "Hello,今天天气不错。",
"reference_audio_url": "https://oss.aiclonevoicefree.com/trump.wav",
"model": "v3-qwen",
"instructions": "用平静的语气朗读",
"subtitle_language": "zh"
}'omni —— 用文字描述造音色
不挑参考音频的音色:你用一串描述词直接「捏」出想要的声音。
额外参数:omni_options(一个 JSON 字符串,核心是里面的 instruct)。
描述词从下面这些里挑,用逗号连起来(中英都行,但别混用英文口音和中文方言):
- 性别:男 / 女(male / female)
- 年龄:儿童 / 少年 / 青年 / 中年 / 老年
- 音调:极低 / 低 / 中 / 高 / 极高音调
- 特殊:耳语(whisper)
- 中文方言:四川话、东北话、河南话、陕西话、贵州话、云南话…
- 英文口音:american accent、british accent、japanese accent…
例:女, 青年, 高音调,或英文 female, young adult, high pitch。
curl -X POST https://api.aiclonevoicefree.com/api/v2/voice/clone \
-H "Authorization: Bearer sk_your_api_key" \
-H "Content-Type: application/json" \
-d '{
"text": "你好,这是用描述词生成的音色。",
"reference_audio_url": "https://oss.aiclonevoicefree.com/trump.wav",
"model": "omni",
"omni_options": "{\"instruct\": \"female, young adult, high pitch\"}"
}'voxcpm —— 方言 / 指令音色
和 omni 类似、偏方言场景。额外参数:omni_options(同上)或 instructions。
计费
按字符计费:CJK 字符(中日韩)每个记 2,其它字符每个记 1。
算例:
- 「你好世界」(4 个中文)= 4 × 2 = 8 积分
- 「Hello」(5 个英文)= 5 × 1 = 5 积分
- 「你好,world」(3 中文 + 5 英文 + 1 标点)≈ 3×2 + 6×1 = 12 积分
积分在任务完成时结算,失败不扣费(见通用约定)。用的是语音积分,与视频积分不同。