Skip to content
WM KeyboardWM Keyboard
Accessibility

Offline voice (Vosk)

Small offline dictation models for 29 languages, about 40 MB each, with words that appear while you speak: Alpha Cephei's Vosk on your phone.

Offline Vosk runs Vosk, Alpha Cephei’s speech recognizer built on the Kaldi toolkit, on your phone. Its small models are made for phones: most are about 40 MB, load in a second or two and run on older hardware. They decode while you speak, so the words go into the field as you say them. Each language has its own model, 32 in all for 29 languages. Once a model is downloaded, no audio leaves the phone. A language with no model on the phone uses the system recognizer instead.

WM Keyboard  Voice typing
  1. Add Vosk to the Recognition engine list and move it to the top, or pick it for one language under Engine for each language.
  2. Press Vosk on the list to open its screen, which holds the Vosk models group. The first time, a banner offers the Vosk library itself: a one-time download of about 10 MB (arm64), from Google Play on the Play build and from Maven Central on the GitHub build; the offline build carries it already.
  3. Download the model for each language you dictate in. Each one is a zip from alphacephei.com, checked against a SHA-256 built into the app before it is unpacked on the phone. On mobile data it asks first.
ModelLanguageDownloadLicence
Vosk English (US)English41 MBApache-2.0
Vosk English (UK)English43 MBApache-2.0
Vosk English (India)English38 MBApache-2.0
Vosk ArabicArabic104 MBApache-2.0
Vosk Arabic (Tunisian)Tunisian Arabic166 MBApache-2.0
Vosk CatalanCatalan43 MBApache-2.0
Vosk ChineseMandarin44 MBApache-2.0
Vosk CzechCzech46 MBMIT
Vosk DutchDutch40 MBApache-2.0
Vosk EsperantoEsperanto44 MBApache-2.0
Vosk FrenchFrench42 MBApache-2.0
Vosk GeorgianGeorgian46 MBApache-2.0
Vosk GermanGerman46 MBApache-2.0
Vosk GujaratiGujarati108 MBApache-2.0
Vosk HindiHindi44 MBApache-2.0
Vosk ItalianItalian50 MBApache-2.0
Vosk JapaneseJapanese50 MBApache-2.0
Vosk KazakhKazakh60 MBApache-2.0
Vosk KoreanKorean87 MBApache-2.0
Vosk KyrgyzKyrgyz51 MBApache-2.0
Vosk PersianPersian53 MBApache-2.0
Vosk PolishPolish53 MBApache-2.0
Vosk PortuguesePortuguese32 MBApache-2.0
Vosk RussianRussian46 MBApache-2.0
Vosk SpanishSpanish40 MBApache-2.0
Vosk SwedishSwedish304 MBMIT
Vosk TajikTajik52 MBApache-2.0
Vosk TeluguTelugu61 MBApache-2.0
Vosk TurkishTurkish37 MBApache-2.0
Vosk UkrainianUkrainian144 MBApache-2.0
Vosk UzbekUzbek51 MBApache-2.0
Vosk VietnameseVietnamese34 MBApache-2.0

These are the small models from Alpha Cephei’s list. The large server models (1 to 2 GB each) are left out: they need several gigabytes of memory, which a phone keyboard cannot spare. Unpacked, a model takes a little more room than its download.

While you speak, the words go into the field as underlined composing text, rewritten as they grow, and the line under the microphone shows them too. When the phrase ends, the finished text replaces them and goes through the same spacing, spoken punctuation, casing and undo as any other dictation (see Voice typing).

Where a phrase ends. Vosk splits what it hears at its own short pauses, but those only divide the phrase; they never end it. The phrase ends after the pause set in Stop after a pause, heard by the phrase end detector you picked, the same as for Asr4All. Vosk models carry no Silero, so Auto uses loudness until ONNX Runtime and a Silero copy are on the phone. With the setting off, the phrase runs until you press the microphone or two minutes pass.

Which model. When two downloaded models know the language, the larger one dictates, except that the American English model is used over the British and Indian ones and the Arabic model over the Tunisian one. The model list marks each one in use, and Engine for each language can pin a language to a particular model.

Punctuation. Vosk writes lower-case words with no punctuation. With Add punctuation and capitals on, the default, a finished phrase gets full stops, commas, question marks and sentence capitals from the punctuation model for 88 languages, once that is downloaded. The Chinese and Japanese models put a space between words, which those languages do not write, so the spaces between their characters are taken out.

Vosk is the light one. Its models are a fraction of the size of Whisper’s or Parakeet’s and need far less memory, so it suits an older or low-memory phone, and it streams words while you speak in many languages the other streaming engines lack: Catalan, Czech, Dutch, Esperanto, Georgian, Gujarati, Hindi, Italian, Kazakh, Kyrgyz, Persian, Polish, Portuguese, Swedish, Tajik, Telugu, Turkish, Ukrainian and Uzbek. Whisper and Parakeet are more accurate when the phone can run them. Where Sherpa has a model for your language, its Zipformers are usually more accurate than Vosk’s small models too. Alpha Cephei’s own tests put most small models at 10 to 30% of words wrong; the Telugu model is far weaker, with most words wrong on its test set.

Words to listen for. Vosk does not take them. Its small models can be told a fixed list of phrases to choose from, which suits voice commands, not dictation, so the Words to listen for group stays hidden while Vosk is the engine.

Several languages at once. Each Vosk model knows one language, so a dictation that listens for more than one at a time cannot run on Vosk. The panel asks for a model, or another engine takes it.

Not in the F-Droid build. The Vosk library is Alpha Cephei’s prebuilt binary, and F-Droid builds everything it ships from source, so the F-Droid build leaves Vosk out.

Where the library comes from. The app never carries a rebuilt copy of the Vosk library. The Play build gets it from Play, the offline build carries Alpha Cephei’s own file inside the APK, and the GitHub build reads Alpha Cephei’s file straight out of their vosk-android package on Maven Central, checked against a SHA-256 built into the app. An 8 KB bridge of the keyboard’s own talks to it. See Network activity.

The licences. Vosk is Apache-2.0, built on Kaldi and OpenFst (both Apache-2.0). The models are Apache-2.0, apart from the Czech and Swedish ones, repackaged from the Rhasspy project under MIT. All of them are credited in the app’s About screen.