Whisper

OpenAI Whisper is een open-source ASR-systeem dat spraak nauwkeurig omzet naar tekst in 99 talen, en ondersteunt transcriptie, vertaling en taalidentificatie voor robuuste AI-automatisering.

Whisper

OpenAI Whisper begrijpen

Is Whisper een model of een systeem?

OpenAI Whisper kan zowel als een model als een systeem worden beschouwd, afhankelijk van de context.

  • Als model bestaat Whisper uit neurale netwerkarchitecturen die specifiek zijn ontworpen voor ASR-taken. Het omvat meerdere modellen van verschillende groottes, variërend van 39 miljoen tot 1,55 miljard parameters. Grotere modellen bieden betere nauwkeurigheid maar vereisen meer rekenkracht.
  • Als systeem omvat Whisper niet alleen de modelarchitectuur maar ook de volledige infrastructuur en processen eromheen. Dit omvat de trainingsdata, pre-processing methoden en de integratie van verschillende taken die het kan uitvoeren, zoals taalherkenning en vertaling.

Kernmogelijkheden van Whisper

De primaire functie van Whisper is het transcriberen van spraak naar tekstoutput. Het blinkt uit in:

  • Meertalige spraakherkenning: Ondersteunt 99 talen en is daarmee een krachtig hulpmiddel voor wereldwijde toepassingen.
  • Spraakvertaling: In staat om spraak uit elke ondersteunde taal te vertalen naar Engelse tekst.
  • Taalidentificatie: Detecteert automatisch de gesproken taal zonder voorafgaande specificatie.
  • Robuustheid tegen accenten en achtergrondgeluid: Dankzij training op diverse data kan Whisper goed omgaan met verschillende accenten en rumoerige omgevingen.

Hoe werkt OpenAI Whisper?

Transformer-architectuur

De kern van Whisper bestaat uit de Transformer-architectuur, specifiek een encoder-decoder model. Transformers zijn neurale netwerken die uitblinken in het verwerken van sequentiële data en het begrijpen van context over lange reeksen. Geïntroduceerd in het “Attention is All You Need”-artikel in 2017, zijn Transformers fundamenteel geworden in veel NLP-taken.

Het proces van Whisper omvat:

  1. Audio pre-processing: Ingevoerde audio wordt opgedeeld in blokken van 30 seconden en omgezet in een log-Mel spectrogram, waarmee de frequentie en intensiteit van audiosignalen in de tijd worden vastgelegd.
  2. Encoder: Verwerkt het spectrogram en genereert een numerieke representatie van de audio.
  3. Decoder: Gebruikt een taalmodel om de reeks teksttokens (woorden of subwoorden) te voorspellen die overeenkomen met de audio-invoer.
  4. Gebruik van speciale tokens: Integreert speciale tokens voor taken als taalidentificatie, tijdstempels en taakgerichte instructies (bijv. transcriberen of vertalen).

Training op meertalige multitask supervised data

Whisper is getraind op een enorme dataset van 680.000 uur aan gelabelde data verzameld van het internet. Dit omvat:

  • Meertalige data: Ongeveer 117.000 uur van de data zijn in 99 verschillende talen, wat het model helpt te generaliseren over talen heen.
  • Diverse akoestische omstandigheden: De dataset bevat audio uit verschillende domeinen en omgevingen, wat zorgt voor robuustheid tegen accenten, dialecten en achtergrondgeluiden.
  • Multitask learning: Door te trainen op meerdere taken tegelijk (transcriptie, vertaling, taalidentificatie) leert Whisper gedeelde representaties die de totale prestaties verbeteren.

Toepassingen en gebruiksscenario’s

Transcriptiediensten

  • Virtuele vergaderingen en notities maken: Automatiseer transcriptie op platforms voor algemene audio en branchespecifieke toepassingen zoals onderwijs, gezondheidszorg, journalistiek en juridische diensten.
  • Contentcreatie: Genereer transcripties voor podcasts, video’s en livestreams om toegankelijkheid te vergroten en tekstuele referenties te bieden.

Taalvertaling

  • Wereldwijde communicatie: Vertaal spraak in één taal naar Engelse tekst, wat communicatie tussen talen vergemakkelijkt.
  • Taal-leertools: Helpt lerenden bij het begrijpen van uitspraak en betekenis in verschillende talen.

AI-automatisering en chatbots

  • Spraakgestuurde chatbots: Integreer Whisper in chatbots om spraakinteractie mogelijk te maken en de gebruikerservaring te verbeteren.
  • AI-assistenten: Ontwikkel assistenten die gesproken commando’s in verschillende talen kunnen begrijpen en verwerken.

Toegankelijkheidsverbeteringen

  • Ondertiteling: Genereer ondertitels voor videocontent, ter ondersteuning van mensen met gehoorbeperkingen.
  • Ondersteunende technologieën: Maak apparaten mogelijk die spraak transcriberen en vertalen voor gebruikers die taalsupport nodig hebben.

Callcenters en klantenservice

  • Realtime transcriptie: Voorzie medewerkers van realtime transcripties van klantgesprekken voor betere service.
  • Sentimentanalyse: Analyseer getranscribeerde tekst om klanttevredenheid te meten en interacties te verbeteren.

Voordelen van OpenAI Whisper

Meertalige ondersteuning

Met dekking van 99 talen blinkt Whisper uit in het verwerken van uiteenlopende taalinvoer. Deze meertalige capaciteit maakt het geschikt voor wereldwijde toepassingen en diensten gericht op internationale doelgroepen.

Hoge nauwkeurigheid en robuustheid

Dankzij training op uitgebreide gelabelde data behaalt Whisper hoge nauwkeurigheidspercentages bij transcriptietaken. De robuustheid tegen verschillende accenten, dialecten en achtergrondgeluiden maakt het betrouwbaar in uiteenlopende praktijksituaties.

Veelzijdigheid in taken

Naast transcriptie kan Whisper:

  • Taalidentificatie: De gesproken taal detecteren zonder voorafgaande invoer.
  • Spraakvertaling: Spraak uit één taal vertalen naar Engelse tekst.
  • Tijdstempels genereren: Tijdstempels op zinsniveau geven in transcripties.

Open-source beschikbaarheid

Whisper is uitgebracht als open-source software, waardoor ontwikkelaars kunnen:

  • Aanpassen en verfijnen: Het model afstemmen op specifieke taken of domeinen.
  • Integreren in applicaties: Whisper toevoegen aan producten en diensten zonder licentiebeperkingen.
  • Bijdragen aan de community: Het model verbeteren en verbeteringen delen.

Beperkingen en aandachtspunten

Computationele vereisten

  • Veel middelen nodig: Grotere modellen vereisen aanzienlijke rekenkracht en geheugen (tot 10 GB VRAM voor het grootste model).
  • Verwerkingstijd: De transcriptiesnelheid varieert; grotere modellen verwerken langzamer dan kleinere.

Vatbaar voor hallucinaties

  • Onnauwkeurige transcripties: Soms kan Whisper tekst genereren die niet gesproken is, bekend als hallucinaties. Dit komt vaker voor bij bepaalde talen of bij slechte audiokwaliteit.

Beperkte ondersteuning voor niet-Engelse talen

  • Databias: Een groot deel van de trainingsdata is Engels, wat de nauwkeurigheid in minder vertegenwoordigde talen kan beïnvloeden.
  • Fine-tuning nodig: Extra training kan nodig zijn om prestaties te verbeteren in specifieke talen of dialecten.

Invoerbeperkingen

  • Audiolengte: Whisper verwerkt audio in blokken van 30 seconden, wat het transcriberen van langere, continue audio kan bemoeilijken.
  • Bestandsgroottebeperkingen: Het open-source model kan beperkingen hebben qua bestandsgrootte en bestandsformaten.

OpenAI Whisper in AI-automatisering en chatbots

Verbeteren van gebruikersinteracties

Door Whisper te integreren in chatbots en AI-assistenten kunnen ontwikkelaars:

  • Spraakcommando’s: Gebruikers laten interageren via spraak in plaats van tekst.
  • Meertalige ondersteuning: Inspelen op gebruikers die een andere taal wensen of nodig hebben.
  • Verbeterde toegankelijkheid: Helpen van gebruikers met een beperking of voor wie traditionele inputmethoden niet mogelijk zijn.

Workflows stroomlijnen

  • Geautomatiseerde transcripties: Handmatig notuleren en registreren verminderen.
  • Data-analyse: Gesproken content omzetten naar tekst voor analyse, monitoring en inzichten.

Voorbeelden uit de praktijk

  • Virtuele vergaderbots: Tools die online vergaderingen bijwonen en gesprekken realtime transcriberen.
  • Klantenservicebots: Systemen die gesproken verzoeken begrijpen en beantwoorden, waardoor de klantervaring verbetert.
  • Onderwijsplatforms: Applicaties die colleges transcriberen of vertalingen bieden voor studenten.

Alternatieven voor OpenAI Whisper

Open-source alternatieven

  • Mozilla DeepSpeech: Een open-source ASR-engine waarmee je eigen modellen kunt trainen.
  • Kaldi: Een toolkit die veel wordt gebruikt in onderzoek en industrie voor spraakherkenning.
  • Wav2vec: Het systeem van Meta AI voor zelfgestuurde spraakverwerking.

Commerciële API’s

  • Google Cloud Speech-to-Text: Biedt spraakherkenning met uitgebreide taalondersteuning.
  • Microsoft Azure AI Speech: Biedt spraakdiensten met aanpassingsmogelijkheden.
  • AWS Transcribe: Amazons spraakherkenningsdienst met functies zoals aangepaste woordenschat.

Gespecialiseerde aanbieders

  • Gladia: Biedt een hybride en verbeterde Whisper-architectuur met extra mogelijkheden.
  • AssemblyAI: Biedt spraak-naar-tekst API’s met bijvoorbeeld contentmoderatie.
  • Deepgram: Biedt realtime transcriptie met opties voor eigen modeltraining.

Waarop letten bij het kiezen van Whisper

Nauwkeurigheid en snelheid

  • Afwegingen: Grotere modellen bieden hogere nauwkeurigheid maar vereisen meer middelen en zijn trager.
  • Testen: Beoordeel prestaties met praktijkdata die passen bij je toepassing.

Hoeveelheid audio

  • Schaalbaarheid: Houd rekening met hardware- en infrastructuurbehoeften bij grote hoeveelheden data.
  • Batchverwerking: Implementeer methoden om grote datasets efficiënt te verwerken.

Geavanceerde functies

  • Extra functionaliteiten: Bepaal of functies als live transcriptie of sprekerherkenning nodig zijn.
  • Aanpasbaarheid: Kijk hoeveel inspanning nodig is voor extra functies.

Taalondersteuning

  • Doeltalen: Controleer de prestaties van het model in de talen die voor jouw toepassing relevant zijn.
  • Fine-tuning: Plan eventueel extra training voor minder vertegenwoordigde talen.

Expertise en middelen

  • Technische expertise: Zorg dat je team de vaardigheden heeft om het model te implementeren en aan te passen.
  • Infrastructuur: Beoordeel de hardwarevereisten en hostingmogelijkheden.

Kostenoverwegingen

  • Open-source vs. commercieel: Weeg de initiële besparing van open-source af tegen mogelijke langetermijnkosten voor onderhoud en schaalvergroting.
  • Totale eigendomskosten: Denk aan hardware, ontwikkeltijd en doorlopende supportkosten.

Hoe wordt Whisper gebruikt in Python?

Whisper is geïmplementeerd als een Python-bibliotheek, waardoor naadloze integratie in Python-projecten mogelijk is. Gebruik van Whisper in Python vereist het instellen van de juiste omgeving, het installeren van de benodigde afhankelijkheden en het toepassen van de functies van de bibliotheek om audio te transcriberen of te vertalen.

Whisper instellen in Python

Voordat je Whisper gebruikt, moet je je ontwikkelomgeving voorbereiden door Python, PyTorch, FFmpeg en de Whisper-bibliotheek zelf te installeren.

Vereisten

  • Python: Versie 3.8 tot 3.11 wordt aanbevolen.
  • PyTorch: Een deep learning framework dat nodig is om het Whisper-model te draaien.
  • FFmpeg: Een command-line tool voor het verwerken van audio- en videobestanden.
  • Whisper-bibliotheek: Het Python-pakket van OpenAI.

Stap 1: Installeer Python en PyTorch

Als je Python nog niet hebt geïnstalleerd, download het dan van de officiële website. Om PyTorch te installeren, gebruik pip:

pip install torch

Of bezoek de PyTorch-website voor specifieke installatie-instructies voor jouw besturingssysteem en Python-versie.

Stap 2: Installeer FFmpeg

Whisper heeft FFmpeg nodig om audiobestanden te verwerken. Installeer FFmpeg met de juiste pakketbeheerder voor jouw besturingssysteem.

Ubuntu/Debian:

sudo apt update && sudo apt install ffmpeg

MacOS (met Homebrew):

brew install ffmpeg

Windows (met Chocolatey):

choco install ffmpeg

Stap 3: Installeer de Whisper-bibliotheek

Installeer het Whisper Python-pakket met pip:

pip install -U openai-whisper

Om de nieuwste versie direct vanaf de GitHub-repository te installeren:

pip install git+https://github.com/openai/whisper.git

Opmerking voor Windows-gebruikers

Zorg dat de Ontwikkelaarsmodus is ingeschakeld:

  1. Ga naar Instellingen.
  2. Navigeer naar Privacy & Beveiliging > Voor ontwikkelaars.
  3. Zet Ontwikkelaarsmodus aan.

Beschikbare modellen en specificaties

Whisper biedt verschillende modellen die variëren in grootte en mogelijkheden. De modellen lopen van tiny tot large, elk met een eigen balans tussen snelheid en nauwkeurigheid.

GrootteParametersAlleen-Engels modelMeertalig modelBenodigde VRAMRelatieve snelheid
tiny39 Mtiny.entiny~1 GB~32x
base74 Mbase.enbase~1 GB~16x
small244 Msmall.ensmall~2 GB~6x
medium769 Mmedium.enmedium~5 GB~2x
large1550 MN.v.t.large~10 GB1x

Het juiste model kiezen

  • Alleen-Engelse modellen (.en): Geoptimaliseerd voor Engelse transcriptie, met betere prestaties voor Engelse audio.
  • Meertalige modellen: Kunnen meerdere talen transcriberen, geschikt voor wereldwijde toepassingen.
  • Modelgrootte: Grotere modellen bieden hogere nauwkeurigheid maar vereisen meer rekenkracht. Kies een model dat past bij je hardware en prestatie-eisen.

Whisper gebruiken in Python

Na het instellen van je omgeving en het installeren van de benodigde componenten kun je Whisper gaan gebruiken in je Python-projecten.

De bibliotheek importeren en een model laden

Begin met het importeren van de Whisper-bibliotheek en het laden van een model:

import whisper

# Laad het gewenste model
model = whisper.load_model("base")

Vervang "base" door de modelnaam die het beste bij jouw toepassing past.

Audiobestanden transcriberen

Whisper biedt een eenvoudige transcribe-functie om audiobestanden om te zetten naar tekst.

Voorbeeld: Engelse audio transcriberen

# Transcribeer het audiobestand
result = model.transcribe("path/to/english_audio.mp3")

# Print de transcriptie
print(result["text"])

Uitleg

  • model.transcribe(): Verwerkt het audiobestand en geeft een dictionary met de transcriptie en andere metadata.
  • result["text"]: Toont de getranscribeerde tekst uit het resultaat.

Audio naar Engels vertalen

Whisper kan audio uit verschillende talen naar het Engels vertalen.

Voorbeeld: Spaanse audio vertalen naar Engels

# Transcribeer en vertaal Spaanse audio naar Engels
result = model.transcribe("path/to/spanish_audio.mp3", task="translate")

# Print de vertaalde tekst
print(result["text"])

Uitleg

  • task="translate": Geeft het model de opdracht om de audio naar het Engels te vertalen in plaats van letterlijk te transcriberen.

De taal specificeren

Hoewel Whisper de taal automatisch kan detecteren, kan het specificeren ervan de nauwkeurigheid en snelheid verbeteren.

Voorbeeld: Franse audio transcriberen

# Transcribeer Franse audio door de taal te specificeren
result = model.transcribe("path/to/french_audio.wav", language="fr")

# Print de transcriptie
print(result["text"])

De taal van audio detecteren

Whisper kan de gesproken taal in een audiobestand identificeren met de detect_language-methode.

Voorbeeld: Taaldetectie

# Laad en verwerk de audio
audio = whisper.load_audio("path/to/unknown_language_audio.mp3")
audio = whisper.pad_or_trim(audio)

# Zet om naar log-Mel spectrogram
mel = whisper.log_mel_spectrogram(audio).to(model.device)

# Detecteer de taal
_, probs = model.detect_language(mel)
language = max(probs, key=probs.get)

print(f"Detected language: {language}")

Uitleg

  • whisper.load_audio(): Laadt het audiobestand.
  • whisper.pad_or_trim(): Past de audiolengte aan voor de inputvereisten van het model.
  • whisper.log_mel_spectrogram(): Zet audio om naar het formaat dat het model verwacht.
  • model.detect_language(): Geeft waarschijnlijkheden voor elke taal, zodat de meest waarschijnlijke taal wordt geïdentificeerd.

Geavanceerd gebruik en maatwerk

Voor meer controle over het transcriptieproces kun je gebruik maken van laag-niveau functies en decoderingsopties aanpassen.

De decode-functie gebruiken

Met de decode-functie kun je opties specificeren zoals taal, taak en of tijdstempels moeten worden toegevoegd.

Voorbeeld: Aangepaste decodeeropties

# Stel decodeeropties in
options = whisper.DecodingOptions(language="de", without_timestamps=True)

# Decodeer de audio
result = whisper.decode(model, mel, options)

# Print de herkende tekst
print(result.text)

Live audio-invoer verwerken

Je kunt Whisper integreren om live audio-invoer van een microfoon te transcriberen.

Voorbeeld: Live microfooningang transcriberen

import whisper
import sounddevice as sd

# Laad het model
model = whisper.load_model("base")

# Neem audio op van de microfoon
duration = 5  # seconden
fs = 16000  # Sampling rate
print("Recording...")
audio = sd.rec(int(duration * fs), samplerate=fs, channels=1, dtype='float32')
sd.wait

Veelgestelde vragen

Wat is OpenAI Whisper?

OpenAI Whisper is een geavanceerd automatisch spraakherkenningssysteem (ASR) ontwikkeld door OpenAI, ontworpen om gesproken taal om te zetten in geschreven tekst met behulp van deep learning. Het ondersteunt 99 talen en blinkt uit in transcriptie, vertaling en taalidentificatie.

Hoe werkt Whisper?

Whisper gebruikt een op transformer gebaseerde encoder-decoder architectuur, verwerkt audio tot log-Mel spectrogrammen en zet dit om naar tekst via een taalmodel. Het is getraind op 680.000 uur aan meertalige, multitask data voor hoge nauwkeurigheid en robuustheid.

Wat zijn de belangrijkste kenmerken van Whisper?

Whisper ondersteunt meertalige spraakherkenning, spraakvertaling, automatische taalidentificatie, is robuust tegen accenten en ruis, en biedt open-source toegang voor maatwerk en integratie.

Wat zijn de hardwarevereisten voor Whisper?

De hardwarevereisten zijn afhankelijk van de modelgrootte: kleinere modellen zoals 'tiny' vereisen ~1GB VRAM, terwijl de grootste ~10GB nodig heeft. Whisper draait sneller op GPU's maar kan ook op CPU's werken met langere verwerkingstijden.

Kan Whisper geïntegreerd worden in Python-projecten?

Ja, Whisper is geïmplementeerd als een Python-bibliotheek en kan via pip worden geïnstalleerd. Het maakt eenvoudige integratie mogelijk in Python-projecten voor spraaktranscriptie, vertaling en real-time stemtoepassingen.

Wat zijn veelvoorkomende toepassingen van Whisper?

Veelvoorkomende toepassingen zijn geautomatiseerde transcriptie van vergaderingen, spraakgestuurde chatbots, live vertaling, toegankelijkheidstools (ondertiteling en ondersteunende technologie), callcenter-automatisering en spraakgestuurde automatiseringssystemen.

Zijn er alternatieven voor OpenAI Whisper?

Ja, alternatieven zijn open-source engines zoals Mozilla DeepSpeech, Kaldi, Wav2vec, en commerciële API's zoals Google Cloud Speech-to-Text, Microsoft Azure AI Speech en AWS Transcribe.

Is Whisper open-source?

Ja, OpenAI Whisper is open-source, waardoor ontwikkelaars het kunnen aanpassen, verfijnen en integreren in hun eigen producten en diensten zonder licentiebeperkingen.

Begin met bouwen met OpenAI Whisper

Integreer geavanceerde spraak-naar-tekst mogelijkheden in je applicaties, automatiseer workflows en verbeter de gebruikerservaring met OpenAI Whisper en FlowHunt.

Meer informatie