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

Alibaba Cloud Model Studio:CosyVoice 音声合成 WebSocket API

最終更新日:Jun 04, 2026

WebSocket 接続を使用して、CosyVoice リアルタイム音声合成サービスにアクセスします。本リファレンスでは、インタラクションワークフロー、サービスエンドポイント、およびリクエストヘッダーについて説明します。

DashScope SDK は現在、Java および Python のみをサポートしています。その他のプログラミング言語の場合は、WebSocket 接続を使用してサービスと通信してください。

ユーザーガイド: モデルの詳細および選定に関する推奨事項については、「音声合成」をご参照ください。

サービスエンドポイント

サービスでは、以下の固定 WebSocket URL を使用します。

シンガポール

wss://{WorkspaceId}.ap-southeast-1.maas.aliyuncs.com/api-ws/v1/inference

WorkspaceId は、実際のワークスペース IDに置き換えてください。

中国 (北京)

wss://dashscope.aliyuncs.com/api-ws/v1/inference

重要

必ず wss:// プロトコルを使用してください。上記の URL は固定です。権限付与の詳細については、「リクエストヘッダー」をご参照ください。

重要

シンガポールリージョン向けのレガシドメイン wss://dashscope-intl.aliyuncs.com はまもなく非推奨になります。できるだけ早く、新しいドメイン wss://{WorkspaceId}.ap-southeast-1.maas.aliyuncs.com に移行してください。

リクエストヘッダー

リクエストには、以下のヘッダーを含めてください。

パラメーター

タイプ

必須

説明

Authorization

文字列

はい

Bearer <API key> 形式の認証トークン。<API key> は、実際の API キーに置き換えてください。

user-agent

文字列

いいえ

サーバー側でのリクエスト追跡用のクライアント識別子。

X-DashScope-WorkSpace

文字列

いいえ

Alibaba Cloud Model Studio ワークスペース ID

X-DashScope-DataInspection

文字列

いいえ

データ検査を有効にするかどうか。指定しない場合、デフォルトで enable になります。特に必要がない限り、このヘッダーは設定しないでください。

重要

権限付与は WebSocket ハンドシェイク中に検証されます。API キーが無効または欠落している場合、ハンドシェイクは HTTP 401/403 エラーで失敗します。

インタラクションワークフロー

クライアント側およびサーバー側のイベントの詳細については、「クライアントイベント」および「サーバー側イベント」をご参照ください。

クライアントとサーバーは、以下のシーケンスでやり取りを行います。

  1. 接続の確立:クライアントがサーバーとの WebSocket 接続を確立します。

  2. タスクの開始:クライアントが run-task イベントを送信してタスクを開始します。

  3. 確認の待機:クライアントがサーバーから task-started イベントを受信し、タスクが開始され、以降のステップを進められることを示します。

  4. 合成用テキストの送信:

    クライアントは、合成するテキストを含む 1 つ以上の continue-task イベントを順番に送信します。サーバーは完全な文を受け取ると、result-generated イベントおよび音声ストリームを返します。テキスト長の制約については、continue-task イベントの text フィールドをご参照ください。

    説明

    複数の continue-task イベントを送信できます。テキストセグメントは順序通りに送信してください。サーバーは受信したテキストを自動的に文に分割します。

    • 完全な文は即座に合成され、クライアントはサーバーから音声を受信します。

    • 不完全な文は、完全になるまでバッファーされます。サーバーは不完全な文に対して音声を返しません。

    finish-task イベントを送信すると、サーバーはバッファーされたすべてのコンテンツを強制的に合成します。

  5. 音声の受信:binary チャンネルを通じて音声ストリームを受信します。

  6. タスク終了の通知:

    すべてのテキストを送信した後、クライアントは finish-task イベントを送信し、引き続き音声ストリームを受信します。このステップは必須であり、省略すると音声が不完全になる可能性があります。

  7. タスク完了イベントの受信:

    クライアントがサーバーから task-finished イベントを受信し、タスクが完了したことを示します。

  8. 接続の終了:クライアントが WebSocket 接続を閉じます。

各タスクごとに新しい接続を作成するのではなく、複数のタスクで WebSocket 接続を再利用してください。

重要

単一の合成タスク内では、run-task、すべての continue-task、および finish-task イベントで同じ task_id を使用する必要があります。新しいタスクごとに、新しい task_id(例:UUID)を生成してください。異なる task_id 値を使用すると、音声の破損やタスクの失敗が発生する可能性があります。