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

4.0 KiB
Raw Permalink Blame History

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ü.