
Whisper ist ein vielseitiges automatisches Spracherkennungsmodell, das auf einem großen Audiodatensatz trainiert wurde. Das Modell beherrscht mehrsprachige Transkription, Sprachübersetzung und Spracherkennung.
Whisper eignet sich als Sprachassistent oder Chatbot, für Übersetzungen ins Englische, zum automatischen Mitschreiben in Meetings und für Transkriptionen.
Unter Transkription versteht man die Umwandlung gesprochener Sprache in Text. Früher erfolgte das händisch, heute gibt es KI-gestützte Tools wie Whisper, die gesprochene Sprache präzise verstehen.
Wenn du Grundkenntnisse in Python hast, kannst du die OpenAI Whisper API in deine Anwendung integrieren. Die Whisper API ist Teil von openai/openai-python und bietet Zugriff auf verschiedene OpenAI-Services und -Modelle.
Erfahre mehr über den Aufbau von KI-Anwendungen mit LangChain in unserem Building Multimodal AI Applications with LangChain & the OpenAI API AI Code Along. Darin lernst du, wie du YouTube-Inhalte mit der Whisper Speech-to-Text-KI transkribierst und anschließend mit GPT Fragen zum Inhalt stellst.
Welche guten Anwendungsfälle gibt es für Transkriptionen?
- Interviews, Meetings, Vorlesungen und Podcasts transkribieren – für Analyse, schnellen Zugriff und Dokumentation.
- Echtzeit-Transkription für Untertitel (YouTube), Captions (Zoom-Meetings) und Übersetzung gesprochener Sprache.
- Transkriptionen für private und berufliche Zwecke: Sprachnotizen, Nachrichten, Erinnerungen, Memos und Feedback verschriftlichen.
- Transkriptionen zur Unterstützung von Menschen mit Hörbeeinträchtigungen.
- Transkriptionen für sprachbasierte Anwendungen, die Texteingaben benötigen, z. B. Chatbots, Sprachassistenten und Übersetzungen.
Welche Sprachen werden unterstützt?
Für Transkriptionen und Übersetzungen unterstützte Sprachen der OpenAI Whisper API sind:
Afrikaans, Arabisch, Armenisch, Aserbaidschanisch, Belarussisch, Bosnisch, Bulgarisch, Katalanisch, Chinesisch, Kroatisch, Tschechisch, Dänisch, Niederländisch, Englisch, Estnisch, Finnisch, Französisch, Galicisch, Deutsch, Griechisch, Hebräisch, Hindi, Ungarisch, Isländisch, Indonesisch, Italienisch, Japanisch, Kannada, Kasachisch, Koreanisch, Lettisch, Litauisch, Mazedonisch, Malaiisch, Marathi, Māori, Nepalesisch, Norwegisch, Persisch, Polnisch, Portugiesisch, Rumänisch, Russisch, Serbisch, Slowakisch, Slowenisch, Spanisch, Swahili, Schwedisch, Tagalog, Tamil, Thailändisch, Türkisch, Ukrainisch, Urdu, Vietnamesisch und Walisisch.
Die Word-Error-Rate (WER) für Fleurs Datensatz mit dem Modell large-v2 ist in der folgenden Abbildung nach Sprachen aufgeschlüsselt. Je kleiner die WER, desto besser die Transkriptionsgenauigkeit.

Welche Dateiformate werden unterstützt?
Von der Whisper API unterstützte Dateiformate sind mp3, mp4, mpeg, mpga, m4a, wav und webm. Aktuell ist die Uploadgröße auf 25 MB begrenzt. Größere Dateien kannst du mit pydub in kleinere Teile splitten.
Speech-to-Text mit der OpenAI API
In diesem Abschnitt nutzen wir die OpenAI API für Transkription und Übersetzung. Außerdem schauen wir uns verschiedene Ausgabeformate an.
Setup
Du kannst die OpenAI Python API mit pip installieren.
pip install openai
Anschließend erzeugst du API-Schlüssel über die OpenAI API-Webseite, klickst auf dein Profilbild und wählst "View API keys". Alle neuen OpenAI-Konten enthalten 5 US-Dollar Startguthaben, du musst also zunächst keine Kreditkartendaten hinterlegen.

Klicke dann auf „Create new security key“, vergib einen Namen und kopiere den erzeugten Schlüssel.

Richte deinen API-Schlüssel als Umgebungsvariable ein
Du kannst den API-Schlüssel lokal per folgendem Terminalbefehl setzen. Damit legst du eine Umgebungsvariable an, um OpenAI-Services zu nutzen.
export OPENAI_API_KEY='sk-...kMEM'
API-Schlüssel mit dem OpenAI-Paket setzen
Du kannst den Schlüssel auch direkt im Python-Programm per openai.api_key setzen. Diese Methode ist nicht zu empfehlen, da sie deinen Schlüssel offenlegt.
import openai
openai.api_key = "sk-...kMEM"
API-Schlüssel bequem in DataLab einrichten
Wenn du DataLab verwendest, klicke auf Environment > das Plus-Symbol und trage Namen und Werte deiner Umgebungsvariablen ein.

Aktiviere die Umgebungsvariable anschließend über den Connect-Button.

Datensatz
Englisch
Wir nutzen einen kurzen Ausschnitt aus dem Interview mit Marvin Minsky über KI auf YouTube und wandeln ihn in Audio um. Die Datei marvin_minsky.mp3 ist eine Minute lang und 970 KB groß.
Spanisch
Wir haben einen kleinen Teil aus dem spanischsprachigen YouTube-Video How Are People in Barcelona Using AI? ausgeschnitten und als Datei Easy_spanish_315.mp3 erstellt. Sie ist 509 KB groß und 20 Sekunden lang.
Englische Transkriptionen
Die Transcriptions-API ist unkompliziert. Du lädst die Audiodatei mit dem with-Statement und übergibst das Audioobjekt an openai.Audio.transcribe. Die Funktion benötigt nur den Modellnamen und das Audioobjekt, optional kannst du language zur besseren Genauigkeit angeben.
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.
Sieh dir das OpenAI API Python Cheat Sheet an, um die Funktionen schnell nachzuschlagen. Darüber lernst du die wichtigsten OpenAI API-Befehle für Textgenerierung, Sprachtranskription, Bildgenerierung, Embeddings und mehr.
Alternative Ausgabeformate
Im vorherigen Beispiel haben wir einfaches Textformat ausgegeben, du kannst die Antwort aber auch als SubRip-Untertitel (response_format="srt"), als Video-Text-Track-Untertitel (response_format="vtt") oder mit Metadaten (response_format="verbose_json") anfordern.
In unseren Beispielen setzen wir response_format auf „srt“, um Untertitel als Ausgabe zu erhalten.
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)
Wie du siehst, ist der Text anhand der Zeitstempel segmentiert.
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.
Spanische Transkription
Whisper wurde in 98 Sprachen trainiert und kann dadurch mehrsprachig transkribieren. Dafür musst du lediglich das Argument language anpassen.
In unserem Fall transkribieren wir spanisches Audio und setzen daher language="es".
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.
Übersetzungen Spanisch nach Englisch
Du kannst Audio ausschließlich ins Englische übersetzen lassen.
Im Beispiel übergeben wir der Funktion `translate` spanisches Audio. Sie übersetzt das spanische Audio ins Englische.
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.
Probiere dieses Beispiel in diesem DataLab-Workbook aus. Es enthält die Audiodateien und den Quellcode. Du musst das Workbook nur kopieren und eine Umgebungsvariable setzen.
Sieh dir außerdem das Tutorial Using ChatGPT via the OpenAI API in Python an. Darin lernst du, wie du die OpenAI API für Chat Completions mit dem Modell gpt-3.5-turbo nutzt.
Wie lässt sich die Transkriptionsqualität verbessern?
Wir können die Qualität der Transkription mit einem Prompt-Argument verbessern. Indem du im prompt-Argument eine teilweise Transkription vorgibst, hilfst du dem Modell, Stil, Zeichensetzung, Großschreibung und Schreibweise zu verstehen.
Ein wesentlicher Nachteil des aktuellen Prompting-Ansatzes ist die geringe Kontrolle über den generierten Text. Außerdem lässt sich der Prompting-Prozess nicht vollständig automatisieren, da dafür bislang eine teilweise manuelle Transkription nötig ist.
Wie geht es weiter?
Mit dem Code aus diesem Tutorial kannst du einen Sprachassistenten bauen – oder J.A.R.V.I.S. aus Iron Man nachbauen. Dafür brauchst du vor allem eine geeignete Oberfläche und musst Whisper, Text-to-Speech und die ChatGPT API kombinieren. Das zeigen wir in diesem Live-Training.
Wenn du neu bei ChatGPT bist, starte mit dem Kurs Introduction to ChatGPT und lerne Best Practices für Prompts, um ChatGPT in Geschäftswert zu übersetzen. Wenn du mehr über GPT-4 und Funktionsweise generativer Modelle erfahren willst, lies What is GPT-4 and Why Does it Matter?. Weitere Ressourcen:
- [Webinar] A beginner’s guide to prompt engineering with ChatGPT
- [Cheat Sheet] ChatGPT Cheat Sheet for Data Scientists
- [Cheat Sheet] The OpenAI API in Python
- [Podcast] ChatGPT and How Generative AI is Augmenting Workflows
- Lerne KI mit DataCamp