Skip to main content

聲音設計

通過自然語言描述建立自訂音色,試聽預覽後用於語音合成。

功能介紹

聲音設計適用於快速原型驗證、創意內容生產、遊戲角色配音等情境。
建立音色無需提供音頻樣本。如需根據已有音頻樣本還原其聲音,請使用聲音複刻。

準備工作

開始使用

Qwen-Audio-TTS 和 CosyVoice 使用相同的音色建立、預覽和基礎合成流程。以下以 qwen-audio-3.1-tts-flash 為例。
  1. 建立音色:設定聲音描述 voice_prompt、預覽文本 preview_text 和目標模型 target_model,取得音色 ID。
  2. 儲存預覽音頻:解碼返回的 preview_audio.data,儲存為 WAV 檔案,用於試聽。
  3. 合成語音:將建立音色時返回的 voice_id 作為 voice,使用綁定模型合成語音。
import base64
import os

import dashscope
import requests
from dashscope.audio.tts_v2 import AudioFormat, SpeechSynthesizer

api_key = os.environ["DASHSCOPE_API_KEY"]
workspace_id = "YOUR_WORKSPACE_ID"
target_model = "qwen-audio-3.1-tts-flash"

# 创建音色,并将返回的预览音频保存到本地。
response = requests.post(
    f"https://{workspace_id}.cn-beijing.maas.aliyuncs.com/api/v1/services/audio/tts/customization",
    headers={"Authorization": f"Bearer {api_key}"},
    json={
        "model": "voice-enrollment",
        "input": {
            "action": "create_voice",
            "target_model": target_model,
            "voice_prompt": "沉稳的中年男性播音员,音色低沉浑厚,富有磁性,语速平稳,吐字清晰,适合用于新闻播报或纪录片解说。",
            "preview_text": "各位听众朋友,大家好,欢迎收听晚间新闻。",
            "prefix": "announcer",
            "language_hints": ["zh"],
        },
        "parameters": {"sample_rate": 24000, "response_format": "wav"},
    },
    timeout=120,
)
response.raise_for_status()
output = response.json()["output"]
voice_id = output["voice_id"]
print(f"voice_id: {voice_id}")
with open("preview.wav", "wb") as f:
    f.write(base64.b64decode(output["preview_audio"]["data"]))

# 使用创建音色时指定的模型和返回的音色 ID 合成语音。
dashscope.api_key = api_key
dashscope.base_websocket_api_url = (
    f"wss://{workspace_id}.cn-beijing.maas.aliyuncs.com/api-ws/v1/inference"
)
synthesizer = SpeechSynthesizer(
    model=target_model,
    voice=voice_id,
    format=AudioFormat.WAV_24000HZ_MONO_16BIT,
)
audio = synthesizer.call("今天天气晴朗,适合外出散步。祝你度过愉快的一天。")
with open("output.wav", "wb") as f:
    f.write(audio)
執行範例後,preview.wav 為預覽音頻,output.wav 為合成音頻。儲存輸出的音色 ID,後續可使用該 ID 調用語音合成。 HTTP 請求範例、可選參數和返回欄位請參見聲音設計 API 參考;合成參數請參見 Qwen-Audio-TTS 用戶端事件。

聲音描述指南

聲音描述(voice_prompt)用於指定期望的聲音特質。清晰、具體的描述有助於產生符合需求的音色。

描述建議

  • 具體:使用「低沉」「清脆」「語速偏快」等聲音特徵,避免「好聽」「普通」等模糊評價。
  • 多維:組合性別、年齡、音調、語速和情感等維度,僅寫「女聲」難以描述出有特色的聲音。
  • 客觀:描述可感知的聲音特徵,例如「音調偏高、充滿活力」,避免「我最喜歡的聲音」等主觀表達。
  • 原創:描述聲音特質,不要求模仿名人、演員等特定人物。模型不支援指定模仿,相關請求也可能涉及著作權風險。
  • 簡潔:減少重複的同義詞和無意義的修飾。
可組合以下維度編寫聲音描述:
維度描述樣本
性別男性、女性、中性
年齡兒童 (5-12 歲)、青少年 (13-18 歲)、青年 (19-35 歲)、中年 (36-55 歲)、老年 (55 歲以上)
音調高音、中音、低音、偏高、偏低
語速快速、中速、緩慢、偏快、偏慢
情感開朗、沉穩、溫柔、嚴肅、活潑、冷靜、治癒
特點有磁性、清脆、沙啞、圓潤、甜美、渾厚、有力
用途新聞播報、廣告配音、有聲書、動畫角色、語音助手、紀錄片解說

描述範例

  • 標準播音風格:吐字清晰精準,字正腔圓
  • 年輕活潑的女性聲音,語速較快,帶有明顯的上揚語調,適合介紹時尚產品
  • 沉穩的中年男性,語速緩慢,音色低沉有磁性,適合朗讀新聞或紀錄片解說
  • 溫柔知性的女性,30 歲左右,語調平和,適合有聲書朗讀
  • 可愛的兒童聲音,大約 8 歲女孩,說話略帶稚氣,適合動畫角色配音
相同描述可能產生不同的音色。建立後先試聽預覽音頻;需要比較效果時,可多次產生後擇優使用。

音色管理

  • 查詢音色列表:查看已有的自訂音色。
  • 查詢音色詳情:查看音色綁定的模型、狀態等資訊。
  • 刪除音色:刪除不再使用的音色,釋放配額。
介面與參數說明請參見聲音設計 API 參考。

支援模型

  • 華北2(北京)
使用該地區的 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
  • CosyVoice:cosyvoice-v3.5-plus、cosyvoice-v3.5-flash、cosyvoice-v3-plus、cosyvoice-v3-flash
CosyVoice 聲音設計基於 FunAudioGen-VD 模型能力。

配額與限制

  • 音色數量:每個阿里雲百煉帳號的自訂音色總數上限為 1000 個。聲音複刻和聲音設計共用該配額,不按模型分別計算。
    達到上限後,新的聲音複刻或聲音設計建立請求將失敗。需先刪除不再使用的音色,釋放配額後再建立。
  • 聲音描述:voice_prompt 僅支援中文和英文,最大長度為 500 個字元。
  • 預覽文本:preview_text 僅支援中文和英文,長度為 15~200 個字元。
  • 模型綁定:音色在建立時通過 target_model 綁定到語音合成模型,後續合成必須使用同一模型。
產生的音色可用於合成多種語言的語音,具體支援範圍以目標語音合成模型為準。

計費說明

建立音色免費。 使用設計音色合成語音時,按目標語音合成模型計費。具體費用請參見模型計費。