AsyncAPI channel · Modulate
· Modulate Velma-2 Streaming Server
/api/velma-2-streaming
WebSocket channel for streaming velma-2.
## Connection Flow
1. Connect with `api_key` and optional audio-format query parameters.
2. Connection is accepted if authentication succeeds and limits are not exceeded.
3. Send one text frame: either the literal string `default` or a
JSON-encoded `BatchConfig`.
4. Stream audio data as binary WebSocket frames.
5. Send an empty text frame ("") to signal
First text frame - `default` or JSON-encoded BatchConfig.
send
sendAudioChunk
Binary audio frame.
send
sendEndOfStream
Empty text frame signaling end of audio.
receive
receiveStreamingEvents
Server-emitted events. Discriminated by the `type` field.
Messages
streamConfig
First text frame: either the literal string `default` (to use
the built-in default configuration) or a JSON-encoded
BatchConfig object.
Content-Type: application/json
audioChunk
Raw audio data chunk.
Content-Type: application/octet-stream
endOfStream
Empty text frame signalling end of audio stream.
Content-Type: text/plain
clipEvent
A transcribed clip with metadata.
Content-Type: application/json
partialClipEvent
An in-progress clip streamed while an utterance is still being spoken,
before it finalizes. Multiple partials may be emitted for the same
`clip_uuid` as the utterance grows; the eventual `clip` event
Content-Type: application/json
clipUpdateEvent
Refined values for a previously finalized clip;
`clip_update.clip_uuid` matches the `clip_uuid` of an earlier `clip`
event. A finalized clip may receive any number of `clip_update`
events (including n
Content-Type: application/json
conversationTypeEvent
Inferred or default conversation-type pick for the session.
Content-Type: application/json
participantRoleEvent
Inferred or default participant-role pick for a speaker.
Content-Type: application/json
behaviorDetectionEvent
Per-behavior detection result.
Content-Type: application/json
topicsEvent
Aggregated list of conversation topics. May be emitted more than once as
the stream progresses; each event fully replaces the previous `topics`
event, so always treat the latest as authoritative and n
Content-Type: application/json
topicSentimentEvent
Per-speaker sentiment for an aggregated topic, keyed by topic and
speaker. May be emitted more than once as the stream progresses; a later
event supersedes an earlier one for the same topic and speake
Content-Type: application/json
summaryEvent
Free-form summary of the conversation. May be emitted more than once as
the stream progresses; each event fully replaces the previous `summary`
event, so always treat the latest as authoritative.
Content-Type: application/json
errorEvent
An error occurred during processing.
Content-Type: application/json
doneEvent
Streaming completed.
Content-Type: application/json
About AsyncAPI
The AsyncAPI specification describes event-driven APIs the way OpenAPI describes request/response APIs. A channel is the named pipe — a webhook URL, a Kafka topic, a WebSocket route, an MQTT subject — that producers and consumers publish or subscribe to. Each channel carries one or more messages with structured payloads, and an operation declares whether a given party sends or receives on that channel.