Vue lecture

oMLX – Faites tourner vos agents IA en local sur votre Mac

Faire tourner un modèle en local sur un Mac, c'est réglé depuis un moment. Ce qui l'est moins par contre, c'est de brancher un agent de code dessus, parce qu'à chaque reprise de session, le serveur doit malheureusement remouliner des dizaines de milliers de tokens de contexte avant de sortir le premier mot...

Ce calcul, ça s'appelle le cache KV, et la plupart des serveurs le gardent en mémoire. Du coup, quand le modèle se décharge, le cache part avec dans le grand vide...

C'est pourquoi oMLX a pris le parti d'écrire ce cache sur le disque, au format safetensors, car le contexte déjà envoyé une fois, prompt système et fichiers lus compris, se recharge depuis le SSD au lieu d'être recalculé, y compris après un redémarrage du serveur.

De son côté, LM Studio conserve lui aussi son cache MLX sur disque , mais dans un fichier temporaire qu'il efface quand le modèle se décharge. Les deux outils écrivent sur le disque, mais un seul conserve réellement son cache.

Côté raccordement, le serveur oMLX expose l'API OpenAI et l'API Anthropic ce qui permet par exemple à Claude Code de taper directement sur localhost. Et y'a même un tableau de bord qui nous dit quoi faire dans le terminal pour brancher Claude Code ou d'autres avec oMLX.

Sur oMLX, le cache disque est donc actif d'office et son plafond par défaut, parce qu'il en faut bien un, se calcule à 10 % de la capacité du disque qui l'héberge. Sur un SSD d'un téraoctet par exemple, ça fait cent gigaoctets qui peuvent partir en cache sans que personne n'ait rien demandé. Donc prévoyez un peu de place... Après rassurez-vous, ça se vide d'un clic sur un bouton dans le tableau de bord et la taille peut se régler.

Le deuxième piège est plus sournois puisqu'une installation par défaut via pip ne compile pas les kernels Metal, et les modèles GLM-5.2, MiniMax M3 et Qwen3.5 retombent alors sans prévenir sur un chemin générique... Donc je vous incite fortement à utiliser uniquement les DMG proposés qui contiennent déjà les kernels Metal compilés comme il faut.

Reste à savoir ce que ça donne vraiment dans un usage quotidien... Le cache attaque l'attente avant le premier mot mais pas la vitesse à laquelle les mots sortent ensuite donc tout dépend du modèle et de la machine que vous avez. Mais en tout cas, pour un usage avec des agents (coding par exemple), ce sera plus efficace d'utiliser oMLX que Ollama ou LMStudio.

Source : omlx.ai

  •  

Rapid-MLX - Installer un serveur IA local sur votre Mac

Si vous avez un Mac Apple Silicon et que vous en avez assez de payer des tokens à chaque requête, Rapid-MLX vaut le détour. C'est un moteur d'inférence local maintenu par Raullen Chai, qui tape directement dans les kernels MLX d'Apple, sans repli sur llama.cpp ni couche Metal intermédiaire. Et si le nom vous dit vaguement quelque chose, c'est normal puisque c'est un fork de vLLM-MLX, le serveur de Wayner Barrios dont je vous parlais en mai . Rapid-MLX a juste pris un rythme de publication plus soutenu des deux.

Ce que ça vous donne, c'est donc un serveur HTTP qui parle le même langage que l'API d'OpenAI et celle d'Anthropic. Vos scripts, Cursor, Aider, LangChain ou Claude Code continuent de fonctionner, sauf qu'ils tapent sur votre machine au lieu d'un datacenter.

Donc je vous propose de voir ensemble comment installer ça.

Étape 0 : Vérifier que votre Mac est éligible

Le script d'installation contrôle plusieurs choses avant de lancer quoi que ce soit, et autant les connaître d'avance. Il faut une puce Apple Silicon et il n'y a pas de version Linux ni Windows, ni de support CUDA ou AMD.

Le script d'installation accepte encore macOS 13 Ventura, mais le vrai plancher est macOS 14 Sonoma. La formule Homebrew l'exige, et surtout MLX, la brique Apple sur laquelle tout repose, ne publie de paquets macOS que pour les versions 14, 15 et 26. Sur un Mac resté en Ventura, ça cassera donc à l'installation des dépendances, quel que soit le chemin choisi.

Dernier point à avoir en tête, c'est pensé pour votre machine à vous et pas pour un serveur. Vous n'y trouverez donc ni authentification multi-utilisateurs, ni quotas de requêtes.

Étape 1 : Installer Rapid-MLX

Le plus simple, c'est Homebrew :

brew install rapid-mlx

Si vous gérez déjà vos environnements Python vous-même, les autres chemins existent :

uv tool install rapid-mlx@latest
python3.12 -m pip install rapid-mlx

Il y a aussi un installeur en une ligne (curl -fsSL https://rapidmlx.com/install.sh | bash) qui détecte votre RAM et vous propose un modèle adapté. Il crée un venv isolé dans ~/.rapid-mlx/ et pose le binaire dans ~/.local/bin/. Un curl | bash reste un curl | bash. La formule Homebrew fait exactement le même boulot, donc l'installeur en ligne perd de son intérêt.

L'installation de base pèse dans les 460 Mo et la vision, l'audio et les embeddings sont des extras optionnels, vous les ajouterez seulement si vous en avez l'usage.

Étape 2 : Choisir un modèle qui tient dans votre RAM

C'est là que la plupart des gens se plantent, en chargeant un modèle trop gros et en concluant que "ça rame". Sur Mac, la RAM est unifiée, donc le modèle mange directement dans la mémoire que se partagent le CPU et le GPU.

Les paliers recommandés par le projet :

RAMModèle conseillé
8 à 23 Go`qwen3.5-4b-4bit`
24 à 47 Go`gpt-oss-20b-mxfp4-q8`
48 à 95 Go`qwen3.6-35b-8bit`
96 Go et plus`gpt-oss-120b-mxfp4-q8`

Le catalogue complet se liste avec la commande rapid-mlx models, et rapid-mlx info <alias> vous donne le profil détaillé d'un modèle. Si vous voulez sortir du catalogue maison, le filtre matériel de Hugging Face que je vous montrais fin juin fait exactement ce tri à votre place.

Pour utiliser un autre modèle que celui par défaut, il suffit de reprendre l'alias affiché par rapid-mlx models et de le passer en argument. Et si vous préférez télécharger les poids à l'avance, sans rien lancer, c'est le boulot de rapid-mlx pull, qui accepte aussi bien un alias du catalogue qu'un identifiant Hugging Face :

rapid-mlx pull qwen3.5-9b-4bit

Le modèle atterrit dans le cache Hugging Face de votre machine, et ensuite rapid-mlx chat qwen3.5-9b-4bit ou rapid-mlx serve qwen3.5-9b-4bit chargeront ce modèle-là. Le pull préalable reste facultatif, chat et serve téléchargent d'eux-mêmes ce qui manque, mais autant rapatrier les gigas tranquillement avant plutôt qu'au moment où vous voulez bosser.

Étape 3 : Vérifier que ça tourne

Avant de bricoler des intégrations, testez en direct :

rapid-mlx chat

Ça part sur qwen3.5-4b-4bit par défaut, télécharge les poids au premier lancement (comptez 2,5 Go) et vous lâche dans une interface (REPL). /help listera les commandes slash, et /exit vous permettra de quitter le chat.

Une subtilité qui évite de mal interpréter ce premier test, c'est que dans le chat, le raisonnement est coupé par défaut, histoire que le modèle ne vous déballe pas sa réflexion à l'écran. En mode serveur par contre c'est l'inverse, et ça change la vitesse ressentie du tout au tout. J'y reviens plus bas.

Étape 4 : Lancer le serveur

Le vrai intérêt, c'est le mode serveur :

rapid-mlx serve qwen3.5-4b-4bit

Vous récupérez un endpoint sur http://localhost:8000. Le test qui confirme que tout est en place :

curl http://localhost:8000/v1/chat/completions \
 -H "Content-Type: application/json" \
 -d '{"model":"default","messages":[{"role":"user","content":"Dis bonjour !!"}]}'

Et côté Python, vous gardez le SDK OpenAI tel quel, seule l'URL de base change :

from openai import OpenAI
client = OpenAI(base_url="http://localhost:8000/v1", api_key="not-needed")
print(client.chat.completions.create(
 model="default",
 messages=[{"role": "user", "content": "Say hello"}],
).choices[0].message.content)

Pointez n'importe quel client compatible OpenAI sur http://localhost:8000/v1 et c'est réglé. Cursor, Aider, LibreChat, Open WebUI, LangChain, tous marchent avec ce seul changement d'URL. Il y a aussi /v1/embeddings pour du RAG local et /v1/responses pour le Codex CLI.

Étape 5 : Brancher Claude Code dessus

C'est le morceau le plus intéressant du lot, et il tient en deux variables d'environnement. Serveur lancé d'un côté, puis dans un autre terminal :

ANTHROPIC_BASE_URL=http://localhost:8000 ANTHROPIC_API_KEY=not-needed claude

Attention quand même, l'URL de base doit être la racine, sans /v1 à la fin. Le SDK Anthropic ajoute /v1/messages tout seul, donc si vous mettez /v1 vous obtenez /v1/v1/messages et ça casse.

Depuis la 0.10.14, l'appel d'outils passe par une grammaire contrainte activée par défaut, donc plus besoin de bidouiller un --tool-call-parser à la main pour que les tool calls soient parsables. Pour du Claude Code sérieux, visez plutôt un gros modèle, la doc officielle recommande par exemple qwen3.6-35b-4bit en exemple.

Quand ça coince

Le réflexe à avoir avant de chercher ailleurs :

rapid-mlx doctor

Les trois pannes les plus courantes sont toujours les mêmes.

Débit décevant côté serveur, c'est le raisonnement : les Qwen 3.5 et 3.6 démarrent en mode réflexion, donc ils pensent à voix haute avant de répondre, et --no-think règle l'affaire.

Plantage mémoire, votre modèle est trop gros pour la RAM disponible, redescendez d'un palier ou prenez une quantification plus agressive. Appels d'outils qui arrivent en texte brut, la récupération automatique gère la plupart des cas, sinon vous forcez le parser correspondant à votre modèle.

Voilà, grâce à ça, votre Mac est maintenant un serveur d'IA super rapide ! Plus de facture au token, et vos prompts ne sortent plus de la pièce.

Merci à Philobois pour le lien !

  •  

Game Porting Toolkit 4 - Les jeux Windows enfin fluides sur Mac

Il y a deux ans, Apple lâchait le Game Porting Toolkit en jurant ses grands dieux qu'on pourrait faire tourner des jeux Windows sur un Mac Apple Silicon. À l'époque je vous disais que le gaming Windows sur Mac, c'était donc plié. Hé bien la version 4.0 vient de sortir en bêta, et cette fois les chiffres donnent raison à cette promesse !

La nouvelle version du traducteur maison de GPTK (baptisé D3DMetal 4) transforme dorénavant le DirectX 12 des jeux en Metal 4, le moteur graphique d'Apple.

Le youtubeur Andrew Tsai, dont j'ai mis le test dans cet article, a donc benchmarké 20 gros titres Windows pour mesurer le gain, et certains résultats piquent fort.

Black Myth Wukong passe par exemple de 60 à 80 fps sur un MacBook Pro M3 Max, juste en changeant de système et de version de traduction ! Red Dead Redemption 2 gagne 25% de perfs sur le MacBook Neo, la petite machine d'Apple à 600 balles avec sa puce A18 Pro et ses tout petits 8 Go de RAM (le chip de l'iPhone 16 Pro, quoi).

Black Myth Wukong : à gauche GPTK 3.0 sur macOS 26 (~60 fps), à droite GPTK 4.0 sur macOS 27 bêta (~80 fps).

Et le phénomène c'est 007 First Light, un AAA tout récent que personne ne pensait voir démarrer sur Mac, qui tranquillou nous crache du 70 fps en 1080p sur le M3 Max. Mais bien sûr, y'a un petit piège caché quand même pour celui-là. En fait, à chaque lancement, comptez 20 bonnes minutes de compilation de shaders avant de pouvoir jouer. Mais une fois dans le jeu c'est nickel. CodeWeavers finira sûrement par corriger ça, cela dit...

D'ailleurs, petit ajout, Alexandre, un lecteur, m'a signalé qu'un utilisateur de Reddit a pondu un outil open source pour contourner ça, 007 Shader Commander . Le principe, sauvegarder le cache de shaders D3DMetal une fois qu'il est constitué, puis le restaurer avant chaque lancement histoire de ne pas tout recompiler. Résultat chez lui, on passe de 20 minutes à 3 secondes au démarrage. Le projet est tout jeune (v0.0.1) et pensé pour CrossOver, mais si vous galérez sur 007, ça vaut le coup d'œil. Merci à lui !

007 First Light en 1080p sur un MacBook Pro M3 Max, environ 73 fps via GPTK 4.0 et le chemin DirectX 12 vers Metal 4.

Mais alors pourquoi ça va plus vite, ma chère Micheline ?

Hé bien ("ma chère Maïté", allez, on joue le jeu !!) parce que GPTK 4 est taillé pour Apple Silicon et ne traîne plus ce boulet qu'est la compatibilité Intel. Ça débloque donc des trucs comme l'interpolation d'images de MetalFX. Notez qu'en dessous, c'est toujours CrossOver et ce bon vieux Wine qui font le sale boulot de traduction, comme depuis le début.

Autre bonne surprise, les fameuses fuites mémoire des jeux Naughty Dog. Avant, Uncharted 4 ou The Last of Us 2 qui vous bouffaient 34 Go de RAM en quelques minutes, ben maintenant il vous faudra des heures pour atteindre le même niveau de conso RAM. C'est donc pas encore parfait, mais c'est largement jouable.

De son côté, comme on peut le voir dans la vidéo, Spider-Man 2 nous colle un magnifique bug de T-pose si vous n'avez pas une puce M5, parce que le jeu réclame des fonctions GPU absentes des puces précédentes. Et de leur côté, Monster Hunter Wilds bégaie, Street Fighter 6 plante une fois sur deux.

Spiderman en T-Pose

Bref, on est sur de la bêta, faut le savoir.

Mais quand ça marche, ça marche fort ! Rien que Tekken 8 qui tourne à 60 fps en ligne, c'est le plus fluide que ce jeu ait jamais eu sur un Mac. Star Wars Battlefront 2 dépasse aussi les 120 fps et Hellblade 2, Expedition 33 ou Resident Evil 9 tournent sans broncher.

Pour jouer correctement, prévoyez quand même un Mac avec de la RAM et de quoi installer la bêta de macOS 27.

En tout cas, voir un James Bond next-gen tourner sur un MacBook, moi ça me plait !

Source (les 20 benchmarks d'Andrew Tsai) et AppleInsider .

  •  

macUSB - Créer une clé USB macOS sans toucher au Terminal

Krystian Pierz, un développeur polonais qui se planque derrière le pseudo Kruszoneq, en a eu marre de se galérer à chaque fois pour faire des clés USB bootable pour Mac, alors il a sorti macUSB , une app Mac native (du vrai Swift, pas un machin Electron quoi) qui fait tout le sale boulot à votre place. C'est gratuit, le code est ouvert, et surtout c'est notarisé par Apple, donc pas besoin de bidouiller la sécurité de votre Mac avec Sentinel pour la lancer.

Et ça se fait en trois clics. Vous balancez votre image (un .dmg, un .app d'installation macOS, ou même un .iso), vous désignez votre clé USB, et macUSB se débrouille pour calculer le checksum, détecter la version et l'architecture, formater le support dans le bon système de fichiers et écrire le tout en vous affichant la vitesse en temps réel. Pas de Terminal, pas de commande à rallonge à recopier sans se tromper d'un espace, et surtout l'Utilitaire de disque qu'on déteste tous reste fermé.

Le vrai exploit de Kruszoneq c'est surtout qu'il a réussi à régler les cas de figure où createinstallmedia, l'outil officiel d'Apple, se crashait comme une merde. Je pense que si vous avez déjà essayé de vous faire une clé Monterey ou Big Sur depuis un Mac Silicon par exemple, pour réparer un autre Mac Intel, vous avez dû vous galérer avec des erreurs de validation et autres messages d'erreur pour cause d'architecture incompatible.

Bah macUSB contourne tout ça tout seul comme un grand, et répare même les certificats expirés des installeurs High Sierra et Mojave sans rien vous demander.

Pour situer le progrès, la méthode "propre" côté Apple ressemble à ça :

sudo /Applications/Install macOS Sequoia.app/Contents/Resources/createinstallmedia --volume /Volumes/MaCle

...et encore, à condition d'avoir déjà récupéré le bon installeur dans l'App Store. Je ne vous parle même pas de l'époque où il fallait extraire à la main le fichier InstallESD.dmg planqué dans le paquet de l'installeur (j'expliquais déjà ce bricolage en 2011 pour OSX Lion ). Alors que macUSB, lui, embarque un téléchargeur qui va chercher les installeurs directement sur les serveurs d'Apple. Vous n'avez plus rien à préparer en amont.

L'outil sait donc préparer des clés USB de macOS Tahoe (la version 26, celle de cette année) jusqu'à Tiger 10.4 sorti en 2005, PowerPC compris. Oui, vous pouvez ressusciter un iMac G5 depuis votre MacBook M4. Pour les collectionneurs de vieilles machines, les labos qui gardent des Macs d'époque, ou juste pour remettre d'aplomb un ordi que vous comptez revendre, c'est du bonbon ^^.

Et la v2.3, sortie hier, en remet une couche côté Windows puisqu'elle sait également préparer des clés Windows 10 et 11 en contournant le check TPM 2.0 (le compte Microsoft obligatoire avec la connexion Wi-Fi forcée pendant l'installation, argh !). Et elle écrit aussi les images Linux en .iso et en .img. Après si c'est juste faire une clé Windows depuis votre Mac que vous cherchez, WinDiskWriter fait déjà très bien le job, mais macUSB a l'avantage de tout regrouper au même endroit.

Côté prérequis, votre Mac doit donc tourner au minimum sous Sonoma 14.6 (Apple Silicon ou Intel), et il faudra lui accorder l'accès complet au disque dans les réglages système, rien d'anormal puisqu'il écrit directement sur vos volumes. Une fois ça réglé, vous récupérez le .dmg sur la page des releases GitHub , ou vous l'installez en une ligne avec Homebrew :

brew install --cask macusb

C'est super impressionnant pour un projet développé par une seule personne et qui plus est n'a que 6 mois d'existence. Bref, si vous avez un Mac à réinstaller, un vieux coucou à dépanner ou une machine à remettre d'aplomb avant de la revendre, foncez !

  •  

Apfel - Le LLM caché de votre Mac enfin libéré

J'sais pas si vous saviez mais Apple a planqué un LLM dans votre Mac et ne veut pas que vous y touchiez... enfin, pas directement. En effet, leur modèle est là, intégré au système via le framework FoundationModels, il tourne sur le Neural Engine sans connexion internet mais Apple l'a verrouillé derrière Siri. Du coup, impossible de l'appeler depuis un script ou un pipe shell et c'est là qu' apfel intervient !

L'outil s'installe en une commande :

brew install Arthur-Ficial/tap/apfel

Et hop, vous avez accès au modèle directement depuis votre terminal. Faut Apple Intelligence actif également, sinon, ça ne fonctionnera pas.

Ensuite, vous lui posez une question, et il vous répond. Vous lui "pipez" un fichier, et il le traite. Et le tout sans rien télécharger puisque le modèle est déjà sur votre machine !

C'est un LLM de 3 milliards de paramètres, quantifié en 2 et 4 bits, qui tourne nativement sur la puce Apple Silicon (M1 et au-delà) et il se défend plutôt bien face à Qwen-2.5-3B, si on en croit les benchmarks. La fenêtre de contexte est limitée à 4096 tokens (entrée + sortie combinées), soit environ 3000 mots, donc faut pas espérer lui faire digérer un roman mais pour transformer du texte, classifier des données ou résumer un paragraphe... ça fait bien le taf.

Apfel expose donc ce modèle de trois façons différentes. En CLI pure (compatible stdin/stdout, sortie JSON, codes d'erreur propres), en serveur HTTP compatible OpenAI sur localhost:11434 (avec streaming SSE, tool calling et CORS activé), et en chat interactif multi-turn.

Le serveur OpenAI c'est malin parce que d'un coup, tous vos outils savent causer à l'API OpenAI (Cursor, Continue.dev, n'importe quel SDK) et peuvent utiliser l'IA locale de votre Mac sans rien changer à leur code. Et le support MCP (Model Context Protocol) natif c'est très chouette aussi puisqu'il suffit de lancer apfel avec le flag --mcp, pour qu'il découvre automatiquement les outils disponibles, exécute les appels et renvoie les résultats.

D'ailleurs côté vie privée, c'est du béton armé car le framework FoundationModels d'Apple n'a pas accès à vos contacts, emails, calendrier ou photos et tout tourne sur le Neural Engine et le GPU, sans connexion internet.

Si vous avez déjà bidouillé avec Ollama et les modèles locaux , apfel c'est un peu la même philosophie... sauf que là vous n'avez rien à télécharger et contrairement à Perspective Intelligence qui transforme votre Mac en serveur web avec PostgreSQL et tout le tralala, apfel reste hyper minimaliste.

Attention quand même, faut être sous macOS 26 Tahoe minimum donc si vous êtes encore sous Sequoia 15.x ou Ventura 13.x, c'est mort, le framework FoundationModels n'existe pas sur ces versions. Et si vous avez un Mac Intel... ben non plus, le Neural Engine c'est Apple Silicon only.

Le projet inclut aussi des scripts démo sympas dans le dossier demo/.

Y'a par exemple cmd qui convertit du langage naturel en commandes shell, explain qui décortique les messages d'erreur, gitsum qui résume vos commits récents, ou encore mac-narrator qui commente l'activité de votre système en temps réel (c'est votre Mac qui se raconte à lui-même).

Perso, cmd c'est celui qui m'a le plus plu, même si bon, avec 4096 tokens de contexte, faut pas lui demander des commandes ffmpeg de 200 caractères.

Mais au-delà des démos, c'est en vrai que ça devient fun. Je vous montre quelques usages classiques d'abord :

apfel -f README.md "Résume ce projet en 3 phrases"

apfel -f code.py -s "Tu es un développeur expérimenté" "Trouve les bugs"

echo "Traduis ça en allemand : Salut" | apfel

Et les trucs un peu plus funs :

git diff HEAD~1 | apfel -f CONVENTIONS.md "Review ce diff par rapport à mes conventions"

apfel -f old.swift -f new.swift "Qu'est-ce qui a changé entre ces deux fichiers ?"

demo/oneliner "compte les IPs uniques dans access.log"

Vous pouvez même piper la sortie en JSON pour chaîner avec jq, ou lancer le mode --serve et brancher Cursor dessus pour avoir de l'autocomplétion locale gratuite. Et si vous êtes du genre parano, le mode --chat avec --context-strategy summarize gère automatiquement le contexte quand la conversation dépasse les 4096 tokens.

Et côté écosystème, y'a aussi apfel-gui (une interface SwiftUI native pour chatter avec le modèle, avec speech-to-text et text-to-speech on-device) et apfel-clip qui est en développement (ce sont des actions IA qui s'ajoutent dans la barre de menus pour corriger la grammaire, traduire, résumer) et le tout sous licence MIT, évidemment.

Bref, c'est un super modèle mais avec 3 milliards de paramètres et 4096 tokens de contexte, faut pas s'attendre non plus à remplacer Claude ou GPT. Les maths complexes, la génération de code avancée et les longues conversations, c'est pas son truc mais pour du scripting, de la classification ou transformer du texte à la volée... ça dépanne carrément !

Et ce modèle préfère refuser plutôt qu'halluciner, ce qui est plutôt une bonne surprise je trouve. Voilà, si vous avez un Mac Apple Silicon sous macOS Tahoe, apfel et ses outils valent le coup d'œil pour vos petites tâches IA basiques / rapides de tous les jours.

  •  

MLX-Audio - Faites parler votre Mac sans le cloud

Faire de la synthèse vocale , de la transcription et du voice cloning en local sur son Mac, sans envoyer le moindre octet dans le cloud... hey bien c'est possible mes petits foufous et en plus comme je sais que vous avez des oursins dans les poches, hé bien bonne nouvelle : C'est gratuit !

MLX-Audio , c'est donc une bibliothèque Python qui exploite le framework MLX d'Apple pour faire tourner des modèles audio directement sur les puces M1, M2, M3, M4 et maintenant M5. Cette liste est trop longue, la prochaine fois, j'écrirais M* ou M1-5 ^^. Avec cette lib, du coup, tout se fait en local sur votre machine. Si je devais oser une comparaison un peu casse gueule, je dirais que c'est un peu le Ollama de l'audio.

Côté text-to-speech, y'a surtout du choix. Une dizaine de modèles sont disponibles, dont Kokoro pour du multilingue (français, anglais, japonais, chinois, espagnol...), Chatterbox qui gère 23 langues, ou encore Dia pour les dialogues. Et voici comment ensuite avec une commande dans le terminal, on peut faire parler la machine :

mlx_audio.tts.generate --model mlx-community/Kokoro-82M-bf16 --text "Salut les copains" --lang_code f --play

Le truc sympa, c'est que ça ne s'arrête pas à la synthèse vocale. Côté transcription, on retrouve Whisper (le modèle d'OpenAI qui gère 99 langues), Parakeet de NVIDIA pour les langues européennes, et même VibeVoice-ASR de Microsoft qui fait de la diarization (identifier qui parle dans une conversation).

Pour transcrire un fichier audio, c'est donc tout aussi simple :

python -m mlx_audio.stt.generate --model mlx-community/whisper-large-v3-turbo-asr-fp16 --audio meeting.wav --verbose

Y'a aussi le voice cloning avec CSM, où vous filez un fichier audio de référence et le modèle reproduit la voix. Perso, ça fait un peu flipper mais qui est carrément bluffant ! Sauf si vous avez une voix super particulière (trop de clope hein ^^), au final le résultat est assez bon.

Attention, tout ça a besoin de mémoire ! Heureusement, la bibliothèque gère la quantization (de 3 à 8 bits), du coup les modèles sont compressés pour tenir dans la mémoire unifiée des puces Apple Silicon. Le plus léger, Kokoro, fait 82M de paramètres et le plus costaud, Ming Omni, monte à 16.8 milliards de paramètres (mais en mixture-of-experts, donc seulement 3B activés à la fois). Pour ce dernier, faut donc un Mac avec pas mal de RAM.

D'ailleurs, si vous êtes développeur, la bibliothèque expose également une API REST compatible OpenAI. Ça veut dire que vos apps qui causent déjà avec l'API d'OpenAI peuvent basculer sur du local sans changer une ligne de code... enfin presque. Car faut quand même pointer vers localhost au lieu des serveurs d'OpenAI, mais c'est à peu près tout. Y'a même un package Swift pour intégrer ça dans une app iOS ou macOS native.

Voilà, pour ceux qui préfèrent une interface graphique, un mode web avec visualisation 3D de l'audio est même intégré. C'est super joli !

Ce projet est sous licence MIT, et le mainteneur, Prince Canuma, est un ancien ingénieur ML chez Arcee AI, donc pas un random qui a forké un truc un dimanche ^^.

Voilà, si vous avez un Mac et que l'audio IA en local vous branche, c'est open source, c'est gratuit et ça marche carrément bien !

  •  

VoxDrop - La dictée vocale ultra-rapide qui tourne en local sur Mac

La dictée vocale, y'a plein d'outils pour ça. Sauf que la plupart envoient votre voix dans le cloud pour la transcrire, et surtout... c'est lent. Chez Google, chez OpenAI, chez Apple... entre le moment où vous parlez et celui où le texte s'affiche, y'a toujours cette latence qui casse tout. Et ça fait des mois que ça me gonflait, surtout en bossant sur mon Mac Studio M4 et mon MacBook Air M2 qui sont quand même censés être des bêtes de course.

Du coup je me suis codé VoxDrop au départ rien que pour moi. Une app macOS qui transforme votre voix en texte, et avec laquelle TOUT se passe en local sur votre machine. Zéro cloud, zéro donnée qui fuite, et surtout c'est rapide. Vous appuyez sur un raccourci (⌥ + Espace par défaut), vous parlez, vous relâchez, et hop, le texte apparaît directement là où se trouve votre curseur. Pas de fenêtre à ouvrir, pas de copier-coller. L'app est super légère et reste discrète en tâche de fond sans bouffer votre RAM.

L'interface de VoxDrop - sobre et efficace ( Source )

Côté moteurs de transcription, y'en a 7 au choix. J'ai voulu ratisser large en mettant des modèles américains, français et chinois. Parakeet de NVIDIA (600 Mo) est le modèle par défaut. Il est super rapide, c'est mon préféré. J'ai mis aussi Whisper avec ses variantes Small, Medium, Turbo et Large v3 qui couvre tous les cas. Y'a aussi Voxtral Mini de chez Mistral, made in France, et Qwen3-ASR le modèle chinois.

Les 7 moteurs de transcription au choix ( Source )

Alors pourquoi sur architecture Silicon ? Hé bien déjà parce que c'est ce que j'utilise au quotidien et aussi parce que les puces Apple Silicon (M1, M2, M3, M4) ont un avantage énorme pour l'IA locale : la mémoire unifiée. En gros, le CPU et le GPU partagent la même RAM. Un modèle chargé en mémoire est donc directement accessible au GPU Metal pour les calculs, sans copie de données. C'est pas magique non plus hein, si votre modèle fait 3 Go et que vous avez 8 Go de RAM, ça va ramer. Mais sur un MacBook Air M2, un modèle de 400 Mo tourne en temps réel sans broncher.

Et VoxDrop ne fait pas QUE de la transcription. Y'a aussi du post-traitement local avec une traduction dans 13 langues mais aussi une reformulation (mode pro, décontracté, concis, structuré...), le tout via le modèle de langage embarqué GemmaTranslate. Et vous avez 5 raccourcis clavier indépendants, chacun avec sa propre config. Un pour dicter, un pour traduire en direct, un pour reformuler ce que vous avez sélectionné...etc. Perso, au quotidien, ceux qui l'utilisent ne peuvent s'en passer. Et moi non plus ! Sauf si vous tapez plus vite que vous ne parlez, mais bon, ça m'étonnerait ^^.

Maintenant, pourquoi c'est pas sur l'App Store ?

Parce que VoxDrop est réservé à mes abonnés Patreon . Vous me soutenez pour la veille techno et la vulgarisation, et en retour j'ai envie de vous filer des outils concrets que j'utilise moi-même tous les jours. Pas de commission, pas d'intermédiaire. Juste un truc développé pour les gens qui me suivent.

J'espère d'ailleurs que ce sera la première d'une série d'apps comme ça. En tout cas, je ne crois pas avoir vu ce modèle de licence ailleurs. J'ai même développé un petit framework exprès pour ça, que je compte bien réutiliser.

Voilà, un GROS merci à tous ceux qui ont bêta-testé l'app pour moi, vos retours ont été très précieux !

Et si vous êtes déjà sur Patreon , VoxDrop est dispo ici !

  •  

ASIF - Le format révolutionnaire d'Apple (MacOS Tahoe) pour vos VM

Vous en avez marre d’attendre 3 plombes que votre VM Windows copie un fichier ? Vous regardez l’indicateur de progression en vous demandant si c’est votre SSD de 2 To qui a soudainement décidé de se transformer en disquette ? Alors Apple a enfin entendu vos cris de désespoir avec ASIF dans macOS Tahoe.

Pour ceux qui bossent avec des machines virtuelles, c’est le drame quotidien. Vous avez beau avoir un Mac Studio M2 Ultra avec un SSD qui crache 7 GB/s, dès que vous lancez une VM Linux ou Windows, c’est la cata. Les images disque UDSP (Sparse Image) plafonnent lamentablement à 100 MB/s, voire 0,1 GB/s quand elles sont chiffrées. Autant dire que votre SSD NVMe de compète se transforme en disque dur des années 90.

  •  
❌