Başlangıç
speech-swift, Apple Silicon üzerinde macOS ve iOS için cihaz içi yapay zekâ tabanlı konuşma işleme sağlar. Modeller yerel olarak MLX (Metal GPU) ve CoreML (Neural Engine) ile çalışır.
Gereksinimler
- macOS 15+ (Sequoia veya üzeri)
- Apple Silicon (M1, M2, M3, M4 serisi)
- Xcode 15.4+ / Swift 6.0+
- En az 8 GB RAM (daha büyük modeller için 16 GB önerilir)
Kurulum
Homebrew (CLI)
speech-swift'i macOS üzerinde denemenin en hızlı yolu. Hem speech CLI'sini hem de speech-server HTTP/WebSocket sunucusunu (OpenAI uyumlu /v1/realtime uç noktası) kurar. Yerel ARM Homebrew (/opt/homebrew) gereklidir.
brew install soniqo/tap/speech
Kurulumdan sonra her iki çalıştırılabilir dosya da PATH'inizde yer alır:
speech transcribe recording.wav
speech speak "Hello, world!" --output hello.wav
speech-server --port 8080 # yerel HTTP / WebSocket sunucusu
Swift Package Manager
speech-swift'i Package.swift bağımlılıklarınıza ekleyin:
dependencies: [
.package(url: "https://github.com/soniqo/speech-swift", from: "0.0.9")
]
Ardından ihtiyaç duyduğunuz modülleri hedefinize ekleyin:
.target(
name: "MyApp",
dependencies: [
.product(name: "Qwen3ASR", package: "speech-swift"),
.product(name: "Qwen3TTS", package: "speech-swift"),
.product(name: "SpeechVAD", package: "speech-swift"),
// ... add any modules you need
]
)
Mevcut Modüller
| Modül | Açıklama |
|---|---|
Qwen3ASR | Konuşmadan metne (Qwen3-ASR) |
ParakeetASR | Konuşmadan metne (Parakeet TDT, CoreML) |
Qwen3TTS | Metinden konuşmaya (Qwen3-TTS) |
CosyVoiceTTS | Metinden konuşmaya (CosyVoice3, çok dilli) |
KokoroTTS | Metinden konuşmaya (Kokoro-82M, CoreML, iOS uyumlu) |
Qwen3Chat | Cihaz içi LLM sohbeti (Qwen3.5-0.8B, MLX + CoreML) |
PersonaPlex | Konuşmadan konuşmaya (PersonaPlex 7B) |
SpeechVAD | VAD (Silero + Pyannote), konuşmacı ayrıştırma, konuşmacı embedding'leri |
SpeechEnhancement | Gürültü azaltma (DeepFilterNet3, CoreML) |
AudioCommon | Ortak protokoller, ses I/O, HuggingFace indirici |
Kaynaktan Derleme
Depoyu klonlayın ve derleyin:
git clone https://github.com/soniqo/speech-swift.git
cd speech-swift
make build
make build, MLX Metal shader kütüphanesini otomatik olarak derler. Bu olmadan, JIT shader derlemesi nedeniyle GPU üzerindeki çıkarım yaklaşık 5 kat daha yavaş çalışır.
Hızlı Başlangıç: Sesi Metne Dönüştürme
CLI
# Bir WAV dosyasını metne dönüştür
.build/release/speech transcribe recording.wav
Swift API
import Qwen3ASR
let model = try await Qwen3ASRModel.loadFromHub()
let result = try await model.transcribe(audioFile: "recording.wav")
print(result.text)
Modeller ilk kullanımda HuggingFace'ten otomatik olarak indirilir ve ~/Library/Caches/qwen3-speech/ içinde önbelleğe alınır.
Hızlı Başlangıç: Metinden Konuşmaya
CLI
# Konuşma üret
.build/release/speech speak "Hello, world!" --output hello.wav
Swift API
import Qwen3TTS
let model = try await Qwen3TTSModel.loadFromHub()
let audio = try await model.speak("Hello, world!")
try audio.write(to: "hello.wav")
Model İndirmeleri
Tüm modeller ilk kullanımda HuggingFace'ten indirilir. Yaklaşık boyutlar:
| Model | Boyut | RAM Kullanımı |
|---|---|---|
| Qwen3-ASR 0.6B (4-bit) | 680 MB | ~2.2 GB tepe |
| Qwen3-ASR 0.6B (8-bit) | 1.0 GB | ~2.5 GB tepe |
| Qwen3-ASR 1.7B (4-bit) | 2.1 GB | ~4 GB tepe |
| Parakeet-TDT (CoreML INT8) | 500 MB | ~600 MB tepe |
| Qwen3-TTS 0.6B (4-bit) | 1.7 GB | ~2 GB tepe |
| Qwen3-TTS 1.7B (4-bit) | 3.2 GB | ~4 GB tepe |
| CosyVoice3 (4-bit LLM) | 1.2 GB | ~1.5 GB tepe |
| Kokoro-82M (CoreML INT8) | 89 MB | ~200 MB tepe |
| Qwen3.5-Chat 0.8B (INT4 MLX) | 418 MB | ~700 MB tepe |
| Qwen3.5-Chat 0.8B (INT8 CoreML) | 981 MB | ~1.2 GB tepe |
| PersonaPlex 7B (8-bit) önerilen | 9.1 GB | ~11 GB tepe |
| PersonaPlex 7B (4-bit) | 4.9 GB | ~6.5 GB tepe |
| Pyannote VAD | 5.7 MB | ~20 MB tepe |
| Silero VAD v5 | 1.2 MB | ~5 MB tepe |
| WeSpeaker ResNet34 | 25 MB | ~50 MB tepe |
| DeepFilterNet3 (FP16) | 4.2 MB | ~10 MB tepe |
Sonraki Adımlar
- CLI Referansı — mevcut tüm komutlar ve seçenekler
- Qwen3-ASR Kılavuzu — ayrıntılı konuşmadan metne belgeleri
- Qwen3-TTS Kılavuzu — ayrıntılı metinden konuşmaya belgeleri
- API ve Protokoller — ortak protokoller ve tipler