Paper · 2022-05-25 · cs.CL, cs.LG, cs.SD, eess.AS
FLEURS: Few-shot Learning Evaluation of Universal Representations of Speech
FLEURS: about 1.4k hours of read speech in 102 languages, n-way parallel through FLoRes-101 sentences, with three native-speaker recordings per sentence and validation by other workers. Baselines: 600M w2v-BERT (speech-only) and mSLAM (speech+text) for ASR and language ID; mSLAM alone for retrieval. Average CER 14.1 (w2v-BERT) vs 14.6 (mSLAM).
Dataset curationFew-shot learningTransfer learningMetric learningspeechdatasetbenchmarkmultilingualspeech-recognitionspeech-retrievallanguage-identification
AI-compiled by claude-haiku-5-5 on 2026-10-18, not yet reviewed by a human. Every claim cites its source; check it when a detail matters.
In plain words
To test whether a speech model works in many languages, you need the same spoken content recorded in each language, so that results can be compared from one language to another. FLEURS is such a collection: 102 languages, built on sentences that have already been translated by hand, so every language covers the same material.
Each sentence was read aloud by native speakers, and other people then checked the recordings and threw out the bad ones. The whole collection is about 1.4k hours of speech, so each language gets only a modest amount.
The paper also reports starting results on three jobs: turning speech into text, guessing which language is being spoken, and matching a spoken sentence to its written text. Two large pre-trained multilingual models were used as starting points. The one trained on speech alone did slightly better on transcription; the one trained on speech and text did slightly better on language guessing. Only that second model was tested on matching.
TL;DR
FLEURS is a 102-language, n-way parallel corpus of read speech, about 1.4k hours in total. The paper (CC BY 4.0) is meant for few-shot evaluation of multilingual speech models on speech recognition (CER), spoken language identification (accuracy) and speech-text retrieval (P@1). Author-reported: the 600M speech-only w2v-BERT baseline reaches 14.1% average CER and the 600M speech-text mSLAM reaches 14.6%. Use it to benchmark low-resource coverage; expect large gaps between language groups and check the internal inconsistencies in Pitfalls.
Problem
Existing multilingual speech corpora cover about 8 to 60 languages each, and most are aligned at the document level rather than sentence by sentence §1 tab. 1. The authors want an n-way parallel benchmark, meaning the same sentences in every language, that covers over 100 languages and supports several speech tasks at once §1. They say it is the only dataset of more than 100 languages that enables this, "to the best of our knowledge" §1. The benchmark also needs enough speakers, quality checks and a split with speakers held out, so that a model cannot just recognise a voice it has heard before §2.1 §4.2.
Method
The paper contributes a dataset and baselines, not a new model. The sections below describe the data pipeline first, then the three baseline setups.
Sentence source and split §2.1. The sentences are the dev and devtest parts of FLoRes-101, 2009 sentences in total, because the FLoRes test set is not public. They are re-split into 1509 train, 150 dev and 350 test sentences. The sentences come from English Wikipedia and were translated by humans §2.1.
Recording and validation §2.1. For each sentence and language, three native speakers each made one recording. Other workers then judged whether each recording matched its sentence, and invalid recordings were discarded. Each sentence therefore keeps between zero and three recordings. In the first release, about 21.5% of sentences have none left, and the authors plan to fill these gaps later §2.1. Recordings were kept as they were, with no data augmentation such as speed perturbation or simulated reverberation §2.1. The sex ratio was aimed at at least 30/70 where possible §2.1.
Speaker split §2.1. The speech is divided into train, dev and test parts, aiming for a 7:1:2 proportion. Test speakers are disjoint from train and dev speakers. All segments are at most 30 seconds, sampled at 16 kHz §2.1.
Text §2.2. The transcripts are the human translations from FLoRes-101,
with the English versions kept. Each sentence comes in three forms: the raw
transcript (src_raw), a normalised one (src_norm) and a character-level form
(src_char). The paper says src_char should be used for ASR §2.2. The
normalisation steps, in the order the paper lists them:
- Unicode NFC normalisation §2.2.
- "FST normalisation". The paper does not describe the rules §2.2.
- Lower-casing, then normalising and removing punctuation §2.2.
- Splitting words into characters, with a
|token marking word boundaries §2.2.
The authors chose characters as the modelling unit because they need the fewest resources for a universal vocabulary and they match the character error rate metric §2.2.
Coverage and statistics §2.3. The 102 languages span 17 language families and 27 writing systems §2.3 fig. 1 fig. 2. The tables sort them into seven regional groups, labelled WE, EE, CMN, SSA, SA, SEA and CJK. The groups cover western and eastern Europe, the Central Asia to North Africa belt, sub-Saharan Africa, South and South-East Asia, and four East Asian languages (CJK: Cantonese, Mandarin, Japanese and Korean) §2.3 tab. 8. The sentence index from 1 to 2009 links the same sentence across languages §2.3. Per-region hour and token counts are in tab. 2.
Seen and unseen languages §3.2. A language is seen if its speech was in the pre-training data of the baseline models, and unseen otherwise. The paper lists the languages in each group by region §3.2. Section 3.2 counts 54 seen and 48 unseen languages, but the lists contain 55 and 47. See Pitfalls.
Baseline models §3.1. Both baselines are 600M-parameter models:
- w2v-BERT (0.6B, called
w2v-bert-51in the paper): speech-only pre-training on 429k hours of unlabelled speech in 51 languages, drawn from VoxPopuli, MLS, CommonVoice and BABEL §3.1. - mSLAM (0.6B): pre-trained jointly on the same speech and on more than 10 TiB of unlabelled text in 101 languages §3.1.
The paper defers the fine-tuning details to the mSLAM paper §3.1 §4.1 §4.2.
Speech recognition §4.1. The baseline puts two LSTM layers on top of the
pre-trained model and trains with a CTC loss over a 6100-character vocabulary
built from src_norm. No language model is used during scoring, and no
language-ID label is fed to the model. Each model is fine-tuned on all 102
locales. The paper reports character error rate (CER).
# ASR baseline: pre-trained encoder, 2 LSTM layers, CTC [§4.1]
# Input: waveforms (B, T) at 16 kHz [§2.1]
# Output: per-frame character scores for a CTC loss [§4.1]
def asr_forward(waveforms):
# Encode the audio with the pre-trained model (w2v-BERT or mSLAM) [§3.1]
frames = pretrained_encoder(waveforms) # (B, T', d)
# Two LSTM layers over the frames [§4.1]
# Hidden size and frame rate are not stated
hidden = lstm_stack(frames, num_layers=2) # (B, T', h)
# Score the 6100-character vocabulary at each frame [§4.1]
# Whether a CTC blank symbol is added is not stated
scores = output_projection(hidden) # (B, T', 6100)
return scoresLanguage identification §4.2. Fine-tuning follows the mSLAM paper. The task covers all 102 languages tab. 4. Speakers differ between the train set and the dev and test sets, and the authors say avoiding overfitting to speaker identity is essential for this task §4.2.
Speech-text retrieval §4.3. Only mSLAM (0.6B) is fine-tuned, on the
training data of all languages. Speech and text embeddings are trained with an
additive-margin softmax and in-batch negatives, and the loss is applied in both
directions (speech to text and text to speech) §4.3. Text embeddings are built
from src_norm §4.3. Scores are reported as P@1 against a database of text
keys from the FLEURS test set §4.3.
# Speech-text retrieval, additive-margin softmax [§4.3]
# Input: a batch of matched speech and text pairs [§4.3]
# Output: a bi-directional training loss [§4.3]
def retrieval_loss(speech, text):
# Embed both sides with the fine-tuned mSLAM encoder [§4.3]
speech_emb = embed_speech(speech) # (B, d); pooling not stated
text_emb = embed_text(text) # (B, d); input is src_norm [§4.3]
# Score every speech against every text in the batch [§4.3]
# The similarity function is not stated in the paper
scores = similarity(speech_emb, text_emb) # (B, B)
# The matching pair is on the diagonal; the rest are negatives [§4.3]
# The additive margin value is not stated [§4.3]
loss_s2t = softmax_loss(scores, margin) # speech -> text
loss_t2s = softmax_loss(scores.T, margin) # text -> speech [§4.3]
# Both directions are combined; the weighting is not stated [§4.3]
return loss_s2t + loss_t2sThe paper says "we add" the two directions, but gives no weighting. Hyperparameters for the retrieval fine-tuning appear only in a LaTeX table that the build does not include (see Hyperparameters).
Hyperparameters
| Name | Value | Where | Notes |
|---|---|---|---|
| sampling rate | 16 kHz | §2.1 | |
| maximum segment length | 30 s | §2.1 | |
| recordings per sentence | 3 recorded, 0 to 3 kept | §2.1 | 21.5% of sentences have none in v1 |
| sentence split (train / dev / test) | 1509 / 150 / 350 | §2.1 | from 2009 FLoRes sentences |
| speaker split target | 7 : 1 : 2 | §2.1 | test speakers disjoint from train and dev |
| sex ratio target | at least 30/70 | §2.1 | "when possible" |
| data augmentation | none | §2.1 | |
| pre-trained model size | 600M parameters (both baselines) | §3.1 | |
| w2v-BERT pre-training data | 429k h, 51 languages | §3.1 | speech only |
| mSLAM text pre-training data | more than 10 TiB, 101 languages | §3.1 | speech plus text |
| ASR head | 2 LSTM layers, CTC loss | §4.1 | |
| ASR vocabulary | 6100 characters, from src_norm | §4.1 | conflicts with §2.2; see Pitfalls |
| ASR language model | none | §4.1 | |
| ASR optimiser, learning rate, batch size, epochs | not stated | §4.1 | "follow" the mSLAM paper §3.1 |
| LangID fine-tuning | not stated | §4.2 | "follows" the mSLAM paper |
| retrieval loss | additive-margin softmax, in-batch negatives, both directions | §4.3 | |
| retrieval margin, scale, similarity, pooling | not stated | §4.3 | |
| retrieval batch size | 128 utterances | [src: tables.tex#L996-L1016] | source only, see note |
| retrieval learning rate | peak 2e-4, linear warm-up and decay | [src: tables.tex#L996-L1016] | warm-up ratio 0.2 |
| retrieval epochs | 20 | [src: tables.tex#L996-L1016] | source only |
| retrieval Adam | betas (0.9, 0.999), eps 1e-9 | [src: tables.tex#L996-L1016] | source only |
| retrieval weight decay | 1e-6 | [src: tables.tex#L996-L1016] | source only |
The retrieval hyperparameter table is defined in the LaTeX source
(raw/src/2205.12446/tables.tex, lines 996 to 1016), but template.tex never
includes it. It may therefore be absent from the published PDF. Check the PDF
before you rely on these values.
Results
Author-reported. Setup: FLEURS, evaluated on the test split §4.1.2; baselines are the two 600M models in §3.1; hardware is not stated.
Speech recognition, CER (lower is better) tab. 3. Both models are fine-tuned on all 102 languages. The source's seen-versus-unseen breakdown is commented out, so only the per-region numbers for all languages appear here.
| Region | Languages | w2v-BERT 0.6B (speech) | mSLAM 0.6B (speech+text) | Source |
|---|---|---|---|---|
| WE | 25 | 10.7 | 10.6 | tab. 3 |
| EE | 16 | 9.9 | 10.0 | tab. 3 |
| CMN | 12 | 14.5 | 14.8 | tab. 3 |
| SSA | 20 | 15.6 | 16.4 | tab. 3 |
| SA | 14 | 17.4 | 19.2 | tab. 3 |
| SEA | 11 | 14.7 | 14.9 | tab. 3 |
| CJK | 4 | 24.6 | 25.0 | tab. 3 |
| All | 102 | 14.1 | 14.6 | tab. 3 tab. 6 |
Per-language CER is in tab. 6.
Speech language identification, accuracy (higher is better) tab. 4. The text calls the overall figure a macro-average §4.2. The table only says "Avg.".
| Region | w2v-BERT 0.6B | mSLAM 0.6B | Source |
|---|---|---|---|
| WE (25) | 85.3 | 84.6 | tab. 4 |
| EE (16) | 78.4 | 81.3 | tab. 4 |
| CMN (12) | 72.9 | 75.9 | tab. 4 |
| SSA (20) | 59.1 | 62.2 | tab. 4 |
| SA (14) | 52.0 | 51.7 | tab. 4 |
| SEA (11) | 65.7 | 73.4 | tab. 4 |
| CJK (4) | 89.7 | 87.8 | tab. 4 |
| Avg. (102) | 71.4 | 73.3 | tab. 4 |
Speech-text retrieval, P@1 (higher is better) tab. 5 tab. 7. Only mSLAM is fine-tuned for this task, so there is no second model to compare with.
| Direction | WE | EE | CMN | SSA | SA | SEA | CJK | All (102) |
|---|---|---|---|---|---|---|---|---|
| Speech to text | 87.6 | 91.1 | 79.4 | 83.9 | 67.7 | 54.8 | 4.7 | 76.9 |
| Text to speech | 83.7 | 88.3 | 77.1 | 83.5 | 61.4 | 55.4 | 4.7 | 74.4 |
Per-language retrieval scores are in tab. 7.
Paper vs code
No official code.
The arXiv abstract page lists no code repository and no project page. The paper
only names dataset hosts: TensorFlow Datasets and Hugging Face, both under the
name xtreme_s [abstract, footnote]. These are data releases, not code.
What I searched:
- Links in the paper and on the arXiv page: none to code.
- GitHub repository search for
fleurs. Matches were unrelated or third-party (e.g. a benchmark of forced aligners, PalabraAI), so none was used. - GitHub search inside the
google-researchorganisation, which the authors' affiliation points to. The one hit,google-research/xtreme(Apache-2.0), is the original XTREME benchmark. I shallow-cloned it at commit838c13b69daafb9328785d16caae2711e4012123. A text search found no FLEURS and no XTREME-S code (only a README image caption about XTREME). The clone was then removed, and nocodefield is recorded. - Hugging Face dataset card for
google/xtreme_s. It links to a fine-tuning script in thehuggingface/transformersresearch projects. That script is maintained by Hugging Face staff, not the authors, so it was not used.
Pitfalls
- Data hours disagree. The abstract says about 12 hours of speech per language. tab. 2 totals 1390 h (987 train, 120 dev, 283 test), about 13.6 h per language, and tab. 1 says 1.4k hours. Use the table totals, and say which split you mean.
- Seen and unseen counts disagree with the lists. Section 3.2 says 54 seen and 48 unseen languages §3.2. The lists in that section have 55 and 47, and the per-region totals in tab. 3 match the lists. Use the lists.
- Which characters feed ASR. Section 2.2 says
src_char"should be used for ASR" §2.2. Section 4.1 says the vocabulary is built fromsrc_norm§4.1. The paper does not resolve this. Pick one, and say which in your report. - The published numbers may not match a re-release. The first release has missing sentences (about 21.5%) and the authors say gaps will be filled in later §2.1. The paper does not say which version the results used. Pin the version you train and test on.
- "Gains" in the text do not match the table. The text says most gains from multimodal pre-training appear in WE, EE and CMN §4.1. tab. 3 shows mSLAM ahead only in WE (10.6 against 10.7). It is behind in EE (10.0 against 9.9) and CMN (14.8 against 14.5).
- "0.5% regression" is 0.5 CER points. The gap between 14.6 and 14.1 is 0.5 absolute CER points, not a relative percentage §4.1 tab. 3.
- Averages are not defined. The paper does not say whether the 14.1 / 14.6 CER average and the 71.4 / 73.3 accuracy average are macro (per language) or micro (per utterance). The text names the LangID average as macro §4.2; the table only says "Avg." tab. 4.
- Retrieval definitions are loose. The text-to-speech score is described as "retrieving any of the speakers who speaks the correct textual query" §4.3. It is unclear whether a hit means any utterance of that text by any speaker. The size of the candidate database is not stated.
- Retrieval hyperparameters may be missing from the PDF. The table is in the source but is not inserted into the build (see Hyperparameters).
- Unstated fine-tuning details. The ASR and LangID fine-tuning values are deferred to the mSLAM paper §3.1 §4.1 §4.2, which is not in this wiki. An implementation must take them from that paper or set them itself, and results will not be exact reproductions otherwise.
- Tokenisation is under-specified. "FST normalisation" has no rules in the
paper §2.2. Exact text matching against the released
src_normstrings is the only safe way to reproduce the tokens. - Large group gaps are real. CJK CER is about 24.6 to 25.0 against about 10.6 to 10.7 for WE tab. 3. Retrieval for CJK falls to about 5% P@1 tab. 5. The authors blame tokenisation mismatch between pre-training and fine-tuning §4.3; this is their explanation and was not tested in the paper.
- Language-specific oddities. Odia (
or) is seen in speech but unseen in text, and Urdu the other way round §4.3. Urdu is hard to recognise from speech because it sounds like Hindi and is often written in Devanagari §4.1.1. Check per-language rows before you draw conclusions about a region. - The data host uses a different name. The data is distributed as
xtreme_son TFDS and Hugging Face [abstract, footnote]. Searching for "FLEURS" alone may miss it. - Licence applies to the paper, not to the dataset host. The arXiv licence is CC BY 4.0 (recorded at fetch). The Hugging Face dataset card also lists cc-by-4.0 at the time of checking (2026-10-18). Confirm the dataset licence on the host before you redistribute audio.
Lineage
- Builds on: FLoRes-101, the source of the sentences and translations (arXiv:2106.03193) §2.1.
- Builds on: w2v-BERT, the speech-only pre-training method for the first baseline (arXiv:2108.06209) §3.1.
- Builds on: mSLAM, the joint speech-and-text pre-training for the second baseline. No arXiv id is given in the source bibliography §3.1.
- Related: XLS-R, the multilingual wav2vec 2.0 model that the introduction cites for few-shot gains across many languages (arXiv:2111.09296) §1.
- Compared against, as datasets (Table 1, tab. 1): BABEL, CommonVoice, CMU Wilderness, MLS, CoVoST-2, VoxLingua-107, Europarl-ST, MuST-C, mTEDx, VoxPopuli and CVSS tab. 1.
- Superseded by: not known from wiki content.
Source and license
Adapted from “FLEURS: Few-shot Learning Evaluation of Universal Representations of Speech” by Alexis Conneau, Min Ma, Simran Khanuja, Yu Zhang, Vera Axelrod, Siddharth Dalmia, Jason Riesa, Clara Rivera, Ankur Bapna (arXiv:2205.12446), used under CC BY 4.0. Changes: condensed and restructured for implementation, with tables, equations and algorithms taken from the paper and its code, each cited to its source. Not affiliated with or endorsed by the authors.