在实时音视频互动中,音频信号在如下过程中会产生回声:
声网 SDK 默认会开启自研的回声消除算法。在会议、双师课堂等室内场景中,环境、外置音频设备选择等会影响声网 RTC SDK 回声消除的效果。本文介绍如何避免室内场景的回声。
如果室内有反射材料,则很容易产生回声。声网推荐用户选择无反射材料的室内环境:
在会议、双师课堂等室内场景中,用户时常需要连接投影仪、麦克风等外置音频设备。外置音频设备分为以下几类:
如果用户通过不同设备采集和播放音频,则播放信号和采集信号之间会产生延迟抖动,从而影响声网 RTC SDK 回声消除的效果。为避免延迟抖动,声网推荐使用同一个设备来采集和播放音频。例如,如果用户的电脑连接了带扬声器功能的投影仪,则声网推荐用户将音频采集和播放设备都设置为电脑或者都设置为投影仪。
如果用户使用外置音频处理器,则 app 会同时使用声网 RTC SDK 和外置音频处理器的回声消除算法,算法的叠加可能会过度处理音频、增加 CPU 占用率。
声网推荐按如下步骤测试并选择外置音频处理器:
连接外置音频处理器,通过集成了声网 RTC SDK 的 app 进行实时音频互动。
不连接外置音频处理器,通过集成了声网 RTC SDK 的 app 进行实时音频互动。
比较步骤 1 和步骤 2 的音频体验:
如果用户播放了背景音乐、音效、动画等媒体资源,媒体资源播放的声音可能会被麦克风采集,从而产生回声。声网推荐调用如下 API 在本地播放媒体资源或将媒体资源发布到远端,从而通过声网 SDK 进行回声消除。
SDK | 平台 | API(以 Java 为例) | 使用方法 |
---|---|---|---|
声网 SDK | startAudioMixing |
||
playEffect |
|||
enableLoopbackRecording |
|||
声网 MediaPlayer Kit | AgoraMediaPlayerKit |
AgoraMediaPlayerKit 实例播放多个媒体资源。 |