Files
voicext/docs/implementation_plan.md
Ümit Tunç 89c69114bd first commit
2026-04-23 07:34:37 +03:00

77 lines
4.0 KiB
Markdown
Raw Permalink Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# Voicext - Local AI Transcription (Voice-to-SRT) Implementation Plan
Voicext, Premiere Pro ve diğer kurgu programları için hızlı, yerel (offline) ve yüksek kaliteli SRT dosyaları üreten bir masaüstü uygulamasıdır. `whisper.cpp` motorunu kullanarak RTX GPU gücünden yararlanır ve "al gülüm ver gülüm" sadeliğinde bir iş akışı sunar.
## 🎯 Proje Hedefleri
- **Gizlilik:** Tamamen yerel çalışma (İnternet gerekmez).
- **Kullanılabilirlik:** Tek tıkla MP3 -> SRT dönüşümü.
- **Estetik:** Modern, karanlık tema, premium tasarım.
## 🏗️ Mimari ve Teknoloji Yığını
### Çekirdek (Core)
- **Framework:** Electron.js (Vite ile optimize edilmiş).
- **Processing:** `whisper.cpp` (C++ tabanlı yerel inferans).
- **Audio Engine:** `FFmpeg` (16kHz Mono WAV dönüşümü için).
- **Hardware Acceleration:**
- **GPU:** CUDA/cuBLAS (NVIDIA kullanıcıları için).
- **CPU:** AVX/AVX2/AVX-512 optimizasyonu (GPU olmayan sistemler için otomatik fallback).
### Arayüz (Frontend)
- **UI:** React + Vanilla CSS (Custom premium components).
- **Animations:** Framer Motion (Akıcı geçişler).
- **State:** Zustand (Hafif ve hızlı durum yönetimi).
---
## 🛠️ Uygulama Fazları
### Faz 1: Altyapı ve Binary Yönetimi
Uygulamanın kalbi olan binary dosyalarının hazırlanması.
- [ ] `whisper.cpp`'nin Windows CUDA desteğiyle derlenmesi.
- [ ] `ffmpeg` static binary'lerinin projeye dahil edilmesi.
- [ ] Model yönetimi: Uygulama içinden `tiny`, `base`, `small`, `medium`, `large` modellerinin indirilmesi ve yönetilmesi.
### Faz 2: İş Akışı (The "Al Gülüm Ver Gülüm" Engine)
1. **Input:** Kullanıcı MP3/WAV/M4A dosyasını sürükler.
2. **Pre-processing:** FFmpeg ile `16kHz, mono, 16-bit PCM WAV` formatına anlık dönüşüm.
3. **Inference:** `whisper.exe -m model.bin -f input.wav -osrt -l tr` komutunun child_process ile çalıştırılması.
4. **Output:** `.srt` dosyasının otomatik olarak orijinal dosyanın yanına veya seçilen klasöre kaydedilmesi.
### Faz 3: Kullanıcı Deneyimi ve Arayüz (Premium UX)
- **Glassmorphic Dashboard:** Sürükle-bırak alanı için neon efektli modern bir "Drop Zone".
- **Real-time Progress:** Whisper'ın stdout çıktısını parse ederek canlı ilerleme çubuğu ve "transcription streaming" (ekrana dökülen kelimeler).
- **SRT Preview:** Oluşturulan SRT dosyasını uygulama içinde önizleme ve basit zamanlama düzeltmeleri yapma imkanı.
- **One-Click Export:** "Export for Premiere" butonu ile standartlara en uygun SRT formatını dışa aktarma.
---
## 🖥️ Teknik Detaylar (Hack Önerileri)
### Hibrit Donanım Desteği (Auto-Detection)
Uygulama her sistemde çalışabilmesi için donanımı otomatik algılayacak:
- **NVIDIA Sistemler:** `whisper-cuda.exe` ile maksimum hız.
- **Diğer Sistemler:** `whisper-cpu.exe` ile optimize edilmiş işlemci kullanımı.
- **Dinamik Seçim:** Ayarlar kısmında kullanıcıya "CPU vs GPU" seçme imkanı sunulacak.
### SRT Optimizasyonu
Premiere Pro'da altyazıların çok uzun olmaması için whisper.cpp'nin segmentasyon ayarları optimize edilecek:
- `--max-len`: Satır başına maksimum karakter (Örn: 42).
- `--max-context`: Daha iyi bağlam için önceki metni hatırlama.
---
## 📅 Yol Haritası (Milestones)
1. **MVP:** Dosya seç -> Dönüştür -> SRT al (Görsel odak yok).
2. **Design Update:** Premium UI elementlerinin ve animasyonların eklenmesi.
3. **Advanced Features:** Çoklu dil seçimi, GPU/CPU anahtarı, SRT editörü.
## ❓ Açık Sorular
- Uygulama ilk açıldığında `base` modelini (yaklaşık 140MB) paket içine gömmeli miyiz yoksa ilk açılışta mı indirtmeliyiz?
- Birden fazla dosyayı aynı anda işleme (Batch Processing) özelliği ilk aşamada gerekli mi?
## 🧪 Doğrulama Planı
- Farklı MP3 kalitelerinde (128kbps, 320kbps) FFmpeg dönüşüm testi.
- Uzun videolarda (1 saat+) bellek kullanımı ve GPU sıcaklık takibi.
- Üretilen SRT'nin Premiere Pro ve VLC'de karakter kodlaması (UTF-8) kontrolü.