malaysia-ai/fleurs-r-neucodec-all-languages

Dataset

FLEURS-R NeuCodec All Languages

4

262 commits

2 linked in READMEs

updated Sep 13, 2026

See the code

README

FLEURS-R NeuCodec All Languages

FLEURS-R metadata, source audio and precomputed NeuCodec speech tokens for 102 locales, plus a speaker label FLEURS itself does not ship.

Layout

  • data/{locale}-{split}.parquet β€” metadata, one row per utterance (this is what the viewer shows).
  • audio/{locale}-{split}.zip β€” source FLEURS-R audio, 24kHz mono PCM16 WAV, members named audio/{locale}/{split}/{id}.wav (the path column).
  • neucodec/{locale}-{split}-rank{N}.zip β€” NeuCodec tokens, members named neucodec/{locale}/{split}/{id}.pt (the neucodec_path column), each a {'source': str, 'codes': IntTensor[1, 1, T]} torch file at 50 tokens/s.

Columns

columnwhat
idFLEURS utterance id
pathaudio member path inside audio/{locale}-{split}.zip
neucodec_pathtoken member path inside the matching neucodec/ zip
filenamebare {id}.wav
sentenceraw transcription
normalized_textlowercased, punctuation-stripped transcription
charactersspace-separated character transcription
locale, splite.g. en_us, train
genderFLEURS speaker gender label
speakerderived voice identity, {locale}_spkNN (see below)
num_samplessample count of the original 16kHz FLEURS audio

Speaker labels

FLEURS and FLEURS-R ship gender but no speaker identity. speaker here is derived: every utterance is embedded with TitaNet-L (titanet-vectors-fp16), and the vectors are clustered per locale with agglomerative clustering (cosine distance, average linkage, threshold 0.4) within each gender, so a cluster never merges voices FLEURS already labels apart. Clusters smaller than 5 utterances are folded into their nearest centroid, and ids are numbered by descending cluster size, so {locale}_spk00 is the most-recorded voice of that locale.

They are clusters, not ground truth: treat them as consistent voice tags for conditioning, not as verified speaker identities.

Across 102 locales / 279,496 utterances: 5–43 speakers per locale (median 11), mean silhouette 0.60.

Loading

from datasets import load_dataset

ds = load_dataset("malaysia-ai/fleurs-r-neucodec-all-languages")             # all locales
ds = load_dataset("malaysia-ai/fleurs-r-neucodec-all-languages", "en_us")    # one locale

Audio and tokens are the zips above β€” path and neucodec_path name the member inside audio/{locale}-{split}.zip and neucodec/{locale}-{split}-rank*.zip.

Source

google/fleurs-r (FLEURS-R, CC BY 4.0), the restored variant of google/fleurs.

malaysia-ai/fleurs-r-neucodec-all-languages

Dataset

FLEURS-R NeuCodec All Languages

4

262 commits

2 linked in READMEs

updated Sep 13, 2026

See the code

README

FLEURS-R NeuCodec All Languages

FLEURS-R metadata, source audio and precomputed NeuCodec speech tokens for 102 locales, plus a speaker label FLEURS itself does not ship.

Layout

  • data/{locale}-{split}.parquet β€” metadata, one row per utterance (this is what the viewer shows).
  • audio/{locale}-{split}.zip β€” source FLEURS-R audio, 24kHz mono PCM16 WAV, members named audio/{locale}/{split}/{id}.wav (the path column).
  • neucodec/{locale}-{split}-rank{N}.zip β€” NeuCodec tokens, members named neucodec/{locale}/{split}/{id}.pt (the neucodec_path column), each a {'source': str, 'codes': IntTensor[1, 1, T]} torch file at 50 tokens/s.

Columns

columnwhat
idFLEURS utterance id
pathaudio member path inside audio/{locale}-{split}.zip
neucodec_pathtoken member path inside the matching neucodec/ zip
filenamebare {id}.wav
sentenceraw transcription
normalized_textlowercased, punctuation-stripped transcription
charactersspace-separated character transcription
locale, splite.g. en_us, train
genderFLEURS speaker gender label
speakerderived voice identity, {locale}_spkNN (see below)
num_samplessample count of the original 16kHz FLEURS audio

Speaker labels

FLEURS and FLEURS-R ship gender but no speaker identity. speaker here is derived: every utterance is embedded with TitaNet-L (titanet-vectors-fp16), and the vectors are clustered per locale with agglomerative clustering (cosine distance, average linkage, threshold 0.4) within each gender, so a cluster never merges voices FLEURS already labels apart. Clusters smaller than 5 utterances are folded into their nearest centroid, and ids are numbered by descending cluster size, so {locale}_spk00 is the most-recorded voice of that locale.

They are clusters, not ground truth: treat them as consistent voice tags for conditioning, not as verified speaker identities.

Across 102 locales / 279,496 utterances: 5–43 speakers per locale (median 11), mean silhouette 0.60.

Loading

from datasets import load_dataset

ds = load_dataset("malaysia-ai/fleurs-r-neucodec-all-languages")             # all locales
ds = load_dataset("malaysia-ai/fleurs-r-neucodec-all-languages", "en_us")    # one locale

Audio and tokens are the zips above β€” path and neucodec_path name the member inside audio/{locale}-{split}.zip and neucodec/{locale}-{split}-rank*.zip.

Source

google/fleurs-r (FLEURS-R, CC BY 4.0), the restored variant of google/fleurs.