La page canonique anglaise documente désormais le nouveau runtime MLX 128K pour l’audio long, les benchmarks INT5/INT8 et la mémoire. Cette traduction décrit encore principalement l’ancien runtime CoreML.
MOSS Transcribe Diarize 0.9B
Cette page Soniqo documente MOSS Transcribe Diarize 0.9B tel qu'il est implémenté dans speech-swift / speech-core. Les liens Hugging Face sont placés après les notes d'intégration.
Les cartes et menus pointent d'abord ici; les liens vers le modèle source et les bundles restent disponibles sur cette page.
Aperçu
| Modèle | MOSS Transcribe Diarize 0.9B |
|---|---|
| Rôle | Transcription par lots avec étiquettes de locuteur et horodatages générés par le modèle |
| Backend | CoreML avec frontend Whisper natif fondé sur Accelerate |
| Sortie | Transcription simple et segments horodatés attribués aux locuteurs |
| Langues | Modèle MOSS de transcription multilingue |
| Licence | Vérifiez les conditions du modèle source et des bundles pour l’usage prévu |
| État | Disponible via speech transcribe --engine moss et le produit Swift MossTranscribe |
| Source | OpenMOSS-Team/MOSS-Transcribe-Diarize |
| Produit Swift | MossTranscribe |
| CLI / runtime | speech transcribe --engine moss |
Utilisation
L'extrait ci-dessous suit l'API ou la commande actuellement exposée par speech-swift.
# INT8 est le choix par défaut recommandé.
.build/release/speech transcribe recording.wav --engine moss
# Référence FP16.
.build/release/speech transcribe recording.wav --engine moss --model fp16
Liens du modèle
- Bundle CoreML INT8
- Bundle CoreML FP16
- Documentation du modèle speech-swift
- Documentation d’inférence speech-swift
- Benchmark speech-swift
Notes d'implémentation
- Benchmark apparié de 80 clips anglais sur M5 Pro : les deux variantes atteignent 8,16% de WER agrégé et 5,90% de CER.
- Sur deux exécutions en ordre inversé, INT8 donne un RTF groupé de 0,070 (14,3× temps réel), contre 0,079 (12,6×) pour FP16, avec un pic RSS échantillonné de 2,38–2,40 Go contre 3,69–3,74 Go.
- Le runtime Swift prend en charge le prétraitement log-mel Whisper exact, le prompt à marqueurs temporels MOSS, l’injection des embeddings audio, les mises à jour du cache MLState, le décodage glouton et l’analyse structurée.
- INT8 conserve l’encodeur audio et les E/S du décodeur en FP16, puis applique au décodeur une quantification linéaire symétrique INT8 block-32.
- Le prompt et la sortie partagent un contexte fixe de 1024 tokens. Le runtime actuel fonctionne uniquement par lots et refuse --stream.
Cache de tampons MLX
Du chargement des poids à la transcription, MLX limite son cache de tampons réutilisables pour tout le processus au minimum entre 2 GiB et 25% de la RAM physique. Les limites inférieures de l’appelant sont conservées, y compris 0 pour désactiver le cache. MOSS et Qwen3-ASR partagent ce budget ; libérer le dernier modèle rétablit la limite précédente, sauf si l’appelant l’a modifiée pendant l’utilisation.
Cette limite concerne uniquement les tampons réutilisables inutilisés, pas la mémoire totale. Les tenseurs KV actifs et les données audio augmentent avec la durée de l’enregistrement ; les poids et les autres allocations nécessitent de la mémoire supplémentaire.
Pour une sortie structurée avec locuteurs, utilisez le cache KV FP16 par défaut. Les vérifications actuelles avec KV INT8 omettent les étiquettes de locuteur avec les deux variantes de poids, dans le runtime original comme dans le runtime limité ; le plafond des tampons ne corrige pas ce problème de qualité distinct.