Hur man genererar och lägger till undertexter till videor med Python, OpenAI Whisper och FFmpeg

By rik


Skapa och Integrera Undertexter i Videor med Python, OpenAI Whisper och FFmpeg

I dagens digitalt präglade värld är tillgängligheten av videoinnehåll för en bred publik av yttersta vikt. Ett centralt element här är undertexter, som inte bara ökar tillgängligheten för personer med nedsatt hörsel utan också underlättar videokonsumtion i stökiga miljöer.

Manuellt tillägg av undertexter är en både tidskrävande och ansträngande procedur. Tack vare tekniska framsteg kan denna process automatiseras med hjälp av Python, OpenAI Whisper och FFmpeg.

Introduktion till OpenAI Whisper och FFmpeg

OpenAI Whisper är en avancerad modell för automatisk taligenkänning (ASR), utvecklad av OpenAI. Den möjliggör transkribering av ljud och video till text med hög precision. Whisper är en kostnadsfri lösning med öppen källkod.

FFmpeg är ett kommandoradsverktyg för hantering av multimediafiler. Det kan användas för att konvertera mellan olika videoformat, extrahera ljud från videor, integrera undertexter och mycket mer.

Steg för att Generera och Lägga Till Undertexter

1. Installation av Nödvändiga Bibliotek

Innan start, installera Python-biblioteken openai, whisper och ffmpeg. Detta görs via pip:


pip install openai whisper ffmpeg-python

2. Skapa en OpenAI API-nyckel

För att använda OpenAI Whisper krävs en API-nyckel, som skapas på OpenAI:s webbplats.

3. Ladda ner och Konfigurera Whisper-modellen

Whisper-modellen måste laddas ner. Detta görs från OpenAI:s GitHub. Välj en modell som bäst passar dina behov, t.ex. en liten modell för snabbare processer eller en stor modell för ökad precision.

4. Skapa Python-skript

Nu skapar vi ett Python-skript för att generera och lägga till undertexter i videon. Följande kod är ett exempel:


import whisper
import ffmpeg
import openai

# Ange din OpenAI API-nyckel
openai.api_key = "DIN_API_NYCKEL"

# Ange sökvägen till videofilen
video_path = "video.mp4"

# Ladda ner Whisper-modellen
model = whisper.load_model("base")

# Transkribera ljudspåret till text
result = model.transcribe(video_path)

# Spara undertexterna som en SRT-fil
with open("subtitles.srt", "w") as f:
f.write(result["text"])

# Lägg till undertexterna till videon
ffmpeg.input(video_path).output(
"video_with_subtitles.mp4",
vcodec="copy",
acodec="copy",
subtitles="subtitles.srt",
).run()

print("Undertexterna har lagts till i videon.")

5. Kör Skriptet

Spara skriptet som en .py-fil och kör den med python your_script.py. Detta genererar undertexterna som en SRT-fil och integrerar dem i videon.

Råd för Förbättrad Noggrannhet

  • Modellval: Välj den Whisper-modell som passar bäst. Större modeller ger i allmänhet mer exakt transkription, men kräver mer beräkningskraft.
  • Ljudkvalitet: Säkerställ att videons ljudspår är tydligt. Använd mjukvara för att eliminera brus eller förbättra ljudet.
  • Ytterligare Metadata: Ge Whisper information om videon, som språk eller talare, för bättre precision.
  • Manuell Korrigering: Trots hög noggrannhet, granska och korrigera undertexterna manuellt.

Sammanfattning

Att generera och lägga till undertexter med Python, OpenAI Whisper och FFmpeg är ett effektivt sätt att öka tillgängligheten till videor. Genom att följa dessa steg kan processen automatiseras, vilket sparar tid och energi.

Tänk på att respektera upphovsrätten till ljud- och videomaterial. Var alltid medveten om användningsvillkoren för det material du bearbetar.

Vanliga Frågor

1. Behöver jag en kraftfull dator?

Nej, skriptet kan köras på en standarddator. Processhastigheten beror på modellens storlek och videofilens storlek.

2. Hur ändrar jag språk för transkriptionen?

Ange språket i model.transcribe(), t.ex. result = model.transcribe(video_path, language="sv").

3. Kan jag använda skriptet för flera videor?

Ja, skapa en loop som kör skriptet för varje video i en lista.

4. Hur kan jag göra undertexterna mer synliga?

Anpassa undertexternas utseende och placering via FFmpeg-kommandon. Mer information finns i FFmpeg-dokumentationen.

5. Kan jag använda skriptet för YouTube-videor?

Ja, ladda ner ljudspåret från YouTube och kör skriptet.

6. Hur förbättrar jag noggrannheten med brus i videon?

Använd en mer avancerad modell som ”large” och förbättra ljudkvaliteten genom mjukvara för brusreducering.

7. Vad skiljer olika Whisper-modeller åt?

Större modeller ger högre noggrannhet, men kräver mer beräkningskraft. Välj modell efter behov av precision och hastighet.

8. Kan jag använda skriptet för ljudfiler?

Ja, byt ut video_path mot sökvägen till din ljudfil.

9. Vilka är de bästa resurserna för att lära sig mer om OpenAI Whisper och FFmpeg?

Besök OpenAI Whispers GitHub och FFmpeg:s webbplats.

10. Kan skriptet översätta undertexter?

Ja, använd ett översättnings-API, som till exempel Google Translate API.