the piece nobody else shows
From written to spoken.
Reading aloud is not spelling out: it is interpreting. “1492” is said “fourteen ninety-two”; “Henry VIII” is said “Henry the Eighth”, but “Louis XIV” in French is “Louis quatorze”; “EL CID” is not a Roman numeral; the FBI is spelled out and NASA is not. Before synthesising a single syllable, Yappy turns the text into a reading script: the score of what the voice is actually going to say.
Try it right here: this is the same Rust that runs in the app, compiled for your browser.
The script will appear here, with the rewritten parts highlighted.
Twelve jobs in a single pass.
Dates
“24/5/1533” is said in full, in the order and gender each language uses.
Times
“14:05” is said the way a person would say it, not the way a clock displays it.
Currencies
“$3.50” is said “three dollars fifty”, with the right plural.
Percentages
“7%” is said “seven per cent”, and “0.5%” does not become “zero point five”.
Units
“230 °C” is said “two hundred and thirty degrees Celsius”.
Ordinals
“3rd” is said “third”, with the gender and declension where a language has them.
Roman numerals, with judgement
“20th century” is cardinal, “Henry VIII” is ordinal, and “EL CID” is not a number at all.
Acronyms by phonotactics
The FBI is spelled out; NASA is read. The rule follows how it sounds, not a hand-written list.
Abbreviations
“etc.”, “p.”, “Dr.”: every language has its own table.
Large numbers
Using the RBNF grammars of Unicode CLDR, gender and declension included.
31 languages
The same rules with each language's grammar. No hand-written lists.
The rhythm
Headings breathe after they are said; lists keep their beat. The pauses are part of the script, not of chance.