Downloads · 30 days
0
Vishwas07/chhotu-turn-detection
chhotu-turn-detection is a audio classification model from Vishwas07. Use it for the audio classification task on the model card, and read the license before you ship it in a product.
▶ Try the live demo in your browser (the model runs client-side, your mic audio never leaves your device)
Downloads · 30 days
0
Access
Public
Updated Aug 27, 2026
Repo size
119 MB
Likes
0
Public
Click a slice to open those files.
.pt40.8 MB · 69%
From the Hugging Face model README
▶ Try the live demo in your browser (the model runs client-side, your mic audio never leaves your device)
Chhotu answers the question every voice agent keeps asking: has the user finished speaking, or are they just pausing to think? It is built for Indian Hinglish conversations. Filler words like "achha", "toh", "matlab", "haan" and "umm" hold the turn open. A completed thought commits it, and the agent can respond.
Both models scored on identical audio: the frozen smart-turn-data-v3.2 test set (10,878 clips), with Smart Turn v3.2 run through its own official inference path.
| Frozen test set | Chhotu INT8 (4.4MB) | Chhotu fp32 | Smart Turn v3.2 (8.7MB INT8) |
|---|---|---|---|
| Overall accuracy | 86.6% | 86.8% | 93.2% |
| Hindi | 88.8% | 89.1% | 92.8% |
| English | 88.4% | 88.6% | 94.7% |
| Human (non-TTS) audio | 90.0% | 90.2% | 95.5% |
| CPU latency, same Kaggle machine, 1 thread | ~26 ms | ~24 ms | ~95 ms |
| Apple M5 latency, 1 thread | 9.4 ms | 7.6 ms | n/a |
| Parameters | 3.3M, random init | 3.3M | 8M, pretrained Whisper encoder |
The honest reading: the pretrained teacher is ahead on every slice of the main test set, by about 6 points overall. That is what 4.5 million hours of speech pretraining buys, and we do not dress it up. Chhotu's case is the ratio: it lands within 3.7 points of the teacher on Hindi while using 40% of the parameters, half the file size and roughly 3.5x less compute, starting from random weights.
On a held-out Hinglish stress set (code-mixed sentences rendered by a different TTS engine), the picture is mixed and worth stating precisely:
| Stress voice | Chhotu acc / AUROC | Smart Turn acc / AUROC |
|---|---|---|
| hi-IN Madhur (native Hindi, voice unseen in training) | 0.709 / 0.827 | 0.694 / 0.798 |
| en-IN Neerja (Indian-English reading Devanagari) | 0.470 / 0.456 | 0.673 / 0.618 |
| en-IN Prabhat (Indian-English reading Devanagari) | 0.203 / 0.173 | 0.650 / 0.576 |
Chhotu edges ahead on the held-out native Hindi voice, which is the case it was built for. On the deliberate accent-shift probe (English-accented voices reading Hindi script) it degrades badly while the 23-language teacher holds up. Both results are real and both are reported.
onnxruntime and numpy.import numpy as np, onnxruntime as ort
sess = ort.InferenceSession("chhotu_int8.onnx", providers=["CPUExecutionProvider"])
def p_turn_complete(wav_16k: np.ndarray) -> float: # float32 mono @ 16kHz
x = wav_16k[-128000:] # last 8 seconds
x = (x - x.mean()) / (x.std() + 1e-7) # standardize
buf = np.zeros((1, 128000), np.float32)
buf[0, 128000 - len(x):] = x # left-pad
return float(sess.run(None, {"waveform": buf})[0])
In a real voice pipeline, run a cheap VAD such as Silero continuously. When it detects a pause of roughly 200ms, call Chhotu on the last 8 seconds. If the turn is complete, respond right away. If not, keep listening, with a hard timeout around 3 seconds as a safety net.
Chhotu was trained on the English, Hindi, Marathi and Bengali slices of pipecat-ai/smart-turn-data-v3.2 (about 81k clips), plus a self-generated code-mixed Hinglish TTS set. Worth knowing before you rely on the numbers:
These weights were trained on the openly published pipecat smart-turn-data-v3.2 corpus (which carries no explicit license on its dataset card) and distilled from Smart Turn v3.2 (whose code is BSD-2-Clause). Out of respect for that chain, this repo does not claim a formal license of its own. Treat the weights as available for research, evaluation and learning; for commercial use, check the upstream terms yourself.
The whole project, from raw data to these weights, runs in a single reproducible Kaggle notebook: data prep, teacher pass, TTS synthesis, training, evaluation against Smart Turn v3.2 on identical clips, quantization and CPU benchmarks.
📓 The full Kaggle notebook (fork it and hit Run-All to reproduce everything from scratch)