fix(denoise): DeepFilterNet attenuation limit 60 -> 25 dB
CI / Build embedded bundle (push) Skipped
CI / Build embedded bundle (pull_request) Successful in 8m5s
CI / Publish to Gitea npm registry (pull_request) Skipped

At 60 dB the background is muted outright (measured -61 to -64 dB), so
each word drops into dead silence and listeners hear the mic cutting out
at word ends. On room-echo speech (RT60 ~0.4 s) with fan and keyboard
noise at SNR 15 dB, 25 dB scored best:

  limit  PESQ clean/fan/keyboard   noise removed
  60     3.35 / 2.33 / 2.04        ~62 dB
  40     3.41 / 2.45 / 2.21        32-40 dB
  25     3.59 / 2.72 / 2.38        25 dB
  20     3.63 / 2.66 / 2.25        20 dB

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_017PCb59uY3UKqDqt7B6hzd5
This commit is contained in:
Lotus CI
2026-10-30 18:50:06 -04:00
co-authored by Claude Opus 5.5
parent 4ca3b0695c
commit f180f76196
+6 -4
View File
@@ -207,10 +207,12 @@ async function loadDfnCore(config: LotusDenoiseConfig): Promise<DfnCore> {
);
const core = new mod.DeepFilterNet3Core({
sampleRate: 48_000,
// 60, not 80: full-strength suppression is the main source of the
// "over-processed" character; a lower level keeps voice natural while
// the dry/wet floor handles the noise tail.
noiseReductionLevel: 60,
// Attenuation limit in dB. At 60 the background is muted outright
// (measured -61 to -64 dB), so every word drops into dead silence and
// listeners hear the mic "cutting out" at word ends. 25 keeps a quiet
// background bed and scored best on room-echo speech with fan and
// keyboard noise (PESQ 2.72 / 2.38 vs 2.33 / 2.04 at 60).
noiseReductionLevel: 25,
assetConfig: { cdnUrl: dfnBase },
});
await core.initialize();