Robotinė ranka laiko dovanų dėžutę su užrašu „android-lt“, virš jos šviečia Žemės rutulys; šalia užrašas „Android LT — Ingutė speaks, your phone listens“ (iliustracija sukurta naudojant DI)

Android LT — lietuviškas balsas ir diktavimas telefone

Lietuviškas balsas Android telefonui — Ingutė, be interneto.

Telefonas garsiai skaito lietuviškai: aiškus „s“ ir kirčiai 189 tūkst. žodžių formų.

Ir ausys: kalbi lietuviškai, telefonas rašo — SMS, užrašuose, ChatGPT, Claude ar Gemini programoje.

Nuo 1.2.0 — dvi paruoštos programos: parsisiunti, įdiegi, ir veikia. Be F-Droid, be laido, be kompiuterio.

Jau įdiegei, bet nežinai, ką toliau? → Kaip naudotis kasdien

Parsisiųsti programas Kodas GitHub'e Hugging Face

Sukurta naudojant DI: paketą ruošė ir matavo Claude (Anthropic) kartu su Robertu, baneris sukurtas DI. Ingutė yra sintetinis balsas.

Kam tai

Kad telefonas skaitytų lietuviškai

Ingutė tampa telefono „Teksto į kalbą“ balsu. Ją naudoja programos, kurios moka skaityti garsiai: straipsnių ir knygų skaityklės, ekrano skaitytuvas.

Be interneto

Balsas veikia pačiame telefone. Internetas reikalingas tik vieną kartą — programai ir balsui parsisiųsti.

Nemokamai

Ir balsas, ir abi programos — nemokami, atviro kodo, be reklamų ir paskyrų.

Ką sutaiso

Dingstantį „s“

Telefono tarimo variklis eSpeak NG lietuvišką „s“ dažnai rašo kitu ženklu, kurio Ingutė beveik nemokyta. Be pataisos „pasiimk skėtį“ skamba kaip „paimk kėtį“. Pataisa yra faile tokens.txt.

Kirčius

Pats eSpeak NG kirtį į tą pačią vietą kaip žodynas deda tik 53 % daugiaskiemenių žodžių: dãbar, lãbai, Lietùvos. Su mūsų žodynu (lt_dict) — 99,3 %: dabar̃, labaĩ, Lietuvõs.

Lietuviškas kalbos atpažinimo modelis klausė 12 kasdienių sakinių. Žodžių klaidų: be pataisų 7,7 %, su „s“ pataisa 4,4 %, su kirčiais 1,1 %. Išbandyta Xiaomi 12T Pro, Android 15, SherpaTTS 3.4.

Kaip įdiegti (apie 5 min.)

Reikia Android 10 ar naujesnio (ausims — Android 12). Abu failai — leidime.

Balsas — „Ingutė“ (Ingute-1.0.apk, 151 MB)

  1. Parsisiųsk į telefoną Ingute-1.0.apk ir paspausk jį (naršyklėje arba failų tvarkyklėje, aplanke „Download“). Telefonas paklaus, ar leisti diegti iš šio šaltinio — leisk.
  2. „Įdiegti“. Atidaryti programos nereikia: Ingutė įsidiegia pati — su „s“ pataisa ir kirčių žodynu.
  3. Telefono nustatymai → „Teksto į kalbą išvestis“ → variklis Ingutė, kalba lietuvių → „Klausyti pavyzdžio“.

Ausys — „Parakeetype LT“ (Parakeetype-LT-0.5.0-lt2.apk, 59 MB)

  1. Parsisiųsk ir įdiek. Jei „Google Play Protect“ pasiūlys programą patikrinti, spausk „Patikrinti“, po to „Įdiegti“ (mums atsakė: „Atrodo, kad programa saugi“).
  2. Atidaryk, leisk mikrofoną, prie „Modelis neįdiegtas“ spausk „Įdiegti“.
  3. Kortelėje „Parakeet Lithuanian (Default)“: „Atsisiųsti naršyklėje“ (955 MB, geriau per Wi-Fi) → kai atsisiųs, „Importuoti modelio failą“ → parakeet-lt-kmynas-int8.zip. Po minutės — „Aktyvus modelis“; archyvą galima ištrinti.
  4. Pradžios ekrane prie „Klaviatūra neįgalinta“ → „Atidaryti nustatymus“ → įjunk Parakeetype. Android įspės, kad klaviatūra „gali rinkti viską, ką įvedate“ — taip rodoma kiekvienai klaviatūrai; ši interneto leidimo neturi, tad tekstas iš telefono neišeina → OK.
  5. Diktuok: bet kuriame teksto lauke Gboard'e ilgai laikyk 🌐 → „Parakeetype balso įvestis“, laikyk mikrofono mygtuką ir kalbėk.
Nustatymai „Синтез речи“: variklis Ingutė, kalba lietuvių Parakeetype LT modelių sąrašas lietuviškai: Parakeet Lithuanian (Default) pirmas ir pažymėtas Po importo kortelė rodo „Aktyvus modelis“, pranešimas „Modelis importuotas“ Užrašuose padiktuota: „Labas, tai yra lietuviškos ausys Android telefonui“

Abi programos pasirašytos mūsų raktu (sertifikato SHA-256 8679aa5f…afaf7f), failų sumos — SHA256SUMS.txt leidime. Programų ekranuose — lietuviškai, sistemos languose — rusiškai (tokia telefono kalba). Išbandyta Xiaomi 12T Pro, Android 15.

Pažengusiems: balsas per SherpaTTS iš F-Droid (be mūsų programos, apie 10 min.)
  1. Įsidiek SherpaTTS iš F-Droid — Google Play'uje jos nėra, ten paieška rodo kitas, reklamines programas. Failas: org.woheller69.ttsengine_34.apk (3.4, 91 MB). Tikroji programa vadinasi SherpaTTS, be reklamų.
  2. Parsisiųsk į telefoną iš leidimo du failus: lt_LT-ingute-medium.onnx ir tokens.txt.
  3. SherpaTTS → „INSTALL PIPER MODEL FROM SD“: kalbos kodas lit, pavadinimas Ingute, modelis ir tokens failai → OK.
  4. Telefono nustatymai → „Teksto į kalbą išvestis“ → variklis SherpaTTS, kalba lietuvių → „Klausyti pavyzdžio“.
SherpaTTS langelis „Install Piper Model from SD“: kalbos kodas lit, pavadinimas Ingute, failų pasirinkimo mygtukai SherpaTTS pagrindinis langas: kalba lit (Ingute), greitis 1,0 ir lietuviškas pavyzdinis sakinys

Ingutė jau kalba su „s“ pataisa. Kirčiams — dar vienas žingsnis per kompiuterį.

5. Kirčiai — per kompiuterį

Naujesni Android'ai neleidžia failų tvarkyklei rašyti į kitų programų aplankus, todėl lt_dict dedamas su Google adb. Telefone: Nustatymai → Apie telefoną → 7 kartus paspausk versijos numerį → kūrėjo nustatymuose įjunk „USB derinimas“ → prijunk laidu ir patvirtink.

Pirma patikrink, ar tavo SherpaTTS žodynas originalus (turi būti 5426503daf0a29836d0f168d38b38581; jei kitoks — nekeisk):

adb shell md5sum /sdcard/Android/data/org.woheller69.ttsengine/files/espeak-ng-data/lt_dict

Tada atsarga, naujas žodynas ir programos perkrovimas:

adb shell cp /sdcard/Android/data/org.woheller69.ttsengine/files/espeak-ng-data/lt_dict /sdcard/Android/data/org.woheller69.ttsengine/files/espeak-ng-data/lt_dict_orig
adb push lt_dict /sdcard/Android/data/org.woheller69.ttsengine/files/espeak-ng-data/lt_dict
adb shell am force-stop org.woheller69.ttsengine

Paklausyk: „Dabar labai gera diena, nes Lietuvos rinktinė laimėjo.“ Grąžinti — lt_dict_orig pervadinti atgal į lt_dict. Iš naujo įdiegus SherpaTTS, šį žingsnį reikia kartoti.

Ausys — diktavimas lietuviškai

Kalbi į telefoną lietuviškai, ir tekstas atsiranda bet kuriame teksto lauke. Tai daro atviro kodo balso klaviatūra Parakeetype (theScrabi): kalbą ji atpažįsta pačiame telefone ir interneto leidimo neturi. Jos numatytasis modelis lietuviškai girdi prastai, o mūsų archyvas parakeet-lt-kmynas-int8.zip (955 MB) duoda jai lietuviškas ausis. Mūsų „Parakeetype LT“ — ta pati programa, kurioje lietuviškas modelis pirmas ir numatytasis.

žodžių klaidų dalisFLEURS (986 sakiniai)trumpos komandos (127)
Parakeetype numatytasis modelis27,1 %80,4 %
su šiomis ausimis10,6 %17,0 %

Kaip įdiegti — aukščiau, „Parakeetype LT“. Kai Parakeetype autorius sujungs mūsų pasiūlymą theScrabi/Parakeetype#1, lietuvišką modelį siūlys ir F-Droid Parakeetype. Susikompiliuoti pačiam — README.

Tik lietuvių kalba; telefone užima apie 910 MB, reikia Android 12 ar naujesnio. Išbandyta Roberto telefone (Xiaomi 12T Pro, Android 15).

Kaip naudotis kasdien

Įdiegti dar nereiškia, kad telefonas pats pradės kalbėti ar klausyti. Čia — ką padaryti vieną kartą ir kaip paskui naudotis. Meniu pavadinimai telefonuose šiek tiek skiriasi, todėl paprasčiausia juos rasti nustatymų paieškoje. Ekranai — iš Xiaomi telefono rusiška kalba.

Kad telefonas skaitytų Ingutės balsu

  1. Ingutė — telefono balsas (vieną kartą). Nustatymų paieškoje įrašyk „teksto į kalbą“ (rusiškai „синтез“). Numatytasis variklis → Ingutė (arba SherpaTTS, jei diegei pažengusiųjų keliu; Android perspės, kad variklis „gali rinkti tekstą“ — taip rodo kiekvienam ne Google balsui; spausk OK). Kalba → lietuvių. Klausyti pavyzdžio — turi prabilti Ingutė.
  2. Kad perskaitytų bet kokį tekstą ekrane (vieną kartą). Nustatymų paieškoje įrašyk „Select to Speak“ (rusiškai „озвуч“ → „Озвучивание при нажатии“), įjunk jungiklį ir leisk matyti ekraną. Ekrano krašte atsiras mėlynas mygtukas.
  3. Kasdien: atsidaryk SMS, laišką ar straipsnį → paspausk mėlyną mygtuką → paliesk pastraipą, ir Ingutė ją perskaitys (▶ — visą ekraną, ■ — sustabdo).
Nustatymai „Синтез речи“: variklis SherpaTTS, kalba lietuvių „Озвучивание при нажатии“ (Select to Speak) su įjungimo jungikliu Po įjungimo ekrano dešinėje atsiranda mėlynas mygtukas

Kad telefonas rašytų, ką sakai (ausys)

  1. Atsidaryk vietą, kur rašai: SMS, užrašus, paiešką.
  2. Perjunk klaviatūrą į Parakeetype: Gboard'e ilgai laikyk 🌐 → „Parakeetype balso įvestis“.
  3. Laikyk mikrofono mygtuką ir kalbėk. Atleidus tekstas atsiranda; taškus, kablelius ir didžiąsias raides programa sudeda pati.
  4. Atgal į įprastą klaviatūrą — mažas klaviatūros ženkliukas dešinėje, virš Enter.

Nesiseka? Nebijok klausti. Atsidaryk bet kurį DI pokalbį (ChatGPT, Claude, Gemini) ir įklijuok: Perskaityk https://raw.githubusercontent.com/RobertasTa/android-lt/main/AI_CONSULTANT_BRIEF.md ir padėk man su Android LT. Tada parašyk, kas neišeina, ir pridėk ekrano nuotrauką — tas DI žino visus šiuos žingsnius ir kalbės su tavimi lietuviškai.

Privatumas — tiesiai

Tekstas ir garsas iš telefono neišeina: balsas ir ausys sukasi telefone. „Ingutė“ (kaip ir SherpaTTS) į internetą eina tik tada, kai pats spaudi siųstis kitą kalbą iš jos sąrašo — Ingutė jau viduje. „Parakeetype LT“ interneto leidimo neturi visai: modelio archyvą parsisiunčia naršyklė.

Ribos

Licencijos

Kitos mūsų dovanos

Skaityklė

Tekstas į mp3 kompiuteryje — taip pat Ingutės balsu, su mūsų kirčiais ir greičio slankikliu.

Diktuoklė

Atvirkščiai: kalbi lietuviškai, ir tekstas atsiranda bet kurioje kompiuterio programoje.

Ačiū

SherpaTTS (woheller69), sherpa-onnx (k2-fsa), eSpeak NG, Piper ir Michaelui Hansenui; LIEPA garsyno kūrėjams (Vilniaus universitetas) ir Arūnui Smaliukui; Parakeetype (theScrabi), Kristijonui Jakubsonui už lietuvišką Parakeet („kmynas“) ir NVIDIA už Parakeet.

Nesiseka? Įklijuok į bet kurį DI pokalbį: Perskaityk https://raw.githubusercontent.com/RobertasTa/android-lt/main/AI_CONSULTANT_BRIEF.md ir padėk man su Android LT. Klausimai — Issues.