# Hammerspoon Dictation: Metal GPU Hızlandırmalı Sesli Yazıya Çevirme

[r/ClaudeAI](https://reddit.com/r/ClaudeAI/comments/1o6158u/built_a_voicetotext_system_for_macos_with_claude/) • [r/macOS](https://reddit.com/r/MacOS/comments/1o613zy/voicetotext_on_macos_using_local_gpu_0315s/) • [r/LocalLLaMA](https://reddit.com/r/LocalLLaMA/comments/1o61494/local_voicetotext_on_apple_silicon_with_smart/)

macOS için yerel GPU kullanarak ses-metin dönüşümü yapan sistem. Claude Code ile yazdım.

Alt+A → konuş → Alt+A → metin yapışır. 0.3-1.5 saniye.

## Akış

```
Alt+A tuşuna bas (TR) / Alt+Shift+A (EN)
  ↓
Hammerspoon hotkey yakala
  ↓
audiorecord.swift kayda başla → Görsel gösterge (◉ REC)
  ↓
Alt+A tekrar bas
  ↓
audiorecord.swift kaydet ~/Recordings/*.wav
  ↓
voice-transcribe.ts orkestrasyon
  ↓
  ┌─────────────────────────────────────────┐
  │ Sağlayıcı Kademesi (hata → sonraki)     │
  ├─────────────────────────────────────────┤
  │ 1. Parakeet :8768                       │
  │    ├─ Sadece İngilizce                  │
  │    ├─ ~0.3s                             │
  │    ├─ Ücretsiz, GPU                     │
  │    └─ HTTP istek                        │
  │         ↓ (hata veya TR)                │
  │ 2. Whisper MLX :8770                    │
  │    ├─ Türkçe/İngilizce                  │
  │    ├─ ~1.5s                             │
  │    ├─ Ücretsiz, GPU                     │
  │    └─ WebSocket stream                  │
  │         ↓ (hata veya kapalı)            │
  │ 3. ElevenLabs API (opsiyonel)           │
  │    ├─ Bulut                             │
  │    ├─ ~2-3s                             │
  │    └─ API key gerekli                   │
  │         ↓ (hata veya kapalı)            │
  │ 4. OpenAI Whisper API (opsiyonel)       │
  │    ├─ Bulut                             │
  │    ├─ ~2-3s                             │
  │    └─ API key gerekli                   │
  └─────────────────────────────────────────┘
  ↓
Transkript metni döndü
  ↓
Akıllı pano: eski kaydet → yeni yapıştır → eski geri yükle
  ↓
Metin aktif uygulamada görünür + boşluk ekle
```

## Mimari

```
hammerspoon/
├─ init.lua                   → Giriş noktası, config yükle
├─ modules/dictation.lua      → Kayıt orkestrasyon, hotkey
└─ scripts/
   ├─ voice-transcribe.ts     → STT sağlayıcı kademesi
   └─ lib/
      ├─ parakeet.ts          → HTTP istemci
      └─ whisper-stream.ts    → WebSocket istemci

services/
├─ parakeet.py               → :8768 HTTP sunucu (Parakeet MLX)
├─ whisper-mlx-stream.py     → :8770 WebSocket sunucu (Whisper MLX)
└─ ecosystem.config.cjs      → PM2 servis yönetici

audiorecord-swift/
└─ audiorecord.swift         → Yerel ses kaydı (AVFoundation)
```

## Kurulum

```bash
git clone https://github.com/yemreak/hammerspoon-dictation.git
cd hammerspoon-dictation
./scripts/install.sh
```

Otomatik yükleyici her şeyi kuruyor. 5 dakika.

[hammerspoon-dictation](https://github.com/yemreak/hammerspoon-dictation)
