Video Audio Zu Text Initial Prompt
Der Kontext-Trick: initial_prompt
Das Geheimnis für deutlich bessere Transkriptionen liegt in einem Parameter, den die meisten übersehen: initial_prompt. Damit gibst Du Whisper Kontext, also Hintergrundinformationen über den Inhalt Deiner Aufnahme. Die Qualität springt dadurch von "kaum brauchbar" auf "professionell".
Das Problem ohne Kontext
Whisper kennt weder Dein Unternehmen noch Deine Fachbegriffe. Wenn jemand im Meeting "karlsCORE" sagt, hört Whisper vielleicht "Carls Core" oder "Karl Score". Bei "KI-Gemeinschaft" wird es zu "KI Gemeinschaft" oder "Kiegemeinschaft". Das Modell rät einfach, weil es diese Wörter nicht kennt.
In meinem Benchmark mit meinem TEDx-Talk habe ich gemessen, wie stark sich der initial_prompt auf die Qualität auswirkt:
| Modell | Ohne initial_prompt | Mit initial_prompt |
|---|---|---|
| base | 3,0 / 10 | nicht getestet |
| medium | 6,7 / 10 | 8,7 / 10 |
| large | 4,3 / 10 | 7,7 / 10 |
Das Ergebnis hat mich überrascht: Das medium-Modell mit initial_prompt schlägt das große large-Modell ohne Kontext und braucht dabei nur die Hälfte der Rechenzeit. Der Kontext ist wichtiger als die Modellgröße.
Was gehört in den initial_prompt?
Im Prinzip alles, was Whisper helfen könnte, unbekannte Begriffe richtig zu erkennen. Ich empfehle, vor der Transkription kurz zu überlegen, welche speziellen Wörter in der Aufnahme vorkommen:
- Firmennamen: karlsCORE, Domicilium, Microsoft
- Produktnamen: Claude, Whisper, karlsGPT
- Personennamen: Karl Kratz, die Namen der Teilnehmer
- Fachbegriffe: Transkription, Protokollierung, Kybernetik, Rückkopplung
- Abkürzungen: KI, LLM, API, CRM, MVP
So verwendest Du initial_prompt
from faster_whisper import WhisperModel
model = WhisperModel("medium", device="cuda", compute_type="float16")
initial_prompt = """
Dieses Meeting behandelt karlsCORE und die KI-Gemeinschaft.
Teilnehmer: Karl Kratz, Anna Schmidt.
Themen: Claude, Whisper, Transkription.
"""
segments, info = model.transcribe(
"meeting.mp4",
language="de",
initial_prompt=initial_prompt
)
for segment in segments:
print(segment.text)
Der Prompt muss nicht perfekt formuliert sein, es ist keine Anweisung an Whisper, sondern eher eine "Vokabelliste". Du kannst einfach alle relevanten Begriffe aufschreiben, die in der Aufnahme vorkommen könnten. Whisper nutzt diese Information, um bei mehrdeutigen Klängen die richtige Schreibweise zu wählen.