Intel® Integrated Performance Primitives
Deliberate problems developing high-performance vision, signal, security, and storage applications.
6709 Discussions

weird output from last step while using ippsUpdateNoisePSDMCRA_32f_I while designing eprahim noise suppressor.

tiet_cd
Beginner
243 Views
I was trying to implement the noise suppressor with a code of
IppStatus Ipp ;
int nSamplesPerSec = 16000 ;
int nFFTSize = 1024 ;
IppMCRAState32f * pDst = NULL ;
double input_float[1024] ;
int nUpdateSamples = 512 ;
for ( k = 0 ; k < 1024 ; k++ )
input_float = input * Window ;
double freq = (Smax - Smin)*44.1/2048;
CalculateFFT(input_float, output, m_pdFFTMat);
int *pDstSize ;
Ipp32f* pSrcDstNoisePSD ;
pSrcDstNoisePSD = new Ipp32f[1024] ;
pDstSize = new int ;
Ipp32f *output_ipp ;//[1024] = output ;
output_ipp = new Ipp32f[1024] ;
for ( k = 0 ; k < 1024 ; k++ )
output_ipp = output ;

Ipp = ippsGetSizeMCRA_32f( nFFTSize, pDstSize);
pDst = (IppMCRAState32f*) malloc(*pDstSize);
Ipp = ippsInitMCRA_32f(nSamplesPerSec, nFFTSize, pDst);
Ipp = ippsAltInitMCRA_32f(nSamplesPerSec, nFFTSize, nUpdateSamples, pDst);
Ipp = ippsUpdateNoisePSDMCRA_32f_I(/*const Ipp32f* pSrcNoisySpeech*/output_ipp,/*IppMCRAState32f*/ pDst, /*Ipp32f*/ pSrcDstNoisePSD);

The output from the last state pSrcDstNoisePSD is coming out to be same as output_ipp. Is this correct in every case ?? . Has anybody implemented this in IPP ?


0 Kudos
2 Replies
Vyacheslav_Baranniko
New Contributor II
243 Views

Hi there,

Basically,you missed spectral subtractionfrom noisy speech PSD. I would recommend you to look at speech-codecUSC_NRsample, which demonstrates usage model ofMCRA noise suppressor, though it is integer version.A sample use of the floating point MCRA isnot provided in IPP so far, though it should beimplemented very similar.

Vyacheslav, IPP, speech-coding domain.

0 Kudos
tiet_cd
Beginner
243 Views
hi Vyacheslav ,
Can you let me know where can find the speech-codecUSC_NRsample . Is it in the IPP user manual. Thanks in advance,

chetan
0 Kudos
Reply