← All repositories

whisper-to-text

3 commits · main

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-1 model)
  • Groq: Fast inference with whisper-large-v3 model
  • LocalAI: Self-hosted Whisper inference
  • Custom Endpoints: Any OpenAI-compatible transcription API

Installation

  1. Download or clone this repository
  2. 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”
  3. Select the src folder or the packaged .xpi file

Setup (One-time)

  1. Click the extension icon or open settings
  2. Grant microphone access when prompted
  3. Configure your API settings:
    • API Endpoint: Your Whisper API endpoint (e.g., http://localhost:8080/v1/audio/transcriptions for LocalAI)
    • API Token: Your authentication token
    • Model: The model name (e.g., whisper-1, whisper-large, whisper-large-v3)

Usage

  1. Place cursor in a text field where you want the transcribed text to appear
  2. Press Ctrl+Alt+S (or Cmd+Alt+S on Mac) to open the popup and start recording
  3. Speak into your microphone
  4. Press Space or Enter to stop recording
  5. 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+V or Cmd+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