Erste Schritte

speech-swift bietet KI-Sprachverarbeitung auf dem Gerät für macOS und iOS auf Apple Silicon. Modelle laufen lokal über MLX (Metal-GPU) und CoreML (Neural Engine).

Voraussetzungen

Installation

Swift Package Manager

Füge speech-swift zu den Abhängigkeiten deiner Package.swift hinzu:

dependencies: [
    .package(url: "https://github.com/soniqo/speech-swift", from: "0.0.9")
]

Füge dann die benötigten Module zu deinem Target hinzu:

.target(
    name: "MyApp",
    dependencies: [
        .product(name: "Qwen3ASR", package: "speech-swift"),
        .product(name: "Qwen3TTS", package: "speech-swift"),
        .product(name: "SpeechVAD", package: "speech-swift"),
        // ... füge beliebige benötigte Module hinzu
    ]
)

Verfügbare Module

ModulBeschreibung
Qwen3ASRSprache-zu-Text (Qwen3-ASR)
ParakeetASRSprache-zu-Text (Parakeet TDT, CoreML)
Qwen3TTSText-zu-Sprache (Qwen3-TTS)
CosyVoiceTTSText-zu-Sprache (CosyVoice3, mehrsprachig)
KokoroTTSText-zu-Sprache (Kokoro-82M, CoreML, iOS-tauglich)
Qwen3ChatLLM-Chat auf dem Gerät (Qwen3.5-0.8B, MLX + CoreML)
PersonaPlexSprache-zu-Sprache (PersonaPlex 7B)
SpeechVADVAD (Silero + Pyannote), Diarisierung, Sprechereinbettungen
SpeechEnhancementRauschunterdrückung (DeepFilterNet3, CoreML)
AudioCommonGemeinsame Protokolle, Audio-I/O, HuggingFace-Downloader

Aus dem Quellcode bauen

Klone das Repository und baue:

git clone https://github.com/soniqo/speech-swift.git
cd speech-swift
make build
Wichtig

make build kompiliert die MLX-Metal-Shader-Bibliothek automatisch. Ohne sie läuft die GPU-Inferenz ~5-mal langsamer wegen JIT-Shader-Kompilierung.

Schnellstart: Audio transkribieren

CLI

# Eine WAV-Datei transkribieren
.build/release/audio 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)

Modelle werden beim ersten Gebrauch automatisch von HuggingFace heruntergeladen und in ~/Library/Caches/qwen3-speech/ zwischengespeichert.

Schnellstart: Text-zu-Sprache

CLI

# Sprache erzeugen
.build/release/audio speak "Hallo Welt!" --output hello.wav

Swift-API

import Qwen3TTS

let model = try await Qwen3TTSModel.loadFromHub()
let audio = try await model.speak("Hallo Welt!")
try audio.write(to: "hello.wav")

Modell-Downloads

Alle Modelle werden beim ersten Gebrauch von HuggingFace heruntergeladen. Ungefähre Größen:

ModellGrößeRAM-Verbrauch
Qwen3-ASR 0.6B (4-Bit)680 MB~2,2 GB Peak
Qwen3-ASR 0.6B (8-Bit)1,0 GB~2,5 GB Peak
Qwen3-ASR 1.7B (4-Bit)2,1 GB~4 GB Peak
Parakeet-TDT (CoreML INT8)500 MB~600 MB Peak
Qwen3-TTS 0.6B (4-Bit)1,7 GB~2 GB Peak
Qwen3-TTS 1.7B (4-Bit)3,2 GB~4 GB Peak
CosyVoice3 (4-Bit-LLM)1,2 GB~1,5 GB Peak
Kokoro-82M (CoreML INT8)89 MB~200 MB Peak
Qwen3.5-Chat 0.8B (INT4 MLX)418 MB~700 MB Peak
Qwen3.5-Chat 0.8B (INT8 CoreML)981 MB~1,2 GB Peak
PersonaPlex 7B (8-Bit) empfohlen9,1 GB~11 GB Peak
PersonaPlex 7B (4-Bit)4,9 GB~6,5 GB Peak
Pyannote VAD5,7 MB~20 MB Peak
Silero VAD v51,2 MB~5 MB Peak
WeSpeaker ResNet3425 MB~50 MB Peak
DeepFilterNet3 (FP16)4,2 MB~10 MB Peak

Nächste Schritte