diff --git a/README.md b/README.md index d2fce82..7edaa8c 100644 --- a/README.md +++ b/README.md @@ -4,14 +4,46 @@ Voicext is a high-performance desktop application built with **Electron** and ** ![Voicext Logo](docs/logo/voicext-logo.png) -## 🚀 Features +## 📸 Screenshots + +````carousel +![Dashboard](docs/ss/dashboard.png) + +![Start Transcription](docs/ss/start-transcripting.png) + +![Transcription Progress](docs/ss/transcription-complete.png) + +![SRT Editor](docs/ss/editor.png) + +![Model Management](docs/ss/model-management.png) + +![Use Case](docs/ss/ss-youtube.jpeg) +```` + +*A modern, glassmorphic UI designed for speed and clarity.* + +## 🚀 Key Features - **Local Processing:** Your data never leaves your machine. Privacy by design. -- **GPU Acceleration:** Utilizes DirectCompute and CUDA for lightning-fast transcription using the Const-me Whisper implementation. +- **GPU Acceleration:** Utilizes DirectCompute and CUDA for lightning-fast transcription using the Windows-optimized Whisper implementation. +- **Built-in SRT Editor:** Edit your transcriptions instantly within the app with a real-time preview. - **Smart SRT Fixing:** Custom algorithm to ensure SRT files are 100% compatible with Adobe Premiere Pro and other NLEs. -- **Multi-format Output:** Supports SRT, VTT, and TXT exports. -- **Modern UI:** A sleek, responsive interface built with Tailwind CSS and Framer Motion. -- **Optimized for Turkish:** Specialized handling for Turkish character encoding and language models. +- **Model Management:** Download and switch between different AI models (Tiny, Base, Small, Medium, Large) directly from the interface. +- **Modern UI:** A sleek, responsive interface built with React, Tailwind CSS, and Framer Motion. +- **Turkish Optimization:** Specialized handling for Turkish character encoding and language models. + +## 🧠 How It Works + +The transcription process follows a robust pipeline to ensure accuracy and compatibility: + +1. **Hardware Detection:** The app automatically detects if an NVIDIA GPU is available to enable hardware acceleration. +2. **Engine Initialization:** It spawns a background process using the `whisper.exe` CLI, passing the audio file and selected model. +3. **Stream Processing:** Real-time feedback is captured from the engine's stdout, providing the user with live progress updates. +4. **Post-Processing (SRT Fixer):** + - **Timestamp Normalization:** Corrects overlapping or negative duration segments. + - **Segment Merging:** Automatically merges micro-segments that often occur in long-form audio. + - **Encoding Correction:** Ensures the output is UTF-8 encoded, specifically handling Turkish characters to prevent encoding errors. + - **NLE Compatibility:** Formats the SRT specifically for high-end video editors like Adobe Premiere Pro. ## 🛠️ Technology Stack @@ -20,69 +52,38 @@ Voicext is a high-performance desktop application built with **Electron** and ** - **Styling:** [Tailwind CSS](https://tailwindcss.com/) & [Framer Motion](https://www.framer.com/motion/) - **Engine:** [Const-me/Whisper](https://github.com/Const-me/Whisper) (Windows-optimized C++ implementation) - **State Management:** [Zustand](https://github.com/pmndrs/zustand) -- **Utilities:** `ffmpeg-static`, `iconv-lite`, `adm-zip` - -## 🧠 How It Works (Algorithm) - -The transcription process follows a robust pipeline to ensure accuracy and compatibility: - -1. **Hardware Detection:** The app automatically detects if an NVIDIA GPU is available to enable hardware acceleration. -2. **Engine Initialization:** It spawns a background process using the `whisper.exe` CLI, passing the audio file and selected model (e.g., `base`, `small`). -3. **Stream Processing:** Real-time feedback is captured from the engine's stdout/stderr, providing the user with live progress updates. -4. **Post-Processing (SRT Fixer):** - - **Timestamp Normalization:** Corrects overlapping or negative duration segments. - - **Segment Merging:** Automatically merges micro-segments that often occur in long-form audio. - - **Encoding Correction:** Ensures the output is UTF-8 encoded, specifically handling Turkish characters (CP857 conversion) to prevent "mojibake". - - **NLE Compatibility:** Formats the SRT specifically for high-end video editors like Adobe Premiere Pro. ## ⚙️ Setup & Installation ### Prerequisites - [Node.js](https://nodejs.org/) (v18 or higher) -- [Git](https://git-scm.com/) - NVIDIA GPU (Recommended for speed, but supports CPU) ### Installation Steps -1. **Clone the Repository:** +1. **Clone & Install:** ```bash git clone https://github.com/truncgil/voicext.git cd voicext - ``` - -2. **Install Dependencies:** - ```bash npm install ``` -3. **Download Binaries & Models:** +2. **Setup Binaries:** The application requires the Whisper executable and AI models. Run the automated setup script: ```bash node scripts/setup-binaries.js ``` - *This will download the Const-me Whisper CLI and the `ggml-base.bin` model into the `bin/` directory.* -4. **Run in Development Mode:** +3. **Run Application:** ```bash npm run dev ``` -5. **Build for Production:** - ```bash - npm run package - ``` - -## 📂 Project Structure - -- `src/main`: Electron main process logic and transcription engine integration. -- `src/renderer`: React-based UI components and state management. -- `bin/`: (Generated) Contains `whisper.exe` and `.bin` models. -- `scripts/`: Maintenance and setup scripts for binaries. - ## 📄 License -This project is licensed under the MIT License - see the LICENSE file for details. +This project is licensed under the MIT License. --- -Developed with ❤️ by Voicext Team. +Developed with ❤️ by **Truncgil Software**. + diff --git a/docs/ss/dashboard.png b/docs/ss/dashboard.png new file mode 100644 index 0000000..385b190 Binary files /dev/null and b/docs/ss/dashboard.png differ diff --git a/docs/ss/editor.png b/docs/ss/editor.png new file mode 100644 index 0000000..a7a0e1b Binary files /dev/null and b/docs/ss/editor.png differ diff --git a/docs/ss/model-management.png b/docs/ss/model-management.png new file mode 100644 index 0000000..a046975 Binary files /dev/null and b/docs/ss/model-management.png differ diff --git a/docs/ss/ss-youtube.jpeg b/docs/ss/ss-youtube.jpeg new file mode 100644 index 0000000..2a12728 Binary files /dev/null and b/docs/ss/ss-youtube.jpeg differ diff --git a/docs/ss/start-transcripting.png b/docs/ss/start-transcripting.png new file mode 100644 index 0000000..e5c430c Binary files /dev/null and b/docs/ss/start-transcripting.png differ diff --git a/docs/ss/transcription-complete.png b/docs/ss/transcription-complete.png new file mode 100644 index 0000000..ae5f2d6 Binary files /dev/null and b/docs/ss/transcription-complete.png differ