5128|6

1377

帖子

2

TA的资源

五彩晶圆(初级)

楼主
 

【ESP32-Korvo测评】(7)回声消除算法测试 [复制链接]

 

  回声消除(AEC)是设备避免自身播放的声音被进行中的录音所记录而采取的处理方法。回声消除的一个典型应用是免提电话:通话对方的讲话是会传入本机的麦克风的,若不作处理对方将听到自己讲话的回音。因此设备以自身播放的音频信号作为参考,试图从采集到的音频信号中减去回声信号,这个回声的估计要用自适应滤波的方法来实现。

  ESP-Skainet 音频算法包括了 AEC, 且作为语音信号处理的第一步。在 Korvo 板子的硬件上,ADC四个通道其中有一个就是采集Codec输出的音频用的,作为AEC参考的输入。从 recsrcTask() 任务代码中可以证明这一点。

  为了测试 AEC 的效果,我在录音的时候要播放一段音乐。因此我又加了一个 playTask 任务,从 SD 卡读取 PCM 文件,用 i2s_write()  输出给 Codec. 仅作为测试用,声音卡顿的问题就不处理了。附件是 AEC 前的麦克风信号,和 AEC+MASE 处理过的音频信号。因为 AEC 算法出来的声音有问题,暂且给 MASE 处理一下,不然听起来很差。

https://bbs.eeworld.com.cn/forum.php?mod=attachment&aid=NTI2OTQxfDRjOTc1YTUyODIxNTIwZjI0Yjc3NjYwMzc5YWVlOTllfDE3MzcyNDQ2NzA%3D&request=yes&_f=.mp3

 

  我用了一个离得不远的电吉他音箱来放音,从麦克风录进来的音乐声要比我讲话的声音高出许多。在音乐开始后,AEC算法需要一段迭代时间进行滤波器学习,然后,音乐声就得到了抑制。算法的自适应过程仍然不会停止,因为外部声学路径的特性随时可能变化(比如声波反射因周围物体移动而改变)。在除了回声之外有其它声音的时候,自适应学习会受到影响,这一点可以从录音中听出来。

  我认为这个 AEC 算法的设计除了有点bug要解决之外,效果是可以的。若要设计有对讲、监听等功能的机器的,需要 AEC 又不打算自己研究实现,那么可以考虑用 ESP32 平台,直接用 ESP-Skainet 里的 AEC 算法,毕竟软件免费。

最新回复

谢谢分享   详情 回复 发表于 2021-4-13 11:54

赞赏

1

查看全部赞赏

点赞(1) 关注(1)
 
 

回复
举报

6802

帖子

0

TA的资源

五彩晶圆(高级)

沙发
 

自适应滤波的方法是硬件还是软件代码实现?为什么要行滤波器学习

点评

这里是 ESP32 的软件实现的。也有不少带有AEC算法的音频芯片。 假设信号路径都是线性系统的话,有两条路径 (1)播放数字音频流-->DAC输出的模拟信号-->功放-->喇叭====>麦克风-->模拟放大-->ADC采  详情 回复 发表于 2021-3-6 23:10
 
 
 

回复

7608

帖子

2

TA的资源

五彩晶圆(高级)

板凳
 

谢谢分享!专业!

个人签名

默认摸鱼,再摸鱼。2022、9、28

 
 
 

回复

1377

帖子

2

TA的资源

五彩晶圆(初级)

4
 
Jacktang 发表于 2021-3-6 21:13 自适应滤波的方法是硬件还是软件代码实现?为什么要行滤波器学习

这里是 ESP32 的软件实现的。也有不少带有AEC算法的音频芯片。

假设信号路径都是线性系统的话,有两条路径

(1)播放数字音频流-->DAC输出的模拟信号-->功放-->喇叭====>麦克风-->模拟放大-->ADC采集数字信号

 (2)播放数字音频流-->DAC输出的模拟信号-->ADC采集数字信号

路径(1)是回声的来源,包含了声学路径,路径(2)只有电学路径,是回声消除算法的参考。路径(2)的传递特性是可以确定的,不会变。路径(1)中除了喇叭到麦克风这一段之外也可以算是确定的,若喇叭到麦克风的等效传递函数是什么可以估计出来的话,就可以根据路径(2)的参考信号估计出来回声信号,然后从麦克风信号中减去。

AEC算法将参考信号经过一个可调的数字滤波器(一般是FIR),去逼近麦克风收到的回声。调整滤波器的过程是自适应的,最基础的算法是LMS(最小均方误差滤波)。现实中还要克服许多问题,才能做到较好的效果。

点评

明白了,谢谢楼主这么详细的讲解。    详情 回复 发表于 2021-3-7 20:01
 
 
 

回复

1942

帖子

2

TA的资源

版主

5
 

不错不错!点个赞!

 
 
 

回复

6802

帖子

0

TA的资源

五彩晶圆(高级)

6
 
cruelfox 发表于 2021-3-6 23:10 这里是 ESP32 的软件实现的。也有不少带有AEC算法的音频芯片。 假设信号路径都是线性系统的话,有两条 ...

明白了,谢谢楼主这么详细的讲解。

 

 
 
 

回复

661

帖子

0

TA的资源

纯净的硅(初级)

7
 

谢谢分享

 
 
 

回复
您需要登录后才可以回帖 登录 | 注册

随便看看
查找数据手册?

EEWorld Datasheet 技术支持

相关文章 更多>>
关闭
站长推荐上一条 1/9 下一条

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

About Us 关于我们 客户服务 联系方式 器件索引 网站地图 最新更新 手机版

站点相关: 国产芯 安防电子 汽车电子 手机便携 工业控制 家用电子 医疗电子 测试测量 网络通信 物联网

北京市海淀区中关村大街18号B座15层1530室 电话:(010)82350740 邮编:100190

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2025 EEWORLD.com.cn, Inc. All rights reserved
快速回复 返回顶部 返回列表