修块间台阶残留: 归一化增益改块内逐样本线性插值(zipper 噪声); 谐波(相对基频) +0/+6dB 由 -12.1/-15.9 降到 -90.1/-70.6 dB; 调试用的测试脚本收进 测试/, 清理全部调试残留

This commit is contained in:
lou
2026-09-19 19:22:48 +08:00
parent a81adb616b
commit 38ae1fa22e
12 changed files with 942 additions and 1 deletions
+5 -1
View File
@@ -181,6 +181,7 @@ def main() -> None:
# 平滑状态
energy_smooth = 0.0
gain_db = 0.0
g_prev = 1.0 # 上一块末尾的线性增益(块间斜坡用)
_n: int = 0
block_seconds = BLOCK / 4.0 / RATE # 每块时长(单声道 float32)
@@ -286,7 +287,10 @@ def main() -> None:
gain_db = 20.0 * math.log10(g + EPS) # 状态跟随, 下块再按限速恢复
# ---- 6) 施加增益 ----
y = x * g
# 块内逐样本线性过渡: 整块共用一个增益会在块边界留下台阶(zipper 噪声),
# 表现为中低频的微弱谐波。用"上一块增益 -> 本块增益"的斜坡把它抹平。
y = x * np.linspace(g_prev, g, x.size, dtype=np.float64)
g_prev = g
if fade_left > 0: # 起播淡入: 线性爬升, 压掉卷积过冲
y = y * ((FADE_BLOCKS - fade_left + 1) / float(FADE_BLOCKS))
fade_left -= 1