Qwen Audio 3.1 ASR Stream vs Qwen Audio 3.0 ASR Stream

Qwen Audio 3.1 ASR Stream and Qwen Audio 3.0 ASR Stream side by side: specs, capabilities, parameters, and live pricing from the EmpirioLabs catalog.

Alibaba Cloud Transcription

Qwen Audio 3.1 ASR Stream vs Qwen Audio 3.0 ASR Stream at a glance

Qwen Audio 3.1 ASR Stream and Qwen Audio 3.0 ASR Stream are both Alibaba Cloud models in the Transcription category, available through the EmpirioLabs API.

Key differences

The two models list the same core specs. The rate cards and parameters below show where they differ.

Qwen Audio 3.1 ASR Stream vs Qwen Audio 3.0 ASR Stream: specs

SpecQwen Audio 3.1 ASR StreamQwen Audio 3.0 ASR Stream
Model IDqwen-audio-3-1-asr-streamqwen-audio-3-0-asr-stream
AuthorAlibaba CloudAlibaba Cloud
Released-Jul 30, 2026
Input
Audio
Audio
Output
Text
Text
RegionSingaporeSingapore
Endpoints
WEBSOCKET /v1/realtime
WEBSOCKET /v1/realtime
Capabilities
transcription speech to text realtime streaming asr multilingual
transcription speech to text realtime streaming asr multilingual

Qwen Audio 3.1 ASR Stream vs Qwen Audio 3.0 ASR Stream: API pricing

Live rates from the EmpirioLabs catalog for both models. Each rate card always matches what the API charges.

Qwen Audio 3.1 ASR Stream vs Qwen Audio 3.0 ASR Stream: API parameters

Request parameters each model lists on EmpirioLabs, with the allowed values or range where one applies. A dash marks a parameter the model does not list.

ParameterQwen Audio 3.1 ASR StreamQwen Audio 3.0 ASR Stream
input_audio_formatpcm16 Default: pcm16pcm16 Default: pcm16
languageauto, zh, en, ja, ko, vi, th, id, ms, tl, hi, ar, fr, de, es,... Default: autoauto, zh, en, ja, ko, vi, th, id, ms, tl, hi, ar, fr, de, es,... Default: auto
promptstringstring
silence_duration_ms200 to 6000 Default: 800200 to 6000 Default: 800
threshold0 to 10 to 1
noise_reductionfar_field, near_field Default: far_fieldfar_field, near_field Default: far_field
keep_dialectboolean Default: falseboolean Default: false

Qwen Audio 3.1 ASR Stream vs Qwen Audio 3.0 ASR Stream: limits and notes

Qwen Audio 3.1 ASR Stream

Connecting

Live transcription over a WebSocket at wss://api.empiriolabs.ai/v1/realtime?model=qwen-audio-3-1-asr-stream, authenticated with the ordinary Authorization Bearer header.

Sending audio

Stream 16 kHz mono pcm16 audio with input_audio_buffer.append. Voice activity detection decides where each sentence ends, so there is no commit to send.

Session settings

Send session.update right after session.created, before the first audio, with any of these settings: input_audio_transcription.language (or the language query parameter of the connection URL; auto by default), input_audio_transcription.prompt with the names and terms the speaker uses (up to 400 characters), turn_detection.silence_duration_ms (200 to 6000, default 800) and turn_detection.threshold (0.0 to 1.0), and input_audio_noise_reduction (near_field or far_field). keep_dialect keeps Chinese dialect words as spoken. A setting changed while audio is streaming ends the sentence in progress and applies to the audio sent after it.

What comes back

conversation.item.input_audio_transcription.delta events carry the sentence so far while the speaker is still talking, and conversation.item.input_audio_transcription.completed carries the settled sentence at each pause.

Billing

Input and output tokens are priced per 1M, and each completed sentence is billed on its own from the usage the model reports.

Qwen Audio 3.0 ASR Stream

Connecting

Live transcription over a WebSocket at wss://api.empiriolabs.ai/v1/realtime?model=qwen-audio-3-0-asr-stream, authenticated with the ordinary Authorization Bearer header.

Sending audio

Stream 16 kHz mono pcm16 audio with input_audio_buffer.append. Voice activity detection decides where each sentence ends, so there is no commit to send.

Session settings

Send session.update right after session.created, before the first audio, with any of these settings: input_audio_transcription.language (or the language query parameter of the connection URL; auto by default), input_audio_transcription.prompt with the names and terms the speaker uses (up to 400 characters), turn_detection.silence_duration_ms (200 to 6000, default 800) and turn_detection.threshold (0.0 to 1.0), and input_audio_noise_reduction (near_field or far_field). keep_dialect keeps Chinese dialect words as spoken. A setting changed while audio is streaming ends the sentence in progress and applies to the audio sent after it.

What comes back

conversation.item.input_audio_transcription.delta events carry the sentence so far while the speaker is still talking, and conversation.item.input_audio_transcription.completed carries the settled sentence at each pause.

Billing

Billed per second of the audio you stream, silence included, at the hourly rate shown. The session is billed when it ends.

How to call Qwen Audio 3.1 ASR Stream and Qwen Audio 3.0 ASR Stream

Qwen Audio 3.1 ASR Stream transcribes a live audio stream over a WebSocket at wss://api.empiriolabs.ai/v1/realtime?model=qwen-audio-3-1-asr-stream, not over the HTTP endpoints. Connect with the model id qwen-audio-3-1-asr-stream and send your EmpirioLabs API key as an Authorization: Bearer header on the handshake. Append base64 16-bit PCM audio and read transcript events back while the speaker is still talking. A browser cannot set headers on a WebSocket, so open this connection from your server and relay audio to the browser over your own socket. Both models are called through the same endpoint. Set model to qwen-audio-3-1-asr-stream or qwen-audio-3-0-asr-stream. Get an API key from the EmpirioLabs dashboard.

Python (websockets)
import asyncio, json, os, websockets

async def main():
    async with websockets.connect(
        "wss://api.empiriolabs.ai/v1/realtime?model=qwen-audio-3-1-asr-stream",
        additional_headers=[
            ("Authorization", f"Bearer {os.environ['EMPIRIOLABS_API_KEY']}"),
        ],
        max_size=None,
    ) as ws:
        print(json.loads(await ws.recv())["type"])  # session.created

        import base64

        # 16-bit PCM microphone audio, base64 encoded, in small chunks.
        for chunk in read_microphone_chunks():
            await ws.send(json.dumps({
                "type": "input_audio_buffer.append",
                "audio": base64.b64encode(chunk).decode(),
            }))

        await ws.send(json.dumps({"type": "input_audio_buffer.commit"}))

        async for raw in ws:
            event = json.loads(raw)
            if event["type"].endswith("input_audio_transcription.delta"):
                # "text" is settled transcript; "stash" is still in progress.
                if event.get("text"):
                    print(event["text"], end="", flush=True)

asyncio.run(main())

Qwen Audio 3.1 ASR Stream vs Qwen Audio 3.0 ASR Stream: common questions

What is the difference between Qwen Audio 3.1 ASR Stream and Qwen Audio 3.0 ASR Stream?

The two models list the same core specs. The rate cards and parameters below show where they differ. The specs, rate cards, and parameters on this page come from the live EmpirioLabs catalog.

Which has the lower rate, Qwen Audio 3.1 ASR Stream or Qwen Audio 3.0 ASR Stream?

The two models are priced on different units or tiers, so compare the live rate cards on this page. They always match what the API charges.

Can I switch between Qwen Audio 3.1 ASR Stream and Qwen Audio 3.0 ASR Stream without rebuilding my integration?

Yes. Both models use WEBSOCKET /v1/realtime with the same EmpirioLabs API key, so most integrations switch by changing the model value. Check the parameters table on this page first if you rely on a model-specific parameter.

Can I try Qwen Audio 3.1 ASR Stream and Qwen Audio 3.0 ASR Stream in the browser before integrating?

Yes. Open each model in the EmpirioLabs playground and press Start session to try it in your browser.

Ready to use better endpoints?

Check out our pricing or reach out if you want your own model deployed on our stack.