A benchmark built on Project Vaani · ARTPARK and IISc

kya bola?

Every speech recognition vendor publishes one accuracy number per language. Hindi in Delhi and Hindi in Araria are not the same problem, and one number hides the difference. This measures it district by district.

It also asks something nobody has published an answer to. The corpus behind this holds 64 languages. Commercial speech APIs officially support 19. Here is what happens to the other 45.

64
languages in the corpus
45
with no API support
150
districts measured
9.4%
human disagreement floor

15,424 clips scored across IndicConformer CTC, Sarvam Saaras v3, Sarvam Saaras v4.

The support list, against what happened

Kharibolinot on the support list103 clips24.3%
Odiaon the support list120 clips60.5%
Both on Sarvam Saaras v3. Khariboli is on nobody’s support list and beats Odia, which is on it, by 36.2 points, on samples of 103 and 120 clips. All 64 languages below.

District view

The map

Error rate per district. Greener is better. Grey is not a gap in the measurement: Project Vaani has recorded 165 of India’s districts so far, and the rest of the country has no transcribed audio in this corpus to score against.

model
Ashoknagar: no audio in this corpusRaisen: no audio in this corpusChhindwara: no audio in this corpusBetul: no audio in this corpusHoshangabad: no audio in this corpusSehore: no audio in this corpusJabalpur: no audio in this corpusNarsimhapur: no audio in this corpusPanna: no audio in this corpusUjjain: no audio in this corpusRewa: no audio in this corpusDindori: no audio in this corpusBalaghat: no audio in this corpusBarwani: no audio in this corpusSatna: no audio in this corpusChhatarpur: no audio in this corpusIndore: no audio in this corpusRatlam: no audio in this corpusHarda: no audio in this corpusSagar: no audio in this corpusNeemuch: no audio in this corpusTikamgarh: no audio in this corpusGuna: no audio in this corpusDewas: no audio in this corpusMandsaur: no audio in this corpusKhargone (West Nimar): no audio in this corpusSheopur: no audio in this corpusMorena: no audio in this corpusBhind: no audio in this corpusJhabua: no audio in this corpusSeoni: no audio in this corpusKhandwa (East Nimar): no audio in this corpusUmaria: no audio in this corpusGwalior: no audio in this corpusDamoh: no audio in this corpusDhar: no audio in this corpusKatni: no audio in this corpusSidhi: no audio in this corpusAlirajpur: no audio in this corpusSingrauli: no audio in this corpusBhopal: no audio in this corpusRajgarh: no audio in this corpusMandla: no audio in this corpusShajapur: no audio in this corpusShivpuri: no audio in this corpusDatia: no audio in this corpusBurhanpur: no audio in this corpusAnuppur: no audio in this corpusShahdol: no audio in this corpusVidisha: no audio in this corpusUna: no audio in this corpusSolan: no audio in this corpusSirmaur: no audio in this corpusKinnaur: no audio in this corpusKullu: no audio in this corpusChamba: no audio in this corpusBilaspur: no audio in this corpusKangra: no audio in this corpusLahul & Spiti: no audio in this corpusMandi: no audio in this corpusHamirpur: no audio in this corpusDATA NOT AVAILABLE: no audio in this corpusAnantnag: no audio in this corpusBaramula: no audio in this corpusKulgam: no audio in this corpusShupiyan: no audio in this corpusReasi: no audio in this corpusRajouri: no audio in this corpusJammu: no audio in this corpusLeh(Ladakh): no audio in this corpusSrinagar: no audio in this corpusDoda: no audio in this corpusPulwama: no audio in this corpusRamban: no audio in this corpusGanderbal: no audio in this corpusUdhampur: no audio in this corpusBadgam: no audio in this corpusPunch: no audio in this corpusKupwara: no audio in this corpusSamba: no audio in this corpusBandipore: no audio in this corpusKathua: no audio in this corpusKargil: no audio in this corpusKishtwar: no audio in this corpusDaman: no audio in this corpusDiu: no audio in this corpusBhavnagar: no audio in this corpusAhmadabad: no audio in this corpusChhota Udaipur: no audio in this corpusBatod: no audio in this corpusVadodara: no audio in this corpusAravali: no audio in this corpusSabar Kantha: no audio in this corpusBanas Kantha: no audio in this corpusSurendranagar: no audio in this corpusAnand: no audio in this corpusNarmada: no audio in this corpusAmreli: no audio in this corpusDohad: no audio in this corpusRajkot: no audio in this corpusKachchh: no audio in this corpusThe Dangs: no audio in this corpusMahesana: no audio in this corpusPatan: no audio in this corpusBharuch: no audio in this corpusGir Somnath: no audio in this corpusJunagadh: no audio in this corpusDevbhumi Dwarka: no audio in this corpusSurat: no audio in this corpusJamnagar: no audio in this corpusTapi: no audio in this corpusPorbandar: no audio in this corpusMahisagar: no audio in this corpusMorbi: no audio in this corpusPanch Mahals: no audio in this corpusKheda: no audio in this corpusDadra & Nagar Haveli: no audio in this corpusPrakasam: no audio in this corpusEast Godavari: no audio in this corpusSri Potti Sriramulu Nellore: no audio in this corpusKurnool: no audio in this corpusVizianagaram: no audio in this corpusWest Godavari: no audio in this corpusKadapa(YSR): no audio in this corpusSaraikela-Kharsawan: no audio in this corpusSimdega: no audio in this corpusLatehar: no audio in this corpusKhunti: no audio in this corpusPashchimi Singhbhum: no audio in this corpusHazaribagh: no audio in this corpusChatra: no audio in this corpusPurbi Singhbhum: no audio in this corpusKodarma: no audio in this corpusGiridih: no audio in this corpusLohardaga: no audio in this corpusGodda: no audio in this corpusDhanbad: no audio in this corpusDumka: no audio in this corpusBokaro: no audio in this corpusGumla: no audio in this corpusRamgarh: no audio in this corpusRanchi: no audio in this corpusPakur: no audio in this corpusArwal: no audio in this corpusBanka: no audio in this corpusAurangabad: no audio in this corpusNawada: no audio in this corpusSheikhpura: no audio in this corpusSiwan: no audio in this corpusSheohar: no audio in this corpusBuxar: no audio in this corpusMadhubani: no audio in this corpusBhojpur: no audio in this corpusKaimur (Bhabua): no audio in this corpusRohtas: no audio in this corpusKhagaria: no audio in this corpusMunger: no audio in this corpusNalanda: no audio in this corpusGurgaon: no audio in this corpusYamunanagar: no audio in this corpusPalwal: no audio in this corpusPanchkula: no audio in this corpusMewat: no audio in this corpusBhiwani: no audio in this corpusKaithal: no audio in this corpusSonipat: no audio in this corpusKarnal: no audio in this corpusKurukshetra: no audio in this corpusJind: no audio in this corpusPanipat: no audio in this corpusMahendragarh: no audio in this corpusFatehabad: no audio in this corpusFaridabad: no audio in this corpusSirsa: no audio in this corpusHisar: no audio in this corpusRewari: no audio in this corpusAmbala: no audio in this corpusNorth & Middle Andaman: no audio in this corpusSouth Andaman: no audio in this corpusNicobars: no audio in this corpusLohit: no audio in this corpusWest Siang: no audio in this corpusUpper Subansiri: no audio in this corpusChanglang: no audio in this corpusLower Subansiri: no audio in this corpusEast Kameng: no audio in this corpusUpper Siang: no audio in this corpusAnjaw: no audio in this corpusSiang: no audio in this corpusDibang Valley: no audio in this corpusKurung Kumey: no audio in this corpusWest Kameng: no audio in this corpusTawang: no audio in this corpusGoalpara: no audio in this corpusNalbari: no audio in this corpusDhubri: no audio in this corpusSivasagar: no audio in this corpusKarimganj: no audio in this corpusTinsukia: no audio in this corpusChirang: no audio in this corpusDhemaji: no audio in this corpusMorigaon: no audio in this corpusLakhimpur: no audio in this corpusBongaigaon: no audio in this corpusBaksa: no audio in this corpusNagaon: no audio in this corpusCachar: no audio in this corpusDarrang: no audio in this corpusKamrup: no audio in this corpusDibrugarh: no audio in this corpusBarpeta: no audio in this corpusUdalguri: no audio in this corpusGolaghat: no audio in this corpusDima Hasao: no audio in this corpusKokrajhar: no audio in this corpusJorhat: no audio in this corpusYanam: no audio in this corpusKaraikal: no audio in this corpusPuducherry: no audio in this corpusMahe: no audio in this corpusLunglei: no audio in this corpusKolasib: no audio in this corpusLawngtlai: no audio in this corpusSaiha: no audio in this corpusChamphai: no audio in this corpusSerchhip: no audio in this corpusMamit: no audio in this corpusChandel: no audio in this corpusTamenglong: no audio in this corpusUkhrul: no audio in this corpusBishnupur: no audio in this corpusChurachandpur: no audio in this corpusThoubal: no audio in this corpusImphal East: no audio in this corpusKangpokpi: no audio in this corpusMon: no audio in this corpusTuensang: no audio in this corpusMokokchung: no audio in this corpusLongleng: no audio in this corpusPhek: no audio in this corpusWokha: no audio in this corpusZunheboto: no audio in this corpusKiphire: no audio in this corpusPeren: no audio in this corpusKhowai: no audio in this corpusSipahijula: no audio in this corpusNorth Tripura: no audio in this corpusGomati: no audio in this corpusRibhoi: no audio in this corpusEast Khasi Hills: no audio in this corpusWest Khasi Hills: no audio in this corpusSouth West Khasi Hills: no audio in this corpusSouth West Garo Hills: no audio in this corpusEast Jaintia Hills: no audio in this corpusWest Jaintia Hills: no audio in this corpusEast Garo Hills: no audio in this corpusBemetra: no audio in this corpusMungeli: no audio in this corpusGariaband: no audio in this corpusUttar Bastar Kanker: no audio in this corpusDakshin Bastar Dantewada: no audio in this corpusKondagaon: no audio in this corpusNarayanpur: no audio in this corpusDurg: no audio in this corpusSurajpur: no audio in this corpusBijapur: no audio in this corpusBaloda Bazar: no audio in this corpusBalod: no audio in this corpusKoriya: no audio in this corpusDhamtari: no audio in this corpusMahasamund: no audio in this corpusJanjgir-Champa: no audio in this corpusNainital: no audio in this corpusDehradun: no audio in this corpusAlmora: no audio in this corpusChampawat: no audio in this corpusGarhwal: no audio in this corpusHardwar: no audio in this corpusRudraprayag: no audio in this corpusBageshwar: no audio in this corpusPithoragarh: no audio in this corpusChamoli: no audio in this corpusUdham Singh Nagar: no audio in this corpusKannur: no audio in this corpusPathanamthitta: no audio in this corpusAlappuzha: no audio in this corpusErnakulam: no audio in this corpusIdukki: no audio in this corpusKottayam: no audio in this corpusThrissur: no audio in this corpusPalakkad: no audio in this corpusMalappuram: no audio in this corpusLakshadweep: no audio in this corpusNorth District: no audio in this corpusSouth District: no audio in this corpusWest District: no audio in this corpusNadia: no audio in this corpusMurshidabad: no audio in this corpusSouth Twenty Four Parganas: no audio in this corpusUttar Dinajpur: no audio in this corpusPurba Medinipur: no audio in this corpusHaora: no audio in this corpusBirbhum: no audio in this corpusBarddhaman: no audio in this corpusBankura: no audio in this corpusHugli: no audio in this corpusGurdaspur: no audio in this corpusPatiala: no audio in this corpusTarn Taran: no audio in this corpusFatehgarh Sahib: no audio in this corpusSangrur: no audio in this corpusMansa: no audio in this corpusAmritsar: no audio in this corpusFaridkot: no audio in this corpusLudhiana: no audio in this corpusBathinda: no audio in this corpusJalandhar: no audio in this corpusMuktsar: no audio in this corpusMoga: no audio in this corpusHoshiarpur: no audio in this corpusRupnagar: no audio in this corpusFirozpur: no audio in this corpusBarnala: no audio in this corpusSahibzada Ajit Singh Nagar: no audio in this corpusShahid Bhagat Singh Nagar: no audio in this corpusMandya: no audio in this corpusChikkaballapura: no audio in this corpusYadgir: no audio in this corpusChikmagalur: no audio in this corpusChitradurga: no audio in this corpusHaveri: no audio in this corpusKolar: no audio in this corpusUttara Kannada: no audio in this corpusDavanagere: no audio in this corpusGadag: no audio in this corpusUdupi: no audio in this corpusBagalkot: no audio in this corpusHassan: no audio in this corpusKodagu: no audio in this corpusBangalore Rural: no audio in this corpusTumkur: no audio in this corpusRamanagara: no audio in this corpusAhmadnagar: no audio in this corpusLatur: no audio in this corpusNashik: no audio in this corpusOsmanabad: no audio in this corpusKolhapur: no audio in this corpusAkola: no audio in this corpusParbhani: no audio in this corpusYavatmal: no audio in this corpusNanded: no audio in this corpusSatara: no audio in this corpusSangli: no audio in this corpusHingoli: no audio in this corpusAmravati: no audio in this corpusNandurbar: no audio in this corpusRatnagiri: no audio in this corpusWardha: no audio in this corpusBuldana: no audio in this corpusGadchiroli: no audio in this corpusJalgaon: no audio in this corpusRaigarh: no audio in this corpusBhandara: no audio in this corpusBid: no audio in this corpusJalna: no audio in this corpusThane: no audio in this corpusPalghar: no audio in this corpusMumbai: no audio in this corpusSubarnapur: no audio in this corpusPuri: no audio in this corpusAnugul: no audio in this corpusDebagarh: no audio in this corpusKoraput: no audio in this corpusNabarangapur: no audio in this corpusBargarh: no audio in this corpusJagatsinghapur: no audio in this corpusKandhamal: no audio in this corpusMayurbhanj: no audio in this corpusBaleshwar: no audio in this corpusGajapati: no audio in this corpusDhenkanal: no audio in this corpusNayagarh: no audio in this corpusCuttack: no audio in this corpusJajapur: no audio in this corpusKalahandi: no audio in this corpusBaudh: no audio in this corpusKendrapara: no audio in this corpusKendujhar: no audio in this corpusGanjam: no audio in this corpusSundargarh: no audio in this corpusBhadrak: no audio in this corpusJharsuguda: no audio in this corpusRayagada: no audio in this corpusBalangir: no audio in this corpusJhunjhunun: no audio in this corpusJaisalmer: no audio in this corpusSikar: no audio in this corpusHanumangarh: no audio in this corpusBarmer: no audio in this corpusGanganagar: no audio in this corpusJodhpur: no audio in this corpusBikaner: no audio in this corpusPratapgarh: no audio in this corpusBhilwara: no audio in this corpusTonk: no audio in this corpusBundi: no audio in this corpusKota: no audio in this corpusPali: no audio in this corpusRajsamand: no audio in this corpusAjmer: no audio in this corpusBharatpur: no audio in this corpusDungarpur: no audio in this corpusChittaurgarh: no audio in this corpusUdaipur: no audio in this corpusJalor: no audio in this corpusDausa: no audio in this corpusSirohi: no audio in this corpusAriyalur: no audio in this corpusSivaganga: no audio in this corpusThanjavur: no audio in this corpusTiruvannamalai: no audio in this corpusRamanathapuram: no audio in this corpusTirunelveli: no audio in this corpusVirudhunagar: no audio in this corpusThiruvarur: no audio in this corpusThiruvallur: no audio in this corpusTiruchirappalli: no audio in this corpusTiruppur: no audio in this corpusTheni: no audio in this corpusSalem: no audio in this corpusMadurai: no audio in this corpusPerambalur: no audio in this corpusDindigul: no audio in this corpusKarur: no audio in this corpusDharmapuri: no audio in this corpusMoradabad: no audio in this corpusSambhal: no audio in this corpusKanshiram Nagar: no audio in this corpusBahraich: no audio in this corpusHapur: no audio in this corpusSitapur: no audio in this corpusShrawasti: no audio in this corpusMeerut: no audio in this corpusAligarh: no audio in this corpusBulandshahr: no audio in this corpusBijnor: no audio in this corpusBaghpat: no audio in this corpusKheri: no audio in this corpusRampur: no audio in this corpusBareilly: no audio in this corpusMathura: no audio in this corpusHardoi: no audio in this corpusBalrampur: no audio in this corpusMahamaya Nagar: no audio in this corpusShahjahanpur: no audio in this corpusFarrukhabad: no audio in this corpusKannauj: no audio in this corpusPilibhit: no audio in this corpusMainpuri: no audio in this corpusFirozabad: no audio in this corpusSultanpur: no audio in this corpusChitrakoot: no audio in this corpusBasti: no audio in this corpusLucknow: no audio in this corpusAzamgarh: no audio in this corpusFaizabad: no audio in this corpusAmbedkar Nagar: no audio in this corpusBallia: no audio in this corpusKanpur Nagar: no audio in this corpusSant Ravidas Nagar (Bhadohi): no audio in this corpusSiddharthnagar: no audio in this corpusAuraiya: no audio in this corpusSant Kabir Nagar: no audio in this corpusKaushambi: no audio in this corpusPratapgarh: no audio in this corpusGonda: no audio in this corpusKanpur Dehat: no audio in this corpusJaunpur: no audio in this corpusBara Banki: no audio in this corpusMahoba: no audio in this corpusMahrajganj: no audio in this corpusMirzapur: no audio in this corpusKushinagar: no audio in this corpusUnnao: no audio in this corpusFatehpur: no audio in this corpusMau: no audio in this corpusRae Bareli: no audio in this corpusAmethi: no audio in this corpusGhaziabad: no audio in this corpusGautam Buddha Nagar: no audio in this corpusSaharanpur: no audio in this corpusEtawah: no audio in this corpusAgra: no audio in this corpusCuddalore: no audio in this corpusPudukkottai: no audio in this corpusVellore: no audio in this corpusNagapattinam: no audio in this corpusViluppuram: no audio in this corpusKancheepuram: no audio in this corpusThoothukkudi: no audio in this corpusAllahabad: no audio in this corpusChandauli: no audio in this corpusJhansi: no audio in this corpusBanda: no audio in this corpusSonbhadra: no audio in this corpusLalitpur: no audio in this corpusKrishnagiri: no audio in this corpusErode: no audio in this corpusCoimbatore: no audio in this corpusJhalawar: no audio in this corpusAlwar: no audio in this corpusBaran: no audio in this corpusDhaulpur: no audio in this corpusSawai Madhopur: no audio in this corpusBanswara: no audio in this corpusKarauli: no audio in this corpusJangaon: no audio in this corpusBhadradri: no audio in this corpusMancherial: no audio in this corpusNizamabad: no audio in this corpusMedak: no audio in this corpusRangareddy: no audio in this corpusNagarkurnool: no audio in this corpusAdilabad: no audio in this corpusNirmal: no audio in this corpusKamareddy: no audio in this corpusJagtial: no audio in this corpusJayashankar: no audio in this corpusPeddapalli: no audio in this corpusRajanna Sircilla: no audio in this corpusSangareddy: no audio in this corpusSiddipet: no audio in this corpusKhammam: no audio in this corpusWarangal (R): no audio in this corpusWarangal (U): no audio in this corpusSuryapet: no audio in this corpusYadadri Bhongiri: no audio in this corpusMedchal: no audio in this corpusVikarabad: no audio in this corpusJogulamba: no audio in this corpusWanaparthy: no audio in this corpusMahabubnagar: no audio in this corpusTirap: no audio in this corpusNamsai: no audio in this corpusEast Siang: no audio in this corpusKra Daadi: no audio in this corpusCharaideo: no audio in this corpusMajuli: no audio in this corpusBiswanath: no audio in this corpusHojai: no audio in this corpusKarbi Anglong West: no audio in this corpusSouth Salmara-Mankachar: no audio in this corpusAgar: no audio in this corpusPherzawl: no audio in this corpusNoney: no audio in this corpusTengnoupal: no audio in this corpusKamjong: no audio in this corpusSenapati: no audio in this corpusKakching: no audio in this corpusJiribam: no audio in this corpusNorth West: no audio in this corpusEast: no audio in this corpusSouth West: no audio in this corpusWest: no audio in this corpusSouth: no audio in this corpusNorth: no audio in this corpusNorth East: no audio in this corpusSouth East: no audio in this corpusCentral: no audio in this corpusShahdara: no audio in this corpusPaschim Barddhaman: no audio in this corpusKalimpong: no audio in this corpusNarayanpet: no audio in this corpusMulugu: no audio in this corpusNiwari: no audio in this corpusPakke Kessang: no audio in this corpusKamle: no audio in this corpusShi Yomi: no audio in this corpusLeparada: no audio in this corpusLower Siang: no audio in this corpusHnahthial: no audio in this corpusSaitual: no audio in this corpusKhawzawl: no audio in this corpusTirupathur: no audio in this corpusRanipet: no audio in this corpusChengalputtu: no audio in this corpusKallakurichi: no audio in this corpusMayiladuthurai: no audio in this corpusTenkasi: no audio in this corpusGaurella Pendra Marwahi: no audio in this corpusShimla: 50.2% error rate · 20 clipsNavsari: 100.0% error rate · 19 clipsValsad: 22.4% error rate · 21 clipsGandhinagar: 33.3% error rate · 24 clipsKrishna: 50.6% error rate · 24 clipsVishakapattanam: 36.7% error rate · 19 clipsChittoor: 58.3% error rate · 38 clipsSrikakulam: 12.6% error rate · 20 clipsGuntur: 45.6% error rate · 21 clipsAnantpur: 69.3% error rate · 30 clipsJamtara: 11.5% error rate · 15 clipsSahebganj: 40.1% error rate · 37 clipsPalamu: 100.0% error rate · 38 clipsDeoghar: 100.0% error rate · 19 clipsGarhwa: 100.0% error rate · 13 clipsBhagalpur: 81.2% error rate · 35 clipsPurnia: 49.3% error rate · 21 clipsMadhepura: 52.9% error rate · 57 clipsKishanganj: 100.0% error rate · 19 clipsGaya: 90.3% error rate · 43 clipsAraria: 70.5% error rate · 43 clipsWest Champaran: 41.0% error rate · 24 clipsMuzaffarpur: 72.1% error rate · 42 clipsSaran: 25.6% error rate · 28 clipsJahanabad: 39.1% error rate · 42 clipsSaharsa: 69.2% error rate · 25 clipsGopalganj: 83.8% error rate · 19 clipsVaishali: 57.6% error rate · 43 clipsSupaul: 28.9% error rate · 17 clipsPatna: 66.4% error rate · 31 clipsDarbhanga: 16.7% error rate · 9 clipsSamastipur: 33.0% error rate · 42 clipsSitamarhi: 100.0% error rate · 25 clipsEast Champaran: 100.0% error rate · 19 clipsLakhisarai: 36.0% error rate · 59 clipsJamui: 97.2% error rate · 18 clipsBegusarai: 53.5% error rate · 35 clipsKatihar: 75.2% error rate · 29 clipsJhajjar: 50.7% error rate · 33 clipsRohtak: 100.0% error rate · 20 clipsChandigarh: 21.0% error rate · 18 clipsNorth South Goa: 41.6% error rate · 35 clipsNorth South Goa: 41.6% error rate · 35 clipsLongding: 100.0% error rate · 21 clipsLower Dibangvalley: 80.8% error rate · 59 clipsPapum Pare: 100.0% error rate · 39 clipsHailakandi: 24.9% error rate · 34 clipsKarbi Anglong: 98.5% error rate · 21 clipsSonitpur: 73.5% error rate · 47 clipsKamrup Metropolitan: 51.8% error rate · 59 clipsAizawl: 85.8% error rate · 25 clipsImphal West: 49.1% error rate · 40 clipsKohima: 100.0% error rate · 155 clipsDimapur: 100.0% error rate · 127 clipsWest Tripura: 79.0% error rate · 58 clipsDhalai: 68.0% error rate · 17 clipsUnakoti: 71.7% error rate · 39 clipsSouth Tripura: 51.7% error rate · 30 clipsSouth Garohills: 100.0% error rate · 18 clipsWest Garo Hills: 100.0% error rate · 28 clipsNorth Garo Hills: 100.0% error rate · 20 clipsBastar: 42.7% error rate · 54 clipsBilaspur: 55.6% error rate · 36 clipsKabirdham: 72.3% error rate · 16 clipsSukma: 95.3% error rate · 46 clipsSarguja: 100.0% error rate · 40 clipsBalrampur: 58.5% error rate · 49 clipsRaipur: 23.7% error rate · 6 clipsKorba: 100.0% error rate · 19 clipsRaigarh: 100.0% error rate · 20 clipsJashpur: 100.2% error rate · 81 clipsRajnandgaon: 44.9% error rate · 37 clipsUttarkashi: 74.1% error rate · 58 clipsTehri Garhwal: 93.6% error rate · 40 clipsKollam: 10.1% error rate · 18 clipsKasaragod: 30.8% error rate · 24 clipsKozhikode: 6.5% error rate · 20 clipsThiruvananthapuram: 7.8% error rate · 20 clipsWayanad: 12.1% error rate · 1 clipGangtok: 33.5% error rate · 20 clipsDakshin Dinajpur: 17.8% error rate · 19 clipsKolkata: 36.4% error rate · 11 clipsMalda: 24.0% error rate · 35 clipsDarjeeling: 24.0% error rate · 40 clipsJalpaiguri: 36.1% error rate · 19 clipsNorth24 Parganas: 21.4% error rate · 25 clipsPurulia: 22.9% error rate · 21 clipsCooch Behar: 100.0% error rate · 6 clipsPaschim Medinipur: 28.9% error rate · 16 clipsPathankot: 20.9% error rate · 20 clipsKapurthala: 28.4% error rate · 47 clipsFazilka: 73.9% error rate · 37 clipsMysore: 9.4% error rate · 17 clipsDakshina Kannada: 56.9% error rate · 60 clipsRaichur: 28.2% error rate · 17 clipsBijapur: 18.4% error rate · 19 clipsDharwad: 23.8% error rate · 20 clipsBidar: 12.8% error rate · 19 clipsChamarajanagar: 41.1% error rate · 33 clipsGulbarga: 20.3% error rate · 22 clipsShimoga: 11.7% error rate · 20 clipsBellary: 26.7% error rate · 45 clipsBelgaum: 12.8% error rate · 38 clipsKoppal: 35.2% error rate · 20 clipsBangalore: 44.1% error rate · 114 clipsWashim: 21.9% error rate · 18 clipsSolapur: 29.8% error rate · 39 clipsSindhudurg: 41.2% error rate · 54 clipsChandrapur: 45.6% error rate · 42 clipsDhule: 58.8% error rate · 35 clipsPune: 45.1% error rate · 20 clipsGondia: 34.0% error rate · 16 clipsAurangabad: 149.1% error rate · 19 clipsMumbaisuburban: 26.2% error rate · 35 clipsNagpur: 62.2% error rate · 27 clipsKhordha: 32.0% error rate · 14 clipsMalkangiri: 34.2% error rate · 39 clipsSambalpur: 81.1% error rate · 39 clipsNuapada: 100.0% error rate · 7 clipsNagaur: 84.3% error rate · 65 clipsChuru: 100.0% error rate · 49 clipsJaipur: 37.5% error rate · 2 clipsNamakkal: 22.1% error rate · 20 clipsBudaun: 68.0% error rate · 53 clipsShamli: 0.0% error rate · 1 clipEtah: 83.3% error rate · 3 clipsJyotiba Phule Nagar: 15.6% error rate · 4 clipsGorakhpur: 43.8% error rate · 39 clipsJalaun: 89.1% error rate · 10 clipsVaranasi: 100.0% error rate · 18 clipsHamirpur: 61.1% error rate · 41 clipsDeoria: 43.7% error rate · 40 clipsMuzaffarnagar: 94.4% error rate · 21 clipsChennai: 16.6% error rate · 20 clipsKanyakumari: 16.2% error rate · 20 clipsGhazipur: 100.0% error rate · 22 clipsNilgiris: 55.1% error rate · 38 clipsHyderabad: 58.3% error rate · 22 clipsKarimnagar: 115.7% error rate · 16 clipsNalgonda: 11.8% error rate · 22 clipsKomaram Bheem: 3.2% error rate · 20 clipsMahabubabad: 3.7% error rate · 12 clipsNew Delhi: 100.0% error rate · 2 clipsAlipurduar: 26.8% error rate · 35 clipsJhargram: 24.1% error rate · 16 clips

147 districts shaded · median 49.3% · select one to compare models

Language view

The coverage gap

Languages an API does not claim to support are still sent to it, with language detection on. A refusal or an empty answer counts as a failed clip, because that is what a developer building for those speakers would experience.

Kharibolinot on the support list103 clips24.3%
Odiaon the support list120 clips60.5%
Both on Sarvam Saaras v3, both scored the same way. Khariboli is on nobody’s support list and beats Odia, which is on it, by 36.2 points. It is not a one-off. The median listed language sits at 29% and the median unlisted one at 44%, and yet every one of the 7 unlisted languages with a comparable sample scores better than the worst listed one. The two ranges overlap enough that the list barely predicts whether a language works. Only languages with at least 60 scored clips are eligible for this comparison, so it cannot rest on a thin cell.
Error rate by language and provider, with whether each language is officially supported. Column headers sort the table.
support
Angaminot listed39
100.0%wer
97.4%wer
95.2% (best of the models)wer
Angikanot listed98
100.0%wer
29.5% (best of the models)wer
29.8%wer
Aonot listed38
100.0%wer
89.3%wer
85.2% (best of the models)wer
Awadhinot listed64
100.0%wer
33.2%wer
30.0% (best of the models)wer
Bajjikanot listed39
100.0%wer
43.3%wer
41.8% (best of the models)wer
Bearybashenot listed32
100.0%cer
73.0% (best of the models)cer
75.5%cer
Bhilinot listed15
100.0%wer
86.6%wer
85.6% (best of the models)wer
Bhojpurinot listed212
100.0%wer
45.7%wer
40.4% (best of the models)wer
Bundelinot listed36
100.0%wer
25.3%wer
21.4% (best of the models)wer
Chakhesangnot listed47
100.0%wer
100.8%wer
90.8% (best of the models)wer
Chakmanot listed41
100.0%wer
108.7%wer
99.1% (best of the models)wer
Chhattisgarhinot listed174
100.0%wer
49.0%wer
44.4% (best of the models)wer
Englishlisted191
100.0%wer
11.4% (best of the models)wer
11.6%wer
Garhwalinot listed38
100.0%wer
81.7%wer
73.3% (best of the models)wer
Garonot listed56
100.0% (best of the models)wer
133.0%wer
103.7%wer
Gondinot listed20
100.0%cer
96.4%cer
87.4% (best of the models)cer
Halbinot listed18
100.0%wer
88.6%wer
72.6% (best of the models)wer
Haryanvinot listed50
100.0%wer
57.9%wer
51.3% (best of the models)wer
IduMishminot listed20
100.0%wer
110.9%wer
99.4% (best of the models)wer
Jaipurinot listed36
100.0%wer
29.6%wer
28.2% (best of the models)wer
Karbinot listed20
100.0%wer
90.5%wer
87.4% (best of the models)wer
Kharibolinot listed103
100.0%wer
24.3% (best of the models)wer
24.3%wer
Khorthanot listed73
100.0%wer
44.4% (best of the models)wer
44.5%wer
Kokboroknot listed55
100.0% (best of the models)wer
104.3%wer
100.3%wer
Kumaoninot listed35
100.0%wer
43.0%wer
39.0% (best of the models)wer
Kurukhnot listed19
100.0%cer
65.8%cer
41.1% (best of the models)cer
Magadhinot listed63
100.0%wer
55.1%wer
52.0% (best of the models)wer
Magahinot listed47
100.0%wer
29.3%wer
28.0% (best of the models)wer
Malvaninot listed46
100.0%wer
49.9%wer
48.2% (best of the models)wer
Marwarinot listed32
100.0%wer
55.4%wer
54.8% (best of the models)wer
Mizonot listed19
100.0%wer
95.1% (best of the models)wer
95.1%wer
Nagamesenot listed35
100.0%wer
96.0%wer
95.8% (best of the models)wer
Nagpurinot listed19
100.0%wer
69.1%wer
62.6% (best of the models)wer
Nyishinot listed19
100.0% (best of the models)wer
120.2%wer
103.9%wer
Rajasthaninot listed35
100.0%wer
51.1%wer
50.7% (best of the models)wer
Rengmanot listed20
100.0%wer
96.3%wer
95.1% (best of the models)wer
Rongmeinot listed49
100.0%wer
96.2%wer
95.5% (best of the models)wer
Sadrinot listed40
100.0%wer
58.3%wer
56.4% (best of the models)wer
Sambalpurinot listed20
100.0%wer
59.1% (best of the models)wer
59.8%wer
Suminot listed36
100.0%wer
116.2%wer
95.7% (best of the models)wer
Surgujianot listed20
100.0%wer
57.2%wer
47.6% (best of the models)wer
Surjapurinot listed19
100.0%wer
110.1%wer
75.6% (best of the models)wer
Taginnot listed20
100.0% (best of the models)wer
122.7%wer
110.1%wer
Thethinot listed20
100.0%wer
46.2% (best of the models)wer
48.0%wer
Tulunot listed18
100.0%cer
60.8% (best of the models)cer
79.5%cer
Wanchonot listed20
100.0%wer
106.5%wer
99.4% (best of the models)wer
Santalilisted17
83.2%wer
84.2%wer
58.6% (best of the models)wer
Odialisted120
56.3%wer
60.5%wer
41.9% (best of the models)wer
Marathilisted263
40.0% (best of the models)wer
40.0%wer
40.2%wer
Urdulisted105
36.5% (best of the models)wer
48.8%wer
47.8%wer
Konkanilisted26
36.5%wer
36.9%wer
36.3% (best of the models)wer
Maithililisted254
36.5%wer
35.5%wer
34.8% (best of the models)wer
Telugulisted340
34.1%cer
28.9%cer
28.8% (best of the models)cer
Kashmirilisted50
33.8%wer
35.7%wer
31.4% (best of the models)wer
Nepalilisted79
33.3% (best of the models)wer
34.0%wer
33.8%wer
Tamillisted154
27.0%cer
32.0%cer
22.7% (best of the models)cer
Gujaratilisted56
26.6%wer
26.6%wer
25.7% (best of the models)wer
Punjabilisted136
25.7%wer
24.1%wer
22.4% (best of the models)wer
Assameselisted55
24.0%wer
22.2% (best of the models)wer
22.4%wer
Bengalilisted405
23.3%wer
23.7%wer
22.8% (best of the models)wer
Manipurilisted21
21.4% (best of the models)wer
26.7%wer
26.7%wer
Hindilisted899
19.5% (best of the models)wer
22.2%wer
21.0%wer
Kannadalisted222
17.2%cer
16.4% (best of the models)cer
16.9%cer
Malayalamlisted119
12.2% (best of the models)cer
12.9%cer
12.5%cer

The bolder figure in each row is the lowest error rate of the models tested. CER is reported as primary for Dravidian languages, where one long agglutinated token can carry a whole clause and word error rate over-punishes a single wrong morpheme.

Rates above 100% are real, not a bug. Word error rate counts insertions as well as substitutions and deletions, so a model returning more words than were spoken can exceed the length of the reference. It usually means the model is producing fluent text in the wrong language rather than declining to answer.

Calibration

Is this trustworthy?

Before measuring anything new, this harness reproduced a published result. The Vaani team benchmarked Sarvam Saaras v3 on their own Hindi evaluation set and reported a district mean word error rate of 18.3% with a standard deviation of 4.6. Running their clips through this pipeline gives:

district mean, this harness
17.6% ± 7.7
district mean, published
18.3% ± 4.6
two humans, same audiothe floor
9.4%

That last row is the floor. Two people transcribing the same audio disagree by that much, so no model can score below it and no gap narrower than it is a real difference between two systems. Measured over 350 clips across 90 districts.