lt_LT-reginute1-medium — Piper voice (Lithuanian)

Project page — an audio sample and what this is, on one page (in Lithuanian). Her younger sister Ingutė has her own page.
The first Lithuanian voice for Piper. Latvian has been in the Piper catalogue since October 2024 and Estonian since August 2026; Lithuanian never has.
- Language: Lithuanian (
lt_LT) - Voice: female — trained on the LIEPA corpus of Vilnius University, one professional actress (studio recordings, 5 121 utterances, ~3 h)
- Sample rate: 22 050 Hz · Quality: medium · Speakers: 1
- Files:
lt_LT-reginute1-medium.onnx+lt_LT-reginute1-medium.onnx.json(must stay together) +phonemize_lithuanian.pywith its three data tableslt_kirciai.tsv,lt_raides.tsvandlt_kreipiniai.tsv(see below — the voice does not speak without them) +skaiciu_pletiklis.pywithzodziai_trumpi.txt(text normalizer) +synth_reginute.py(the recommended wrapper: sentence splitting, pauses,normalize_audio=False);SHA256SUMScovers all of them
⚠️ This voice needs its phonemizer
Lithuanian has three phonemic pitch accents, and espeak-ng places Lithuanian
stress on the wrong syllable in roughly half of the words when checked
against the corpus' own gold annotation. So this voice is trained with
phoneme_type: text on IPA plus three accent marks (ˈ ˌ ˋ), and the text
must be phonemized by phonemize_lithuanian.py together with the stress
dictionary lt_kirciai.tsv (189 262 word forms, built from the LIEPA
annotations and Arūnas Smaliukas' g2p-lt-lexicon). Two small tables sit
beside it: lt_raides.tsv for letter names espeak-ng gets wrong when a word
is spelled out (it calls both z and ž ʑˈee, so "Z." and "Ž." were read the
same), and lt_kreipiniai.tsv for the vocative - Lithuanian spells "mama"
the same whether you speak about her or to her, but accents it differently,
and a dictionary holding one entry per spelling cannot express that.
Plain Piper with a text voice feeds the model raw letters, not IPA, and
will not produce Lithuanian. A PhonemeType.LITHUANIAN contribution to
piper1-gpl (in the shape of phonemize_japanese) is being prepared; until it
lands, ship those files next to the model.
The phonemizer also normalizes text before phonemizing — numbers with the
right case endings, clock times, units and letter-by-letter abbreviations
(skaiciu_pletiklis.py, loaded automatically when it sits beside the module;
pass expand_text=None to switch it off). This matters more than it sounds:
left to itself, espeak-ng reads 5000 eurų as "penki tūkstantčei" and
15:00 as "tūkstantis penkišimtai:". espeak's own phonemizer normalizes
text the same way, so this is the usual Piper arrangement, not an extra layer.
Recommended: normalize_audio=False — Piper's default (True) clips this
voice.
Licence and lineage
- Voice files: CC-BY-4.0, derived from the
meldynamics/liepa-ttscorpus (CC-BY-4.0), published by Vilnius University. - Lineage, stated openly: fine-tuned from the Piper catalogue checkpoint
ru_RU-irina-medium, which is itself fine-tuned fromen_US-lessac-medium. The Lessac base has an unresolved licensing question (see piper-voices discussion #94); the training data here is CC-BY-4.0, and re-basing on the LibriTTS-R (CC-BY) base model is planned. - Code (
phonemize_lithuanian.pyand the tooling around it): GPL-3.0, the same licence as piper1-gpl.
Attribution (required by CC-BY-4.0)
- LIEPA corpus (2013–2015) — carried out by Vilnius University
(Institute of Mathematics and Informatics; Faculty of Philology), with the
Institute of the Lithuanian Language, the Lithuanian University of
Educational Sciences (since 2019 the Education Academy of Vytautas Magnus
University) and Šiauliai University (since 2021 the Šiauliai Academy of
Vilnius University). Project lead prof. Laimutis Telksnys; corpus work
and documentation Gediminas Navickas. The speaker — a professional
actress — is deliberately not named here: the licence credits the corpus
publishers, not the person, and we do not hold her own consent for this
use. Everything anyone hears is still her.
Published to Hugging Face as
meldynamics/liepa-ttsby MEL DYNAMICS, MB. (LIEPA-3, led by prof. Gražina Korvel, is a different and much larger corpus — it is what the ASR model below is trained on, not this voice.) - Stress dictionary — derived from
svogunas/g2p-lt-lexiconby Arūnas Smaliukas (CC BY 4.0), and from the LIEPA annotations. - Ears, not ours but indispensable —
kristijonas/paprika-whisper-lt-v3by Kristijonas Jakubsonas (github.com/kristijonasatpro/paprika): Lithuanian ASR fine-tuned on LIEPA-3. Measured on our bench, it cut word error rate from 25.95 % (genericwhisper-large-v3-turbo) to 7.63 %. This voice is the mouth of a Lithuanian assistant; his model is the ears. - Piper — Michael Hansen and the Open Home Foundation.
Known limitations
Listed because you will meet them anyway, and finding them yourself after being told everything is fine is worse than reading them here.
| What | Why it happens |
|---|---|
| Single short words sound hurried and thin — worst with numbers read one at a time | The corpus is sentences: only 93 of 5 121 utterances are short standalone ones. „du" (two) appears alone exactly once, and as a question. Inside a sentence the same words are fine. |
Individual stress errors — confirmed: procentas, kilovatvalandės | The dictionary is derived, not hand-checked word by word; in both cases the word family disagrees with itself (procentas vs procentinis). Expect more in loanwords and compounds. |
Homographs unsolved — nãmo (of the house) vs namõ (homewards) | Spelled identically, differ only in accent. A word-level dictionary cannot choose; that needs sentence context. Not a bug we can fix by adding entries. |
Needs the phonemizer — plain piper -m … will not speak Lithuanian | Architectural, not a rough edge. See the section above. |
length_scale 1.30 is a judgement, not a measurement | Chosen by ear against recordings of the original speaker. Measured afterwards on the same text: 1.2 % slower than her. Override freely if you prefer faster. |
None of these block ordinary use: the voice reads news, answers a smart speaker and speaks multi-minute articles without a break. They are listed so you know what you are getting — the same courtesy the author of the ASR model above extends about his own numbers.
For catalogue maintainers (piper-voices / piper1-gpl)
Nothing here is a new convention — each point follows something already merged into Piper.
- Order: the piper1-gpl PR adding
PhonemeType.LITHUANIANfirst, then the piper-voices PR. The catalogue.onnx.jsonsays"phoneme_type": "lithuanian"; a Piper without the phonemizer refuses to load the voice with a clear error instead of feeding it raw letters. The same pattern ashe_IL-saspeech-medium(hebrew, piper1-gpl #244),zh_CN-chaowen-medium(pinyin, #271) andja_JA-hi_fi_captain-medium(japanese, #274): the phoneme type names a phonemizer that lives in Piper, and the catalogue folder holds only the model and the config. - The phoneme id map is Piper's default with one symbol appended
(
ˋ= 166); ˈ and ˌ are the default 120 and 121, PAD/BOS/EOS unchanged. - The stress dictionary (
lt_kirciai.tsv, 3 MB) is resolved through--data-dir(or next to the model) and is deliberately not in the catalogue folder — no catalogue voice ships extra files. Two merged precedents for delivering such data: bundled in the wheel viapackage_datalike the Hebrew models (piper/hebrew/nakdimon.onnx, 20 MB, #244) — the option proposed in the piper1-gpl PR — or an archive inrhasspy/piper-checkpoints/<lang>/_resources/downloaded on first use like g2pW (#271/#269). Until one of them is in place, take the TSV from this repo. samples/speaker_0.mp3was generated the waypiper-samples/_script/generate-samples.shdoes it (first line oftest_sentences/lt.txt, sent to piper-samples separately), through the phonemizer. Regenerating it with a Piper that lacks the phonemizer fails; with atextconfig it produces noise — please keep the shipped one.
Status
In the official Piper catalogue since 2026-09-17
(PR #103); the
phonemizer was merged into piper1-gpl on 2026-09-15
(PR #296) and ships with
Piper 1.9.0 — from that release plain piper speaks with this voice. Until then,
use the files and the wrapper in this repo.
Used in
- SpeakDream — offline voice interpreter, meeting secretary and language practice for Windows; Reginutė is its Lithuanian voice.
- A Home Assistant voice assistant (Wyoming TTS), in daily use.