diff options
author | Jean-Marc Valin <jmvalin@jmvalin.ca> | 2017-07-29 00:17:11 +0300 |
---|---|---|
committer | Jean-Marc Valin <jmvalin@jmvalin.ca> | 2017-07-29 00:17:11 +0300 |
commit | f0e9c5e03d97a3307469c1b5666c2f6d84e5bb2e (patch) | |
tree | 4235954c140ec54f6193570ddc529f849de56242 /src | |
parent | 60789762cebd5f719aa3660465794cac6534dc02 (diff) |
randomize gain
Diffstat (limited to 'src')
-rw-r--r-- | src/denoise.c | 13 |
1 files changed, 11 insertions, 2 deletions
diff --git a/src/denoise.c b/src/denoise.c index 7ea5c36..9be6532 100644 --- a/src/denoise.c +++ b/src/denoise.c @@ -363,6 +363,8 @@ int main(int argc, char **argv) { float n[FRAME_SIZE]; float xn[FRAME_SIZE]; int vad_cnt=0; + int gain_change_count=0; + float speech_gain = 1, noise_gain = 1; FILE *f1, *f2, *fout; DenoiseState *st; DenoiseState *noise_state; @@ -391,12 +393,19 @@ int main(int argc, char **argv) { short tmp[FRAME_SIZE]; float vad=0; float E=0; + if (++gain_change_count > 101*300) { + speech_gain = pow(10., (-30+(rand()%40))/20.); + noise_gain = pow(10., (-30+(rand()%40))/20.); + if (rand()%10==0) noise_gain = 0; + noise_gain *= speech_gain; + gain_change_count = 0; + } fread(tmp, sizeof(short), FRAME_SIZE, f1); if (feof(f1)) break; - for (i=0;i<FRAME_SIZE;i++) x[i] = tmp[i]; + for (i=0;i<FRAME_SIZE;i++) x[i] = speech_gain*tmp[i]; fread(tmp, sizeof(short), FRAME_SIZE, f2); if (feof(f2)) break; - for (i=0;i<FRAME_SIZE;i++) n[i] = tmp[i]; + for (i=0;i<FRAME_SIZE;i++) n[i] = noise_gain*tmp[i]; for (i=0;i<FRAME_SIZE;i++) xn[i] = x[i] + n[i]; for (i=0;i<FRAME_SIZE;i++) E += x[i]*(float)x[i]; if (E > 1e9f) { |