Erste Schritte

Soniqo Cloud

Lieber eine gehostete API? Dieselbe Transkription, Synthese und das Cloning als Managed Service — OpenAI- und ElevenLabs-kompatibel. soniqo.audio/cloud →

Installiere die speech-CLI, um auf deinem Apple-Silicon-Mac Audio zu transkribieren und zu erzeugen. Mit dem Swift SDK integrierst du Sprachverarbeitung in macOS- und iOS-Apps.

Voraussetzungen für die CLI

CLI installieren

Homebrew (CLI)

Installiere speech und den HTTP/WebSocket-Server speech-server mit der nativen ARM-Version von Homebrew (/opt/homebrew).

brew install speech
speech --help

Erste Aufgabe: Eine M4A-Datei transkribieren

Lade die Beispielaufnahme herunter und transkribiere sie im Terminal:

Verbinde dich für den ersten Aufruf mit dem Internet. Das gewählte Modell wird von HuggingFace heruntergeladen und auf deinem Mac zwischengespeichert. Nach der Einrichtung kannst du mit diesem Modell lokale Aufnahmen offline transkribieren.

curl -fL https://soniqo.audio/audio/samples/cli/transcription-sample.m4a -o transcription-sample.m4a
speech transcribe transcription-sample.m4a --engine parakeet

Weiter zur Anleitung: M4A in Text umwandeln.

Schnellstart: Text-zu-Sprache

speech speak "Hello, world!" --output hello.wav

Lokale Sprach-API starten

Starte den HTTP/WebSocket-Server für lokale API-Anfragen:

speech-server --port 8080

Swift SDK

Füge die Swift-Module mit Swift Package Manager zu deiner App für macOS 15+ oder iOS 18+ hinzu.

Swift Package Manager

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

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

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)
WhisperASRSprache-zu-Text (Whisper Large-v3 Turbo, CoreML)
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

Audio mit Swift transkribieren

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)

Sprache mit Swift erzeugen

import Qwen3TTS
import AudioCommon

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

Aus dem Quellcode bauen

Für einen Build aus dem Quellcode brauchst du Xcode 16.3+ mit der Metal Toolchain und Swift 6+. Klone das Repository, baue die CLI und prüfe die ausführbare Datei im Checkout:

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

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

Shader-Builds verwenden standardmäßig macOS 15.0 und Metal 3.2, auch mit neueren SDKs. Für angepasste Builds ändern MACOSX_DEPLOYMENT_TARGET und MLX_METAL_LANGUAGE_VERSION diese Vorgaben; höhere Zielversionen können ältere Systeme ausschließen. Änderungen an Compiler, SDK, Optionen, Skript oder Quelldateien machen den Cache ungültig. Bei Kompilierungs- oder Linkfehlern bleiben die vorherige Bibliothek und der Cache-Hash erhalten.

Modell-Downloads

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

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

ModellGrößeRAM-Verbrauch
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
Whisper Large-v3 Turbo (CoreML FP16)1.6 GB~384 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 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