Sep 23, 2026

Sutra - Sending Meaning, Not Audio, When Networks Fail

android kotlin speech recognition on-device ai voice compression

Here's the demo video of Sutra in action: Youtube

A phone call needs a steady 16–48 kbps to hold. When a mobile network degrades, that's the first thing to go: the bars still show, a trickle of data still moves, but the call won't hold. This is exactly the situation in a flooded village, a landslide in the hills, a fishing boat 20 km offshore, or a border post above the tree line. It's also why India's satellite service for these exact scenarios carries SOS and text, but not voice.

So the people who most need to be heard are stuck typing instead of talking. That's a poor answer for someone who's frightened, has their hands full, is holding a child on a roof, or can't read the script their phone offers.

Sutra's approach is to stop sending audio altogether. The phone recognizes speech locally using an on-device Whisper model, analyzes how it was said (pitch, energy, pauses, urgency), and compresses the whole thing into a frame of about 40 bytes, roughly 200 to 270 times less data than sending the same speech as a voice call. On the other end, that frame is decoded and rebuilt as spoken language, translated into the listener's own language, so a field responder speaking Hindi or any other language can be understood by someone who only knows English, even on a nearly dead connection.

The system runs as a single Android app with two roles, chosen on launch: field phone (the weak-link device, running the on-device speech recognizer) and control room (any device with a decent connection). A Python/FastAPI backend mints short-lived Agora tokens, logs incoming field reports, and drives an Agora Conversational AI agent that acts as the control room's only "voice." That agent has exactly two tools: one to pull real field reports (so it quotes the actual record instead of inventing details), and one to relay an officer's spoken instruction back down to the field, translated and compressed the same way.

Measured results back this up: 3.6 seconds of spoken Hindi compresses to 40 bytes (about 89 bits per second); a real 9-second Hindi clip compresses to 108 bytes; text compresses 3.53× smaller than UTF-8 across nine Indic scripts, and in testing, all messages still arrived even at 25% frame loss.

The goal is simple ,  make sure the people who most need to be heard in a crisis are never limited to typing because their network can't carry a voice call.

This build was uploaded as a hackathon project

Hackathon

Agora Voice AI Hackathon 2026

View All Projects

2

Give a star to encourage!Discussion
Start a new conversation!
Login to join the discussion