KuralHubStar

Interspeech 2026 · Sydney, Australia · pp. 4673-4678

KuralHub: Exposing Typological Capability Frontiers in Multilingual Speech Emotion Recognition

*, Jubeerathan Thevakumar*, Thanikan Sivatheepan, Uthayasanker Thayasivam

Department of Computer Science and Engineering, University of Moratuwa, Colombo, Sri Lanka

*Equal contribution

  • 70languages surveyed
  • 90datasets documented
  • 29languages benchmarked
  • 33datasets
  • 11models
  • 363training runs

Find KuralHub useful? Please star it on GitHub and cite our paper (BibTeX) in your work. Stars help other researchers find it and keep us adding new languages, datasets and models.

Contents
  1. Abstract
  2. Key findings
  3. 1 Introduction
  4. 2 Dataset survey
  5. 3 Benchmark setup
  6. 4 Results
  7. 5 Limitations
  8. 6 Using KuralHub
  9. Contribute
  10. FAQ
  11. Citation
  12. Authors

Abstract

Speech Emotion Recognition (SER) advancements are constrained by high-resource bias, limiting global access. To address this, we introduce KuralHub, an open-science initiative democratizing SER for under-resourced languages. We evaluate 11 self-supervised models (WavLM, HuBERT, Wav2vec 2.0, Whisper) across 33 datasets in 29 diverse languages. Beyond standard benchmarking, our study reveals a critical typological bias: cross-lingual transferability is dictated more by structural linguistic properties than pre-training data volume. While models easily adapt to Mandarin or Amharic, they systematically fail on the Dravidian family. Crucially, we demonstrate that simply scaling model parameters fails to resolve this bottleneck. By exposing these linguistic capability frontiers, KuralHub provides a vital roadmap for developing equitable, typologically-aware speech technologies for all speakers.

Index terms: speech emotion recognition, under-resourced languages, benchmarking

Key findings

  1. No model is best everywhere. Whisper had the highest mean F1 (0.70 for both whisper-small and whisper-large), followed by HuBERT-base (0.68) and WavLM (0.64 large, 0.63 base-plus). Even so, HuBERT came out on top for nine languages and WavLM for English and Swahili (Table 2).
  2. Dravidian languages fail across the board. Kannada averaged 0.275 test accuracy and Tamil 0.306 (best single run 0.44). Telugu never got above 0.53. The spread between models is small, so they fail in the same way.
  3. More pre-training data does not guarantee better results. Mandarin (0.755) and Indonesian (0.720) were easy. French (0.421), Spanish (0.365) and Russian (0.344) were not, and Persian, Arabic, Odia, Amharic and Quechua all beat several European languages.
  4. Bigger models are not better. The log of parameter count is negatively correlated with F1 (r = −0.18, p = 0.0007). wav2vec2-base (0.58) beat both wav2vec2-large-960h (0.30) and wav2vec2-large-lv60 (0.25).
  5. Fear is the hardest emotion. Its mean F1 was 0.38, against 0.54 for anger and 0.52 for neutral. The order holds across languages.

1Introduction

Speech emotion recognition (SER) means working out from a voice alone whether the speaker sounds angry, happy, sad, afraid or neutral. Voice assistants, call-centre analytics and health monitoring all depend on it. Most SER research, though, covers a handful of high-resource languages, and the world has more than 7,000.

Emotional speech datasets for other languages are scattered across papers, Kaggle pages and lab websites, and each is described differently, so just finding them is slow. It is also unclear how well self-supervised speech models such as HuBERT, wav2vec 2.0, WavLM and Whisper carry over to emotion recognition in languages they saw little of during pre-training.

New to the field? The speech emotion recognition guide explains how emotion detection models work, which datasets and models to use, and how to evaluate them.

KuralHub (kural, குரல், is Tamil for "voice") addresses both problems. We looked for emotional speech datasets in the 70 most widely spoken languages and documented every one we found in the same format. We then trained emotion classifiers on top of 11 frozen pretrained models for 33 of those datasets, covering 29 languages, with a single recipe, and studied where they work and where they break.

2The dataset survey

We took the 70 most widely spoken languages listed in Ethnologue and searched academic repositories and public sources for emotional speech corpora in each. 45 of the 70 have at least one dataset. For the remaining 25 we found none. The catalog documents 90 datasets in total.

The repository is organised by language. Each language has a folder whose Readme.md gives the language family, ISO code, where it is spoken and a table of its datasets. Every dataset then gets its own Markdown file with the emotion labels, size, speakers, recording setup (acted, elicited or spontaneous), licence, how to get it, the original paper and a BibTeX entry. This website builds one page per language from those files.

datasets/
├── Tamil/
│   ├── Readme.md          # language info + table of datasets
│   ├── EmoTa.md           # one file per dataset
│   ├── TaMaR-EmoDB.md
│   └── Ram_C_Sunitha_et_al.md
├── Sinhala/
│   └── Readme.md          # no dataset found (yet)
└── … 70 language folders

Browse the full catalog →

Which datasets were benchmarked

A dataset was included in the benchmark if it (i) had clearly annotated emotion labels, (ii) covered at least three of five target emotions (anger, happiness, sadness, neutral and fear), and (iii) had at least 50 utterances per emotion. 33 datasets in 29 languages qualified. They differ in recording conditions, in how emotion was elicited (acted or spontaneous), in speaker demographics and in their emotion labels, which makes them a fair test of how well a model generalises.

Table 1. The datasets used in the benchmark, part of the full survey (from the paper). * marks high-resource languages. #Emo: emotions. #Samples: samples.
LanguageDataset#Emo#Samples
AfrikaansAfrikaansSE8800
AmharicASED52,474
ArabicANAD31,384
BengaliBANSpEmo6792
BengaliSUBESCO77,000
Chinese*ESD517,500
English*IESC5600
English*RAVDESS71,440
French*CaFE7936
German*EmoDB7535
GreekAESDD5500
Hindi*IITKGP-SEHSC812,000
HungarianHESD8760
IndonesianIndoWaveSentiment5300
Italian*EMOVO7564
Italian*Emozionalmente76,902
Japanese*JVNV61,615
KannadaAgrawal et al.6468
KazakhKazEmoTTS654,760
Korean*KESDy1872,880
OdiaSITB-OSED612,110
PersianShEMO63,000
PolishnEMO64,481
Portuguese*emoUERJ4377
QuechuaQuechua Collao912,420
Russian*Dusha4300,000
Spanish*MESD6432
SwahiliKenyan Swahili SER5300
TamilEmoTa5936
TeluguSowmith et al.5468
TurkishTurEV-DB41,735
UrduURDU-Dataset4400
UrduUrduSER73,500

3Benchmark setup

Models

We used 11 pretrained speech encoders from four families: HuBERT (hubert-base-ls960, hubert-large-ls960-ft), wav2vec 2.0 (wav2vec2-base, wav2vec2-large-960h, wav2vec2-large-lv60, wav2vec2-xls-r-300m, wav2vec2-xls-r-1b), WavLM (wavlm-base-plus, wavlm-large) and Whisper (whisper-small, whisper-large).

Training and evaluation

Every backbone stays frozen. Only a small classification head on top is trained, which keeps the comparison cheap and fair and needs far less labelled data than full fine-tuning.

  1. Audio is resampled to 16 kHz, normalised with librosa and passed through the frozen backbone.
  2. The last-layer hidden states are averaged over time, giving one embedding per clip.
  3. A two-layer feed-forward head maps the embedding to emotion classes: linear (to 512 units), GELU, dropout (0.3), linear.
  4. The head is trained with cross-entropy loss and Adam (learning rate 10−3, halved when validation loss stalls for 2 epochs) for up to 30 epochs, with early stopping after 5 epochs without improvement.

Each dataset is split 70% / 15% / 15% into training, validation and test sets. Runs use whichever of the five target emotions a dataset contains. We report precision, recall, F1 and accuracy on the held-out test set, per emotion and as macro and weighted averages. The hidden size, dropout, learning rate schedule, patience and pooling come from the released code rather than the paper.

4Results

4.1The language matters more than how much pre-training data it had

Mean test accuracy over all models and languages was 0.52 (σ = 0.19). A common assumption is that languages with more pre-training data will do better. The results only partly support that.

Mandarin Chinese, a high-resource language, was easy (mean 0.755, median 0.90), and so was Indonesian (0.720, median 0.77). Other high-resource languages were not. French (0.421), Spanish (0.365) and Russian (0.344) were all mediocre. Several lower-resource languages did well instead: Persian (0.67, median 0.76) and Arabic (0.66, σ = 0.08) were stable, and Odia (0.643, best 0.83), Amharic (0.636, best 0.90) and Quechua all beat several European languages.

Pre-training volume alone does not decide the outcome. Languages with stable phonetics, consistent pronunciation rules and standardised corpora seem easier for self-supervised models to learn. High dialect variation and spontaneous speech add acoustic noise that pulls performance down.

Radar chart of test accuracy for each of the 11 models across the 29 benchmarked languages. Chinese, Indonesian and Amharic reach the outer ring for most models; Kannada, Tamil and Telugu stay near the centre.
Figure 1. Model accuracy across languages. Each line is one model. The further a point is from the centre, the higher the test accuracy.
Table A. Test accuracy per language over all 11 models and all of the language's datasets, sorted by mean. Computed from the released logs. Click a column to re-sort.
LanguageFamilyDatasetsMeanSDMedianBestBest run
ChineseSino-Tibetan10.7550.2330.900.98whisper-large
IndonesianAustronesian10.7210.2350.770.99hubert-base-ls960
PersianIndo-European10.6710.1630.760.83whisper-small
ArabicAfro-Asiatic10.6610.0810.640.82whisper-large
OdiaIndo-European10.6440.1830.640.83wavlm-large
AmharicAfro-Asiatic10.6360.2570.750.90whisper-small
JapaneseJaponic10.6190.2400.670.87whisper-large
SwahiliNiger-Congo10.6150.1900.690.83wavlm-base-plus
PortugueseIndo-European10.6000.2290.630.91whisper-small
QuechuaQuechuan10.5870.2290.710.83whisper-large
KoreanKoreanic10.5770.2300.700.81whisper-small
PolishIndo-European10.5660.2440.660.87whisper-large
GermanIndo-European10.5550.2280.530.86whisper-large
TurkishTurkic10.5490.1750.480.84whisper-small
AfrikaansIndo-European10.5240.1570.590.71whisper-small
EnglishIndo-European20.5100.2230.570.82hubert-base-ls960
ItalianIndo-European20.5040.1940.560.80whisper-large
UrduIndo-European20.4960.2080.460.88wav2vec2-base
HindiIndo-European10.4880.2220.610.71whisper-small
GreekIndo-European10.4660.1690.540.75hubert-base-ls960
BengaliIndo-European20.4600.2280.390.89whisper-large
KazakhTurkic10.4400.1620.510.65whisper-small
FrenchIndo-European10.4210.1780.380.70wavlm-large
TeluguDravidian10.4050.0980.430.53hubert-base-ls960
HungarianUralic10.3670.1380.430.52hubert-base-ls960
SpanishIndo-European10.3650.1910.270.68whisper-small
RussianIndo-European10.3450.1180.400.51hubert-base-ls960
TamilDravidian10.3060.0890.290.44whisper-small
KannadaDravidian10.2750.0860.260.48wavlm-large

4.2Systematic failure on Dravidian languages

The clearest pattern is that every model does badly on the Dravidian languages. Kannada (μ = 0.275, σ = 0.085, median 0.26) and Tamil (μ = 0.306, σ = 0.088, max 0.44) are among the worst languages in the benchmark, and Telugu peaks at 0.53.

The small standard deviations matter. Almost every model fails on Kannada and Tamil in much the same way, which points to a limitation in current self-supervised architectures rather than an unlucky choice of model. Dravidian languages are morphologically complex, highly agglutinative and rich in retroflex consonants. Handling that takes fine-grained temporal modelling, and the strided CNN front-ends these models use may throw away the phonetic detail needed.

Heatmap of mean macro-F1 for each model (rows) and language family (columns). Dravidian and Uralic columns are dark for every model, between 0.14 and 0.52; Sino-Tibetan and Austronesian are the lightest, up to 0.99.
Figure 2. Mean macro-F1 of each model across language families. Dravidian and Uralic consistently score lower than the other families.

The shape of each language's score distribution sorts languages into two groups:

Table 2. Best model family for each language (from the paper).
Best modelLanguages
HuBERTFrench, Greek, Hindi, Hungarian, Indonesian, Japanese, Russian, Telugu, Urdu
WavLMEnglish, Swahili
WhisperAfrikaans, Amharic, Arabic, Bengali, Chinese, German, Italian, Kannada, Kazakh, Korean, Odia, Persian, Polish, Portuguese, Quechua, Spanish, Tamil, Turkish

No single model is best for every language, so model choice for multilingual SER has to depend on the language.

4.3Architecture matters, size does not

Across all 33 datasets, the Whisper models had the highest mean F1 (0.70 for both whisper-small and whisper-large), followed by HuBERT-base (0.68) and WavLM (0.64 for wavlm-large, 0.63 for wavlm-base-plus). Whisper and HuBERT held up well across languages, while the wav2vec 2.0 models generalised worst.

To separate architecture from dataset and language effects we fitted a linear mixed-effects model, F1 ~ Family + (1|Dataset) + (1|Language). The reference family had a mean F1 of 0.524. Against it, wav2vec 2.0 was clearly worse (β = −0.195, p < .001) while WavLM (β = +0.091) and Whisper (β = +0.170) were better (both p < .001). About 40% of the total variance came from differences between datasets and languages.

Bigger models within a family were not reliably better. wav2vec2-base (μ = 0.58, σ = 0.17) beat wav2vec2-large-960h (μ = 0.30, σ = 0.11) and wav2vec2-large-lv60 (μ = 0.25, σ = 0.10). Across all models:

Dataset-level variance (0.0113) dominated language-level variance (≈ 0), largely because 25 of the 29 languages had only one dataset. Adding parameters does not, by itself, improve multilingual emotion recognition.

Line chart of mean macro-F1 against parameter count in millions, one line per model family. whisper-small and whisper-large sit at about 0.69; hubert-base-ls960 is at 0.67 while hubert-large-ls960-ft drops to 0.38; wav2vec2 models fall from 0.56 for base to between 0.21 and 0.31 for the larger checkpoints.
Figure 3. Mean macro-F1 of each model against its parameter count, grouped by architecture family.
Table B. The 11 frozen backbones and their mean test scores across all 33 datasets, computed from the released logs. These differ by a point or two from the per-model F1 figures quoted in the paper. Parameter counts are approximate.
FamilyCheckpointParamsAccuracyMacro-F1Weighted-F1
HuBERThubert-base-ls960~95M0.680.670.68
HuBERThubert-large-ls960-ft~316M0.420.380.39
wav2vec 2.0wav2vec2-base~95M0.590.560.57
wav2vec 2.0wav2vec2-large-960h~317M0.320.260.26
wav2vec 2.0wav2vec2-large-lv60~317M0.290.210.23
wav2vec 2.0wav2vec2-xls-r-300m~300M0.350.310.32
wav2vec 2.0wav2vec2-xls-r-1b~1,000M0.360.310.32
WavLMwavlm-base-plus~95M0.640.620.63
WavLMwavlm-large~316M0.640.610.62
Whisperwhisper-small~244M0.710.690.71
Whisperwhisper-large~1,550M0.710.690.71

4.4Which emotions are hard

Table 3. Precision, recall and F1 per emotion, averaged across datasets (from the paper).
EmotionPrecisionRecallF1
Anger0.570.570.54
Fear0.470.370.38
Happiness0.520.430.44
Neutral0.460.650.52
Sadness0.540.480.46

Neutral and anger were the easiest to recognise and fear the hardest. The same order shows up across languages, which fits cross-cultural studies of emotion perception and suggests some acoustic cues are shared.

Errors came mainly from three sources: low-resource languages with little pre-training data, spontaneous rather than acted speech, and emotional expressions that are not prototypical. For example, the acted Amharic ASED dataset scored 24% higher than spontaneous-speech datasets with similar resources.

5Limitations and future work

Across 11 models and 29 languages, the structure of a language limited cross-lingual transfer in SER more than the amount of pre-training data or the number of model parameters did. Some families, Dravidian in particular, sit at a "capability frontier" where current models fail systematically.

The study has limits:

Better multilingual SER will need more than larger models. We hope KuralHub helps others work on typology-aware pre-training and layer-wise fine-tuning.

6Using KuralHub

Find a dataset

The dataset catalog has a searchable table of all 90 datasets and one page per language, for example Tamil, Hindi or Swahili. The same information lives as Markdown in the repository's datasets/ folder.

Get the numbers

The results page lists all 363 runs. The same data is available as files:

Tables A and B above are computed from those 363 classification reports. The per-language figures match the paper. The per-model F1 figures differ from the paper's by a point or two, so the text quotes the paper's numbers as published.

Re-run an experiment

git clone https://github.com/aaivu/KuralHub.git
cd KuralHub
make setup              # virtualenv + requirements (Python 3.12+)
make download_dataset   # needs a Kaggle API key in ~/.kaggle/kaggle.json
make meta_extract       # builds the per-dataset metadata CSVs
DATASET=EMOTA BASE_MODEL=WAVLM_LARGE make train_model

DATASET and BASE_MODEL take the names defined in src/utils/constant.py. Batch size, learning rate, epochs and early-stopping patience can be set with BATCH_SIZE, LEARNING_RATE, EPOCHS and EARLY_STOPPING_PATIENCE.

For AI assistants and agents

Plain-text versions of this site follow the llms.txt convention. llms.txt is a short index with the key facts and links. llms-full.txt holds the paper summary, every result table and every dataset entry in one file. This page is also available as Markdown.

Contribute a dataset or a model

KuralHub grows with outside help. 25 of the 70 surveyed languages still have no emotional speech dataset we could find, and the benchmark so far covers 11 models. If you have built a corpus, know of one we missed, or want to see another model in the results, we would like to hear from you.

Add a dataset

Any language counts, including ones that already have datasets listed. Send a link through the form, or write the entry yourself from the template and open a pull request.

Add a model to the benchmark

Know a speech encoder that might handle emotion better, especially for Dravidian or other low-scoring languages? Tell us which checkpoint to try, or run it yourself with the same recipe and send the logs.

The simplest way to help is to star the repository. It costs nothing, helps others discover the work and tells us it is worth continuing.

Spotted a mistake in a dataset entry? Every dataset section has a "Suggest an edit" link. Contributions are reviewed and credited in the repository history. CONTRIBUTING.md has the details.

Frequently asked questions

What is KuralHub?

KuralHub is an open catalog of speech emotion recognition (SER) datasets for the 70 most widely spoken languages, together with a benchmark of 11 pretrained speech models on 33 datasets in 29 languages. It was published at Interspeech 2026.

Where can I find a speech emotion recognition dataset for my language?

Open the dataset catalog and pick your language. Each language page lists every dataset we found, with emotion labels, size, licence, download or request link and a BibTeX entry. 45 of the 70 surveyed languages have at least one dataset.

Which pretrained model works best for speech emotion recognition?

On average, Whisper. In the KuralHub benchmark whisper-small and whisper-large both reached a mean F1 of 0.70, ahead of HuBERT-base (0.68) and WavLM (0.63 to 0.64). But no model is best everywhere: HuBERT came out on top for nine languages and WavLM for English and Swahili, so check the per-language results.

Do larger speech models recognise emotions better?

Not in this benchmark. With frozen features, the log of model size was negatively correlated with F1 (r = −0.18, p = 0.0007), and wav2vec2-base (mean 0.58) beat wav2vec2-large-960h (0.30) and wav2vec2-large-lv60 (0.25).

Why do models struggle with Tamil, Telugu and Kannada?

All three Dravidian languages were among the worst performers: Kannada averaged 0.275 accuracy and Tamil 0.306, with little spread between models. The paper suggests the cause is structural. These languages are agglutinative and have many retroflex consonants, which need fine-grained temporal modelling that strided CNN front-ends may lose.

Which emotions are hardest to recognise from speech?

Fear. Averaged over all runs, fear had an F1 of 0.38, against 0.54 for anger and 0.52 for neutral. The ordering held across languages.

Are the datasets free to use?

It depends on the dataset. Some can be downloaded directly. Others need a request or a signed agreement with the original authors, and a few are paid. Each entry states the access route and licence. Check the original licence before research or commercial use.

How do I cite KuralHub?

Use the BibTeX entry in the citation section below.

Citation

If you use KuralHub, the benchmark results or the catalog, please cite:

Thavarasa, L., Thevakumar, J., Sivatheepan, T., Thayasivam, U. (2026) KuralHub: Exposing Typological Capability Frontiers in Multilingual Speech Emotion Recognition. Proc. Interspeech 2026, 4673-4678, doi: 10.21437/Interspeech.2026-3502

@inproceedings{thavarasa26_interspeech,
  title     = {{KuralHub: Exposing Typological Capability Frontiers in Multilingual Speech Emotion Recognition}},
  author    = {Luxshan Thavarasa and Jubeerathan Thevakumar and Thanikan Sivatheepan and Uthayasanker Thayasivam},
  year      = {2026},
  booktitle = {{Interspeech 2026}},
  pages     = {4673--4678},
  doi       = {10.21437/Interspeech.2026-3502},
  issn      = {2958-1796},
}

If you use one of the catalogued datasets, please cite its original authors too. Each dataset entry includes their BibTeX.

Authors

*Equal contribution. All authors are with the Department of Computer Science and Engineering, University of Moratuwa, Sri Lanka.

Acknowledgements

We thank Braveenan Sritharan for mentorship, and the creators of every dataset listed here for releasing their data openly or on request.