๐ŸŒพ FarmerChat Voice Pipeline

We wrap an off-the-shelf speech recognizer in modular layers โ€” denoise, speaker-selection, domain correction โ€” and fix farmer-speech errors without fine-tuning the recognizer. Hear a real farmer clip and watch the recognized query change, layer by layer.

The pipeline

Five layers around an off-the-shelf recognizer

Each layer fixes one way raw speech recognition fails on farmer audio โ€” field noise, competing speakers, domain words โ€” without fine-tuning the recognizer.
M0
Denoise
Strips field noise โ€” tractor, TV/radio, wind. Applied only where it helps that recognizer.
โ†’
M1
Diarize + speaker-select
Isolates the farmer from bystanders and cross-talk. The main lever โ€” cuts multi-speaker error 32โ€“43%.
โ†’
M2
Recognizer (ASR)
Any off-the-shelf model โ€” Gemini, Sarvam, Azure, IndicConformer. Never fine-tuned.
โ†’
M3
Domain correction
Fixes agriculture terms via an 18k-word lexicon. Targeted โ€” applied where it helps, off elsewhere.
โ†’
M4
Quality gate
Flags uncertain crop / chemical / dose terms to re-ask the farmer (agentic deployment).
Does the pipeline help? Yes โ€” significant on all four recognizers.
Whole corpus: 2,677 IISc clips, Hindi / Telugu / Odia, scored against the farmer's own words (WER; lower is better). The same modular pipeline wraps four off-the-shelf recognizers with no fine-tuning. Best config = speaker-select on, domain correction and denoise applied only where each recognizer benefits.
RecognizerAll clips: raw โ†’ bestMulti-speaker: raw โ†’ best
Multi-speaker audio is the production problem โ€” a bystander, a helper, or a TV competing with the farmer. That is where isolating the farmer pays off most. All improvements shown are statistically significant (paired-bootstrap 95% CI excludes zero). Denoise and correction are conditional: they help some recognizers and settings and are switched off where they do not.
Explore ยท per-clip examples

Choose a clip & the pipeline

The results above are the whole 2,677-clip corpus. Below are 150 example clips to inspect one at a time โ€” hear the audio and watch the recognized query change layer by layer.
Step 2

The farmer's query โ€” and what each setup heard

โœ” What the farmer actually asked (human reference)
Step 3

Accuracy by pipeline stage โ€” this clip

Same recognizer each row; only the layers change. Your current toggles are outlined. Longer / greener = better.
Step 4

Listen & look

โ‘  Raw
the original recording
โ‘ก Denoised (M0)
background removed
โ‘ข Farmer-only (M1)
other speakers dropped
Waveform โ€” raw โ†’ denoised โ†’ removed noise
Spectrogram โ€” before vs after denoising
Energy removed by the denoiser (larger โ‡’ noisier clip)