Open text-to-speech models for Czech: a listening and word-error test
Summary
I generated the same seven Czech sentences with four open-weight text-to-speech models, each in its own default or bundled voice, and measured how accurately a speech recogniser could transcribe the result. The page lets you play every clip next to the sentence, the recogniser's transcript and the word-error rate (WER) for that clip.
- On this small test OmniVoice had the lowest mean WER, followed by Higgs Audio v3. The Chatterbox fine-tune and Pocket TTS Czech were less accurate.
- WER measures whether the words can be recognised, not whether the voice sounds natural or the stress and intonation are right. A native-speaker listening verdict is pending and has its own section below.
- Seven sentences and one voice per model is a small sample. Differences of a few percentage points should not be read as a ranking.
- All clips are machine output and are published here for research comparison only. The licence section lists the terms for each model.
Models tested
| Model | Voice used | Size | Weights licence |
|---|---|---|---|
| OmniVoice (k2-fsa) | Automatic voice, no reference audio | 0.8B parameters | CC-BY-NC; code Apache-2.0 |
| Higgs Audio v3 TTS 4B (Boson AI) | Automatic voice, no reference audio | about 4B parameters | Boson Higgs TTS 3 Research and Non-Commercial |
| Pocket TTS Czech (community model for Kyutai Pocket TTS) | Bundled preset cs_f_vahalova | small, 6 transformer layers | CC-BY 4.0 |
| Chatterbox (Resemble AI) with a community Czech fine-tune | Built-in default voice, no reference audio | 0.5B parameters | MIT (base); CC0-1.0 (fine-tune, per Hub metadata) |
The four were chosen from a wider survey of open-weight models that list Czech support (see “Background survey”): the two with the strongest published Czech evidence (OmniVoice, Higgs Audio v3) and two small models built for Czech (Pocket TTS Czech, the Chatterbox fine-tune).
Automatic results
WER is the number of word substitutions, insertions and deletions needed to turn the recogniser's transcript into the sentence that was given to the model, divided by the number of words in that sentence. Lower is better; 0% means an exact word match after lower-casing and removing punctuation.
| Model | Voice | Mean WER | Mean WER without sentence 3 | Clips with 0% WER | Clips flagged | Generation time / audio time | Run on |
|---|---|---|---|---|---|---|---|
| OmniVoice | automatic voice, no reference audio | 5.3% | 2.8% | 3 of 7 | 0 | 0.16 | Apple-silicon desktop, MLX |
| Higgs Audio v3 TTS 4B | automatic voice, no reference audio | 7.0% | 6.5% | 2 of 7 | 0 | 0.37 | Apple-silicon desktop, MLX |
| Pocket TTS Czech | bundled voice preset cs_f_vahalova | 18.9% | 9.5% | 2 of 7 | 1 | 0.09 | Apple-silicon desktop, CPU |
| Chatterbox with Czech fine-tune | built-in default voice, no reference audio | 12.7% | 9.8% | 1 of 7 | 0 | 2.57 | Apple-silicon laptop, CPU |
How to read this. Sentence 3 contains a date, a time, an amount and an abbreviation (14. května 2027 v 9:30 … 1 250 Kč, tj. asi 45 eur). The recogniser writes numbers as digits or words inconsistently, so this sentence inflates WER for reasons that are partly about transcription. The column without sentence 3 shows the effect. “Flagged” means a clip had a WER above 50% or lasted more than 2.5 times the median length of all clips of that sentence, which usually indicates dropped text or a runaway generation. The time ratio is below 1 when generation is faster than playback; it comes from different hardware and software for each model, so it does not compare the models' intrinsic speed.
Method
- Date. All clips were generated and scored on 3 November 2026.
- Text. Seven fixed Czech sentences (below) covering everyday speech, place names with diacritics, a date, time and amount, a question, a long multi-clause sentence, a foreign name with technical words, and a three-sentence passage.
- Voices. Each model used its own voice with no reference recording: OmniVoice and Higgs in their automatic mode, Pocket TTS with its bundled preset, Chatterbox with its built-in conditioning.
- Generation. OmniVoice (
mlx-community/OmniVoice-bf16, revision 8fb0b75, languagecs) and Higgs Audio v3 (bosonai/higgs-tts-3-4b, revision 239f63f, temperature 1.0) ran through mlx-audio 0.6.4. Pocket TTS Czech (vvolhejn/pocket-tts-czech, revision 7c1fbd0, temperature 0.3) ran on the CPU with pocket-tts 4.0.1. Chatterbox (resemble-ai/chatterbox revision 5de7a54, with Czech added to its list of supported languages, and theThomcles/Chatterbox-TTS-Czechweights, revision 1be0841, exaggeration 0.5, cfg 0.5, temperature 0.8) ran on the CPU of a laptop. - Scoring. Each clip was transcribed with Whisper large-v3-turbo (
mlx-community/whisper-large-v3-turbo-asr-fp16ormlx-community/whisper-large-v3-turbo, language set to Czech, no conditioning on previous text). Both lower-case and strip punctuation before comparison. Words are compared exactly, so a missing diacritic or a different inflection counts as an error. - Limits. Whisper also makes errors, so some of the WER belongs to the recogniser rather than the voice. One run per clip: no repeats, so randomness in generation is not measured. The sentences are mine and are not a validated test set.
- Clip format. Clips are MP3 files converted from the models' output (24 kHz, mono).
The sentences and clips
Each box holds one sentence, then one player per model. Playback starts only when you press play.
Sentence 1
Včera jsme se po práci sešli v malé kavárně na náměstí a dlouho si povídali o plánech na léto.
Whisper transcript: Včera jsme se po práci sešli v malé kavárně na náměstí a dlouho si povídali o plánech na léto.
Whisper transcript: Včera jsme se po práci sešli v malé kavárně na náměstí a dlouho si povídali o plánech na léto.
Whisper transcript: Včera jsme se po práci sešli v malé kavárně na náměstí a dlouho si povídali o plánech na léto.
Whisper transcript: Včera jsme se po práci sešli v malé kavávě na náměstí a dlouho si povídali o plánech na léto.
Sentence 2
Příští říjen se můj bratr z Říčan přestěhuje do nového domu u řeky, a protože tam žije málo lidí, půjdeme mu pomoct s nábytkem a věcmi.
Whisper transcript: Příští říjen se můj bratr Zříčan přestěhuje do nového domu u řeky a protože tam žije málo lidí, půjdeme mu pomoct s nábytkem a věcmi.
Whisper transcript: Když ti Říjen se můj bratr Zříčan přestěhuje do nového domu u řeky. A protože tam žije málo lidí, půjdeme mu pomoct s nábytkem a věcmi.
Whisper transcript: Příští říjen se můj bratr Zříčan přestěhuje do nového domu u řeky a protože tam žije málo lidí, půjdeme mu pomoct s nábytkem a věcmi.
Whisper transcript: Příští říjen se můj vrát vzříčan přestěhuje do nového domu u řeky a protože tam žije málo lidí, půjdeme mu pomoct návětken a věcmi.
Sentence 3
Konference začíná v úterý 14. května 2027 v 9:30 a vstupenka stojí 1 250 Kč, tj. asi 45 eur.
Whisper transcript: Konference začíná v úterý 14. května 2027 v 9.30 a vstupenka stojí 1250 káč, těnos asi 45 eur.
Whisper transcript: Konference začíná v úterý 14. května 2027 v 9.30 a vstupenka stojí 1 250 korun, tátejů asi 45 eur.
Whisper transcript: Konference začíná v úterý května.
Whisper transcript: Konference začíná v úterý 14. května 2007 v 9.30 a vstupenka stojí 21.50, to je asi 45 euro.
Sentence 4
Víte, kolik lidí z naší kanceláře se příští týden zúčastní školení o umělé inteligenci?
Whisper transcript: Víte, kolik lidí z naší kanceláře se příští týden zúčastní školení o umělé inteligenci?
Whisper transcript: U takové lidí z naší kanceláře se příští týden zúčastní školení o umělé inteligenci.
Whisper transcript: Víte, kolik lidí z naší kanceláře se příští týden zúčastní školení o umělé inteligenci?
Whisper transcript: Víte, kolik lidí z naší kanceláře se příští týden zúčastní školení o umělé inteligenci?
Sentence 5
Když jsme minulý podzim jeli vlakem z Prahy do Brna, zastavili jsme se v Pardubicích na kávu, potom jsme pokračovali podél řeky a cestou jsme si povídali o tom, jak se naše město za posledních dvacet let proměnilo a co všechno bychom ještě chtěli stihnout.
Whisper transcript: Když jsme minulý podzim jeli vlakem z Prahy do Brna, zastavili jsme se v Pardubicích na kávu, potom jsme pokračovali podél řeky a cestou jsme si povídali o tom, jak se naše město za posledních 20 let proměnilo a co všechno bychom ještě chtěli stihnout.
Whisper transcript: Když jsme minulý podzim jeli vlakem z Prahy do Brna, zastavili jsme se v Pardubicích na kávu, potom jsme pokračovali podél řeky a cestou jsme si povídali o tom, jak se naše město za posledních 20 let proměnilo a co všechno bychom ještě chtěli stihnout.
Whisper transcript: Když jsme minulý podzim jeli vlakem z Prahy do Brna, zastavili jsme se v Pardubicích na kávu. Potom jsme pokračovali podél řeky a cestou jsme si povídali o tom, jak se naše město za posledních 20 let proměnilo a co všechno bychom ještě chtěli stihnout.
Whisper transcript: Když jsme minulý podzim jeli vlakem z prahy do Brna, zastavili jsme se v padrbicích na kávu, potom jsme pokračovali podál řeky a cestou jsme si povídali o tom, jak se naše město za poslední 20 let proměnilo a co všechno bychom ještě chtěli stihnout.
Sentence 6
Můj kolega Michael dnes odpoledne aktualizuje software na notebooku a pošle nám e-mail přes Microsoft Teams.
Whisper transcript: Můj kolega Michael dnes odpoledne aktualizuje software na notebooku a pošle nám e-mail přes Microsoft Teams.
Whisper transcript: Můj kolega Michael dnes odpoledne aktualizuje software na notebooku a pošle nám e-mail přes Microsoft Teams.
Whisper transcript: Můj kolega Michal dnes odpoledne aktualizuje software na notebooku a pošle nám e-mail přes Microsoft Teams.
Whisper transcript: Můj kolega Michal dnes odpoledne aktualizuje software na Notebooku a pošle nám e-mail křes Microsoft Teams.
Sentence 7
Na horách napadl první sníh. Ráno bylo ticho a v údolí se vznášela mlha. Děti se už těšily, že po obědě vytáhnou sáňky a půjdou na kopec za školou.
Whisper transcript: Na horách napadl první sníh. Ráno bylo ticho a v údolí se vznášela mlha. Děti se už těšili, že po obědě vytáhnou sánky a půjdou na kopec za školou.
Whisper transcript: Na horách napadl první sníh. Ráno bylo ticho a v údolí se vznášela mlha. Děti se už těšili, že po obědě vytáhnou sánky a půjdou na kopec za školou.
Whisper transcript: Na horách napadl první sníh. Děti se už těšili, že po obědi vytáhnou sánky a půjdou na kopec za školou.
Whisper transcript: Na horách napadl první sníh. Ráno bylo ticho a v údolí se vznášela mlha. Děti se už těšili, že po obědědy táhnou sánky a půjdou na kopec za školou.
Native-speaker listening verdict
Licences and attribution
This page is a non-commercial research comparison. The clips are machine output; no recording of a human speaker is included. Terms below were taken from each model's card or licence file on 3 November 2026 and are summarised, not legal advice. Check the original licence before any other use.
- OmniVoice (k2-fsa)
- Weights: CC-BY-NC (non-commercial, because of the Emilia training data); code: Apache-2.0. The card places no output clause on generated audio beyond a misuse disclaimer. Non-commercial terms apply to the weights, so these clips are used here only for research and comparison.
- Higgs Audio v3 TTS 4B (Boson AI)
- Weights: “Boson Higgs TTS 3 Research and Non-Commercial” licence. A Creator Use Grant allows monetised content creation with credit; hosting, embedding and resale need a separate licence. Outputs may not be used to train other speech models. These clips are published for non-commercial research only and must not be used to train speech models.
- Pocket TTS Czech (community model)
- Weights: CC-BY 4.0, derived from the ParCzech4Speech corpus (CC-BY 4.0, Czech parliamentary recordings). Attribution: model by the Hub user vvolhejn; training data ParCzech4Speech. The bundled voice preset
cs_f_vahalovais distributed in the model repository. No output restriction is stated. - Chatterbox (Resemble AI) with Thomcles/Chatterbox-TTS-Czech
- Base model: MIT. Czech fine-tune: CC0-1.0 according to the Hub API metadata; its model card is gated and was not read. No output restriction is stated for either.
What was left out
I also generated clips with the same models cloning the voice of a reference recording, which is a CC BY-SA 4.0 recording by a named Wikipedia reader. His licence covers the recording, not a synthetic copy of his voice, so those clips and the recording are not published here. The numbers above are for default voices only.
Background survey
Before the listening test I surveyed model cards, repositories and licences for open-weight text-to-speech models with Czech support. Findings at that stage, from primary sources only (no audio had been heard):
- The widest-coverage open models that name Czech are OmniVoice (646+ languages), Higgs Audio v3 TTS (100+), Fish Audio Drama 3 and S2 Pro (80+) and KugelAudio (24 European languages). Only OmniVoice published a Czech-specific figure: WER 2.86% and speaker similarity 0.837 on the MiniMax-24 set, and a character error rate of 1.21% on FLEURS.
- Most strong multilingual models carry non-commercial licences. That does not restrict private research use; it matters if output is sold or hosted.
- Czech-specific small models (Pocket TTS Czech, Piper Czech, the Chatterbox Czech fine-tune) report no Czech listening score. Pocket TTS Czech was trained on parliamentary speech only, which is a known limit for conversational speech.
- Several popular models do not list Czech: Qwen3-TTS, Kokoro, Breeze TTS 2, Voxtral TTS, CosyVoice 3, VibeVoice, Dia, Parler-TTS and Kyutai TTS.
- Fish Audio Drama 3 and KugelAudio were not part of this listening test.