热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

主动降噪,通话降噪及AI降噪之辨

主动降噪,通话降噪及AI降噪之辨-近日,三星发布的BudsPro耳机中,宣传有以下功能。其中涉及到噪声的,有主动降噪,通话降噪及智能降噪,很多人对他们的具体用途容易混淆,今天我们

近日,三星发布的Buds Pro 耳机中,宣传有以下功能。其中涉及到噪声的,有主动降噪,通话降噪及智能降噪,很多人对他们的具体用途容易混淆,今天我们来辨析一下。

                                   

主动降噪和通话降噪完全不是一个概念,无论从方法,目的,技术手段,应用场景都不一样。

1. 主动降噪ANC(Active Noise Cancellation),简单来说,耳机中的主动降噪是为了减少佩戴者自己听到的环境噪声,它是通过佩戴者耳机的扬声器发出与环境噪声相反相的声波,在佩戴者耳朵内部这个小小的声场环境里抵消了通过耳机物理结构传播进来的环境噪声,通过一下三张图就可以明白其基本原理:

   

为了实现主动降噪,其技术手段有Feedforward ANC (前馈主动降噪), Feedback ANC (反馈主动降噪) 以及 Hybrid ANC (混合主动降噪,其实就是前馈加上反馈)。

当前常见的算法: Filtered-X Least-Mean-Square (FXLMS) 滤波器,所以这么看来,ANC 实际和互联网常说的音频三剑客 3A 中的AEC还是近亲呢。

ANC的实现方法解释起来比较繁琐,这里推荐几篇帖子,欢迎有兴趣的同学深入研究:

Active Noise Control: A Tutorial Review: http://www2.coe.pku.edu.cn/tpic/2010913102917710.pdf

关于主动降噪耳机,你想知道的一切: https://zhuanlan.zhihu.com/p/133252284

这里给出一个例子供大家学习: https://github.com/875441459/Basic-demonstraion-of-Fxlms-Algo

2. 通话降噪是互联网常说的音频三剑客3A中的一员,严格来说3A是指:

AEC(Acoustic Echo Canceller),ANS(Ambient Noise Suppression), AGC(Automatic Gain Control)

通话降噪指的是 ANS(Ambient Noise Suppression),也就是常说的噪声抑制,也有叫做Automatic Noise Suppression,狭义上的语音增强和语音分离也是指噪声抑制,

广义的语音增强和语音分离就包含各自更广泛地范围了,有机会再详述。有人把ANC列为3A之一,很显然是混淆了二者的概念。

通话降噪,简单来说是要从已经混有噪声的语音信号中,把噪声给抑制掉,完全通过软件从信号处理层面实现的,不像ANC那样需要在声场层面解决问题。

通话降噪是为了降低耳机佩戴者在通话时传输给对方的语音中的噪声,其目的是把带噪语音变为清晰语音,当然也不一定非得用于通话,只要有这个需求的场景都可以用到。

噪声抑制作为研究了几十年的技术,有很多的方法,不过目前因为谷歌开源的实时通信引擎WebRTC中的噪声抑制效果很好,很多公司都借鉴了WebRTC的噪声抑制方案。

对于通话链路,不仅仅有一个通话降噪,其实它包含有如下的很多模块:

                               

这篇文章介绍的比较全面,推荐大家:通话降噪超级简洁——简介 https://zhuanlan.zhihu.com/p/87340866

在github上有多的源码,这里给出一个例子供大家学习:https://github.com/cpuimage/WebRTC_NS

3. AI降噪

所谓的AI降噪,也就是智能降噪,其实是指的具体实现方法,不管是主动降噪,还是通话降噪,只要使用了深度学习技术,就可以称为AI降噪。

目前在通话降噪中,深度学习使用的比较多,近几年各大语音学术会议上的噪声抑制,基本是深度学习论文一统天下了,反而信号处理方案论文不多见了。

这里是业界交口称赞的一套开源的深度学习噪声抑制的方案:https://github.com/xiph/rnnoise

而目前在主动降噪领域,引入深度学习的确实不多,笔者猜测由于主动降噪本身就是自适应滤波器,带有一定的自我学习的特点了,所以引入深度学习的效果可能提升有限。

希望读者读过这篇文章后,对主动降噪,通话降噪及AI降噪有了初步的了解。


推荐阅读
  • 精选30本C# ASP.NET SQL中文PDF电子书合集
    欢迎订阅我们的技术博客,获取更多关于C#、ASP.NET和SQL的最新资讯和资源。 ... [详细]
  • 优化ListView性能
    本文深入探讨了如何通过多种技术手段优化ListView的性能,包括视图复用、ViewHolder模式、分批加载数据、图片优化及内存管理等。这些方法能够显著提升应用的响应速度和用户体验。 ... [详细]
  • 资源推荐 | TensorFlow官方中文教程助力英语非母语者学习
    来源:机器之心。本文详细介绍了TensorFlow官方提供的中文版教程和指南,帮助开发者更好地理解和应用这一强大的开源机器学习平台。 ... [详细]
  • 本文详细介绍了如何在Linux系统上安装和配置Smokeping,以实现对网络链路质量的实时监控。通过详细的步骤和必要的依赖包安装,确保用户能够顺利完成部署并优化其网络性能监控。 ... [详细]
  • 高效提取PDF页面的实用技巧
    在学习和工作中,我们经常需要与他人共享PDF格式的资料。然而,有时只需要分享部分内容,而不仅仅是整个文档。本文将介绍如何使用福昕阅读器领鲜版高效地提取PDF页面,以提高文件传输效率和查阅便捷性。 ... [详细]
  • RecyclerView初步学习(一)
    RecyclerView初步学习(一)ReCyclerView提供了一种插件式的编程模式,除了提供ViewHolder缓存模式,还可以自定义动画,分割符,布局样式,相比于传统的ListVi ... [详细]
  • 本文将介绍如何编写一些有趣的VBScript脚本,这些脚本可以在朋友之间进行无害的恶作剧。通过简单的代码示例,帮助您了解VBScript的基本语法和功能。 ... [详细]
  • Explore a common issue encountered when implementing an OAuth 1.0a API, specifically the inability to encode null objects and how to resolve it. ... [详细]
  • This guide provides a comprehensive step-by-step approach to successfully installing the MongoDB PHP driver on XAMPP for macOS, ensuring a smooth and efficient setup process. ... [详细]
  • 探讨如何高效使用FastJSON进行JSON数据解析,特别是从复杂嵌套结构中提取特定字段值的方法。 ... [详细]
  • 深入理解Java中的volatile、内存屏障与CPU指令
    本文详细探讨了Java中volatile关键字的作用机制,以及其与内存屏障和CPU指令之间的关系。通过具体示例和专业解析,帮助读者更好地理解多线程编程中的同步问题。 ... [详细]
  • 本文介绍了如何使用JQuery实现省市二级联动和表单验证。首先,通过change事件监听用户选择的省份,并动态加载对应的城市列表。其次,详细讲解了使用Validation插件进行表单验证的方法,包括内置规则、自定义规则及实时验证功能。 ... [详细]
  • 使用 Azure Service Principal 和 Microsoft Graph API 获取 AAD 用户列表
    本文介绍了一段通用代码示例,该代码不仅能够操作 Azure Active Directory (AAD),还可以通过 Azure Service Principal 的授权访问和管理 Azure 订阅资源。Azure 的架构可以分为两个层级:AAD 和 Subscription。 ... [详细]
  • 尽管某些细分市场如WAN优化表现不佳,但全球运营商路由器和交换机市场持续增长。根据最新研究,该市场预计在2023年达到202亿美元的规模。 ... [详细]
  • 基因组浏览器中的Wig格式解析
    本文详细介绍了Wiggle(Wig)格式及其在基因组浏览器中的应用,涵盖variableStep和fixedStep两种主要格式的特点、适用场景及具体使用方法。同时,还提供了关于数据值和自定义参数的补充信息。 ... [详细]
author-avatar
jytujtuyt
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有