- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
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 ?
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
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
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 ?
Link Copied
2 Replies
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
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.
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
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
Can you let me know where can find the speech-codecUSC_NRsample . Is it in the IPP user manual. Thanks in advance,
chetan

Reply
Topic Options
- Subscribe to RSS Feed
- Mark Topic as New
- Mark Topic as Read
- Float this Topic for Current User
- Bookmark
- Subscribe
- Printer Friendly Page