dba*_*sta 4 c java android aec webrtc
我正在为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
Run Code Online (Sandbox Code Playgroud)
用法:
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
);
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
9145 次 |
| 最近记录: |