Bienvenue

Application de bureau

Vocal Teleprompter

TauriReactTypeScriptRustWeb Speech APITailwind CSS

Application de bureau qui écoute l'orateur en temps réel et fait défiler le texte automatiquement pour le suivre. Construite avec Tauri (Rust + React) : un binaire natif léger avec une interface web. Elle utilise la Web Speech API et une correspondance approximative des mots pour suivre la position dans le texte.

Le problème

Enregistrer une vidéo en lisant un texte oblige soit à l'apprendre par cœur, soit à le faire défiler à la main, et les deux cassent le fil de la lecture. Je voulais un prompteur qui suive ma voix et défile tout seul, pour ne jamais détourner le regard ni toucher au clavier. Le plus difficile n'est pas le défilement, mais un suivi voix-position assez fiable pour ne jamais se désynchroniser.

Décisions clés

Tauri plutôt qu'Electron pour l'application de bureau

Electron embarque une instance complète de Chromium, soit un binaire de plus de 100 Mo et une consommation mémoire qui rivalise avec un onglet de navigateur. Tauri utilise le webview natif du système (WebView2 sous Windows, WKWebView sous macOS), pour un binaire d'environ 3 Mo et nettement moins de RAM. Pour un petit utilitaire qui tourne en arrière-plan pendant les enregistrements, cette différence de poids compte.

Web Speech API plutôt que Whisper en local ou un service de STT dans le cloud

Le cas d'usage est la lecture en direct, en temps réel : la latence est la contrainte principale, pas la précision. Whisper en local ajoute 1 à 2 secondes de traitement par segment audio, et le défilement prend visiblement du retard sur la voix. Les services cloud ajoutent la latence réseau et un coût à la minute. La Web Speech API fonctionne en streaming et renvoie les mots au fil de la parole, exactement ce qu'il faut à un prompteur. La contrepartie est une connexion internet obligatoire, ce qui reste acceptable.

Correspondance approximative des mots plutôt qu'exacte pour suivre la position

La correspondance exacte casse sans arrêt en pratique : l'orateur hésite, ajoute des mots de remplissage, prononce mal un terme technique, ou le STT renvoie une transcription presque juste. Un comparateur approximatif fondé sur la distance de Levenshtein, appliqué à une fenêtre glissante des prochains mots attendus, retrouve la position la plus probable même avec une transcription imparfaite. C'est ce qui fait la différence entre une démo qui marche dans des conditions idéales et un outil qui marche pendant un vrai enregistrement.

Résultat

L'application est stable et je l'utilise pour mes propres enregistrements. La correspondance approximative s'est révélée la décision de conception la plus importante : avec une correspondance exacte, le suivi se serait désynchronisé dans les 30 premières secondes de n'importe quelle vraie session. Le projet m'a aussi offert une introduction concrète à l'architecture de Tauri et à la frontière entre le backend Rust et le frontend React.

Points forts

  • —Reconnaissance vocale en temps réel avec la Web Speech API
  • —Correspondance approximative des mots, tolérante aux erreurs de prononciation et aux variantes
  • —Surlignage mot par mot avec défilement automatique fluide
  • —Prise en charge de plusieurs langues et choix du microphone
  • —Application de bureau Tauri : binaire natif, sans le poids d'Electron

Travaillons ensemble