gpt4 book ai didi

java - Android 上的 WebRTC AEC

转载 作者:塔克拉玛干 更新时间:2023-11-02 23:59:42 57 4
gpt4 key购买 nike

我正在为 Android 开发一个 SIP 软电话 应用程序,并面临回声消除问题。我尝试使用 Speex 解决它,但没有成功。所以我的下一个镜头是 WebRTC AEC(声学回声消除),但我找不到任何关于如何使用它的文档。

在我的应用程序中,音频由 Java 中的 AudioTrack 和 AudioRecord 类管理,但发送和接收的套接字在 C 代码中(与 JNI 集成)。 WebRTC是个大项目,我只想集成AEC模块。

有人知道我必须包含哪些文件、编译器需要哪些标志、需要执行哪些函数调用等等吗?我有 CSipSimple 代码,它也使用 WebRTC(但也用于其他用途),但我找不到包含和使用它的简单和正确的方法。

谢谢。

最佳答案

您需要以下文件:

aec/modules/audio_processing/aec/aec_core_sse2.c
aec/modules/audio_processing/aec/aec_core.c
aec/modules/audio_processing/aec/aec_rdft_sse2.c
aec/modules/audio_processing/aec/aec_rdft.c
aec/modules/audio_processing/aec/aec_resampler.c
aec/modules/audio_processing/aec/echo_cancellation.c
aec/modules/audio_processing/utility/ring_buffer.c
aec/modules/audio_processing/utility/delay_estimator.c
aec/modules/audio_processing/utility/delay_estimator_wrapper.c
aec/system_wrappers/source/cpu_features.cc
aec/common_audio/signal_processing/randomization_functions.c

用法:

void * aec = 0;
int status = WebRtcAecm_Create(&aec);
status = WebRtcAecm_Init(aec, 8000 /* sample rate */);

// Buffer the far end frames
int status = WebRtcAecm_BufferFarend(
aec, play_frm, 160
);

// Cancel echo
status = WebRtcAecm_Process(
aec, (WebRtc_Word16 *)buf, (WebRtc_Word16 *)buf,
tmp_frm, 160,
echo_tail / tail_factor
);

关于java - Android 上的 WebRTC AEC,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12818721/

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