
Whisper is een algemene automatische spraakherkenningsmodel dat is getraind op een grote audiodataset. Het model kan meertalige transcriptie, spraakvertaling en taalherkenning uitvoeren.
Whisper kun je gebruiken als spraakassistent, chatbot, voor spraakvertaling naar Engels, voor automatische notities tijdens vergaderingen en voor transcriptie.
Transcriptie is het proces waarbij gesproken taal wordt omgezet naar tekst. Vroeger gebeurde dit handmatig, maar nu hebben we AI-tools zoals Whisper die gesproken taal nauwkeurig kunnen begrijpen.
Als je basiskennis hebt van Python, kun je de OpenAI Whisper API in je applicatie integreren. De Whisper API maakt deel uit van openai/openai-python, waarmee je toegang krijgt tot verschillende OpenAI-services en -modellen.
Leer meer over het bouwen van AI-toepassingen met LangChain in onze Building Multimodal AI Applications with LangChain & the OpenAI API AI Code Along, waarin je ontdekt hoe je YouTube-video-inhoud transcribeert met de Whisper speech-to-text-AI en vervolgens GPT gebruikt om vragen over de inhoud te stellen.
Wat zijn goede use-cases voor transcriptie?
- Interviews, vergaderingen, colleges en podcasts transcriberen voor analyse, makkelijke toegang en archivering.
- Realtime spraaktranscriptie voor ondertiteling (YouTube), captions (Zoom-vergaderingen) en vertaling van gesproken taal.
- Spraaktranscriptie voor persoonlijk en professioneel gebruik. Spraakmemo's, berichten, herinneringen, memo's en feedback uitwerken.
- Transcriptie voor mensen met een gehoorbeperking.
- Transcriptie voor spraakgestuurde applicaties die tekstinput nodig hebben. Bijvoorbeeld chatbot, spraakassistent en taalvertaling.
Welke talen worden ondersteund?
De talen die worden ondersteund voor transcripties en vertalingen door de OpenAI Whisper API zijn:
Afrikaans, Arabisch, Armeens, Azerbeidzjaans, Belarusisch, Bosnisch, Bulgaars, Catalaans, Chinees, Kroatisch, Tsjechisch, Deens, Nederlands, Engels, Ests, Fins, Frans, Galicisch, Duits, Grieks, Hebreeuws, Hindi, Hongaars, IJslands, Indonesisch, Italiaans, Japans, Kannada, Kazachs, Koreaans, Lets, Litouws, Macedonisch, Maleis, Marathi, Maori, Nepalees, Noors, Perzisch, Pools, Portugees, Roemeens, Russisch, Servisch, Slowaaks, Sloveens, Spaans, Swahili, Zweeds, Tagalog, Tamil, Thais, Turks, Oekraïens, Urdu, Vietnamees en Welsh.
De uitsplitsing van de Word Error Rate (WER) voor Fleurs dataset met het large-v2-model staat in de onderstaande figuur, uitgesplitst per taal. Hoe kleiner de WER, hoe beter de transcriptienauwkeurigheid.

Welke bestandsindelingen worden ondersteund?
De bestandsindelingen die door de Whisper API worden ondersteund zijn mp3, mp4, mpeg, mpga, m4a, wav en webm. Momenteel is de uploadgrootte beperkt tot 25 MB. Als je grotere bestanden hebt, kun je ze in kleinere stukken opsplitsen met pydub.
Spraak naar tekst met de OpenAI API
In deze sectie gebruiken we de OpenAI API voor transcriptie en vertaling. Daarnaast kijken we naar verschillende soorten uitvoerformaten.
Setup
Je kunt de OpenAI Python-API installeren met pip.
pip install openai
Daarna moeten we API-sleutels genereren via de OpenAI API-webpagina, door op de profielfoto te klikken en de optie "View API keys" te selecteren. Alle nieuwe OpenAI-accounts bevatten $5 gratis tegoed, dus je hoeft geen creditcardgegevens toe te voegen.

Klik vervolgens op de knop “Create new security key”, geef de sleutel een naam en kopieer daarna de gegenereerde sleutel.

Stel je API-sleutel in met een omgevingsvariabele
We kunnen de API-sleutel op ons lokale systeem instellen door onderstaand commando in de terminal te typen. Het maakt een omgevingsvariabele voor de API aan zodat je OpenAI-services kunt gebruiken.
export OPENAI_API_KEY='sk-...kMEM'
Stel je API-sleutel in via het OpenAI-pakket
Je kunt ook een sleutel instellen binnen je Python-programma met openai.api_key. Deze methode is niet aan te raden omdat je je API zo blootstelt aan het publiek.
import openai
openai.api_key = "sk-...kMEM"
Stel je API-sleutel eenvoudig in DataLab in
Als je DataLab gebruikt, klik je op Environment > het plus-icoon en vul je vervolgens de namen en waarden van je omgevingsvariabelen in.

Daarna moet je de omgevingsvariabele activeren door op de knop Connect te klikken.

Dataset
Engels
We gebruiken een klein fragment uit Marvin Minsky's interview over AI op YouTube en zetten dat om naar audio. Het bestand marvin_minsky.mp3 duurt één minuut en is 970 KB groot.
Spaans
We hebben een klein fragment geknipt uit de Spaanse YouTube-video How Are People in Barcelona Using AI? om een Easy_spanish_315.mp3-bestand te maken. Het is 509 KB groot en duurt 20 seconden.
Engelse transcripties
De transcriptions-API is eenvoudig. Je hoeft alleen het audiobestand te laden met de with-instructie en het audio-object door te geven aan openai.Audio.transcribe. De transcribe-functie vereist alleen een modelnaam en audio-object, maar je kunt language-argumenten meegeven voor betere nauwkeurigheid.
import openai
with open("Audio/marvin_minsky.mp3", "rb") as audio_file:
transcript = openai.Audio.transcribe(
file = audio_file,
model = "whisper-1",
response_format="text",
language="en"
)
print(transcript)
of theories called Steps Toward Artificial Intelligence around 1970. That sort of charted several possible lines of research, which pretty much predicted what several communities of researchers would do in the next 20 years. Those predictions started to fall apart around--so that paper was 1970, roughly. By the late 1980s, the world had changed. It was interesting because when I started research in that general area, almost all of my students soon became professors.
Bekijk de OpenAI API Python-cheat sheet voor een snel overzicht van wat elke functie doet. We kunnen de cheat sheet gebruiken om te leren over verschillende OpenAI API-commando's voor tekstgeneratie, spraaktranscriptie, afbeeldingsgeneratie, embedding en meer.
Alternatieve uitvoerformaten
In het vorige voorbeeld hebben we het uitvoerformaat ingesteld op gewone tekst, maar je kunt dit altijd wijzigen naar subrip-ondertitels (response_format="srt"), video text track-ondertitels (response_format="vtt") en metadata (response_format="verbose_json").
In onze voorbeelden wijzigen we response_format naar “srt” om ondertitels als output te krijgen.
with open("Audio/marvin_minsky.mp3", "rb") as audio_file:
transcript2 = openai.Audio.transcribe(
file = audio_file,
model = "whisper-1",
response_format="srt",
language="en"
)
print(transcript2)
Zoals je ziet is de uitvoertekst opgedeeld op basis van de tijdstempel.
1
00:00:00,000 --> 00:00:10,960
of theories called Steps Toward Artificial Intelligence around 1970.
2
00:00:10,960 --> 00:00:24,320
That sort of charted several possible lines of research, which pretty much predicted what
3
00:00:24,320 --> 00:00:31,920
several communities of researchers would do in the next 20 years.
4
00:00:31,920 --> 00:00:42,040
Those predictions started to fall apart around--so that paper was 1970, roughly.
5
00:00:42,040 --> 00:00:48,200
By the late 1980s, the world had changed.
6
00:00:48,200 --> 00:00:56,760
It was interesting because when I started research in that general area, almost all
7
00:00:56,760 --> 00:01:16,920
of my students soon became professors.
Spaanse transcriptie
Whisper is getraind in 98 talen, waardoor het in meerdere talen kan transcriberen. Daarvoor moet je het language-argument aanpassen.
In ons geval transcriberen we Spaanstalige audio, en daarom hebben we language="es" ingesteld
with open("Audio/easy_spanish_315.mp3", "rb") as audio_file:
transcript_es = openai.Audio.transcribe(
file = audio_file,
model = "whisper-1",
response_format="text",
language="es"
)
print(transcript_es)
¿Qué crees que es la inteligencia artificial? ¿Qué creo que es? Eh... no sé, no sé cómo describirlo. Algo que no es natural, obviamente. Eh... Pues la inteligencia artificial es mediante... mediante datos, eh... introducirle a un algoritmo.
Spaans-naar-Engels-vertalingen
Je kunt je audio alleen naar een Engelstalige transcriptie vertalen.
In het voorbeeld geven we de functie `translate` Spaanse audio mee, en die zal de Spaanstalige audio naar het Engels vertalen.
with open("Audio/easy_spanish_315.mp3", "rb") as audio_file:
translate = openai.Audio.translate(
file = audio_file,
model = "whisper-1",
response_format="text",
language="en"
)
print(translate)
What do you think artificial intelligence is? What do I think it is? I don't know how to describe it. Something that is not natural, obviously. Artificial intelligence is, through data, introduced to an algorithm.
Probeer dit voorbeeld in deze DataLab-workbook. Het bevat audiobestanden en broncode. Je hoeft alleen een kopie van het workbook te maken en een omgevingsvariabele in te stellen om het te laten werken.
Bekijk ook de tutorial Using ChatGPT via the OpenAI API in the Python. Die laat je zien hoe je de OpenAI API gebruikt voor chatcompletions met het gpt-3.5-turbo-model.
Hoe verbeter je de transcriptieprestaties?
We kunnen de kwaliteit van transcripties verbeteren met een prompt-argument. Door een gedeeltelijke transcriptie mee te geven in het prompt-argument, help je het model de schrijfstijl, interpunctie, hoofdlettergebruik en spelling te begrijpen.
Een belangrijk nadeel van het huidige promptingsysteem is dat het weinig controle biedt over de gegenereerde tekst. Bovendien kan het prompten niet worden geautomatiseerd, omdat het inhoudt dat een mens de audio deels handmatig transcribeert.
Wat is de volgende stap?
Je kunt het codevoorbeeld uit deze tutorial gebruiken om een spraakassistent te maken of om J.A.R.V.I.S. uit Iron Man te bouwen. Daarvoor hoef je alleen de gebruikersinterface te bedenken en te bepalen hoe je Whisper, text-to-speech en de ChatGPT API combineert, wat we hebben behandeld in deze live training.
Als je nieuw bent met ChatGPT, kun je de cursus Introduction to ChatGPT volgen om best practices te leren voor het schrijven van prompts en ChatGPT te vertalen naar businesswaarde. En als je geïnteresseerd bent in GPT-4 en hoe generatieve modellen werken, lees dan What is GPT-4 and Why Does it Matter? Hieronder vind je nog meer bronnen:
- [Webinar] Een beginnersgids voor prompt engineering met ChatGPT
- [Cheat sheet] ChatGPT-cheat sheet voor data scientists
- [Cheat sheet] De OpenAI API in Python
- [Podcast] ChatGPT en hoe generatieve AI workflows versterkt
- Begin met AI leren bij DataCamp
