fix(qwen): add fade-in/out to dialogue segments to prevent audio clicks

This commit is contained in:
Hawk Lee
2026-02-04 19:48:12 +08:00
parent 0859752cc9
commit aa601cdeb0
2 changed files with 18 additions and 0 deletions
+9
View File
@@ -344,6 +344,15 @@ class AIIA_Dialogue_TTS:
if wav.ndim == 3: wav = wav.squeeze(0)
if wav.ndim == 1: wav = wav.unsqueeze(0)
# AIIA Fix: Apply tiny fade-in/out to prevent clicks at boundaries
fade_len = int(sr * 0.05) # 50ms fade
if wav.shape[-1] > fade_len * 2:
fade_in = torch.linspace(0, 1, fade_len, device=wav.device)
fade_out = torch.linspace(1, 0, fade_len, device=wav.device)
wav[..., :fade_len] *= fade_in
wav[..., -fade_len:] *= fade_out
current_full_wav.append(wav)
# --- Timestamp Tracking ---
+9
View File
@@ -756,6 +756,15 @@ class AIIA_Qwen_Dialogue_TTS:
wav = torchaudio.transforms.Resample(sr, sample_rate)(wav)
wav_data = wav.squeeze(0) # [C, T]
# AIIA Fix: Apply tiny fade-in/out to prevent clicks at boundaries
fade_len = int(sample_rate * 0.05) # 50ms fade
if wav_data.shape[-1] > fade_len * 2:
fade_in = torch.linspace(0, 1, fade_len, device=wav_data.device)
fade_out = torch.linspace(1, 0, fade_len, device=wav_data.device)
wav_data[..., :fade_len] *= fade_in
wav_data[..., -fade_len:] *= fade_out
full_waveform.append(wav_data)
# Timestamp Interpolation