FILM6912/th-en-zh-tts-200k
TH-EN-ZH Multi-speaker TTS Dataset (200K) A unified multi-speaker text-to-speech dataset combining three high-quality speech corpora, normalized to a single schema: Column Type Description text string Transcript (whitespace-normalized; LibriTTS uses normalized text) audio Audio Embedded audio bytes (original format: MP3 for th / WAV for en, zh) speaker_id string Namespaced speaker ID (cv_th_*, libritts_*, aishell3_*) lang string th, en, or zh… See the full description on the dataset page: https://huggingface.co/datasets/FILM6912/th-en-zh-tts-200k.
TH-EN-ZH Multi-speaker TTS Dataset (200K)
A unified multi-speaker text-to-speech dataset combining three high-quality speech corpora, normalized to a single schema:
Composition
- Rows are interleaved (2 th : 1 en : 1 zh per block) and shuffled (seed 20260919) so streaming sees a balanced mix.
- 25 parquet shards of 8,192 rows each (last shard partial), zstd compression.
Notes
- Sample rates are mixed (th: 32/44.1/48 kHz MP3, en: 24 kHz WAV, zh: 44.1 kHz WAV) — audio is kept in original bytes; resample to a uniform rate on your side, e.g.
[a.set_frame_rate(24000) for a in batch["audio"]]. - Thai speakers filtered to those with ≥ 3 validated clips. LibriTTS-R uses
text_normalizedwhere available. - No code-switched (mixed-language) utterances are included — each row is a single language. The multilingual signal comes from the shared schema and speaker IDs.
Usage
from datasets import load_dataset
ds = load_dataset("FILM6912/th-en-zh-tts-200k", split="train", streaming=True)
row = next(iter(ds))
print(row["lang"], row["speaker_id"], row["text"], row["audio"]["sampling_rate"])Source licenses
- Common Voice 17.0 (th): CC0-1.0
- LibriTTS-R (en): CC-BY-4.0
- AISHELL-3 (zh): Apache-2.0
By using this dataset you agree to comply with all three source licenses.
