CoolFace
Datasetpublic

manojkumarcs/indic-diarbench

Indic DiarBench A multilingual joint diarization and ASR benchmark for Indian languages, spanning all 22 scheduled languages of India with approximately 108 hours of natural multi-speaker audio. Dataset Summary Indic DiarBench is a conversational speech benchmark designed to evaluate speaker-attributed ASR in realistic multi-speaker settings for Indian languages. All annotations are human-corrected with time-aligned, speaker-attributed transcriptions. The dataset… See the full description on the dataset page: https://huggingface.co/datasets/manojkumarcs/indic-diarbench.

sourceHugging Facecc-by-4.0updated 1mo agoView on Hugging Face
0likes114downloads
Dataset Card

Indic DiarBench

A multilingual joint diarization and ASR benchmark for Indian languages, spanning all 22 scheduled languages of India with approximately 108 hours of natural multi-speaker audio.

Dataset Summary

Indic DiarBench is a conversational speech benchmark designed to evaluate speaker-attributed ASR in realistic multi-speaker settings for Indian languages. All annotations are human-corrected with time-aligned, speaker-attributed transcriptions. The dataset captures conversational nuances prevalent in Indian speech, such as English code-mixing, dialectal variation, and frequent speaker overlap.

AttributeValue
Total samples1,164
Total duration~108 hours
Languages22 scheduled Indian languages
Language families4 (Indo-Aryan, Dravidian, Sino-Tibetan, Austroasiatic)
Unique speakers485 (meetings) + ~750 (in-the-wild)
Districts represented189
Average overlap ratio12.8%

Recording Conditions

The corpus includes three acoustic conditions designed to capture diverse real-world scenarios:

ConditionLabelHoursDescription
Near-fieldNear field~53Recorded using one close-proximity microphone per speaker in virtual meetings. Participants joined via an online meeting platform, enabling accurate speaker turns by combining individual microphone streams. Covers all 22 languages.
Far-fieldFar field~27Recorded using distant microphones, introducing reverberation, background noise, and variable speaker-to-microphone distances. Covers the top 8 languages by native-speaker population.
In-the-wildIn the wild~28Curated from publicly available YouTube videos to capture unconstrained acoustic environments. Covers the 10 most widely spoken Indian languages.

Per-Language Statistics

Durations are in hours. NF = near-field, FF = far-field, ITW = in-the-wild.

LanguageFamilyNFFFITWTotalOverlap %
AssameseIndo-Aryan1.51.513.9
BengaliIndo-Aryan4.44.14.112.67.8
BodoSino-Tibetan1.61.615.2
DogriIndo-Aryan1.41.424.2
GujaratiIndo-Aryan4.14.22.811.17.6
HindiIndo-Aryan4.24.02.510.716.6
KannadaDravidian3.71.43.38.515.2
KashmiriIndo-Aryan1.11.121.2
KonkaniIndo-Aryan1.61.614.0
MaithiliIndo-Aryan1.31.324.7
MalayalamDravidian1.32.43.712.9
ManipuriSino-Tibetan1.51.520.6
MarathiIndo-Aryan4.23.52.710.411.3
NepaliIndo-Aryan1.31.322.9
OdiaIndo-Aryan1.51.63.111.1
PunjabiIndo-Aryan4.34.02.410.66.1
SanskritIndo-Aryan1.61.621.4
SantaliAustroasiatic1.61.66.5
SindhiIndo-Aryan1.51.516.0
TamilDravidian4.22.53.210.012.4
TeluguDravidian3.83.02.59.320.4
UrduIndo-Aryan1.61.612.5
Total4 families53.226.827.6~10812.8

Annotation Pipeline

All recordings are annotated using a unified human-in-the-loop pipeline:

  1. 1.Bootstrap Transcription — Initial transcripts generated using multiple independent ASR systems, presented to annotators as editable drafts.
  2. 2.Human Transcription & Speaker Attribution — Professional annotators produce time-aligned, speaker-attributed transcriptions. No machine-generated annotation is retained without human validation.
  3. 3.Code-Mixed Transcription — Annotators produce two transcription formats: native-script (all text in Indic script) and normalized (English words in Roman script, numerals in Arabic digits).
  4. 4.Quality Control — Dedicated quality checkers (2–3 per language) verify transcription consistency, code-mixing conventions, speaker timestamps, and labels. Overlapping speech segments require multiple review rounds.
  5. 5.Expert Review — In-house language-specific experts perform final quality checks.

Dataset Fields

FieldTypeDescription
audioAudioAudio waveform (WAV, 16kHz mono)
recording_idstringAnonymised source-recording identifier (e.g. hindi_nf_003). Clips cut from the same source recording share one recording_id.
languagestringFull language name (e.g. Hindi), consistent across all recording conditions
annotated_transcriptlistSpeaker-attributed segments: {speaker_id, transcript, start_time, end_time}
dataset_typestringRecording condition: Near field, Far field, or In the wild
sample_idstringUnique sample identifier (e.g. hindi_001), unique across the whole benchmark
num_speakersintNumber of distinct speakers in the recording
num_segmentsintNumber of transcript segments
duration_secondsfloatAudio duration in seconds

Identifying samples

sample_id is unique across the entire benchmark (all 1,164 samples), so it is the key to use when reporting or joining per-sample results.

recording_id exists because the 1,164 clips come from only 590 distinct source recordings — 47 recordings contribute more than one clip, and one contributes 21. Clips from the same recording are not independent samples: they share speakers, channel and acoustic conditions. Group by recording_id when splitting data or aggregating metrics, otherwise a handful of recordings will dominate the average.

recording_id is deliberately anonymised and carries no information about the source medium. Its form is <language>_<condition>_<nnn>, where condition is nf (near-field), ff (far-field) or itw (in-the-wild).

Usage

python
from datasets import load_dataset

# Load a specific language
ds = load_dataset("sarvam/indic-diarbench-new", "Hindi", split="test")
sample = ds[0]

print(f"Sample:    {sample['sample_id']}")
print(f"Recording: {sample['recording_id']}")
print(f"Language:  {sample['language']}")
print(f"Duration:  {sample['duration_seconds']:.1f}s")
print(f"Speakers:  {sample['num_speakers']}")
print(f"Condition: {sample['dataset_type']}")

# Access speaker-attributed transcript
for seg in sample['annotated_transcript'][:5]:
    print(f"  [{seg['start_time']:.1f}-{seg['end_time']:.1f}] {seg['speaker_id']}: {seg['transcript']}")

Aggregate per recording rather than per clip, so that recordings contributing many clips do not dominate:

python
import collections

by_recording = collections.defaultdict(list)
for s in ds:
    by_recording[s["recording_id"]].append(s["sample_id"])

print(f"{len(ds)} clips from {len(by_recording)} recordings")

Baseline Results

Duration-weighted aggregate metrics across all three acoustic conditions:

CategoryModelDER (%)cpWER (%)WDER (%)
Indic-specializedSarvam16.038.833.1
Commercial APIsAWS Transcribe23.543.734.3
ElevenLabs Scribe35.058.340.7
Azure STT34.860.839.5
Deepgram Nova-332.063.239.3
AssemblyAI40.588.643.7
Multimodal LLMsGPT-4o36.283.140.4
Gemini 3 Pro74.058.933.0

Relation to the original release

Derived from sarvamai/indic-diarbench. Audio is byte-identical and all annotations, timings and counts are unchanged; only the identifier and language columns differ.

  1. 1.`language` is now the full language name everywhere. In the original, the 210 in-the-wild samples used ISO codes (bn, gu, hi, kn, ml, mr, or, pa, ta, te) while the 954 near- and far-field samples used full names, so language was not comparable across dataset_type.
  2. 2.`file_name` replaced by `recording_id`. The original file_name held the source filename, which for in-the-wild samples was the YouTube video id; it was also duplicated in audio.path. Both are now anonymised, with audio.path set to <sample_id>.wav. recording_id retains the one piece of information that file_name carried and users need: which clips came from the same source recording.

Citation

bibtex
@inproceedings{mehendale2026indicdiarbench,
  title={Indic DiarBench: A Multilingual Joint Diarization and ASR Benchmark for Indian Languages},
  author={Mehendale, Deovrat and Mehndiratta, Aditya and Rathi, Dhruv and Bhogale, Kaushal and Khapra, Mitesh M.},
  year={2026}
}

License

This dataset is released under the CC BY 4.0 license.