engineeringproduct

Le problème de segmentation des sous-titres dont personne ne parle

« Je suis allé au » / « magasin hier » — pourquoi la plupart des sous-titres IA brisent les phrases aux pires endroits, et comment nous avons résolu ce problème.

Kevin Li

Kevin Li

5 février 20264 min de lecture
Le problème de segmentation des sous-titres dont personne ne parle

Voilà quelque chose qui m'a agacé pendant des mois.

Vous importez une vidéo où quelqu'un dit : « Je suis allé au supermarché hier acheter des œufs. »

La plupart des outils de sous-titres vont découper ça en quelque chose comme :

Ligne 1 : "Je suis allé au"
Ligne 2 : "supermarché hier"
Ligne 3 : "acheter des œufs"

Relisez ça. « Je suis allé au » — au quoi ? Votre cerveau doit retenir ce fragment en mémoire de travail jusqu'à ce que la ligne suivante apparaisse. C'est comme lire un livre où quelqu'un a coupé chaque ligne avec des ciseaux à des intervalles aléatoires.

C'est le problème de segmentation des sous-titres, et presque personne dans l'espace des outils de sous-titres n'en parle.

Pourquoi c'est plus difficile qu'il n'y paraît

L'approche naïve : découper tous les N mots. C'est ce que font la plupart des outils. Tous les 3-5 mots, nouvelle ligne. Simple, cohérent, terrible.

L'approche un peu moins naïve : découper à la ponctuation. Mieux, mais la plupart des discours informels n'ont pas beaucoup de ponctuation. Les gens disent « donc je suis allé au magasin et j'ai pris des œufs et ensuite je suis rentré » comme une seule phrase continue. Où couper ça ?

La vraie réponse implique de comprendre la structure des syntagmes. « le supermarché » est un groupe nominal — le couper en deux lignes, c'est comme couper un mot en mi-lieux. « pour acheter des œufs » est une proposition de but — elle appartient ensemble. « hier » modifie « suis allé », pas « supermarché », donc il devrait probablement rester avec le verbe.

Ce que nous avons construit

Nous avons reconstruit notre algorithme de segmentation de zéro le mois dernier (nous l'avons appelé Smart Segmentation 2.0 en interne, ce qui est un nom terrible mais qui est resté).

Les idées fondamentales :

Découpage contextuel. Nous analysons la transcription en morceaux syntaxiques — groupes nominaux, groupes verbaux, syntagmes prépositionnels, entités nommées. L'algorithme ne coupe jamais à l'intérieur d'un groupe. « le supermarché » reste toujours ensemble. « New York City » reste toujours ensemble.

Dimensionnement selon le format. C'est l'intuition qui a tout changé : les sous-titres TikTok et les sous-titres YouTube nécessitent des longueurs de ligne complètement différentes.

Pour le format court (moins de 3 min) : 3-6 mots par bloc. Serré, percutant, correspond au rythme de défilement rapide. Deux ou trois mots à l'écran à la fois. C'est ce qu'on voit sur les TikToks viraux.

Pour le format long (3+ min) : 6-12 mots par bloc, souvent sur deux lignes. Plus proche des sous-titres traditionnels. Lisible sans demander d'attention. C'est ce qui fonctionne pour les vidéos YouTube, les cours en ligne, les podcasts.

Nous détectons automatiquement quel mode utiliser en fonction de la durée de la vidéo.

Pas de coupure au milieu d'un syntagme. C'est la règle que nous appliquons avant tout. Si l'algorithme ne peut pas trouver un point de coupure propre dans le nombre de mots cible, il étend le bloc plutôt que de couper un syntagme en deux. Un bloc de sous-titres légèrement long est toujours meilleur qu'un bloc confus.

Avant / Après

Même transcription, ancien algorithme vs nouveau :

Avant :

"Donc ce que j'ai fait"
"ces derniers temps c'est travailler"
"sur ce nouveau projet"
"dont je suis vraiment excité"

Après :

"Donc ce que j'ai fait ces derniers temps"
"c'est travailler sur ce nouveau projet"
"dont je suis vraiment excité"

La différence semble petite en texte. En vidéo, avec des mots qui apparaissent et disparaissent au rythme de la parole, c'est le jour et la nuit. La nouvelle version se lit naturellement. L'ancienne vous fait travailler.

La vérité inconfortable

La raison pour laquelle ce problème persiste dans la plupart des outils, c'est qu'il est invisible dans les démos. Quand vous montrez un outil de sous-titres dans un clip marketing de 5 secondes, n'importe quelle segmentation semble correcte. C'est seulement quand vous traitez une vraie vidéo de 60 secondes avec des patterns de parole naturels que les mauvaises coupures deviennent évidentes.

Nous l'avons remarqué parce que nous utilisons CaptionBolt pour notre propre contenu. Chaque mauvaise coupure dans nos propres vidéos nous rendait un peu plus fous jusqu'à ce que nous nous engagions finalement à reconstruire l'ensemble.

Si vous utilisez CaptionBolt, la nouvelle segmentation est déjà en ligne. Vous n'avez rien à faire — toutes les nouvelles vidéos utilisent automatiquement l'algorithme amélioré. Traitez une vidéo et comparez-la à quelque chose que vous avez fait il y a quelques mois. La différence devrait être évidente.

Prêt à faire ressortir vos sous-titres ?

Commencez gratuitement — sans carte bancaire, sans engagement. Constatez la qualité par vous-même.