Providers
Universal-3.5 Pro
AssemblyAI speech-to-text: Universal-3.5 Pro, with every setting it accepts, the allowed value and the default.
AssemblyAI's realtime model, reachable as either universal-3-5-pro or u3-rt-pro. It judges the end of a turn from punctuation rather than a confidence score, and carries prior turns forward as context so a short reply like "seven pm" is read in light of the question that prompted it.
Reached through the LiveKit Inference gateway.
OnCore runs one AssemblyAI model under two identifiers. Both take the same settings.
Settings#
Every setting is optional. Leave one out and OnCore sends nothing for it, so the Default applies. If invalid is what the provider does with a value it does not accept.
| Setting | Type | Allowed | Default | If invalid |
|---|---|---|---|---|
mode | string | min_latency, balanced, max_accuracy | balanced | Refused, call fails |
prompt | string | free text describing the call | AssemblyAI's turn-detection prompt | Used as sent |
keytermsPrompt | array of strings | terms to boost recognition of | Provider's own | Used as sent |
minTurnSilence | integer (ms) | 0 or greater | 100 | Used as sent |
maxTurnSilence | integer (ms) | 0 or greater | Provider's own | Used as sent |
vadThreshold | float | 0 to 1 | 0.3 | Used as sent |
voiceFocus | string | near-field, far-field | Provider's own | Refused, call fails |
voiceFocusThreshold | float | 0 to 1 | Provider's own | Refused, call fails |
continuousPartials | boolean | true or false | true | Used as sent |
interruptionDelay | integer (ms) | 0 to 1000 | set by the mode preset | Refused, call fails |
speakerLabels | boolean | true or false | false | Used as sent |
Overriding on a single call#
Return this from your assistant-request webhook to change these settings for one call only. The stored transcriber is left untouched, and the next call starts from it again.
{
"data": {
"overrides": {
"transcriber": {
"settings": {
"mode": "balanced",
"prompt": "A caller booking a table at a restaurant.",
"keytermsPrompt": [
"Sadie",
"reservation"
],
"minTurnSilence": 200,
"maxTurnSilence": 800,
"vadThreshold": 0.5,
"voiceFocus": "near-field",
"voiceFocusThreshold": 0.5,
"continuousPartials": true,
"interruptionDelay": 300,
"speakerLabels": false
}
}
}
}
}Send only the keys you want to change: anything you leave out keeps the value the assistant already has. Add "id" beside "settings" to swap the whole transcriber for another one from your catalogue at the same time.
minTurnSilence: Not range-checked: a negative value is accepted rather than refused. This is the silence before the model checks for terminal punctuation, so raising it stops brief pauses ending a turn early.
maxTurnSilence: Forces the turn to end regardless of punctuation. AssemblyAI's own API default is 1000ms; raise it if callers are cut off mid-thought.
vadThreshold: Not range-checked. A value above 1 is accepted and applied, which classifies all audio as silence, so keep it inside 0 to 1.
voiceFocusThreshold: Only takes effect alongside voiceFocus.
interruptionDelay: How soon the first partial arrives, which sets time-to-first-token for barge-in. AssemblyAI adds a fixed 256ms on top, so 0 means an effective 256ms.
u3-rt-pro and universal-3-5-pro are the same model. They accept an identical parameter set and behave identically on every value tested, valid and invalid alike, which is why one page covers both. universal-3-5-pro is the current identifier and the one to use for anything new.
This model uses punctuation-based turn detection: after minTurnSilence of quiet it looks for a terminal ., ? or ! to decide the turn has ended, and maxTurnSilence forces the end regardless. It detects and code-switches between languages on its own, so it ignores an explicit language setting.
The settings above are the complete set for this model. AssemblyAI's own documentation covers a wider API surface than a voice assistant uses, and a key that is not in the table has no effect here.
Unlike some providers, an unrecognised key here is tolerated rather than fatal, and so are the parameters belonging to AssemblyAI's Universal-Streaming models: they are accepted and ignored rather than refused.
Next steps#
- Universal-3.6 Pro: the next AssemblyAI model.
- Providers introduction: per-call overrides, and how a wrong value behaves across providers.