WebSocket 接続を介して、Qwen-Audio-TTS/CosyVoice のリアルタイム音声合成サービスにアクセスします。このドキュメントでは、サービスエンドポイント、リクエストヘッダー、およびクライアントとサーバー間のインタラクションワークフローについて説明します。
DashScope SDK は Java と Python のみをサポートしています。その他の言語の場合は、WebSocket 接続を使用してください。
ユーザーガイド:モデルの詳細と選択ガイダンスについては、「音声合成」をご参照ください。
レート制限:モデルの呼び出しにはレート制限が適用されます。制限を超えると、サーバーはエラー Requests rate limit exceeded, please try again later. を返します。リクエストレートまたは同時実行数を減らしてリトライしてください。各モデルのレート制限については、「レート制限」をご参照ください。
サービスエンドポイント
固定の WebSocket URL:
シンガポール
wss://{WorkspaceId}.ap-southeast-1.maas.aliyuncs.com/api-ws/v1/inference
{WorkspaceId} を実際のワークスペース ID に置き換えてください。
中国 (北京)
wss://{WorkspaceId}.cn-beijing.maas.aliyuncs.com/api-ws/v1/inference
{WorkspaceId} を実際のワークスペース ID に置き換えてください。
重要常に wss:// プロトコルを使用してください。上記の URL は固定です。権限付与の詳細については、「リクエストヘッダー」をご参照ください。
重要Alibaba Cloud Model Studio は、中国 (北京) およびシンガポールリージョン向けにワークスペース固有のドメインをリリースしました。新しい専用ドメインは、推論リクエストに対して優れたパフォーマンスと高い安定性を提供します。新しいドメインへの移行を推奨します:
- 中国 (北京):
dashscope.aliyuncs.comから{WorkspaceId}.cn-beijing.maas.aliyuncs.comへ - シンガポール:
dashscope-intl.aliyuncs.comから{WorkspaceId}.ap-southeast-1.maas.aliyuncs.comへ
{WorkspaceId} を実際のワークスペース ID に置き換えてください。既存のドメインも引き続き完全に機能します。
リクエストヘッダー
リクエストに次のヘッダーを含めてください:
パラメーター | タイプ | 必須 | 説明 |
|---|---|---|---|
Authorization | 文字列 | はい | フォーマット: |
user-agent | 文字列 | いいえ | リクエスト追跡用のクライアント識別子。 |
X-DashScope-WorkSpace | 文字列 | いいえ | Alibaba Cloud Model Studio のワークスペース ID。 |
X-DashScope-DataInspection | 文字列 | いいえ | データインスペクションを有効にします。デフォルト: |
重要権限付与は WebSocket ハンドシェイク中に検証されます。API キーが無効または欠落している場合、ハンドシェイクは HTTP 401/403 エラーで失敗します。
インタラクションワークフロー
クライアント側およびサーバー側のイベントの詳細については、「クライアントイベント」と「サーバー側イベント」をご参照ください。
クライアントとサーバーのインタラクションシーケンス:
-
接続の確立:サーバーへの WebSocket 接続を作成します。
-
タスクの開始:run-task イベントを送信します。
-
確認の待機:次に進む前に、サーバーから task-started イベントを受信します。
-
合成用テキストの送信:
合成するテキストを含む continue-task イベントを、順番に 1 つ以上送信します。サーバーは、完全な文ごとに音声ストリームを含む result-generated イベントを返します。テキスト長の制限については、continue-task イベントの
textフィールドをご参照ください。注記テキストセグメントを含む複数の continue-task イベントを順番に送信します。サーバーはテキストを文に分割します:
- 完全な文は直ちに音声に合成され、返されます。
- 不完全な文は、完了するまでバッファリングされます。
finish-task イベントにより、バッファリングされたすべてのコンテンツが強制的に合成されます。
-
音声の受信:
binaryチャンネルから音声ストリームを読み取ります。 -
タスクの終了:
すべてのテキストを送信した後、finish-task イベントを送信し、音声の受信を続けます。このステップは必須です。スキップすると、不完全な音声が生成される可能性があります。
-
タスク完了の受信:
サーバーからの task-finished イベントにより、タスクが完了したことが確認されます。
-
接続の終了:WebSocket 接続を切断します。
タスクごとに新しい接続を作成するのではなく、複数のタスクで WebSocket 接続を再利用してください。
重要1 つの合成タスク内のすべてのイベント (run-task、continue-task、finish-task) は、同じ task_id を共有する必要があります。タスクごとに新しい task_id (UUID など) を生成してください。値が一致しない場合、音声の破損やタスクの失敗を引き起こす可能性があります。