CoolFace
Datasetpublic

bobboyms/phoneme-ctc-english-60h-balanced

Phoneme CTC — English 60h (Balanced & Normalized) A cleaned, normalized and phoneme-balanced version of bobboyms/phoneme-ctc-english-60h-noisy, for training phoneme recognition models (CTC) — e.g. as the native acoustic model behind pronunciation-feedback systems. What's different from the source dataset Label noise removed Roman numerals dropped — eSpeak reads ii/iv/… as "Roman two/four", producing labels that don't match the audio. Non-English phonemes dropped… See the full description on the dataset page: https://huggingface.co/datasets/bobboyms/phoneme-ctc-english-60h-balanced.

sourceHugging Faceotherupdated 3mo agoView on Hugging Face
0likes40downloads
Dataset Card

Phoneme CTC — English 60h (Balanced & Normalized)

A cleaned, normalized and phoneme-balanced version of `bobboyms/phoneme-ctc-english-60h-noisy`, for training phoneme recognition models (CTC) — e.g. as the native acoustic model behind pronunciation-feedback systems.

What's different from the source dataset

  1. 1.Label noise removed
  2. 2.Roman numerals dropped — eSpeak reads ii/iv/… as "Roman two/four", producing labels that don't match the audio.
  3. 3.Non-English phonemes dropped — Whisper-hallucinated foreign words made eSpeak emit x/r/ɑ̃.
  4. 4.eSpeak word-separator artifact | normalized to the word boundary /.
  5. 5.Stress folded to 2 levels — secondary stress merged into primary (ˌ → ˈ). Each vowel token is now stressed (`ˈ`) or unstressed. Keeps stress in the token (single CTC head) while removing rare, barely-trainable secondary-stress classes. The artifact ˈɚ → ˈɜː.
  6. 6.Rare phonemes balanced with TTS — 1,068 synthetic clips (ElevenLabs, native American voices, ≤7 s, 16 kHz) added to train to lift the rarest phonemes:
phonemebeforeafter
ʒ (vision, measure)9462,876
aɪə (science, quiet)8392,907
aɪɚ (fire, tired)9102,924
ɔɪ (boy, voice)2,3333,003
  1. 1.Accent-robustness augmentation — 3,985 synthetic clips (ElevenLabs, Italian + Brazilian-Portuguese voices, ≤7 s, 16 kHz) added to train. These read correct English (canonical labels) with an accent, so the model becomes robust to accent timbre (fewer false alarms on accented speech). They are a deliberate minority — about 5% by phoneme (~11% by utterance); native speech remains dominant. This is not L2 error data: it does not contain mispronunciations and is not a substitute for annotated learner corpora.

Dataset structure

columntypedescription
audioAudio (16 kHz, mono)the utterance
textstringorthographic transcription
phonemestringIPA phonemes, space-separated; / marks word boundaries; stress is fused on vowels (ˈ)
splitexamplescomposition
train37,72632,673 normalized source + 1,068 rare-phoneme TTS + 3,985 accent TTS
test3,633normalized source only — no synthetic audio

Example phoneme: ʃ ˈʊɹ / m ˈeɪ b iː / ɪ f / h ˈɑː m ə z / h ˈæ d

The inventory is ~57 base phonemes (en-US, eSpeak), each vowel additionally carrying a binary stress mark.

How it was built

audio → Whisper (mlx whisper-tiny.en, 4-bit) → text → eSpeak-NG (en-us, with_stress) → phonemes, followed by the normalization above. Synthetic clips are word lists labeled with the same eSpeak G2P (2-level stress); rare-phoneme clips use native American voices, accent clips use Italian/Brazilian voices.

Intended use & limitations

  • —Intended use: training a phoneme/CTC acoustic model on native English (with light accent robustness). A good building block for GOP-style pronunciation scoring.
  • —Labels are canonical, derived from text (citation form, word-by-word) — not from the actual acoustic realization. Stress is lexical, not prosody.
  • —No L2 / mispronunciation data: the accent clips are accented correct speech. For mispronunciation detection on learners, fine-tune on annotated L2 corpora (e.g. speechocean762, L2-ARCTIC).
  • —Synthetic minority: TTS clips are ~13% of train by count, ~9% by phoneme; native real speech dominates.
  • —Label quality is ultimately bounded by whisper-tiny.en (the smallest model).

Source & license

Derived from bobboyms/phoneme-ctc-english-60h-noisy. Refer to the source dataset for licensing of the underlying audio and set the appropriate license.