Premiers pas

Soniqo Cloud

Vous préférez une API hébergée ? Les mêmes transcription, synthèse et clonage en service managé — compatible OpenAI et ElevenLabs. soniqo.audio/cloud →

Installez la CLI speech pour transcrire et générer de l’audio sur votre Mac Apple Silicon. Utilisez le SDK Swift pour intégrer le traitement vocal à vos applications macOS et iOS.

Prérequis de la CLI

Installer la CLI

Homebrew (CLI)

Utilisez la version ARM native de Homebrew (/opt/homebrew) pour installer speech et le serveur HTTP/WebSocket speech-server.

brew install speech
speech --help

Première tâche : transcrire un fichier M4A

Téléchargez l’enregistrement d’exemple, puis transcrivez-le dans le terminal :

Connectez-vous à internet pour la première exécution. Le modèle sélectionné se télécharge depuis HuggingFace et reste en cache sur votre Mac. Une fois la configuration terminée, vous pouvez transcrire des enregistrements locaux hors ligne avec ce modèle.

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

Continuer avec le guide M4A vers texte.

Démarrage rapide : synthèse vocale

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

Lancer une API vocale locale

Démarrez le serveur HTTP/WebSocket pour traiter les requêtes API locales :

speech-server --port 8080

SDK Swift

Ajoutez les modules Swift à votre application macOS 15+ ou iOS 18+ avec Swift Package Manager.

Swift Package Manager

Ajoutez speech-swift aux dépendances de votre Package.swift :

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

Puis ajoutez les modules dont vous avez besoin à votre cible :

.target(
    name: "MyApp",
    dependencies: [
        .product(name: "Qwen3ASR", package: "speech-swift"),
        .product(name: "Qwen3TTS", package: "speech-swift"),
        .product(name: "SpeechVAD", package: "speech-swift"),
        // ... ajoutez tous les modules dont vous avez besoin
    ]
)

Modules disponibles

ModuleDescription
Qwen3ASRParole vers texte (Qwen3-ASR)
WhisperASRreconnaissance vocale (Whisper Large-v3 Turbo, CoreML)
ParakeetASRParole vers texte (Parakeet TDT, CoreML)
Qwen3TTSTexte vers parole (Qwen3-TTS)
CosyVoiceTTSTexte vers parole (CosyVoice3, multilingue)
KokoroTTSTexte vers parole (Kokoro-82M, CoreML, compatible iOS)
Qwen3ChatChat LLM embarqué (Qwen3.5-0.8B, MLX + CoreML)
PersonaPlexParole-à-parole (PersonaPlex 7B)
SpeechVADVAD (Silero + Pyannote), diarisation, empreintes de locuteur
SpeechEnhancementSuppression de bruit (DeepFilterNet3, CoreML)
AudioCommonProtocoles partagés, E/S audio, téléchargeur HuggingFace

Transcrire de l’audio avec Swift

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)

Générer de la parole avec Swift

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"))

Compilation depuis les sources

Pour compiler depuis les sources, installez Xcode 16.3+ avec Metal Toolchain et Swift 6+. Clonez le dépôt, compilez la CLI, puis vérifiez l’exécutable dans le répertoire de travail :

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

make build compile automatiquement la bibliothèque de shaders MLX Metal. Sans elle, l'inférence GPU est environ 5× plus lente à cause de la compilation JIT des shaders.

Les shaders ciblent par défaut macOS 15.0 et Metal 3.2, même avec un SDK plus récent. Pour une compilation personnalisée, MACOSX_DEPLOYMENT_TARGET et MLX_METAL_LANGUAGE_VERSION remplacent ces valeurs ; des cibles plus récentes peuvent exclure les anciens systèmes. Les changements du compilateur, du SDK, des options, du script ou des sources invalident le cache. Un échec de compilation ou de liaison préserve la bibliothèque précédente et l’empreinte du cache.

Téléchargements des modèles

Les modèles sont téléchargés automatiquement depuis HuggingFace à la première utilisation et mis en cache dans ~/Library/Caches/qwen3-speech/.

Tous les modèles sont téléchargés depuis HuggingFace à la première utilisation. Tailles approximatives :

ModèleTailleUtilisation RAM
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 bits)1,7 Go~2 Go pic
Qwen3-TTS 1.7B (4 bits)3,2 Go~4 Go pic
CosyVoice3 (LLM 4 bits)1,2 Go~1,5 Go pic
Kokoro-82M (CoreML INT8)89 Mo~200 Mo pic
Qwen3.5-Chat 0.8B (INT4 MLX)418 Mo~700 Mo pic
Qwen3.5-Chat 0.8B (INT8 CoreML)981 Mo~1,2 Go pic
PersonaPlex 7B (8 bits) recommandé9,1 Go~11 Go pic
PersonaPlex 7B (4 bits)4,9 Go~6,5 Go pic
Pyannote VAD5,7 Mo~20 Mo pic
Silero VAD v51,2 Mo~5 Mo pic
WeSpeaker ResNet3425 Mo~50 Mo pic
DeepFilterNet3 (FP16)4,2 Mo~10 Mo pic

Prochaines étapes