聲音複刻(Voice Cloning)只需提供一段 10~20 秒的音頻樣本,即可產生高度相似的定製音色,無需模型訓練。
概述
聲音複刻只需 10~20 秒音頻樣本即可產生高度相似的定製音色,無需模型訓練。適用於個人化語音助手、品牌專屬播報、有聲內容定製化等情境。
百鍊平台提供以下模型系列的聲音複刻能力:
CosyVoice:通過 DashScope SDK 或 HTTP API 建立音色,支援即時語音合成,可用於北京和新加坡地區。
Qwen-TTS:通過 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://www.alibabacloud.com/help/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.aliyuncs.com/api/v1/services/audio/tts/customization
url = "https://dashscope-intl.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.aliyuncs.com/api/v1
dashscope.base_http_api_url = 'https://dashscope-intl.aliyuncs.com/api/v1'
text = "今天天氣怎麼樣?"
response = dashscope.MultiModalConversation.call(
model=DEFAULT_TARGET_MODEL,
# 新加坡地區和北京地區的API Key不同。擷取API Key:https://www.alibabacloud.com/help/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.aliyuncs.com/api/v1/services/audio/tts/customization
# 新加坡地區和北京地區的API Key不同。擷取API Key:https://www.alibabacloud.com/help/zh/model-studio/get-api-key
AUDIO_BASE64=$(base64 -i voice.mp3)
curl -X POST 'https://dashscope-intl.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.aliyuncs.com/api/v1/services/aigc/multimodal-generation/generation
curl -X POST 'https://dashscope-intl.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,若使用北京地區的模型,需將 URL 替換為:https://dashscope.aliyuncs.com/api/v1/services/audio/tts/customization
# 擷取 API Key:https://www.alibabacloud.com/help/zh/model-studio/get-api-key
curl -X POST https://dashscope-intl.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-plus",
"prefix": "myvoice",
"url": "https://your-audio-url.wav",
"language_hints": ["zh"]
}
}'步驟二:使用複刻音色合成語音
將上一步返回的voice值填入以下請求中。
# 將 YOUR_VOICE_ID 替換為上一步返回的 voice 值
# 以下為新加坡地區 URL,若使用北京地區的模型,需將 URL 替換為:https://dashscope.aliyuncs.com/api/v1/services/audio/tts/SpeechSynthesizer
curl -X POST https://dashscope-intl.aliyuncs.com/api/v1/services/audio/tts/SpeechSynthesizer \
-H "Authorization: Bearer $DASHSCOPE_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "cosyvoice-v3-plus",
"input": {
"text": "今天天氣怎麼樣?",
"voice": "YOUR_VOICE_ID",
"format": "wav",
"sample_rate": 24000
}
}'音頻要求
輸入音訊品質直接決定複刻效果。不同模型系列對音訊具體要求有所差異,請按照目標模型的要求準備音頻樣本。
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 秒)。整段音頻應避免出現背景音樂、環境噪音或其他人聲。請使用正常語速的說話音頻,不要上傳歌曲或唱歌錄音。 |
支援語言 | 中文、英文、德語、意大利語、葡萄牙語、西班牙語、日語、韓語、法語、俄語 |
為獲得最佳複刻效果,建議參照錄音建議準備樣本。
錄音建議
高品質的輸入音頻是獲得優質複刻效果的基礎。以下從錄音裝置、錄音環境、錄音文案和操作流程四個方面提供建議。
錄音裝置
可使用手機、數字錄音筆、專業錄音機等。建議使用支援高採樣率(≥ 24 kHz)錄音的裝置,以滿足音頻要求。
錄音環境
場地
建議在 10 平方米以內的小型封閉空間錄音。
優先選擇配有吸音材料(如吸音棉、地毯、窗帘)的房間。
避免空曠大廳、會議室、教室等高混響場所。
噪音控制
室外噪音:關閉門窗,避免交通、施工等幹擾。
室內噪音:關閉空調、風扇、日光燈鎮流器等裝置;可通過手機錄製環境音並放大播放,識別潛在噪音源。
混響控制
混響會導致聲音模糊、清晰度下降。
減少光滑表面反射:拉上窗帘、開啟衣櫃門、鋪放衣物或床單覆蓋案頭/櫃面。
利用不規則物體(如書架、軟包傢具)實現聲波漫反射。
錄音文案
內容無特殊限制,建議與目標應用情境一致。
避免短句(如"你好"、"是的"),應使用完整句子。
保持語義連貫,朗讀時避免頻繁停頓(建議至少連續 3 秒無中斷)。
錄音的開頭和結尾部分應保持與中間段落一致的語速,避免因開頭或結尾語速過快導致複刻後語音合成時出現卡頓現象。
可加入適當情緒表達(如溫暖、親切、嚴肅),避免機械朗讀。
不包含禁用語(如政治、色情、暴力相關內容),否則會導致複刻失敗。
操作建議
以普通臥室為例:
關閉門窗,隔絕外部噪音。
關閉空調、電扇等電器。
拉上窗帘,減少玻璃反射。
在案頭鋪放衣物或毛毯,降低案頭反射。
提前熟悉文案,設定角色語氣,自然演繹。
與錄音裝置保持約 10 厘米距離,避免噴麥或訊號過弱。
管理自訂音色
音色建立完成後,您可以通過 API 對已有音色進行查詢和管理(Qwen-TTS 和 CosyVoice 支援)。
查詢音色列表:擷取當前帳號下所有自訂音色的列表。
查詢音色詳情:查看指定音色的詳細資料,如建立時間、綁定的語音合成模型等。
刪除音色:刪除不再需要的自訂音色,釋放配額。
各模型的 API 介面和參數詳情請參見API 參考。
適用範圍
不同服務部署範圍支援的模型不同:
國際
服務部署範圍為國際時,模型推理計算資源在全球範圍內動態調度(不含中國內地);待用資料儲存於您所選的地區。該部署範圍支援的地區:新加坡。
調用以下模型時,請選擇新加坡地區的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(最新快照版)
中國內地
服務部署範圍為中國內地時,模型推理計算資源僅限於中國內地;待用資料儲存於您所選的地區。該部署範圍支援的地區:華北2(北京)。
調用以下模型時,請選擇北京地區的API Key:
CosyVoice:cosyvoice-v3.5-plus、cosyvoice-v3.5-flash、cosyvoice-v3-plus、cosyvoice-v3-flash、cosyvoice-v2
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:音頻品質不好會影響複刻效果嗎?
會的。輸入音訊品質直接影響複刻效果。背景雜音、混響、多人聲等問題都會降低複刻音色的相似性和自然度。建議參照音頻要求和錄音建議準備樣本。