Rivlet Listen
Voice AI that runs on your device.
Custom wake words, commands, and classifiers that adapt to each user — entirely on your device, no cloud round-trip.
No cloud round-trip. Audio stays on your device.
1.7 ms
median classification, in-browser
p95 under 2 ms
6.4 MB
the whole model — browser, Pi, or server
$0
per call. Audio never leaves the device.
A tiny speech-to-text model running on-device — whisper.cpp tiny — takes ~74 ms to transcribe one second of audio on the same chip. We classify in under 2 ms: a lighter job (closed-set classification, not open-vocabulary transcription), run the same way — on-device, no network. See the benchmark →
What you can build with Listen.
Start with simple classification. Grow into command sets, wake words, and full voice-assistant pipelines.
Wake word detection
Always-on keyword spotting. Trigger on any sound or phrase — entirely offline, no cloud round-trip.
Custom voice commands
Teach it your vocabulary. Users correct misfires and the model sharpens around them.
Audio classification
Doorbells, alarms, machinery — classify any sound event in real time.
Per-user adaptation
Every user gets a model that learns their voice and accent. No shared training data.
Runs offline
Browser tab, Raspberry Pi, Linux server, mobile app. One .rivlet file, every target.
No per-call fees
Audio never leaves the device. No API bills, no data egress, no vendor lock-in.
Add voice to your product in 3 lines.
from rivlet_listen import Model
model = Model.load("doorbell.rivlet")
print(model.predict(audio_wav_bytes))Python, Rust, C, JavaScript, or a standalone binary. Ships everywhere from Raspberry Pi to the browser.