Skip to content

Anasayfa

Kağan edited this page Sep 15, 2026 · 2 revisions

🎙️ TRWhisper Wiki

TRWhisper, Windows 11 için geliştirilmiş, Superwhisper alternatifi, tamamen yerel (offline) çalışan, sıfır telemetrili ve düşük gecikmeli bir "bas-konuş" (push-to-talk) sesli dikte uygulamasıdır.

Bu wiki sayfasında TRWhisper'ın çalışma mimarisi, kurulum gereksinimleri, yapılandırma seçenekleri ve mevcut geliştirme durumu hakkında detaylı teknik bilgiler yer almaktadır.


📑 İçindekiler

  1. Temel Özellikler
  2. Sistem Mimarisi ve Akış Diyagramı
  3. Bileşenler ve Kod Yapısı
  4. Kurulum ve Başlangıç
  5. Yapılandırma (config.json)
  6. Bilinen Sorunlar ve Hata Ayıklama (Troubleshooting)

🚀 Temel Özellikler

  • Donanım Seviyesinde Bas-Konuş: WH_KEYBOARD_LL Win32 API ile sistem genelinde Sağ Ctrl (Right Ctrl) basılı tutulduğunda mikrofon kaydeder, bırakıldığı anda transkripsiyonu başlatır.
  • Akıllı Pano Enjeksiyonu (Smart Clipboard Injection):
    1. O anki Windows pano içeriğini belleğe yedekler.
    2. Transkript metnini panoya kopyalar.
    3. Win32 SendInput ile Ctrl + V tuşlayarak aktif pencereye anında yapıştırır.
    4. 150 ms sonra panodaki eski içeriğinizi (metin, resim vb.) aynen geri yükler.
  • Gizlilik Odaklı & Yerel Motor: Ses verileri hiçbir buluta gönderilmez. Transkripsiyon doğrudan yerel whisper.cpp motoru ve ggml-large-v3-turbo-q5_0.bin modeliyle CPU/GPU üzerinde işlenir.
  • Opsiyonel LLM Temizleme: Sağ Ctrl + Sağ Shift kombinasyonuyla bas-konuş yapıldığında, Gemini veya OpenAI API'si üzerinden dolgu kelimeleri (ııı, eee, şey) elenir ve imla düzeltilerek yapıştırılır.
  • WPF Hap Arayüzü (Pill Overlay): Ekranın ortasında veya imleç hizasında anlık durum bildiren şık animasyonlu overlay penceresi.
  • Markdown Günlüğü: Başarılı dikteler %USERPROFILE%\Dictation\YYYY-MM.md dosyasına zaman damgasıyla arşivlenir.

🔄 Sistem Mimarisi ve Akış Diyagramı

Uygulamanın bas-konuş tetiklendiğindeki uçtan uca veri akışı şöyledir:

sequenceDiagram
    autonumber
    actor User as Kullanıcı
    participant Hook as Win32 Keyboard Hook
    participant Audio as WASAPI Recorder (NAudio)
    participant Coord as DictationCoordinator
    participant STT as Whisper.cpp (CLI)
    participant LLM as LLM Cleaner (Opsiyonel)
    participant Clip as Clipboard Paster

    User->>Hook: Sağ Ctrl Tuşuna Basar
    Hook->>Coord: HotkeyDown Event
    Coord->>Audio: StartRecording(temp.wav)
    Note over Audio: 16kHz 16-bit Mono WAV Kaydı Başlar

    User->>Hook: Sağ Ctrl Tuşunu Bırakır
    Hook->>Coord: HotkeyUp Event (IsLlmModifierActive?)
    Coord->>Audio: StopRecordingAsync()
    Audio-->>Coord: temp.wav dosyası hazır

    Coord->>STT: TranscribeAsync(temp.wav)
    STT-->>Coord: Ham Transkript Metni

    opt Eğer Sağ Shift basılı tutulduysa (LLM Temizleme)
        Coord->>LLM: CleanTranscriptAsync(Ham Metin)
        LLM-->>Coord: Düzeltilmiş / Temiz Metin
    end

    Coord->>Clip: PasteTextAsync(Nihai Metin)
    Note over Clip: 1. Panoyu Yedekle<br/>2. Metni Kopyala & Ctrl+V Yapıştır<br/>3. 150ms Sonra Panoyu Geri Yükle
    Clip-->>User: Metin İmleç Alanına Yapıştırıldı
Loading

Clone this wiki locally