Home | History | Annotate | Download | only in libspeex

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
211 spx_word32_t *noise; /**< Noise estimate */
221 int *update_prob; /**< Probability of speech presence for noise update */
320 /* Compute the gain floor based on different floors for the background noise and residual echo */
321 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)
331 /* gain_floor = sqrt [ (noise*noise_floor + echo*echo_floor) / (noise+echo) ] */
334 spx_sqrt(SHL32(EXTEND32(DIV32_16_Q15(PSHR32(noise[i],NOISE_SHIFT) + MULT16_32_Q15(gain_ratio,echo[i]),
335 (1+PSHR32(noise[i],NOISE_SHIFT) + echo[i]) )),15)));
341 /* gain_floor = sqrt [ (noise*noise_floor + echo*echo_floor) / (noise+echo) ] */
344 spx_sqrt(SHL32(EXTEND32(DIV32_16_Q15(MULT16_32_Q15(gain_ratio,PSHR32(noise[i],NOISE_SHIFT)) + echo[i],
345 (1+PSHR32(noise[i],NOISE_SHIFT) + echo[i]) )),15)));
380 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)
389 /* Compute the gain floor based on different floors for the background noise and residual echo */
391 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]);
453 st->noise = (spx_word32_t*)speex_alloc((N+M)*sizeof(spx_word32_t));
487 st->noise[i]=QCONST32(1.f,NOISE_SHIFT);
541 speex_free(st->noise);
770 /* Noise estimation always updated for the 10 first frames */
778 /* Update the noise estimate for the frequencies where it can be */
781 if (!st->update_prob[i] || st->ps[i] < PSHR32(st->noise[i], NOISE_SHIFT))
782 st->noise[i] = MAX32(EXTEND32(0),MULT16_32_Q15(beta_1,st->noise[i]) + MULT16_32_Q15(beta,SHL32(st->ps[i],NOISE_SHIFT)));
784 filterbank_compute_bank32(st->bank, st->noise, st->noise+N);
796 /* Total noise estimate including residual echo and reverberation */
797 spx_word32_t tot_noise = ADD32(ADD32(ADD32(EXTEND32(1), PSHR32(st->noise[i],NOISE_SHIFT)) , st->echo_noise[i]) , st->reverb_estimate[i]);
799 /* A posteriori SNR = ps/noise - 1*/
803 /* Computing update gamma = .1 + .9*(old/(old+noise))^2 */
806 /* A priori SNR update = gamma*max(0,post) + (1-gamma)*old/noise */
829 compute_gain_floor(st->noise_suppress, effective_echo_suppress, st->noise+N, st->echo_noise+N, st->gain_floor+N, M);
936 /* If noise
1030 if (!st->update_prob[i] || st->ps[i] < PSHR32(st->noise[i],NOISE_SHIFT))
1032 st->noise[i] = MULT16_32_Q15(QCONST16(.95f,15),st->noise[i]) + MULT16_32_Q15(QCONST16(.05f,15),SHL32(st->ps[i],NOISE_SHIFT));
1193 ((spx_int32_t *)ptr)[i] = (spx_int32_t) PSHR32(st->noise[i], NOISE_SHIFT);