Aller au contenu principal

AiSrt : traduisez, extrayez et transcrivez vos sous-titres grâce à l'IA


AiSrt : traduisez, extrayez et transcrivez vos sous-titres grâce à l'IA

Des sous-titres dans votre langue pour n'importe quelle vidéo, en une seule commande.

Un film avec des sous-titres anglais, une conférence sans le moindre sous-titre, un Blu-ray dont les sous-titres sont des images, une saison entière à traiter d'un coup : vous donnez la vidéo à AiSrt, il s'occupe du reste. Il trouve la piste qui existe, la traduit avec l'IA, lit les sous-titres image, ou écoute l'audio s'il n'y a rien du tout.

J'ai écrit cet outil d'abord pour l'accessibilité : une personne sourde ou malentendante ne devrait pas attendre qu'un éditeur daigne sous-titrer une vidéo. Avec AiSrt, ça prend quelques minutes.

Gratuit et open sourceWindows, Linux et macOSPlus de 15 services d'IA100 % local possibleToutes les langues

aisrt "film.mkv"

C'est tout. Cette ligne donne un sous-titre dans votre langue par défaut, quelle que soit la vidéo.

L'outil

À quoi sert AiSrt

Quatre métiers dans un seul petit programme, et AiSrt choisit seul celui dont votre vidéo a besoin.

1

Traduire

Un fichier de sous-titres, un dossier ou une série entière, dans une ou plusieurs langues d'un coup. Le modèle d'IA traduit des répliques, pas des mots : l'humour et les expressions passent.

2

Extraire

Les sous-titres déjà présents dans une vidéo (MKV, MP4...) sont sortis en fichiers .srt ou .ass. S'ils sont déjà dans votre langue, AiSrt s'arrête là.

3

Lire les Blu-ray

Sur un Blu-ray, les sous-titres sont des images. AiSrt les relit par reconnaissance de caractères ou avec un modèle de vision, puis les traduit.

4

Transcrire

Pas de sous-titre du tout ? AiSrt écoute l'audio avec Whisper, détecte la langue parlée, écrit le sous-titre et le traduit.

Fenetre de terminal, traduction en cours, progression lot par lot avec le temps ecoule

Une traduction en cours : chaque lot part au service choisi, la barre donne le temps restant.

Pourquoi vous allez l'adorer

Le service d'IA de votre choix

OpenAI, Claude, Gemini, Grok, Mistral, DeepSeek, OpenRouter et bien d'autres. Ou gratuitement, sur votre propre machine, avec Ollama ou LM Studio.

Une saison entière d'un coup

Donnez un dossier : chaque épisode est traité, ce qui est déjà traduit est sauté, et un résumé vous attend à la fin. Il peut même surveiller un dossier de NAS.

Des noms qui ne changent pas

Un petit glossaire, et le surnom du héros reste le même du premier au dernier épisode.

Des sous-titres lisibles

Les répliques qui défilent trop vite pour être lues sont repérées, et raccourcies si vous le voulez.

Pas de mauvaise surprise

Coût estimé avant de payer, clé et service vérifiés avant de commencer, reprise automatique si vous coupez en route.

Prêt pour Plex et Jellyfin

Fichiers nommés selon la langue, styles .ass conservés, et une copie de la vidéo avec ses nouvelles pistes si vous le demandez.

Installation

Prêt en trois étapes

1

Téléchargez

Choisissez l'archive de votre système avec les boutons de téléchargement en bas de cette page :

  • Windows : win-x64 pour un PC classique, win-arm64 pour un PC Snapdragon
  • Linux : linux-x64, ou linux-arm64 pour un Raspberry Pi en 64 bits
  • macOS : osx-arm64 pour un Mac Apple Silicon, osx-x64 pour un Mac Intel
2

Installez

Décompressez l'archive et lancez le script qu'elle contient. Il rend aisrt disponible dans tous vos terminaux.

# Windows (PowerShell)
.\install.ps1

# Linux et macOS
sudo ./install.sh

Aucun runtime à installer, et les versions macOS sont signées par Apple.

3

Configurez

aisrt setup

L'assistant demande le service d'IA, votre clé et votre langue, vérifie que tout répond, puis enregistre. Vos réglages survivent aux mises à jour.

Pas encore de clé ? Chez OpenAI, ça prend deux minutes : créez un compte, ajoutez quelques dollars de crédit, créez une clé dans la page des clés API et collez-la quand aisrt setup la demande. Un film complet coûte quelques centimes. Et si vous ne voulez rien payer du tout, Ollama fait tourner l'IA chez vous, sans compte ni clé.

Premiers pas

# Une vidéo : sous-titres dans votre langue par défaut
aisrt "film.mkv"

# Plusieurs langues, et une copie de la vidéo qui les embarque
aisrt "film.mkv" -t fr,es,pt-BR --mux

# Un fichier de sous-titres : la langue source est détectée toute seule
aisrt "film.srt" -t de

# Une série entière, sous-dossiers compris
aisrt "D:\Series\The Wire" -r -t fr

# Surveiller un dossier et traduire tout ce qui y arrive
aisrt "/media/incoming" --watch -t fr

Ce dont vous avez besoin

PourIl faut
Traduireune clé chez un service en ligne, ou un serveur local gratuit (Ollama, LM Studio, llama.cpp, vLLM)
Lire une vidéoffmpeg, téléchargé tout seul sous Windows et Linux ; brew install ffmpeg sur Mac
Transcrire l'audiowhisper.cpp, téléchargé tout seul sous Windows x64 et Linux ; brew install whisper-cpp sur Mac
Lire un sous-titre de Blu-rayTesseract, à installer vous-même, ou un modèle de vision (rien à installer)

L'extraction et la transcription ne demandent ni compte ni clé, et n'envoient rien nulle part.

Pour aller plus loin

L'aspect technique

Tout ce qui suit est facultatif : les réglages par défaut conviennent à la plupart des usages. C'est ici que je raconte comment AiSrt fonctionne et comment l'adapter à vos besoins.

Comment AiSrt choisit sa route

Face à une vidéo, AiSrt prend toujours le chemin le moins coûteux :

  1. une piste existe déjà dans la langue demandée : il l'extrait, rien de plus ;
  2. une piste texte existe dans une autre langue : il l'extrait et la traduit (la langue de -s d'abord, puis l'anglais, puis les autres) ;
  3. il n'y a qu'une piste image : il la lit par OCR, puis la traduit ;
  4. il n'y a aucun sous-titre : il transcrit l'audio, puis traduit.

--extract et --transcribe forcent une route précise. La langue source se déduit du nom (film.en.srt), de l'étiquette de la piste, de Whisper, ou d'un coup d'œil du modèle au texte : -s ne sert qu'à la forcer.

Les services de traduction

AiSrt parle directement à Anthropic (Claude), Google (Gemini), xAI (Grok), OpenAI et Ollama, ainsi qu'à tous ceux qui parlent le même langage qu'OpenAI : Mistral, DeepSeek, Groq, OpenRouter, Together, Fireworks, Cerebras, Azure OpenAI, LM Studio, llama.cpp et vLLM.

Nom à donnerServiceModèle par défaut
openaiOpenAIgpt-5-mini
anthropicAnthropic Claudeclaude-haiku-4-5
geminiGoogle Geminigemini-3.6-flash
xaixAI Grokgrok-4.5
mistralMistralmistral-small-latest
openrouterOpenRouteropenrouter/auto
deepseek, groq, together, fireworks, cerebrasautres services compatibleschoisi dans la liste du service
ollama, lmstudio, llamacpp, vllmserveurs locaux, gratuitsle modèle chargé

Pour les services dont le catalogue change tous les mois, je ne fige volontairement aucun modèle : AiSrt lit la liste du service, vous laisse choisir et retient votre choix. aisrt --providers dit lesquels sont prêts.

aisrt "film.srt" -t fr -p mistral     # pour cette commande seulement
aisrt config set provider mistral     # pour toutes les suivantes

Avant une traduction payante, AiSrt estime le coût et demande confirmation au-dessus de 0,50 dollar (réglable). À la fin, il affiche les tokens (les unités de texte facturées par le service) réellement consommés.

En local avec Ollama

ollama pull gpt-oss:20b
aisrt "film.srt" -t fr -p ollama

J'ai testé plusieurs modèles, trois fois chacun. gpt-oss:20b, celui que je livre par défaut, n'a jamais perdu un seul bloc, mais il pèse environ 14 Go et prend son temps. llama3.1:8b va environ dix fois plus vite pour un résultat presque aussi propre. qwen2.5, lui, m'a glissé des commentaires en chinois au milieu des sous-titres, trois fois sur trois : à éviter. En local, c'est gratuit mais plus lent, et la qualité reste un cran sous les meilleurs services en ligne.

Glossaire et vitesse de lecture

# aisrt-glossary.txt, dans le dossier de la série
Walter White
Heisenberg
the Cousins = les Cousins

Un terme seul est gardé tel quel, un terme suivi de = est toujours traduit pareil. Le fichier est trouvé tout seul dans le dossier de l'épisode, de la saison ou de la série, et seuls les termes présents dans chaque lot sont envoyés.

Une traduction est souvent plus longue que l'original. Après chaque fichier, AiSrt compte les sous-titres affichés trop peu de temps pour leur longueur (au-delà de 20 caractères par seconde ; Netflix vise 17). Avec --condense, le modèle les raccourcit, et toute réécriture qui ne serait pas plus courte est jetée. Tous les textes envoyés au modèle se modifient dans la configuration.

Formats et fichiers produits

  • un .srt donne un .srt, un .ass donne un .ass avec ses styles (--to-srt pour un .srt simple) ;
  • les .vtt, .sub, .sbv, .smi et .ttml sont convertis avec ffmpeg ;
  • les fichiers sont nommés selon la langue (film.fr.srt, film.pt-BR.srt), comme Plex et Jellyfin l'attendent ;
  • --mux écrit film.aisrt.mkv, une copie de la vidéo avec les nouvelles pistes étiquetées ;
  • un fichier existant est toujours sauvegardé en .bak.srt avant d'être remplacé, et une traduction interrompue reprend où elle s'était arrêtée.

Les sous-titres de Blu-ray

Les pistes PGS des Blu-ray stockent la photo des mots, pas les mots. Deux moteurs les relisent :

Tesseract (par défaut, local et gratuit), un logiciel de reconnaissance de caractères (OCR, il relit le texte d'une image). C'est la seule dépendance qu'AiSrt ne télécharge pas, parce qu'elle s'installe différemment sur chaque système :

winget install tesseract-ocr.tesseract   # Windows
sudo apt install tesseract-ocr          # Linux
brew install tesseract                  # macOS

Le texte reconnu est ensuite relu par votre service d'IA, avec une consigne stricte : corriger les erreurs de lecture (une barre à la place d'un I, un « rn » lu comme un « m »), sans rien traduire ni reformuler. Sur 100 sous-titres de test, 14 ont été corrigés et aucun déplacé. Je préfère une coquille visible à une réplique parfaite collée au mauvais endroit, alors toute réponse douteuse garde le texte brut.

Un modèle de vision lit directement les images, nettement mieux sur les polices stylisées, sans rien installer :

aisrt config set ocr-engine vision

Un long métrage compte environ mille images : AiSrt annonce le nombre de requêtes avant de commencer, et relit image par image toute réponse qui ne rend pas exactement un texte par image. Les fondus, où le disque renvoie la même image avec une autre transparence, ne coupent plus une réplique en morceaux : AiSrt garde le rendu le plus lisible.

La transcription

Quand une vidéo n'a aucun sous-titre, AiSrt utilise whisper.cpp, la version optimisée du modèle de reconnaissance vocale Whisper d'OpenAI. La langue parlée est détectée, et sous Windows une carte NVIDIA est utilisée quand elle est présente.

aisrt --transcribe "conference.mp4" -tt fr   # transcrire, puis traduire en français
ModèleTailleLangues
base, small, medium150 Mo, 500 Mo, 1,5 Gotoutes
large-v33 Gotoutes, la meilleure précision
base.en, small.en, medium.en150 Mo, 500 Mo, 1,5 Goanglais uniquement

Face à de l'audio français, les modèles .en ne plantent pas : ils inventent un texte anglais très sûr de lui. AiSrt refuse donc cette combinaison. Seule la parole est transcrite, la musique et les bruits ne produisent aucun sous-titre.

Les vérifications avant envoi

Avant le premier appel payant, AiSrt vérifie que le service répond : clé invalide, compte sans crédit, modèle inconnu, serveur local éteint. Chaque cas a son message et le réglage à corriger. Il vérifie aussi la nature de chaque fichier : rien de binaire ne part chez le service de traduction.

Automatiser

aisrt "film.mkv" -t fr --non-interactive
aisrt --extract "episode.mkv" --stream 2 --translate-to fr,es --non-interactive

Avec --non-interactive, chaque question prend sa valeur par défaut et le journal dit laquelle. Une valeur donnée explicitement n'est jamais ignorée : demander la piste 7 d'un fichier qui n'en a que deux arrête tout et liste les pistes disponibles. Codes de retour : 0 succès (y compris rien à faire), 1 au moins un fichier en échec, 2 annulation par Ctrl+C.

OptionRôle
-t, --targetlangue(s) cible, séparées par des virgules
-s, --sourcelangue source, détectée si absente
-p, --providerservice de traduction pour cette commande
-r, --recursiveinclut les sous-dossiers
-w, --watchsurveille le dossier et traite les nouveaux fichiers
--muxajoute les sous-titres à une copie de la vidéo
-g, --glossaryglossaire à utiliser
--condenseraccourcit les sous-titres trop rapides à lire
--to-srtun .ass en entrée, un .srt simple en sortie
-st, --streamsliste les pistes de sous-titres d'une vidéo
-ex, --extractextrait les pistes d'une vidéo
-tr, --transcribetranscrit l'audio avec Whisper
--streampiste à utiliser (index, ou all)
-tt, --translate-totraduit le résultat d'une extraction ou d'une transcription
-m, --modelmodèle Whisper
-al, --audio-languagelangue parlée, pour l'imposer
-y, --yesaccepte l'estimation de coût
-ni, --non-interactivene pose jamais de question
-l, --languagesliste les langues
--providersliste les services et leur état

Configuration

aisrt config list                     # les réglages en vigueur, clés masquées
aisrt config set target pt-BR         # langue par défaut
aisrt config set Translation:ConfirmCostAbove 2
aisrt config path                     # où chaque réglage est lu

Les réglages vivent dans votre dossier utilisateur (%APPDATA%\AiSrt sous Windows, ~/.config/aisrt ailleurs). Une clé peut aussi venir d'une variable d'environnement sous le nom habituel du service (OPENAI_API_KEY, MISTRAL_API_KEY...), et toute clé de configuration se surcharge avec une variable préfixée AISRT_, pratique dans un conteneur.

Ce qui ne marche pas encore

Les sous-titres image des DVD et de la TNT ne sont pas décodés : ils se lisent avec des informations rangées ailleurs dans le fichier, c'est un autre chantier. AiSrt les repère et vous prévient au lieu de les ignorer en silence.

Pour qui ?

Les personnes sourdes et malentendantes, d'abord. Mais aussi les créateurs de contenu qui veulent toucher un public au-delà de leur langue, les enseignants dont les cours en ligne méritent mieux qu'un sous-titrage approximatif, les traducteurs qui veulent un premier jet en quelques minutes, les associations qui diffusent des vidéos à l'international, et les cinéphiles qui ont une étagère de Blu-ray en VO.

AiSrt est gratuit. Téléchargez l'archive de votre système en bas de cette page, lancez aisrt setup, et donnez-lui votre première vidéo.

Téléchargement — Version 2.0.1

Historique des versions
2.0.1 26/10/2026Actuelle
- Une vidéo sans option donne directement un sous-titre dans votre langue : piste existante, piste traduite, lecture des sous-titres image ou transcription, AiSrt choisit seul - Un fichier .ass traduit ressort en .ass avec ses styles ; --to-srt pour obtenir un .srt comme avant - La langue source est détectée : -s ne vaut plus anglais par défaut, il sert seulement à forcer - Le format des messages de la console change : une ligne par message - Nouveaux services compatibles : Mistral, DeepSeek, Groq, OpenRouter, Together, Fireworks, Cerebras, Azure OpenAI, LM Studio, llama.cpp, vLLM, et tout autre serveur compatible OpenAI - aisrt setup configure le service, la clé et la langue par défaut en une fois ; aisrt config modifie un réglage - Les réglages vivent dans le dossier utilisateur et survivent aux mises à jour ; les clés API sont lues dans les variables d'environnement - Plusieurs langues d'un coup (-t fr,es,de), dossiers (-r), jokers et surveillance d'un dossier (--watch) - Ce qui est déjà traduit dans un dossier est sauté - Toutes les langues ISO, avec les variantes pt-BR, es-419, fr-CA, zh-Hant - --mux ajoute les sous-titres à une copie de la vidéo - Glossaire pour garder les mêmes noms d'un épisode à l'autre - Contrôle de la vitesse de lecture, et --condense pour raccourcir ce qui défile trop vite - Barre de progression, estimation du coût avant traduction et consommation réelle à la fin - Lecture des sous-titres Blu-ray par un modèle de vision, au choix avec Tesseract - Six versions : Windows et Linux en x64 et ARM64, macOS Intel et Apple Silicon - Correction : sous Linux et macOS, le appsettings.json copié par install.sh n'était pas lu
1.10.0 01/08/2026
- Cette version regroupe tout ce qui s'est ajoute depuis la 1.6.2. - Trois services de traduction de plus : Anthropic Claude, Google Gemini et xAI Grok, a cote d'OpenAI et d'Ollama. - Le service se choisit avec --provider, ou dans appsettings.json. - Cle absente, cle invalide ou modele inconnu sont detectes avant la premiere traduction, plus au milieu d'un fichier. - La cle peut venir de deux noms de variable d'environnement par service, par exemple ANTHROPIC_API_KEY ou CLAUDE_API_KEY. - Les sous-titres image PGS des Blu-ray sont lus par OCR avec Tesseract, a installer soi-meme. - Le texte reconnu est relu par le service de traduction, qui corrige les erreurs de lecture sans traduire. - Les fondus ne coupent plus les sous-titres image : un sous-titre de quatre secondes ressortait en trois morceaux. - La langue parlee est detectee par whisper au lieu d'etre supposee anglaise. - Un modele whisper anglais seul est refuse sur de l'audio etranger, au lieu d'inventer. - La transcription ne perd plus le premier mot des phrases a cheval sur deux fenetres d'analyse. - Console en UTF-8 sous Windows : les accents s'affichent correctement pendant une transcription. - La notification de mise a jour s'affiche au demarrage, plus a la fin d'une operation d'un quart d'heure. - Ocr:PageSegMode et Ocr:UpscaleFactor sont bornes : une valeur hors limites est signalee et remplacee. - L'aide --help annonce enfin la lecture par OCR des pistes image. - Les sous-titres image de DVD et de la TNT ne sont toujours pas geres : ils sont signales et sautes.
1.6.2 30/07/2026
- Transcription : le premier mot d'une phrase n'est plus perdu quand elle est à cheval sur deux fenêtres d'analyse. « Cette vidéo présente » était transcrit « vidéo présente » — un défaut qui touchait tous les transcripts produits jusqu'ici. - Transcription : plus de répétitions en boucle sur les passages chantés ou musicaux. - Contrepartie assumée de cette correction : les annotations du type [Musique] n'apparaissent plus dans les sous-titres. - Un transcript vide est désormais signalé immédiatement, au lieu d'échouer plus loin sur un fichier jugé illisible.

Rejoignez la conversation

Vous devez avoir un compte pour commenter cet article. La création est gratuite et prend moins d'une minute.

  • Le fichier XMLTV à télécharger gratuitement, chaque jour
  • Commenter les articles et répondre aux autres lecteurs
  • Être averti par e-mail des nouveaux articles que vous suivez

Aucun commentaire pour le moment.

Une erreur s'est produite. Cette application peut ne plus répondre jusqu'à ce qu'elle soit rechargée.Veuillez contacter l'auteur. Reload 🗙