Dictation

Dictation can be used to let users enter text by speaking instead of typing. This can be hard to do in a keyboard extension where microphone access is unavailable, but KeyboardKit makes it easy.

Dictation

KeyboardKit has dictation-related types and views, like the observable DictationContext, auto-persisted DictationSettings, DictationService implementations, etc.

With dictation enabled, KeyboardKit will automatically open the main app from the keyboard to start dictation, then return to the keyboard to perform dictation:

Dictation Services

KeyboardKit Pro unlocks a StandardDictationService that can open the main application, start dictation, then return to the keyboard if the host application is known to it.

The standard dictation service uses on-device capabilities provided by Apple to support these languages:

English (Ireland) (en-IE), German (Austria) (de-AT), Croatian (Croatia) (hr-HR), French (France) (fr-FR), English (Singapore) (en-SG), Swedish (Sweden) (sv-SE), English (India) (en-IN), English (United Kingdom) (en-GB), Danish (Denmark) (da-DK), Dutch (Netherlands) (nl-NL), Norwegian Bokmål (Norway) (nb-NO), Spanish (Colombia) (es-CO), Portuguese (Brazil) (pt-BR), English (New Zealand) (en-NZ), Romanian (Romania) (ro-RO), Spanish (Spain) (es-ES), English (United Arab Emirates) (en-AE), Chinese (China mainland) (zh-CN), Dutch (Belgium) (nl-BE), Spanish (Chile) (es-CL), Slovak (Slovakia) (sk-SK), Spanish (United States) (es-US), Cantonese (China mainland) (yue-CN), Chinese (Hong Kong) (zh-HK), Hebrew (Israel) (he-IL), French (Switzerland) (fr-CH), Greek (Greece) (el-GR), German (Switzerland) (de-CH), Malay (Malaysia) (ms-MY), French (Belgium) (fr-BE), Japanese (Japan) (ja-JP), English (Canada) (en-CA), Spanish (Latin America) (es-419), English (Australia) (en-AU), English (Indonesia) (en-ID), Spanish (Mexico) (es-MX), Italian (Italy) (it-IT), Chinese (Taiwan) (zh-TW), Finnish (Finland) (fi-FI), German (Germany) (de-DE), Arabic (Saudi Arabia) (ar-SA), English (Saudi Arabia) (en-SA), English (United States) (en-US), English (Philippines) (en-PH), (hi-IN-translit), Czech (Czechia) (cs-CZ), Indonesian (Indonesia) (id-ID), Italian (Switzerland) (it-CH), Portuguese (Portugal) (pt-PT), Catalan (Spain) (ca-ES), Russian (Russia) (ru-RU), Korean (South Korea) (ko-KR), Hindi (India) (hi-IN), Ukrainian (Ukraine) (uk-UA), Vietnamese (Vietnam) (vi-VN), Polish (Poland) (pl-PL), English (South Africa) (en-ZA), Hungarian (Hungary) (hu-HU), French (Canada) (fr-CA), Turkish (Türkiye) (tr-TR), Shanghainese (China mainland) (wuu-CN), Thai (Thailand) (th-TH)

This list is provided by Apple’s on-device tools, but we have found its capabilities lacking for some languages in this list, and that operating system updates may break previously working langauges.

To support more languages, you can subclass and customize StandardDictationService, implement DictationService from scratch, or use KeyboardKitDictationPlugin for more functionality.

Documentation

The information on this page has been shortened to be easier to overview and keep up to date. For a complete feature description, see the online documentation.