zoukankan      html  css  js  c++  java
  • 麦克风阵列技术-beaforming开源算法源码分析

    概述

      在音频前端处理算法中,beamforming算法是一个无法绕过的存在,随着AI技术的广泛发展,前端语音技术的需求也在呈现个性化的动态范围。作为一个深耕音频算法多年的老兵,发现站在巨人的肩膀上,才能做出对得起客户的产品。今天就分析一下一个开源的beamforming算法。

             

    算法流程

      步骤一:预处理

    预处理内容:

    A 加窗:为傅里叶变换做准备,防止频谱泄露。
    B 傅里叶变换:通过傅里叶变换,获取每路麦克风的频域值大小.
    C 求权重因子:获取每路麦克风的权重因子.

      步骤二:beamforming流程

    beamforming算法流程

    A 加载加权过的频谱数据
    B 计算不同麦克风之间的互相关系数
    C 寻找音频方向源头: 计算每个麦克风的最大能量
    D 复位最大值相关的延时系数.
    E 计算人声可能范围的概率系数

      步骤三:跟踪人声声源

    跟踪算法效果:

    A 滤波器滤波:预测滤波器先进行滤波.
    B 计算每个麦克风的先验概率.
    C 根据当前值计算概率
    D 计算概率系数f的值.
    E 计算并更新每个粒度的因子
    F 添加或删除跟踪源
    G 确认是否停止跟踪某个源
    H 计算每个源的位置
    L 对每个源进行重采样

      步骤四:人声分离

    降噪处理流程:

    A 加载分离后的源
    B 噪声统计
    C 计算噪声泄露
    D 计算拉姆达因子
    E 噪声叠加
    F 计算噪声总量
    G 提取人声
    H 增益因子应用

      步骤四:后置滤波器

    人声提取流程:

    A 加载跟踪源
    B 计算矩阵信息
    C 计算每个帧信息
    D 导出帧信息.

     

    算法总结

     总的来说,该算法还是比较新的,各项指标比较完善,并且代码水平写的比较高。笔者分析完成之后,真是受益很大。

     

    参考文档


    1 经典书籍:http://www.labbookpages.co.uk/audio/beamforming/delaySum.html

    作者:虚生
    出处:https://www.cnblogs.com/dylancao/
    以声学降噪算法为核心的物联网音频解决方案提供商 ,提供基于声学技术为基础的智能硬件产品设计,开发和技术服务。
    商务合作和技术探讨:邮箱:1173496664@qq.com weixin:18019245820 市场技术对接群:347609188
  • 相关阅读:
    MongoDB入门
    查看端口通不通
    jQuery通过name获取值
    thinking in java
    xml配置文件解释
    Spring定时器时间设置规则
    修改序列(Sequence)的初始值(START WITH)
    Go语言实现简单的一个静态WEB服务器
    [转载]XML非法字符的处理
    IIS7解决文件上传大小问题
  • 原文地址:https://www.cnblogs.com/dylancao/p/14453288.html
Copyright © 2011-2022 走看看