Aller au contenu

Video Alt Text

AI generated translation.

GenAIScript supporte la transcription vocale et l’extraction de frames vidéo qui peuvent être combinés pour analyser des vidéos.

L’attribut vidéo HTML n’a pas d’attribut alt.. mais vous pouvez tout de même attacher une description accessible en utilisant l’attribut aria-label. Nous allons créer un script qui génère la description en utilisant la transcription et les frames vidéo.

Nous utilisons la fonction transcribe pour générer la transcription. Elle utilisera l’alias de modèle transcription pour calculer une transcription. Pour OpenAI, le mode par défaut est openai:whisper-1.

Les transcriptions sont utiles pour réduire les hallucinations des LLM lors de l’analyse d’images et fournissent également de bons candidats pour les timestamps pour capturer une capture d’écran du flux vidéo.

const file = env.files[0]
const transcript = await transcribe(file) // OpenAI whisper

L’étape suivante consiste à utiliser la transcription pour capturer des images du flux vidéo. GenAIScript utilise ffmpeg pour rendre les images assurez-vous qu’il l’est installé et configuré.

const frames = await ffmpeg.extractFrames(file, {
transcript,
})

Les deux, transcription et images, sont ajoutées au contexte de l’invite. Étant donné que certaines vidéos peuvent être silencieuses, nous ignorons les transcriptions vides. Nous utilisons également une faible résolution pour les images afin d’améliorer la performance.

def("TRANSCRIPT", transcript?.srt, { ignoreEmpty: true }) // ignore silent videos
defImages(frames, { detail: "low" }) // low detail for better performance

Enfin, nous confions la tâche au LLM pour générer le texte alternatif.

$`You are an expert in assistive technology.
You will analyze the video and generate a description alt text for the video.
`

En utilisant ce script, vous pouvez générer automatiquement des textes alternatifs de haute qualité pour les vidéos.

Fenêtre de terminal
genaiscript run video-alt-text path_to_video.mp4
video-alt-text.genai.mjs
script({
description: "Generate a description alt text for a video",
accept: ".mp4,.webm",
system: [
"system.output_plaintext",
"system.safety_jailbreak",
"system.safety_harmful_content",
"system.safety_validate_harmful_content",
],
files: "src/audio/helloworld.mp4",
model: "vision",
});
const file = env.files[0];
const transcript = await transcribe(file, { cache: "alt-text" }); // OpenAI whisper
const frames = await ffmpeg.extractFrames(file, {
transcript,
}); // ffmpeg to extract frames
def("TRANSCRIPT", transcript?.srt, { ignoreEmpty: true }); // ignore silent videos
defImages(frames, { detail: "low" }); // low detail for better performance
$`You are an expert in assistive technology.
You will analyze the video and generate a description alt text for the video.
- The video is included as a set of <FRAMES> images and the <TRANSCRIPT>.
- Do not include alt text in the description.
- Keep it short but descriptive.
- Do not generate the [ character.`;