/docs · VoiceLab · Practical
Die Audioqualität lesen, bevor man transkribiert
Ein Aufruf vor dem Modell: was die Szenen-Felder über eine Datei sagen und was nicht, mit den Zahlen aus unserem eigenen Transkriptionstest.
Aktualisiert 10.10.2026
Ein Transkript kann aus Gründen falsch sein, die schon im Audio lagen, bevor das Modell es sah: ein geclippter Upload, eine zweite Stimme, die über die Nachricht spricht, ein Sprecher, der nur ein paar dB über einem lauten Raum liegt. Eine Messung vor dem Modell kann das zeigen. Sie kann dir nicht sagen, ob das Transkript stimmen wird, und diese Seite sagt, wo diese Grenze liegt, mit Zahlen.
Was die Felder nicht vorhersagen
Wir haben es getestet, am 10. Oktober 2026. Sechzehn erfundene niederländische Bürgermeldungen (Straße und Hausnummer, Ort, Nachname, Telefonnummer, E-Mail-Adresse), vorgelesen von drei synthetischen Stimmen in 13 Bedingungen: sauber, Telefonband, Straßenlärm und Stimmengewirr bei 10 und 5 dB, ein Fernseher, vier gemessene Nachhallzeiten und Kombinationen. Das sind 624 Aufnahmen und 1.248 Transkriptionen mit Whisper small und Whisper large-v3-turbo, 48 pro Bedingung und Modell, also eine Marge von etwa 13 Punkten.
- Die SNR-Messgrößen sagten Fehler nicht voraus. Für „Straße, Nummer oder Ort falsch“ lag die AUC von
worstPhraseSnrDb,segmentalSnrDbundsignalToNoiseDbbei beiden Modellen zwischen 0,52 und 0,55. 0,50 ist ein Münzwurf. sceneIntelligibilitylöste Fehlalarme aus. Es las sich als nicht klar (grenzwertig oder verschüttet) bei 100 Prozent der Aufnahmen mit Straßenlärm bei 10 und 5 dB und bei 94 bis 100 Prozent mit Stimmengewirr, während Whisper small bei 58 bis 67 Prozent davon den Ort trotzdem richtig hatte (sauber: 69) und large-v3-turbo bei 71 bis 85 Prozent (sauber: 81). Über alle Aufnahmen markierte es 58 Prozent; von den Markierungen hatten 47 Prozent (small) oder 25 Prozent (large) einen echten Ortsfehler.- Was die Fehler erklärte, waren die Wörter. Bei sauberen Aufnahmen kamen Straße, Nummer und Ort in 69 Prozent (small) oder 81 Prozent (large) der Fälle richtig zurück, eine als Wörter gesprochene E-Mail-Adresse in 21 oder 35 Prozent, eine Telefonnummer in 83 oder 88, ein Nachname in 73 oder 81. Die Wahl des Modells wog schwerer als das Audio: Ein Nachhall von 1,0 s mit Stimmengewirr ergab 17 Prozent für small gegenüber 54 Prozent für large.
Die Grenzen des Tests: synthetische Stimmen, nur Whisper, ein simuliertes Telefonband, niederländischer Text, 48 Aufnahmen pro Bedingung und Modell. Echte Sprecher, andere Erkenner und andere Sprachen sind nicht getestet. Verweigere also keine Datei allein wegen sceneIntelligibility oder eines SNR. Sie beschreiben das Signal.
Der Aufruf
POST https://audiolab.tools/v1/voicelab/qa mit einem Bearer-Schlüssel. Schick die Datei als multipart/form-data (file) oder als JSON mit einer öffentlichen url. Die Antwort ist die vollständige VoiceLab-Analyse; der Teil, der hier zählt, gekürzt, für einen Vortrag mit einem zweiten Sprecher 18 dB hinter der Nachricht:
{
"sceneBackground": "program",
"sceneProgramScore": 0.92,
"sceneGapHarmonicShare": 0.33,
"speechToBackgroundDb": 15.2,
"sceneIntelligibility": "clear",
"sceneIntelligibilityScore": 0.81
}
Lies es als Satz: In den Pausen ist eine zweite Stimme (program, ein Drittel der Pausenenergie ist wandernde Tonhöhe), die Nachricht liegt 15 dB darüber, und die Vordergrundstimme liest sich für einen Zuhörer als nachvollziehbar. Das sagt etwas über das Signal, nicht darüber, was ein Erkenner damit anfängt.
| Feld | Was es sagt | Werte |
|---|---|---|
sceneIntelligibility | Ein Proxy dafür, ob ein Zuhörer der Vordergrundstimme folgen könnte (nicht für Spracherkennung) | clear, borderline, buried oder null bei weniger als zwei messbaren Phrasen |
sceneIntelligibilityScore | Dasselbe als Zahl | 0 bis 1; clear ab 0,65, borderline ab 0,35 |
speechToBackgroundDb | Mittlerer Sprachpegel minus mittlerer Pausenboden | dB; 3 liest sich als 0, 18 liest sich im Score als 1 |
sceneBackground | Was die Pausen füllt | quiet, stationary (eine Maschine), program (eine zweite Stimme oder Musik), unsteady oder null bei weniger als einer Sekunde Pause |
clipping.severity | Digitale Schäden, an der Quelle leichter zu beheben als später | None, Low, Medium, High |
speechRatio | Anteil der Datei, der überhaupt Sprache ist | 0 bis 1 |
Nutzen, ohne Dateien zu verweigern
const KEY = process.env.AUDIOLAB_API_KEY;
async function check(url) {
const v = await fetch('https://audiolab.tools/v1/voicelab/qa', {
method: 'POST',
headers: { Authorization: `Bearer ${KEY}`, 'Content-Type': 'application/json' },
body: JSON.stringify({ url }),
}).then((r) => r.json());
const notes = [];
if (v.speechRatio < 0.2) return { route: 'no-speech', notes }; // nichts zu transkribieren, keine Minuten abrechnen
if (v.clipping.severity === 'High') notes.push('clipped'); // Schaden an der Quelle
if (v.sceneBackground === 'program') notes.push('second-voice-or-music'); // hinter der Nachricht spricht etwas
if (v.sceneIntelligibility === 'buried') notes.push('voice-close-to-background');
return { route: 'transcribe', notes }; // die Hinweise ans Transkript hängen, einen Menschen entscheiden lassen
}
Zwei Ergebnisse sind sicher, um darauf zu handeln: eine Datei mit fast keiner Sprache und ein Transkript, das trägt, was das Audio gezeigt hat. Alles andere ist Information, die du ans Transkript hängst, kein Grund, die Datei zu verweigern. Der null-Fall ist wichtig: Eine Datei mit einer Phrase ist keine schlechte Datei, sie ist eine ungemessene.
Beispielmessungen
Das sind Beispielmessungen, keine Kalibrierung. Die Labels wurden an diesem Material von Hand gesetzt und weder gegen Zuhörer noch gegen Spracherkennung validiert. Ein Vortrag, aufgenommen in einem Saal mit Publikum, dann gemischt mit den Dingen, die hinter einer Nachricht sitzen:
| Szene | Hintergrund | Sprache über Hintergrund | Verständlichkeit |
|---|---|---|---|
| Vortrag, sauber | unsteady (der Raum und das Publikum) | 17,1 dB | clear 0,94 |
| plus Lüftungsanlage bei −20 dB | stationary, Ton bei 120,8 Hz | 15,4 dB | clear 0,85 |
| plus ein zweiter Sprecher bei −18 dB | program | 15,2 dB | clear 0,81 |
| plus ein Club-Track bei −18 dB | unsteady | 15,0 dB | clear 0,80 |
| plus ein zweiter Sprecher bei −6 dB | program | 10,0 dB | borderline 0,45 |
Und eine Raumaufnahme über ein Telefon, bei der die Wiedergabelautsprecher nur 5 bis 7 dB über den Eigenboden des Raums kamen: Jede Aufnahme las sich als buried, Scores 0,12 bis 0,25. Ob ein Erkenner damit zurechtgekommen wäre, wurde nicht getestet.
Der Score ist das Schwächere von zwei Beinen: das schlechteste Zehntel des Signal-Rausch-Verhältnisses pro Phrase und die Sprache über dem Pausenboden, beide so abgebildet, dass 3 dB als 0 und 18 dB als 1 gelesen wird, dann für einen halligen Raum und für Clipping verringert. Er ist bewusst konservativ: Ein schlechter Abschnitt von Phrasen zieht die ganze Datei nach unten.
Was die Zahl nicht ist
- Kein Prädiktor für Transkriptionsgenauigkeit. Siehe den Test oben.
- Kein STI. Sie ist ein Proxy, aus Pegeln gebaut, Phrase für Phrase. Sie sagt dir, ob die Stimme weit genug über dem liegt, was dahinter ist; sie modelliert nicht das Ohr eines Zuhörers und wurde nicht gegen Zuhörer getestet.
- Kein Sprachdetektor für Musik. Der Phrasendetektor liest gesungenen Gesang als Sprache, eine Musikdatei mit Gesang kann also als
buriedzurückkommen. Lies Musik anderswo übersceneBackgroundundspeechRatio, oder schick sie gar nicht erst hierher. - Nicht an kurzen Dateien gemessen. Unter zwei messbaren Phrasen ist jedes Szenen-Feld
null. Behandlenullals „nicht gemessen“, nie als „in Ordnung“ oder „schlecht“. - Gelesen nach den ersten 0,4 s jeder Pause, damit der Ausklang des letzten Worts nicht als Hintergrund zählt. Pausen unter einer Sekunde zählen gar nicht.
Backlogs und Agenten
Für einen Backlog führt POST /v1/batch dieselbe Route über bis zu 20 URLs in einem Aufruf aus und liefert pro URL ein Ergebnis, in der Reihenfolge. Für einen Agenten liefert das MCP-Tool analyze_voice dieselben Felder für eine url (oder einen lokalen path mit dem npm-Paket, das die Datei auf deinem Rechner liest und zum Messen an die API hochlädt). Die Free-Stufe enthält 1.000 Aufrufe im Monat, genug, um zu sehen, welcher Anteil deines Eingangs welchen Hinweis trägt, bevor du etwas entscheidest.
Willst du dieselben Zahlen erst von Hand sehen? Zieh eine Datei auf die Werkbank und öffne die Gruppe Scene im Tab Voice, oder lies die Definitionen und den Status jeder scene.*-Messgröße auf /lenses.
Weiter in VoiceLab docs
Was der Hüllkurvenabfall nach Sprache wirklich misst →
Wir haben aus dem Abfall nach jeder Phrase einen günstigen Hall-Schätzer gebaut und ihn gegen 24 gemessene Räume geprüft. Er misst keinen Hall. Hier sind die Zahlen und was wir geändert haben.
More in VoiceLab docs
- Intro
Voice AI: zehn Fragen, beantwortet
Was AudioLab für einen Voice Agent misst, was nicht, wohin dein Audio geht, wie ein Urteil entsteht und wer die Limits setzt, wie du Versionen vergleichst und die Prüfungen automatisierst und was kostenlos ist.
- Intro
Warum die Füllwortdichte wichtiger ist als die Füllwortanzahl
"Ähs" zu zählen ist die falsche Messgröße. Die Dichte verrät, ob sie ein Problem sind.
- Practical
Ein pragmatisches Loudness-Ziel für Podcasts
Das richtige Loudness-Ziel für Sprach-Podcasts ist nicht dasselbe wie für Musik. Hier sind die Zahlen und das Warum.
- Practical
Mit einem Klatschen messen, wie lange ein Raum nachhallt
Das Profil room liest die Nachhallzeit pro Oktavband aus einem Klatschen, einem Ballonknall, einer Impulsantwort oder einem Sweep. Wie man es aufnimmt, wie man die Antwort liest und wie weit die Zahlen geprüft sind.
- Practical
Tonhöhe und Stimmqualität: was das Profil liefert und was es zurückhält
Das Profil pitch liest, wo eine Stimme liegt, wie stark sie sich bewegt, wie stimmhaft die Aufnahme ist und wie sauber die Stimme ist. Die Testzahlen, die Grenzen und warum Jitter und Shimmer noch nicht angeboten werden.
- Practical
Verlorene Pakete in einer Aufnahme finden
Das Profil chain zählt die Lücken aus digitaler Stille, die ein verlorenes Paket mitten in der Sprache hinterlässt. Wie es entscheidet, die Testzahlen, was es nicht sieht und das Echo- und Slapback-Maß.