【问题标题】:What num_bands parameter do in WebRtcAec_Process() API (Inside WebRtc Echo Module)?WebRtcAec_Process() API(WebRtc Echo 模块内部)中的 num_bands 参数有什么作用?
【发布时间】: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


    【解决方案1】:

    您要处理多少个样本?我好像记得它只支持80或160。

    另外,我很久以前为 webRTC 回声消除模块编写了一个 Java 包装器。我似乎认为 AEC 模块有两种单独的实现,一种用于移动设备,一种用于桌面。

    我用的是手机,只支持8Khz和16Khz。

    【讨论】:

      猜你喜欢
      • 2012-10-02
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-05-11
      • 1970-01-01
      • 1970-01-01
      • 2020-08-04
      • 1970-01-01
      相关资源
      最近更新 更多