Skip to main content
Realtime

Qwen-TTS client events

Client events are JSON messages sent over a WebSocket connection to control the Qwen-TTS Realtime API session -- configure voice settings, stream text for synthesis, and signal completion.

For the full API overview, see Realtime streaming TTS.

Endpoint

Connect to the WebSocket endpoint:
wss://dashscope-intl.aliyuncs.com/api-ws/v1/realtime?model={model}
Replace {model} with your model ID, such as qwen3-tts-instruct-flash-realtime.

Event summary

Client eventServer responseDescription
session.updatesession.updatedSet voice, audio format, interaction mode, and other session parameters
input_text_buffer.append--Append text to the synthesis buffer
input_text_buffer.commitinput_text_buffer.committedCommit buffered text to trigger synthesis
input_text_buffer.clearinput_text_buffer.clearedDiscard all buffered text
session.finish--End the session; the server flushes remaining audio and closes the connection

session.update

Configures the session. Send as the first message after the WebSocket connection is established. If omitted, all parameters use defaults. The server confirms with a session.updated event.

Request body

{
    "event_id": "event_123",
    "type": "session.update",
    "session": {
        "voice": "Cherry",
        "mode": "server_commit",
        "language_type": "Chinese",
        "response_format": "pcm",
        "sample_rate": 24000,
        "instructions": "",
        "optimize_instructions": false
    }
}

Parameters

ParameterTypeRequiredDescription
event_idstringYesUnique event identifier generated by the client (UUID recommended). Must be unique within the WebSocket session.
typestringYesSet to session.update.
sessionobjectNoSession configuration. See the following subsections.

input_text_buffer.append

Append text to the synthesis buffer.
  • In server_commit mode, text is appended to the server-side buffer.
  • In commit mode, text is appended to the client-side buffer.

Request body

{
    "event_id": "event_B4o9RHSTWobB5OQdEHLTo",
    "type": "input_text_buffer.append",
    "text": "Hello, I am Qwen."
}

Parameters

ParameterTypeRequiredDescription
event_idstringYesUnique event identifier generated by the client (UUID recommended). Must be unique within the WebSocket session.
typestringYesSet to input_text_buffer.append.
textstringYesThe text to synthesize.

input_text_buffer.commit

Commits buffered text and creates a user message item. The server responds with an input_text_buffer.committed event. Returns an error if the buffer is empty. Behavior differs by mode:
  • server_commit mode: All buffered text is synthesized immediately. The server stops caching and processes everything at once.
  • commit mode: Creates user message item from buffered text.
Committing the buffer triggers synthesis only -- it does not generate a model response.

Request body

{
  "event_id": "event_B4o9RHSTWobB5OQdEHLTo",
  "type": "input_text_buffer.commit"
}

Parameters

ParameterTypeRequiredDescription
event_idstringYesUnique event identifier generated by the client (UUID recommended). Must be unique within the WebSocket session.
typestringYesSet to input_text_buffer.commit.

input_text_buffer.clear

Clears buffer text. The server responds with an input_text_buffer.cleared event.

Request body

{
  "event_id": "event_2728",
  "type": "input_text_buffer.clear"
}

Parameters

ParameterTypeRequiredDescription
event_idstringYesUnique event identifier generated by the client (UUID recommended). Must be unique within the WebSocket session.
typestringYesSet to input_text_buffer.clear.

session.finish

Signals no more text will be sent. The server returns remaining audio and closes the connection.

Request body

{
  "event_id": "event_2239",
  "type": "session.finish"
}

Parameters

ParameterTypeRequiredDescription
event_idstringYesUnique event identifier generated by the client (UUID recommended). Must be unique within the WebSocket session.
typestringYesSet to session.finish.
Qwen-TTS client events - Qwen Cloud