Added in v0.18.0
Multilingual dictation on Linux
Per-language shortcuts and Follow keyboard layout arrived in v0.18.0. If you write in more than one language, Vocalinux gives you three ways to get the right one each time: auto-detect per utterance, a separate shortcut per language, or following whichever keyboard layout you are typing with. This page covers each, which engines support them, and where they fall short. For a per-language view of engine support, see the languages page.
Auto-detect
The engine guesses the language for each utterance. Easiest to set up, but short clips can be guessed wrong.
Language shortcuts
A dedicated key per language. Explicit and reliable, for one dictation at a time.
Follow keyboard layout
Switch layout to switch dictation language. Best on GNOME, where the active layout can be read.
Choosing a main language
Settings → Speech Model opens with a simple Language group. Pick your Main language from the searchable list. Turning on Other languages makes the engine guess the language each time; the optional Other language picker just records which one you had in mind, because Whisper-family engines take a single language or none. On first run, Vocalinux seeds the language from your keyboard layout and locale (since v0.17.0).
Picking a language other than English switches off an English-only model. From the command line, --language accepts auto or any catalog code below.
Per-language dictation shortcuts
- 1
Use a multilingual model
In Settings → Speech Model, pick a language other than English or a multilingual model. English-only models, the ones with .en in the name, cannot switch language.
- 2
Add a language shortcut
Open Settings → Dictation, find Language Shortcuts and click Add Language Shortcut.
- 3
Pick the language and record a key
Choose the language in the new row, click Record and press a modifier plus a key such as ctrl+alt+d, or a function key such as f10.
- 4
Dictate with it
Press the language shortcut instead of your main one. It follows the shortcut mode above it, so hold it for push-to-talk or press it to toggle. Your main language comes back after that dictation.
Bindings take effect immediately. A binding can also point at Auto-detect. If two rows use the same key, the first one wins. More on shortcut syntax and modes is on the shortcuts page.
Following the keyboard layout
Expand Advanced on the Speech Model page and turn on Follow keyboard layout. Vocalinux then re-reads the active layout at the start of every dictation and uses the matching language. The Language picker greys out and shows what the current layout resolves to; turning the switch off pins that language.
- Available for whisper.cpp, Whisper and Faster Whisper with a multilingual model, and for the Remote API.
- The active layout is read from GNOME's input-source settings. Some IBus input methods map too, for example Mozc and Anthy to Japanese, Pinyin and Rime to Chinese, and Hangul to Korean.
- On other desktops Vocalinux uses the configured primary layout, which does not follow your switches. A layout with no catalog language falls back to auto-detect.
- A language shortcut wins over the layout for that one dictation.
The settings in config.json
Settings writes these to ~/.config/vocalinux/config.json. The value "layout" is how Follow keyboard layout is stored:
{
"speech_recognition": {
"language": "layout"
},
"shortcuts": {
"language_shortcuts": [
{ "shortcut": "ctrl+alt+d", "language": "de" },
{ "shortcut": "f10", "language": "fr" }
]
}
}On whisper.cpp, Settings → Advanced (after Unlock Advanced Settings) also has Language Candidates: a comma-separated list such as en,es that restricts auto-detect to those languages. Leave it blank to consider all languages.
Engine caveats
| Engine | Language picker | Follow layout | Language shortcuts | Notes |
|---|---|---|---|---|
| whisper.cpp (default) | Full catalog | Yes | Yes | Needs a multilingual model, not a .en one. Also offers Language Candidates. |
| Whisper, Faster Whisper | Full catalog | Yes | Yes | Needs a multilingual model. |
| Remote API | Full catalog | Yes | Yes | The language is sent with each request to the server you configured. |
| VOSK | Languages with an official model | No | No | One model per language, so switching means a model reload. |
| Parakeet | Not used | No | No | Language comes from the model: v3-european or v2-english. |
VOSK lists only languages that have an official Alphacephei model, 21 of the 33. Parakeet's v3-european model covers 25 European languages and ignores the picker; see Parakeet on Linux. For Whisper model sizes, see the Whisper model guide. The Remote API sends your audio to the endpoint you configured; details are on the Remote API page.
The language catalog
33 languages plus Auto-detect, shared by Settings, language shortcuts and the CLI. Slovenian was added in v0.18.4.
| Language | Code | VOSK model |
|---|---|---|
| English (US) | en-us | Yes |
| English (India) | en-in | Yes |
| Arabic | ar | Yes |
| Bengali | bn | No (Whisper-family only) |
| Catalan | ca | Yes |
| Chinese | zh | Yes |
| Czech | cs | Yes |
| Danish | da | No (Whisper-family only) |
| Dutch | nl | Yes |
| Finnish | fi | No (Whisper-family only) |
| French | fr | Yes |
| German | de | Yes |
| Greek | el | No (Whisper-family only) |
| Hebrew | he | No (Whisper-family only) |
| Hindi | hi | Yes |
| Hungarian | hu | No (Whisper-family only) |
| Indonesian | id | No (Whisper-family only) |
| Italian | it | Yes |
| Japanese | ja | Yes |
| Korean | ko | Yes |
| Norwegian | no | No (Whisper-family only) |
| Persian | fa | Yes |
| Polish | pl | Yes |
| Portuguese | pt | Yes |
| Romanian | ro | No (Whisper-family only) |
| Russian | ru | Yes |
| Slovenian | sl | No (Whisper-family only) |
| Spanish | es | Yes |
| Swedish | sv | Yes |
| Tamil | ta | No (Whisper-family only) |
| Thai | th | No (Whisper-family only) |
| Turkish | tr | Yes |
| Ukrainian | uk | Yes |
| Vietnamese | vi | Yes |
FAQ
How many languages does Vocalinux support?
The language catalog has 33 languages plus Auto-detect. English appears twice, as English (US) and English (India), so the list has 34 entries. Slovenian was added in v0.18.4.
Can Vocalinux switch language in the middle of a sentence?
No. Whisper-family engines take one language per dictation, or detect it once per utterance on Auto-detect. For mixed-language work, use Follow keyboard layout or a language shortcut so each dictation starts in the right language.
Follow keyboard layout always picks the same language. Why?
Reading the active layout uses GNOME's input-source settings. On other desktops Vocalinux falls back to the configured primary layout, which does not change when you switch. A layout that maps to no catalog language falls back to auto-detect.
My language shortcut plays an error sound. What is wrong?
The loaded model cannot dictate in that language without a reload: an English-only Whisper model, a VOSK model for another language, or Parakeet. Vocalinux refuses rather than dictating in the wrong language. Choose a multilingual Whisper-family model.
Do voice commands work in other languages?
Punctuation and line-break phrases also match in Italian, French, German, Spanish, Portuguese, Dutch, Polish and Russian. Editing commands such as delete that and undo are English-only.
Dictate in your languages
Install Vocalinux, keep the default whisper.cpp engine with a multilingual model, and add a shortcut for each language you write in. Names and jargon in any language can go in the custom dictionary.