@newgameplusinc/odyssey-audio-video-sdk-dev 1.0.310 → 1.0.311
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
|
@@ -257,7 +257,7 @@ class MLNoiseSuppressor {
|
|
|
257
257
|
// Temporal smoothing state — per-participant to avoid cross-participant corruption
|
|
258
258
|
// when multiple async computeGainsFromFeatures() calls run concurrently.
|
|
259
259
|
this.prevMaskMap = new Map();
|
|
260
|
-
this.SMOOTHING_ALPHA = 0.
|
|
260
|
+
this.SMOOTHING_ALPHA = 0.92;
|
|
261
261
|
// Mel filterbank cache (built once, reused every frame)
|
|
262
262
|
this.melFilterbank = null;
|
|
263
263
|
// ── Google Meet-style ring buffer architecture ─────────────────────────────
|
|
@@ -1021,12 +1021,13 @@ class MLNoiseSuppressor {
|
|
|
1021
1021
|
// gain=0.05 (noise) → sqrt → 0.22 (78% suppressed, not 95%)
|
|
1022
1022
|
// gain=0.0 (silent) → sqrt → 0.0 (still fully suppressed)
|
|
1023
1023
|
//
|
|
1024
|
-
//
|
|
1025
|
-
//
|
|
1024
|
+
// Use a conservative floor to reduce narrow deep notches that create
|
|
1025
|
+
// synthetic metallic/chirpy side-tones during speech.
|
|
1026
|
+
// This trades some max suppression for significantly better naturalness.
|
|
1026
1027
|
for (let k = 0; k < bins; k++) {
|
|
1027
1028
|
gains[k] = Math.sqrt(gains[k]);
|
|
1028
1029
|
if (filtTotal[k] > 1e-8) {
|
|
1029
|
-
gains[k] = Math.max(0.
|
|
1030
|
+
gains[k] = Math.max(0.22, gains[k]);
|
|
1030
1031
|
}
|
|
1031
1032
|
}
|
|
1032
1033
|
// ── Diagnostic: throttled log showing ML is actively processing ─────────
|
package/package.json
CHANGED