音声デザインは、音声サンプルを必要とせず、音声記述だけでカスタム音声を作成できる機能です。たとえば、「穏やかな若い女性の声で、話速は中程度、オーディオブックのナレーションに適している」のように記述すると、システムはその記述に一致する音声を生成します。
概要
音声デザインは、音声サンプルを必要とせず、音声記述からカスタム音声を作成します。ラピッドプロトタイピング、クリエイティブコンテンツ制作、ゲームキャラクターの音声などに使用できます。
Model Studio は、以下のモデルファミリーを通じて音声デザイン機能を提供します。
CosyVoice:HTTP API を通じて音声を作成します。の音声合成をサポートしています。北京およびシンガポールリージョンで利用可能です。
Qwen-TTS:HTTP API を通じて音声を作成します。リアルタイムおよび非リアルタイムの音声合成をサポートしています。北京およびシンガポールリージョンで利用可能です。
音声サンプルがあり、特定の人物の声を複製したい場合は、「音声クローニング」をご参照ください。モデルファミリー間の詳細な比較と選択ガイドについては、「音声合成」をご参照ください。
前提条件
DashScope SDK を通じて API を呼び出す場合は、最新の SDK をインストールしてください。
クイックスタート
音声デザインのワークフローは、記述、作成、使用の 3 つのステップで構成されています。
音声記述の作成:希望する音声の特徴を自然言語で記述します。詳細なガイドラインについては、「音声記述の作成」をご参照ください。
音声の作成:音声デザイン API を呼び出します。システムは記述に基づいて音声を生成し、プレビューオーディオを返します。音声を使用する前にプレビューを確認してください。
音声による音声合成:音声合成 API を呼び出し、音声 ID を渡して音声を生成します。
Qwen-TTS 音声デザイン
次の例では、音声の作成、プレビューオーディオの確認、その音声を使用した音声合成という、音声デザインの完全なワークフローを説明します。
音声デザインサービスはプレビューオーディオを返します。音声合成に音声を使用する前に、まずプレビューオーディオを聴き、要件を満たしていることを確認してください。これにより、API コストを低く抑えることができます。
Python
import os
import requests
import dashscope
# ======= 定数 =======
DEFAULT_TARGET_MODEL = "qwen3-tts-vd-2026-01-26" # 音声作成の対象モデル (target_model) と、音声合成の実行モデルとして使用します。
DEFAULT_PREFERRED_NAME = "custom_voice"
# 音声記述:希望する音声の特徴を自然言語で記述
VOICE_PROMPT = "A young, lively female voice with a fast speaking pace and a noticeable rising intonation, suitable for introducing fashion products."
def create_voice_by_design(voice_prompt: str,
target_model: str = DEFAULT_TARGET_MODEL,
preferred_name: str = DEFAULT_PREFERRED_NAME) -> str:
"""
音声記述から音色を作成し、音声パラメーターを返す
"""
# シンガポールリージョンと北京リージョンの API キーは異なります。API キーの取得: https://www.alibabacloud.com/help/model-studio/get-api-key
# 環境変数が設定されていない場合は、次の行を Model Studio API キーに置き換えます: api_key = "sk-xxx"
api_key = os.getenv("DASHSCOPE_API_KEY")
# 次の 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,
"voice_prompt": voice_prompt
}
}
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"Failed to create voice: {resp.status_code}, {resp.text}")
result = resp.json()
preview_audio = result.get("output", {}).get("preview_audio")
if preview_audio:
print(f"Preview audio URL: {preview_audio}")
try:
return result["output"]["voice"]
except (KeyError, ValueError) as e:
raise RuntimeError(f"Failed to parse voice response: {e}")
if __name__ == '__main__':
# 次の URL はシンガポールリージョン用です。北京リージョンのモデルを使用する場合は、URL を https://dashscope.aliyuncs.com/api/v1 に置き換えてください
dashscope.base_http_api_url = 'https://dashscope-intl.aliyuncs.com/api/v1'
voice_id = create_voice_by_design(VOICE_PROMPT)
print(f"Created voice ID: {voice_id}")
text = "Hello everyone, welcome to our live stream! The product we are recommending today is truly amazing."
response = dashscope.MultiModalConversation.call(
model=DEFAULT_TARGET_MODEL,
# シンガポールリージョンと北京リージョンの API キーは異なります。API キーの取得: https://www.alibabacloud.com/help/model-studio/get-api-key
# 環境変数が設定されていない場合は、次の行を Model Studio API キーに置き換えます: api_key = "sk-xxx"
api_key=os.getenv("DASHSCOPE_API_KEY"),
text=text,
voice=voice_id,
stream=False
)
print(response)cURL
ステップ 1:音声の作成
# この URL はシンガポールリージョン用です。中国 (北京) リージョンのモデルを使用する場合は、https://dashscope.aliyuncs.com/api/v1/services/audio/tts/customization に置き換えてください
# 注:API キーはシンガポールリージョンと北京リージョンで異なります。API キーを取得するには、https://www.alibabacloud.com/help/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": "qwen-voice-enrollment",
"input": {
"action": "create",
"target_model": "qwen3-tts-vd-2026-01-26",
"preferred_name": "custom_voice",
"voice_prompt": "A composed middle-aged male announcer with a deep, rich and magnetic voice, a steady speaking speed and clear articulation, is suitable for news broadcasting or documentary commentary."
}
}'ステップ 2:音声合成
次のリクエストの voice を、前のステップで返された値に置き換えます。
# `YOUR_VOICE_ID` を前のステップで返された `voice` の値に置き換えます
# この 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-vd-2026-01-26",
"input": {
"text": "Dear listeners, hello everyone. Welcome to the evening news.",
"voice": "YOUR_VOICE_ID"
}
}'CosyVoice 音声デザイン
CosyVoice も音声記述から音声を作成します。ワークフローは Qwen-TTS 音声デザインと同じです。
CosyVoice 音声デザインは、北京リージョン (v3.5 シリーズ) およびシンガポールリージョン (v3 シリーズ) でのみ利用可能です。
ステップ 1:音声の作成
音声クローニング/デザイン API を呼び出します。voice_prompt パラメーターに音声記述を渡し、preview_text パラメーターでプレビューオーディオのテキストを指定します。
# この URL はシンガポールリージョン用です。中国 (北京) リージョンのモデルを使用する場合は、https://dashscope.aliyuncs.com/api/v1/services/audio/tts/customization に置き換えてください
# API キーを取得するには、https://www.alibabacloud.com/help/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",
"voice_prompt": "A composed middle-aged male announcer with a deep, rich and magnetic voice, a steady speaking speed and clear articulation, is suitable for news broadcasting or documentary commentary.",
"preview_text": "Dear listeners, hello everyone. Welcome to the evening news.",
"prefix": "announcer",
"language_hints": ["zh"]
},
"parameters": {
"sample_rate": 24000,
"response_format": "wav"
}
}'ステップ 2:音声合成
次のリクエストの voice を、前のステップで返された値に置き換えます。
# `YOUR_VOICE_ID` を前のステップで返された `voice` の値に置き換えます
# この 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": "Dear listeners, hello everyone. Welcome to the evening news.",
"voice": "YOUR_VOICE_ID",
"format": "wav",
"sample_rate": 24000
}
}'音声記述の作成
音声記述 (voice_prompt) は、生成される音声の品質を決定します。明確で具体的な記述は、モデルが意図に限りなく近い音声を生成するのに役立ちます。
要件と制限
文字数制限:
voice_promptの最大長はモデルによって異なり、CosyVoice は 500 文字、Qwen-TTS は 2,048 文字までです。サポート言語:音声記述は中国語と英語にのみ対応しています。
主要な原則
具体的で、曖昧でないこと:「深い」、「歯切れの良い」、「速いペース」など、音声の特徴を表す記述的な用語を使用します。「心地よい」や「普通の」といった主観的または曖昧な用語は避けてください。
多次元的であること:良い記述は、性別、年齢、感情など、複数の次元を網羅します。「女性の声」だけのような記述は、特徴的な音声を生成するには広すぎます。
主観的でなく、客観的であること:客観的で測定可能な特徴に焦点を当てます。たとえば、「私のお気に入りの声」ではなく、「エネルギッシュなトーンの高い声」を使用します。
模倣ではなく、独創的であること:有名人や俳優など、特定の人物の模倣を要求するのではなく、音声の特徴を記述します。モデルは模倣に対応しておらず、そのような要求は著作権の問題を引き起こす可能性があります。
冗長でなく、簡潔であること:すべての言葉に意味を持たせます。同義語を繰り返したり、不要な修飾語を追加したりすることは避けてください。
記述の次元
以下の次元を組み合わせて音声を記述します。含める次元が多いほど、結果はより正確になります。
次元 | 例 |
性別 | 男性、女性、中性 |
年齢 | 子供 (5〜12歳)、ティーンエイジャー (13〜18歳)、若者 (19〜35歳)、中年 (36〜55歳)、高齢者 (55歳以上) |
ピッチ | 高い、中程度、低い、やや高い、やや低い |
話速 | 速い、中程度、遅い、やや速い、やや遅い |
感情 | 明るい、穏やか、優しい、真面目、活発、落ち着いた、癒やし系 |
特徴 | 魅力的、歯切れが良い、ハスキー、滑らか、甘い、豊か、力強い |
ユースケース | ニュース放送、広告ナレーション、オーディオブック、アニメキャラクター、音声アシスタント、ドキュメンタリーナレーション |
例
標準的な放送スタイル:クリアで正確な発音、はっきりとしたアーティキュレーション
活発な若い女性の声、話速は速く、語尾が上がるイントネーションが特徴的で、ファッション製品の紹介に適している
穏やかな中年の男性、話速は遅く、深く魅力的な声で、ニュース放送やドキュメンタリーのナレーションに適している
優しく知的な女性、30歳前後、均一なトーンで、オーディオブックのナレーションに適している
かわいい子供の声、およそ8歳の女の子、やや幼いトーンで、アニメキャラクターの吹き替えに適している
カスタム音声の管理
音声デザインと音声クローニングで作成された音声は、共通の管理 API を使用します。音声の一覧表示、音声詳細の表示、不要になった音声の削除ができます。
API エンドポイントとパラメーターの詳細については、「API リファレンス」をご参照ください。
サポート範囲
モデルの可用性はデプロイリージョンによって異なります。
国際
国際デプロイスコープを選択した場合、モデル推論のコンピューティングリソースは中国本土を除く世界中で動的にスケジュールされます。静的データは選択したリージョンに保存されます。サポートされているリージョン:シンガポール。
以下のモデルを呼び出すには、シンガポールリージョンの API キー を使用してください。
CosyVoice:cosyvoice-v3-plus、cosyvoice-v3-flash
Qwen-TTS:
Qwen3-TTS-VD-Realtime:qwen3-tts-vd-realtime-2026-01-15 (最新スナップショット)、qwen3-tts-vd-realtime-2025-12-16 (スナップショット)
Qwen3-TTS-VD:qwen3-tts-vd-2026-01-26 (最新スナップショット)
中国本土
中国本土のデプロイスコープを選択した場合、モデル推論のコンピューティングリソースは中国本土に制限されます。静的データは選択したリージョンに保存されます。サポートされているリージョン:中国 (北京)。
以下のモデルを呼び出すには、北京リージョンの API キー を使用してください。
CosyVoice:cosyvoice-v3.5-plus、cosyvoice-v3.5-flash、cosyvoice-v3-plus、cosyvoice-v3-flash
Qwen-TTS:
Qwen3-TTS-VD-Realtime:qwen3-tts-vd-realtime-2026-01-15 (最新スナップショット)、qwen3-tts-vd-realtime-2025-12-16 (スナップショット)
Qwen3-TTS-VD:qwen3-tts-vd-2026-01-26 (最新スナップショット)
CosyVoice 音声デザインは、FunAudioGen-VD モデルを利用しています。
同じ音声記述でも、毎回わずかに異なる音声が生成されることがあります。複数の音声を生成し、それぞれを聴いて最適なものを見つけてください。
API リファレンス
よくある質問
Q:同じ音声記述で、常に同じ音声が生成されますか?
必ずしもそうではありません。音声デザインは生成プロセスであるため、同じ記述でも毎回わずかに異なる音声が生成されることがあります。複数の音声を生成し、それぞれを聴いて、最も良いと感じるものを選択してください。
Q:音声記述にはどの言語を使用できますか?
現在、音声記述 (voice_prompt) は中国語と英語にのみ対応しています。ただし、生成された音声では複数言語での音声合成が可能です。
Q:音声デザインと音声クローニングの違いは何ですか?
音声デザインは、音声サンプルを必要とせず、音声記述を使用してゼロから音声を作成します。全く新しい音声アイデンティティをデザインするのに最適です。音声クローニングは、実際の音声サンプルから音声を複製するもので、特定の人物の声を再現するのに最も適しています。詳細については、「音声クローニング」をご参照ください。