Instructions to use itzune/pocket-tts-basque with libraries, inference providers, notebooks, and local apps. Follow these links to get started.
- Libraries
- Pocket-TTS
How to use itzune/pocket-tts-basque with Pocket-TTS:
from pocket_tts import TTSModel import scipy.io.wavfile tts_model = TTSModel.load_model("itzune/pocket-tts-basque") voice_state = tts_model.get_state_for_audio_prompt( "hf://kyutai/tts-voices/alba-mackenna/casual.wav" ) audio = tts_model.generate_audio(voice_state, "Hello world, this is a test.") # Audio is a 1D torch tensor containing PCM data. scipy.io.wavfile.write("output.wav", tts_model.sample_rate, audio.numpy()) - Notebooks
- Google Colab
- Kaggle
Pocket TTS Basque (euskarazko ahots-sintesia, denbora errealean CPUan)
A lightweight Basque (euskara) text-to-speech model that runs in real time on a laptop CPU, based on Pocket TTS by Kyutai (6-layer backbone, about 100 M parameters). It was distilled from the 24-layer Basque teacher itzune/pocket-tts-basque-24l, itself fine-tuned on the BSSD dataset. It clones a voice from a short reference clip and ships with five ready-made Basque voices.
Usage
With uv installed, no setup is needed:
# one of the bundled voices
uvx pocket-tts generate --config hf://itzune/pocket-tts-basque/basque.yaml \
--voice hf://itzune/pocket-tts-basque/voices/Maider.safetensors \
--text "Kaixo! Hau euskarazko ahots sintetiko bat da." --output kaixo.wav
# your own voice: 5-10 s of clean Basque speech
uvx pocket-tts generate --config hf://itzune/pocket-tts-basque/basque.yaml \
--voice my_voice.wav --text "Kaixo!" --output kaixo.wav
Python:
from pocket_tts import TTSModel
import soundfile as sf
model = TTSModel.load_model(config="hf://itzune/pocket-tts-basque/basque.yaml")
voice = model.get_state_for_audio_prompt("hf://itzune/pocket-tts-basque/voices/Antton.safetensors")
audio = model.generate_audio(voice, "Egun on, zer moduz zaude gaur?")
sf.write("egun_on.wav", audio.squeeze().numpy(), model.sample_rate) # 24 kHz
Bundled voices (voices/): Maider (female) and Antton (male), the two professional speakers of the
HiTZ-Aholab studio corpus (CC BY 4.0); and three synthetic voices,
Nahia, Ane (female) and Aitor (male). Voice state files are specific to this model.
Notes:
- Write the text as it should be read: numbers, dates, abbreviations and symbols must be spelled out in
words (e.g.
hogeita laurather than24). The dataset's normaliser (bssd.text_norm) does this for standard Basque. - Only clone voices you have the right to use.
Speed
Measured with the bundled benchmark (scripts/bench_cpu.py: three sentences of 2-8 s, Maider voice) on a
x86 server CPU (4 threads available), generation only (no model load), as a multiple of real time (higher is faster):
| threads | fp32 | int8 (--quantize) |
|---|---|---|
| 2 | 3.5x | 6.9x |
| 4 | 3.4x | 6.7x |
The model is ~100 M parameters (438 MB fp32 weights including the Mimi codec). Streaming synthesis makes the first audio available well before a sentence is finished.
Evaluation
Held-out BSSD test sentences, 40 per voice, scored with two independent Basque ASR systems
(xezpeleta/whisper-large-v3-eu and HiTZ/stt_eu_conformer_transducer_large_v2), UTMOS naturalness and
WavLM speaker similarity to the reference clip. "Failures" are sentences with WER > 0.5 (the model
continuing the reference clip instead of reading the text).
| model | voices | WER (Whisper) | WER (Conformer) | failure rate | WER excl. failures | UTMOS | speaker sim. |
|---|---|---|---|---|---|---|---|
| this model (6 layers, 150 k) | 8 named prompts | 0.049 | 0.040 | 1.3 % | 0.040 | 3.48 | 0.960 |
| 5 unseen voices | 0.029 | 0.029 | 0.5 % | 0.026 | 3.50 | 0.957 | |
| teacher (24 layers) | 8 named prompts | 0.095 | 0.091 | 5.3 % | 0.042 | 3.59 | 0.958 |
| 5 unseen voices | 0.073 | 0.069 | 3.5 % | 0.033 | 3.61 | 0.961 |
The distilled model is more robust than its teacher (fewer prompt-continuation failures, lower WER) at a slightly lower naturalness score, and about 2x faster on GPU and far faster on CPU.
Training
- Teacher: itzune/pocket-tts-basque-24l (24 layers, fine-tuned from Kyutai's English 24-layer model on BSSD).
- Student: Kyutai's
depth_distillrecipe. A 6-layer backbone learns the teacher's activations with the classifier-free guidance baked in (distill_cfg_coef 2.0); the flow head and all non-backbone weights are copied from the teacher. 150 k steps, batch 64, learning rate 4e-4 with cosine decay, EMA weights released. - Data: BSSD train split (about 350 k utterances, 450 h of synthetic Basque speech, 2,400+ voices).
- Tokenizer: SentencePiece, 4000 tokens, trained on the BSSD transcripts (shared with the teacher).
Training code, configs, evaluation scripts and a demo page with audio samples and a comparison with Piper and OmniVoice: https://github.com/itzune/pocket-tts-basque (demo: https://itzune.eus/pocket-tts-basque/)
Limitations
- Basque only; code-switched Spanish/French/English words are read with Basque phonetics.
- A small share of sentences (about 1-2 % in our tests, more with some reference clips) comes out as a continuation of the reference clip instead of the input text; always check generated audio.
- Trained on synthetic speech, so artefacts of the dataset's teacher system may be inherited. See the BSSD dataset card for the provenance of voices and texts.
License and attribution
Model weights: CC-BY-4.0 (as the upstream Pocket TTS weights). Please cite Kyutai's Pocket TTS, the HiTZ-Aholab studio corpus for the Maider and Antton voices, and the BSSD dataset (itzune/bssd, CC-BY-SA-4.0).
- Downloads last month
- -