whisper-to-text
README.md
Whisper Voice to Text
A browser extension that records your voice, transcribes it using OpenAI Whisper or compatible APIs (like LocalAI), and inserts the transcribed text into any active input field on the current page.
Features
- Voice Recording: Record audio directly from your browser with a simple keyboard shortcut
- Speech-to-Text Transcription: Uses OpenAI Whisper API or compatible endpoints for accurate transcription
- Universal Text Insertion: Works with any input field, textarea, or contenteditable element on any website
- Clipboard Backup: Automatically copies transcribed text to clipboard as a fallback
- Multiple API Support: Compatible with OpenAI, Groq, LocalAI, and other Whisper-compatible APIs
Supported APIs
- OpenAI Whisper: Official OpenAI API (
whisper-1model) - Groq: Fast inference with
whisper-large-v3model - LocalAI: Self-hosted Whisper inference
- Custom Endpoints: Any OpenAI-compatible transcription API
Installation
- Download or clone this repository
- Open your browser’s extension management page:
- Firefox:
about:addons→ Gear icon → “Install Add-on From File” - Chrome/Edge:
chrome://extensions→ Enable “Developer mode” → “Load unpacked”
- Firefox:
- Select the
srcfolder or the packaged.xpifile
Setup (One-time)
- Click the extension icon or open settings
- Grant microphone access when prompted
- Configure your API settings:
- API Endpoint: Your Whisper API endpoint (e.g.,
http://localhost:8080/v1/audio/transcriptionsfor LocalAI) - API Token: Your authentication token
- Model: The model name (e.g.,
whisper-1,whisper-large,whisper-large-v3)
- API Endpoint: Your Whisper API endpoint (e.g.,
Usage
- Place cursor in a text field where you want the transcribed text to appear
- Press
Ctrl+Alt+S(orCmd+Alt+Son Mac) to open the popup and start recording - Speak into your microphone
- Press Space or Enter to stop recording
- The transcribed text will be inserted at the cursor position
Alternative Usage
- Click the extension icon to open the popup manually
- Click “Start Recording” to begin, then “Stop Recording” when done
- Use the Settings button to configure API options
LocalAI Example Configuration
If you’re running LocalAI locally:
- API Endpoint:
http://localhost:8080/v1/audio/transcriptions - API Token: Any string (e.g.,
sk-1234567890) - Model:
whisper-large(or your installed model name)
Troubleshooting
“No active input field found”
- Click on a text field before starting recording
- Ensure the input field is not disabled or read-only
“Could not insert text into page”
- The transcribed text is copied to your clipboard as backup
- Paste it manually with
Ctrl+VorCmd+V
“API request failed”
- Verify your API endpoint URL is correct
- Check that your API token is valid
- Ensure the model name matches your API provider’s available models
Keyboard Shortcuts
| Shortcut | Action |
|---|---|
Ctrl+Alt+S / Cmd+Alt+S |
Open popup and start recording |
Space / Enter |
Stop recording (while recording) |
Escape |
Stop recording (while recording) |
Privacy
- Audio is only recorded when you explicitly start a recording
- Audio data is sent directly to your configured API endpoint
- No data is stored or transmitted to third parties
License
MIT License
Credits
Original author: Vlad Vaviloff
Commit history
Files
32 tracked files
at main.
src
icons
- create-icons.svg
- icon-128-blue.png
- icon-128-red.png
- icon-128-yellow.png
- icon-128.png
- icon-16-blue.png
- icon-16-red.png
- icon-16-yellow.png
- icon-16.png
- icon-48-blue.png
- icon-48-red.png
- icon-48-yellow.png
- icon-48.png
META-INF
- cose.manifest
- cose.sig
- manifest.mf
- mozilla.rsa
- mozilla.sf
popup
- popup.css
- popup.html
- popup.js
settings
- settings.css
- settings.html
- settings.js
utils
- audio-processor.js
- paragraph-detector.js
- voice-activity-detector.js
- background.js
- content.js
- manifest.json
- LICENSE
- README.md