Qwen Audio 3.1 ASR Message

Qwen Audio 3.1 ASR Message
Alibaba Cloud · Transcription
WEBSOCKET /v1/realtime

Transcription tuned for voice messages and voice input over a socket, returning each utterance as one complete transcript when the speaker pauses.

At a glance

FieldValue
Model idqwen-audio-3-1-asr-message
Model release date2026-09-21
Input modalitiesAudio
Output modalitiesText
Context window-
Weight precision-
RegionSingapore
Featurestranscription, speech_to_text, realtime, multilingual
Native inferenceNo
NewYes
Supported endpointsWEBSOCKET /v1/realtime
Alternate model idsqwen-audio-3.1-asr-message, alibaba/qwen-audio-3-1-asr-message

Pricing

ChargeSpecRate
Inputper 1M audio input tokens$1.86
Outputper 1M generated tokens$1.40

Example request

import asyncio, json, os, websockets
URL = "wss://api.empiriolabs.ai/v1/realtime?model=qwen-audio-3-1-asr-message"
async def main():
async with websockets.connect(
URL,
additional_headers=[("Authorization", f"Bearer {os.environ['EMPIRIOLABS_API_KEY']}")],
max_size=None,
) as ws:
print(json.loads(await ws.recv())["type"]) # session.created
await ws.send(json.dumps({
"type": "conversation.item.create",
"item": {"type": "message", "role": "user",
"content": [{"type": "input_text", "text": "Say hello."}]},
}))
await ws.send(json.dumps({"type": "response.create"}))
async for raw in ws:
event = json.loads(raw)
if event["type"] == "response.done":
break
asyncio.run(main())

Parameters

ParameterTypeRequiredDefaultDescription
input_audio_formatenumno"pcm16"Encoding of the audio you append to the input buffer: base64 16-bit PCM, mono, at 16 kHz. · Allowed: pcm16

Notes

Connecting

Voice message transcription over a WebSocket at wss://api.empiriolabs.ai/v1/realtime?model=qwen-audio-3-1-asr-message, 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 utterance ends, so there is no commit to send.

What comes back

Each utterance arrives whole, as one conversation.item.input_audio_transcription.completed event once the speaker pauses. This model does not send partial results while the speaker is talking; for live captions, use qwen-audio-3-1-asr-stream.

Billing

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


Machine-readable schema: GET https://api.empiriolabs.ai/v1/models/qwen-audio-3-1-asr-message.