このドキュメントでは、クライアントが Qwen-ASR Realtime API との WebSocket セッション中にサーバーに送信するイベントについて説明します。
ユーザーガイド:モデルの概要、特徴、および完全なサンプルコードについては、「リアルタイム音声認識 - Qwen」をご参照ください。
session.update
セッション構成を更新します。このイベントは、WebSocket 接続を確立した直後に送信してください。このイベントを送信しない場合、システムはデフォルトの構成を使用します。
サーバーがこのイベントを正常に処理した後、確認として session.updated イベントを送信します。
パラメーター | タイプ | 必須 | 説明 |
|---|
type | 文字列 | はい | イベントタイプ。値は session.update に固定されています。 | event_id | 文字列 | はい | イベント ID。 | session | オブジェクト | はい | セッション構成を含むオブジェクト。 | session.input_audio_format | 文字列 | いいえ | オーディオフォーマット。サポートされているフォーマットは pcm および opus です。 デフォルト: pcm。 | session.sample_rate | 整数 | いいえ | Hz 単位の音声サンプリングレートです。サポートされている値は 16000 および 8000 です。 デフォルト: 16000。 このパラメーターを 8000 に設定すると、サーバーは認識前にオーディオを 16000 Hz にアップサンプリングします。これにより、わずかな遅延が発生する可能性があります。電話回線からのオーディオなど、ソースオーディオが 8000 Hz の場合にのみ、この値を使用してください。 | session.input_audio_transcription | オブジェクト | いいえ | 音声認識に関連する構成。 | session.input_audio_transcription.language | 文字列 | いいえ | 音声のソース言語。 zh: 中国語 (標準語、四川語、閩南語、呉語) yue: 広東語 en: 英語 ja: 日本語 de: ドイツ語 ko: 韓国語 ru: ロシア語 fr: フランス語 pt: ポルトガル語 ar: アラビア語 it: イタリア語 es: スペイン語 hi: ヒンディー語 id: インドネシア語 th: タイ語 tr: トルコ語 uk: ウクライナ語 vi: ベトナム語 cs: チェコ語 da: デンマーク語 fil: フィリピン語 fi: フィンランド語 is: アイスランド語 ms: マレー語 no: ノルウェー語 pl: ポーランド語 sv: スウェーデン語
| session.input_audio_transcription.corpus.text | 文字列 | いいえ | コンテキストを指定します。音声認識中に背景テキスト、エンティティ語彙、その他の参照情報 (コンテキスト) を提供することで、カスタマイズされた結果を得ることができます。 長さ制限:10,000 トークン。 詳細については、「コンテキストバイアス」をご参照ください。 | session.turn_detection | オブジェクト | いいえ | 音声区間検出 (VAD) の構成。 このパラメーターは VAD モードを有効または無効にします。このパラメーターを `null` に設定すると、VAD モードが無効になり、手動モードが有効になります。このパラメーターが設定されている場合、VAD モードが有効になります。 | session.turn_detection.type | 文字列 | いいえ、turn_detection が指定されている場合は必須です。 | 値は server_vad に固定されます。 | session.turn_detection.threshold | 浮動 | いいえ | VAD 検出のしきい値。推奨値: 0.0。 デフォルト: 0.2。 有効値: [-1, 1]。 しきい値を低くすると VAD の感度が向上しますが、バックグラウンドノイズが音声と誤認される可能性があります。しきい値を高くすると感度が低下し、ノイズの多い環境での誤トリガーを減らすのに役立ちます。 | session.turn_detection.silence_duration_ms | 整数 | いいえ | VAD エンドポイント検出のしきい値をミリ秒 (ms) 単位で指定します。このしきい値を超える無音期間は、文の終わりと見なされます。推奨値: 400。 デフォルト: 800。 有効な値: [200, 6000]。 300 ms などの低い値にすると、モデルはより速く応答できますが、通常の間で不自然な区切りが発生する可能性があります。1200 ms などの高い値にすると、長い文の中の間をより適切に処理できますが、全体的な応答レイテンシーが増加します。 |
| {
"event_id": "event_123",
"type": "session.update",
"session": {
"input_audio_format": "pcm",
"sample_rate": 16000,
"input_audio_transcription": {
"language": "zh"
},
"turn_detection": {
"type": "server_vad",
"threshold": 0.0,
"silence_duration_ms": 400
}
}
}
|
音声データブロックをサーバーの入力バッファーに追加します。これは、ストリーミング音声のコアとなるイベントです。
シナリオによる違い:
- VAD モード:音声バッファーは音声区間検出に使用されます。サーバーは、認識のために音声を送信するタイミングを自動的に決定します。
- 非 VAD モード:クライアントは各イベントの音声データ量をコントロールできます。単一の
input_audio_buffer.append イベントにおける audio フィールドの最大サイズは 15 MiB です。より速い応答を得るには、より小さい音声ブロックをストリーミングしてください。
重要:サーバーは input_audio_buffer.append イベントに対する確認応答を送信しません。
パラメーター | タイプ | 必須 | 説明 |
|---|
type | 文字列 | はい | イベントタイプ。値は input_audio_buffer.append である必要があります。 | event_id | 文字列 | はい | イベントの一意の ID。 | audio | 文字列 | はい | Base64 でエンコードされた音声データ。 |
| {
"event_id": "event_2728",
"type": "input_audio_buffer.append",
"audio": "<Base64 でエンコードされた音声データ>"
}
|
非 VAD モードでは、このイベントは手動で認識をトリガーします。クライアントが完全な発話の送信を完了したことをサーバーに通知します。その後、サーバーは現在のバッファー内のすべての音声データを単一のユニットとして認識します。
無効化されるモード: VAD モード。
正常に処理された後、サーバーは確認としてinput_audio_buffer.committed イベントを送信します。
パラメーター | タイプ | 必須 | 説明 |
|---|
type | 文字列 | はい | イベントタイプ。値は input_audio_buffer.commit です。 | event_id | 文字列 | はい | イベント ID。 |
| {
"event_id": "event_789",
"type": "input_audio_buffer.commit"
}
|
session.finish
現在のセッションを終了します。
サーバーの応答フロー:
- 音声が検出された場合: 最終的な音声認識が完了すると、サーバーは認識結果を含む
conversation.item.input_audio_transcription.completed イベントを送信します。その後、サーバーはセッションが終了したことを示す session.finished イベントを送信します。
- 音声が検出されない場合、サーバーは直接
session.finished イベントを送信します。
クライアントが session.finished イベントを受信した後、クライアントは切断する必要があります。
パラメーター | タイプ | 必須 | 説明 |
|---|
type | 文字列 | はい | イベントタイプ。値は session.finish です。 | event_id | 文字列 | はい | イベント ID。 |
| {
"event_id": "event_341",
"type": "session.finish",
}
|