Skip to content

Which package?

UI / App
↕ events
@ottervoice/core ← session, state machine, VAD, barge-in, usage
↕ RuntimeAdapter
runtime-web | react-native | node
↕ Provider interfaces
provider-deepgram | elevenlabs | openrouter | azure-speech | custom
Package When
@ottervoice/core Always. createVoiceSession, events, mocks.
@ottervoice/runtime-web Browser mic + playback.
@ottervoice/runtime-react-native Expo / RN with injected native audio.
@ottervoice/runtime-node CLI / server audio and networking.
Providers Pick a cloud vendor — or implement the same interfaces.
@ottervoice/protocol Forward session events across processes.
@ottervoice/provider-utils Custom providers: credentials, SSE, WebSocket ASR.
pipeline Path Fit
asr_llm_tts (default) ASR text → streaming LLM → TTS Classic cascade
audio_llm ASR captions ∥ Audio LLM text/PCM (timing configurable) Lower-latency native audio models

Bundled OpenRouter adapters are optional demos, not a fixed production route.