Nouveauté : transcription et sous-titrage automatiques de vidéos

Nous avons récemment ajouté une fonctionnalité à notre Robot /speech/transcribe qui lui permet d’écouter la parole humaine et de produire des fichiers SRT. Vous pouvez utiliser automatiquement ces fichiers pour sous-titrer des contenus dans des lecteurs vidéo. Grâce à la modularité de Transloadit, comparable à celle des LEGO, vous pouvez même incruster ces sous-titres directement dans les vidéos. Aujourd’hui, j’aimerais vous montrer comment procéder.

L’IA est utilisée dans davantage de domaines que vous ne l’imaginez, et pour de bonnes raisons. Elle peut considérablement améliorer la rapidité, la précision et l’efficacité du travail humain. Pourtant, la quantité de données, leur nettoyage et le nombre de cartes graphiques nécessaires à l’entraînement de modèles complexes peuvent rendre l’IA intimidante et empêcher les petites entreprises d’en tirer parti. Transloadit s’est donné pour mission de rendre l’IA accessible à davantage de développeurs, en facilitant son utilisation et la création de valeur qu’elle permet.
Au fil des années, nous avons publié une série (English) de Robots fondés sur l’IA prêts à l’emploi. Vous n’aurez pas besoin de consacrer une seconde à vous familiariser avec des modèles d’IA ou à les entraîner.
Le Robot d’IA que nous allons examiner aujourd’hui est notre Robot /speech/transcribe. Ce Robot peut lire n’importe quel fichier audio ou vidéo et en créer automatiquement des fichiers texte, ce qui vous épargne une transcription manuelle fastidieuse. Il offre d’emblée d’autres avantages, comme la compatibilité avec de nombreuses langues et la possibilité d’utiliser l’IA d’Amazon ou de Google en modifiant un seul paramètre. Transloadit gère tous les détails de mise en œuvre en coulisses et propose une interface unique qui s’intègre à des flux de travail dans lesquels d’autres Robots interviennent et augmentent considérablement la valeur déjà apportée par ces robots d’IA. L’ensemble devient bien plus que la somme de ses parties. Changer de fournisseur en modifiant trois caractères vous permet aussi de déterminer rapidement lequel répond le mieux à votre cas d’usage. Vous n’avez pas à vous soucier de la gestion des erreurs ni de l’envoi de fichiers avec les bons codecs, bandes passantes, etc. Transloadit s’occupe de tout pour vous et propose ce service sous une forme utilisable avec une seule recette JSON déclarative.
Commencer
Dans cet article, nous allons combiner nos Robots /speech/transcribe et /video/subtitle pour transcrire la parole humaine dans une vidéo, puis incruster le résultat dans cette même vidéo. S’il est vrai qu’une transcription manuelle peut parfois donner de meilleurs résultats, cette méthode reste coûteuse et fastidieuse — au point que son coût devient prohibitif. Pour de nombreux usages, nous constatons que nos clients jugent la transcription automatique « suffisamment bonne ». Elle réduit les coûts si radicalement que la transcription de vidéos devient une perspective intéressante.
Le partage de vidéos sur les réseaux sociaux en est un exemple : il a été démontré que les vidéos sous-titrées attirent bien mieux l’attention que celles qui ne le sont pas.
Les fichiers de transcription sont aussi souvent indexés par un outil comme ElasticSearch, ce qui permet de rechercher des vidéos à partir de leur contenu. Si une recherche correspond à un mot prononcé dans une vidéo, elle renverra cette vidéo, plutôt que de se limiter aux mots de son titre.
Voici la recette que nous avons utilisée pour combiner nos deux fonctionnalités. Nous appelons cette recette Assembly Instructions. Enregistrez-la dans un Template de votre compte pour la réutiliser à tout moment. Nous allons passer en revue chaque Step, puis essayer le tout.
Créez d’abord un ensemble d’informations d’identification de Template pour
Amazon S3, nommé s3_cred, pour votre propre bucket privé. Gardez S3 Block
Public Access activé et ne fournissez aucun en-tête ACL ou d’octroi d’autorisations. L’exportation
ci-dessous définit acl sur bucket-default pour omettre
l’en-tête ACL généré ; sinon, l’ACL du Robot /s3/store utilise
public-read par défaut. La lecture de la vidéo privée et de sa transcription
nécessite une autorisation de lecture distincte ; les URL renvoyées ne donnent pas accès à ces fichiers.
{
"steps": {
":original": {
"robot": "/upload/handle"
},
"transcribed": {
"use": ":original",
"robot": "/speech/transcribe",
"provider": "gcp",
"format": "srt",
"result": true
},
"subtitled": {
"use": {
"bundle_steps": true,
"steps": [
{
"name": ":original",
"as": "video"
},
{
"name": "transcribed",
"as": "subtitles"
}
]
},
"robot": "/video/subtitle",
"ffmpeg_stack": "v7",
"preset": "ipad-high",
"result": true
},
"exported": {
"use": ["subtitled", "transcribed"],
"robot": "/s3/store",
"credentials": "s3_cred",
"acl": "bucket-default"
}
}
}
Notre premier Step, qui utilise le Robot /upload/handle, sert à gérer nos téléversements. Qui l’aurait cru ? Ce Step vous permet de téléverser votre fichier. Notez toutefois que nous proposons de nombreux autres Robots pour l’importation de fichiers.
Passons à notre deuxième Step,
"transcribed", où intervient la magie de l’IA évoquée plus haut. Nous configurons le
paramètre provider avec la valeur d’API "gcp", mais vous pourriez aussi
utiliser la valeur "aws". Nous devons également configurer le paramètre
format. Puisque nous voulons intégrer des sous-titres à une vidéo, nous avons
choisi le format "srt". Vous pourriez aussi utiliser
"webvtt", mais ses avantages par rapport à "srt" ne
seront pas nécessaires dans notre cas.
Vous pourriez exporter les fichiers SRT séparément pour superposer les sous-titres dans le lecteur
vidéo. Ici, nous allons toutefois incruster le sous-titre généré dans le fichier vidéo initialement
téléversé à l’aide de notre Robot
/video/subtitle. Pour fusionner les deux
Steps, référencez à la fois les
Steps de téléversement et de transcription dans le
paramètre use du Robot
/video/subtitle, en utilisant la syntaxe de nommage
use.steps[].as.
Enfin, utilisez le Robot /s3/store (English) pour exporter nos résultats vers Amazon S3. Comme notre premier Step, ce Step peut facilement être remplacé, car nous proposons de nombreuses autres options d’exportation.
Tester
Pour tester notre Template, nous avons choisi un court extrait de la remarquable série de David Attenborough, Planet Earth.
Comme vous pouvez le voir, l’Assembly a réussi. Grâce à l’IA, nous n’avons pas à créer manuellement un fichier de sous-titres, une tâche laborieuse.
Ce flux de travail peut désormais être intégré à votre application web ou mobile, à votre service back-end ou à votre utilitaire en ligne de commande grâce à 20 SDK pratiques, comme Uppy ou le SDK Go, ainsi que directement via notre API REST JSON.
Nous avons hâte de découvrir ce que vous créerez avec nous. Faites-le-nous savoir sur Twitter !