You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
PESQ value of my reproduced model(3 epoch) is only 2.0438 instead of 2.818 from Mr.Filippov's experiment.
I followed the steps of the provided code. But the function of calculating PESQ value can't run, so I modified it a little.
The PESQ value of testset itself is 1.9306. And after denoising by the model trained after 3 epoches, the PESQ is just 2.0438.
I'm so confused about where's the wrong. My PESQ calculation code is pasted below:
"
def metrics_score(mode, net, test_loader):
# Calculate mode: "Testset"/"TestModel",
# calculate the metrics of the noisy samples of testset OR valuate the performance of model
# if the function is in the "Testset" mode, pass anything you want to "net"
# Considered metrics: PESQ
print("Measuring Metrics for",mode)
if mode=="TestModel":
net.eval()
test_pesq = 0.
counter = 0.
for noisy_x, clean_x in tqdm(test_loader):
# get the output from the model
noisy_x = noisy_x.to(DEVICE)
clean_x = torch.squeeze(clean_x, 1)
clean_x = torch.istft(clean_x, n_fft=N_FFT, hop_length=HOP_LENGTH, normalized=True)
pesq_a = 0.
if mode=="Testset":
noisy_x = torch.squeeze(noisy_x, 1)
noisy_x = torch.istft(noisy_x, n_fft=N_FFT, hop_length=HOP_LENGTH, normalized=True)
for i in range(len(clean_x)): # speech may be in the form of [d,n] instead of [1,n]
clean_x_16 = down_sample(clean_x[i, :].view(1, -1), 48000, 16000)
noisy_x_16 = down_sample(noisy_x[i, :].view(1, -1), 48000, 16000)
clean_x_16 = clean_x_16.cpu().numpy().flatten()
noisy_x_16 = noisy_x_16.detach().cpu().numpy().flatten()
pesq_a += pesq.pesq(16000, clean_x_16, noisy_x_16, 'wb')
elif mode=="TestModel":
with torch.no_grad():
pred_x = net(noisy_x)
for i in range(len(clean_x)):
clean_x_16 = down_sample(clean_x[i, :].view(1, -1), 48000, 16000)
pred_x_16 = down_sample(pred_x[i, :].view(1, -1), 48000, 16000)
# I cannot run the Resample function below
# clean_x_16 = torchaudio.transforms.Resample(48000, 16000)(clean_x[i, :].view(1, -1))
# pred_x_16 = torchaudio.transforms.Resample(48000, 16000)(pred_x[i, :].view(1, -1))
clean_x_16 = clean_x_16.cpu().numpy().flatten()
pred_x_16 = pred_x_16.detach().cpu().numpy().flatten()
pesq_a += pesq.pesq(16000, clean_x_16, pred_x_16, 'wb')
pesq_a /= len(clean_x)
test_pesq += pesq_a
counter += 1
test_pesq /= counter
return test_pesq
"
The text was updated successfully, but these errors were encountered:
Hey, I'm working with this model right now. There is nothing ready to be published yet, but I found some problems in this implementation. But the thing that will fix the bad pesq is to use a right stft window: Here they use a rectangle window.
You can pass a better suited window like this:
PESQ value of my reproduced model(3 epoch) is only 2.0438 instead of 2.818 from Mr.Filippov's experiment.
I followed the steps of the provided code. But the function of calculating PESQ value can't run, so I modified it a little.
The PESQ value of testset itself is 1.9306. And after denoising by the model trained after 3 epoches, the PESQ is just 2.0438.
I'm so confused about where's the wrong. My PESQ calculation code is pasted below:
"
def metrics_score(mode, net, test_loader):
# Calculate mode: "Testset"/"TestModel",
# calculate the metrics of the noisy samples of testset OR valuate the performance of model
# if the function is in the "Testset" mode, pass anything you want to "net"
# Considered metrics: PESQ
print("Measuring Metrics for",mode)
if mode=="TestModel":
net.eval()
test_pesq = 0.
counter = 0.
"
The text was updated successfully, but these errors were encountered: