Qwen リアルタイム音声認識サービスは、WebSocket プロトコルを使用してリアルタイムのオーディオストリームを受け入れて文字起こしします。インタラクションフローは VAD (音声アクティビティ検出) モードと手動モードをサポートしています。
ユーザーガイド: モデルの紹介、その特徴、およびサンプルコードについては、「リアルタイム音声認識 - Qwen」をご参照ください。
URL
<model_name> を実際のモデル名に置き換えます。
wss://dashscope-intl.aliyuncs.com/api-ws/v1/realtime?model=<model_name>ヘッダー
"Authorization": "bearer <your_dashscope_api_key>"VAD モード (デフォルト)
サービスは、文のセグメンテーションのために発話の開始と終了を自動的に検出します。クライアントはオーディオストリームを継続的に送信します。サービスは、文の終わりを検出した後に最終的な認識結果を返します。このモードは、リアルタイムの会話や会議の議事録などのシナリオに適しています。
有効にする方法: クライアントの <a baseurl="t3168243_v1_1_1.xdita" data-node="6184310" data-root="85177" data-tag="xref" href="t3166998.xdita#af43722339yva" id="df601cc6d09o5">session.update</a> イベントで、session.turn_detection パラメーターを設定できます。
サーバーは、発話の開始を検出すると、
<a baseurl="t3168243_v1_1_1.xdita" data-node="6184673" data-root="85177" data-tag="xref" href="t3167042.xdita#038d846199nbm" id="65bc29d9247ij">input_audio_buffer.speech_started</a>イベントを送信します。クライアントは、
<a baseurl="t3168243_v1_1_1.xdita" data-node="6184310" data-root="85177" data-tag="xref" href="t3166998.xdita#a42f8e9111n72" id="8145bef8c8lhq">input_audio_buffer.append</a>イベントを送信して、オーディオをバッファーに追加します。サーバーが発話の終了を検出し、
<a baseurl="t3168243_v1_1_1.xdita" data-node="6184673" data-root="85177" data-tag="xref" href="t3167042.xdita#3d73b074cak7k" id="eec771afe7v97">input_audio_buffer.speech_stopped</a>イベントを送信します。サーバーは、
<a baseurl="t3168243_v1_1_1.xdita" data-node="6184673" data-root="85177" data-tag="xref" href="t3167042.xdita#1108a3764an0e" id="4115cfdaa6p9b">input_audio_buffer.committed</a>イベントを送信して、入力オーディオバッファーをコミットします。サーバーは、オーディオバッファーから作成されたユーザーメッセージアイテムを含む
<a baseurl="t3168243_v1_1_1.xdita" data-node="6184673" data-root="85177" data-tag="xref" href="t3167042.xdita#04dabbb9b6eto" id="e2a57a8677fhf">conversation.item.created</a>イベントを送信します。サーバーは、
<a baseurl="t3168243_v1_1_1.xdita" data-node="6184673" data-root="85177" data-tag="xref" href="t3167042.xdita#ba1b5cdd79fxu" id="9ba8d60aa9ejt">conversation.item.input_audio_transcription.text</a>イベントで音声認識結果を送信します。
手動モード
クライアントは、文全体のオーディオを送信し、続いて <a baseurl="t3168243_v1_1_1.xdita" data-node="6184310" data-root="85177" data-tag="xref" href="t3166998.xdita#d6d5cd90f3q4c" id="d17734703evab">input_audio_buffer.commit</a> イベントをサーバーに送信することで、文のセグメンテーションをコントロールします。このモードは、チャット アプリケーションで音声メッセージを送信する場合など、クライアントが文の境界を明確に判断できるシナリオに適しています。
有効にする方法:クライアントの <a baseurl="t3168243_v1_1_1.xdita" data-node="6184310" data-root="85177" data-tag="xref" href="t3166998.xdita#af43722339yva" id="1b5fe571c3skl">session.update</a> イベントで、session.turn_detection パラメーターを null に設定できます。
クライアントは、
<a baseurl="t3168243_v1_1_1.xdita" data-node="6184310" data-root="85177" data-tag="xref" href="t3166998.xdita#a42f8e9111n72" id="b8d40970f30eg">input_audio_buffer.append</a>イベントを送信することで、オーディオをバッファーに追加します。クライアントは、
<a baseurl="t3168243_v1_1_1.xdita" data-node="6184310" data-root="85177" data-tag="xref" href="t3166998.xdita#d6d5cd90f3q4c" id="172ecc25c4jew">input_audio_buffer.commit</a>イベントを送信することで、入力音声バッファーを送信します。この送信により、会話に新しいユーザーメッセージ項目が作成されます。サーバーは応答として
<a baseurl="t3168243_v1_1_1.xdita" data-node="6184673" data-root="85177" data-tag="xref" href="t3167042.xdita#1108a3764an0e" id="9cc10c84a4592">input_audio_buffer.committed</a>イベントを送信します。サーバーは、音声認識の結果を含む
<a baseurl="t3168243_v1_1_1.xdita" data-node="6184673" data-root="85177" data-tag="xref" href="t3167042.xdita#ba1b5cdd79fxu" id="1e28143d57x1d">conversation.item.input_audio_transcription.text</a>イベントを送信します。