Deployed: Free-Scribe
Free-Scribe is a powerful Next.js-based web application that leverages machine learning for audio transcription and translation. Built with React 19 and Next.js 15, it provides a user-friendly interface for managing, editing, and translating audio transcriptions, making it an essential tool for content creators, journalists, and language enthusiasts.
- Direct Audio Recording: Record audio directly within the app.
- Audio File Upload: Upload audio files for transcription.
- Transcription: Transcribe audio to text using advanced ML models.
- Translation: Translate transcribed text to multiple languages using ML models.
- User-friendly Interface: Easily copy and download transcriptions and translations.
- Multi-language Support: Transcribe and translate content in various languages.
- Open the app and navigate to the home page.
- Click on the "Record" button to start recording audio.
- Click "Stop" to end the recording.
- The recorded audio will be ready for transcription.
- Click on the "Upload" button.
- Select an audio file from your device.
- The uploaded audio file will be ready for transcription.
- After recording or uploading an audio file, click "Transcribe".
- The app will process the audio and display the transcribed text.
- Navigate to the "Translation" tab.
- Select the target language from the dropdown menu.
- Click "Translate" to translate the transcribed text.
- Next.js 15.5.2: React framework for production with App Router and server-side rendering capabilities.
- React 19.1.0: Front-end library for building user interfaces with the latest React features.
- TypeScript: Type-safe JavaScript development for better code quality and developer experience.
- Web Workers: For running transcription and translation tasks in the background.
- TailwindCSS 4.x: For styling the application with utility-first CSS framework.
- Machine Learning Models:
- Transcription: Uses the
Xenova/whisper-tiny.enmodel from the@xenova/transformerslibrary for automatic speech recognition. - Translation: Utilizes the
Xenova/nllb-200-distilled-600Mmodel from the@xenova/transformerslibrary for multilingual translation.
- Transcription: Uses the
- @xenova/transformers: A library that provides easy-to-use implementations of state-of-the-art transformer models.
- Task: Automatic Speech Recognition (ASR)
- Model:
Xenova/whisper-tiny.en - Features:
- Optimized for English language transcription
- Supports chunk-based processing for long audio files
- Provides timestamps for transcribed text
- Task: Translation
- Model:
Xenova/nllb-200-distilled-600M - Features:
- Supports translation between multiple languages
- Uses the NLLB (No Language Left Behind) architecture
- Distilled version for improved performance
Both models are implemented using Web Workers to ensure smooth performance and prevent blocking the main thread during processing.
This project has been upgraded to Next.js 15 with React 19. To get started with development:
- Prerequisites: Node.js 18+ and npm
- Installation:
npm install
- Development Server:
npm run dev
- Build for Production:
npm run build npm start
The application uses Next.js App Router with TypeScript for type safety and modern React features.
We welcome contributions from the community! Please follow these steps:
- Fork the repository.
- Create a new branch:
git checkout -b feature/your-feature-name - Make your changes and commit them:
git commit -m 'Add some feature' - Push to the branch:
git push origin feature/your-feature-name - Open a pull request with a detailed description of your changes.
This project is licensed under the MIT License. See the LICENSE file for details.