Multimedia - 回音消除

材料准备

  • AmebaPro2 [ AMB82 MINI ] x 1
  • 3.5mm TRS/TRRS 立体耳机线插孔 x 1 (e.g., Adafruit 2791 / Sparkfun 11570)
  • Adafruit PDM 麦克风插孔 x 1 [Optional]

范例说明

介绍

此范例说明如何使用 Ameba 开发板的 Acoustic Echo Cancellation (AEC) 音频效能。当 Ameba Pro 2 开发板同时播放音频和录制音频时,AEC 演算法可以消除回音。

流程

如图所示,将音频插孔连接到 Ameba 板上。

1

或者,如果您想使用数位麦克风,请如下图所示连接音频插孔、电位器和 PDM 麦克风。

1

打开范例 “File” -> “Examples” -> “AmebaMultimedia” -> “Audio” -> “EchoCancellation”。

1

在标记的代码片段中,将您的 WiFi 网络 SSID 填入“ssid”,将网络密码填入“pass”。

1

编译代码并将其上传到 Ameba。
按下Reset键后,等待Ameba Pro 2开发板连上WiFi网络。
此范例需要打开两个 VLC 播放器视窗,一个用于将 RTP 音频串流传输到 Ameba Pro 2 板,一个用于从 Ameba Pro 2 板串流传输 RTSP 音频。

RTP Audio Stream

在连接到相同 WiFi 网络的电脑上,打开 VLC 媒体播放器,然后选择“Media”-> “Stream”。

1

点选Add按钮,将要传输的音频文件添加到 Ameba 板,然后点选Stream按钮。

1

在出现的新视窗中,点选next以进入到目标设置页面。在下拉选单中,选择“RTP Audio/Video Profile”,然后选择旁边的add按钮。

1

在出现的介面中,在address栏中输入 Ameba Pro 2 开发板的 IP。确保预设端口使用默认值 5004。单击next按钮。

1

对于transcoding options,确保勾选“Activate Transcoding”。如果您已经为 Ameba Pro 2 创建了一个配置文件,请选择现有的配置文件,然后跳过下一节介绍如何创建配置文件。否则,点选标记的按钮为 Ameba Pro 2 Board 创建一个新的配置文件。

1

在出现的新视窗中,为新的转码配置文件提供一个合适的名称。确保在“Encapsulation”设定中选择“RAW”。

1

确保在“Video codec”和“Subtitles”设定页面中禁用“Video”和“Subtitle”。

1

1

在“Audio codec”设定中,确保启用“Audio”。为codec选择“MPEG 4 Audio (AAC)”,为channels选择 1。对于sample rate,此值应与 Ameba Pro 2 的 AudioSetting 配置相同,在本例中默认为 8000 Hz。点选Create按钮,确保选择新配置文件,然后点击next按钮。

1

在下一个视窗中,点击stream按钮,VLC 将开始使用 RTP 将音频文件串流传输到 Ameba Pro 2。
将一对有线耳机插入音频插孔,您应该可以听到从电脑传输的音频。您可以使用 VLC 中的按钮来控制播放。

RTSP Audio Stream

在连接到相同 WiFi 网络的电脑上,打开 VLC 媒体播放器,然后转到“Media”-> “Open Network Stream”。

1

由于RTSP 被用作串流协议,在VLC 媒体播放器中输入“rtsp://{IPaddress}:{port}”作为网络URL,将{IPaddress} 替换为您的Ameba Pro2 开发板的IP 地址,以及{port } 使用串行监视器中显示的RTSP 端口。默认的 RTSP 端口号是 554。

1

接下来,单击“Play”开始 RTSP 串流传输。应该能够听到通过电脑重放的板载麦克风录制的声音。

Testing AEC algorithm

当 RTP 和 RTSP 音频流都在进行时,调整扬声器输出,使 Ameba Pro 2 上的板载麦克风可以录制扬声器产生的声音,如图所示。

1

当 AEC 演算法正常运行时,从电脑的 RTSP 音频串流输出,您应该听不到任何通过 RTP 串流传输到 Ameba Pro 2 的音频。
为了比较 AEC 算法的有效性,注解掉“audio.configMicAEC(1);” 在代码中,再次使用两个 VLC 视窗重新编译、重新上传和测试。从电脑上的 RTSP 串流中应该可以明显发现从扬声器到麦克风的音频。

程式码说明

AEC 演算法限于 8 kHz 和 16 kHz 取样率。 AEC 效果的强度级别可以通过 configMicAEC 的第二个参数进行调整,0 为最弱,17 为最强。

请先确认已安装QQ通讯软体