Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

关于不同生成snr带躁语音训练的问题 #34

Open
YongyuG opened this issue May 28, 2019 · 9 comments
Open

关于不同生成snr带躁语音训练的问题 #34

YongyuG opened this issue May 28, 2019 · 9 comments

Comments

@YongyuG
Copy link

YongyuG commented May 28, 2019

你好,感谢你们的工作,
我想请问一下,目前你们原始代码只能对一个固定信噪比的条件下进行训练和测试,
但是如果你论文所说,我们需要去解决对不同 SNR的语音进行增强, 所以我希望能用不同的snr的语音数据拿去训练得到一个比较general的模型. 之前也有类似的issue问过这个问题,只是我不太理解那个答案.

我的做法是在pack features那一步把之前生成的不同snr的mixture features集合起来到一个data.h5中去, 但问题是,这样在compute scaler的时候生成scaler.p文件会有问题,因为data.h5的信噪比不同了. 导致了在main_dnn.py里面训练时候scale data时会有问题, 请问你们是如何做的

谢谢

@qiuqiangkong
Copy link
Collaborator

qiuqiangkong commented May 28, 2019 via email

@YongyuG
Copy link
Author

YongyuG commented May 29, 2019

谢谢您的回复,
我这里有三个问题希望您能回复一下

  1. 我现在用不同SNR的训练数据去训练的思路是: 我在把feature放进去nn训练之前,在scale data之后把它们的数据和label concatenate在一起,这样的做法虽然暴力,但是应该是合理的吧?? 然后因为不同信噪比生成的scaler不一样的,我不明白的是训练可以根据不同信噪比去乘上相对应的scaler,但是在真实做inference的时候,不确定snr, 这个scalar该用哪个. 或者说我在训练时不管数据是0db, 5db或者10db的snr,我都让它全部乘上比如0dbsnr生成的scalar就行了,测试同理

  2. 我用aishell和musan的noise-free简单的训练了一版出来,但他们的train loss和test loss 太高了, 请问是我的数据不够多, noise类型覆盖的不够大吗, 如图所示
    2019-05-29 11-23-19 的屏幕截图
    因为我在另外一个项目用同样的干净数据和噪音类型, loss能降到3%左右, 只不过数据量会比我在sednn用的大很多

3.我想请问一下你们这个论文和代码的目的主要是提高asr的wer还是提高人耳的主观可懂度, 因为我发现模型增强语音后,或多或少会有些失真,wer并不会有很显著的提高

谢谢

你好,scalar的具体数值并不重要,只要训练和测试用的是同一个scalar,就可以。在很多应用场景中,我们也会用在别的数据上计算的scalar用在speech enhancement中。 Best wishes, Qiuqiang

________________________________ From: Yongyu Gao [email protected] Sent: 28 May 2019 10:10 To: yongxuUSTC/sednn Cc: Subscribed Subject: [yongxuUSTC/sednn] 关于不同生成snr带躁语音训练的问题 (#34) 你好,感谢你们的工作, 我想请问一下,目前你们原始代码只能对一个固定信噪比的条件下进行训练和测试, 但是如果你论文所说,我们需要去解决对不同 SNR的语音进行增强, 所以我希望能用不同的snr的语音数据拿去训练得到一个比较general的模型. 之前也有类似的issue问过这个问题,只是我不太理解那个答案. 我的做法是在pack features那一步把之前生成的不同snr的mixture features集合起来到一个data.h5中去, 但问题是,这样在compute scaler的时候生成scaler.p文件会有问题,因为data.h5的信噪比不同了. 导致了在main_dnn.py里面训练时候scale data时会有问题, 请问你们是如何做的 谢谢 ―

@qiuqiangkong
Copy link
Collaborator

qiuqiangkong commented May 29, 2019 via email

@YongyuG
Copy link
Author

YongyuG commented May 29, 2019

hi, 感谢回复,

  1. 我是不同snr的data与data concate, 然后label与labelconcate使之维度与data匹配, 目的是为了让nn输入覆盖不同snr

  2. 我用了1万多条得到这个loss, 有点奇怪, 你们之前训练的loss一般是多少%

  3. 你们尝试过对比asr的效果么

@qiuqiangkong
Copy link
Collaborator

qiuqiangkong commented May 29, 2019 via email

@YongyuG
Copy link
Author

YongyuG commented May 29, 2019

好的,谢谢,

@YongyuG
Copy link
Author

YongyuG commented May 30, 2019

不好意思,再请教一下
不同的snr有不同的scaler,我理解的scaler作用是用normalizatioin的,那么如果我train是对不同的snr的数据用scaler transfrom去训练的,我在做inference的时候该怎么选择scaler呢.

因为在现实场景下我无法知道 要进行增强的音频的snr, 我该如何做inference,如果选择用什么scaler呢

@qiuqiangkong
Copy link
Collaborator

qiuqiangkong commented May 31, 2019 via email

@YongyuG
Copy link
Author

YongyuG commented May 31, 2019

好的谢谢,
我看代码上计算scaler和inver scaler那里好像没有把global equalization也算上去,只有mean为0, 方差为1的 normalization. 换句话说, paper上的global equalization和nat都要自己开发然后实验对吧

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants