lt_LT-ingute-medium / MODEL_CARD
RobertasTa's picture
Ingutė v1.0.0 — a Lithuanian voice for Piper (lt_LT-ingute-medium)
b2b00be verified
Raw History Blame Contribute Delete
3.34 kB
# Model card for ingute (medium)
* Language: lt_LT (Lithuanian, Lithuania)
* Speakers: 1
* Quality: medium
* Samplerate: 22,050Hz
**Synthetic voice.** Everything this model produces is AI-generated speech, not
a human recording. If you publish audio made with it, disclose that it is
machine-generated: the licence requires it, and the EU AI Act (Article 50,
applicable since 2 August 2026) may require an AI label as well.
## Licence
NewGenLTU Open RAIL-D License 1.0 — full text in `LICENSE-VOICE`
(https://sitti.vdu.lt/newgenltu-openrail-d-license/). Free of charge: you may
use, share and modify the voice; the licence does not prohibit commercial use.
Its use restrictions (Attachment A) apply to everyone who uses the voice, and
`LICENSE-VOICE` must travel with every copy. Credit: *Ingutė
(`lt_LT-ingute-medium`), Robertas & Claude, grown from Reginutė*.
## Training
Fine-tuned from `lt_LT-reginute1-medium` (CC BY 4.0, trained on the LIEPA
corpus of Vilnius University), which is itself fine-tuned from the Piper
catalogue checkpoint `ru_RU-irina-medium`, fine-tuned in turn from
`en_US-lessac-medium` (see piper-voices discussion #94 on that base). Trained
with our own tools.
What is published here is the **voice**, not the means of making one: the
exported model, its config, the phonemizer and its dictionary. The training
checkpoint is deliberately not distributed.
## Phonemization — please read
This voice uses `phoneme_type: text` with a custom `phoneme_id_map` (IPA plus
three Lithuanian accent marks `ˈ ˌ ˋ`), the same map as Reginutė. Text must be
phonemized by `phonemize_lithuanian.py` with its three tables
(`lt_kirciai.tsv`, `lt_raides.tsv`, `lt_kreipiniai.tsv`). Plain Piper without
the phonemizer feeds the model raw letters and will not produce Lithuanian.
The phonemizer is merged into piper1-gpl and will ship with Piper 1.9.0; with
that Piper, a config saying `"phoneme_type": "lithuanian"` runs it
automatically. Until then, phonemize with the module and pass IPA to Piper —
`synth_reginute.py` (shared with Reginutė) does exactly that.
The module also normalizes text first (`skaiciu_pletiklis.py`, picked up when
present; `expand_text=None` disables it): number case endings, clock times,
units and letter-by-letter abbreviations.
Recommended: `normalize_audio=False`, and long text split at punctuation
(`ReginuteSynth` does both).
## Known limitations
* **The voice needs the phonemizer** until Piper 1.9.0 — see above.
* **The stress dictionary has individual errors.** It is derived, not checked
word by word; words missing from it get espeak-ng's own guess.
* **Homographs are not solved** — `nãmo` and `namõ` are spelled the same and
differ only in accent; a word-level lookup cannot choose.
* **`length_scale` 1.15 is a judgement by ear.** Override it freely.
## Attribution
* Starting model: Reginutė (`lt_LT-reginute1-medium`, CC BY 4.0) —
https://huggingface.co/RobertasTa/lt_LT-reginute1-medium
* LIEPA corpus (2013–2015) — Vilnius University, with the Institute of the
Lithuanian Language, the Lithuanian University of Educational Sciences and
Šiauliai University; published as `meldynamics/liepa-tts` (CC BY 4.0).
* Stress dictionary derived from `svogunas/g2p-lt-lexicon` by Arūnas Smaliukas
(CC BY 4.0) and from the LIEPA annotations.