# mayankpratapsingh022/turn-detection-model-whisper-tiny-dual-scale-attention-classification-head-for-low-latency-voice-ai architecture

> Architecture diagram of the GitHub repository mayankpratapsingh022/turn-detection-model-whisper-tiny-dual-scale-attention-classification-head-for-low-latency-voice-ai, generated by GitDiagram from its file tree, README and a sample of source files (last updated 2026-09-27). It is an AI-made overview: check details against the source.

- Interactive diagram: https://gitdiagram.com/mayankpratapsingh022/turn-detection-model-whisper-tiny-dual-scale-attention-classification-head-for-low-latency-voice-ai
- Repository: https://github.com/mayankpratapsingh022/turn-detection-model-whisper-tiny-dual-scale-attention-classification-head-for-low-latency-voice-ai

## Overview

Turn Detection Model is an audio-only endpoint classifier and its supporting data, training, evaluation, and release workflow. In the user path, a candidate pause’s audio is scored by the deployed model and policy as COMPLETE or HOLD; streaming continues listening on HOLD until speech resumes or timeout. The README documents preparation, causal-pause examples, hard-negative mining, calibration, evaluation, and ONNX export. Some subsystem links are based on documented capabilities and tree paths; unsampled internal wiring is intentionally not asserted.

Main entry points: [`src/turn_detector/inference.py`](https://github.com/mayankpratapsingh022/turn-detection-model-whisper-tiny-dual-scale-attention-classification-head-for-low-latency-voice-ai/blob/main/src/turn_detector/inference.py) (Turn detector), [`src/turn_detector/data/prepare.py`](https://github.com/mayankpratapsingh022/turn-detection-model-whisper-tiny-dual-scale-attention-classification-head-for-low-latency-voice-ai/blob/main/src/turn_detector/data/prepare.py) (Audio preparation), [`src/turn_detector/evaluation/evaluator.py`](https://github.com/mayankpratapsingh022/turn-detection-model-whisper-tiny-dual-scale-attention-classification-head-for-low-latency-voice-ai/blob/main/src/turn_detector/evaluation/evaluator.py) (Evaluation), [`src/turn_detector/demo.py`](https://github.com/mayankpratapsingh022/turn-detection-model-whisper-tiny-dual-scale-attention-classification-head-for-low-latency-voice-ai/blob/main/src/turn_detector/demo.py) (Inference demo)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_runtime["Inference and demo"]
  node_demo["Inference demo<br/>[demo.py]"]
  node_detector["Turn detector<br/>[inference.py]"]
  node_audio["Audio handling<br/>[audio.py]"]
  node_features["Feature extraction<br/>[features.py]"]
  node_model_artifact["ONNX model"]
  node_decision["COMPLETE / HOLD<br/>[types.py]"]
end

subgraph group_data["Data preparation"]
  node_prepare["Audio preparation<br/>[prepare.py]"]
  node_records["Audio records<br/>[records.py]"]
  node_duplicates["Duplicate grouping<br/>[duplicates.py]"]
  node_splits["Dataset splits<br/>[splits.py]"]
  node_hinglish["Speech mix tags<br/>[hinglish.py]"]
end

subgraph group_model["Training and model"]
  node_hard_negatives["Hard negatives<br/>[hard_negatives.py]"]
  node_dataset["Training dataset<br/>[dataset.py]"]
  node_trainer["Trainer<br/>[trainer.py]"]
  node_modeling["Model architecture<br/>[modeling.py]"]
  node_checkpoint["Model checkpoint"]
end

subgraph group_evaluation["Evaluation and release"]
  node_evaluator["Evaluation<br/>[evaluator.py]"]
  node_metrics["Metrics and policy<br/>[metrics.py]"]
  node_baselines["Baseline comparison<br/>[baselines.py]"]
  node_export["ONNX export<br/>[export.py]"]
  node_publishing["Model publishing<br/>[publishing.py]"]
end

node_speaker(("Audio user"))
node_source_data[("Source dataset")]
node_hub["Hugging Face Hub"]

node_speaker -->|"submits audio"| node_demo
node_demo -->|"loads audio"| node_audio
node_demo -->|"requests score"| node_detector
node_detector -->|"standardizes audio"| node_audio
node_detector -->|"extracts features"| node_features
node_detector -->|"runs inference"| node_model_artifact
node_detector -->|"returns prediction"| node_decision
node_source_data -->|"provides rows"| node_prepare
node_prepare -->|"writes manifests"| node_records
node_prepare -->|"groups duplicates"| node_duplicates
node_prepare -->|"assigns splits"| node_splits
node_prepare -.->|"tags speech mix"| node_hinglish
node_records -->|"loads examples"| node_dataset
node_hard_negatives -->|"adds mined examples"| node_dataset
node_dataset -->|"supplies batches"| node_trainer
node_trainer -->|"trains model"| node_modeling
node_trainer -->|"saves checkpoint"| node_checkpoint
node_checkpoint -->|"scores examples"| node_hard_negatives
node_checkpoint -->|"exports weights"| node_export
node_export -->|"writes ONNX"| node_model_artifact
node_model_artifact -->|"is evaluated"| node_evaluator
node_evaluator -->|"computes policy metrics"| node_metrics
node_evaluator -->|"compares predictions"| node_baselines
node_evaluator -->|"provides report"| node_publishing
node_export -->|"provides export"| node_publishing
node_publishing -.->|"publishes artifacts"| node_hub
node_hub -.->|"downloads model"| node_detector

click node_demo "https://github.com/mayankpratapsingh022/turn-detection-model-whisper-tiny-dual-scale-attention-classification-head-for-low-latency-voice-ai/blob/main/src/turn_detector/demo.py"
click node_detector "https://github.com/mayankpratapsingh022/turn-detection-model-whisper-tiny-dual-scale-attention-classification-head-for-low-latency-voice-ai/blob/main/src/turn_detector/inference.py"
click node_audio "https://github.com/mayankpratapsingh022/turn-detection-model-whisper-tiny-dual-scale-attention-classification-head-for-low-latency-voice-ai/blob/main/src/turn_detector/audio.py"
click node_features "https://github.com/mayankpratapsingh022/turn-detection-model-whisper-tiny-dual-scale-attention-classification-head-for-low-latency-voice-ai/blob/main/src/turn_detector/features.py"
click node_decision "https://github.com/mayankpratapsingh022/turn-detection-model-whisper-tiny-dual-scale-attention-classification-head-for-low-latency-voice-ai/blob/main/src/turn_detector/types.py"
click node_prepare "https://github.com/mayankpratapsingh022/turn-detection-model-whisper-tiny-dual-scale-attention-classification-head-for-low-latency-voice-ai/blob/main/src/turn_detector/data/prepare.py"
click node_records "https://github.com/mayankpratapsingh022/turn-detection-model-whisper-tiny-dual-scale-attention-classification-head-for-low-latency-voice-ai/blob/main/src/turn_detector/data/records.py"
click node_duplicates "https://github.com/mayankpratapsingh022/turn-detection-model-whisper-tiny-dual-scale-attention-classification-head-for-low-latency-voice-ai/blob/main/src/turn_detector/data/duplicates.py"
click node_splits "https://github.com/mayankpratapsingh022/turn-detection-model-whisper-tiny-dual-scale-attention-classification-head-for-low-latency-voice-ai/blob/main/src/turn_detector/data/splits.py"
click node_hinglish "https://github.com/mayankpratapsingh022/turn-detection-model-whisper-tiny-dual-scale-attention-classification-head-for-low-latency-voice-ai/blob/main/src/turn_detector/data/hinglish.py"
click node_hard_negatives "https://github.com/mayankpratapsingh022/turn-detection-model-whisper-tiny-dual-scale-attention-classification-head-for-low-latency-voice-ai/blob/main/src/turn_detector/training/hard_negatives.py"
click node_dataset "https://github.com/mayankpratapsingh022/turn-detection-model-whisper-tiny-dual-scale-attention-classification-head-for-low-latency-voice-ai/blob/main/src/turn_detector/training/dataset.py"
click node_trainer "https://github.com/mayankpratapsingh022/turn-detection-model-whisper-tiny-dual-scale-attention-classification-head-for-low-latency-voice-ai/blob/main/src/turn_detector/training/trainer.py"
click node_modeling "https://github.com/mayankpratapsingh022/turn-detection-model-whisper-tiny-dual-scale-attention-classification-head-for-low-latency-voice-ai/blob/main/src/turn_detector/modeling.py"
click node_evaluator "https://github.com/mayankpratapsingh022/turn-detection-model-whisper-tiny-dual-scale-attention-classification-head-for-low-latency-voice-ai/blob/main/src/turn_detector/evaluation/evaluator.py"
click node_metrics "https://github.com/mayankpratapsingh022/turn-detection-model-whisper-tiny-dual-scale-attention-classification-head-for-low-latency-voice-ai/blob/main/src/turn_detector/evaluation/metrics.py"
click node_baselines "https://github.com/mayankpratapsingh022/turn-detection-model-whisper-tiny-dual-scale-attention-classification-head-for-low-latency-voice-ai/blob/main/src/turn_detector/evaluation/baselines.py"
click node_export "https://github.com/mayankpratapsingh022/turn-detection-model-whisper-tiny-dual-scale-attention-classification-head-for-low-latency-voice-ai/blob/main/src/turn_detector/export.py"
click node_publishing "https://github.com/mayankpratapsingh022/turn-detection-model-whisper-tiny-dual-scale-attention-classification-head-for-low-latency-voice-ai/blob/main/src/turn_detector/publishing.py"

classDef toneNeutral fill:#f8fafc,stroke:#334155,stroke-width:1.5px,color:#0f172a
classDef toneBlue fill:#dbeafe,stroke:#2563eb,stroke-width:1.5px,color:#172554
classDef toneAmber fill:#fef3c7,stroke:#d97706,stroke-width:1.5px,color:#78350f
classDef toneMint fill:#dcfce7,stroke:#16a34a,stroke-width:1.5px,color:#14532d
classDef toneRose fill:#ffe4e6,stroke:#e11d48,stroke-width:1.5px,color:#881337
classDef toneIndigo fill:#e0e7ff,stroke:#4f46e5,stroke-width:1.5px,color:#312e81
classDef toneTeal fill:#ccfbf1,stroke:#0f766e,stroke-width:1.5px,color:#134e4a
class node_demo,node_detector,node_audio,node_features,node_model_artifact,node_decision,node_speaker toneBlue
class node_prepare,node_records,node_duplicates,node_splits,node_hinglish,node_source_data toneAmber
class node_hard_negatives,node_dataset,node_trainer,node_modeling,node_checkpoint toneMint
class node_evaluator,node_metrics,node_baselines,node_export,node_publishing toneRose
class node_hub toneIndigo
```

## Components

### Inference and demo

- [Inference demo](https://github.com/mayankpratapsingh022/turn-detection-model-whisper-tiny-dual-scale-attention-classification-head-for-low-latency-voice-ai/blob/main/src/turn_detector/demo.py): `src/turn_detector/demo.py`
- [Turn detector](https://github.com/mayankpratapsingh022/turn-detection-model-whisper-tiny-dual-scale-attention-classification-head-for-low-latency-voice-ai/blob/main/src/turn_detector/inference.py): `src/turn_detector/inference.py`
- [Audio handling](https://github.com/mayankpratapsingh022/turn-detection-model-whisper-tiny-dual-scale-attention-classification-head-for-low-latency-voice-ai/blob/main/src/turn_detector/audio.py): `src/turn_detector/audio.py`
- [Feature extraction](https://github.com/mayankpratapsingh022/turn-detection-model-whisper-tiny-dual-scale-attention-classification-head-for-low-latency-voice-ai/blob/main/src/turn_detector/features.py): `src/turn_detector/features.py`
- **ONNX model**
- [COMPLETE / HOLD](https://github.com/mayankpratapsingh022/turn-detection-model-whisper-tiny-dual-scale-attention-classification-head-for-low-latency-voice-ai/blob/main/src/turn_detector/types.py): `src/turn_detector/types.py`

### Data preparation

- [Audio preparation](https://github.com/mayankpratapsingh022/turn-detection-model-whisper-tiny-dual-scale-attention-classification-head-for-low-latency-voice-ai/blob/main/src/turn_detector/data/prepare.py): `src/turn_detector/data/prepare.py`
- [Audio records](https://github.com/mayankpratapsingh022/turn-detection-model-whisper-tiny-dual-scale-attention-classification-head-for-low-latency-voice-ai/blob/main/src/turn_detector/data/records.py): `src/turn_detector/data/records.py`
- [Duplicate grouping](https://github.com/mayankpratapsingh022/turn-detection-model-whisper-tiny-dual-scale-attention-classification-head-for-low-latency-voice-ai/blob/main/src/turn_detector/data/duplicates.py): `src/turn_detector/data/duplicates.py`
- [Dataset splits](https://github.com/mayankpratapsingh022/turn-detection-model-whisper-tiny-dual-scale-attention-classification-head-for-low-latency-voice-ai/blob/main/src/turn_detector/data/splits.py): `src/turn_detector/data/splits.py`
- [Speech mix tags](https://github.com/mayankpratapsingh022/turn-detection-model-whisper-tiny-dual-scale-attention-classification-head-for-low-latency-voice-ai/blob/main/src/turn_detector/data/hinglish.py): `src/turn_detector/data/hinglish.py`

### Training and model

- [Hard negatives](https://github.com/mayankpratapsingh022/turn-detection-model-whisper-tiny-dual-scale-attention-classification-head-for-low-latency-voice-ai/blob/main/src/turn_detector/training/hard_negatives.py): `src/turn_detector/training/hard_negatives.py`
- [Training dataset](https://github.com/mayankpratapsingh022/turn-detection-model-whisper-tiny-dual-scale-attention-classification-head-for-low-latency-voice-ai/blob/main/src/turn_detector/training/dataset.py): `src/turn_detector/training/dataset.py`
- [Trainer](https://github.com/mayankpratapsingh022/turn-detection-model-whisper-tiny-dual-scale-attention-classification-head-for-low-latency-voice-ai/blob/main/src/turn_detector/training/trainer.py): `src/turn_detector/training/trainer.py`
- [Model architecture](https://github.com/mayankpratapsingh022/turn-detection-model-whisper-tiny-dual-scale-attention-classification-head-for-low-latency-voice-ai/blob/main/src/turn_detector/modeling.py): `src/turn_detector/modeling.py`
- **Model checkpoint**

### Evaluation and release

- [Evaluation](https://github.com/mayankpratapsingh022/turn-detection-model-whisper-tiny-dual-scale-attention-classification-head-for-low-latency-voice-ai/blob/main/src/turn_detector/evaluation/evaluator.py): `src/turn_detector/evaluation/evaluator.py`
- [Metrics and policy](https://github.com/mayankpratapsingh022/turn-detection-model-whisper-tiny-dual-scale-attention-classification-head-for-low-latency-voice-ai/blob/main/src/turn_detector/evaluation/metrics.py): `src/turn_detector/evaluation/metrics.py`
- [Baseline comparison](https://github.com/mayankpratapsingh022/turn-detection-model-whisper-tiny-dual-scale-attention-classification-head-for-low-latency-voice-ai/blob/main/src/turn_detector/evaluation/baselines.py): `src/turn_detector/evaluation/baselines.py`
- [ONNX export](https://github.com/mayankpratapsingh022/turn-detection-model-whisper-tiny-dual-scale-attention-classification-head-for-low-latency-voice-ai/blob/main/src/turn_detector/export.py): `src/turn_detector/export.py`
- [Model publishing](https://github.com/mayankpratapsingh022/turn-detection-model-whisper-tiny-dual-scale-attention-classification-head-for-low-latency-voice-ai/blob/main/src/turn_detector/publishing.py): `src/turn_detector/publishing.py`

### Other components

- **Audio user**
- **Source dataset**
- **Hugging Face Hub**

## Connections

- Audio user → Inference demo: submits audio
- Inference demo → Audio handling: loads audio
- Inference demo → Turn detector: requests score
- Turn detector → Audio handling: standardizes audio
- Turn detector → Feature extraction: extracts features
- Turn detector → ONNX model: runs inference
- Turn detector → COMPLETE / HOLD: returns prediction
- Source dataset → Audio preparation: provides rows
- Audio preparation → Audio records: writes manifests
- Audio preparation → Duplicate grouping: groups duplicates
- Audio preparation → Dataset splits: assigns splits
- Audio preparation → Speech mix tags: tags speech mix
- Audio records → Training dataset: loads examples
- Hard negatives → Training dataset: adds mined examples
- Training dataset → Trainer: supplies batches
- Trainer → Model architecture: trains model
- Trainer → Model checkpoint: saves checkpoint
- Model checkpoint → Hard negatives: scores examples
- Model checkpoint → ONNX export: exports weights
- ONNX export → ONNX model: writes ONNX
- ONNX model → Evaluation: is evaluated
- Evaluation → Metrics and policy: computes policy metrics
- Evaluation → Baseline comparison: compares predictions
- Evaluation → Model publishing: provides report
- ONNX export → Model publishing: provides export
- Model publishing → Hugging Face Hub: publishes artifacts
- Hugging Face Hub → Turn detector: downloads model
