Přeskočit na obsah
Yappy Stáhnout
Jazyk: cs

část, kterou nikdo jiný neukazuje

Z psaného na mluvené.

Předčítání není hláskování: je to interpretace. „1492“ se řekne „tisíc čtyři sta devadesát dva“; „Jindřich VIII“ se řekne „Jindřich osmý“, ale „Louis XIV“ se ve francouzštině řekne „Louis quatorze“; „EL CID“ není římská číslice; FBI se hláskuje, NASA ne. Ještě před první syntetizovanou slabikou promění Yappy text ve čtecí scénář: partituuru toho, co hlas doopravdy řekne.

Scénárista

Vyzkoušej to tady: je to stejný Rust jako v aplikaci, zkompilovaný pro tvůj prohlížeč.

Tady se objeví scénář, převedené pasáže budou podtržené.

Dvanáct řemesel v jednom tahu.

Data

„24. 5. 1533“ se přečte celé, s pořadím a rodem, jaké má daný jazyk.

Čas

„14:05“ se řekne tak, jak by to řekl člověk, ne tak, jak to přečtou hodiny.

Částky

„3,50 €“ se řekne „tři eura padesát“, se skloňováním, které k číslu patří.

Procenta

„7 %“ se řekne „sedm procent“ a „0,5 %“ se nezvrhne v „nula celá pět“.

Jednotky

„230 °C“ se řekne „dvě stě třicet stupňů Celsia“.

Řadové číslovky

„3.“ se řekne „třetí“ – s rodem i pádem tam, kde je to potřeba.

Římské číslice s rozumem

„Strana XII“ se řekne „dvanáct“, „Karel IV.“ se řekne „Karel Čtvrtý“ a „El Cid“ není číslo.

Sigly podle fonotaktiky

FBI se hláskuje, NASA se čte. Pravidlo určuje zvuk, ne seznam.

Zkratky

„atd.“, „s.“, „19. stol.“: každý jazyk má svou tabulku.

Velká čísla

S gramatikami RBNF z Unicode CLDR, rod a skloňování včetně.

31 jazyků

Stejná pravidla, ale s gramatikou každého jazyka. Bez ručně psaných seznamů.

Rytmus

Nadpisy se po přečtení nadechnou; seznamy drží takt. Pauzy patří do scénáře, ne k náhodě.

Časté otázky

Co jsou gramatiky RBNF?
RBNF je zkratka pro Rule-Based Number Format: pravidla, kterými Unicode CLDR popisuje, jak se v jednotlivých jazycích čtou čísla. Není to tabulka na tisíc slov, ale gramatika. Proto ví, že španělština říká „doscientas páginas“ a ne „doscientos páginas“, že ruština skloňuje číslovky a že francouzština počítá do devadesáti dvacítkami. Yappy je interpretuje v čistém Rustu, bez ručně psaných seznamů.
Proč je potřeba scénárista? Nezvládne to samotný hlas?
Ne – a je to záměr. Hlasový model Yappy pracuje na úrovni znaků: vysloví přesně to, co mu přijde napsané. Díky tomu je rychlý a nenáročný, ale znamená to, že když dostane „1492“, zkusí říct právě to, písmeno po písmenu. V takovém modelu normalizace je výslovnost. Scénárista je ta součást, která každé číslo, každou zkratku a každý symbol převádí na slova, která by řekl člověk.
V kolika jazycích to funguje?
Ve všech 31 jazycích, které hlas umí, každý se svými pravidly: pořadí v datech, spojka u měn, řadové číslovky, zkratky a římské číslice. „Siglo XV“ je ve španělštině „siglo quince“, v angličtině „fifteenth century“; „Louis XIV“ je „Louis quatorze“ a ne „Louis fourteenth“. Stejných dvanáct úloh, třicet jedna gramatik.
Proč se karaoke vždy trefí přesně na slovo?
Protože skript není jen přepsaný text: uchovává mapu mezi tím, co je napsáno, a tím, co se vysloví. Když hlas řekne „tisíc čtyři sta devadesát dva“, skript ví, že ta čtyři slova pocházejí ze čtyř číslic „1492“, a podtržení se položí přesně na své místo, aniž by se cokoli posunulo. Jedna věc je text nasvítit, druhá ho luštit.
Nějaké slovo se vyslovuje špatně. Můžu ho opravit?
Uživatelský slovník výslovnosti zatím neexistuje. Model čte po znacích, takže nejrychlejší cesta je napsat slovo v editoru tak, jak se vyslovuje, a znovu si ho poslechnout. A pokud selhává obecný vzor (zkratka, akronym, jednotka), napiš o tom do issues na GitHubu: tabulky skriptovače rostou s takovými případy.
Je skriptovač na této stránce stejný jako v aplikaci?
Tentýž kód, zkompilovaný do WebAssembly, aby běžel ve tvém prohlížeči. Co tady napíšeš, neopustí tvou kartu. A protože je celý projekt otevřený, můžeš si pravidla projít jedno po druhém v repozitáři.

Scénář je polovina příběhu; druhou polovinu slyšíte.

Přehrát ukázku