Guide
Ce qui se passe réellement quand votre Mac transcrit de l'audio sur l'appareil
L'IA sur l'appareil est une formule marketing accolée à un travail d'ingénierie précis et plutôt intéressant. Voici toute la chaîne, du fichier au texte.
Toutes les applications disent désormais faire les choses « sur l'appareil ». Il vaut la peine de savoir ce que cela implique réellement, d'une part parce que cela explique pourquoi la transcription locale est devenue bonne si vite, d'autre part parce que c'est la différence entre une affirmation vérifiable et une affirmation qui ne l'est pas.
Voici la chaîne de traitement, dans l'ordre.
Étape 1 : tout devient du mono 16 kHz #
Whisper, le modèle de reconnaissance vocale qu'utilisent presque toutes ces applications, prend exactement un type d'entrée : 16 000 échantillons par seconde, un seul canal, sous forme de nombres à virgule flottante compris entre -1 et 1.
La première chose que fait tout outil de transcription est donc de jeter l'essentiel de votre audio. Votre enregistrement stéréo à 48 kHz est mixé en mono et sous-échantillonné. Les fichiers vidéo voient leur piste audio extraite et l'image écartée.
Cela paraît destructeur, et ce ne l'est presque pas : la parole humaine se situe en dessous de 8 kHz, et selon la limite de Nyquist un échantillonnage à 16 kHz la capte intégralement. Ce que vous perdez, c'est de la qualité musicale, pas de l'intelligibilité.
La conséquence pratique : votre onéreux enregistrement à 96 kHz ne vous apporte rien à ce stade, et un fichier mal compressé ne peut pas non plus être sauvé par là.
Étape 2 : la détection d'activité vocale décide de ce qui mérite d'être transcrit #
Un second modèle, bien plus petit, s'exécute en premier et repère les parties de l'audio qui contiennent de la parole humaine.
Le modèle couramment utilisé est Silero VAD — moins d'un mégaoctet, et il répond à une seule question : parole ou pas parole, sur une grille temporelle fine.
Il existe pour deux raisons. Il accélère le traitement, puisque décoder du silence est du travail perdu. Plus important encore, il évite le mode de défaillance où Whisper, recevant de l'audio sans parole, génère quand même du texte et tourne en boucle. La VAD est la raison pour laquelle la transcription locale moderne a cessé de produire des pages de phrases répétées.
Étape 3 : l'audio devient une image #
Whisper ne consomme pas de formes d'onde. Il consomme un spectrogramme log-Mel : une image en deux dimensions où l'axe horizontal est le temps, l'axe vertical la fréquence sur une échelle correspondant à l'audition humaine, et la luminosité l'énergie.
C'est là le véritable saut conceptuel de la reconnaissance vocale moderne. Dès lors que l'audio est une image, on peut lui appliquer la machinerie conçue pour la vision par ordinateur — et c'est exactement ce qui se passe ensuite.
Étape 4 : l'encodeur s'exécute, idéalement sur le Neural Engine #
Whisper est un transformeur en deux moitiés. L'encodeur lit le spectrogramme et le transforme en une représentation numérique dense de ce qui a été dit. C'est la moitié coûteuse — de la multiplication matricielle lourde et régulière sur une entrée de taille fixe.
C'est précisément ce pour quoi le Neural Engine d'Apple est conçu : un bloc dédié sur la puce qui effectue un type d'arithmétique très étroit, extrêmement vite et à très faible consommation. Il n'est pas généraliste — vous ne pouvez pas y exécuter du code arbitraire — mais un encodeur de transformeur en épouse exactement la forme.
Y faire tourner l'encodeur suppose de compiler le modèle au préalable dans le format de Core ML (.mlmodelc). Les applications qui le font livrent un encodeur Core ML aux côtés des poids du modèle, et c'est le plus grand écart de vitesse entre une application de transcription locale rapide et une lente sur le même matériel.
Étape 5 : le décodeur s'exécute sur le GPU #
Le décodeur produit le texte proprement dit, un jeton à la fois, chacun conditionné par tout ce qui précède.
Cette moitié est séquentielle : elle ne convient donc pas à la conception par lots du Neural Engine. Elle s'exécute plutôt sur le GPU via Metal. Sur Apple Silicon, ce GPU partage la mémoire avec le processeur, si bien que les poids du modèle n'ont pas à être copiés à travers un bus — ce qui explique en bonne partie pourquoi Apple Silicon se comporte mieux que sa catégorie pour l'inférence locale.
Étape 6 : les horodatages sortent du même processus #
Whisper émet des jetons d'horodatage particuliers, entrelacés avec les mots. C'est ainsi que vous obtenez un SRT aux minutages cohérents plutôt qu'un bloc de texte — l'information temporelle découle de la même passe de décodage, et non d'une étape d'alignement distincte.
Quand la VAD a écarté des silences, les minutages doivent être reportés sur l'enregistrement d'origine, sans quoi chaque horodatage situé après le premier écart serait faux.
Le modèle, et pourquoi il est plus petit qu'il n'y paraît #
Le modèle Base de Whisper compte 74 millions de paramètres. En pleine précision, cela représente environ 140 Mo, dont l'essentiel est redondant pour cet usage.
La quantification stocke chaque poids sur moins de bits. Dans un modèle q5_1, les poids occupent 5 bits, plus une petite échelle et un décalage par bloc — soit environ 6 bits par poids au lieu de 16. Le résultat pèse autour de 60 Mo, avec des différences de précision difficiles à déceler sur de la parole ordinaire.
Cela compte pour un téléphone, où un téléchargement de 140 Mo et la mémoire correspondante représentent un coût réel. C'est aussi pourquoi la réponse honnête à « quel modèle utiliser » est en général un modèle plus petit qu'on ne l'imagine.
Les fichiers longs, et pourquoi la mémoire est le point dur #
L'API de Whisper prend un unique tampon d'échantillons contigu. Deux heures à 16 kHz représentent environ 470 Mo de flottants, plus un spectrogramme de taille comparable.
Sur un Mac, cela passe. Sur un iPhone, c'est suffisant pour faire tuer une application par le système — c'est pourquoi certaines applications mobiles de transcription limitent discrètement la durée des fichiers.
La solution consiste à transcrire par fenêtres : garder l'audio décodé sur le disque, en projeter une tranche à la fois en mémoire, la transcrire, la libérer. Le pic de mémoire dépend alors de la fenêtre et non du fichier. La subtilité est de savoir où couper — coupez au milieu d'un mot et vous obtenez une phrase abîmée à chaque limite ; une implémentation sensée coupe donc au point le plus calme à l'intérieur d'une zone de recouvrement, et décale les horodatages de chaque fenêtre pour les replacer dans la chronologie d'origine.
Pourquoi tout cela vous concerne #
Trois conséquences découlent de la chaîne décrite ci-dessus, et ce ne sont pas des arguments marketing :
Cela fonctionne sans réseau. Aucune des étapes ci-dessus n'en exige un. C'est vérifiable en trente secondes — nous avons expliqué comment, avec des tests qui ne demandent pas de nous faire confiance.
Votre enregistrement ne sert de données d'entraînement à personne. Il ne s'agit pas d'une application locale qui promet de ne pas s'entraîner sur votre audio. Il s'agit d'un audio qui ne s'est jamais trouvé dans un endroit où cela serait possible.
La vitesse dépend de votre matériel, pas de la file d'attente de quelqu'un. Une transcription locale tourne plusieurs fois plus vite que le temps réel sur Apple Silicon, de façon constante, à 3 heures du matin un dimanche, sans limite de débit.
En bref #
L'audio est sous-échantillonné en mono 16 kHz, la détection de la voix retire les parties sans parole, le reste devient un spectrogramme, un encodeur de transformeur le traite sur le Neural Engine, un décodeur génère le texte sur le GPU avec les horodatages entrelacés, et la quantification rend le modèle assez petit pour que tout cela tienne sur un téléphone.
Rien de tout cela n'a besoin d'un serveur, et c'est tout l'intérêt.
Obtenir Offline Transcription
Transcrivez vos fichiers audio et vidéo entièrement sur votre Mac. Rien n'est envoyé en ligne, aucun compte n'est requis et il n'y a pas de compteur à la minute.