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

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 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", branch: "main")
]

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ülAçıklama
Qwen3ASRKonuşmadan metne (Qwen3-ASR)
ParakeetASRKonuşmadan metne (Parakeet TDT, CoreML)
Qwen3TTSMetinden konuşmaya (Qwen3-TTS)
CosyVoiceTTSMetinden konuşmaya (CosyVoice3, çok dilli)
KokoroTTSMetinden konuşmaya (Kokoro-82M, CoreML, iOS uyumlu)
Qwen3ChatCihaz içi LLM sohbeti (Qwen3.5-0.8B, MLX + CoreML)
PersonaPlexKonuşmadan konuşmaya (PersonaPlex 7B)
SpeechVADVAD (Silero + Pyannote), konuşmacı ayrıştırma, konuşmacı embedding'leri
SpeechEnhancementGürültü azaltma (DeepFilterNet3, CoreML)
AudioCommonOrtak 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
Önemli

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.fromPretrained()
// audioSamples: [Float] PCM at 16 kHz (e.g. decoded from a WAV)
let text = model.transcribe(audio: audioSamples, sampleRate: 16000)
print(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
import AudioCommon

let model = try await Qwen3TTSModel.fromPretrained()
let audio = model.synthesize(text: "Hello, world!", language: "english")
try WAVWriter.write(samples: audio, sampleRate: 24000, to: URL(filePath: "hello.wav"))

Model İndirmeleri

Tüm modeller ilk kullanımda HuggingFace'ten indirilir. Yaklaşık boyutlar:

ModelBoyutRAM Kullanımı
Qwen3-ASR 0.6B (4-bit MLX)680 MB~1.0 GB peak
Qwen3-ASR 0.6B (8-bit MLX)1.0 GB~1.3 GB peak
Qwen3-ASR 0.6B (CoreML INT8)180 MB~1.4 GB peak
Qwen3-ASR 1.7B (4-bit MLX)2.1 GB~3 GB peak
Qwen3-ASR 1.7B (8-bit MLX)3.2 GB~2.7 GB peak
Parakeet-TDT v3 (CoreML INT8)500 MB~900 MB peak
Omnilingual CTC 300M (4-bit MLX)193 MB~400 MB peak
Omnilingual CTC 300M (CoreML INT8)312 MB~550 MB peak
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) önerilen9.1 GB~11 GB tepe
PersonaPlex 7B (4-bit)4.9 GB~6.5 GB tepe
Pyannote VAD5.7 MB~20 MB tepe
Silero VAD v51.2 MB~5 MB tepe
WeSpeaker ResNet3425 MB~50 MB tepe
DeepFilterNet3 (FP16)4.2 MB~10 MB tepe

Sonraki Adımlar