Use the DashScope Java SDK to call Qwen-ASR-Realtime.
Prerequisites
- DashScope SDK 2.22.5 or later (Install the SDK)
- Obtain an API key
- Understand the interaction flow between client and server
Interaction modes
Qwen-ASR-Realtime supports two modes for deciding when to process audio:
Mode |
| How it works |
|---|---|---|
VAD mode (default) |
| The server detects speech boundaries using voice activity detection (VAD) and decides when to commit the audio buffer for recognition. |
Manual mode |
| The client controls when to commit audio by calling |
Request parameters
Connection parameters (OmniRealtimeParam)
Set these parameters with the chained methods of the OmniRealtimeParam class.
Click to view sample code
Click to view sample code
Parameter | Type | Required | Description |
|---|---|---|---|
|
| Yes | The model to use. Example: |
|
| Yes | The service endpoint. China (Beijing): |
|
| No | The API key. |
Session configuration (OmniRealtimeConfig)
Set these parameters with the chained methods of the OmniRealtimeConfig class.
Click to view sample code
Click to view sample code
Parameter | Type | Required | Description |
|---|---|---|---|
|
| Yes | Output modality. Fixed to |
|
| No | Enables server-side VAD. When disabled, call |
|
| No | VAD type. Fixed to |
|
| No | VAD sensitivity threshold. Recommended value: Default: Lower values increase sensitivity (may trigger on background noise). Higher values reduce sensitivity and help avoid false triggers in noisy environments. |
|
| No | Silence duration in milliseconds that marks the end of an utterance. Recommended value: Default: Shorter durations (e.g., 300 ms) speed up responses but may split natural pauses. Longer durations (e.g., 1200 ms) handle pauses better but increase latency. |
|
| No | Speech recognition settings. See Transcription parameters. |
Transcription parameters (OmniRealtimeTranscriptionParam)
Set these parameters with the setter methods of the OmniRealtimeTranscriptionParam class.
Click to view sample code
Click to view sample code
Parameter | Type | Required | Description |
|---|---|---|---|
|
| No | Language of the audio source. For supported languages, see Supported languages. |
|
| No | Audio sampling rate in Hz. Valid values: Default: Setting |
|
| No | Audio encoding format. Valid values: |
|
| No | Context text for contextual biasing. Provide background text, entity vocabularies, or reference material to improve recognition accuracy. Maximum: 10,000 tokens. |
Key interfaces
OmniRealtimeConversation
Import: com.alibaba.dashscope.audio.omni.OmniRealtimeConversation
This class manages the WebSocket lifecycle: connecting to the server, sending audio, and ending the session.
Create a conversation
Connect to the server
NoApiKeyException, InterruptedException.
Configure the session
Send audio data
- VAD mode (
enableTurnDetection=true): The server detects speech boundaries and decides when to process the buffer. - Manual mode (
enableTurnDetection=false): Audio accumulates in the buffer until you callcommit()to trigger recognition. Each event can contain up to 15 MiB of audio data.
Commit the audio buffer
This method is only available in manual mode (enableTurnDetection=false). An error occurs if the audio buffer is empty.
End the session
- VAD mode: After you finish sending audio.
- Manual mode: After you call
commit().
Close the connection
Get session and response IDs
getSessionId()returns the session ID for the current task.getResponseId()returns the response ID of the most recent server response.
OmniRealtimeCallback
Import: com.alibaba.dashscope.audio.omni.OmniRealtimeCallback
Inherit this class and implement the callback methods to handle server events.
Method | Parameters | Triggered when |
|---|---|---|
| None | The WebSocket connection is established. |
|
| A server event is received. Parse the |
|
| The WebSocket connection is closed. |