/docs · VoiceLab · Deep
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.
Aktualisiert 27.09.2026
RT60 verlangt ein bekanntes Signal im Raum. Das geht bei einer Aufnahme, die jemand schon gemacht hat, nicht. Für Sprach-QA haben wir deshalb einen günstigen Schätzer gebaut: messen, wie viel Energie direkt nach dem Ende jeder Phrase noch steht, im Verhältnis zur Phrase selbst. Ein lebendiger Raum klingt nach, ein bedämpfter nicht.
Am 27. September 2026 haben wir diesen Schätzer gegen Räume geprüft, deren Nachhallzeit tatsächlich gemessen wurde. Er fiel durch. Diese Seite ist die Messung, die Prüfung und was wir geändert haben, denn ein nachrechenbares negatives Ergebnis ist mehr wert als eine Schwellentabelle, die sich gut liest.
Die Messung
Die Übergänge von Sprache zu Stille mit einem einfachen Energie-Gate finden und danach die Hüllkurve im Ausklang gegen den Pegel am Übergang lesen.
function decayRatio(envelope, mask, hopSec) {
const decays = [];
for (let i = 1; i < mask.length - 30; i++) {
if (mask[i - 1] && !mask[i]) {
const peak = envelope[i - 1];
if (peak < 1e-5) continue;
const window = Math.min(30, Math.floor(0.6 / hopSec));
let tail = 0;
for (let k = 0; k < window; k++) tail += envelope[i + k];
tail /= window;
decays.push(tail / peak);
}
}
return decays.reduce((a, b) => a + b, 0) / decays.length;
}
Am Code ist nichts falsch. Das Problem ist, was die Zahl bedeuten sollte.
Wogegen wir geprüft haben
- Echte Räume, ohne zugefügtes Rauschen. Fünf saubere Sätze durch 24 gemessene Impulsantworten, mit Nachhallzeiten von 0,18 bis 1,71 s.
- Rauschen mit und ohne Hall. 1.280 Aufnahmen, vier Umgebungen, Signal-Rausch-Abstände von 20, 10, 5 und 0 dB, jeweils mit und ohne 0,5 s Hall.
- Ein Nachbau, der über alle 1.760 Dateien um 0,0000 von der Engine abwich, damit das Ergebnis für den ausgelieferten Code gilt und nicht für eine Annäherung.
Was die Zahlen sagten
| Frage | Anforderung | Ergebnis |
|---|---|---|
| Folgt er der gemessenen RT60 echter Räume? (Spearman) | 0,70 oder besser | 0,06 |
| Trennt er Hall von trocken bei 20 dB SNR? (AUC) | 0,75 oder besser | 0,52 |
| Dieselbe Frage bei 10 dB SNR | 0,75 oder besser | 0,55 |
| Bleibt er von Rauschen allein unbewegt? (AUC) | zwischen 0,35 und 0,65 | 0,68 |
Eine AUC von 0,5 ist Münzwurf. Die deutlichste Einzelzahl: ein Raum mit 1,71 s Nachhall kam auf 0,175, eine Kabine mit 0,18 s auf 0,186. Der hallige Raum lag also unter der Kabine.
Das Einzige, was die Messung zuverlässig tut, ist mit Hintergrundrauschen zu steigen. Das ist genau das falsche Verhalten für etwas, das “Raum” heißt.
Warum er durchfällt
Drei Gründe, jeder für sich behebbar und zusammen nicht genug:
- Der Rauschboden ist das 10. Perzentil der ganzen Datei. Bei wechselndem Hintergrund liegt das Rauschen in einer Pause deutlich darüber, und die Differenz wird als Ausklang gezählt.
- Es wird nicht geprüft, ob der Ausklang noch in der Pause liegt. Das Fenster läuft von 60 bis 420 ms nach dem Phrasenende, und nachdem kurze Lücken geschlossen wurden, sind viele Pausen kürzer. Dann misst er den Anfang des nächsten Wortes.
- Die Skala stimmt auch ohne diese zwei nicht. Eine echte RT60 von 0,5 s ergibt theoretisch ein Verhältnis von etwa 0,09, und das liegt unter der Grenze von 0,15, die “Dry” bedeutete. Mittlerer Hall hieß damit immer trocken.
Mit 20 ms Schrittweite und den Sprüngen der Sprache selbst ist der Abfall nach einer Phrase zu grob, um Hall daraus zu lesen. Das ist eine Forschungsfrage, keine kleine Reparatur.
Was sich am 27. September 2026 geändert hat
- Das Label
Dry/Tight/Live/Reverberantist aus der Engine-Ausgabe verschwunden, nicht auf einen Standardwert gesetzt. Ein Feld, das immer leer ist, ist keine Messung zum Ausliefern. - Die Klartext-Karte mit dem Rat, den Raum zu bedämpfen, ist weg, ebenso der Abzug, den diese Zahl in der Verständlichkeitsbewertung verursachte. Dieser Abzug bestrafte eine rauschige Aufnahme zweimal.
- Die Zahl bleibt, unter dem Namen dessen, was sie misst: Energie in den Pausen nach Sprache, Rauschen oder Hall, und sie trennt die beiden nicht. Lesen Sie sie als “wie viel steht noch in den Lücken”, niemals als Urteil über den Raum.
- In der API und im MCP-Server heißt das Feld weiterhin
roomEchoScore. Ein veröffentlichtes Feld umzubenennen bricht gespeicherte Verläufe und bestehende Anbindungen, das ist also eine eigene Entscheidung und nicht Teil dieser Korrektur. Die Beschreibung sagt, was gemessen wird.
Was die Frage wirklich beantworten würde
Wer eine Hallzahl aus einer Aufnahme allein braucht, hat zwei ehrliche Kandidaten: ein Maß auf dem Modulationsspektrum wie SRMR, oder ein kleines Modell, trainiert auf gemessenen Impulsantworten. Beide lassen sich gegen dieselben 24 Räume prüfen.
Die Regel, die wir uns gesetzt haben: ein neues Maß darf erst Hall heißen, wenn es diese Prüfung besteht. Bis dahin bekommt es einen Namen, der die Rechnung beschreibt.
Weiterlesen
- Mit einem Klatschen messen, wie lange ein Raum nachhallt: das Profil, das Nachhall wirklich misst, aus einem Klatschen, einem Knall, einer Impulsantwort oder einem Sweep
- Pragmatische Lautheit für Podcasts
- Hörunterstützung entwerfen, ohne zu medikalisieren
Weiter in VoiceLab docs
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.
More in VoiceLab docs
- 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
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ß.