【发布时间】:2017-11-19 11:46:26
【问题描述】:
我正在使用 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 是必要的。如果我为 num_bands 赋予价值 1,我在 AEC 中遇到致命(断言错误)(RTC_DCHECK_EQ(aec->num_bands, num_bands); 失败)。
我检查了aec->num_bands 的预计算值,即3 48K,
来自aec_core.cc:
if (sampFreq == 8000) {
aec->num_bands = 1;
} else {
aec->num_bands = (size_t)(sampFreq / 16000);
}
即使我将 3 用于 num_bands,我也会遇到无效访问崩溃。我是否需要以某种方式将每一帧分成 3 部分?
【问题讨论】:
标签: audio webrtc signal-processing audio-processing echo-cancellation