Skoči na vsebino
Yappy Prenesi
Jezik: sl

del, ki ga nihče drug ne pokaže

Od napisanega do izgovorjenega.

Branje na glas ni črkovanje, ampak interpretacija. „1492“ se bere „tisoč štiristo dvaindevetdeset“; „Henrik VIII.“ se bere „Henrik osmi“, „Louis XIV“ pa se v francoščini bere „Louis quatorze“; „EL CID“ ni rimska številka; FBI se črkuje, NASA pa ne. Še preden sintetizira en sam zlog, Yappy besedilo pretvori v bralni scenarij: v partituro tega, kar bo glas zares povedal.

Scenarist

Preizkusi kar tukaj: to je isti Rust kot v aplikaciji, kompiliran za tvoj brskalnik.

Tukaj se bo pojavil scenarij, spremenjeno bo podčrtano.

Dvanajst obrti v enem zamahu.

Datumi

„24/5/1533“ se izgovori v celoti, z vrstnim redom in spolom posameznega jezika.

Ure

„14:05“ se pove, kot bi rekla oseba, ne kot bi ga prebrala ura.

Valute

„3,50 €“ se pove kot „trije evri in petdeset“, z množino, ki jo zahteva.

Odstotki

„7 %“ se izgovori „sedem odstotkov“, „0,5 %“ pa se ne spremeni v „nič celih pet“.

Enote

„230 °C“ se izgovori „dvesto trideset stopinj Celzija“.

Vrstilni števniki

„3.“ se izgovori „tretja“, s spolom in sklonom, kjer je treba.

Rimske številke z glavo

„XX. stoletje“ je glavni števnik, „Henrik VIII.“ je vrstilni števnik, „EL CID“ pa ni številka.

Kratice po fonotaktiki

FBI se črkuje, NASA pa se prebere. Pravilo določa zven, ne seznam.

Okrajšave

„itd.“, „str.“, „19. stol.“: vsak jezik ima svojo tabelo.

Velika števila

Z gramatikami RBNF iz Unicode CLDR, vključno s spolom in sklanjatvijo.

31 jezikov

Ista pravila, vsak jezik s svojo gramatiko. Brez ročno napisanih seznamov.

Ritem

Ko se naslov izgovori, si vzame odmor; seznami držijo takt. Premori so del scenarija, ne naključja.

Pogosta vprašanja

Kaj so gramatike RBNF?
RBNF je okrajšava za Rule-Based Number Format: pravila, s katerimi Unicode CLDR opisuje, kako se število izgovori v posameznem jeziku. Ni tabela tisoč besed, temveč gramatika: zato ve, da se v španščini reče „doscientas páginas“ in ne „doscientos páginas“, da ruščina sklanja števnike in da francoščina do devetdeset šteje po dvajsetih. Yappy jih interpretira v čistem Rustu, brez ročno napisanih seznamov.
Zakaj je potreben scenarist? Ali tega ne opravi že sam glas?
Ne, in to je namerno. Glasovni model Yappy deluje na ravni znakov: izgovori natanko tisto, kar dobi zapisano. Zato je hiter in lahek. A če dobi „1492“, bo poskusil povedati prav to, števko za števko. V takem modelu normalizacija je izgovorjava. Scenarist je kos, ki vsako številko, vsako kratico in vsak simbol spremeni v besede, ki bi jih povedal človek.
V koliko jezikih deluje?
V 31 jezikih, ki jih obvlada glas, vsak s svojimi pravili: vrstni red datumov, veznik pri valutah, vrstilni števniki, okrajšave in rimske številke. 15. stoletje se v španščini pove „siglo quince“, v angleščini pa „fifteenth century“; „Louis XIV“ je „Louis quatorze“ in ne „Louis fourteenth“. Ista dvanajst opravil, enaintrideset gramatik.
Zakaj karaoke vedno pade natančno na tisto besedo?
Ker skripta ni samo preoblikovano besedilo: hrani zemljevid med napisanim in izgovorjenim. Ko glas izgovori „tisoč štiristo dvaindevetdeset“, skripta ve, da so te tri besede nastale iz štirih števk zapisa „1492“, zato se podčrtanje usede čeznje brez zamika. Razlika je med tem, da besedilo osvetliš, in tem, da ga ugibaš.
Kakšna beseda se izgovori narobe. Jo lahko popravim?
Dandanes uporabniškega slovarja izgovorjave ni. Ker model bere znake, je najhitrejša pot: v urejevalniku zapiši besedo tako, kot se sliši, in jo poslušaj znova. Če pa odpove splošen vzorec (okrajšava, kratica, merska enota), to povej v temah na GitHubu: tabele skriptnika rastejo s takšnimi primeri.
Ali je skriptnik na tej strani isti kot v aplikaciji?
Ista koda, prevedena v WebAssembly, da teče v tvojem brskalniku. Kar napišeš tukaj, ne zapusti tvojega zavihka. Ker pa je celoten projekt odprt, lahko pravila prebereš eno po eno v skladišču.

Scenarij je polovica zgodbe; drugo polovico slišiš.

Poslušaj vzorec