Privé · Sur l'appareil · Apple Neural Engine

Des sous-titres en temps réel pour
tout ce que joue votre Mac.

Vidéos, appels, podcasts : transcrits pendant la lecture et affichés en overlay toujours au premier plan. Rien n'est envoyé, rien n'est enregistré, rien n'est écrit sur le disque.

Remboursement sous 14 jours, sans justification

Paiement unique de 9 $, toutes les mises à jour à venir comprises · macOS 14.2 ou version ultérieure · Apple Silicon
Sous-titres illimités, aussi longtemps que vous le souhaitez. Aucune minute à acheter, aucun compte, aucun abonnement.

Changez d'application et les sous-titres restent : l'overlay est au-dessus de toutes les fenêtres et laisse passer les clics.

Cliquez sur une fenêtre pour la ramener au premier plan. Maintenez et faites glisser les sous-titres pour les déplacer, comme dans l'app.

Pointez les sous-titres et ils se dissolvent sous le curseur. Maintenez pour rempiler les derniers. Les deux fonctionnent ici exactement comme dans l'app.

Des sous-titres en temps réel pour toutes vos apps sur Mac

Subtitles sous-titre tout audio que votre Mac peut jouer, parce qu'il capte l'application elle-même au lieu de s'intégrer à un service en particulier. Que vous soyez sourd ou malentendant, que vous écoutiez dans une deuxième langue ou que vous travailliez simplement dans un endroit bruyant, trois situations reviennent sans cesse.

01

Réunions et appels

Zoom, Google Meet, Teams, un huddle Slack, un appel dans un onglet du navigateur : tout cela n'est que du son qui sort d'une application, donc tout cela est sous-titré. Deuxième langue ou non, l'outil gagne sa place dès qu'un accent est inhabituel, que le micro de quelqu'un est mauvais ou que deux personnes parlent en même temps : lire un mot que vous n'avez saisi qu'à moitié va plus vite que de le faire répéter, et cela n'interrompt personne.

02

Garder le fil pendant que vous travaillez

Le son n'attend pas. Dès que vous passez à vos notes, à votre éditeur ou à une fenêtre de navigateur, vous commencez à perdre la conversation. L'overlay est toujours au-dessus de toutes les fenêtres et laisse passer les clics : il reste où il est pendant que vous travaillez devant lui. Vous pouvez prendre des notes, vérifier quelque chose, et suivre quand même ce qui se dit. Un carnet comme Granola rédige la réunion après coup ; ceci est la moitié qui doit se passer pendant qu'elle a encore lieu.

03

Vidéos, podcasts et cours

Une vidéo sans sous-titres, ou avec des sous-titres automatiques pires que rien. Un podcast dans une langue que vous apprenez encore. Un cours enregistré ou diffusé en direct, un entretien, un film aux dialogues trop discrets. Les sous-titres apparaissent par-dessus la fenêtre qui joue le contenu, à la taille de texte que vous choisissez, en neuf langues, la langue étant détectée pour vous.

Les trois ont un point commun : une réunion, un appel et un enregistrement privé ne regardent aucun serveur. Aucun de ces sons n'est envoyé, parce qu'aucun n'a besoin de l'être : le modèle tourne sur votre Mac.

Construit autour de trois contraintes

L'audio en temps réel ne peut pas être mis en pause, ne peut pas être rejoué, et ne devrait pas avoir à quitter votre machine. Tout ce qui suit en découle.

Rien ne quitte le Mac

Tout tourne en local et hors ligne : aucun appel réseau, aucun compte, aucune télémétrie. Le son passe du process tap directement au moteur de reconnaissance, puis il est jeté. La seule chose jamais téléchargée est le modèle lui-même, une fois.

Neural Engine, pas le CPU

Environ 0,15 en facteur temps réel : six secondes de parole transcrites par seconde de calcul. Le même modèle sur le CPU s'est révélé environ 100× trop lent pour suivre un flux en temps réel.

N'importe quelle app, une à la fois

Choisissez une source dans la barre des menus et l'app capte cette application ainsi que tous les processus auxiliaires qu'elle lance, ce qui la rend compatible avec les navigateurs et les apps Electron, où le son ne vient jamais du processus principal.

La musique ne devient pas des paroles

Un détecteur de voix tourne en amont du moteur de reconnaissance pour que les fonds musicaux ne l'atteignent jamais. Sans lui, la musique remplit le contexte du modèle et les premiers mots qui suivent sont perdus.

Un nouveau bloc par intervenant

En option, démarrez un nouveau sous-titre quand quelqu'un d'autre prend la parole, comme le fait une pause. Désactivé par défaut : cela fait tourner un second modèle en parallèle du premier.

Neuf langues

Le modèle par défaut détecte la langue tout seul. L'anglais dispose en plus de sept checkpoints dédiés, qui échangent latence contre précision à partir de 160 ms.

L'overlay ne se met pas en travers

Quelque chose au-dessus de toutes les fenêtres ne fonctionne que s'il ne devient jamais ce qu'il faut contourner. Il ne reçoit aucun clic, il se dissout là où vous pointez, et il vous rend la ligne que vous avez quittée des yeux.

Un trou là où vous pointez

Approchez le curseur du bloc et il s'efface en dessous : la phrase que vous lisez ne recouvre jamais la phrase que vous écrivez. Ce qui disparaît et la portée du trou sont à vous de régler. Maintenez pour le garder opaque.

Maintenez ⌥ pour ce que vous avez manqué

Le bloc tourne les pages comme les sous-titres de télévision : il se remplit, s'efface et recommence, si bien qu'une ligne quittée des yeux est perdue. Maintenez et les derniers blocs terminés se rempilent au-dessus de celui en cours, jusqu'à trente, avec le défilement pour les plus anciens. Relâchez et ils repartent. Rien n'est écrit nulle part.

L'overlay est l'aperçu

, depuis le menu ouvre les réglages : combien de lignes un bloc remplit avant de s'effacer, sa densité, jusqu'où porte l'effacement sous le curseur, jusqu'où remonte . Chaque curseur s'applique à l'overlay pendant que vous le faites glisser, si bien que vous réglez tout cela en le regardant plutôt qu'en choisissant un nombre.

Comment ça marche

Un thread audio temps réel qui ne fait que copier, un cœur portable qui ne transcrit jamais, et un modèle qui tourne là où il faut.

  1. 1

    Process tap Core Audio

    48 kHz stéréo, un callback toutes les 10,7 ms. Le thread temps réel copie dans un ring buffer lock-free et ne fait rien d'autre.

  2. 2

    Rééchantillonnage et gate

    Descente en 16 kHz mono sur un thread de travail, silences ignorés, avec environ une seconde rejouée avant la parole pour qu'aucun mot ne démarre à froid.

  3. 3

    Parakeet sur le Neural Engine

    Un modèle en flux continu, et non un modèle à fenêtre de 30 secondes : la différence entre des sous-titres qui suivent l'audio et des sous-titres qui arrivent avec des secondes de retard.

  4. 4

    Overlay

    Des pages de trois lignes qui s'effacent et repartent comme les sous-titres de télévision, disparaissant quatre secondes après le dernier texte nouveau plutôt qu'à l'arrêt du son.

Tout ce qui va du ring buffer jusqu'à la frontière du modèle est du Rust portable qui, délibérément, ne transcrit pas : il fournit des frames. Le process tap et l'overlay sont les seules parties spécifiques au Mac.

Remboursement sous 14 jours, sans justification.

Rien à faire valider, rien à désactiver

Si vous pouvez pointer ceci vers un appel de travail, c'est que ce n'est pas un service. Il n'y a ni serveur, ni compte, ni transcription : il n'y a donc rien à envoyer et personne d'autre dans la boucle. Le code source est publié, si bien que rien de tout cela n'est à prendre sur parole.

  • Aucun bot n'entre dans l'appel. Il capte l'audio que votre Mac joue déjà : rien n'apparaît dans la liste des participants et personne n'est prévenu que quoi que ce soit tourne. La plupart de cette catégorie envoie à la place un participant visible, ce que bien des entreprises interdisent purement et simplement.
  • Rien n'est enregistré et rien n'est écrit sur le disque. L'audio va du tap au moteur de reconnaissance et est jeté sur place. Les sous-titres sont à l'écran puis ils sont partis ; les blocs que ramène sont gardés en mémoire jusqu'à ce que vous quittiez, et il n'y a ensuite aucun fichier à retrouver, ni sur votre Mac ni ailleurs.
  • Le micro n'est jamais ouvert. Il n'entend jamais que ce que votre Mac joue. C'est une vraie limite, et c'est aussi pourquoi rien de ce que vous dites ne peut aller où que ce soit.
  • Pas de compte, pas de télémétrie, pas de réseau. Rien où se connecter et aucun usage rapporté nulle part. Le modèle se télécharge une fois, environ 633 Mo, et après cela il ne reste pas un appel réseau à faire : coupez le Wi-Fi et il continue de sous-titrer.
  • Il n'y a rien sur quoi entraîner quoi que ce soit. Aucune transcription n'existe pour être envoyée : il n'y a donc aucun réglage d'entraînement à chercher, aucune valeur par défaut à vérifier, et aucun sous-traitant à nommer dans un contrat. Savoir si cela satisfait votre propre politique vous revient, mais il n'y a ici aucun tiers à faire valider.
  • La seule exception, c'est l'achat. Gumroad encaisse le paiement et voit votre adresse e-mail, comme n'importe quelle boutique, et vous écrit quand l'app est mise à jour. L'app elle-même ne vous demande ni l'un ni l'autre.

Choisissez une langue, pas un modèle

La langue est la première chose qui écarte ou retient un modèle : c'est donc le premier niveau du menu. Changer à l'intérieur d'un pack est instantané ; passer d'un pack à l'autre télécharge le second et conserve ce que vous avez déjà.

Changez d'avis en cours de téléchargement et il s'annule pour lancer le nouveau immédiatement. Revenez plus tard et il reprend au lieu de tout recommencer.

Ça vit dans la barre des menus

Pas d'icône dans le Dock, pas de fenêtre à gérer. L'icône vous dit ce qu'elle fait : indigo pendant l'écoute, bleu pendant le téléchargement d'un modèle, jaune si le pipeline commence à prendre du retard, et jamais rouge, parce que le rouge veut dire enregistrement, et rien n'est jamais écrit nulle part. Les interrupteurs restent dans le menu, et , depuis celui-ci ouvre une fenêtre de réglages pour les molettes qui sont derrière.

S
Mettre en pause et reprendre
Maintenir
Rend l'overlay déplaçable ; sinon il laisse passer les clics
Maintenir
Rempile les derniers blocs au-dessus de celui en cours ; faites défiler pour les plus anciens
,
Réglages, depuis le menu ouvert : lignes par bloc, opacité, l'effacement sous le curseur, jusqu'où remonte
Barre des menus
Modèle, source, taille du texte, position de l'overlay, état de l'autorisation

Pourquoi pas les sous-titres en temps réel d'Apple ?

macOS intègre des sous-titres, gratuits, sur tous les Mac Apple Silicon, dans Réglages Système, Accessibilité, Sous-titres en direct. Si cela couvre vos besoins, utilisez-les. Voici les endroits où ils ont cessé de couvrir les miens, et il existe une comparaison ligne par ligne si vous voulez la version longue.

  • Neuf langues, détectées pour vous. Ceux d'Apple ne sont pas disponibles dans toutes les langues, tous les pays ou toutes les régions. Le modèle par défaut ici trouve la langue tout seul, et la barre des menus permet d'en changer.
  • C'est vous qui choisissez le modèle. Sept checkpoints en anglais qui échangent latence contre précision à partir de 160 ms, plus le multilingue. Apple vous donne des sous-titres, pas un réglage.
  • L'overlay laisse passer les clics. Celui d'Apple est une fenêtre que vous déplacez et redimensionnez. Celui-ci ne reçoit aucun clic : vous travaillez directement au travers. Maintenez quand vous voulez vraiment le déplacer.
  • Il s'écarte là où vous pointez. Le bloc s'efface sous le curseur pour que vous lisiez ce qu'il y a dessous, d'autant et d'aussi large que vous le réglez. Celui d'Apple est une fenêtre opaque que vous déplacez ailleurs.
  • Une app, ou toutes. Pointez-la sur l'onglet qui joue l'appel et le reste de la machine reste silencieux. Celle d'Apple transcrit par défaut le son de toutes les apps.
  • La musique ne devient pas des paroles. Un détecteur de voix tourne en amont du moteur de reconnaissance : un fond musical ne l'atteint jamais.
  • Un nouveau bloc par intervenant. En option, désactivé par défaut, et sans équivalent dans la fonction intégrée.

À savoir avant de télécharger

  • Le premier lancement prend plusieurs minutes. Le modèle pèse environ 633 Mo et se télécharge tout seul au premier démarrage. La barre des menus affiche la progression.
  • macOS va demander l'autorisation d'enregistrer le son du système. Ignorez cette demande et tous les échantillons arrivent en silence numérique sans la moindre erreur nulle part : l'app garde donc une vérification de l'autorisation dans le menu plutôt que de prétendre savoir. Le téléchargement est signé et notarisé, donc la réponse que vous donnez survit à toutes les mises à jour.
  • Le chant compte comme de la parole. Le détecteur de voix ne fait pas la différence : la musique chantée ressort donc transcrite en paroles.
  • Les changements d'intervenant sont rétrospectifs. La diarisation rend compte à intervalles réguliers : un mot ou deux du nouvel intervenant peuvent donc atterrir dans le bloc sortant avant qu'il ne s'efface.
  • Un seul écran. L'overlay utilise l'écran principal.
  • Les modèles restent sur le disque dès que vous les essayez. Passer de l'un à l'autre parmi les huit est justement la façon de trouver celui qu'il vous faut, et chacun de ceux que vous essayez est conservé. Les réglages ont un bouton qui supprime ceux dont rien ne se sert, et jamais celui qui est utilisé.

Les questions qui viennent en premier

Est-ce que ça marche avec Zoom, Teams et Google Meet ?
Oui. L'app capte le son que joue une application au lieu de s'intégrer à un service en particulier : une fenêtre Zoom, un huddle Slack et un appel dans un onglet du navigateur se sous-titrent donc de la même façon. Navigateurs et apps Electron compris : elle capte les processus auxiliaires qu'ils lancent, d'où vient réellement leur son.
Un overlay, ça ne finit pas par gêner ?
Il ne reçoit aucun clic : vous travaillez droit au travers, et il s'efface sous le curseur pour que vous lisiez ce qu'il y a dessous. Ce qui s'efface, la portée de cet effacement, la densité du bloc et le nombre de lignes qu'il tient sont tous des réglages. Maintenez pour le garder opaque et le faire glisser ailleurs ; l'endroit où vous le posez est retenu.
Est-ce que ça sous-titre ma propre voix ?
Non. L'app n'entend que ce que joue votre Mac, jamais le micro. Lors d'un appel, cela veut dire que vous lisez les autres, pas vous-même.
Faut-il une connexion internet ?
Une fois, pour télécharger le modèle au premier démarrage, environ 633 Mo. Ensuite, tout fonctionne entièrement hors ligne, sans le moindre appel réseau.
Puis-je enregistrer ou exporter une transcription ?
Non, et c'est délibéré. Rien n'est écrit sur le disque : les sous-titres existent à l'écran puis ils disparaissent. Maintenir ramène les derniers blocs tant que l'app tourne, ce qui sert à rattraper la ligne que vous avez manquée, pas à garder une trace. S'il vous faut une trace d'une conversation, ce n'est pas le bon outil.
Est-ce que la DSI doit le valider ?
Il n'y a ici aucun prestataire à faire valider : pas de compte, pas de serveur, aucune transcription qui quitte le Mac et rien qui rejoigne l'appel comme participant, donc personne dans la réunion n'est enregistré par quoi que ce soit. C'est une app signée et notariée sur une seule machine, et une fois le modèle téléchargé elle ne fait plus aucun appel réseau. Savoir si cela satisfait votre propre politique vous revient, mais il n'y a aucun tiers dans la boucle à faire valider.
Est-ce que ça marche avec un casque ou des AirPods ?
Oui. L'app capte le son que produit une application, pas celui qui sort d'un haut-parleur : ce sur quoi vous écoutez ne change rien.
Est-ce que ça va ralentir mon Mac ?
La transcription tourne sur le Neural Engine plutôt que sur le CPU, avec un facteur temps réel d'environ 0,15, soit six secondes de parole par seconde de calcul. Le même modèle sur le CPU s'est révélé environ 100× trop lent pour suivre, tout simplement.
Sur quels Mac est-ce que ça tourne ?
Apple Silicon, macOS 14.2 ou version ultérieure. Le plancher de version vient des process taps Core Audio, l'API sur laquelle tout repose.
Est-ce un abonnement ?
Non. 9 $ une fois, toutes les mises à jour à venir comprises, aucun compte à créer et aucune minute à acheter. Si ce n'est pas pour vous, il y a un remboursement sous 14 jours.
Puis-je voir le code source ?
Oui. Il est publié sous licence FSL-1.1-ALv2, qui devient Apache 2.0 deux ans après chaque version. Lisez-le, ou compilez-le vous-même, sur github.com/daformat/subtitles.

Des sous-titres pour tout, sans envoyer le moindre son ailleurs.

Remboursement sous 14 jours, sans justification

Paiement unique de 9 $, toutes les mises à jour à venir comprises · macOS 14.2 ou version ultérieure · Apple Silicon
Sous-titres en temps réel illimités, aussi longtemps que vous possédez le Mac. Aucune minute à acheter, aucun compte, aucun abonnement.