Skip to navigation

Rapida

Build voice agents on Rapida using Smallest AI TTS and STT.
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.
  • 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.