Lines Matching refs:noise

46    I. Cohen and B. Berdugo, "Speech enhancement for non-stationary noise environments".
50 approach to combined acoustic echo cancellation and noise reduction". IEEE
207 spx_word32_t *noise; /**< Noise estimate */
217 int *update_prob; /**< Probability of speech presence for noise update */
316 /* Compute the gain floor based on different floors for the background noise and residual echo */
317 static void compute_gain_floor(int noise_suppress, int effective_echo_suppress, spx_word32_t *noise, spx_word32_t *echo, spx_word16_t *gain_floor, int len)
327 /* gain_floor = sqrt [ (noise*noise_floor + echo*echo_floor) / (noise+echo) ] */
330 spx_sqrt(SHL32(EXTEND32(DIV32_16_Q15(PSHR32(noise[i],NOISE_SHIFT) + MULT16_32_Q15(gain_ratio,echo[i]),
331 (1+PSHR32(noise[i],NOISE_SHIFT) + echo[i]) )),15)));
337 /* gain_floor = sqrt [ (noise*noise_floor + echo*echo_floor) / (noise+echo) ] */
340 spx_sqrt(SHL32(EXTEND32(DIV32_16_Q15(MULT16_32_Q15(gain_ratio,PSHR32(noise[i],NOISE_SHIFT)) + echo[i],
341 (1+PSHR32(noise[i],NOISE_SHIFT) + echo[i]) )),15)));
376 static void compute_gain_floor(int noise_suppress, int effective_echo_suppress, spx_word32_t *noise, spx_word32_t *echo, spx_word16_t *gain_floor, int len)
385 /* Compute the gain floor based on different floors for the background noise and residual echo */
387 gain_floor[i] = FRAC_SCALING*sqrt(noise_floor*PSHR32(noise[i],NOISE_SHIFT) + echo_floor*echo[i])/sqrt(1+PSHR32(noise[i],NOISE_SHIFT) + echo[i]);
449 st->noise = (spx_word32_t*)speex_alloc((N+M)*sizeof(spx_word32_t));
483 st->noise[i]=QCONST32(1.f,NOISE_SHIFT);
537 speex_free(st->noise);
774 /* Update the noise estimate for the frequencies where it can be */
777 if (!st->update_prob[i] || st->ps[i] < PSHR32(st->noise[i], NOISE_SHIFT))
778 st->noise[i] = MAX32(EXTEND32(0),MULT16_32_Q15(beta_1,st->noise[i]) + MULT16_32_Q15(beta,SHL32(st->ps[i],NOISE_SHIFT)));
780 filterbank_compute_bank32(st->bank, st->noise, st->noise+N);
792 /* Total noise estimate including residual echo and reverberation */
793 spx_word32_t tot_noise = ADD32(ADD32(ADD32(EXTEND32(1), PSHR32(st->noise[i],NOISE_SHIFT)) , st->echo_noise[i]) , st->reverb_estimate[i]);
795 /* A posteriori SNR = ps/noise - 1*/
799 /* Computing update gamma = .1 + .9*(old/(old+noise))^2 */
802 /* A priori SNR update = gamma*max(0,post) + (1-gamma)*old/noise */
825 compute_gain_floor(st->noise_suppress, effective_echo_suppress, st->noise+N, st->echo_noise+N, st->gain_floor+N, M);
932 /* If noise suppression is off, don't apply the gain (but then why call this in the first place!) */
1026 if (!st->update_prob[i] || st->ps[i] < PSHR32(st->noise[i],NOISE_SHIFT))
1028 st->noise[i] = MULT16_32_Q15(QCONST16(.95f,15),st->noise[i]) + MULT16_32_Q15(QCONST16(.05f,15),SHL32(st->ps[i],NOISE_SHIFT));
1188 ((spx_int32_t *)ptr)[i] = (spx_int32_t) PSHR32(st->noise[i], NOISE_SHIFT);