Puki Beak (English)

Puki's English reading model: English text to the IPA phonemes his voice (BlueTTS, with text_is_phonemes) was trained on, espeak-ng's en-us reading with stress, so it can speak English on a tablet with no espeak. Part of Puki, a free Hebrew/English game for toddlers.

Two parts:

  • A table (words.tsv): 30,486 words as espeak-ng reads them: the commonest English words, and every word in Puki's English lines as espeak reads it inside those lines, so the small words come out weak ("a" ɐ, "to" tə, "I" aɪ), as in a sentence.
  • A reader (reader_int8.onnx) for the words the table doesn't have, like a child's name: a small bidirectional transformer (2.7M parameters: 6 layers, width 192) over the letters. English letters and sounds don't line up one to one ("th", "ough", a silent e), so each letter gets three output slots and CTC learns which stay empty; reading is one forward pass, then dropping repeats and blanks.

Trained (train/en_label.py, train/en_read_train.py in Puki's repo) on the 200,000 commonest words of 400,000 documents of FineWeb-Edu (ODC-By 1.0), labelled by espeak-ng; espeak-ng itself is not part of this model.

Unseen words (3,000, mostly rare) read exactly as espeak-ng 88.3% (int8)
Puki's lines (300) read exactly as espeak-ng reads the whole line 253 (84%); 98% of words

The differences left are mostly two words run together (espeak writes "in the" as one, ɪnðə).

Files: reader_int8.onnx (input ids: 1, then one id per letter (letters index + 2), then 1; output logp: three slots per id, log-probabilities over symbols, blank first), symbols.json (letters, slots, max_letters, symbols), words.tsv (word, tab, IPA). 2.9 MB + 0.7 MB.

Downloads last month

-

Downloads are not tracked for this model. How to track
Inference Providers NEW
This model isn't deployed by any Inference Provider. 🙋 Ask for provider support