Sådan genereres og tilføjes undertekster til videoer ved hjælp af Python, OpenAI Whisper og FFmpeg

Sådan genererer og tilføjer du undertekster til videoer ved hjælp af Python, OpenAI Whisper og FFmpeg

Introduktion

Undertekster kan forbedre videoers tilgængelighed og engagement betydeligt ved at give tekstbaseret adgang til lydindhold. Tidligere krævede generering og tilføjelse af undertekster specialiseret software og manuel indsats, men med fremskridt inden for maskinlæring og open source-værktøjer er det nu muligt at automatisere processen ved hjælp af kraftfulde Python-biblioteker som OpenAI Whisper og FFmpeg. I denne artikel vil vi guide dig gennem trin-for-trin-processen med at generere og tilføje undertekster til videoer ved hjælp af disse værktøjer. Uanset om du er en indholdsskaber, en underviser eller enhver anden, der ønsker at forbedre tilgængeligheden af dine videoer, vil denne artikel give dig den nødvendige viden og vejledning.

Forudsætninger

Inden du går i gang, skal du sikre dig, at du har følgende forudsætninger:

– Python 3.7 eller nyere installeret
– pip til at installere Python-pakker
– En video-fil, du vil generere undertekster til
– En tekstfil, der indeholder dialogen eller transskriptionen (valgfrit)

Trin 1: Installer de nødvendige Python-pakker

Åbn din terminal eller kommandoprompt og kør følgende kommandoer for at installere de nødvendige Python-pakker:


pip install openai
pip install ffmpeg

Trin 2: Generer undertekster med OpenAI Whisper

OpenAI Whisper er et kraftfuldt sprogmodel, der kan transkribere lyd automatisk med høj nøjagtighed. For at generere undertekster med Whisper skal du bruge følgende kommando:


import openai

Indsæt din OpenAI API-nøgle her

OPENAI_API_KEY = "YOUR_API_KEY"

Sæt API-nøglen

openai.api_key = OPENAI_API_KEY

Indlæs video-filen

with open("video.mp4", "rb") as f:
video_bytes = f.read()

Generer undertekst-JSON

response = openai.whisper.transcribe(video_bytes, language="english")

Gem undertekst-JSON til en fil

with open("subtitles.json", "w") as f:
json.dump(response, f)

Trin 3: Konverter undertekster til SRT-format

SRT (SubRip Text) er et almindeligt brugt format til undertekster. For at konvertere undertekst-JSON til SRT-format kan du bruge følgende kommando:


import json

Indlæs undertekst-JSON fra fil

with open("subtitles.json", "r") as f:
subtitles_json = json.load(f)

Initialiser SRT-filen

srt_file = ""

Iterér over undertekstringene

for subtitle in subtitles_json["segments"]:

Konverter tidsangivelser til SRT-format

start_time = subtitle["start_time"]
end_time = subtitle["end_time"]
start_time_srt = f"{start_time:.0f},{int((start_time % 1) * 1000):03d}"
end_time_srt = f"{end_time:.0f},{int((end_time % 1) * 1000):03d}"

Tilføj undertekst-linjen til SRT-filen

srt_file += f"{subtitle['id']}\n{start_time_srt} --> {end_time_srt}\n{subtitle['text']}\n\n"

Gem SRT-filen

with open("subtitles.srt", "w") as f:
f.write(srt_file)

Trin 4: Tilføj undertekster til videoen med FFmpeg

FFmpeg er et kraftfuldt værktøj til video- og lydmanipulation. For at tilføje undertekster til din video med FFmpeg skal du bruge følgende kommando:


ffmpeg -i video.mp4 -vf subtitles=subtitles.srt -c:v copy -c:a copy output.mp4

Nu vil din outputvideofil, “output.mp4”, indeholde de genererede undertekster.

Konklusion

Ved at bruge Python, OpenAI Whisper og FFmpeg kan du automatisere processen med at generere og tilføje undertekster til videoer. Denne proces forbedrer ikke kun tilgængeligheden af dine videoer, men kan også spare dig tid og kræfter, der tidligere blev brugt på manuel transskription og underteksttilføjelse. Uanset om du er en indholdsskaber, en underviser eller blot ønsker at gøre dine personlige videoer mere tilgængelige, giver denne artikel dig de nødvendige værktøjer og trin til at opnå disse mål.

Ofte stillede spørgsmål (FAQs)

1. Hvilke video-formater understøtter OpenAI Whisper?
OpenAI Whisper understøtter en lang række video-formater, herunder MP4, MOV, AVI og WebM.

2. Kan jeg tilpasse udseendet af underteksterne?
Ja, du kan tilpasse udseendet af underteksterne ved at ændre CSS-koden i SRT-filen.

3. Kan jeg generere undertekster på flere sprog?
Ja, OpenAI Whisper understøtter over 100 sprog. Du kan angive det ønskede sprog i “language”-parameteret i Whisper-API-kaldet.

4. Hvordan kan jeg forbedre nøjagtigheden af underteksterne?
Du kan forbedre nøjagtigheden af underteksterne ved at bruge en tekstfil, der indeholder dialogen eller transskriptionen, som input til Whisper-API-kaldet.

5. Kan jeg bruge denne proces til livestreams?
Ja, du kan bruge denne proces til livestreams ved at bruge realtids-API’et fra OpenAI Whisper.

6. Er der nogen omkostninger forbundet med at bruge OpenAI Whisper?
Ja, OpenAI Whisper tilbyder en gratis tier til lav brug, men ud over en vis grænse vil det medføre omkostninger baseret på forbrug.

7. Hvordan kan jeg opdatere underteksterne, hvis jeg redigerer videoen?
Du skal regenerere underteksterne med OpenAI Whisper og derefter tilføje dem til den redigerede video igen ved hjælp af FFmpeg.

8. Kan jeg bruge denne proces til at tilføje undertekster til allerede eksisterende videoer?
Ja, du kan bruge denne proces til at tilføje undertekster til allerede eksisterende videoer.