Superefficiënt! Je video ondertitelen of transcriberen met AI
De introductie van de vraagbaak ChatGPT zorgde een jaar geleden voor een enorme hype, en vormde het startsein voor de lancering van talloze andere op AI gebaseerde producten. Whisper komt uit dezelfde koker als ChatGPT en helpt bij het omzetten van spraak naar tekst, op basis van geavanceerde modellen.
In dit artikel laten we zien hoe je Whisper kunt benutten om een transcriptie of vertaling te maken van een audio- of videobestand. Dat kan online via Google Colab of op je eigen pc.
- Installeer Whisper via Google Drive
- Of installeer Whisper op je pc, samen met Python, FFmpeg en PyTorch
- Download videobestanden
- Laat Whisper een transcriptie of direct een vertaling maken
Lees ook: Handig: laat je PowerPoint-presentatie realtime vertalen!
Wil je een transcriptie of ondertitels hebben voor bepaalde audio- of videobestanden? Bijvoorbeeld content voor YouTube, opgenomen vergaderingen, een podcast of leerzame video? Dit kan tegenwoordig automatisch én vrijwel foutloos. Het kan natuurlijk al langer, maar er zaten vaak veel missers bij. Dat zie je ook al aan de automatisch gegenereerde ondertitels op YouTube. Het is ook best een uitdaging. De menselijke spraak is erg divers, met veel accenten en dialecten, maar ook verschil in spreeksnelheid en intonatie. Er kunnen bovendien storende achtergrondgeluiden zijn, zoals het verkeer of bouwwerkzaamheden. Een spreker kan onduidelijk overkomen of onzeker zijn. Omdat woorden verschillende betekenissen kunnen hebben, kan ten slotte ook de context onderscheidend zijn.
Zelf een podcast maken?
Een goede microfoon is noodzaak
Geholpen door AI zijn tegenwoordig heel nauwkeurige transcripties mogelijk. Teksten kunnen daarbij ook meteen worden vertaald. Dat laten we zien in dit artikel, waarin we met Whisper (zie kader ‘Wat is Whisper’) aan de slag gaan. We beginnen in de cloud met Google Colab. Daarna maken we vertalingen vanaf een lokale pc. Dit versnelt wellicht je proces en maakt je minder afhankelijk van de cloud.
Wat is Whisper Whisper is een gratis en opensource tool van OpenAI. Deze organisatie ken je wellicht van de vraagbaak ChatGPT of van DALL·E 2, die afbeeldingen kan genereren op basis van een omschrijving. De kracht van Whisper ligt bij het herkennen en omzetten van spraak in audio- en videobestanden. Dit kan voor het Engels en ongeveer honderd andere talen. Je kunt Whisper op je eigen pc installeren. Het programma werkt dan volledig offline. Wel helpt het als je een stevig systeem hebt. Het programma is getraind aan de hand van een grote dataset met veel variaties van menselijke spraak. Mede daardoor kan Whisper nauwkeurige vertalingen maken. Je kunt zelf de omvang van het model kiezen, waarbij een groter model nauwkeuriger is, maar ook fors meer rekenkracht vereist.
1 Benodigdheden
Voor het werken met Whisper heb je niet per se een pc nodig: je kunt cloud computing inzetten. Dat kan – omdat het een Python-project is – zelfs gratis met Google Colab. Daar beginnen we in dit artikel dan ook mee. Wil je niet afhankelijk zijn van een clouddienst, dan kun je Whisper ook lokaal op je pc installeren. De software is namelijk opensource. Voor aanvullende informatie kun je op de GitHub-pagina terecht. Verderop in dit artikel behandelen we een lokale installatie in meer detail. Hiervoor heb je overigens wel een capabel systeem nodig, anders zal het maken van de transcripties erg lang duren. Om het rekenwerk te versnellen, gebruiken we een grafische kaart van Nvidia.
2 Verschillende modellen
Je kunt bij het werken met Whisper uit verschillende modellen kiezen, oplopend in omvang. De meertalige modellen heten achtereenvolgens tiny, base, small, medium en large. Als je Whisper gebruikt, moet je één van deze modellen kiezen. Er zijn ook modellen voor alleen het Engels. Deze heten tiny.en, base.en, small.en en medium.en. Hoewel je voor Engels ook gewoon de meertalige modellen kunt gebruiken, zijn deze specifieke Engelstalige modellen wat nauwkeuriger, al merk je dat vooral bij de kleinere modellen tiny.en en base.en. We kiezen in dit artikel steeds voor het medium-model, met voor Engels de .en-versie. Probeer en vergelijk zeker de kleinere modellen als je een minder zwaar systeem of minder tijd hebt.
3 Google Colab
Je kunt voor weinig geld cpu-kracht in de cloud huren. Voor gpu-kracht betaal je vaak veel meer. Google Colab biedt het allemaal voor niks. In feite is Colab, voluit ‘Colaboratory’, een Python-omgeving in de cloud. Je kunt de omgeving gewoon via een browser benaderen met een gratis Google-account. Door de opmars van grafisch intensieve AI-toepassingen, vaak met Python als basis, is het platform van Google flink in trek. Dat maakt het wat onzeker of deze dienst kan blijven bestaan en gratis blijft. Maar dat geldt voor veel experimentele diensten van de techgigant. Daarom laten we verderop in dit artikel, vanaf stap 10, ook zien hoe je lokaal op je eigen pc kunt werken met Whisper, voor als de stekker eruit gaat.
4 Koppeling Google Drive
We beginnen in Google Drive waar je Colab als app kunt koppelen. Kies daarvoor Nieuw / Meer / Meer apps koppelen. Vul in het zoekveld Google Colaboratory in. Klik op de bewuste app en kies dan Installeren. Na het doorlopen van de stappen is Google Colaboratory gekoppeld aan je Google Drive en kun je het venster sluiten.
5 Whisper installeren
Nadat de app is gekoppeld kun je onder Nieuw / Meer direct Google Colaboratory openen. Linksboven kun je de naam van het project (Untitled0.jpynb) veranderen. We maken hier YouTube-demo.jpynb van. Kies in het menu Runtime voor Runtimetype wijzigen. Selecteer onder Hardwareversnelling een gpu. De beschikbaarheid kan variëren. In dit voorbeeld kiezen we T4 GPU. Klik dan op Opslaan. De grafische kracht zal automatisch in ons project worden benut. Plak de onderstaande opdrachten in het tekstvak achter het uitvoerenicoontje en voer het uit. Daarmee worden Whisper en FFmpeg geïnstalleerd. Dit framework zorgt ervoor dat alle denkbare mediabestanden kunnen worden gedecodeerd:
!whisper "energiebesparen.mp4" --model medium
en:
!sudo apt update && sudo apt install ffmpeg
6 Bestand uploaden
We gebruiken enkele bestanden van YouTube (zie kader ‘Bronbestanden voor Whisper’) en geven deze een makkelijke naam om mee te werken, te weten homelab.mp4, zweden.mp4 en energiebesparen.mp4. Om ervoor te zorgen dat je binnen Colab met deze bestanden kunt werken, gaan we ze eerst uploaden. Klik daarvoor op het bestandenicoontje links in Colab. Je kunt de gewenste videobestanden slepen naar het bestandsvenster of uploaden via het uploadicoontje. Zorg er wel voor dat je de originele bestanden ook zelf op je pc hebt. Als je de omgeving verlaat, zal de zogenoemde runtime worden verwijderd. Daarmee verdwijnen ook de geüploade bestanden. Je zult ze de volgende keer opnieuw moeten uploaden. Ook zul je dan overigens weer het correcte runtimetype moeten kiezen en Whisper moeten installeren.
Bronbestanden voor Whisper Je kunt voor Whisper allerlei soorten mediabestanden gebruiken. In dit artikel gebruiken we drie video’s van YouTube met speelduur van zo’n 15 tot 25 minuten. We gebruiken een Engelse video (met Duits accent) van Christian Lempa over zijn Home Lab, een Nederlands vlog van Linda Meijers over wonen in Zweden en een Nederlandse video over het besparen van energie van onze eigen ID.nl waarin meerdere personen aan het woord komen. Via www.x2mate.com downloaden we de YouTube-video’s als mp4-bestand in 720p voor verwerking in Whisper. We hadden eventueel ook alleen de audio in mp3-formaat kunnen downloaden, maar voor de beoordeling is het videobestand met ingebakken audio makkelijker. Whisper maakt namelijk automatisch een ondertitelbestand (in .srt-formaat). Veel videospelers geven dit weer. Hierdoor kun je direct het resultaat beoordelen en eventueel vergelijken met de automatisch gegenereerde ondertitels van YouTube.
7 Transcripties maken
Het is tijd om Whisper aan het werk te zetten met de gekozen videobestanden. Kijk eerst of je Whisper kunt aanroepen met de opdracht !whisper. Je ziet dan ook de optionele parameters. We beginnen met de Engelse video en kiezen het model medium.en. Klik op + Code en voer de onderstaande opdracht in, waarin we zoals je ziet het bestand en het model specificeren:
!whisper "homelab.mp4" --model medium.en
Voor de andere video’s gebruiken we --model medium. Dat is een meertalig model met hoge nauwkeurigheid. De taal zal steeds automatisch worden herkend:
!whisper "zweden.mp4" --model medium
en:
!whisper "energiebesparen.mp4" --model medium
Google had zo’n drie tot zes minuten per video nodig om de transcripties te maken. Na afloop kun je de tekstbestanden downloaden, waaronder het ondertitelbestand (.srt). Vanuit het bestandsvenster kun je alle tekstbestanden downloaden naar je pc.
8 Vertalingen maken
Wat vaak onderbelicht blijft, is dat Whisper ook tekst kan vertalen. Dat is heel praktisch als je bijvoorbeeld een YouTube-video hebt die internationaal wordt bekeken. Met de opdracht hieronder kun je een Engelstalige transcriptie maken voor een Nederlandstalige video. Het vraagt waarschijnlijk iets meer nabewerking, maar een groot deel van het werk is in ieder geval al voor je gedaan:
!whisper "energiebesparen.mp4" --model medium --task translate --language en
9 Resultaat bekijken
De meeste videospelers zullen automatisch ondertitels laten zien als je het ondertitelbestand in dezelfde map zet en ook dezelfde naam geeft als je videobestand. We zien dat de transcripties steeds van hoge kwaliteit zijn. Versprekingen zijn vaak al gecorrigeerd. De video’s zijn ook veel beter te volgen dan met de automatische transcriptie die YouTube zelf aanbiedt. Ook wordt er veel beter en nauwkeuriger gebruikgemaakt van leestekens. Je zult hooguit nog wat kleine aanpassingen willen maken voor bijvoorbeeld enkele woorden die verkeerd zijn geïnterpreteerd. Dat gaat natuurlijk heel eenvoudig in het tekstbestand zelf, maar er zijn ook tools die je voor srt-bestanden kunt gebruiken.
10 Lokale installatie
Een lokale installatie onder Windows is zeker niet lastig, maar er is best wat software vereist om alles te laten werken. Om te beginnen moet je Python downloaden en installeren. Hoewel een wat oudere versie wordt aangeraden, zijn we geen problemen tegengekomen bij gebruik van de meest recente versie 3.12.0. Let er bij de installatie van Python op dat je een vinkje zet bij Add python.exe to PATH. Je kunt Python dan vanuit elke map op de pc aanroepen. Installeer vervolgens ook Git voor Windows. Bij deze installatie kun je alle standaardopties accepteren. Belangrijk is dat Git daarbij ook weer aan het path wordt toegevoegd.
11 Grafische kaart
Heb je een grafische kaart van Nvidia, dan kun je de berekeningen van Whisper flink versnellen, zoals we verderop zullen laten zien. Hiervoor dien je CUDA te installeren. We gebruiken versie 11.8. Selecteer op de downloadpagina Windows met de architectuur x86_64 en selecteer je versie van Windows (doorgaans 10 of 11). De hier gekozen versie van CUDA wordt ook door PyTorch ondersteund, dat we in de volgende stap gaan installeren. Doorloop de installatie. Kies daarbij in het venster Installatieopties voor Aangepast (geavanceerd). Vink vervolgens alle onderdelen uit behalve CUDA. Zo voorkom je dat onder andere de huidige drivers voor je grafische kaart worden vervangen door een oudere versie.
12 FFmpeg installeren
Je hebt voor een lokale installatie ook het framework FFmpeg nodig. Klik op de downloadpagina op het Windows-icoontje en kies Windows builds from gyan.dev. Download het archief (ffmpeg-git-full.7z) en pak het uit met de ingebakken tool van Windows of bijvoorbeeld 7-Zip. Hernoem de map naar ffmpeg en verplaats deze naar de C-schijf. Het bestand ffmpeg.exe bevindt zich dan in C:\ffmpeg\bin. Deze map gaan we aan het path toevoegen. Druk op Windows-toets+R, vul in sysdm.cpl en druk op Enter. Open dan het tabblad Geavanceerd en kies Omgevingsvariabelen. Dubbelklik op Path. In het venster klik je op Nieuw om een pad toe te voegen. Vul dan in: C:\ffmpeg\bin. Bewaar de aanpassingen en herstart je systeem.
13 PyTorch
Zet alle videobestanden waarvoor je een transcriptie wil maken in een map. Klik dan in Windows Verkenner rechts op een lege plek in de map en kies Openen in terminal. Als het goed is, kun je nu alle opdrachten uitvoeren voor geïnstalleerde toepassingen, zoals: python --version, ffmpeg en git.
We gaan eerst een recente versie van PyTorch installeren dat nodig is voor Whisper. Ga daarvoor naar de website van PyTorch en kies de opties Stable, Windows, Pip, Python en CUDA 11.8. Kopieer het commando. In dit geval ziet dat er als volgt uit:
pip3 install torch torchvision torchaudio --index-url https://download.pytorch.org/whl/cu118
Voer deze opdracht uit in de terminal. Kom je geen problemen tegen, ga dan verder met de volgende opdrachten:
pip3 install setuptools-rust
en:
pip3 install git+https://github.com/openai/whisper.git
De installatie van Whisper is nu als het goed is geslaagd, zodat we in de volgende stap transcripties kunnen gaan maken.
14 Whisper starten
De opdrachten voor het maken van de transcriptie verschillen niet van de eerdergenoemde opdrachten in Google Colab:
whisper "homelab.mp4" --model medium.en
of:
whisper "zweden.mp4" --model medium
of:
whisper "energiebesparen.mp4" --model medium
Als CUDA beschikbaar, is zal automatisch de grafische kaart worden gebruikt. Geholpen door een RTX 3080 grafische kaart is de transcriptie voor de video zweden.mp4 met het model medium binnen drie minuten gereed. Dit ligt in lijn met de snelheid via Colab. Heb je geen grafische kaart of geen CUDA? Dan zal de processor worden gebruikt, wat flink veel extra tijd kost (zie kader ‘Grafische kaart sterk aanbevolen’). Je kunt dat zelf ervaren met de optie --device cpu. Dit forceert het gebruik van de processor. Als CUDA wél beschikbaar is, geeft deze opdracht overigens een waarschuwing.
Grafische kaart aanbevolen Transcripties maken met de processor is tijdrovend. Zelfs op een 16-core AMD Ryzen 9 5950X is voor transcriptie van zweden.mp4 ruim twintig minuten nodig. De processor wordt daarbij steeds met zo’n 70 procent belast. Met de RTX 3080 lukt het binnen drie minuten met veel lagere belasting. Een grafische kaart is dus zeker geen overbodige luxe. Dat hoeft geen RTX 3080 te zijn. Er is vooral genoeg VRAM nodig. Een RTX 2060 of RTX 3060 helpt al enorm, maar je zult zeker verschil merken als je een snellere kaart in je systeem prikt. Loop je tegen problemen aan? Je kunt binnen Python controleren of CUDA beschikbaar is. Start daarvoor Python met python. Voer dan na elkaar de volgende opdrachten in. Je krijgt als het goed is True als resultaat: import torch torch.cuda.is_available()