Smallest AI
Smallest AI generates speech with its Lightning models in English, Hindi and other Indic languages, and many European and Asian languages. The same Smallest AI API key also serves speech recognition. Smallest AI tuning is passed in synthesizer.options.
You can also set these in the portal under Extra Options on the speech credential, in which case they apply to every request that uses that credential. Settings supplied on the verb take precedence.
Credential
Create an API key in the Smallest AI console. Keys start with sk_, and jambonz sends the key as a Bearer token. Add it as a Smallest AI speech credential in the portal or API; one credential is used for both text-to-speech and speech-to-text.
Models
Pick the model on the speech credential, or set options.model_id to override it for one verb.
Voices and languages
A voice is a lowercase id such as kaitlyn, meher or rhea. The portal lists the lightning_v3.1_pro voices under each language; see Smallest AI’s voice list for every model. Listing voices needs an API key, so the portal list is bundled with jambonz.
jambonz maps synthesizer.language to Smallest AI’s language code by its base language (en-US is sent as en, cmn-* as zh, nb-* or nn-* as no). It sends en, hi, mr, kn, ta, bn, gu, te, ml, pa, or, es, de, fr, it, nl, sv, pt, ru, el, fi, no, pl, ar, zh, id, ja, ko, ms, tr and vi; any other language is not sent, and Smallest AI uses the voice’s default. Set options.language to choose explicitly, including auto; it takes precedence over synthesizer.language.
Options
The Lightning model to use, overriding the credential’s model.
The language code sent to Smallest AI as-is, overriding synthesizer.language.
Speaking rate, 0.5 – 2 times the voice’s own speed.
The language numbers are read in, when it differs from the text’s language.
How ambiguous dates are read: EU (day first) or US (month first).
Read mathematical notation in the text as spoken math.
Ids of pronunciation dictionaries in your Smallest AI account.
Smallest AI’s content filter, such as {"enabled": true, "action": "reject"}. action is reject, flag or redact.
Your own session id, echoed back by Smallest AI as external_session_id.
Your own request id, echoed back by Smallest AI as external_request_id.
Sent as Smallest AI’s x-expire-content header, which controls how long Smallest AI keeps the request’s content.
Every option is optional. An option you don’t set is not sent, so Smallest AI’s own default applies.
Streaming
These apply when Smallest AI is driven by TTS streaming, for example from the agent verb.
Longest time Smallest AI holds buffered text before speaking it, 0 – 1000 milliseconds.
How long Smallest AI waits for more text before it ends the turn, 0 – 10000 milliseconds.
Seconds an idle connection stays open, up to 180.
Endpoint override
To point at a non-default endpoint, such as a regional host or a proxy, set api_uri in the credential’s Extra Options (or the credential’s API URI field); it applies to both TTS and STT. A ws:// or http:// prefix turns off TLS. Leave it out to use api.smallest.ai.
Streaming
Smallest AI supports TTS streaming, so it can be driven token by token from an LLM using tts:tokens, for example from the agent verb. jambonz opens a new connection to Smallest AI for each turn, and on barge-in closes the connection.
Smallest AI returns word-level timestamps for some voices, so alignment events are available for those voices when alignment is enabled.