File size: 4,174 Bytes
9f2135a
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
---
language:
- et
license: cc-by-4.0
library_name: nemo
tags:
- automatic-speech-recognition
- speech
- nemo
- parakeet
- estonian
- transducer
- FastConformer
- TDT
datasets:
- mozilla-foundation/common_voice_17_0
- yuriyvnv/synthetic_asr_et_sl
base_model: nvidia/parakeet-tdt-0.6b-v3
pipeline_tag: automatic-speech-recognition
model-index:
- name: parakeet-tdt-0.6b-estonian
  results:
  - task:
      type: automatic-speech-recognition
      name: Speech Recognition
    dataset:
      name: Common Voice 17.0 (et) - Test
      type: mozilla-foundation/common_voice_17_0
      config: et
      split: test
    metrics:
    - type: wer
      value: 21.03
      name: WER (raw)
    - type: wer
      value: 18.51
      name: WER (normalized)
    - type: cer
      value: 4.64
      name: CER (raw)
  - task:
      type: automatic-speech-recognition
      name: Speech Recognition
    dataset:
      name: FLEURS (et) - Test
      type: google/fleurs
      config: et_ee
      split: test
    metrics:
    - type: wer
      value: 35.29
      name: WER (raw)
    - type: wer
      value: 12.36
      name: WER (normalized)
    - type: cer
      value: 7.06
      name: CER (raw)
---

# Parakeet-TDT-0.6B Estonian

Fine-tuned [NVIDIA Parakeet-TDT-0.6B-v3](https://huggingface.co/nvidia/parakeet-tdt-0.6b-v3) for Estonian automatic speech recognition, augmented with TTS-generated synthetic data.

This model is part of the paper: *"Synthetic Speech Augmentation for Low-Resource Estonian and Slovenian ASR: Comparing Parakeet-TDT and Whisper"* (Interspeech 2026). Paper coming soon.

## Model Description

- **Architecture:** FastConformer encoder + Token-and-Duration Transducer (TDT) decoder
- **Parameters:** 0.6B
- **Tokenizer:** 8,192-token SentencePiece BPE
- **Base model:** `nvidia/parakeet-tdt-0.6b-v3`
- **Fine-tuning data:** CommonVoice 17.0 Estonian + ~5,850 synthetic sentences (LLM-generated text + OpenAI TTS)
- **Training config:** CV + Synth All (full synthetic corpus with quality filtering)

## Evaluation Results

### Raw WER/CER (no text normalization)

| Test Set | WER | CER |
|----------|-----|-----|
| CommonVoice 17 Test | **21.03** | **4.64** |
| CommonVoice 17 Val | **20.18** | **4.21** |
| FLEURS Test | **35.29** | **7.06** |

### Normalized WER/CER (lowercase + punctuation removal)

| Test Set | WER | CER |
|----------|-----|-----|
| CommonVoice 17 Test | **18.51** | **4.13** |
| CommonVoice 17 Val | **17.91** | **3.78** |
| FLEURS Test | **12.36** | **3.24** |

### Improvement over baselines

| Comparison | CV17 Test (WER) | FLEURS Test (WER) |
|-----------|-----------------|-------------------|
| vs. Zero-shot | -6.16 pp | -3.85 pp |
| vs. CV-only fine-tuning | -1.32 pp | -1.30 pp |

All improvements are statistically significant (paired bootstrap, p < 0.001, n = 100,000).

## Usage

```python
import nemo.collections.asr as nemo_asr

# Load model
model = nemo_asr.models.ASRModel.from_pretrained("yuriyvnv/parakeet-tdt-0.6b-estonian")

# Transcribe
transcriptions = model.transcribe(["audio.wav"])
print(transcriptions[0].text)
```

## Training Details

- **Optimizer:** AdamW (lr=5e-5, betas=[0.9, 0.98], weight_decay=0.001)
- **Schedule:** Cosine annealing with 10% linear warmup
- **Batch size:** 32
- **Early stopping:** patience 10 epochs on val_wer
- **Best epoch:** 74 (val_wer = 0.2002)
- **Precision:** bf16-mixed
- **Seed:** 42

## Synthetic Data Augmentation

The synthetic training data was generated using a three-stage pipeline:
1. **Text generation:** GPT-5-mini generates diverse sentences across paraphrase, domain expansion, and morphological categories
2. **LLM-as-judge validation:** Each sentence validated for grammaticality, naturalness, and language purity
3. **Speech synthesis:** OpenAI gpt-4o-mini-tts with 11-voice rotation

Dataset: [yuriyvnv/synthetic_asr_et_sl](https://huggingface.co/datasets/yuriyvnv/synthetic_asr_et_sl)

## Acknowledgments

- Base model: [NVIDIA Parakeet-TDT-0.6B-v3](https://huggingface.co/nvidia/parakeet-tdt-0.6b-v3)
- Training data: [Mozilla Common Voice 17.0](https://commonvoice.mozilla.org/)
- Evaluation: [Google FLEURS](https://huggingface.co/datasets/google/fleurs)