すべてのプロダクト
Search
ドキュメントセンター

Alibaba Cloud Model Studio:非リアルタイム音声合成

最終更新日:Oct 29, 2026

HTTP 経由で全文を音声に変換します。モデルの機能、基本的な呼び出し方法、合成品質の改善方法を説明します。

機能

非リアルタイム音声合成では、1 回の HTTP リクエストでテキスト全体を送信し、非ストリーミング出力または SSE ストリーミング出力を受け取ります。非ストリーミング出力で返される音声 URL の有効期限は 24 時間です。期限内に音声をダウンロードして保存してください。期限切れ後は再合成できます。ストリーミング出力では、音声データがチャンク単位で返されます。

  • 言語と方言: 対象の言語に適したモデルと音声を選択するか、指示で方言を指定します。方言をご参照ください。
  • 表現の制御: 自然言語の指示で話し方を調整したり、感情タグや非言語音タグを挿入したりできます。指示による制御と感情タグと非言語音タグをご参照ください。
  • カスタム音声: 音声クローニングで音声サンプルから、または音声デザインでテキストの説明から音声を作成します。
  • 詳細な制御と数式の読み上げ: SSML と LaTeXを使用してポーズや発音を制御したり、数式を音声に変換したりできます。

注記

  • 対応する機能はモデルと音声によって異なります。各機能のドキュメントで対応範囲を確認してください。
  • テキストを分割して送信する場合は、リアルタイム音声合成を使用します。

利用開始

  • API キーを取得し、環境変数 DASHSCOPE_API_KEY に設定します。例に記載されたリージョンのキーを使用します。

  • ワークスペース専用エンドポイントでは、YOUR_WORKSPACE_ID をそのリージョンのワークスペース ID に置き換えます。

  • 例に必要な依存パッケージをインストールします。

    pip install requests
    

Qwen-Audio-TTS (推奨)

次の例では、シンガポール の qwen-audio-3.1-tts-flash とシステム音声 longanhuan_v3.1 を使用して、非ストリーミング出力とストリーミング出力を示します。

非ストリーミング出力

import os
import requests

response = requests.post(
    'https://YOUR_WORKSPACE_ID.ap-southeast-1.maas.aliyuncs.com/api/v1/services/audio/tts/SpeechSynthesizer',
    headers={"Authorization": f"Bearer {os.environ['DASHSCOPE_API_KEY']}"},
    json={
        "model": "qwen-audio-3.1-tts-flash",
        "input": {
            "text": "Hello, welcome to Alibaba Cloud Model Studio.",
            "voice": "longanhuan_v3.1",
            "format": "wav",
            "sample_rate": 24000
        }
    },
    timeout=60,
)
response.raise_for_status()
audio_url = response.json()["output"]["audio"]["url"]
audio_response = requests.get(audio_url, timeout=60)
audio_response.raise_for_status()
with open("output.wav", "wb") as f:
    f.write(audio_response.content)

音声は現在のディレクトリの output.wav に保存されます。

ストリーミング出力

この例では、返された SSE イベントを行単位で表示します。output.audio.data フィールドには、Base64 エンコードされた音声チャンクが含まれます。

import os
import requests

response = requests.post(
    'https://YOUR_WORKSPACE_ID.ap-southeast-1.maas.aliyuncs.com/api/v1/services/audio/tts/SpeechSynthesizer',
    headers={"Authorization": f"Bearer {os.environ['DASHSCOPE_API_KEY']}", "X-DashScope-SSE": "enable"},
    json={
        "model": "qwen-audio-3.1-tts-flash",
        "input": {
            "text": "Hello, welcome to Alibaba Cloud Model Studio.",
            "voice": "longanhuan_v3.1",
            "format": "wav",
            "sample_rate": 24000
        }
    },
    stream=True,
    timeout=60,
)
response.raise_for_status()
for line in response.iter_lines():
    print(line.decode("utf-8"))
response.close()

CosyVoice

次の例では、北京の cosyvoice-v3-flash とシステム音声 longanyang を使用して、非ストリーミング出力とストリーミング出力を示します。

非ストリーミング出力

import os
import requests

response = requests.post(
    'https://YOUR_WORKSPACE_ID.cn-beijing.maas.aliyuncs.com/api/v1/services/audio/tts/SpeechSynthesizer',
    headers={"Authorization": f"Bearer {os.environ['DASHSCOPE_API_KEY']}"},
    json={
        "model": "cosyvoice-v3-flash",
        "input": {
            "text": "Hello, welcome to Alibaba Cloud Model Studio.",
            "voice": "longanyang",
            "format": "wav",
            "sample_rate": 24000
        }
    },
    timeout=60,
)
response.raise_for_status()
audio_url = response.json()["output"]["audio"]["url"]
audio_response = requests.get(audio_url, timeout=60)
audio_response.raise_for_status()
with open("output.wav", "wb") as f:
    f.write(audio_response.content)

音声は現在のディレクトリの output.wav に保存されます。

ストリーミング出力

この例では、返された SSE イベントを行単位で表示します。output.audio.data フィールドには、Base64 エンコードされた音声チャンクが含まれます。

import os
import requests

response = requests.post(
    'https://YOUR_WORKSPACE_ID.cn-beijing.maas.aliyuncs.com/api/v1/services/audio/tts/SpeechSynthesizer',
    headers={"Authorization": f"Bearer {os.environ['DASHSCOPE_API_KEY']}", "X-DashScope-SSE": "enable"},
    json={
        "model": "cosyvoice-v3-flash",
        "input": {
            "text": "Hello, welcome to Alibaba Cloud Model Studio.",
            "voice": "longanyang",
            "format": "wav",
            "sample_rate": 24000
        }
    },
    stream=True,
    timeout=60,
)
response.raise_for_status()
for line in response.iter_lines():
    print(line.decode("utf-8"))
response.close()

合成品質の改善

言語と発音

数字、略語、記号の読み方が適切でない場合は、language_hints で合成の対象言語を指定するか、hot_fix で発音とテキスト置換を設定します。対象モデルと設定方法は、Qwen-Audio-TTS API または CosyVoice API をご参照ください。

ポーズ、数字の読み方、単語の発音を制御するには SSML を使用します。Qwen-Audio-TTS と CosyVoice の対応モデル、音声、インターフェイス、タグの使い方については、SSML と LaTeXをご参照ください。

指示による制御

リクエストの input に instruction を追加し、合成する言語と、話す速度、感情、話し方を自然言語で指定して、合成音声の表現を制御します。

注記性別、年齢、声質などの特徴を指定して新しい音声を作成する場合や、音声の説明の書き方と例を確認する場合は、音声デザインをご参照ください。

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 のシステム音声、クローン音声、デザイン音声はすべて、合成リクエストの instruction による自然言語の指示に対応しています。

合成品質を向上させるために、instruction に合成する言語と希望する表現を指定することを推奨します。指示で指定する言語は、合成対象のテキストの言語と一致させてください。たとえば、オランダ語のテキストを合成する場合は、次のように設定します:

{"instruction": "请用荷兰话说,每个字都慢慢说"}

CosyVoice

注記CosyVoice の instruction は最大 100 文字です。文字数の計算では、簡体字、繁体字、日本語および韓国語で使う漢字は 1 文字を 2 文字として数えます。句読点、英字、数字、かな、ハングルなどその他の文字は 1 文字として数えます。

モデル対象の音声指示の要件指示テキストの言語

cosyvoice-v3.5-plus, cosyvoice-v3.5-flash

クローン音声とデザイン音声

システム音声はありません。

自然言語による指示。

中国語、英語、フランス語、ドイツ語、日本語、韓国語、ロシア語、ポルトガル語、タイ語、インドネシア語、ベトナム語。

cosyvoice-v3-plus

システム音声

音声一覧の固定の形式と内容を使用します。

クローン音声とデザイン音声は指示による制御に対応していません。

音声一覧に指定された言語を使用します。

cosyvoice-v3-flash

システム音声

音声一覧の固定の形式と内容を使用します。

中国語。

クローン音声とデザイン音声

自然言語による指示。

中国語、英語、フランス語、ドイツ語、日本語、韓国語、ロシア語。

方言

方言合成を使用すると、河南方言や四川方言などの中国語方言で音声を生成できます。方言の選択方法は、モデルと音声の種類によって異なります。

Qwen-Audio-TTS

  • システム音声: Qwen-Audio-TTS 音声一覧から対象の方言に対応する音声を選択します。方言を直接サポートする音声は追加設定が不要です。方言指示に対応する音声では 指示制御パラメーター instruction を使用します。
  • クローン音声: 指示制御パラメーター instruction で方言を指定します。
  • デザイン音声: 方言には対応していません。

方言指示に対応する音声では、リクエストの input に instruction="请讲上海话。" を設定すると、中国語のテキストを上海語で合成できます。

CosyVoice

  • システム音声: longshange_v3 など対象の方言を直接サポートする音声、または longanhuan_v3 など方言指示に対応する音声を選択します。音声一覧の形式に従ってください。
  • クローン音声: 指示による制御に対応するモデルで instruction を使用し、方言を指定します。
  • デザイン音声: 方言には対応していません。

注記cosyvoice-v3-plus のクローン音声は、指示による方言の指定に対応していません。

CosyVoice の利用開始の例で、input を次の内容に置き換えると、longanhuan_v3 で河南方言を生成できます。

{
  "text": "叫你去买盐,你买回来一袋面,这不是弄啥嘞吗!",
  "voice": "longanhuan_v3",
  "format": "wav",
  "sample_rate": 24000,
  "instruction": "请用河南话表达。"
}

Qwen3-TTS では対象の方言に対応するシステム音声を使用します。Qwen3-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。

感情タグとパラ言語タグは、音声の感情やスタイルを制御し、指定位置に笑い声やため息などの音を挿入します。追加のパラメーターを使わず、合成対象の text にタグを直接記述します。

使用例

次のテキストは興奮した話し方で始まり、指定した位置で笑い声を挿入してから読み上げを続けます。

[excited]今天的天气真不错![laughing]我们一起出去玩吧!

次のテキストは 2 文目で興奮した話し方に切り替わります。

[serious]请注意安全事项。[excited]好了,现在让我们开始吧!

対応タグ

制御タグ

制御タグは、次の制御タグまでのテキストの感情やスタイルを設定します。長い文が自動分割される場合、効果の範囲は分割されたテキスト単位になります。

タグ説明

[sad]

悲しい

[amazed]

驚いた

[deep and loud shouting]

低く大きな叫び声

[trembling]

震える

[angry]

怒った

[excited]

興奮した

[sarcastic]

皮肉な

[curious]

好奇心のある

[like dracula]

ドラキュラ風

[bored]

退屈した

[tired]

疲れた

[scornful]

軽蔑した

[shouting]

叫ぶ

[asmr]

柔らかい ASMR 音声

[panicked]

慌てた

[mischievously]

いたずらっぽい

[empathetic]

共感的な

[whispers]

ささやく

[reluctantly]

気の進まない

[crying]

泣く

[serious]

真剣な

[very slowly]

非常に遅い

[very fast]

非常に速い

非言語音タグ

非言語音タグは、その位置に音を挿入し、前後のテキストの感情スタイルは変更しません。

タグ説明

[gasp]

息をのむ

[sighing]

ため息

[clears throat]

咳払い

[giggles]

くすくす笑う

[laughing]

笑う

[cough]

咳

[snorts]

鼻を鳴らす

対応モデル

シンガポール

このリージョンの API キーとエンドポイントを使用して、次のモデルを呼び出します。

  • 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
  • Qwen3-TTS: qwen3-tts-flash

中国(北京)

このリージョンの API キーとエンドポイントを使用して、次のモデルを呼び出します。

  • 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-v2
  • Qwen3-TTS: qwen3-tts-flash

システム音声と試聴サンプルは、Qwen-Audio-TTS、CosyVoice、Qwen3-TTS の音声一覧をご参照ください。クローン音声またはデザイン音声は、作成時に指定したターゲットモデルで使用してください。

API リファレンス