Cross-platform voice-to-text typing assistant with GPU acceleration and automatic CPU fallback
Project description
STT Type v1.0.0
Python based STT module running on GPU.
Hold F2 to record your voice, release to transcribe and type the text automatically at your cursor position.
Features
- Cross-platform - Works on Windows, Linux, and macOS
- Hold F2 to record - Audio captures while key is held
- Visual indicator - Semi-transparent red dot with "F2" label appears in top-right corner while recording
- Bell sounds - Audio feedback when recording starts/stops
- GPU-accelerated STT - Uses faster-whisper on your NVIDIA GPU
- Auto-typing - Transcribed text is typed at cursor position
- System tray mode - Runs silently in background
- Auto-startup - Starts automatically on login
Requirements
- Python 3.9+
- NVIDIA GPU with CUDA support (for GPU mode)
- Microphone
Installation
Prerequisites
Install PyTorch with CUDA support:
# Windows/Linux
pip install torch torchaudio --index-url https://download.pytorch.org/whl/cu118
# macOS (CPU only, no CUDA)
pip install torch torchaudio
Windows
cd "E:\Lucas\STT Type"
.\install.ps1
Then restart PowerShell.
Linux
cd /path/to/stttype
chmod +x install.sh
./install.sh
If sounddevice fails, install PortAudio:
# Debian/Ubuntu
sudo apt-get install portaudio19-dev
# Fedora
sudo dnf install portaudio-devel
# Arch
sudo pacman -S portaudio
macOS
cd /path/to/stttype
chmod +x install.sh
./install.sh
If sounddevice fails, install PortAudio:
brew install portaudio
Note: On macOS, you need to grant Accessibility permissions for pynput to capture global hotkeys. Go to System Settings > Privacy & Security > Accessibility and add your terminal application.
Commands
Once installed, stttype works from any terminal.
| Command | Description |
|---|---|
stttype --start |
Start STT Type in background |
stttype --shutdown |
Stop all STT Type processes |
stttype --status |
Check if STT Type is running |
stttype --restart |
Restart STT Type |
stttype --addtostartup |
Add to startup |
stttype --rmtostartup |
Remove from startup |
stttype --model <size> |
Set Whisper model (tiny/base/small/medium/large-v3) |
stttype --lang <code> |
Set language (en/zh/auto/etc) |
stttype --help |
Show help |
Examples
# Start with default settings
stttype --start
# Start with a larger model for better accuracy
stttype --start --model small
# Start with Chinese language
stttype --start --lang zh
# Start with small model and auto-detect language
stttype --start --model small --lang auto
How It Works
- Hold F2 - A semi-transparent red dot with "F2" appears in the top-right corner, microphone starts recording
- Release F2 - Red dot disappears, recording stops
- GPU transcribes - Whisper processes audio on your NVIDIA GPU
- Text is typed - Result appears at your cursor position
Models
| Model | Size | VRAM | Speed | Accuracy |
|---|---|---|---|---|
tiny |
39 MB | ~1 GB | Fastest | Basic |
base |
74 MB | ~1 GB | Fast | Good |
small |
244 MB | ~2 GB | Medium | Better |
medium |
769 MB | ~5 GB | Slower | Best |
large-v3 |
1550 MB | ~10 GB | Slowest | Excellent |
Default is base - a good balance of speed and accuracy.
Uninstall
Windows
cd "E:\Lucas\STT Type"
.\uninstall.ps1
Linux/macOS
cd /path/to/stttype
chmod +x uninstall.sh
./uninstall.sh
Troubleshooting
| Issue | Solution |
|---|---|
stttype not found |
Restart terminal after installation |
| "CUDA not available" | Install NVIDIA drivers and CUDA toolkit |
| No sound on start/stop | Check system volume |
| Text not typing | Make sure the target window is focused |
| Model download fails | Check internet connection |
| Hotkeys don't work (macOS) | Grant Accessibility permissions to your terminal |
| Hotkeys don't work (Linux) | Make sure you're running under X11 (not Wayland) |
Publish to PyPI
# Install build tools
pip install build twine
# Build
cd /path/to/stttype
python -m build
# Upload
python -m twine upload dist/*
When prompted:
- Username:
__token__ - Password: Your PyPI API token
Author: LucasApps
Version: 1.0.0
License: MIT
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file stttype-2.0.0.tar.gz.
File metadata
- Download URL: stttype-2.0.0.tar.gz
- Upload date:
- Size: 16.9 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.11.1
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
1a45cfd3e49cf0e59498938bfe9ebb52611883f7bfdb7dd24e0a4df09f63d86f
|
|
| MD5 |
7262bc91eadd93b078f447f63aad3759
|
|
| BLAKE2b-256 |
4c6bc280754b559f94866e4d5450c22a3cb6338d1d81ae1fcff3aa39903c6490
|
File details
Details for the file stttype-2.0.0-py3-none-any.whl.
File metadata
- Download URL: stttype-2.0.0-py3-none-any.whl
- Upload date:
- Size: 17.2 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.11.1
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
eef3bf91b6563d25ef906e9d6fc6d31668c0fcf20a3837b8099151f7fe3f2209
|
|
| MD5 |
65824eb35920cac315f7a604893b1ce3
|
|
| BLAKE2b-256 |
477b6f92842a7d3fa5f87c3c4dd3243856d483b886899e61c7f7c3e7f8ca1179
|