faster-whisper Hotkey
a minimalist push-to-talk style transcription tool built upon cutting-edge ASR models.
Hold the hotkey, Speak, Release ==> And baamm in your text field!
In the terminal, in a text editor, or even in the text chat of your online video game, anywhere!
Features
- User-Friendly Interface: Allows users to set the input device, transcription model, compute type, device, and language directly through the menu.
- Fast: granite-speech-5.0-470m-turboctc-nc is currently the fastest, and you get almost instant transcription, even on CPU. parakeet-tdt-0.6b-v3 and canary-1b-v2 come pretty close behind.
- LLM correction (experimental): Optionally try to repair broken transcriptions text via any OpenAI-compatible API endpoint.
Current models
To help with choosing your model, you can see their AA-AgentTalk score which is particularly relevant for our use case.
-
- 30 languages
- Transcription only
- Automatic language recognition
- CPU/GPU (a bit slow on CPU, as always, very fast on GPU)
-
ibm-granite/granite-speech-4.1-2b:
- 6 source languages (en, de, es, fr, ja, pt)
- Transcription and translation (bidirectional to/from English, plus English→Italian and English→Mandarin)
- No automatic language recognition
- Autoregressive with punctuation and capitalization
- CPU/GPU
-
ibm-granite/granite-speech-4.1-2b-nar:
- 5 languages (en, de, es, fr, pt)
- Transcription only
- No automatic language recognition
- Non-autoregressive --> faster than the above AR variant
- No capitalization for proper nouns
- CPU/GPU
-
ibm-granite/granite-speech-5.0-470m-turboctc-nc:
- English only
- Transcription only
- Non-autoregressive --> very fast
- No capitalization or punctuation in output --> LLM-correction can be helpful
- CPU/GPU
-
CohereLabs/cohere-transcribe-03-2026:
- 14 languages
- Transcription only
- Officially, no automatic language recognition, but it still works pretty great
- Runs well on CPU
- Quite smart, deals well with hesitation and stutters
-
- 25 languages
- Transcription and translation (bidirectional to/from English)
- No automatic language recognition
- CPU/GPU Still usable on CPU
-
- 25 languages
- Transcription only
- Officially, no automatic language recognition, but it still works pretty great
- Crazy fast even on CPU
-
mistralai/Voxtral-Mini-3B-2507:
- 8 languages
- Transcription only
- Automatic language recognition
- Smart (it even guesses when to put some quotes, etc.) and seems less error-prone for non English native speakers
- GPU only
-
- Many languages
- Transcription only
- CPU/GPU
Installation
see https://docs.astral.sh/uv/ for more information on uv. uv is fast :)
Requires Python 3.11.14
From PyPi
-
As a pip package:
uv venv --python 3.11.14 source .venv/bin/activate uv pip install faster-whisper-hotkey -
or as an tool, so that you can run faster-whisper-hotkey from any venv:
uv tool install faster-whisper-hotkey --python=3.11.14
From source
-
Clone the repository:
git clone https://github.com/blakkd/faster-whisper-hotkey cd faster-whisper-hotkey -
Install the package and dependencies:
-
as a pip package:
uv venv --python 3.11.14 source .venv/bin/activate uv pip install . -
or as an uv tool:
uv tool install .
Usage
-
Run the tool using one of these methods:
-
If installed from PyPi or from source as a package/tool:
faster-whisper-hotkey -
Or using uv run (handles the venv and dependencies automatically):
cd faster-whisper-hotkey uv run faster-whisper-hotkey
-
-
Go through the menu steps.
-
Once the model is loaded, focus on any text field.
-
Then, simply press the hotkey (PAUSE, F4, F8 or INSERT) while you speak, release it when you're done, and see the magic happening!
When the script is running, you can forget it, the model will remain loaded, and it's ready to transcribe at any time.
Configuration File
The script automatically saves your settings to ~/.config/faster_whisper_hotkey/transcriber_settings.json.
Limitations
-
granite-nar: punctuation comes from the model, but capitalization is a post-processing pass (sentence starts + English "I"), so proper nouns like names stay lowercase.
-
granite-turboctc: no punctuation or capitalization in output (by design of the non-autoregressive architecture).
Use the autoregressive
granitevariant if you need full capitalization, or the LLM correction option to fix proper nouns. -
Using window type detection to send appropriate key strokes, we unfortunately can't see "sub windows". So for example, the VSCodium/VSCode terminal isn't supported for now. No clue if we can workaround this.
-
Windows supported is not planned. That said, you can use eutychius's branch which seems working fine. See this comment for instructions.
Tips
- If you you pick a multilingual faster-whisper model, and select
enas source while speaking another language it will be translated to English, provided you speak for at least few seconds. - If you pick parakeet-tdt-0.6b-v3, you can even use multiple languages during your recording!
- For models whose weights are natively bfloat16 (the precision menu marks the native one), you can still pick float32: it upcasts the weights, which costs extra memory, but is far faster on CPUs without good native bf16 support. If your transcriptions are slow, try float32.
Acknowledgements
Many thanks to:
- the developers of faster-whisper for providing such an efficient transcription inference engine
- NVIDIA for their blazing fast parakeet and canary models
- Mistral for their impressively accurate model Voxtral-Mini-3B model
- Cohere for their cohere-transcribe-03-2026 model
- IBM for their granite-speech models
- Qwen for their Qwen3-ASR-1.7B model
- and to all the contributors of the libraries I used
Also thanks to wgabrys88 and MohamedRashadthat for their huggingface spaces that have been helpful!
And to finish, a special mention to @siddhpant for their useful broo tool, who gave me a mic <3
Metadata
Release files for faster-whisper-hotkey 0.7.2
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| faster_whisper_hotkey-0.7.2.tar.gz | 69.5 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| faster_whisper_hotkey-0.7.2-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 107.3 kB
Release files / faster_whisper_hotkey-0.7.2.tar.gz
| Download URL | faster_whisper_hotkey-0.7.2.tar.gz |
|---|---|
| Size | 69.5 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
602acc3d547ae7be06f94f687b25701a09eed646fdf33ff1f4547394b596931d
|
|
BLAKE2b-256 checksum How to use checksums |
3541b4af3f4e37eff3c590cb39311a467c9c4d018976999843ce8704cfb94723
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/7.0.0 CPython/3.13.12
|
Release files / faster_whisper_hotkey-0.7.2-py3-none-any.whl
| Download URL | faster_whisper_hotkey-0.7.2-py3-none-any.whl |
|---|---|
| Size | 37.8 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
f764137adbfcf4a748ea5aa6eb85afa78c1e9564dcdaa350ef6fdddef0246364
|
|
BLAKE2b-256 checksum How to use checksums |
a8ffee10e605c04ffb2f70e0b34bcdb68a8ff779402d9d513fa4d2b77597d739
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/7.0.0 CPython/3.13.12
|