Remove developing code in ns_core
This defines were hardcoded and the code inside of the ifdefs was never used. BUG=webrtc:3763 R=bjornv@webrtc.org Review URL: https://webrtc-codereview.appspot.com/24559004 git-svn-id: http://webrtc.googlecode.com/svn/trunk@7153 4adac7df-926f-26a2-2b94-8c16560cd09d
This commit is contained in:
parent
f5bdd54ac3
commit
4b049fcabe
@ -11,10 +11,6 @@
|
|||||||
#ifndef WEBRTC_MODULES_AUDIO_PROCESSING_NS_MAIN_SOURCE_DEFINES_H_
|
#ifndef WEBRTC_MODULES_AUDIO_PROCESSING_NS_MAIN_SOURCE_DEFINES_H_
|
||||||
#define WEBRTC_MODULES_AUDIO_PROCESSING_NS_MAIN_SOURCE_DEFINES_H_
|
#define WEBRTC_MODULES_AUDIO_PROCESSING_NS_MAIN_SOURCE_DEFINES_H_
|
||||||
|
|
||||||
//#define PROCESS_FLOW_0 // Use the traditional method.
|
|
||||||
//#define PROCESS_FLOW_1 // Use traditional with DD estimate of prior SNR.
|
|
||||||
#define PROCESS_FLOW_2 // Use the new method of speech/noise classification.
|
|
||||||
|
|
||||||
#define BLOCKL_MAX 160 // max processing block length: 160
|
#define BLOCKL_MAX 160 // max processing block length: 160
|
||||||
#define ANAL_BLOCKL_MAX 256 // max analysis block length: 256
|
#define ANAL_BLOCKL_MAX 256 // max analysis block length: 256
|
||||||
#define HALF_ANAL_BLOCKL 129 // half max analysis block length + 1
|
#define HALF_ANAL_BLOCKL 129 // half max analysis block length + 1
|
||||||
@ -27,7 +23,6 @@
|
|||||||
#define FACTOR (float)40.0
|
#define FACTOR (float)40.0
|
||||||
#define WIDTH (float)0.01
|
#define WIDTH (float)0.01
|
||||||
|
|
||||||
#define SMOOTH (float)0.75 // filter smoothing
|
|
||||||
// Length of fft work arrays.
|
// Length of fft work arrays.
|
||||||
#define IP_LENGTH (ANAL_BLOCKL_MAX >> 1) // must be at least ceil(2 + sqrt(ANAL_BLOCKL_MAX/2))
|
#define IP_LENGTH (ANAL_BLOCKL_MAX >> 1) // must be at least ceil(2 + sqrt(ANAL_BLOCKL_MAX/2))
|
||||||
#define W_LENGTH (ANAL_BLOCKL_MAX >> 1)
|
#define W_LENGTH (ANAL_BLOCKL_MAX >> 1)
|
||||||
|
@ -38,7 +38,7 @@ void WebRtcNs_set_feature_extraction_parameters(NSinst_t* inst) {
|
|||||||
inst->featureExtractionParams.thresPosSpecFlat = (float)0.6;
|
inst->featureExtractionParams.thresPosSpecFlat = (float)0.6;
|
||||||
|
|
||||||
//limit on spacing of two highest peaks in histogram: spacing determined by bin size
|
//limit on spacing of two highest peaks in histogram: spacing determined by bin size
|
||||||
inst->featureExtractionParams.limitPeakSpacingSpecFlat =
|
inst->featureExtractionParams.limitPeakSpacingSpecFlat =
|
||||||
2 * inst->featureExtractionParams.binSizeSpecFlat;
|
2 * inst->featureExtractionParams.binSizeSpecFlat;
|
||||||
inst->featureExtractionParams.limitPeakSpacingSpecDiff =
|
inst->featureExtractionParams.limitPeakSpacingSpecDiff =
|
||||||
2 * inst->featureExtractionParams.binSizeSpecDiff;
|
2 * inst->featureExtractionParams.binSizeSpecDiff;
|
||||||
@ -676,7 +676,7 @@ void WebRtcNs_SpeechNoiseProb(NSinst_t* inst, float* probSpeechFinal, float* snr
|
|||||||
widthPrior = widthPrior1;
|
widthPrior = widthPrior1;
|
||||||
}
|
}
|
||||||
// compute indicator function: sigmoid map
|
// compute indicator function: sigmoid map
|
||||||
indicator1 = (float)0.5 * ((float)tanh((float)sgnMap *
|
indicator1 = (float)0.5 * ((float)tanh((float)sgnMap *
|
||||||
widthPrior * (threshPrior1 - tmpFloat1)) + (float)1.0);
|
widthPrior * (threshPrior1 - tmpFloat1)) + (float)1.0);
|
||||||
|
|
||||||
//for template spectrum-difference
|
//for template spectrum-difference
|
||||||
@ -848,7 +848,7 @@ int WebRtcNs_ProcessCore(NSinst_t* inst,
|
|||||||
imag[inst->magnLen - 1] = 0;
|
imag[inst->magnLen - 1] = 0;
|
||||||
real[inst->magnLen - 1] = winData[1];
|
real[inst->magnLen - 1] = winData[1];
|
||||||
magn[inst->magnLen - 1] = (float)(fabs(real[inst->magnLen - 1]) + 1.0f);
|
magn[inst->magnLen - 1] = (float)(fabs(real[inst->magnLen - 1]) + 1.0f);
|
||||||
signalEnergy = (float)(real[0] * real[0]) +
|
signalEnergy = (float)(real[0] * real[0]) +
|
||||||
(float)(real[inst->magnLen - 1] * real[inst->magnLen - 1]);
|
(float)(real[inst->magnLen - 1] * real[inst->magnLen - 1]);
|
||||||
sumMagn = magn[0] + magn[inst->magnLen - 1];
|
sumMagn = magn[0] + magn[inst->magnLen - 1];
|
||||||
if (inst->blockInd < END_STARTUP_SHORT) {
|
if (inst->blockInd < END_STARTUP_SHORT) {
|
||||||
@ -950,18 +950,6 @@ int WebRtcNs_ProcessCore(NSinst_t* inst,
|
|||||||
inst->featureData[5] /= (inst->blockInd + 1);
|
inst->featureData[5] /= (inst->blockInd + 1);
|
||||||
}
|
}
|
||||||
|
|
||||||
#ifdef PROCESS_FLOW_0
|
|
||||||
if (inst->blockInd > END_STARTUP_LONG) {
|
|
||||||
//option: average the quantile noise: for check with AEC2
|
|
||||||
for (i = 0; i < inst->magnLen; i++) {
|
|
||||||
noise[i] = (float)0.6 * inst->noisePrev[i] + (float)0.4 * noise[i];
|
|
||||||
}
|
|
||||||
for (i = 0; i < inst->magnLen; i++) {
|
|
||||||
// Wiener with over sub-substraction:
|
|
||||||
theFilter[i] = (magn[i] - inst->overdrive * noise[i]) / (magn[i] + (float)0.0001);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
#else
|
|
||||||
//start processing at frames == converged+1
|
//start processing at frames == converged+1
|
||||||
//
|
//
|
||||||
// STEP 1: compute prior and post snr based on quantile noise est
|
// STEP 1: compute prior and post snr based on quantile noise est
|
||||||
@ -984,20 +972,11 @@ int WebRtcNs_ProcessCore(NSinst_t* inst,
|
|||||||
* snrLocPost[i];
|
* snrLocPost[i];
|
||||||
// post and prior snr needed for step 2
|
// post and prior snr needed for step 2
|
||||||
} // end of loop over freqs
|
} // end of loop over freqs
|
||||||
#ifdef PROCESS_FLOW_1
|
|
||||||
for (i = 0; i < inst->magnLen; i++) {
|
|
||||||
// gain filter
|
|
||||||
tmpFloat1 = inst->overdrive + snrLocPrior[i];
|
|
||||||
tmpFloat2 = (float)snrLocPrior[i] / tmpFloat1;
|
|
||||||
theFilter[i] = (float)tmpFloat2;
|
|
||||||
} // end of loop over freqs
|
|
||||||
#endif
|
|
||||||
// done with step 1: dd computation of prior and post snr
|
// done with step 1: dd computation of prior and post snr
|
||||||
|
|
||||||
//
|
//
|
||||||
//STEP 2: compute speech/noise likelihood
|
//STEP 2: compute speech/noise likelihood
|
||||||
//
|
//
|
||||||
#ifdef PROCESS_FLOW_2
|
|
||||||
// compute difference of input spectrum with learned/estimated noise spectrum
|
// compute difference of input spectrum with learned/estimated noise spectrum
|
||||||
WebRtcNs_ComputeSpectralDifference(inst, magn);
|
WebRtcNs_ComputeSpectralDifference(inst, magn);
|
||||||
// compute histograms for parameter decisions (thresholds and weights for features)
|
// compute histograms for parameter decisions (thresholds and weights for features)
|
||||||
@ -1084,8 +1063,6 @@ int WebRtcNs_ProcessCore(NSinst_t* inst,
|
|||||||
theFilter[i] = (float)tmpFloat2;
|
theFilter[i] = (float)tmpFloat2;
|
||||||
} // end of loop over freqs
|
} // end of loop over freqs
|
||||||
// done with step3
|
// done with step3
|
||||||
#endif
|
|
||||||
#endif
|
|
||||||
|
|
||||||
for (i = 0; i < inst->magnLen; i++) {
|
for (i = 0; i < inst->magnLen; i++) {
|
||||||
// flooring bottom
|
// flooring bottom
|
||||||
@ -1112,12 +1089,7 @@ int WebRtcNs_ProcessCore(NSinst_t* inst,
|
|||||||
theFilter[i] /= (END_STARTUP_SHORT);
|
theFilter[i] /= (END_STARTUP_SHORT);
|
||||||
}
|
}
|
||||||
// smoothing
|
// smoothing
|
||||||
#ifdef PROCESS_FLOW_0
|
|
||||||
inst->smooth[i] *= SMOOTH; // value set to 0.7 in define.h file
|
|
||||||
inst->smooth[i] += ((float)1.0 - SMOOTH) * theFilter[i];
|
|
||||||
#else
|
|
||||||
inst->smooth[i] = theFilter[i];
|
inst->smooth[i] = theFilter[i];
|
||||||
#endif
|
|
||||||
real[i] *= inst->smooth[i];
|
real[i] *= inst->smooth[i];
|
||||||
imag[i] *= inst->smooth[i];
|
imag[i] *= inst->smooth[i];
|
||||||
}
|
}
|
||||||
@ -1151,7 +1123,6 @@ int WebRtcNs_ProcessCore(NSinst_t* inst,
|
|||||||
}
|
}
|
||||||
gain = (float)sqrt(energy2 / (energy1 + (float)1.0));
|
gain = (float)sqrt(energy2 / (energy1 + (float)1.0));
|
||||||
|
|
||||||
#ifdef PROCESS_FLOW_2
|
|
||||||
// scaling for new version
|
// scaling for new version
|
||||||
if (gain > B_LIM) {
|
if (gain > B_LIM) {
|
||||||
factor1 = (float)1.0 + (float)1.3 * (gain - B_LIM);
|
factor1 = (float)1.0 + (float)1.3 * (gain - B_LIM);
|
||||||
@ -1171,16 +1142,6 @@ int WebRtcNs_ProcessCore(NSinst_t* inst,
|
|||||||
// note prior (priorSpeechProb) is not frequency dependent
|
// note prior (priorSpeechProb) is not frequency dependent
|
||||||
factor = inst->priorSpeechProb * factor1 + ((float)1.0 - inst->priorSpeechProb)
|
factor = inst->priorSpeechProb * factor1 + ((float)1.0 - inst->priorSpeechProb)
|
||||||
* factor2;
|
* factor2;
|
||||||
#else
|
|
||||||
if (gain > B_LIM) {
|
|
||||||
factor = (float)1.0 + (float)1.3 * (gain - B_LIM);
|
|
||||||
} else {
|
|
||||||
factor = (float)1.0 + (float)2.0 * (gain - B_LIM);
|
|
||||||
}
|
|
||||||
if (gain * factor > (float)1.0) {
|
|
||||||
factor = (float)1.0 / gain;
|
|
||||||
}
|
|
||||||
#endif
|
|
||||||
} // out of inst->gainmap==1
|
} // out of inst->gainmap==1
|
||||||
|
|
||||||
// synthesis
|
// synthesis
|
||||||
|
Loading…
x
Reference in New Issue
Block a user