Instructions to use qvac/TranscribePsy-250M-EU with libraries, inference providers, notebooks, and local apps. Follow these links to get started.
- Libraries
- NeMo
How to use qvac/TranscribePsy-250M-EU with NeMo:
import nemo.collections.asr as nemo_asr asr_model = nemo_asr.models.ASRModel.from_pretrained("qvac/TranscribePsy-250M-EU") transcriptions = asr_model.transcribe(["file.wav"]) - Notebooks
- Google Colab
- Kaggle
TranscribePsy-250M-EU
TranscribePsy-250M is a family of compact (254M-parameter) multilingual speech recognition models, distilled from Parakeet-TDT-0.6B-v3 and built for laptops and phones. The family has four releases:
- TranscribePsy-250M-EU (this card): 25 European languages, as a PyTorch (NeMo) checkpoint.
- TranscribePsy-250M-EU-sub: the same architecture trained on the eight languages of Multilingual LibriSpeech, with lower error on those languages (PyTorch).
- TranscribePsy-250M-EU-sub-gguf:
an 8-bit GGUF build of EU-sub for phone CPUs, run through
our
qvac-fabric-speech.cppengine. - TranscribePsy-250M-EU-sub-coreml: a Core ML build of EU-sub for the Apple Neural Engine.
Highlights:
- Best-in-class at ~250M: TranscribePsy-250M-EU leads every similar-size model tested on all three benchmark suites: 8.02 word error rate on the Open ASR Leaderboard, 6.58 on Multilingual LibriSpeech and 21.56 on Common Voice, against 12.34 / 11.51 / 38.17 for Whisper-small (242M), 15.31 / 11.89 / 32.23 for omniASR-CTC-300M-v2 (326M) and 9.72 / 11.84 / 37.74 for OWSM v4 small (370M).
- Beats models three to four times its size: on Multilingual LibriSpeech it scores 6.58 against 12.60 for Qwen3-ASR-0.6B (782M), 7.71 for omniASR-CTC-1B-v2 (976M), 7.76 for Whisper-Medium (764M) and 10.65 for OWSM-CTC-v4 (1.01B). On Common Voice it trails only omniASR-CTC-1B-v2 (21.56 against 20.07) and stays ahead of Whisper-Medium and OWSM-CTC-v4.
- Fastest model on every phone we tested, measured with the GGUF build of TranscribePsy-250M-EU-sub: averaged over six phones, a 0.052 real-time factor, 534 MiB peak memory @ 10s and a 252 ms cold start. Its latency is 2.6x lower than the next-fastest model (omniASR-CTC-300M-v2), 5.7x lower than Whisper-small and 7.5x to 15x lower than the three larger models.
- 10 minutes of audio in 1.65 seconds on an iPhone, with the Core ML build of TranscribePsy-250M-EU-sub on the Apple Neural Engine of an iPhone 17 Pro Max. It uses less than half the disk space and 1.7x less memory than another Core ML speech recognition model.
- Open weights under Apache 2.0, together with the GGUF and Core ML builds and the evaluation scripts behind the benchmark numbers.
Supported languages (25): Bulgarian (bg), Croatian (hr), Czech (cs), Danish (da), Dutch (nl), English (en), Estonian (et), Finnish (fi), French (fr), German (de), Greek (el), Hungarian (hu), Italian (it), Latvian (lv), Lithuanian (lt), Maltese (mt), Polish (pl), Portuguese (pt), Romanian (ro), Russian (ru), Slovak (sk), Slovenian (sl), Spanish (es), Swedish (sv), Ukrainian (uk).
Which model should I use?
| Model | Languages | Format | Use it when |
|---|---|---|---|
| TranscribePsy-250M-EU (this card) | 25 | PyTorch | You need broad European language coverage. |
| TranscribePsy-250M-EU-sub | 8 | PyTorch | You only need the eight Multilingual LibriSpeech languages and want the lowest error. |
| TranscribePsy-250M-EU-sub-gguf | 8 | GGUF (Q8_0) | You are deploying on-device through our qvac-fabric-speech.cpp engine. |
| TranscribePsy-250M-EU-sub-coreml | 8 | Core ML | You are deploying on the Apple Neural Engine. |
Where TranscribePsy-250M-EU leads
Lower is better throughout.
| Benchmark suite | What it covers | TranscribePsy-250M-EU | Whisper-small (242M) | omniASR-CTC-300M-v2 (326M) | OWSM v4 small (370M) |
|---|---|---|---|---|---|
| Open ASR Leaderboard | Mean of the English short-form and multilingual suites | 8.02 | 12.34 | 15.31 | 9.72 |
| Multilingual LibriSpeech | 8-language mean | 6.58 | 11.51 | 11.89 | 11.84 |
| Common Voice v25 | 24-language mean | 21.56 | 38.17 | 32.23 | 37.74 |
Model details
| Property | Value |
|---|---|
| Developed by | Tether AI Research * |
| Parameters | 254.45M †|
| Architecture | FastConformer encoder, 24 layers, 640-dim, transducer decoder |
| Teacher | Parakeet-TDT-0.6B-v3 (627M) |
| Initialization | Structured pruning of the teacher |
| Languages | 25 |
| Training data | 564,102 hours, 117M utterances |
| Precision | float32 |
| Model size on disk | 1.02 GB (float32) |
* References to Tether AI Research are references to Tether Data, S.A. de C.V.
†Includes our novel CAFE design, which gives a better trade-off between English and the other 24 languages while keeping training stable. The 254.45M count is the 253.95M base model plus 0.50M of CAFE adapters; the optional language gate (0.50M) is not included. Technical details will follow in a subsequent report.
How it was trained
The student is not trained from scratch. It is obtained by structured pruning of the Parakeet-TDT-0.6B-v3 teacher, so it starts inside a representation space the teacher has already organized, and is then trained by knowledge distillation from that teacher rather than from transcripts alone.
A full technical report with the complete results will follow, along with a paper on CAFE, the novel design behind this model.
Benchmarks
Against models three to four times larger
At a third to a quarter of the parameters, TranscribePsy-250M-EU still wins Multilingual LibriSpeech outright against every larger model tested, and on Common Voice trails only omniASR-CTC-1B-v2. Bold marks the best score in each row.
| Benchmark | TranscribePsy-250M-EU (254M) | Qwen3-ASR-0.6B (782M) | omniASR-CTC-1B-v2 (976M) | Whisper-Medium (764M) | OWSM-CTC-v4 (1.01B) |
|---|---|---|---|---|---|
| Open ASR Leaderboard | 8.02 | 7.40 | 9.68 | 8.79 | 8.32 |
| Multilingual LibriSpeech | 6.58 | 12.60 | 7.71 | 7.76 | 10.65 |
| Common Voice v25 | 21.56 | N/A * | 20.07 | 26.94 | 32.87 |
* The Common Voice test set covers 24 languages; Qwen3-ASR does not support 8 of them, so it is not scored on that benchmark. For the other models, the mean is taken over all 24 languages.
Per-dataset results
Every test set behind the three suites above, against the same-size models. Word error rate, lower is better; bold marks the best score in each row.
Open ASR Leaderboard: 7 English short-form and 9 multilingual test sets
The reported Open ASR Leaderboard score is the mean of the English short-form mean and the multilingual mean, which is itself the mean of the FLEURS mean and the MLS mean.
| Test set | TranscribePsy-250M-EU | Whisper-small | omniASR-CTC-300M-v2 | OWSM v4 small |
|---|---|---|---|---|
| AMI | 13.91 | 53.35 | 32.51 | 15.47 |
| Earnings-22 | 13.55 | 13.21 | 26.33 | 14.48 |
| GigaSpeech | 11.72 | 10.56 | 22.84 | 11.17 |
| LibriSpeech clean | 2.48 | 2.59 | 4.71 | 2.56 |
| LibriSpeech other | 5.81 | 6.60 | 11.86 | 5.98 |
| SPGISpeech | 7.98 | 3.24 | 14.05 | 2.79 |
| VoxPopuli | 7.76 | 7.85 | 13.28 | 8.65 |
| English short-form mean | 9.03 | 13.91 | 17.94 | 8.73 |
| FLEURS German | 7.61 | 7.61 | 14.53 | 10.08 |
| FLEURS Spanish | 5.38 | 4.67 | 9.56 | 8.21 |
| FLEURS French | 9.83 | 11.52 | 21.23 | 13.16 |
| FLEURS Italian | 4.43 | 16.02 | 9.46 | 6.87 |
| FLEURS Portuguese | 7.74 | 6.27 | 13.63 | 8.76 |
| FLEURS mean | 7.00 | 9.22 | 13.68 | 9.42 |
| MLS Spanish | 4.74 | 6.89 | 7.25 | 7.61 |
| MLS French | 4.85 | 10.93 | 12.95 | 11.05 |
| MLS Italian | 7.37 | 16.02 | 10.73 | 14.49 |
| MLS Portuguese | 11.07 | 15.37 | 15.81 | 14.83 |
| MLS mean | 7.01 | 12.30 | 11.69 | 12.00 |
| Multilingual mean (FLEURS & MLS) | 7.00 | 10.76 | 12.68 | 10.71 |
| Open ASR Leaderboard score | 8.02 | 12.34 | 15.31 | 9.72 |
Multilingual LibriSpeech: 8 languages
| Language | TranscribePsy-250M-EU | Whisper-small | omniASR-CTC-300M-v2 | OWSM v4 small |
|---|---|---|---|---|
| English | 6.48 | 7.66 | 15.10 | 7.96 |
| German | 6.59 | 9.35 | 11.02 | 10.43 |
| Dutch | 5.89 | 16.54 | 12.89 | 11.64 |
| Polish | 5.63 | 9.26 | 9.39 | 16.72 |
| Spanish | 4.74 | 6.90 | 7.25 | 7.61 |
| French | 4.87 | 10.94 | 12.95 | 11.05 |
| Italian | 7.37 | 16.06 | 10.73 | 14.49 |
| Portuguese | 11.04 | 15.37 | 15.81 | 14.83 |
| Mean (8 languages) | 6.58 | 11.51 | 11.89 | 11.84 |
Common Voice v25
The Common Voice v25 test set covers 24 of the 25 training languages (it has no Croatian test set), and TranscribePsy-250M-EU supports all 24. The mean is taken over all 24 languages. WER can exceed 100%, as for Whisper-small on Maltese, because inserted words count as errors.
| Language | TranscribePsy-250M-EU | Whisper-small | omniASR-CTC-300M-v2 | OWSM v4 small |
|---|---|---|---|---|
| Bulgarian | 18.20 | 41.00 | 30.08 | 52.54 |
| Czech | 12.47 | 33.55 | 20.33 | 27.39 |
| Danish | 43.70 | 52.21 | 52.46 | 74.82 |
| German | 8.83 | 13.97 | 19.29 | 10.71 |
| Greek | 32.80 | 29.88 | 37.23 | 65.56 |
| English | 13.94 | 17.18 | 31.20 | 14.22 |
| Spanish | 7.22 | 11.63 | 14.23 | 9.34 |
| Estonian | 27.37 | 69.50 | 39.42 | 52.14 |
| Finnish | 54.29 | 58.76 | 58.49 | 67.07 |
| French | 11.64 | 26.92 | 24.82 | 16.22 |
| Hungarian | 11.79 | 36.10 | 26.10 | 36.78 |
| Italian | 7.15 | 16.81 | 16.28 | 10.24 |
| Lithuanian | 25.68 | 73.12 | 45.25 | 65.21 |
| Latvian | 17.79 | 55.98 | 36.61 | 58.51 |
| Maltese | 46.73 | 109.40 | 31.01 | 73.66 |
| Dutch | 6.04 | 12.66 | 16.74 | 12.11 |
| Polish | 15.91 | 20.74 | 25.53 | 24.85 |
| Portuguese | 10.94 | 22.75 | 23.69 | 13.01 |
| Romanian | 22.46 | 31.82 | 23.80 | 34.09 |
| Russian | 14.62 | 16.42 | 32.45 | 14.68 |
| Slovak | 21.68 | 52.97 | 34.31 | 41.75 |
| Slovenian | 26.51 | 45.02 | 48.08 | 42.90 |
| Swedish | 17.99 | 21.15 | 33.36 | 41.65 |
| Ukrainian | 41.70 | 46.62 | 52.84 | 46.21 |
| Mean (24 languages) | 21.56 | 38.17 | 32.23 | 37.74 |
On-device efficiency
Measured on six phones: Samsung Galaxy S26 Ultra, Samsung Galaxy S25 Ultra, Google Pixel 10,
Google Pixel 9, iPhone 17 Pro Max, and iPhone 15. Every model runs as an 8-bit build under the same test settings, so the comparison reflects the models rather than their inference stacks; TranscribePsy runs through our qvac-fabric-speech.cpp engine. The benchmark set is 160 utterances drawn at random from Multilingual LibriSpeech, 20 per language across eight languages, 40 minutes of audio in total. Every figure is the mean of the best three of five repeated runs, which keeps run-to-run thermal throttling out of the numbers. OWSM is omitted because no mobile-compatible build is available. These measurements use the GGUF build of TranscribePsy-250M-EU-sub, which shares this model's architecture and inference cost.
| Metric | TranscribePsy-250M-EU-sub | whisper-small | omniASR-CTC-300M-v2 | Qwen3-ASR-0.6B | Whisper-Medium | omniASR-CTC-1B-v2 |
|---|---|---|---|---|---|---|
| Real-time factor | 0.052 | 0.374 | 0.173 | 0.462 | 0.931 | 0.998 |
| Inference latency (ms) | 1,021 | 5,854 | 2,631 | 7,616 | 14,636 | 15,372 |
| Cold-start latency (ms) | 252 | 275 | 671 | 677 | 870 | 898 |
| Peak memory @ 10s (MiB) | 534 | 615 | 842 | 1,169 | 1,569 | 1,275 |
TranscribePsy is the fastest model on every phone, not just on average:
| Device | SoC | TranscribePsy-250M-EU-sub | omniASR-CTC-300M-v2 | whisper-small | Qwen3-ASR-0.6B | whisper-medium | omniASR-CTC-1B-v2 |
|---|---|---|---|---|---|---|---|
| Galaxy S26 Ultra | 8 Elite Gen5 | 633 | 1,603 | 3,154 | 4,192 | 9,252 | 11,779 |
| Galaxy S25 Ultra | 8 Elite | 771 | 1,768 | 3,632 | 4,643 | 10,362 | 12,914 |
| iPhone 17 Pro Max | A19 Pro | 1,059 | 1,827 | 5,032 | 5,911 | 13,994 | 10,177 |
| iPhone 15 | A16 | 854 | 3,006 | 4,456 | 7,629 | 13,652 | 14,303 |
| Pixel 10 | Tensor G5 | 1,240 | 2,871 | 9,374 | 11,088 | 18,391 | 16,450 |
| Pixel 9 | Tensor G4 | 1,570 | 4,708 | 9,478 | 12,235 | 22,163 | 26,608 |
Inference latency in milliseconds, lower is better.
Peak memory @ 10s is also remarkably flat across devices, between 530 and 542 MiB, because the model is small enough that no device forces a different execution path.
Usage
TranscribePsy-250M-EU transcribes English with the checkpoint as loaded. For any other language
it uses a small set of language-conditional adapters, shipped in adapters.safetensors. How you
call it depends on whether you know the language of the audio.
| File | Size | What it is |
|---|---|---|
TranscribePsy-250M-EU.nemo |
1.02 GB | The model, as a NeMo checkpoint |
model.safetensors |
1.02 GB | The same weights in safetensors |
adapters.safetensors |
2 MB | Language-conditional adapters for non-English audio |
language_gate.safetensors |
2 MB | English / non-English gate, only needed when the language is unknown |
inference.py |
Transcription when the language is known | |
inference_gated.py |
Transcription with automatic language routing | |
eval/ |
Decoding and scoring scripts behind the benchmark numbers |
Requirements: nemo_toolkit[asr], torch, safetensors, soundfile. Audio must be 16 kHz mono.
hf download qvac/TranscribePsy-250M-EU --local-dir TranscribePsy-250M-EU
cd TranscribePsy-250M-EU
When you know the language, say whether it is English. No gate is involved:
python inference.py --lang en audio_en.wav
python inference.py --lang other audio_de.wav audio_pt.wav
When you do not know the language, let the gate decide per utterance. It sends English to the checkpoint as loaded and everything else through the adapters, at a cost of about 0.05% WER on multilingual speech (including English) compared with declaring the language:
python inference_gated.py audio_en.wav audio_de.wav audio_pt.wav
The same routing from Python:
import os, sys
import nemo.collections.asr as nemo_asr
from huggingface_hub import hf_hub_download
REPO = "qvac/TranscribePsy-250M-EU"
model = nemo_asr.models.ASRModel.from_pretrained(REPO).eval()
# English: use the model as loaded.
print(model.transcribe(["audio_en.wav"])[0].text)
# Any other language: attach the adapters.
sys.path.insert(0, os.path.dirname(hf_hub_download(REPO, "inference.py")))
from inference import attach_adapters
attach_adapters(model, hf_hub_download(REPO, "adapters.safetensors"),
device=model.device, dtype=next(model.parameters()).dtype)
print(model.transcribe(["audio_de.wav"])[0].text)
Choosing the wrong path does not raise an error, it only costs accuracy, so route deliberately or use the gate.
For on-device deployment, see
TranscribePsy-250M-EU-sub-gguf
(Android and cross-platform, via our qvac-fabric-speech.cpp engine) and
TranscribePsy-250M-EU-sub-coreml
(Apple Neural Engine).
Intended use
The TranscribePsy-250M family targets latency- and memory-constrained transcription: voice notes, dictation, meeting capture, accessibility captioning, and voice interfaces that must work offline. This 25-language checkpoint runs on GPUs, servers and laptops; for phones, use the GGUF or Core ML build of TranscribePsy-250M-EU-sub. Because it is compact, we recommend fine-tuning on your domain when accuracy on specialist vocabulary matters.
Limitations
- 25 European languages only. Languages outside the list are not supported and will not degrade gracefully.
- Batch transcription, not streaming. This release transcribes complete utterances.
- PyTorch only. Quantized on-device builds are published for the 8-language variant.
- Not intended for safety-critical or high-stakes automated decisions.
Acknowledgements
Built on NVIDIA's Parakeet-TDT and FastConformer, and on the NeMo toolkit. Evaluated with the Open ASR Leaderboard protocol and text normalizer.
Citation
A citation for this model is coming soon.
Copyright
We will take appropriate actions in response to notices of copyright infringement. If you believe your work has been used or copied in a manner that infringes upon your intellectual property rights, please email data-apps@tether.io identifying and describing both the copyrighted work and alleged infringing content.
Licensing
This model which was trained as described in the blog post (https://huggingface.co/blog/qvac/transcribepsy-250m) is licensed by Tether Data, S.A. de C.V. under the Apache 2.0 license. As described in the blog post, this model is a version of the parakeet-tdt-0.6b-v3 (https://huggingface.co/nvidia/parakeet-tdt-0.6b-v3) which is licensed under the CC-BY-4.0 license (Creative Commons Attribution 4.0 International).
As described in the blog post, the parakeet-tdt-0.6b-v3 model was used as a teacher model.
The Yodas-granary dataset (https://huggingface.co/datasets/espnet/yodas-granary) is made available under the CC-BY-3.0 (Creative Commons Attribution 3.0 Unported). Yodas-granary is a subset of the Granary dataset (https://huggingface.co/datasets/nvidia/Granary) which is made available under the CC-BY-4.0 license (Creative Commons Attribution 4.0 International). The Voxpopuli dataset (https://github.com/facebookresearch/voxpopuli?tab=License-1-ov-file) is made available under the CC0-1.0 license (Creative Commons Zero v1.0 Universal). The Libri-light dataset (https://github.com/facebookresearch/libri-light) is made available under the MIT License (https://github.com/facebookresearch/libri-light?tab=MIT-1-ov-file). The Multilingual LibriSpeech (MLS) dataset (https://www.openslr.org/94/) is made available under the CC-BY-4.0 license (Creative Commons Attribution 4.0 International). The AMI Corpus dataset (https://groups.inf.ed.ac.uk/ami/corpus/) is made available under the CC-BY-4.0 license (Creative Commons Attribution 4.0 International). The LibriSpeech ASR Corpus (960 hours) dataset (https://www.openslr.org/12) is made available under the CC-BY-4.0 license (Creative Commons Attribution 4.0 International). The National Speech Corpus dataset (https://www.imda.gov.sg/how-we-can-help/national-speech-corpus) is made available under the Singapore Open Data Licence version 1.0 (https://data.gov.sg/open-data-licence). The VCTK Corpus (https://www.kaggle.com/datasets/pratt3000/vctk-corpus) is made available under the ODC-BY v1.0 (Open Data Commons Attribution License). The Europarl-ASR dataset (https://www.mllp.upv.es/git-pub/ggarces/Europarl-ASR) is made available under the CC-BY-4.0 license (Creative Commons Attribution 4.0 International) except that: (a) speech and text data from the European Parliament website (audio, official transcriptions and translations) incorporated into the Europarl-ASR dataset are the exclusive property of the European Union represented by the European Parliament and these data are reused here under the conditions stated European Parliament website's Legal notice (https://www.europarl.europa.eu/legal-notice/en/); (b) text data from the DCEP Digital Corpus of the European Parliament incorporated into the Europarl-ASR dataset are the exclusive property of the European Parliament and remain owned by the European Parliament and these data are reused here under the usage conditions of the DCEP Digital Corpus of the European Parliament (https://joint-research-centre.ec.europa.eu/language-technology-resources/dcep-digital-corpus-european-parliament_en#Usage%20Conditions); and (c) text data from the Europarl v10 corpus (https://www.statmt.org/europarl/) are reused here under the Europarl corpus terms of use. The Common Voice Scripted Speech 25.0 dataset (https://commonvoice.mozilla.org/en) is made available under the CC0-1.0 license (Creative Commons Zero v1.0 Universal).
As described in the blog post, the parakeet-tdt-0.6b-v3 model was pruned and trained using the Yodas-granary, Voxpopuli, Libri-light, Multilingual LibriSpeech (MLS), National Speech Corpus, VCTK Corpus, AMI, LibriSpeech, and Europarl-ASR datasets and the following languages from the Common Voice Scripted Speech 25.0 dataset: bg (Bulgarian), cs (Czech), da (Danish), de (German), el (Greek), en (English), es (Spanish), et (Estonian), fi (Finnish), fr (French), hu (Hungarian), it (Italian), lt (Lithuanian), lv (Latvian), mt (Maltese), nl (Dutch), pl (Polish), pt (Portuguese), ro (Romanian), ru (Russian), sk (Slovak), sl (Slovenian), sv (Swedish), and uk (Ukrainian).
- Downloads last month
- 3
Model tree for qvac/TranscribePsy-250M-EU
Base model
nvidia/parakeet-tdt-0.6b-v3


