Whispering

Whispering

Seamless speech-to-text at your fingertips, powered by OpenAI

MIT License TypeScript Rust Chrome macOS Windows Linux


Project Overview

Whispering is an open-source project designed to streamline your voice-to-text experience by leveraging the OpenAI Whisper API.

Whispering enables you to bring seamless speech-to-text capabilities to your workflow without context switching between websites. By eliminating manual transcribing and excessive button clicks, you can save time, boost productivity, and type faster.

Current Development Status

🚧 On Hold: Currently, development is paused due to academic commitments.

👀 Awaiting Svelte 5: Planning to implement changes with the new Svelte 5 API once released.

Future Plans

🔜 More Details on Contribution: Detailed contribution guidelines will be provided after the resumption of development.


Features

Whispering offers two key functionalities:

  1. Seamless integration with ChatGPT: The extension adds a handy recording button in the ChatGPT website, enabling you to record and generate transcriptions from your voice directly in the chat.

ChatGPT Box

  1. Record and transcribe across any website: Access Whisper's speech-to-text anywhere with a global keyboard shortcut, enabling seamless transcription in any website.

After transcription is completed, it is automatically copied into your clipboard and can be configured to automatically paste.

Demo

demo_3.mp4

Installation

Chrome Extension

You can install the Chrome Extension from the Chrome web store here:

Download Chrome Extension

Web App

To start using the Whispering web app, click the button below:

Open Web App

Download Desktop App

To download the Whispering desktop app:

  1. Go to the latest releases page and download the corresponding installation file .msi file for Windows and .dmg for MacOS.
  2. Double click the downloaded file to install it.
  3. For Windows, if prompted as unsafe, you can click on More Info -> Run Anyway to proceed with the installation (I was unable to sign the app due to my lack of a Windows laptop for development, but the app is safe to use).
  4. Ready to use!

Usage

Chrome Extension

After installing the Chrome Extension, you will find a Whispering icon on the Chrome extensions bar. Click on this icon to open the extension. To use the Whisper API feature, simply click the 'Start Recording' microphone button to record your voice, and then 'Stop Recording' square button when you're done. Your transcription will appear in the text box below.

To access the ChatGPT feature, navigate to the ChatGPT web page. You'll see a new recording button in the chat interface. Click this button to start and stop recording, and the transcribed text will be automatically inserted into the chat input field.

To access the shortcut feature, press Control + Shift + X or Command + Shift + X to start recording from any website. The transcription will be automatically copied into your clipboard and paste into the current input field.

Web App

To start using the Whispering web app, click the button below:

Open Web App

Desktop App

After installing the Whispering desktop app, press Control + Shift + ; or Command + Shift + ; to start recording from anywhere on your desktop. The application will come into focus while recording, and will minimize when you stop recording. The transcription will be automatically copied into your clipboard and can be configured to automatically paste.

Built With

Web and Desktop

Whispering web and desktop app is built using the following technologies and libraries:

  • Tauri: A framework for building lightweight, secure, and fast cross-platform applications with web technologies.
  • SvelteKit: A framework for building web applications and the Tauri frontend.
  • svelte-french-toast: A simple, customizable toast library for Svelte applications.
  • TailwindCSS: A utility-first CSS framework for rapidly building custom user interfaces.
  • Cloudflare Pages: A global cloud platform for deploying static pages.

Extension

The Whispering Chrome extension is built using:

  • Plasmo: A framework for building Chrome extensions.
  • Svelte: A JavaScript framework for building user interfaces.
  • svelte-french-toast: A simple, customizable toast library for Svelte applications.
  • TailwindCSS: A utility-first CSS framework for rapidly building custom user interfaces.
  • Chrome API: The Chrome extension API.

Development

To set up the project on your local machine, follow these steps:

  1. Clone the repository: git clone https://github.com/braden-w/whispering.git
  2. Change into the project directory: cd whispering
  3. Install the necessary dependencies: pnpm i
  4. Run the development server: pnpm dev
  5. The desktop app should open for local development. To develop the web app, open your browser and navigate to http://localhost:5173.

The Whispering web and desktop app can be found under apps/web-desktop-app, and the extension can be found under apps/browser-extension.

Build Instructions

Chrome

  1. cd apps/browser-extension
  2. pnpm i
  3. pnpm plasmo build --zip
  4. Output should be found in apps/browser-extension/build

Firefox

  1. cd apps/browser-extension
  2. pnpm i
  3. pnpm plasmo build --target=firefox-mv2 --zip
  4. Output should be found in apps/browser-extension/build

Contributing

We welcome contributions from the community! If you'd like to contribute to Whispering, please follow these steps:

  1. Fork the repository.
  2. Create a new branch for your feature or bugfix: git checkout -b feature/your-feature-name or git checkout -b fix/your-bugfix-name
  3. Make your changes and commit them with a descriptive message.
  4. Push your branch to your forked repository: git push origin your-branch-name
  5. Create a pull request from your forked repository to the original one.

Please ensure your code follows established conventions and is well-documented.

License

Whispering is released under the MIT License.

Support and Feedback

If you encounter any issues or have suggestions for improvements, please open an issue on the GitHub repository. We appreciate your feedback!

Thank you for using Whispering and happy writing!