Rapida

View as Markdown

This guide walks you through configuring Smallest AI as the TTS and STT provider in Rapida, an open-source voice AI orchestration platform you can self-host or run managed. Rapida lets you pick a provider independently per capability — use Smallest AI for both TTS and STT, or mix it with other providers.

Prerequisites


Setup

1

Open Providers and Models

In the Rapida dashboard, navigate to Providers and Models.

2

Add a Smallest AI credential

Add a new provider credential, select Smallest AI, and paste your API key.

3

Configure TTS

On your assistant’s deployment, set the text-to-speech provider to Smallest AI and choose a Model:

  • lightning_v3.1 — standard pool, voice cloning supported, 12 languages (voices: magnus, devansh, kartik, maithili, liam, avery, and more)
  • lightning_v3.1_pro — premium pool with curated American, British, and Indian voices (English + Hindi) (voices: meher, kaitlyn, blake, sophie, sam, aviraj, and more)

The Voice dropdown is scoped to whichever model you picked — Pro voices aren’t offered under lightning_v3.1 and vice versa, so a mismatched pairing isn’t selectable from the UI in the first place. Set the Language, and optionally a Speed (0.5–2.0).

4

Configure STT

Set the speech-to-text provider to Smallest AI. The Model is pulse — Rapida’s integration streams over Pulse’s realtime WebSocket, so pulse-pro (pre-recorded/HTTP-only) isn’t offered here. Set the Language, or leave it unset for auto-detect.

Optional feature toggles are also available — word/sentence timestamps, speaker diarization, PII/PCI redaction, inverse text normalization, and punctuation formatting. See the Configuration Reference below.


Configuration Reference

Rapida stores provider options as listen.* (STT) / speak.* (TTS) keys.

KeyProviderDefaultDescription
listen.modelSTTpulseStreaming model — only pulse is wired to the realtime endpoint
listen.languageSTTauto-detectISO language code (e.g. en, hi)
listen.word_timestampsSTToffPer-word start/end/confidence timing
listen.sentence_timestampsSTToffSentence-level utterance segments
listen.diarizeSTToffSpeaker labels on words/utterances
listen.redact_piiSTToffRedacts names, addresses, phone numbers as [ENTITYTYPE_N] placeholders
listen.redact_pciSTToffRedacts card numbers, CVVs, ZIP codes, account numbers
listen.numeralsSTTprovider default (auto)Inverse text normalization mode
listen.smart_formatSTTprovider default (true)Punctuation/capitalization in the transcript (Smallest’s format param)
speak.modelTTSlightning_v3.1lightning_v3.1 or lightning_v3.1_pro
speak.voice.idTTSmagnusCatalog voice or cloned voice (voice_*), scoped to the selected model in the dashboard dropdown
speak.languageTTSenLanguage code — see the Lightning voices & languages guide
speak.speedTTS1.0Speech speed multiplier (0.5–2.0)

All seven listen.* feature flags are opt-in — Rapida only sends them to Smallest when explicitly set, so behavior is unchanged if you don’t touch them.

Notes

  • Rapida routes TTS requests to wss://api.smallest.ai/waves/v1/tts/live and STT requests to wss://api.smallest.ai/waves/v1/pulse/get_text, identifying itself with an X-Source: rapida header on both.
  • Interruptions are handled by Rapida’s pipeline: on barge-in, the TTS connection is closed and reopened for the next turn — no custom logic needed on the Smallest AI side.
  • If a speak.voice.id/speak.model pairing the API doesn’t support is sent (e.g. a Pro-only voice with lightning_v3.1), Rapida surfaces it as an error on that turn rather than hanging — the dashboard’s model-scoped voice dropdown is the main safeguard, this is the fallback for free-typed voice IDs.
  • For issues with the Smallest AI integration in Rapida, open an issue in the Rapida repository or contact us on Discord.