TL;DR (Luzeegia; Ez Dut Irakurri)

Kyutai-ren Pocket TTS eredua euskarara egokitu dut: Pocket TTS Basque. Ordenagailu arrunt baten CPUan exekutatzen da, denbora errealean baino 3,5 aldiz azkarrago, eta ahotsak klonatzeko gai da.

Hutsune bat betetzen

Euskarazko ahots sintesian, azken hilabeteetan aukera interesgarriak agertu dira. Lehenago idatzi nuen Piper TTS eta OmniVoice ereduen inguruan. Baina bi muturretan daude:

  • Piper TTS: arina eta azkarra, edozein gailutan dabil. Baina kalitatea mugatua da, eta ezin da ahotsik klonatu.
  • OmniVoice: kalitate bikaina eta ahotsak klonatzeko aukera. Baina askoz handiagoa eta astunagoa da.

Pocket TTS bien artean dago. 100M parametro inguru ditu (OmniVoice baino askoz txikiagoa), CPU soil batean denbora errealean dabil, Piper baino kalitate handiagoa du eta ahotsak klonatzeko aukera ere badu: 5-10 segundoko grabazio garbi bat nahikoa da.

Betiko arazoa: datuak

ASRrako (ahots-ezagutzarako) euskarazko datu dexente ditugu: Common Voice, OpenSLR, Legebiltzarra… Baina TTS ereduak entrenatzeko, beti gabiltza larri. Kalitate handiko grabazioak behar dira, isiltasunean, hiztun berberarenak, baimen egokiekin. Eta horrelakoak gutxi dira.

Hau dela eta, datu-sorta sintetiko bat sortu dut: BSSD (Basque Synthetic Speech Dataset). 470 ordu euskarazko audio, OmniVoice bidez sortuak, baimen egokiak dituzten ahotsak erabiliz:

  • Maider eta Antton: HiTZ-Aholab-eko bi hiztun profesionalak (CC BY 4.0).
  • OpenSLR 76-ko 52 boluntarioak (CC BY-SA 4.0), TTSrako grabatu zutenak.

Audio horiek sortzeko, testuak Wikipedia, Common Voice, lizentzia irekiko albisteak eta Wikisource-tik hartu ditut. Sortutako audio guztiak bi ASR eredurekin transkribatu, eta akatsik gabekoak bakarrik gorde ditut.

Nola entrenatu dut?

Lehenik, Kyutai-ren 24 geruzako eredu handia euskarara egokitu dut. Ondoren, 6 geruzako eredu txikiago batera “destilatu” dut: eredu handiak irakasle gisa jardun du, eta txikiak haren ahoskera eta prosodia imitatzen ikasi du. Horrela, kalitatea mantenduz, askoz azkarragoa da.

Entzun

Maider, Pocket TTS Basque bidez:

Esaldi bera, Piper TTS bidez:

Eta OmniVoice bidez:

Antton:

Adibide gehiago (bost ahots, eta hiru ereduen arteko alderaketa) proiektuaren webgunean aurkituko dituzue. Ez daude bereziki aukeratuta: guztiak CPUan sortuak dira, eskuz hautatu gabe.

Nola erabili?

uv instalatuta baduzu, komando bakar batekin:

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

Zure ahotsa erabili nahi baduzu, --voice aukeran zure grabazioa jarri (--voice nire_ahotsa.wav).

Testua irakurri behar den bezala idatzi behar da: zenbakiak, datak eta laburdurak hitzez.

Mugak

Ez da perfektua. Hitz batzuk ez ditu ondo ahoskatzen, adibidez “Antton” edo “onddo”.

Eredua, datu-sorta eta kodea eskuragarri daude: Hugging Face eta GitHub, Itzune proiektuaren baitan. Probatu eta esan zer moduz!