DashScope Java SDK を使用して Qwen-ASR-Realtime を呼び出します。
前提条件
- DashScope SDK 2.22.5 以降 (SDK のインストール)
- API キーの取得
- クライアントとサーバー間のインタラクションフローを理解していること
インタラクションモード
Qwen-ASR-Realtime は、音声処理のタイミングを決定するための 2 つのモードをサポートしています。
モード |
| 動作方法 |
|---|---|---|
VAD モード (デフォルト) |
| サーバー側で音声区間検出 (VAD) を使用して発話区間を検出し、音声バッファーを認識処理にコミットするタイミングを決定します。 |
マニュアルモード |
| クライアントが |
完全な例
your_audio_file.pcm (PCM16、16 kHz、モノラル) を読み込みます。MP3 や WAV などのフォーマットしかない場合は、ffmpeg で変換してください:リクエストパラメーター
接続パラメーター (OmniRealtimeParam)
これらのパラメーターは、OmniRealtimeParam クラスのチェーンメソッドを使用して設定します。
サンプルコードを表示するにはクリックしてください
サンプルコードを表示するにはクリックしてください
パラメーター | 型 | 必須 | 説明 |
|---|---|---|---|
|
| はい | 使用するモデル。例: |
|
| はい | サービスエンドポイント。中国 (北京): |
|
| いいえ | API キー。 |
セッション構成 (OmniRealtimeConfig)
これらのパラメーターは、OmniRealtimeConfig クラスのチェーンメソッドを使用して設定します。
サンプルコードを表示するにはクリックしてください
サンプルコードを表示するにはクリックしてください
パラメーター | 型 | 必須 | 説明 |
|---|---|---|---|
|
| はい | 出力モダリティ。固定値: |
|
| いいえ | サーバー側 VAD を有効にします。無効にした場合、認識処理を手動でトリガーするために |
|
| いいえ | VAD タイプ。固定値: |
|
| いいえ | VAD 感度しきい値。推奨値: デフォルト: 値を下げると感度が高まりますが(バックグラウンドノイズでトリガーされる可能性あり)、値を上げると感度が低下し、ノイズ環境での誤トリガーを回避しやすくなります。 |
|
| いいえ | 発話終了を示す無音持続時間(ミリ秒単位)。推奨値: デフォルト: 短い持続時間(例:300 ms)は応答を高速化しますが、自然なポーズを分割する可能性があります。長い持続時間(例:1200 ms)はポーズをより適切に処理できますが、レイテンシーが増加します。 |
|
| いいえ | 音声認識設定。詳細については、「文字起こしパラメーター」をご参照ください。 |
文字起こしパラメーター (OmniRealtimeTranscriptionParam)
これらのパラメーターは、OmniRealtimeTranscriptionParam クラスのセッターメソッドを使用して設定します。
サンプルコードを表示するにはクリックしてください
サンプルコードを表示するにはクリックしてください
パラメーター | 型 | 必須 | 説明 |
|---|---|---|---|
|
| いいえ | 音声ソースの言語。サポートされている言語については、「サポートされている言語」をご参照ください。 |
|
| いいえ | 音声サンプリングレート(Hz 単位)。有効値: デフォルト:
|
|
| いいえ | 音声エンコード形式。有効値: |
|
| いいえ | コンテキストバイアシング用のコンテキストテキスト。認識精度を向上させるために、背景テキスト、エンティティ語彙、または参照資料を提供します。最大:10,000 トークン。 |
主要インターフェイス
OmniRealtimeConversation
インポート:com.alibaba.dashscope.audio.omni.OmniRealtimeConversation
このクラスは WebSocket のライフサイクル(サーバーへの接続、音声送信、セッション終了)を管理します。
会話の作成
サーバーへの接続
NoApiKeyException、InterruptedException。
セッションの構成
音声データの送信
- VAD モード (
enableTurnDetection=true):サーバーが発話区間を検出し、バッファーを処理するタイミングを決定します。 - マニュアルモード (
enableTurnDetection=false):音声はバッファーに蓄積され、認識処理をトリガーするためにcommit()を呼び出すまで待機します。各イベントには最大 15 MiB の音声データを含めることができます。
音声バッファーのコミット
このメソッドはマニュアルモード (enableTurnDetection=false) のみで使用可能です。音声バッファーが空の場合、エラーが発生します。
セッションの終了
- VAD モード:音声の送信を完了した後。
- マニュアルモード:
commit()を呼び出した後。
接続のクローズ
セッション ID および応答 ID の取得
getSessionId()は、現在のタスクのセッション ID を返します。getResponseId()は、最新のサーバー応答の応答 ID を返します。
OmniRealtimeCallback
インポート:com.alibaba.dashscope.audio.omni.OmniRealtimeCallback
このクラスを継承し、コールバックメソッドを実装することで、サーバーイベントを処理します。
メソッド | パラメーター | トリガー条件 |
|---|---|---|
| なし | WebSocket 接続が確立されました。 |
|
| サーバーイベントを受信したとき。 |
|
| WebSocket 接続が閉じられました。 |