hyli666 / DNN-SpeechEnhancement

54 stars 27 forks source link

关于带噪数据生成的问题? #6

Open Huer-H opened 5 years ago

Huer-H commented 5 years ago

你好,hyli666. 最近看了一些论文,开始着手代码实践部分,您的genRawData_func.m代码中带噪数据总是生成不了,我用的数据集是NOISEX-92中的噪声数据,干净语音使用的是NOISE中的clean数据,不知道是不是我传入的数据的问题,这个genrawdata代码在调用addnoise时总会提示语音信号的长度大于噪声长度,我尝试修改了采样率以及数据长度(以补零的方式增加了噪声长度),运行之后又提示各种问题,索引维度什么的。如果是我传入数据的问题,希望您可以指出对输入数据的一些要求比如采样率或者信号长度。另外您可不可以将您的训练数据上传一部分。

期待您的回复————刚接触语音增强的小白

Huer-H commented 5 years ago

老师你好,还有一些问题需要您的帮助 1)之前的问题我修改了addnoise文件,生成了RawData数据,您可不可以帮忙看看修改效果跟您的一样吗?(尽管都是生成了带噪信号) function [ signalmix, noise ] = addnoise( signal, noise, snr ) signal = signal(:);
signal=signal-mean(signal);
noise = noise(:);
noise=noise-mean(noise);

S = length( signal );
N = length( noise );
if N>=S   
    noisefinal = noise(1:S);
else

% disp( 'Error: length(signal)>length(noise)' ); noisefinal = [noise;(zeros(S-N,1))]; end Sr = snr; Es = sum(noisefinal.noisefinal); Ev = sum(signal.signal); a = sqrt(Ev/Es/(10^(Sr/10))); noise = a * noisefinal; signalmix = signal+noise; 2)在生成的rawdata中您的label包含两部分信息一个是干净信号的lps还有是noise的lps,这一点和徐老师的论文不贴切。另外您可以解释下您的rawdata中的nat是什么数据吗?

希望得到您的帮助! 谢谢

hyli666 commented 5 years ago

你好! (1)关于噪声信号长度大于语音信号长度:我用的是Noise92的噪声,大概一个信号有3~4分钟,timit语料的语音信号大概一个5s左右,所以在我的数据里肯定是噪声长度更大。这个条件下,我们才能在噪声里随机选取某个片段加在语音里呀。你用的语音信号太长了?如果噪声长度补零到语音长度一样的话,同样的噪声种类每次加的噪声都是一样的了,这是不可以的吧。。。 (2)徐老师论文里是回归到干净信号的lps,只需要干净的LPS就好了。纯noise的lps是为了计算IRM的,当时为了比较纯LPS和IRM哪个效果好所以都保存下来了。NAT就是noise aware training,在论文里有讲。表示每段带噪语音信号开始前几秒的噪声功率谱。

hyli666 commented 5 years ago

@JH2018-20 ”干净语音用的是NOISE中的clean数据“ 我不知道那是啥数据诶,原论文用的是timit数据,我用的也是