A Chrome extension that provides voice-to-text input via a global hotkey using the Web Speech Recognition API.
- Global Hotkey: Press
Ctrl+Shift+U(orCmd+Shift+Uon Mac) to toggle voice input in any text field - Push-to-Talk Mode: Hold a custom key combination to speak, release to stop
- Microphone Selection: Choose which audio input device to use
- Voice Input History: Side panel showing all previous transcriptions with timestamps and source URLs
-
Clone the repository:
git clone https://github.com/user/utter.git cd utter -
Install dependencies:
npm install
-
Build the extension:
npm run build
-
Load in Chrome:
- Navigate to
chrome://extensions - Enable "Developer mode"
- Click "Load unpacked"
- Select the
dist/directory
- Navigate to
- Focus on any text input field on a webpage
- Press the hotkey (
Ctrl+Shift+U/Cmd+Shift+U) to start listening - Speak - your words will be transcribed in real-time
- Press the hotkey again to stop, or switch to Push-to-Talk mode in options
- Right-click the extension icon and select "Options"
- Select "Push-to-Talk" mode
- Click "Record" and press your preferred key combination
- Hold the key combination while speaking, release to stop
Click the extension icon to open the side panel with your transcription history.
# Build the extension
npm run build
# Package for Chrome Web Store
npm run package
# Run linting
npm run lint
# Generate placeholder icons
npm run generate-iconssrc/
├── background.js # Service worker
├── content.js # Content script for voice input
├── ptt-listener.js # Push-to-talk content script
├── manifest.json # Extension manifest (Manifest V3)
├── icons/ # Extension icons
├── options/ # Options page
├── popup/ # Browser action popup
└── sidepanel/ # Side panel UI
activeTab- Access the focused element for text inputscripting- Execute content scriptsstorage- Persist user preferences and historysidePanel- Enable the voice history side panel
Apache-2.0