Desktop application for Linux and Windows that utilizes distil-whisper models from HuggingFace, to enable real-time offline speech-to-text dictation.
Python
58
269 commits
updated Oct 16, 2025
Welcome to Speech-Assistant!
This is a project to implement an offline Personal PC assistant that combines AI-powered speech-to-text dictation and conversational voice interactions with Large Language Models.
This is a desktop application working on both Linux and Windows that provides GUI interfaces for both communicating with the assistant, and controlling speech detection. It also includes the functionality of a real-time, offline speech-to-text dictation (or translation) program. It uses the distil-whisper models from HuggingFace which offers an accurate transcription of speech that is fully structured, complete with proper punctuation and syntax. Distil-whisper is based on OpenAI's Whisper model that is 6 times faster, 49% smaller, and performs within 1% word error rate on speech it has never seen before. The research is based on this repo.
The speech-to-text assistant writes down spoken words directly to the keyboard cursor. To use it, hold down a hotkey combination of Windows key (Super) and Shift to begin, and let go to end the recording. Your speech will be transcribed (or translated) in real time and the transcription will be typed in for you at the keyboard cursor. The Whisper models are most effective transcribing a full sequence of speech rather than word-by-word, however, do check out nerd-dictation for the implementation of speech-to-text for the vosk models, also WhisperLive.
You can get started on any operating system you would like. The program was tested in Pop-os (Ubuntu 22.04), Windows 10 and 11. Here is Anaconda's installation instructions. If you are on Windows make sure to have access to the conda command using the Anaconda cmd terminal, or to source it directly. Nvidia and AMD have different packages needed to run Pytorch, please follow as appropriate to ensure smooth compatibility.
Install Ollama from here
Navigate to the speech-assistant repo using the terminal (using the Anaconda CMD on Windows).
Install dependencies. Please use the command for your corresponding GPU type and operating system. Depending on your internet connection, this will take ~5-15 minutes (Type y and press enter when asked to download packages).
Nvidia GPU:
conda env create -f env-cuda.yaml
AMD GPU or any CPU Integrated Graphics on Windows:
conda env create -f env-general-win.yaml
AMD GPU on Linux:
conda env create -f env-amd-linux.yaml
Activate the conda environment.
conda activate speech-assistant
Start running the program.
python main.py
The program is now ready to use!
(Optional) Pull the assistant model of your choice to use assistant capabilities, llama3 is recommended
ollama pull llama3:8b
The program will download the distil-whisper/distil-small.en model by default and cache it locally in a folder named 'model'. The model consumes ~600 MB of GPU memory, and to improve accuracy, you could choose a bigger model. You could change models in the Options menu. The available model choices are shown below.
| Model | Params / M | Rel. Latency | Short-Form WER | Long-Form WER |
|---|---|---|---|---|
| whisper-tiny.en | 39 | ~15 | ~15 | |
| distil-small.en | 166 | 5.6 | 12.1 | 12.8 |
| distil-medium.en | 394 | 6.8 | 11.1 | 12.4 |
| distil-large-v2 | 756 | 5.8 | 10.1 | 11.6 |
| whisper-large-v2 | 1550 | 1.0 | 9.1 | 11.7 |
| whisper-large-v3 | 1550 |
Please note that the distil models are currently English only, except for whisper-large, which supports transcription and translation capabilities of multiple languages.
options and checking Translate to Englishconda install ffmpeg -c pytorch.Distil-whisper paper:
Sound effect: soundsforyou on pixabay
User icon: iconpacks
Python
100.0%
Desktop application for Linux and Windows that utilizes distil-whisper models from HuggingFace, to enable real-time offline speech-to-text dictation.
Python
58
269 commits
updated Oct 16, 2025
Welcome to Speech-Assistant!
This is a project to implement an offline Personal PC assistant that combines AI-powered speech-to-text dictation and conversational voice interactions with Large Language Models.
This is a desktop application working on both Linux and Windows that provides GUI interfaces for both communicating with the assistant, and controlling speech detection. It also includes the functionality of a real-time, offline speech-to-text dictation (or translation) program. It uses the distil-whisper models from HuggingFace which offers an accurate transcription of speech that is fully structured, complete with proper punctuation and syntax. Distil-whisper is based on OpenAI's Whisper model that is 6 times faster, 49% smaller, and performs within 1% word error rate on speech it has never seen before. The research is based on this repo.
The speech-to-text assistant writes down spoken words directly to the keyboard cursor. To use it, hold down a hotkey combination of Windows key (Super) and Shift to begin, and let go to end the recording. Your speech will be transcribed (or translated) in real time and the transcription will be typed in for you at the keyboard cursor. The Whisper models are most effective transcribing a full sequence of speech rather than word-by-word, however, do check out nerd-dictation for the implementation of speech-to-text for the vosk models, also WhisperLive.
You can get started on any operating system you would like. The program was tested in Pop-os (Ubuntu 22.04), Windows 10 and 11. Here is Anaconda's installation instructions. If you are on Windows make sure to have access to the conda command using the Anaconda cmd terminal, or to source it directly. Nvidia and AMD have different packages needed to run Pytorch, please follow as appropriate to ensure smooth compatibility.
Install Ollama from here
Navigate to the speech-assistant repo using the terminal (using the Anaconda CMD on Windows).
Install dependencies. Please use the command for your corresponding GPU type and operating system. Depending on your internet connection, this will take ~5-15 minutes (Type y and press enter when asked to download packages).
Nvidia GPU:
conda env create -f env-cuda.yaml
AMD GPU or any CPU Integrated Graphics on Windows:
conda env create -f env-general-win.yaml
AMD GPU on Linux:
conda env create -f env-amd-linux.yaml
Activate the conda environment.
conda activate speech-assistant
Start running the program.
python main.py
The program is now ready to use!
(Optional) Pull the assistant model of your choice to use assistant capabilities, llama3 is recommended
ollama pull llama3:8b
The program will download the distil-whisper/distil-small.en model by default and cache it locally in a folder named 'model'. The model consumes ~600 MB of GPU memory, and to improve accuracy, you could choose a bigger model. You could change models in the Options menu. The available model choices are shown below.
| Model | Params / M | Rel. Latency | Short-Form WER | Long-Form WER |
|---|---|---|---|---|
| whisper-tiny.en | 39 | ~15 | ~15 | |
| distil-small.en | 166 | 5.6 | 12.1 | 12.8 |
| distil-medium.en | 394 | 6.8 | 11.1 | 12.4 |
| distil-large-v2 | 756 | 5.8 | 10.1 | 11.6 |
| whisper-large-v2 | 1550 | 1.0 | 9.1 | 11.7 |
| whisper-large-v3 | 1550 |
Please note that the distil models are currently English only, except for whisper-large, which supports transcription and translation capabilities of multiple languages.
options and checking Translate to Englishconda install ffmpeg -c pytorch.Distil-whisper paper:
Sound effect: soundsforyou on pixabay
User icon: iconpacks
Python
100.0%