Skip to content
WM KeyboardWM Keyboard
Accessibility

Read back and offline voices

Hear what you typed, read aloud in the keyboard's language, with Kokoro's natural voices for English and Mandarin and Meta's MMS voices in more than a thousand languages, offline.

Read back reads your text aloud. With something selected it reads the selection; with nothing selected it reads everything in the field, up to about 4,000 characters. It reads in the keyboard’s current language, so switching to Bangla and tapping it reads Bangla. Tap it again while it reads to stop. The tool stays lit while it is reading. It never reads a password field.

Add it from the toolbox like any other tool. It sits in the Create and convert group on the Tools screen, and its page there is WM Keyboard  Tools  Read back.

WM Keyboard  Tools  Read back  Kokoro offers Kokoro, a small open speech model (Apache-2.0) that reads English and Mandarin in voices close to a person’s. It is one download of 132 MB, about 160 MB once unpacked, that holds every voice: 20 American English, 8 British English and 8 Mandarin. With it downloaded, it reads those languages ahead of the MMS voices below and the phone’s own voice; other languages carry on as before.

Once it is here, the group shows a row of voices for each language. Tap a name to pick it; each is marked female or male. British English reads keyboards set to the UK, Ireland, Australia, New Zealand, South Africa or India, and American English the rest.

The download is sherpa-onnx’s packaging of Kokoro v1.0, checked against its SHA-256 and resumed if it stops. It runs on the same ONNX Runtime as the MMS voices, so the GitHub and Play builds fetch that first if it is not on the phone yet. Swipe or tap the bin to delete it; it also shows under WM Keyboard  Storage  Voice models.

Kokoro reads from pronunciation dictionaries, and a word missing from them, such as an unusual name, is skipped. Before it reads English, the keyboard spells out numbers (“$12.50” becomes “twelve dollars fifty cents”, “3rd” becomes “third”) and splits words run together in camel case. Making a sentence takes about as long as saying it on a recent phone, and longer on an older one. The model holds a few hundred megabytes of memory while it reads, and the keyboard unloads it with its other models when it has been hidden for 2 minutes.

The phone’s own text-to-speech voice reads by default. Many phones have no voice for smaller languages at all, and that is what the offline voices are for: Meta’s MMS-TTS voices, one per language, for more than 1,100 languages. A downloaded voice reads its language on the phone, with no connection.

WM Keyboard  Tools  Read back  Offline voices lists a voice for each of your keyboard languages that has one, with a Download button. Each voice is about 114 MB. Languages with no MMS voice are named under the list; the phone’s voice keeps reading those.

  1. The first download asks you to accept the voices’ licence, Creative Commons Attribution-NonCommercial 4.0: free to use, not for commercial purposes. The voices come from Hugging Face under that licence, not from the keyboard, so you agree to it once, before anything downloads.
  2. On the GitHub and Play builds a banner offers ONNX Runtime first, the engine the voices run on, a one-time download of about 33 MB that Offline Sherpa uses too. The offline build carries it already. The F-Droid build asks you to turn on Download feature libraries first.
  3. Download the voices you want. Each file comes from a fixed revision of the ONNX conversion of Meta’s models and is checked against its SHA-256 before it is used. A download that stops resumes where it left off.

Swipe a downloaded voice’s row, or tap its bin, to delete it. The voices also show under WM Keyboard  Storage  Voice models.

Once a language’s voice is downloaded, it reads that language everywhere the keyboard speaks:

  • Read back.
  • The speaker button on vocabulary cards, when there is no recording to play.
  • The speaker button on the Look up card, in the dictionary’s language.
  • Speak in selection actions, for Bengali and Devanagari text and for text in the phone’s own language.

A recording, when a card has one, still plays first. The speech rate is the one under WM Keyboard  Tools  Vocabulary; MMS voices have no pitch setting, so the pitch slider only changes the phone’s voice.

MMS voices read letters, not phonemes, and they were trained on Bible readings, so they sound clear but plain, a little like someone reading a passage aloud. They read words as written: digits and symbols the voice has no letter for are skipped, so in most languages “3 kg” comes out as “kg”. Each sentence is made while the one before it plays, so a long text starts once the first sentence is ready. Making speech is heavy work: a second of speech takes about a second of one fast processor core, so on a phone expect a pause of a second or so before the first sentence, and on a slower phone short gaps between sentences.

Voices that need Meta’s romaniser, which spells a language in Latin letters before it is read, are not offered; for those languages the phone’s voice reads.

Reading happens on the phone. A downloaded voice sends nothing anywhere. The phone’s own voice is whatever text-to-speech engine you picked in Android’s settings, and some of those engines use the network.

Read back is the Read back bundle on Extensions. Off there, the tool leaves the toolbar, the toolbox and the Tools list until the bundle is switched back on; downloaded voices stay.