From: Jean-Marc Valin Date: Sat, 22 Jul 2017 21:38:27 +0000 (-0400) Subject: more input and output features X-Git-Tag: v0~75 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=b451566a0fdace4f126f78bf65881a224d238878;p=platform%2Fupstream%2Frnnoise.git more input and output features --- diff --git a/src/denoise.c b/src/denoise.c index e7295fd..183756a 100644 --- a/src/denoise.c +++ b/src/denoise.c @@ -22,7 +22,9 @@ #endif #define CEPS_MEM 8 -#define NB_FEATURES (NB_BANDS+1) +#define NB_DELTA_CEPS 6 + +#define NB_FEATURES (NB_BANDS+2*NB_DELTA_CEPS+1) static const opus_int16 eband5ms[] = { /*0 200 400 600 800 1k 1.2 1.4 1.6 2k 2.4 2.8 3.2 4k 4.8 5.6 6.8 8k 9.6 12k 15.6 20k*/ @@ -226,15 +228,24 @@ static void frame_analysis(DenoiseState *st, kiss_fft_cpx *y, float *Ey, float * if (Ey != NULL) { compute_band_energy(Ey, y); if (features != NULL) { + float *ceps_0, *ceps_1, *ceps_2; float spec_variability = 0; float Ly[NB_BANDS]; for (i=0;icepstral_mem[st->memid][i] = features[i]; + ceps_0 = st->cepstral_mem[st->memid]; + ceps_1 = (st->memid < 1) ? st->cepstral_mem[CEPS_MEM+st->memid-1] : st->cepstral_mem[st->memid-1]; + ceps_2 = (st->memid < 2) ? st->cepstral_mem[CEPS_MEM+st->memid-2] : st->cepstral_mem[st->memid-2]; + for (i=0;imemid++; + for (i=0;imemid == CEPS_MEM) st->memid = 0; for (i=0;i 1e9f) { + vad_cnt=0; + } else if (E > 1e8f) { + vad_cnt -= 5; + if (vad_cnt < 0) vad_cnt = 0; + } else { + vad_cnt++; + if (vad_cnt > 15) vad_cnt = 15; + } + if (vad_cnt >= 10) vad = 0; + else if (vad_cnt > 0) vad = 0.5f; + else vad = 1.f; frame_analysis(st, X, Ex, NULL, x); + frame_analysis(st, N, En, NULL, n); frame_analysis(noisy, Y, Ey, features, xn); for (i=0;i