Qwen-ASR-Realtime は、WebSocket 経由でオーディオストリームを受信し、リアルタイムで音声を文字起こしします。このサービスは、 VAD モード と 手動モード の 2 つのインタラクションモードをサポートしています。
ユーザーガイド: モデルの概要と選択ガイダンスについては、「音声テキスト変換」をご参照ください。サンプルコードについては、「リアルタイム音声認識」をご参照ください。
レート制限: モデルの呼び出しにはレート制限が適用されます。制限を超えると、サーバーはエラー Requests rate limit exceeded, please try again later. を返します。リクエストレートまたは同時実行数を減らして、再試行してください。各モデルのレート制限については、「レート制限」をご参照ください。
サービスエンドポイント
以下の WebSocket URL を使用します。model クエリパラメーターでモデルを指定します。<model_name> をモデル名に置き換えてください:
シンガポール
wss://{WorkspaceId}.ap-southeast-1.maas.aliyuncs.com/api-ws/v1/realtime?model=<model_name>
{WorkspaceId} を実際のワークスペース ID に置き換えてください。
中国 (北京)
wss://{WorkspaceId}.cn-beijing.maas.aliyuncs.com/api-ws/v1/realtime?model=<model_name>
{WorkspaceId} を実際のワークスペース ID に置き換えてください。
重要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 に置き換えてください。既存のドメインは引き続き問題なく利用できます。
重要wss:// スキームを使用してください。リクエストヘッダーで Authorization を設定してください (「リクエストヘッダー」をご参照ください)。model クエリパラメーターでモデルを指定してください。
リクエストヘッダー
リクエストヘッダーに次のフィールドを含めてください:
パラメーター | タイプ | 必須 | 説明 |
|---|---|---|---|
Authorization | string | はい |
|
user-agent | string | いいえ | サーバーがリクエストソースを追跡するためのクライアント識別子です。 |
X-DashScope-WorkSpace | string | いいえ | Alibaba Cloud Model Studio のワークスペース ID です。 |
X-DashScope-DataInspection | string | いいえ | データ検査を有効にするかどうか。データ検査が必要な場合を除き、このヘッダーは省略してください。必要な場合は、値を |
重要Authorization は WebSocket ハンドシェイク中に検証されます。API キーが無効または欠落している場合、ハンドシェイクは HTTP 401 または 403 エラーで失敗します。
インタラクションフロー
クライアントイベントとサーバーイベントの詳細については、「Qwen-ASR-Realtime のクライアントイベント」および「サーバーイベント」をご参照ください。
Qwen-ASR-Realtime は 2 つのインタラクションモードをサポートしています:
- VAD モード (デフォルト): サーバーは音声アクティビティ検出 (VAD) を使用して、各発話の開始と終了を自動的に検出します。このモードは、リアルタイムの会話や会議の文字起こしなどのシナリオで使用します。
- 手動モード: クライアントが発話の境界を制御します。このモードは、メッセージングアプリで音声メッセージを送信する場合など、クライアントがこれらの境界を明示的に判断できる場合に使用します。
VAD モード (デフォルト)
サーバーは各発話の開始と終了を自動的に検出します。オーディオストリームを継続的に送信すると、サーバーは発話の終了を検出するたびに、その発話の最終的な文字起こし結果を返します。このモードは、リアルタイムの会話や会議の文字起こしなどのシナリオで使用します。
有効化の方法: このモードはデフォルトで有効です。VAD の動作をカスタマイズするには、クライアントの session.update イベントで session.turn_detection パラメーターに設定オブジェクトを渡します。
-
クライアントは input_audio_buffer.append イベントを送信して、オーディオをバッファーに追加します。
-
サーバーは、音声が検出されると input_audio_buffer.speech_started イベントを返します。
注: このイベントが到着する前にクライアントが session.finish を送信してセッションを終了した場合、サーバーは直ちに session.finished イベントを返します。その後、クライアントは接続を閉じる必要があります。
-
クライアントは引き続き input_audio_buffer.append イベントを送信してオーディオを送信します。
-
すべてのオーディオを送信した後、クライアントは session.finish イベントを送信してセッションを終了します。
警告VAD モードでは、クライアントは接続を閉じる前に
session.finishイベントを送信する必要があります。クライアントがsession.finishを送信せずに WebSocket 接続を閉じると、サーバーは進行中のアイテムを破棄し、conversation.item.input_audio_transcription.completedなどのイベントは配信されません。{"type":"session.finish"}を送信し、session.finishedイベントを待機してからws.Close()を呼び出して接続を閉じてください。 -
サーバーは、音声の終了を検出すると input_audio_buffer.speech_stopped イベントを返します。
-
サーバーは input_audio_buffer.committed イベントを返します。
-
サーバーは conversation.item.created イベントを返します。
-
サーバーは、部分的な文字起こし結果を含む conversation.item.input_audio_transcription.text イベントを返します。
-
サーバーは、最終的な文字起こし結果を含む conversation.item.input_audio_transcription.completed イベントを返します。
-
サーバーは session.finished イベントを返して、認識が完了したことをシグナルします。その後、クライアントは接続を閉じる必要があります。
手動モード
クライアントが発話の境界を制御します。発話全体のオーディオを送信した後、クライアントは input_audio_buffer.commit イベントを送信してサーバーに通知します。このモードは、メッセージングアプリで音声メッセージを送信する場合など、クライアントがこれらの境界を明示的に判断できる場合に使用します。
有効化の方法: クライアントの session.update イベントで session.turn_detection を null に設定してください。
- クライアントは input_audio_buffer.append イベントを送信して、オーディオをバッファーに追加します。
- クライアントは input_audio_buffer.commit イベントを送信して、入力オーディオバッファーをコミットします。このコミットにより、会話に新しいユーザーメッセージアイテムが作成されます。
- クライアントは session.finish イベントを送信してセッションを終了します。
- サーバーは input_audio_buffer.committed イベントを返します。
- サーバーは、部分的な文字起こし結果を含む conversation.item.input_audio_transcription.text イベントを返します。
- サーバーは、最終的な文字起こし結果を含む conversation.item.input_audio_transcription.completed イベントを返します。
- サーバーは session.finished イベントを返して、認識が完了したことをシグナルします。その後、クライアントは接続を閉じる必要があります。