我正在使用 WebRtc 原生 AEC API。
int32_t WebRtcAec_Process(void* aecInst, const float* const* nearend,
size_t num_bands, float* const* out,
size_t nrOfSamples, int16_t msInSndCardBuf,
int32_t skew);
我想从具有 48K 采样率、带 AEC 的单通道(单声道)的音频中消除回声。
但我不知道为什么num_bands
是必要的。如果我1
为num_bands
我在 AEC 中得到致命(断言错误)(RTC_DCHECK_EQ(aec->num_bands, num_bands);
失败)赋值。
我检查了48K的aec->num_bands
预计算值,来自:3
aec_core.cc
if (sampFreq == 8000) {
aec->num_bands = 1;
} else {
aec->num_bands = (size_t)(sampFreq / 16000);
}
即使我使用 3 num_bands
,我也会遇到无效访问崩溃。我是否需要以某种方式将每一帧分成 3 部分?