NKF-AEC icon indicating copy to clipboard operation
NKF-AEC copied to clipboard

在ICASSP 2021 AEC Challenge blind_test_set clean的测试结果与论文不一致

Open SherryYu33 opened this issue 1 year ago • 5 comments

您好

我使用您的checkpoint在ICASSP 2021 AEC Challenge blind_test_set clean上验证,没有取得相同的得分

ICASSP 2021 AEC Challenge blind_test_set clean: https://github.com/microsoft/AEC-Challenge/tree/20274d3a85f752d3fa41ed8e8915e73a5e39b7ff/datasets/blind_test_set/clean

AECMOS: https://github.com/microsoft/AEC-Challenge/blob/main/AECMOS/AECMOS_local/Run_1663915512_Stage_0.onnx

echo score: 3.32 degradation score: 3.10

SherryYu33 avatar Nov 28 '23 07:11 SherryYu33

@SherryYu33 请问是否进行了信号对齐?

fjiang9 avatar Nov 28 '23 08:11 fjiang9

使用了如下的gcc_phat:

def gcc_phat(sig, refsig, fs=16000, max_tau=None, interp=1): if torch.is_tensor(sig): sig = sig.numpy() if torch.is_tensor(refsig): refsig = refsig.numpy()

n = sig.shape[0] + refsig.shape[0] SIG = np.fft.rfft(sig, n=n) REFSIG = np.fft.rfft(refsig, n=n) R = SIG * np.conj(REFSIG) cc = np.fft.irfft(R / (np.abs(R)+1e-15), n=(interp * n)) max_shift = int(interp * n / 2) if max_tau: max_shift = np.minimum(int(interp * fs * max_tau), max_shift) cc = np.concatenate((cc[-max_shift:], cc[:max_shift + 1])) shift = np.argmax(np.abs(cc)) - max_shift tau = shift / float(interp * fs) return tau

for X, e in self.dataloader_dt: X = X.numpy() e = e.numpy() min_len = np.min([len(X[0, :]), len(e[0, :])]) X = X[0, :min_len] e = e[0, :min_len] tau = gcc_phat(X, e) tau = max(0, int(tau*16000)) e = np.concatenate([np.zeros(tau, ), e])[:len(X)]

SherryYu33 avatar Nov 28 '23 11:11 SherryYu33

@SherryYu33 X和e分别代表什么?

fjiang9 avatar Nov 29 '23 10:11 fjiang9

x指麦克风信号,e指参考信号

SherryYu33 avatar Nov 30 '23 01:11 SherryYu33

@SherryYu33 上个月比较忙没来得及看,现在问题解决了吗?

fjiang9 avatar Jan 02 '24 09:01 fjiang9