gpt4 book ai didi

audio - WebRtcAec_Process() API(WebRtc Echo 模块内部)中的 num_bands 参数有什么作用?

转载 作者:行者123 更新时间:2023-12-02 23:34:40 24 4
gpt4 key购买 nike

我正在使用 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 的单 channel (单声道)的音频中消除回声。

但是不知道为什么 num_bands是必要的。如果我给出值(value) 1对于 num_bands我在 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 部分?

最佳答案

您要处理多少个 sample ?我似乎记得它只支持80或160。

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

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

关于audio - WebRtcAec_Process() API(WebRtc Echo 模块内部)中的 num_bands 参数有什么作用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47376456/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com