Schweizerdeutsche Voicemails zu strukturierten Bestellungen — ein Drei-Modell-Ensemble, das Whispers Looping-Halluzinationen beendet hat
Ein Schweizer B2B-Lebensmittelgroßhändler hatte 796 Voicemails von Restaurant-Kunden, die täglich von einer einzigen Sachbearbeiterin von Hand abgetippt wurden. Der erste Speech-to-Text-Lauf – auf einem Modell, das speziell für Schweizerdeutsch feinabgestimmt war – produzierte hochsicheren Müll: „drei Pommes drei Pommes drei Pommes…" über 50 Zeilen. Wir haben die Ursache diagnostiziert, die Pipeline als Drei-Modell-Ensemble mit Claude 4.7 Opus als Arbiter neu aufgebaut und 99 von 100 zuvor unbrauchbaren Dateien wiederhergestellt.
Kunde
Schweizer Großhändler für Foodservice-Waren (Tiefkühlprodukte, Saucen, Verpackung), der Restaurants, Cafés, Kebab-Läden und Bars in der Deutschschweiz beliefert. Kunden hinterlassen Bestellungen auf einem Anrufbeantworter – 20 bis 40 Voicemails pro Tag, montags mehr.
Projektrahmen
Zwei-Phasen-Projekt: Phase 1 – Batch-Pipeline über das Archiv aus 796 Voicemails zum Nachweis der Machbarkeit. Phase 2 – Immer-online IMAP-Watcher, der neue Combox-Voicemails transkribiert und der Sachbearbeiterin eine Antwort-E-Mail mit strukturierter Bestellung als Entwurf sendet.
Schweizerdeutsch ist kein Deutsch – und die Telefonleitung macht es noch schwerer.
Jeden Tag hinterlassen Restaurant-Betreiber Bestellungen auf dem Anrufbeantworter des Großhändlers: „Hallo, hier ist Restaurant Rathausbrauerei Luzern, bestellen Sie zehn Karton Pommes, sieben Karton Spicy Veggies, Vanillesauce…". Eine Sachbearbeiterin hört jede Nachricht ab und tippt die Bestellung von Hand ins ERP. Langsam, teuer, fehleranfällig.
Das Briefing war auf dem Papier einfach: die Voicemail transkribieren, damit die Sachbearbeiterin eine fertige Bestellung bestätigt statt sie von Null einzutippen.
Warum es in der Praxis schwer ist:
- Schwyzerdütsch ist eine Familie alemannischer Dialekte, keine Variante des Deutschen. Ein Sprecher aus Berlin versteht einen Sprecher aus Luzern oft nicht. Es gibt keine einheitliche schriftliche Norm – Zürich klingt anders als Bern, Bern anders als Luzern.
- Das Audioprofil ist brutal: komprimiertes Telefon-Audio, Küchenlärm im Hintergrund, schnelle Sprecher, verschluckte Endungen, ständiges Code-Switching zwischen Dialekt und Hochdeutsch.
- Der Inhalt ist domänenspezifisch: Restaurantnamen, Kundennummern, Artikel-Nummern, Mengen. Eine falsche Ziffer – und die falsche Menge geht zum falschen Kunden.
Spezialisiertes Schweizerdeutsch-Modell. Hohe Konfidenz. Kompletter Müll.
Der logische erste Schritt war das für die Aufgabe gebaute Modell. Wir wählten whisper-large-v3-turbo-swiss-german – ein Fine-Tune einer Schweizer Universität, trainiert auf 300 Stunden Schweizer Audio. Alle 796 Dateien sauber verarbeitet. Null Fehler. Mittlere Konfidenz 75 %. Wir schickten die Ergebnisse an die Kundin.
Die Kundin sortierte das Excel absteigend nach Konfidenz. In den Dateien mit Konfidenz 0,95 fand sie das hier:
„7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7 …" (endloser Ziffernstrom)
„Grossrat, Grossrat, Grossrat, Grossrat …" (60-mal am Stück)
„ä ä ä ä ä ä ä ä ä ä ä ä …" (nur Laute)
Die Konfidenz war invertiert. Je sicherer das Modell, desto schlechter der Output. Dateien im Konfidenzbereich 0,70–0,80 enthielten perfekte Bestell-Transkripte – Kundennummer, Restaurant, Mengen, Produktnamen.
Das Urteil der Kundin, wörtlich zitiert: „Das ist Müll."
Ursache: Looping-Halluzination bei undeutlichem Audio
Whisper ist autoregressiv. Es generiert Text Token für Token, jeder Token abhängig vom vorherigen. Wenn das Audio undeutlich ist – wie Telefon-Voicemails routinemäßig sind – hängt sich das Modell am zuletzt erkannten Token fest und beginnt, ihn zu wiederholen. Ein bekannter Fehlermodus: Looping-Halluzination. Das Paradox: einen einzelnen Token zu wiederholen, ist für das Modell einfach – jede weitere Wiederholung hat hohe Wahrscheinlichkeit – daher schießt die Konfidenz genau dort in die Höhe, wo der Output kaputt ist.
Whisper hat eine ganze Suite an Schutzmechanismen dagegen: Wiederholungs-Strafe, Compression-Ratio-Filter, kaskadierende Temperatur-Fallback für schwierige Segmente, Kontextisolation. Alle müssen explizit aktiviert werden. Im ersten Lauf waren sie aus – wir hatten die Parameter aus der Spezifikation „wie gegeben" verwendet, ohne Anpassung an das reale Audioprofil des Kunden.
Gleiches Modell, korrekte Parameter, drei Modelle im direkten Vergleich.
Wir aktivierten den vollen Anti-Halluzinations-Stack und wiederholten einen A/B-Test auf den fünf schlechtesten Dateien, jede durch drei Modellfamilien geführt:
- Modell A — derselbe Schweizerdeutsch-Fine-Tune, mit korrekten Anti-Loop-Parametern.
- Modell B — Vanilla OpenAI Whisper Large V3 (voll).
- Modell C — OpenAI Whisper Large V3 Turbo (schnell).
Alle drei produzierten lesbare Transkripte. Null Loops. Die Datei, die zuvor endloses „ä ä ä ä ä…" war, wurde:
Gewinner war Whisper Large V3 Turbo — das Vanilla-OpenAI-Modell, nicht der Schweiz-spezialisierte Fine-Tune. Es lieferte die vollständigsten Transkripte (inklusive Telefonnummern, die andere Modelle wegließen), lief 3× schneller als der Schweiz-Fine-Tune und 7× schneller als das volle Large V3.
Ein kontraintuitives Ergebnis. Klar gesagt: ein spezialisiertes Modell ist nicht immer die beste Wahl. Der Schweizer Fine-Tune sah 300 Stunden Dialekt. Vanilla Turbo sah 680 000 Stunden über verschiedene Sprachen. Breite schlug Spezialisierung bei diesem Audioprofil.
Drei-Modell-Ensemble mit einem Claude 4.7 Opus Arbiter.
Ein Modell ist ein Fehlermodus. Die M2-Pipeline betreibt drei unabhängige Transkriber und lässt ein Reasoning-Modell die beste Ausgabe wählen oder mergen – anhand deterministischer Trust-Signale.
Warum ein Ensemble? In M1 ließen wir den Schweizer Fine-Tune und Whisper Turbo auf 100 Worst-Case-Dateien laufen. Turbo gewann 74, Swiss gewann 16, der Rest war unentschieden. Die Gewinne sind unkorreliert – Swiss rettete Turbo auf 10 Dateien, wo Turbo in Loops lief. Mit Gemini 2.5 Pro (multimodaler LLM, nicht autoregressiv über Audio-Tokens) kommt eine dritte Architektur hinzu, die Whispers Looping-Fehlermodus nicht teilt und Kundenkontext im Prompt nutzen kann.
Der Arbiter. Claude 4.7 Opus sieht alle drei Transkripte zusammen mit deterministischen Trust-Signalen (Loop-Detektor-Output, Compression-Ratio, Agreement-Metriken) und wählt die beste Version – oder merget sie – und extrahiert dann eine strukturierte Bestellung (Kundennummer, Restaurantname, Positionen mit Menge und SKU-Match gegen die Vermo-Stammdatendatei).
Zwei-Stufen-Arbitration zur Kostenreduktion. Wenn alle drei Transkriber übereinstimmen, bestätigt und extrahiert ein leichter Prompt auf Claude Haiku. Bei Uneinigkeit läuft der volle Opus-Prompt. Das spart rund 60 % gegenüber einem Opus-Aufruf pro Datei.
Architektur (Datenfluss)
Von „Das ist Müll" zu produktionsreif in drei Wochen.
Jede Zahl unten ist auf dem echten Voicemail-Archiv des Kunden gemessen, nicht auf synthetischem Test-Audio.
Dateien aus dem Müll gerettet
Die 100 schlechtesten Dateien (Konfidenz 0,85–0,96, zuvor alles Looping-Müll) wurden auf der reparierten Pipeline neu verarbeitet. 99 kamen lesbar zurück. Eine war aufgrund der Audioqualität nicht rekonstruierbar.
Looping-Halluzinationen
Nach Aktivierung von Wiederholungs-Strafe, Compression-Ratio-Filter und kaskadierender Temperatur ist der Loop-Fehlermodus über das gesamte 796-Dateien-Archiv verschwunden.
Mittlere kalibrierte Konfidenz
Die Konfidenz korreliert jetzt mit der tatsächlichen Transkript-Qualität. Dateien unter 0,60 werden korrekt zur manuellen Prüfung markiert; Dateien über 0,85 werden korrekt vertraut.
Gesamtkosten, 796 Dateien
Whisper ~2,40 $ + Gemini ~1,00 $ + zweistufiges Claude ~10 $. Die zweistufige Arbitration spart etwa 60 % gegenüber Opus-Aufrufen auf jede Datei.
Speed-Up
Whisper Turbo läuft 3× schneller als der Schweizer Fine-Tune und 7× schneller als das volle Large V3 – und liefert dabei die vollständigsten Transkripte auf diesem Audioprofil.
Qualitätsverteilung (von 99)
37 vollständig lesbare Bestellungen mit Namen, Kundennummern und Mengen. 47 gute Qualität mit kleinen SKU-Schreibfehlern. 15 partiell aufgrund schlechter Aufnahme – aber kein Müll.
Vorher tippte die Sachbearbeiterin jede Voicemail von Null ab. Jetzt bestätigt sie eine fertige Bestellung und geht weiter. Die Müll-Zeilen aus dem ersten Lauf sind weg.
Vier Dinge, die explizit gesagt werden sollten.
1. Ein spezialisiertes Modell ist nicht immer das beste Modell. Der Schweizer Fine-Tune sah 300 Stunden Dialekt. Vanilla Whisper Turbo sah 680 000 Stunden über verschiedene Sprachen – und gewann den Head-to-Head auf diesem spezifischen Audioprofil. Breite kompensierte Spezialisierung. Beides testen, nicht annehmen.
2. Parameter zählen mehr als das Modell. Derselbe Schweizer Fine-Tune mit falschen Parametern produzierte 50 Zeilen Müll. Mit dem richtigen Anti-Halluzinations-Stack aktiviert, produzierte er lesbaren Text. Der Unterschied zwischen „Projekt gescheitert" und „produktionsbereit" waren sechs Konfigurationswerte, nicht ein anderes Modell.
3. Konfidenz lügt. Autoregressive LLM-Konfidenz misst, wie sicher das Modell bei jedem nächsten Token ist – nicht, ob die Sequenz die Realität beschreibt. Sie kann zu 95 % sicher von komplettem Unsinn sein. Man braucht externe Checks: einen deterministischen Loop-Detektor, Compression-Ratio-Filter, Cross-Model-Agreement. Wir behandeln Konfidenz jetzt als ein Signal unter mehreren, nicht als Wahrheit.
4. Dialekt ist faktisch eine eigene Sprache. Schwyzerdütsch hat keine einheitliche Schriftform. Eine Pipeline, die für Hochdeutsch funktioniert, kann auf demselben Audio in Dialekt komplett scheitern – und umgekehrt. Jeder Schweizerdeutsch-Deployment sollte auf dem tatsächlichen Audio des Kunden getestet werden, nicht auf öffentlichen Benchmarks.
Von „Das ist Müll" zur Produktions-Pipeline in drei Wochen.
- Woche 1
M1-Batch auf Schweizerdeutsch-Fine-Tune
Alle 796 Dateien mit dem vom Kunden spezifizierten Modell verarbeitet. Als Erfolg gemeldet – bis die Kundin nach Konfidenz sortierte und in den obersten Zeilen Looping-Müll fand.
- Woche 1
Diagnose der Looping-Halluzination
Fehlermodus identifiziert. Wiederholungs-Strafe, Compression-Ratio-Filter, kaskadierende Temperatur-Fallback und Kontextisolation aktiviert. A/B-Test auf den fünf schlechtesten Dateien über drei Modellfamilien.
- Woche 2
M2-Ensemble-Design + Implementation
Drei-Transkriber-Pipeline (Whisper Turbo + Gemini 2.5 Pro + FHNW Schweizerdeutsch) mit Claude 4.7 Opus als Arbiter gebaut. Trust-Signal-Extraktion (Loop-Detektor, Compression-Ratio, 3-Weg-Agreement) als Grundlage für den Arbiter.
- Woche 2
Validierung auf 100 zuvor unbrauchbaren Dateien
99/100 wiederhergestellt. Mittlere kalibrierte Konfidenz 77,4 % (und diesmal korreliert sie mit der Realität). Manuelle Review-Queue für die 15 % Teilqualitätsdateien gebaut.
- Woche 3
Kunden-DB-Anreicherung + Artikel-Matcher
Anrufernummer → Restaurantname über Kundenstamm. SKU-Matcher gegen den Vermo-Artikelkatalog mit Fuzzy-Match + Konfidenz-Score pro Position.
- Woche 3
Widget + API + IMAP-Watcher
Self-hostbare HTTP-API mit Drag-and-Drop-Widget für manuelle Prüfung. Docker-Compose-Deployment hinter Caddy mit Auto-HTTPS. IMAP-Watcher für Immer-online-Combox-Voicemail-Eingang.
Weitere produktive Voice- und Audio-Projekte.
Dialekt, Telefonleitungs-Audio oder domänenspezifisches Vokabular – wir sagen Ihnen in 20 Minuten, ob es umsetzbar ist.
Schicken Sie uns fünf repräsentative Audiodateien und das gewünschte Ergebnis (strukturierte Bestellung, Termin, Ticket, was auch immer). Wir antworten mit Ja / Nein / Noch nicht – basierend auf WER auf Ihrem echten Audio, nicht auf einem öffentlichen Benchmark.