用料
- BW21-CBV-Kit x 1
- 3.5 毫米 TRS/TRRS 分线器 x 1(例如,Adafruit 2791 / Sparkfun 11570)
- Adafruit PDM 麦克风分线器 x 1 [可选]
示例
这个例子展示了如何使用 BW21-CBV-Kit 的 Acoustic Echo Cancellation (AEC) 音频效果。当 BW21-CBV-Kit 同时播放音频和录制音频时,AEC 算法可以去除反馈。
实现流程
- 如图所示,将音频插孔连接到 BW21-CBV-Kit。
- 或者,如果您想使用数字麦克风,请按下图所示连接音频插孔、电位器和 PDM 麦克风。
- 在 “文件” -> “示例” -> “AmebaMultimedia” -> “Audio” -> “EchoCancellation” 中打开范例。
在突出显示的代码片段中,在“ssid”中填写您的 WiFi 名称,在“pass”中填写 WiFi 密码。
- 编译代码并将其上传到 BW21-CBV-Kit。
- 按下 Reset 按钮后,等待 BW21-CBV-Kit 连接到 WiFi 网络。
- 此示例需要打开两个 VLC 播放器窗口,一个用于将 RTP 音频串流到 BW21-CBV-Kit 开发板,另一个用于从 BW21-CBV-Kit 进行 RTSP 音频串流。
RTP 音频流
- 在连接到同一 WiFi 网络的计算机上,打开 VLC 媒体播放器,然后转到“媒体”->“流”。
- 使用 add 按钮,将您想要串流的音频文件添加到 BW21-CBV-Kit,然后单击 stream 按钮。
- 在显示的新窗口中,单击 Next 以移至目标设置页面。在下拉菜单中,选择“RTP 音频/视频配置文件”,然后单击它旁边的添加按钮。
- 在出现的新选项卡中,在地址字段中输入 BW21-CBV-Kit 的 IP 地址。确保基本端口使用默认值 5004。点击 下一步 按钮。
如果您已经为 BW21-CBV-Kit 创建了配置文件,请选择现有的配置文件,然后跳过下一节来了解如何创建配置文件。否则,点击高亮的按钮为 BW21-CBV-Kit 创建一个新的配置文件。
- 在显示的新窗口中,为新的转码配置文件指定一个合适的名称。确保在 “Encapsulation” 选项卡中选择了 “RAW”。
- 确保在“视频编解码器”和“字幕”选项卡中禁用“视频”和“字幕”。
- 在“Audio codec(音频编解码器)”选项卡中,确保 “Audio”(音频)已启用。
- 选择“MPEG 4 Audio (AAC)”作为编解码器,选择 1 作为声道数。对于采样率,此值应与 BW21-CBV-Kit 的 AudioSetting 配置相同,本例默认为 8000 Hz。
- 单击 create 按钮,确保选择新配置文件,然后单击 Next 按钮。
- 在下一个窗口中,点击串流按钮,VLC 将开始使用 RTP 将音频文件串流到 BW21-CBV-Kit。
- 将一对有线耳塞插入音频插孔,您应该可以听到从计算机流式传输的音频。您可以使用 VLC 中的按钮来控制播放。
RTSP 音频流
在连接到同一 WiFi 网络的计算机上,打开 VLC 媒体播放器,然后转到“媒体”->“打开网络流”。
- 由于 RTSP 被用作串流协议,因此在 VLC 媒体播放器中输入 “rtsp://{IPaddress}:{port}” 作为网络 URL,将 {IPaddress} 替换为 BW21-CBV-Kit 的 IP 地址,将 {port} 替换为 Serial Monitor 中显示的 RTSP 端口。默认 RTSP 端口号为 554。
- 接下来,单击“播放”以开始 RTSP 流式传输。您应该能够听到板载麦克风通过计算机重播的声音。
测试 AEC 算法
- 当 RTP 和 RTSP 音频流都在进行时,调整扬声器输出,使 BW21-CBV-Kit 上的板载麦克风可以拾取扬声器产生的声音,
- 如图所示。
- 当 AEC 算法正常运行时,从计算机上的 RTSP 音频流输出中,您应该无法听到任何通过 RTP 流传输到 BW21-CBV-Kit 的音频。 要比较 AEC 算法的有效性,请在代码中注释掉
audio.configMicAEC(1);
- 然后重新编译、重新上传并再次使用两个 VLC 窗口进行测试。
- 从扬声器到麦克风的音频反馈应该从计算机上的 RTSP 流中很明显。
程序说明
- AEC 算法的采样率限制为 8 kHz 和 16 kHz。AEC 效果的强弱可以通过 configMicAEC 的第二个参数进行调整,0 是最弱的,17 是最强的。
|