Qwen-ASR-Realtime は、WebSocket を介して音声ストリームを受信し、リアルタイムで音声を文字起こしします。このサービスは、VAD モードおよびマニュアルモードの 2 種類のインタラクションモードをサポートしています。
ユーザーガイド: モデルの概要および選定ガイドについては、「音声認識」をご参照ください。サンプルコードについては、「リアルタイム音声認識」をご参照ください。
サービスエンドポイント
以下の 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:// スキームを使用します。権限付与はリクエストヘッダーで設定してください(「リクエストヘッダー」を参照)。モデルは model クエリパラメーターで指定します。
リクエストヘッダー
リクエストヘッダーに以下のフィールドを含めてください。
|
パラメーター |
タイプ |
必須 |
説明 |
|
Authorization |
string |
はい |
|
|
user-agent |
string |
いいえ |
サーバーがリクエストソースをトラックできるようにするクライアント識別子です。 |
|
X-DashScope-WorkSpace |
string |
いいえ |
Alibaba Cloud Model Studio のワークスペース ID です。 |
|
X-DashScope-DataInspection |
string |
いいえ |
データ検査を有効にするかどうかを指定します。データ検査が必要な場合にのみこのヘッダーを設定し、その場合は値を |
権限付与は WebSocket ハンドシェイク中に検証されます。API キーが無効または欠落している場合、ハンドシェイクは HTTP 401 または 403 エラーで失敗します。
インタラクションフロー
クライアントイベントおよびサーバーイベントの詳細については、「Qwen-ASR-Realtime のクライアントイベント」および「サーバーイベント」をご参照ください。
Qwen-ASR-Realtime は、以下の 2 種類のインタラクションモードをサポートしています。
-
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 イベントを送信します。
-
サーバーは、音声の終了を検出した時点で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 イベントを返します。その後、クライアントは接続を閉じる必要があります。
マニュアルモード
クライアントが発話の境界を制御します。1 つの発話分の音声を送信した後、クライアントはサーバーに通知するために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 イベントを返します。その後、クライアントは接続を閉じる必要があります。