Skip to content

MaheshR03/free-scribe

Repository files navigation

οΏ½ Free-Scribe

License: MIT React Vite

A modern, browser-based transcription and translation application built with React. Free-Scribe leverages cutting-edge machine learning models running entirely in your browser via Web Workers, ensuring privacy and eliminating the need for server-side processing.

✨ Features

  • 🎯 Audio Transcription: Convert speech to text using OpenAI's Whisper models
  • 🌍 Multi-language Translation: Translate transcribed text into 22+ supported languages
  • πŸ”’ Privacy-First: All processing happens locally in your browser - no data leaves your device
  • ⚑ Real-time Processing: Powered by Web Workers for non-blocking UI performance
  • πŸ“± Responsive Design: Works seamlessly across desktop and mobile devices
  • πŸš€ No Installation Required: Run directly in your web browser

πŸš€ Live Demo

Experience Free-Scribe in action: https://free-scribe-alpha.vercel.app/

πŸ“· Screenshots

Main Interface

Free-Scribe main interface showing transcription capabilities

Translation Features

Free-Scribe translation interface with multiple language support

πŸ› οΈ Technology Stack

  • Frontend: React 18 with modern hooks and functional components
  • Build Tool: Vite for fast development and optimized production builds
  • Styling: Tailwind CSS for responsive and modern UI design
  • ML Models:
    • OpenAI Whisper for speech-to-text transcription
    • Helsinki-NLP OPUS-MT models for translation
  • Runtime: Web Workers for background ML model processing
  • Package Manager: npm

🌐 Supported Languages

Free-Scribe supports translation to the following languages:

European Languages: French, Spanish, German, Italian, Portuguese, Russian, Dutch, Polish, Czech, Finnish, Swedish, Danish, Norwegian BokmΓ₯l, Hungarian, Romanian, Ukrainian, Turkish

Asian Languages: Chinese (Simplified), Japanese, Korean, Hindi

Middle Eastern Languages: Arabic

πŸš€ Getting Started

Prerequisites

  • Node.js (version 16 or higher)
  • npm or yarn package manager
  • Modern web browser with Web Workers support

Installation

  1. Clone the repository

    git clone https://github.com/MaheshR03/free-scribe.git
    cd free-scribe
  2. Install dependencies

    npm install
  3. Start the development server

    npm run dev
  4. Open your browser Navigate to http://localhost:5173 to start using Free-Scribe

Building for Production

npm run build

The built application will be available in the dist directory.

πŸ“– Usage

  1. Upload Audio: Click to upload an audio file or record directly in the browser
  2. Transcribe: The app will automatically transcribe your audio using Whisper models
  3. Translate: Select your target language and click translate to convert the text
  4. Export: Copy or download your transcribed and translated content

πŸ—οΈ Project Structure

free-scribe/
β”œβ”€β”€ src/
β”‚   β”œβ”€β”€ components/          # React components
β”‚   β”‚   β”œβ”€β”€ FileDisplay.jsx  # Audio file handling
β”‚   β”‚   β”œβ”€β”€ Header.jsx       # Application header
β”‚   β”‚   β”œβ”€β”€ HomePage.jsx     # Landing page
β”‚   β”‚   β”œβ”€β”€ Information.jsx  # Main app container
β”‚   β”‚   β”œβ”€β”€ Transcribing.jsx # Transcription UI
β”‚   β”‚   β”œβ”€β”€ Transcription.jsx# Transcription results
β”‚   β”‚   └── Translation.jsx  # Translation interface
β”‚   β”œβ”€β”€ utils/              # Utility functions and workers
β”‚   β”‚   β”œβ”€β”€ presets.js      # Language definitions and constants
β”‚   β”‚   β”œβ”€β”€ translate.worker.js # Translation Web Worker
β”‚   β”‚   └── whisper.worker.js   # Transcription Web Worker
β”‚   β”œβ”€β”€ App.jsx             # Main app component
β”‚   └── main.jsx            # Application entry point
β”œβ”€β”€ public/                 # Static assets
β”œβ”€β”€ package.json           # Project dependencies
└── README.md              # This file

🀝 Contributing

We welcome contributions to Free-Scribe! Please feel free to submit issues, feature requests, or pull requests.

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

πŸ“„ License

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

πŸ™ Acknowledgments

πŸ“ž Support

If you encounter any issues or have questions, please file an issue on the GitHub repository.


Made with ❀️ for the open-source community

About

React web based transcription & translation app that uses web workers to run ML models in the browser

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published