FluidAudio : un SDK Swift pour l'audio IA local sur les appareils Apple
FluidInference/FluidAudio offre une implémentation open source exploitable en conditions réelles avec une structure réutilisable.
En bref
- De quoi s’agit-il ?
- Reconnaissance vocale, synthèse vocale, détection d'activité vocale et diarisation de locuteurs en local, avec des modèles CoreML exécutés sur le Neural Engine d'Apple.
- À qui s’adresse-t-il ?
- FluidAudio regroupe des versions CoreML converties de modèles audio open source pour les appareils Apple, avec inférence sur le Neural Engine, chargement de modèles hors ligne et outil en ligne de commande. Le README ne fournit qu'un facteur temps réel pour l'ASR ; les autres mesures de performance doivent être vérifiées dans le document Benchmarks.md.
- Puis-je l’utiliser commercialement ?
- Oui. Apache-2.0 est une licence permissive : vous pouvez utiliser, modifier et vendre un logiciel qui en dépend, à condition de conserver les mentions de droit d’auteur et de licence.
- Est-il encore maintenu ?
- Oui. Les derniers commits datent d’il y a 1 jour.
- En quel langage est-il écrit ?
- Principalement Swift, d’après les statistiques de langage de GitHub.
Ces réponses reposent sur les données GitHub du projet (dernière synchronisation le 14 septembre 2026) et sur notre analyse. Elles ne constituent pas un avis juridique.
ANALYSE OPEN SOURCE APPROFONDIE
Un SDK Swift pour l'audio IA sur l'appareil
FluidAudio est un SDK Swift pour l'audio IA qui fonctionne entièrement en local sur les appareils Apple. Le README le décrit comme une inférence entièrement locale et à faible latence, avec un déchargement vers le Neural Engine d'Apple (ANE), ce qui, selon le projet, réduit l'utilisation de la mémoire et donne généralement une inférence plus rapide. Le SDK évite entièrement GPU et MPS et maintient une faible utilisation du CPU, ce que le README associe au traitement en arrière-plan, à l'informatique ambiante et aux charges de travail permanentes. Les métadonnées du dépôt indiquent Swift comme langage principal ; le README cible macOS et iOS. Il ne précise pas de version minimale du système ni de liste des puces Apple prises en charge, deux points à vérifier, et il ne fournit aucune mesure concrète de batterie ou de mémoire.
Ce que couvre le catalogue de modèles
Le README regroupe les capacités du SDK en cinq tâches : reconnaissance vocale automatique, normalisation inverse du texte, synthèse vocale, diarisation de locuteurs et détection d'activité vocale. Les modèles ASR comprennent Parakeet TDT v3 (0.6b) pour la transcription par lots en 25 langues européennes et en japonais, SenseVoice et Paraformer pour le mandarin, et Parakeet EOU (120m) pour l'ASR en streaming avec détection de fin d'énoncé en anglais. La VAD utilise les modèles Silero ; le README mentionne aussi l'extraction d'embeddings de locuteurs. Tous les modèles sont convertis et optimisés par l'équipe FluidInference et publiés sur HuggingFace sous licences permissives. Le catalogue complet n'est pas détaillé ici et renvoie à Models.md. Le README indique un facteur temps réel d'environ 190x pour l'ASR, soit une heure d'audio traitée en environ 19 secondes sur un M4 Pro.
Trois voies pour la diarisation de locuteurs
La diarisation est le sujet le plus détaillé du README. Le choix par défaut en ligne est LS-EEND, un modèle unique de bout en bout qui prend en charge jusqu'à 10 locuteurs, avec des mises à jour de trames toutes les 100 millisecondes et un aperçu provisoire de 900 millisecondes. Sortformer est la seconde option de streaming, limitée à 4 locuteurs et décrite comme offrant une meilleure stabilité de l'identité des locuteurs ; sa licence est la NVIDIA Open Model License. Pour le traitement par lots hors ligne, le README décrit un pipeline Pyannote Community-1 avec segmentation powerset, embeddings WeSpeaker et clustering VBx, qui produit du JSON contenant DER, JER et RTFx. Un pipeline Pyannote 3.1 est la troisième option en ligne, conservé pour ses étapes modulaires de segmentation et d'embeddings malgré sa lenteur. Le README ne publie pas de chiffres de benchmark ici et renvoie à Benchmarks.md ; l'écart de performance réel entre les trois doit donc y être confirmé.
Deux moteurs TTS : PocketTTS et Kokoro
FluidAudio embarque deux moteurs TTS. PocketTTS génère l'audio trame par trame, prend en charge le streaming et le clonage de voix à partir d'un échantillon de 1 à 30 secondes, et propose des packs de langues pour l'anglais, l'allemand, l'italien, le portugais et l'espagnol, ainsi qu'une variante française à 24 couches. Kokoro est un modèle de synthèse parallèle avec contrôle SSML et prononciation dans 9 langues ; le chemin KokoroAne, plus récent, exécute l'essentiel du modèle sur le Neural Engine et annonce une amélioration de 3 à 11 fois du facteur temps réel par rapport à l'ancien chemin à graphe unique sur Apple Silicon. Une note bêta en tête de la section TTS indique que seul l'anglais américain est pris en charge, alors que la même section liste plus loin des packs pour d'autres langues ; le README ne réconcilie pas ces deux affirmations. Les lecteurs doivent vérifier auprès de la version réellement publiée.
Installation et wrappers pour d'autres frameworks
L'installation se fait via Swift Package Manager. Le README montre une dépendance au dépôt FluidAudio à partir de la version 0.12.4 et propose une podspec CocoaPods de la même version, tout en recommandant le plugin cocoapods-spm pour une meilleure intégration SPM. Pour d'autres frameworks, le projet maintient un wrapper React Native et Expo nommé @fluidinference/react-native-fluidaudio et un wrapper Rust et Tauri nommé fluidaudio-rs, installables respectivement via npm et cargo. L'outil en ligne de commande fluidaudiocli est réservé à macOS ; les applications iOS doivent utiliser la bibliothèque par programmation. Le README ne précise pas de version minimale de Swift ni de Xcode. Il présente aussi un tableau d'applications tierces, chacune annotée avec les modèles qu'elle utilise, mais ces applications sont hors de ce dépôt.
Configuration du téléchargement des modèles
Les modèles sont téléchargés automatiquement depuis HuggingFace à la première utilisation. Le README présente trois mécanismes pour les environnements où cet hôte est inaccessible. Un remplacement d'URL de registre, via ModelRegistry.baseURL en programmation ou via les variables d'environnement REGISTRY_URL et MODEL_REGISTRY_URL, change la destination du téléchargement vers un miroir ou un serveur interne. La variable https_proxy achemine les téléchargements via un proxy, ce qui couvre les pare-feu d'entreprise. Le troisième mécanisme, ModelHub.offlineMode, est un drapeau statique qui refuse tout accès réseau : les appels de téléchargement lèvent DownloadError.networkDisabled et les fichiers locaux manquants produisent DownloadError.modelMissing avec la liste des absents. Le README précise que la valeur par défaut est false, donc aucun changement de comportement pour les appelants existants.
CoreML impose une vérification matérielle
FluidAudio s'appuie sur des modèles CoreML et vise les appareils Apple avec transcription, synthèse vocale, diarisation et détection d activité vocale. Le traitement local peut convenir à une application qui ne souhaite pas envoyer l'audio à un service distant, mais la documentation ne donne pas de tableau complet des puces, versions d'iOS ou limites mémoire. Le choix entre Parakeet TDT, SenseVoice, Paraformer, Silero VAD et les modèles de locuteurs doit être confronté à la langue, au bruit et à la latence attendue.
Mesurer une session audio complète
Le README et le package Swift forment le point d'entrée naturel. Testez une courte séquence avec parole, silence et deux locuteurs, puis comparez la transcription, les segments VAD et les identités produites par la diarisation. Notez la puce Apple, la version du système, la taille des modèles téléchargés et l'usage mémoire. Le projet revendique une inférence locale utilisant l'ANE et évitant GPU/MPS ; ces affirmations doivent être distinguées d'une mesure effectuée dans votre application, car aucune autonomie chiffrée ni latence garantie n'est publiée dans le README.
Conclusion éditoriale
FluidAudio regroupe des versions CoreML converties de modèles audio open source pour les appareils Apple, avec inférence sur le Neural Engine, chargement de modèles hors ligne et outil en ligne de commande. Le README ne fournit qu'un facteur temps réel pour l'ASR ; les autres mesures de performance doivent être vérifiées dans le document Benchmarks.md.
Notes de la communauté