--- license: cc-by-4.0 language: - lt library_name: nemo pipeline_tag: automatic-speech-recognition base_model: nvidia/parakeet-tdt-0.6b-v3 datasets: - Digisensus/lithuanian-phone-speech-liepa-3-429h-punctuated tags: - speech - automatic-speech-recognition - parakeet - tdt - fastconformer - nemo - lithuanian - telephony - spontaneous-speech - punctuation - capitalization - inverse-text-normalization - liepa-3 model-index: - name: parakeet-tdt-0.6b-lt-phone results: - task: type: automatic-speech-recognition name: Automatic Speech Recognition dataset: type: Digisensus/lithuanian-phone-speech-liepa-3-429h-punctuated name: Lithuanian Phone Speech (LIEPA-3), 2,000 held-out clips (eval/test_ids.txt) metrics: - type: wer value: 12.4 name: WER (normalized) - type: wer value: 19.48 name: WER (cased + punctuated) --- # Parakeet Lithuanian Phone 0.6B — 12.4 % WER on spontaneous telephone speech A Lithuanian speech recogniser for **spontaneous telephone speech**, fine-tuned from [`nvidia/parakeet-tdt-0.6b-v3`](https://huggingface.co/nvidia/parakeet-tdt-0.6b-v3) on 426 hours of Lithuanian phone calls from the [Lithuanian Phone Speech 429 h](https://huggingface.co/datasets/Digisensus/lithuanian-phone-speech-liepa-3-429h-punctuated) dataset. It writes **readable text directly**: punctuation, capitalisation, and numbers, dates, times and amounts as digits ("2026 m. rugsėjo 6 d., 9:30", "65 000 €"). Released by **[Digisensus](https://digisensus.com)**, a conversational intelligence company from Vilnius, Lithuania, building custom enterprise ASR and LLM solutions for call transcription and conversation analytics. ## Key finding **The LIEPA-3 spontaneous phone speech helped Parakeet a lot, but on real calls from outside that corpus the model is still far from usable.** - On held-out LIEPA-3 phone speech, fine-tuning cut the word error rate from 42.7 % to 12.4 % (normalized): about 3.4× fewer errors. - On independent real phone calls it improved too, from 59.5 % to 39.3 %, but roughly two words in five are still wrong: not good enough for production call transcription. - **Why the gap:** the LIEPA-3 phone speech consists mostly of radio and TV broadcasts in which the person speaking took part over the phone. That speech is much cleaner than regular customer-service or sales calls. The main weaknesses of LIEPA-3 as training data for real calls are: - **generic topics**: broadcast subjects, not the products, services and vocabulary of real customer conversations; - **clean speech**: fluent interview speech, not everyday callers with noise, interruptions and overlapping talk; - **no context between segments**: short, isolated clips, so the model never learns from the surrounding conversation. ## Results Word error rate, %, on clips never used in training: | Test set | `parakeet-tdt-0.6b-v3` (base) | **This model** | |---|---:|---:| | LIEPA-3 phone speech, 2,000 held-out clips (2.1 h), normalized | 42.7 | **12.4** | | LIEPA-3 phone speech, 2,000 held-out clips, cased + punctuated | 51.5 | **19.5** | | Independent real phone calls, 488 clips (2.8 h), normalized | 59.5 | **39.3** | | Independent real phone calls, 488 clips, cased + punctuated | 66.8 | **53.4** | - **Normalized** WER compares lowercase text with punctuation removed; **cased + punctuated** WER compares the text exactly as written. Both keep numbers as digits. - **Independent real phone calls:** 488 human-verified clips of real Lithuanian telephone conversations from other sources. They are not public and were not used in training. They are longer and harder than LIEPA-3, so this set shows how the model does outside its training data. ## Quick start ```python import nemo.collections.asr as nemo_asr model = nemo_asr.models.ASRModel.from_pretrained("Digisensus/parakeet-tdt-0.6b-lt-phone") out = model.transcribe(["call.wav"]) # 16 kHz mono audio print(out[0].text) ``` Needs [NVIDIA NeMo](https://github.com/NVIDIA/NeMo) 2.x (`pip install "nemo_toolkit[asr]"`). Clips of up to 30 seconds match the training data; split longer recordings into segments first. ## Training - **Data:** 413,638 clips (425.8 h) of spontaneous telephone speech from the [Lithuanian Phone Speech 429 h](https://huggingface.co/datasets/Digisensus/lithuanian-phone-speech-liepa-3-429h-punctuated) dataset, 0.5–30 s each, with written-form transcripts (`text`). - **Held-out data:** before training, 3,000 clips of the same dataset were set aside and never trained on: 1,000 for validation (used to pick the checkpoint) and 2,000 for the final test. Their IDs are in [`eval/`](eval). These held-out sets are not the dataset's own validation/test splits, which were drawn independently and overlap with this model's training data. To reproduce the results, evaluate on `eval/test_ids.txt`. - **Setup:** full fine-tune of the encoder and TDT decoder; 6,000 updates, effective batch 192 clips, learning rate 1e-4 with 300 warm-up steps and cosine decay to 1e-6, SpecAugment, bf16. One NVIDIA GeForce RTX 5090, 1.9 hours. Full settings are in [`config.json`](config.json). - **Released checkpoint:** step 4,500, the one with the lowest validation WER. ![Training loss](charts/training_loss.png) ![Validation error rate](charts/validation_wer.png) The numbers behind the charts are in [`training_log.csv`](training_log.csv) and [`eval_log.csv`](eval_log.csv). ## Files | File | Content | |---|---| | `model.nemo` | Weights, configuration and tokenizer (NeMo format) | | `config.json` | Training data, hyperparameters and validation results | | `training_log.csv` | Loss, learning rate and gradient norm every 25 steps | | `eval_log.csv` | Validation WER and CER every 300 steps | | `eval/validation_ids.txt`, `eval/test_ids.txt` | IDs of the held-out clips in the dataset | | `charts/` | Training loss and validation error rate | ## Limitations - **Domain:** trained on one corpus of spontaneous phone speech. On other real calls the error rate is much higher (39.3 % normalized); expect the same for noisy audio, strong accents and specialised vocabulary. - **Dialects:** regional dialect speech was not in the training data. - **Written form:** the output follows the dataset's [transcription conventions](https://huggingface.co/datasets/Digisensus/lithuanian-phone-speech-liepa-3-429h-punctuated#transcription-conventions), including their known inconsistencies. - **Speakers:** mostly adults; children and teenagers are rare in the training data. ## Licence and attribution This model is licensed under [Creative Commons Attribution 4.0 International (CC BY 4.0)](https://creativecommons.org/licenses/by/4.0/). The full licence text is in [`LICENSE`](LICENSE). It is derived from [`nvidia/parakeet-tdt-0.6b-v3`](https://huggingface.co/nvidia/parakeet-tdt-0.6b-v3) by NVIDIA (CC BY 4.0) and trained on data derived from **LIEPA-3** by Vytautas Magnus University, Vilnius University and the Institute of the Lithuanian Language (CC BY 4.0). When you use or redistribute it, credit all three: > Parakeet Lithuanian Phone 0.6B by [Digisensus](https://digisensus.com), licensed under CC BY 4.0. > Fine-tuned from nvidia/parakeet-tdt-0.6b-v3 by NVIDIA (CC BY 4.0) on data derived from LIEPA-3 > by Vytautas Magnus University, Vilnius University and the Institute of the Lithuanian Language > (CC BY 4.0). ## Citation ```bibtex @misc{digisensus_parakeet_lt_phone_2026, title = {Parakeet Lithuanian Phone 0.6B}, author = {{Digisensus}}, year = {2026}, howpublished = {Hugging Face}, url = {https://huggingface.co/Digisensus/parakeet-tdt-0.6b-lt-phone}, note = {Digisensus, https://digisensus.com. Fine-tuned from nvidia/parakeet-tdt-0.6b-v3 (NVIDIA) on data derived from LIEPA-3 (Vytautas Magnus University, Vilnius University, Institute of the Lithuanian Language), CC BY 4.0} } ```