Funk888/gigaspeech2-th-joined
gigaspeech2-th-joined Thai speech-transcript pairs derived from GigaSpeech 2, re-segmented into clips of a length that is convenient for training speech-language models. Built to train a Thai speech adapter for the Ultravox architecture, where very short fragments make poor training examples but long clips do not fit the context budget. Statistics Examples 40,000 Total audio ~42 hours Sample rate 16 kHz, mono Clip duration 2.0–12.0 s (mean 3.8… See the full description on the dataset page: https://huggingface.co/datasets/Funk888/gigaspeech2-th-joined.
gigaspeech2-th-joined
Thai speech-transcript pairs derived from GigaSpeech 2, re-segmented into clips of a length that is convenient for training speech-language models.
Built to train a Thai speech adapter for the Ultravox architecture, where very short fragments make poor training examples but long clips do not fit the context budget.
Statistics
Schema
Audio is stored as raw bytes rather than a decoded Audio feature. Decode it yourself:
import io, soundfile as sf
from datasets import load_dataset
ds = load_dataset("Funk888/gigaspeech2-th-joined", split="train")
wav, sr = sf.read(io.BytesIO(ds[0]["audio"]["bytes"]))
print(sr, len(wav) / sr, ds[0]["transcription"])Or cast the column if you prefer the standard interface:
from datasets import Audio
ds = ds.cast_column("audio", Audio(sampling_rate=16000))How it was built
GigaSpeech 2's Thai portion is segmented into short fragments, many under two seconds. Those are too short to be useful on their own for speech-LM training — a two-word clip gives the model almost no context to work with.
This version joins adjacent segments together and keeps only the results that land between 2 and 12 seconds. Everything shorter or longer is dropped.
A larger version with 110,000 examples is available at gigaspeech2-th-joined-v2.
Important notes for use
Transcripts have no word spacing and no punctuation. This follows Thai orthography, where words are not separated by spaces. Two consequences:
- Use CER, not WER, to evaluate models trained on this. Word-error rate requires word boundaries that do not exist here.
- Strip whitespace on both sides before comparing, or spacing differences will be counted as errors.
Domain is narrow. GigaSpeech 2 is sourced from YouTube and is dominated by news reports, interviews and public speaking. Conversational speech — quiet, hesitant, with long pauses and overlapping speakers — is barely represented. Models trained only on this will underperform on natural conversation.
No train/test split. Everything is in train. Hold out your own evaluation set, and be aware that clips joined from the same source recording may share a speaker, so a random split will leak speaker identity across the boundary.
Transcription quality is inherited. No manual correction was applied. Any labelling errors present in GigaSpeech 2 are still here.
Source and license
All audio and transcripts derive from GigaSpeech 2 (Yang et al.), a large-scale multilingual speech corpus built from YouTube. This dataset contributes only the re-segmentation and packaging.
Check the upstream dataset's terms before using this in your own work — they govern this derived version as well.
@article{gigaspeech2,
title = {GigaSpeech 2: An Evolving, Large-Scale and Multi-domain ASR Corpus
for Low-Resource Languages with Automated Crawling, Transcription and Refinement},
author = {Yang, Yifan and others},
journal = {arXiv preprint arXiv:2406.11546},
year = {2024}
}Author
Funk Jaitus (@Funk888)
