adilmustafayilmaz/WhisperNotesX

Toplantı ve dikte uygulaması — Windows 11 + macOS (Avalonia, Whisper, yerel/bulut LLM)

C#

1

17 commits

updated Jul 28, 2026

See the code

README

WhisperNotes X

Toplantılarınızı ve diktelerinizi bilgisayarınızda yazıya döken masaüstü uygulaması. Türkçe için ayarlandı, Windows 11 ve macOS'ta aynı kod tabanıyla çalışır.

CI Lisans: MIT Platform .NET


Ne işe yarar

Toplantı kaydı. Mikrofonunuzu ve bilgisayarınızdan çıkan sesi (Meet, Zoom, Teams — fark etmez) aynı anda dinler, konuşulanları canlı olarak ekrana yazar. Kayıt biterken kimin ne söylediğini ayırır, isterseniz temiz bir transkript ve yapılandırılmış bir toplantı özeti üretir.

Dikte. Kısayola basın, konuşun, susun. Metin düzeltilip o an odakta olan uygulamaya yazılır — e-postaya, Word'e, sohbet kutusuna. Panoya da kopyalanır.

Kendi bilgisayarınızda. Konuşma tanıma yereldeki Whisper ile yapılır; internet gerekmez. Yapay zekâ desteği isterseniz sağlayıcıyı siz seçersiniz, dilerseniz o da yerel modelle çalışır. Hiçbir şey varsayılan olarak dışarı gönderilmez — ayrıntı için Gizlilik bölümü.

Öne çıkan özellikler

🎙 Çift kanal kayıtMikrofon + sistem sesi ayrı hatlarda; "Ben" ve karşı taraf ayrı etiketlenir
🗣 Konuşmacı ayrıştırmaKayıt bitince kimin konuştuğu ayrılır, konuşmacılara isim verebilirsiniz
✍️ DikteKonuştuğunuz metin herhangi bir uygulamaya yazılır; sessizlikte otomatik durur
📖 Türkçe sözlük583 terimlik telaffuz sözlüğü ("en eyt en" → n8n); kendi terimlerinizi ekleyebilirsiniz
🤖 Not üretimiTemiz transkript ve özet (Kararlar / Aksiyon Maddeleri / Açık Sorular); istediğiniz kadar sürüm
⚡ Canlı düzeltmeKayıt sürerken satırlar bağlama göre kendini düzeltir (bulut sağlayıcıyla)
🔊 Ses kaydı ve oynatmaOturum sese kaydedilir; bir satıra ya da bir kelimeye tıklayınca ses o ana gider
📅 AjandaTakvim akışınızdaki toplantıyı tek tıkla kaydetmeye başlar
🪟 Mini araçHer zaman üstte duran küçük pencere: dikteyi başlat, süreyi ve ses seviyesini gör
🛟 Veri güvenliğiHer açılışta veritabanı yedeği; çökme sonrası yarım kalan kayıt kurtarılır

Nasıl çalışır

flowchart LR
  A[Mikrofon] --> C
  B[Sistem sesi] --> C
  C[Ses eşiği + parçalama] --> D[Whisper<br/>yerel]
  D --> E[Sözlük · sızıntı süzgeci<br/>paragraf birleştirme]
  E --> F[(SQLite)]
  E -.isteğe bağlı.-> G[Canlı düzeltme<br/>bulut LLM]
  F --> H[Konuşmacı ayrıştırma<br/>yerel]
  F --> I[Temiz transkript<br/>ve özet]
  F --> J[Dikte → odaktaki uygulama]

Konuşma tanıma tamamen yerel çalışır. Kesikli çizgiyle gösterilen adımlar yalnızca siz bir sağlayıcı seçip anahtar girdiğinizde devreye girer.


Kurulum

Windows 11

git clone https://github.com/adilmustafayilmaz/WhisperNotesX.git
cd WhisperNotesX
.\scripts\setup-windows.ps1

Script gerekenleri tek tek kontrol eder, yalnızca eksik olanı kurar, sonra derleyip testleri koşar. Hiçbir şey kurmadan sadece rapor almak için .\scripts\setup-windows.ps1 -CheckOnly.

Elle kurmak isterseniz gerekenler:

GereksinimNedenKurulum
.NET 8 SDK (veya üzeri)Uygulama net8.0 hedeflerwinget install Microsoft.DotNet.SDK.8
VC++ 2015-2022 x64 RedistributableWhisper ve LLM yerel kütüphaneleri MSVC ile derlendiwinget install Microsoft.VCRedist.2015+.x64
~4 GB boş diskKonuşma tanıma modeli için—

Sonra:

dotnet run --project WhisperNotesX

Ekran kartı: uygun bir GPU varsa konuşma tanıma Vulkan üzerinden GPU'da çalışır, yoksa kendiliğinden CPU'ya düşer. Ayar gerekmez. Hangisinin çalıştığını durum çubuğu yazar ("Model hazır · GPU (Vulkan)"). GTX 1060'ta ölçülen fark: 30 sn ses 31 sn → 9 sn.

Ayrıntılı kurulum, doğrulama adımları ve sorun giderme: docs/WINDOWS_SETUP.md

macOS (Apple Silicon)

git clone https://github.com/adilmustafayilmaz/WhisperNotesX.git
cd WhisperNotesX
./scripts/run.sh          # ya da: dotnet run --project WhisperNotesX

İzinler ve ek adımlar:

  • Mikrofon — ilk kayıtta sorulur.
  • Erişilebilirlik (Sistem Ayarları → Gizlilik ve Güvenlik → Erişilebilirlik) — global kısayollar ve dikte yazımı için gerekir. Verilmezse uygulama çalışır, sadece bu iki özellik devre dışı kalır.
  • Sistem sesi — macOS'ta karşı tarafın sesini yakalamak için sanal ses aygıtı gerekir:
    brew install blackhole-2ch
    
    Ardından Audio MIDI Setup'ta hoparlörünüz + BlackHole ile bir çoklu çıkış aygıtı oluşturup sistem çıkışını ona alın. Kurmazsanız toplantılar yalnızca mikrofonu kaydeder. (Windows'ta bu adım gerekmez.)

İlk çalıştırma

  1. Uygulama tepsi/menü çubuğu simgesi olarak açılır, ana pencere görünür.
  2. Konuşma tanıma modeli arka planda iner — durum çubuğunda yüzde görünür.
  3. Not üretimi isterseniz Ayarlar → Yapay Zekâ'dan bir sağlayıcı seçin.

Model seçenekleri (Ayarlar → Konuşma Tanıma):

ModelBoyutNe zaman
ggml-large-v3~2,9 GBVarsayılan. Türkçede en yüksek doğruluk
ggml-large-v3-turbo~574 MBHızlı başlangıç, biraz daha düşük doğruluk
ggml-small~488 MBZayıf donanım
ggml-base~148 MBSadece deneme

Kullanım

Kısayollar

Kısayolİşlev
Ctrl+Shift+R (mac: ⌘⇧R)Toplantı kaydını başlat / durdur
Ctrl+Shift+D (mac: ⌘⇧D)Dikteyi başlat / durdur
Ctrl+Alt+KYapay zekâ üretimini durdur

Toplantı

Kaydı başlatın; satırlar konuşuldukça ekrana düşer. Karşı tarafın sesi ayrı hatta yakalanır, aynı sözün iki hatta birden yazılmasını engelleyen bir süzgeç vardır. Kayıt bitince konuşmacılar ayrılır; bir konuşmacı çipine sağ tıklayıp isim verebilirsiniz — bu isim özetlere de yansır.

Kayda Devam Et ile eski bir toplantıya ekleme yapabilirsiniz; yeni satırlar zaman çizelgesinde öncekilerin ardına eklenir, ses de birleştirilir.

Notlar

Üretim çubuğunda üç düğme var: Temiz Transkript, Özet (Orijinal), Özet (Temiz). Her üretim yeni bir sürüm olarak saklanır — eskiyi kaybetmeden yeniden üretebilir, sürümler arasında geçiş yapabilir, beğenmediğinizi silebilirsiniz. Uzun toplantılarda özet parça parça çıkarılıp birleştirilir, böylece toplantının ortası kaybolmaz.

Çıktı .md olarak dışa aktarılabilir; ses dosyası da ayrıca kaydedilebilir.

Dikte

Ctrl+Shift+D → konuşun → tekrar Ctrl+Shift+D (ya da sessizlikte otomatik durur, varsayılan 8 sn). Metin isteğe bağlı olarak yapay zekâ ile düzeltilir, sonra odaktaki uygulamaya yazılır ve panoya kopyalanır. Model saçmalarsa düzeltilmiş metin değil ham metin yazılır — bir makullük süzgeci bunu denetler.

Ajanda

Ayarlar → Ajanda'ya takviminizin ICS adresini yapıştırın (Google Takvim: takvim ayarları → "Gizli adres iCal biçiminde"; Outlook: yayınlanmış takvim bağlantısı). Yaklaşan toplantılar listelenir, yanındaki düğme kaydı doğrudan o toplantının adıyla başlatır. Özetteki aksiyon maddelerini .ics görev dosyası olarak dışa aktarabilirsiniz.


Yapay zekâ sağlayıcıları

Not üretimi ve dikte cilası için dört seçenek var. Ayarlar → Yapay Zekâ'dan seçilir.

SağlayıcıNasıl çalışırNe zaman tercih edilir
Yerel (Qwen 2.5 3B)İlk kullanımda ~2 GB model iner, tamamen çevrimdışıVeri bilgisayardan çıkmasın isteniyorsa
ClaudeAPI anahtarı gerekirEn iyi Türkçe özet
GeminiAPI anahtarı gerekirÜcretsiz kotayla denemek için
Qwen (Alibaba Cloud)API anahtarı gerekirAlternatif bulut seçeneği

Anahtarlar hiçbir zaman dosyaya yazılmaz: Windows'ta Credential Manager, macOS'ta Keychain kullanılır. Bir bulut çağrısı başarısız olursa uygulama tek tıkla yerel modele düşmeyi önerir.

Kayıt sırasında canlı düzeltme yalnızca bulut sağlayıcılarla çalışır (yerel model bu hıza yetişemez).

Gizlilik

Bilgisayarınızdan ne çıkar, ne zaman çıkar:

VeriNereyeNe zaman
Ses kaydıHiçbir yereVarsayılan olarak ses hiç yüklenmez
Transkript metniSeçtiğiniz LLM sağlayıcısınaYalnız not üretimi ya da canlı düzeltme çalışırken
Ses kaydı (isteğe bağlı)ElevenLabsYalnız "Bulut son geçişi" açıksa ve anahtar girilmişse
Takvim isteğiYapıştırdığınız ICS adresineAjanda sekmesi açıkken
Model indirmeleriHugging Face / GitHubİlk kullanımda, sadece indirme

"Bulut son geçişi" varsayılan olarak kapalıdır ve iki koşul birden sağlanmadan çalışmaz: ayarın açık olması ve işletim sistemi anahtar deposunda kayıtlı bir anahtar bulunması. Yerel modeli seçerseniz hiçbir metin de dışarı çıkmaz.

Veriler nerede

WindowsmacOS
Veritabanı%LocalAppData%\WhisperNotesX\whispernotes.db~/Library/Application Support/WhisperNotesX/whispernotes.db
Ses kayıtları…\WhisperNotesX\Recordings…/WhisperNotesX/Recordings
Modeller…\WhisperNotesX\models…/WhisperNotesX/models
Yedekler…\WhisperNotesX\Backups…/WhisperNotesX/Backups

Uygulama her açılışta veritabanının damgalı bir kopyasını alır (son 10 kopya saklanır) ve şema değişikliklerini yalnızca ekleyerek uygular — tablo silme veya yeniden kurma yoktur. Kayıt sırasında çökme olursa yarım kalan ses bir sonraki açılışta toparlanır.


Geliştirme

dotnet build WhisperNotesX/WhisperNotesX.csproj      # proje yolu: .slnx eski SDK'larda okunmaz
dotnet test  WhisperNotesX.Core.Tests/WhisperNotesX.Core.Tests.csproj
dotnet run   --project WhisperNotesX
WhisperNotesX/            Avalonia arayüzü — pencereler, view model'ler, servisler
WhisperNotesX.Core/       platformdan bağımsız çekirdek
  Audio/                    yakalama arabirimi, halka tampon, ses eşiği, WAV yazma/karıştırma
  Stt/                      Whisper sarmalayıcı, sözlük, satır birleştirme, bulut geçişi
  Diarization/              konuşmacı ayrıştırma (sherpa-onnx)
  Llm/                      Claude / Gemini / Qwen / yerel arka uçlar, istemler, canlı düzeltme
  Calendar/                 ICS takvim köprüsü
  Data/                     EF Core SQLite, ayarlar, şema koruması
WhisperNotesX.Core.Tests/ xUnit — 59 test

Platforma özgü kod tek yerde toplanır: AudioDeviceFactory (Windows WASAPI / macOS PortAudio), Secrets/ (Credential Manager / Keychain). Arayüz katmanında platform koşulu yoktur.

Her push'ta GitHub Actions windows-latest ve macos-14 üzerinde derleyip testleri koşar. Katkı göndermeden önce ikisinin de yeşil olduğundan emin olun. Projeye özgü kurallar (veri silmeme, yalnızca ekleyen şema değişikliği, ölçülmüş eşiklere dokunmama) için CLAUDE.md dosyasına bakın.

Kullanılan başlıca bileşenler: Avalonia, Whisper.net (whisper.cpp), LLamaSharp (llama.cpp), sherpa-onnx, SharpHook, NAudio, PortAudioSharp2.

Bilinen sınırlar

  • macOS'ta sistem sesi için sanal ses aygıtı (BlackHole) kurulumu gerekir.
  • Yankı engelleme yoktur; hoparlörden gelen ses mikrofona karışabilir — metin bazlı bir süzgeç bunu büyük ölçüde temizler, yine de kulaklık önerilir.
  • Konuşmacı ayrıştırma modeli Türkçeye özel eğitilmiş değildir; genel amaçlı bir ses parmak izi modeli kullanılır.
  • Arayüz yalnızca Türkçedir.

Lisans

MIT — bkz. LICENSE.


English summary

WhisperNotes X is a desktop meeting-transcription and dictation app for Windows 11 and macOS, built on .NET 8 + Avalonia. It captures the microphone and system audio simultaneously, transcribes locally with Whisper (tuned for Turkish), separates speakers with sherpa-onnx, and can generate a cleaned transcript and a structured summary through a local model (Qwen 2.5 3B) or a cloud provider (Claude, Gemini, Qwen). Dictation mode types the recognized text into whatever app has focus.

Speech recognition is fully local and nothing is uploaded by default; cloud features are opt-in and require a key stored in the OS credential store. Windows setup is automated by scripts/setup-windows.ps1; see docs/WINDOWS_SETUP.md. The UI is Turkish only.

adilmustafayilmaz/WhisperNotesX

Toplantı ve dikte uygulaması — Windows 11 + macOS (Avalonia, Whisper, yerel/bulut LLM)

C#

1

17 commits

updated Jul 28, 2026

See the code

README

WhisperNotes X

Toplantılarınızı ve diktelerinizi bilgisayarınızda yazıya döken masaüstü uygulaması. Türkçe için ayarlandı, Windows 11 ve macOS'ta aynı kod tabanıyla çalışır.

CI Lisans: MIT Platform .NET


Ne işe yarar

Toplantı kaydı. Mikrofonunuzu ve bilgisayarınızdan çıkan sesi (Meet, Zoom, Teams — fark etmez) aynı anda dinler, konuşulanları canlı olarak ekrana yazar. Kayıt biterken kimin ne söylediğini ayırır, isterseniz temiz bir transkript ve yapılandırılmış bir toplantı özeti üretir.

Dikte. Kısayola basın, konuşun, susun. Metin düzeltilip o an odakta olan uygulamaya yazılır — e-postaya, Word'e, sohbet kutusuna. Panoya da kopyalanır.

Kendi bilgisayarınızda. Konuşma tanıma yereldeki Whisper ile yapılır; internet gerekmez. Yapay zekâ desteği isterseniz sağlayıcıyı siz seçersiniz, dilerseniz o da yerel modelle çalışır. Hiçbir şey varsayılan olarak dışarı gönderilmez — ayrıntı için Gizlilik bölümü.

Öne çıkan özellikler

🎙 Çift kanal kayıtMikrofon + sistem sesi ayrı hatlarda; "Ben" ve karşı taraf ayrı etiketlenir
🗣 Konuşmacı ayrıştırmaKayıt bitince kimin konuştuğu ayrılır, konuşmacılara isim verebilirsiniz
✍️ DikteKonuştuğunuz metin herhangi bir uygulamaya yazılır; sessizlikte otomatik durur
📖 Türkçe sözlük583 terimlik telaffuz sözlüğü ("en eyt en" → n8n); kendi terimlerinizi ekleyebilirsiniz
🤖 Not üretimiTemiz transkript ve özet (Kararlar / Aksiyon Maddeleri / Açık Sorular); istediğiniz kadar sürüm
⚡ Canlı düzeltmeKayıt sürerken satırlar bağlama göre kendini düzeltir (bulut sağlayıcıyla)
🔊 Ses kaydı ve oynatmaOturum sese kaydedilir; bir satıra ya da bir kelimeye tıklayınca ses o ana gider
📅 AjandaTakvim akışınızdaki toplantıyı tek tıkla kaydetmeye başlar
🪟 Mini araçHer zaman üstte duran küçük pencere: dikteyi başlat, süreyi ve ses seviyesini gör
🛟 Veri güvenliğiHer açılışta veritabanı yedeği; çökme sonrası yarım kalan kayıt kurtarılır

Nasıl çalışır

flowchart LR
  A[Mikrofon] --> C
  B[Sistem sesi] --> C
  C[Ses eşiği + parçalama] --> D[Whisper<br/>yerel]
  D --> E[Sözlük · sızıntı süzgeci<br/>paragraf birleştirme]
  E --> F[(SQLite)]
  E -.isteğe bağlı.-> G[Canlı düzeltme<br/>bulut LLM]
  F --> H[Konuşmacı ayrıştırma<br/>yerel]
  F --> I[Temiz transkript<br/>ve özet]
  F --> J[Dikte → odaktaki uygulama]

Konuşma tanıma tamamen yerel çalışır. Kesikli çizgiyle gösterilen adımlar yalnızca siz bir sağlayıcı seçip anahtar girdiğinizde devreye girer.


Kurulum

Windows 11

git clone https://github.com/adilmustafayilmaz/WhisperNotesX.git
cd WhisperNotesX
.\scripts\setup-windows.ps1

Script gerekenleri tek tek kontrol eder, yalnızca eksik olanı kurar, sonra derleyip testleri koşar. Hiçbir şey kurmadan sadece rapor almak için .\scripts\setup-windows.ps1 -CheckOnly.

Elle kurmak isterseniz gerekenler:

GereksinimNedenKurulum
.NET 8 SDK (veya üzeri)Uygulama net8.0 hedeflerwinget install Microsoft.DotNet.SDK.8
VC++ 2015-2022 x64 RedistributableWhisper ve LLM yerel kütüphaneleri MSVC ile derlendiwinget install Microsoft.VCRedist.2015+.x64
~4 GB boş diskKonuşma tanıma modeli için—

Sonra:

dotnet run --project WhisperNotesX

Ekran kartı: uygun bir GPU varsa konuşma tanıma Vulkan üzerinden GPU'da çalışır, yoksa kendiliğinden CPU'ya düşer. Ayar gerekmez. Hangisinin çalıştığını durum çubuğu yazar ("Model hazır · GPU (Vulkan)"). GTX 1060'ta ölçülen fark: 30 sn ses 31 sn → 9 sn.

Ayrıntılı kurulum, doğrulama adımları ve sorun giderme: docs/WINDOWS_SETUP.md

macOS (Apple Silicon)

git clone https://github.com/adilmustafayilmaz/WhisperNotesX.git
cd WhisperNotesX
./scripts/run.sh          # ya da: dotnet run --project WhisperNotesX

İzinler ve ek adımlar:

  • Mikrofon — ilk kayıtta sorulur.
  • Erişilebilirlik (Sistem Ayarları → Gizlilik ve Güvenlik → Erişilebilirlik) — global kısayollar ve dikte yazımı için gerekir. Verilmezse uygulama çalışır, sadece bu iki özellik devre dışı kalır.
  • Sistem sesi — macOS'ta karşı tarafın sesini yakalamak için sanal ses aygıtı gerekir:
    brew install blackhole-2ch
    
    Ardından Audio MIDI Setup'ta hoparlörünüz + BlackHole ile bir çoklu çıkış aygıtı oluşturup sistem çıkışını ona alın. Kurmazsanız toplantılar yalnızca mikrofonu kaydeder. (Windows'ta bu adım gerekmez.)

İlk çalıştırma

  1. Uygulama tepsi/menü çubuğu simgesi olarak açılır, ana pencere görünür.
  2. Konuşma tanıma modeli arka planda iner — durum çubuğunda yüzde görünür.
  3. Not üretimi isterseniz Ayarlar → Yapay Zekâ'dan bir sağlayıcı seçin.

Model seçenekleri (Ayarlar → Konuşma Tanıma):

ModelBoyutNe zaman
ggml-large-v3~2,9 GBVarsayılan. Türkçede en yüksek doğruluk
ggml-large-v3-turbo~574 MBHızlı başlangıç, biraz daha düşük doğruluk
ggml-small~488 MBZayıf donanım
ggml-base~148 MBSadece deneme

Kullanım

Kısayollar

Kısayolİşlev
Ctrl+Shift+R (mac: ⌘⇧R)Toplantı kaydını başlat / durdur
Ctrl+Shift+D (mac: ⌘⇧D)Dikteyi başlat / durdur
Ctrl+Alt+KYapay zekâ üretimini durdur

Toplantı

Kaydı başlatın; satırlar konuşuldukça ekrana düşer. Karşı tarafın sesi ayrı hatta yakalanır, aynı sözün iki hatta birden yazılmasını engelleyen bir süzgeç vardır. Kayıt bitince konuşmacılar ayrılır; bir konuşmacı çipine sağ tıklayıp isim verebilirsiniz — bu isim özetlere de yansır.

Kayda Devam Et ile eski bir toplantıya ekleme yapabilirsiniz; yeni satırlar zaman çizelgesinde öncekilerin ardına eklenir, ses de birleştirilir.

Notlar

Üretim çubuğunda üç düğme var: Temiz Transkript, Özet (Orijinal), Özet (Temiz). Her üretim yeni bir sürüm olarak saklanır — eskiyi kaybetmeden yeniden üretebilir, sürümler arasında geçiş yapabilir, beğenmediğinizi silebilirsiniz. Uzun toplantılarda özet parça parça çıkarılıp birleştirilir, böylece toplantının ortası kaybolmaz.

Çıktı .md olarak dışa aktarılabilir; ses dosyası da ayrıca kaydedilebilir.

Dikte

Ctrl+Shift+D → konuşun → tekrar Ctrl+Shift+D (ya da sessizlikte otomatik durur, varsayılan 8 sn). Metin isteğe bağlı olarak yapay zekâ ile düzeltilir, sonra odaktaki uygulamaya yazılır ve panoya kopyalanır. Model saçmalarsa düzeltilmiş metin değil ham metin yazılır — bir makullük süzgeci bunu denetler.

Ajanda

Ayarlar → Ajanda'ya takviminizin ICS adresini yapıştırın (Google Takvim: takvim ayarları → "Gizli adres iCal biçiminde"; Outlook: yayınlanmış takvim bağlantısı). Yaklaşan toplantılar listelenir, yanındaki düğme kaydı doğrudan o toplantının adıyla başlatır. Özetteki aksiyon maddelerini .ics görev dosyası olarak dışa aktarabilirsiniz.


Yapay zekâ sağlayıcıları

Not üretimi ve dikte cilası için dört seçenek var. Ayarlar → Yapay Zekâ'dan seçilir.

SağlayıcıNasıl çalışırNe zaman tercih edilir
Yerel (Qwen 2.5 3B)İlk kullanımda ~2 GB model iner, tamamen çevrimdışıVeri bilgisayardan çıkmasın isteniyorsa
ClaudeAPI anahtarı gerekirEn iyi Türkçe özet
GeminiAPI anahtarı gerekirÜcretsiz kotayla denemek için
Qwen (Alibaba Cloud)API anahtarı gerekirAlternatif bulut seçeneği

Anahtarlar hiçbir zaman dosyaya yazılmaz: Windows'ta Credential Manager, macOS'ta Keychain kullanılır. Bir bulut çağrısı başarısız olursa uygulama tek tıkla yerel modele düşmeyi önerir.

Kayıt sırasında canlı düzeltme yalnızca bulut sağlayıcılarla çalışır (yerel model bu hıza yetişemez).

Gizlilik

Bilgisayarınızdan ne çıkar, ne zaman çıkar:

VeriNereyeNe zaman
Ses kaydıHiçbir yereVarsayılan olarak ses hiç yüklenmez
Transkript metniSeçtiğiniz LLM sağlayıcısınaYalnız not üretimi ya da canlı düzeltme çalışırken
Ses kaydı (isteğe bağlı)ElevenLabsYalnız "Bulut son geçişi" açıksa ve anahtar girilmişse
Takvim isteğiYapıştırdığınız ICS adresineAjanda sekmesi açıkken
Model indirmeleriHugging Face / GitHubİlk kullanımda, sadece indirme

"Bulut son geçişi" varsayılan olarak kapalıdır ve iki koşul birden sağlanmadan çalışmaz: ayarın açık olması ve işletim sistemi anahtar deposunda kayıtlı bir anahtar bulunması. Yerel modeli seçerseniz hiçbir metin de dışarı çıkmaz.

Veriler nerede

WindowsmacOS
Veritabanı%LocalAppData%\WhisperNotesX\whispernotes.db~/Library/Application Support/WhisperNotesX/whispernotes.db
Ses kayıtları…\WhisperNotesX\Recordings…/WhisperNotesX/Recordings
Modeller…\WhisperNotesX\models…/WhisperNotesX/models
Yedekler…\WhisperNotesX\Backups…/WhisperNotesX/Backups

Uygulama her açılışta veritabanının damgalı bir kopyasını alır (son 10 kopya saklanır) ve şema değişikliklerini yalnızca ekleyerek uygular — tablo silme veya yeniden kurma yoktur. Kayıt sırasında çökme olursa yarım kalan ses bir sonraki açılışta toparlanır.


Geliştirme

dotnet build WhisperNotesX/WhisperNotesX.csproj      # proje yolu: .slnx eski SDK'larda okunmaz
dotnet test  WhisperNotesX.Core.Tests/WhisperNotesX.Core.Tests.csproj
dotnet run   --project WhisperNotesX
WhisperNotesX/            Avalonia arayüzü — pencereler, view model'ler, servisler
WhisperNotesX.Core/       platformdan bağımsız çekirdek
  Audio/                    yakalama arabirimi, halka tampon, ses eşiği, WAV yazma/karıştırma
  Stt/                      Whisper sarmalayıcı, sözlük, satır birleştirme, bulut geçişi
  Diarization/              konuşmacı ayrıştırma (sherpa-onnx)
  Llm/                      Claude / Gemini / Qwen / yerel arka uçlar, istemler, canlı düzeltme
  Calendar/                 ICS takvim köprüsü
  Data/                     EF Core SQLite, ayarlar, şema koruması
WhisperNotesX.Core.Tests/ xUnit — 59 test

Platforma özgü kod tek yerde toplanır: AudioDeviceFactory (Windows WASAPI / macOS PortAudio), Secrets/ (Credential Manager / Keychain). Arayüz katmanında platform koşulu yoktur.

Her push'ta GitHub Actions windows-latest ve macos-14 üzerinde derleyip testleri koşar. Katkı göndermeden önce ikisinin de yeşil olduğundan emin olun. Projeye özgü kurallar (veri silmeme, yalnızca ekleyen şema değişikliği, ölçülmüş eşiklere dokunmama) için CLAUDE.md dosyasına bakın.

Kullanılan başlıca bileşenler: Avalonia, Whisper.net (whisper.cpp), LLamaSharp (llama.cpp), sherpa-onnx, SharpHook, NAudio, PortAudioSharp2.

Bilinen sınırlar

  • macOS'ta sistem sesi için sanal ses aygıtı (BlackHole) kurulumu gerekir.
  • Yankı engelleme yoktur; hoparlörden gelen ses mikrofona karışabilir — metin bazlı bir süzgeç bunu büyük ölçüde temizler, yine de kulaklık önerilir.
  • Konuşmacı ayrıştırma modeli Türkçeye özel eğitilmiş değildir; genel amaçlı bir ses parmak izi modeli kullanılır.
  • Arayüz yalnızca Türkçedir.

Lisans

MIT — bkz. LICENSE.


English summary

WhisperNotes X is a desktop meeting-transcription and dictation app for Windows 11 and macOS, built on .NET 8 + Avalonia. It captures the microphone and system audio simultaneously, transcribes locally with Whisper (tuned for Turkish), separates speakers with sherpa-onnx, and can generate a cleaned transcript and a structured summary through a local model (Qwen 2.5 3B) or a cloud provider (Claude, Gemini, Qwen). Dictation mode types the recognized text into whatever app has focus.

Speech recognition is fully local and nothing is uploaded by default; cloud features are opt-in and require a key stored in the OS credential store. Windows setup is automated by scripts/setup-windows.ps1; see docs/WINDOWS_SETUP.md. The UI is Turkish only.