Skip to content

A lightweight chrome extension that enables advanced voice input capabilities in any website

License

Notifications You must be signed in to change notification settings

ndamulelonemakh/global-voice

Repository files navigation

🎤 Global Voice [Self-Hosted Voice Input]

License: ISC Chrome Extension Manifest V3

A simple and lightweight Chrome extension that enables advanced voice input capabilities in any web application. Use your microphone to input text in any text field, textarea, or contenteditable element across the web.

Global Voice Demo

Disclaimer: Audio is processed by Google Gemini API (subject to Google's privacy policy). Since this is self-hosted, you are in control and responsible for your data security.

✨ Features

  • Fast transcriptions powered by Gemini 2.5 Flash Lite
  • Universal compatibility - works with any text field, textarea, or contenteditable element
  • Secure API key storage using Chrome's storage API (synced across devices)
  • Smart element detection - automatically inserts transcription into focused fields
  • Privacy-conscious - extension collects no data; audio processed by Google Gemini API (subject to Google's privacy policy)
  • Manifest V3 - built with the latest Chrome extension standards

🚀 Quick Start

Prerequisites

Installation

  1. Clone the repository:

    git clone https://github.com/ndamulelonemakh/global-voice.git
    cd global-voice
  2. Install dependencies:

    npm install
  3. Build the extension:

    npm run build
  4. Load in Chrome:

    • Open Chrome and navigate to chrome://extensions
    • Enable "Developer mode" (toggle in top right)
    • Click "Load unpacked"
    • Select the global-voice directory
  5. Configure API key:

📖 Usage

  1. Navigate to any website with a text input field
  2. Click on the text field where you want to insert transcribed text
  3. Click the Global Voice extension icon
  4. Click "Start Recording"
  5. Speak clearly into your microphone
  6. Click "Stop Recording" when done
  7. The transcribed text will be automatically inserted into the focused field

🛠️ Development

Project Structure

global-voice/
├── background.js        # Service worker handling transcription
├── popup.js            # Extension popup logic
├── popup.html          # Extension popup UI
├── popup.css           # Extension styles
├── offscreen.js        # Offscreen document for mic access
├── mic-setup.js        # Microphone permission handler
├── mic-setup.html      # Permission prompt UI
├── manifest.json       # Extension configuration
├── webpack.config.js   # Build configuration
└── dist/               # Built files (generated)

Available Scripts

npm run build     # Build extension with webpack
npm run lint      # Check code with Biome linter
npm run lint:fix  # Auto-fix linting issues
npm run format    # Format code with Biome

Tech Stack

  • Chrome Extensions API - Manifest V3
  • Google Generative AI SDK - Gemini 2.5 Flash for transcription
  • Webpack 5 - Module bundling
  • Biome - Fast linting and formatting

🔐 Privacy & Security

  • Extension privacy - this extension collects no personal data, analytics, or tracking information
  • Audio processing - recordings are sent to Google Gemini API for transcription (subject to Google's privacy policy)
  • User control - you provide your own API key and can modify the code to use alternative models or self-hosted solutions
  • API key security - stored using chrome.storage.sync API, accessible only by this extension
  • Minimal permissions - only requests necessary permissions (storage, activeTab, scripting, offscreen, tabs)
  • Open source - full transparency; review and modify the code to meet your privacy requirements

🤝 Contributing

Contributions are welcome! Please feel free to submit a Pull Request. For major changes, please open an issue first to discuss what you would like to change.

  1. Fork the repository
  2. Create your feature branch (git checkout -b feature/amazing-feature)
  3. Commit your changes (git commit -m 'Add some amazing feature')
  4. Push to the branch (git push origin feature/amazing-feature)
  5. Open a Pull Request

📝 License

This project is licensed under the ISC License - see the LICENSE file for details.

🙏 Acknowledgments

📧 Support

If you encounter any issues or have questions:

  • Open an issue on GitHub Issues
  • Check existing issues for solutions

Made with ❤️ by Ndamulelo Nemakhavhani

About

A lightweight chrome extension that enables advanced voice input capabilities in any website

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published