Downloads · 30 days
262
68% of all-time downloads
RobertasTa/lt_LT-reginute1-medium
lt_LT-reginute1-medium is a text-to-speech model from RobertasTa. Use it when you need text read aloud. It is set up for piper. The card lists the license as cc-by-4.0.
Downloads · 30 days
262
68% of all-time downloads
All-time downloads
386
Public
Repo size
345 MB
Likes
2
Public
Click a slice to open those files.
.onnx63.5 MB · 95%
From the Hugging Face model README

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.
ℹ️ Synthetic voice. This is a text-to-speech model: every audio sample here, including the ones in
samples/, is generated by AI and not recorded by a person. If you publish audio made with this voice, check whether it needs an AI disclosure label (EU AI Act, Article 50, applicable since 2 August 2026).
lt_LT)lt_LT-reginute1-medium.onnx + lt_LT-reginute1-medium.onnx.json
(must stay together) + phonemize_lithuanian.py with its three data
tables lt_kirciai.tsv, lt_raides.tsv and lt_kreipiniai.tsv
(see below — the voice does not speak without them) + skaiciu_pletiklis.py
with zodziai_trumpi.txt (text normalizer) + synth_reginute.py (the
recommended wrapper: sentence splitting, pauses, normalize_audio=False)
wyoming_reginute.py (Wyoming server for Home Assistant, see below);
SHA256SUMS covers all of themLithuanian 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) has been merged and is
expected in Piper 1.9.0, which is not released yet; until then, 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.
Today — through Wyoming, about five minutes. Reginutė runs as a separate Wyoming service beside your existing Piper add-on; nothing that already works is touched.
Any Linux, as root (otherwise with sudo); tested on 2026-10-24 on a clean Ubuntu 24.04 container:
apt install -y python3-venv
python3 -m venv /opt/reginute/venv
/opt/reginute/venv/bin/pip install piper-tts==1.8.0 wyoming huggingface_hub
# every voice file and the server — from this repository (~65 MB)
/opt/reginute/venv/bin/python -c "from huggingface_hub import snapshot_download as s; s('RobertasTa/lt_LT-reginute1-medium', local_dir='/opt/reginute/voice')"
# to try it
/opt/reginute/venv/bin/python /opt/reginute/voice/wyoming_reginute.py --model /opt/reginute/voice/lt_LT-reginute1-medium.onnx --uri tcp://0.0.0.0:10250
Always run the venv's Python (by full path, as above): if pip installed into one
Python and python3 is another, you get No module named 'piper' although piper-tts
is installed. To have it start by itself — /etc/systemd/system/reginute.service:
[Unit]
Description=Reginute - Lithuanian Piper voice over Wyoming
After=network-online.target
Wants=network-online.target
[Service]
ExecStart=/opt/reginute/venv/bin/python /opt/reginute/voice/wyoming_reginute.py --model /opt/reginute/voice/lt_LT-reginute1-medium.onnx --uri tcp://0.0.0.0:10250
Restart=always
RestartSec=5
[Install]
WantedBy=multi-user.target
systemctl daemon-reload && systemctl enable --now reginute
The log should say
reginute1 klauso tcp://0.0.0.0:10250 (tempas 1.3 iš konfigo, plėtiklis: taip)
("listening… speed 1.3 from the config"). In Home Assistant: Settings →
Devices & Services → Add integration → Wyoming Protocol, the host and port
10250 — the voice appears as reginute1; pick it as the text-to-speech engine of
your Assist pipeline. Speed and voice name come from the model and its config;
there is nothing to set.
Once Piper 1.9.0 is released, Reginutė should work straight from the Home Assistant Piper add-on, and this server will no longer be needed. That is our expectation — we will check it when it is out.
Ears (speech → text) in Lithuanian, on a CPU — LT_ausys: ~0.2 s per command, connected the same Wyoming way.
meldynamics/liepa-tts
corpus (CC-BY-4.0), published by Vilnius University.ru_RU-irina-medium, which is itself fine-tuned from en_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.phonemize_lithuanian.py and the tooling around it): GPL-3.0, the same
licence as piper1-gpl.meldynamics/liepa-tts
by 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.)svogunas/g2p-lt-lexicon
by Arūnas Smaliukas (CC BY 4.0), and from the LIEPA annotations.kristijonas/paprika-whisper-lt-v3
by 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 % (generic whisper-large-v3-turbo) to 7.63 %.
This voice is the mouth of a Lithuanian assistant; his model is the ears.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.
Nothing here is a new convention — each point follows something already merged into Piper.
PhonemeType.LITHUANIAN first, then
the piper-voices PR. The catalogue .onnx.json says
"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 as he_IL-saspeech-medium (hebrew, piper1-gpl #244),
zh_CN-chaowen-medium (pinyin, #271) and ja_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.ˋ = 166); ˈ and ˌ are the default 120 and 121, PAD/BOS/EOS unchanged.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 via
package_data like the Hebrew models (piper/hebrew/nakdimon.onnx,
20 MB, #244) — the option proposed in the piper1-gpl PR — or an archive in
rhasspy/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.mp3 was generated the way
piper-samples/_script/generate-samples.sh does it (first line of
test_sentences/lt.txt, sent to piper-samples separately), through the
phonemizer. Regenerating it with a Piper that lacks the phonemizer fails;
with a text config it produces noise — please keep the shipped one.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.