Speechfire is a Firefox extension that provides offline speech-to-text functionality. It uses a local server for processing and supports multiple languages.
- 🦊✨ Firefox and Chrome support
- 🖥️ Local server for offline processing
- 🌐 Multilingual support
- ⌨️ Hotkey (
Alt+A) to start/stop recording
MacOS has some convoluted requirements to get Whisper running, so it isn't supported. Just use the system dictation tool - it works for everything.
Whisper requires FFmpeg, so you need to have it installed. It's used for a lot of things, you won't regret installing it! You can install it using package managers:
# Ubuntu/Debian
sudo apt install ffmpeg
# Windows (using Chocolatey)
choco install ffmpeg-
Set up Python environment
python -m venv speechfire source speechfire/bin/activate # On Windows: speechfire\Scripts\activate pip install -r requirements-lock.txt # confirmed working # or pip install -r requirements.txt # latest versions, may break
-
Install Extension
- Add the extension via the official Firefox Add-ons site or Chrome Web Store
- Or install from source:
- Manually install
extension-firefox.xpiin Firefox - Manually install
extension-chrome.zipin Chrome
- Manually install
- Or install from source:
If you prefer Docker, you can run the server without installing Python locally:
docker compose up --buildNotes:
- The image pre-downloads the Whisper model, so build time and size scale with the chosen model.
- The container binds to
0.0.0.0by default. If you want localhost-only access, setSERVER_HOST=127.0.0.1or usedocker-compose.override.yml.
-
Start the server
python server.py
Or use the system tray icon:
# On Windows: python system-tray/start_tray_windows.py # On Linux: python system-tray/start_tray_linux.py
After launching the system tray application:
- Right-click on the tray icon
- Select "Start Server" from the menu
-
Use the extension
- Focus on a text field in Firefox
- Press
Alt+Ato start/stop recording - Transcription will appear in the focused field
- If your server is on a different host/port, set Server URL in the extension popup
-
Stop the server
- Press
Ctrl+Cin the terminal - Or use the system tray icon menu
- Press
If you need to change the default Alt+A hotkey:
- Go to Firefox Settings → Extensions & Themes → Manage Extensions
- Click the gear icon ⚙️ next to Speechfire
- Select "Manage Extension Shortcuts"
- Set your preferred key combination
- For Linux system tray support:
sudo apt install python3-gi python3-gi-cairo gir1.2-gtk-3.0 gir1.2-appindicator3-0.1 pip install PyGObject
- You can also create a file to launch the system tray application at startup
