aurix-v1 is a fine-tuned variant of openai/whisper-large-v3-turbo that transcribes Urdu speech directly into IPA (International Phonetic Alphabet) phonemes instead of orthographic Urdu script. The model maps a 16 kHz audio waveform of spoken Urdu to a string of phonemes annotated with primary and secondary stress, vowel length, nasalization, and the full retroflex / aspirated consonant inventory of Urdu.
This release is intended to support research in Urdu phonology, pronunciation modeling, text-to-speech data labeling, computer-assisted pronunciation training, forced alignment, and downstream phonetic pipelines.
Model Summary
Field
Value
Base model
openai/whisper-large-v3-turbo
Architecture
Whisper encoder-decoder seq2seq (large-v3-turbo, ~809 M parameters)
Output target
IPA phonemes (no orthography)
Source language
Urdu (ur)
Audio
16 kHz, mono, up to 30 s per chunk
Training data
91 k synthetic TTS utterances (≈ 165 h)
Training compute
NVIDIA RTX A6000 (48 GB), single GPU, ~10.4 h wall clock
Phonemizer
espeak-ng (via the phonemizer Python package)
Intended Use
Primary intended uses are research-grade and offline processing:
Automatic labeling of speech corpora with IPA for TTS training pipelines.
Forced alignment between Urdu audio and a known phonemic transcription.
Computer-assisted pronunciation training and pronunciation error detection.
Phonological and dialect-variation studies on Urdu speech.
Generation of phoneme-level features for downstream models.
This model is not a substitute for an orthographic Urdu ASR. Its output is phonetic and is not intended to be read as Urdu text.
Limitations
Training data is synthetic. Audio was produced by neural TTS systems and therefore differs in acoustic characteristics from spontaneous human speech (prosodic regularity, low noise, narrow speaker inventory). Real-speech word error rate on FLEURS is substantially higher than the in-loop development WER on the synthetic distribution (see Evaluation).
Phonemizer determines the label space. Reference transcriptions were generated by espeak-ng (Urdu rule set). The model therefore inherits any systematic errors or idiosyncrasies of that grapheme-to-phoneme system. In particular, dialectal variants not produced by espeak-ng will not appear in the model's output distribution.
Speaker and channel diversity is limited. The synthetic data covers a small set of TTS voices and recording conditions. Accented speech, noisy channels, code-switched English/Urdu, and rapid spontaneous speech are out of distribution.
No timestamps. This release does not produce word- or phoneme-level alignment timestamps. For alignment, pair this model with a forced-alignment tool over its IPA output.
Training Data
Two synthetic-speech Urdu corpora were used:
Source
Utterances
Approx. audio
mahwizzzz/syn-ur
7,963
~14 h
mahwizzzz/syn-ur-2
85,327
~151 h
Total
93,290
~165 h
Audio was extracted via the datasetsAudio feature, resampled to 16 kHz mono, and stored as PCM-16 WAV. The accompanying Urdu transcripts were normalized (removal of Arabic diacritics in the range U+064B–U+065F, U+0670, U+06D6–U+06ED; collapse of zero-width joiners; whitespace normalization).
Transcripts were converted to IPA using phonemizer with the espeak backend (language="ur", with_stress=True). Empty phonemizations and transcripts exceeding 448 tokens after tokenization with Whisper were filtered, yielding 91,017 training examples. The resulting IPA inventory contains 61 distinct characters, including the Urdu retroflex consonant set (ʈ ɖ ɽ ɳ ʂ ʐ), aspirated consonants marked with ʰ, primary (ˈ) and secondary (ˌ) stress, long-vowel marker (ː), nasalization (combining tilde), velar fricative (χ), palatal stop (ɟ), labial approximant (ʋ), and the standard Urdu vowel space.
Phonemization Pipeline
Reference IPA is produced offline before training, not at inference time. The pipeline is deterministic:
This contract means a model output can be compared character-wise against the IPA produced by passing the corresponding gold Urdu text through the same espeak-ng configuration.
Training Procedure
The fine-tune was performed with transformers.Seq2SeqTrainer.
Hyperparameter
Value
Initialization
openai/whisper-large-v3-turbo
Tokenizer language token
urdu
Optimizer
AdamW (Transformers default)
Learning rate
1e-5, linear decay to 0
Per-device train batch size
4
Gradient accumulation steps
64
Effective batch size
256
Number of epochs
3
Total optimizer steps
1,062
Mixed precision
fp16
Gradient checkpointing
disabled (incompatible with the custom collator)
Max label tokens
448 (filter applied at data load)
Eval set
500 random held-out training utterances (synthetic)
Eval / save cadence
every 200 steps; load_best_model_at_end=True, metric_for_best_model="wer"
Wall-clock training time
10 h 23 m 52 s
Final training loss
0.0673
The data collator processes raw audio on the fly: features are extracted with the Whisper feature extractor, labels are tokenized with the Whisper tokenizer set to language="urdu", and label sequences are padded with -100 to be ignored by the loss. dataloader_num_workers=0 is enforced because the HuggingFace Audio column is not fork-safe under multiple workers.
Evaluation
Two evaluation distributions are reported.
In-distribution (synthetic held-out)
A 500 utterance random slice of the synthetic training set was held out and evaluated every 200 steps during training. Final scores:
Metric
Value
eval loss
0.0260
eval CER
0.0825
eval WER
0.1041
Out-of-distribution (real human speech, FLEURS)
The model was evaluated on the 299 utterance test split of google/fleurs configuration ur_pk. Reference IPA for FLEURS was produced with the same espeak-ng pipeline used in training, so this is a like-for-like comparison at the phonemic level. The metrics reported are:
CER: character error rate on the IPA stream.
WER: word error rate, where words are space-separated IPA tokens.
SER: stress error rate, defined as the fraction of aligned word pairs in which the position of the primary stress marker ˈ differs between hypothesis and reference.
VER: vowel error rate, defined as the CER computed after restricting both hypothesis and reference to vowel characters.
Metric
Value
CER
0.1833
WER
0.3995
SER
0.4874
VER
0.1457
The gap between the synthetic dev WER (0.10) and the FLEURS real-speech WER (0.40) is a direct consequence of the synthetic-only training distribution. Continued training on real Urdu speech (for example, Common Voice Urdu) is expected to narrow this gap substantially.
Errors are dominated by fine-grained phonemic confusions (vowel quality, single consonant substitutions, stress shifts of one syllable), not by structural failure: word boundaries, segmental inventory, and overall phrase shape are recovered correctly even on out-of-distribution acoustics.
Base model: OpenAI Whisper (whisper-large-v3-turbo).
Out of distribution evaluation: Google FLEURS (ur_pk).
Phonemizer: espeak-ng via the phonemizer Python package.
Citation
If you use this model in academic work, please cite it as follows.
bibtex
1@misc{aurix-v1-2026,
2 title = {aurix-v1: A Whisper based Urdu Speech to IPA Model},
3 author = {Mahwiz Khalil},
4 year = {2026},
5 howpublished = {\url{https://huggingface.co/mahwizzzz/aurix-v1}},
6 note = {Fine-tuned from openai/whisper-large-v3-turbo on synthetic Urdu TTS data; phonemized with espeak-ng.}
7}
Please also cite the upstream artifacts:
bibtex
1@article{radford2023whisper,
2 title = {Robust Speech Recognition via Large-Scale Weak Supervision},
3 author = {Radford, Alec and Kim, Jong Wook and Xu, Tao and Brockman, Greg and McLeavey, Christine and Sutskever, Ilya},
4 journal = {arXiv preprint arXiv:2212.04356},
5 year = {2022}
6}
78@inproceedings{conneau2023fleurs,
9 title = {{FLEURS}: Few-shot Learning Evaluation of Universal Representations of Speech},
10 author = {Conneau, Alexis and Ma, Min and Khanuja, Simran and Zhang, Yu and Axelrod, Vera and Dalmia, Siddharth and Riesa, Jason and Rivera, Clara and Bapna, Ankur},
11 booktitle = {IEEE Spoken Language Technology Workshop (SLT)},
12 year = {2023}
13}
1415@misc{espeak-ng,
16 title = {{eSpeak NG}: Open source speech synthesizer},
17 howpublished = {\url{https://github.com/espeak-ng/espeak-ng}}
18}