Skip to main content

Push-to-talk transcription

Project description

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: Almost instant transcription, even on CPU when picking parakeet or canary.
  • 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.

  • 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
    • Transcription only
    • No automatic language recognition
    • Non-autoregressive — very fast inference
    • No capitalization in output
    • CPU/GPU (requires FlashAttention on 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
  • nvidia/canary-1b-v2:

    • 25 languages
    • Transcription and translation (bidirectional to/from English)
    • No automatic language recognition
    • CPU/GPU Still usable on CPU
  • nvidia/parakeet-tdt-0.6b-v3:

    • 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
  • Systran/faster-whisper:

    • Many languages
    • Transcription only

What I personally use currently?

- granite-speech-4.1-2b-nar sometimes with, but often without LLM correction

Installation

see https://docs.astral.sh/uv/ for more information on uv. uv is fast :)

From PyPi

  • As a pip package:

    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
    

From source

  1. Clone the repository:

    git clone https://github.com/blakkd/faster-whisper-hotkey
    cd faster-whisper-hotkey
    
  2. Install the package and dependencies:

    Note: Currently tested with Python 3.11.14.

  • as a pip package:

    uv pip install .
    
  • or as an uv tool:

    uv tool install .
    

For Nvidia GPU

FlashAttention is required for GPU inference with the granite-nar model. Building it from source can take a while, so you can grab pre-built wheels from https://mjunya.com/flash-attention-prebuild-wheels/

Usage

  1. 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
      
  2. Go through the menu steps.

  3. Once the model is loaded, focus on any text field.

  4. 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: requires FlashAttention on GPU. No punctuation or capitalization in output (by design of the non-autoregressive architecture). Use the autoregressive granite variant if you need punctuation.

  • 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 en as 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!

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-4.1 models
  • 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

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

faster_whisper_hotkey-0.5.3.tar.gz (49.4 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

faster_whisper_hotkey-0.5.3-py3-none-any.whl (28.4 kB view details)

Uploaded Python 3

File details

Details for the file faster_whisper_hotkey-0.5.3.tar.gz.

File metadata

  • Download URL: faster_whisper_hotkey-0.5.3.tar.gz
  • Upload date:
  • Size: 49.4 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.11.14

File hashes

Hashes for faster_whisper_hotkey-0.5.3.tar.gz
Algorithm Hash digest
SHA256 296e22bcb2e09dbdd5587a961fa787a3452ca80f18036b85536f9d8d8dc18252
MD5 6d5a6148b7f8f58fc366f6acb45b89b2
BLAKE2b-256 15e3165bca89b83e869560666dc4c81950d31d9dc1e54266d4e76e561767321b

See more details on using hashes here.

File details

Details for the file faster_whisper_hotkey-0.5.3-py3-none-any.whl.

File metadata

File hashes

Hashes for faster_whisper_hotkey-0.5.3-py3-none-any.whl
Algorithm Hash digest
SHA256 5891be5798a59254620e878f737c9e2ce594ef176b2d06a1b5d42da7293ba2a1
MD5 691cb1a0613cb4a06807ded09a722936
BLAKE2b-256 40d31f6045043e8fa49f9f37651244e2569407bd992c4037ebe34e3b9e79df60

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page