stt_cy_parakeet_tdt_ctc_110m
Welsh (Cymraeg) acoustic model for Home Assistant Speech-to-Phrase: on-device recognition of Welsh voice commands. Made by Uned Technolegau Iaith (techiaith), Bangor University.
Fine-tuned from nvidia/parakeet-tdt_ctc-110m. The CTC branch is exported to ONNX
with the same k2-fsa/sherpa-onnx script that produced the Open Home Foundation's
English default, so the graph and interface match the English model.
This is the far-field round-1 model, trained with real room reverberation. The first
model is kept under the tag run1.
What is here
| File | What it is |
|---|---|
stt_cy_parakeet_tdt_ctc_110m.tar.gz |
The package Speech-to-Phrase loads (424 MB): model.onnx, tokens.txt, tokens.json, MODEL_CARD.md, LICENSE, NOTICE |
model.onnx |
458 MB fp32, encoder + CTC head |
tokens.json / tokens.txt |
1025 SentencePiece pieces, <unk> id 0, <blk> id 1024 |
LICENSE, NOTICE |
Apache License 2.0, and the notice that must travel with the model (attributions, warnings); both also inside the package |
MODEL_CARD.md |
Inside the package; the training details |
results/ |
run1's benchmark, command test and gate calibration; results/ff-rir/ has this model's far-field dev set results |
Using it in Speech-to-Phrase
Speech-to-Phrase needs three things for Welsh:
- the Welsh
speech_to_phrasesentences inhome-assistant-intents(proposed toOHF-Voice/intents); - the model registered in
OHF-Voice/apps(speech-to-phrase/src/models.py):"cy": {"nemo": "stt_cy_parakeet_tdt_ctc_110m"}andMODEL_MAX_SCORE["stt_cy_parakeet_tdt_ctc_110m"] = 4.0; - the package in the model store the add-on downloads from.
The score gate of 4.0 is required. The generic NeMo default of 5.0 would accept everyday speech: on real recordings, correctly accepted commands score at most 3.94 and everyday sentences at least 4.67.
Text is lowercase and unpunctuated, numbers are words and hyphens are spaces, which
is what Speech-to-Phrase's normaliser produces. results/cynorm.py is the normaliser
used for training.
Licence
Released under the Apache License 2.0. The accompanying NOTICE carries the attributions required by the base model's and the training data's licences, and the warnings below. Section 4 of the licence requires anyone who redistributes the model or a derivative to keep that NOTICE.
The model is a modified version of nvidia/parakeet-tdt_ctc-110m, © NVIDIA, licensed under CC BY 4.0; those terms continue to apply to the base model's part of it. It is not affiliated with, endorsed by or sponsored by NVIDIA.
One-line attribution: Includes stt_cy_parakeet_tdt_ctc_110m, developed by the Language Technologies Unit, Bangor University, and released under the Apache License 2.0.
Intended use and limitations
The model recognises spoken Welsh commands on device, with Home Assistant's Speech-to-Phrase: it picks the command, from a fixed list of sentences, that best matches what was said. It is a research model, not a certified product, and is not a substitute for a qualified transcriber.
Automatic speech recognition makes mistakes. Output can be wrong while appearing confident. Known failure modes include recognising a command when someone said something else that sounds similar (for example a question the list does not cover); dropping a word, such as part of a device name; taking an English device or room name for a Welsh one; and reduced accuracy with distant microphones, background noise, and accents or dialects outside the training data. The model is used interactively and in real time: tell users that what is recognised is automatic and may be wrong. Have any transcript kept as a record checked and corrected by a competent person before it is relied on, used in any decision affecting a person, or shared or published.
Not fit for medical, legal, financial, safety-critical or emergency settings, or any decision affecting a person's rights, health, liberty or livelihood, unless a qualified person reviews every output.
Use in Wales. The model was developed to help organisations provide services in Welsh that are as good as those they provide in English, not to replace Welsh-language provision. Under section 1 of the Welsh Language (Wales) Measure 2011, Welsh has official status in Wales, given legal effect by, among other things, the treatment of Welsh no less favourably than English and by standards of conduct made and enforced under Part 4 of the Measure. Bodies still operating a Welsh language scheme under Part II of the Welsh Language Act 1993 must give effect to the principle in section 5 of that Act that Welsh and English are treated on a basis of equality. Which duties apply depends on the body and the regulations or scheme that cover it, and responsibility for compliance rests with the body deploying the model. See the Welsh Language Commissioner's regulatory policy statement on artificial intelligence and the Welsh language, Technology, Websites and Software: Welsh Language Considerations, and the advice document Bilingual drafting, translation and using Welsh face to face. The legislation: Welsh Language (Wales) Measure 2011 and Welsh Language Act 1993.
How good is it
Real Welsh speech. A held-out test set (never used for training or model choice): 82 prompts read by four speakers from north and south Wales, on close microphones and laptop microphones at arm's length, 328 takes. Speech-to-Phrase with the Welsh grammar, gate 4.0:
run1 |
this model | |
|---|---|---|
| On-device commands | 197/200 right | 197/200 right |
| Everyday sentences | 60/60 rejected, lowest score 4.56 | 60/60 rejected, lowest score 4.67 |
| Commands only in the full grammar | 32/44 right, none wrong | 32/44 right, none wrong |
| Welsh commands with English device names | 8 acted on a wrong device | 7 acted on a wrong device |
The two arm's-length speakers gain the most margin: the three lowest everyday
sentences scored 4.56, 4.90 and 5.13 with run1, and 4.67, 5.91 and 6.49 with this
model.
On a Home Assistant Green (RK3566, four Cortex-A55 cores, 4 GB), fp32, with the
same architecture as run1: a median of 2.0 s from the end of speech to the
transcript, about 0.55 s per second of audio, and 0.8 GB of memory. Commands spoken
quietly from across the room through a Home Assistant Voice PE were recognised.
Far-field dev set. 600 commands spoken by the seven cy_GB Piper voices and 519
Common Voice Welsh sentences, each in four versions with reverberation from 13 rooms
never used in training. Commands correct of 600 and false accepts of 519:
| Version | run1 |
control (no augmentation) | this model |
|---|---|---|---|
| clean | 571 · 5 | 571 · 4 | 569 · 4 |
| near reverb | 548 · 6 | 549 · 5 | 553 · 5 |
| far reverb | 536 · 13 | 539 · 14 | 547 · 13 |
| far reverb + noise | 503 · 24 | 504 · 24 | 512 · 20 |
Open-ended recognition is not what this model is for: it has no language model,
and in Speech-to-Phrase the grammar is the language model. For reference, run1 on
techiaith/asr-benchmark-cy-en-2606 (WER %, case-normalised / fully normalised):
| Test set | n | cased | norm |
|---|---|---|---|
| commonvoice_23_0 en GB/IE | 9,732 | 30.58 | 20.15 |
| commonvoice_23_0_cy | 5,408 | 39.16 | 30.08 |
| fleurs cy_gb | 1,021 | 46.89 | 37.89 |
| banc-trawsgrifiadau-bangor | 3,899 | 53.10 | 45.69 |
| lleisiau-arfor | 3,735 | 60.58 | 48.25 |
Training data
The training data is not distributed with the model and is not licensed under the Apache License;
each source keeps its own terms. 294.69 h of speech (Welsh 262.2 h, English 32.5 h). Audio was
deduplicated by content hash against every test set in the benchmark, and talentau-llais was
capped at 3,400 utterances per speaker.
| Dataset | Provider and content | Licence |
|---|---|---|
| Common Voice, Welsh (validated) and English (GB/IE) | Mozilla; read speech by volunteers | CC0 1.0 |
| commonvoice_vad_cy | Common Voice Welsh clips segmented with voice activity detection (an internal derivative, not published) | CC0 1.0 |
| techiaith/banc-trawsgrifiadau-bangor | Bangor University; transcribed Welsh speech | CC0 1.0 |
| techiaith/corpws-clllc-wlga | Bangor University; Welsh speech | CC0 1.0 |
| techiaith/bu-tts-cy-en (talentau-llais, data-2024) | Bangor University; studio recordings of Welsh and English | CC0 1.0 |
| cymen-arfor/lleisiau-arfor | Cymen, in a project funded by ARFOR with the Language Technologies Unit; informal and conversational Welsh | CC0 1.0 |
| wanasash/enwaucymraeg | 26 volunteers from north-west Wales; sentences with Welsh personal names | CC0 1.0 |
| google/fleurs (cy_gb) | Google; Conneau et al., 2022 | CC BY 4.0 |
This model then had 5,000 more updates on the same data, with a 0.5 chance per utterance of being convolved with a measured room impulse response: 1,653 RIRs from 37 rooms, balanced to 30 per room, each modified (one channel, resampled to 16 kHz, trimmed, truncated at the noise floor, faded and peak-normalised). The checkpoint at step 4,600 was chosen on the far-field dev set.
| Room impulse responses | Authors | Licence |
|---|---|---|
| BUT ReverbDB | Szöke, Mošner, Chalupníček, Brno University of Technology (BUT Speech@FIT); doi:10.1109/JSTSP.2019.2917582 | CC BY 4.0 |
| ADREAM apartment BRIRs | Winter, Wierstorf, Podlubne, Forgue, Manhès, Herrb, Spors, Raake, Danès (2016); doi:10.5281/zenodo.49357 | CC BY 4.0 |
| OK5 | de las Heras, Meyer-Kahlen, Lokki, Arend (2026); doi:10.5281/zenodo.18622201 | CC BY 4.0 |
| TU Ilmenau SRIR dataset v1.0 | Klein, Surdu, Aretz, Birth, Edelmann, Seitelman, Ziener, Werner, Sporer (2022); doi:10.5281/zenodo.6541444 | CC BY 4.0 |
MODEL_CARD.md has the training settings.
Known issues
- Short questions that start like a command can be accepted as that command: "beth yw'r penawdau" as "beth yw'r tywydd". This needs a grammar or scoring fix, not training.
- On the Piper dev set, about 22 of 142 compound numbers lose their first part ("deuddeg" → "deg"). In real speech every compound number in the test set was recognised ("bymtheg", "dau ddeg", "un deg pum", "dri deg"); "deuddeg" and "deunaw" are not yet tested.
- Request forms such as "wnewch chi …" score close to the gate, because the on-device grammar has no skip words.