如何在 Web 音视频通话中实现降噪?

对于线上会议、线上教学、互动直播等场景来讲,有一个能清晰的沟通环境非常重要,但往往我们所处环境会出现各种噪音。这些噪音会直接降低音质,进而影响会议、直播、教学等场景的体验。

由于噪声带来的影响,许多公司和团队都在寻找可以降低噪音,获得更高声音质量的解决方案。

本文将探讨降噪的意义,以及如何使用声网 SDK 的降噪技术来改善线上会议、线上教学、直播等实时互动场景的体验:

  1. 什么是降噪?
  2. 降低音视频中的噪音的好处。
  3. 降噪有什么作用?
  4. 实时降噪。
  5. 如何减少音视频中的噪音?
  6. 用声网处理噪音。

什么是降噪?

降噪是指获取音频信号并消除其中噪音的过程。我们可以采取多种音频降噪技术来消除不需要的声音。

声音由空气中的压力波组成。很多人认为声音是由振动产生的能量。听者的内耳将这些振动转换为电信号,然后发送到大脑进行处理。这些信号被大脑处理后,人类就可以感知到实际的声音。

但是,空气中传输的压力波并不总是人们想听到的,还有回声、不需要的噪音以及周围的环境音,这些都可能降低实时互动的体验。

怎么能在不同时间点(比如,处理后或预处理期间)减少噪音呢?方法有很多种。


降低音视频中噪音的好处

噪音会直接影响用户的体验。而且我们还没什么好办法能比较自然地消除它,我们能做到的是降低噪音。

降低噪音的常见方法有改变周围环境的声学效果、选择一个单一指向型麦克风或使用降噪耳机,但这些方法对于普通用户来讲不太好实现。

通过软件算法来自动降噪,或拾音后手动降噪,是目前最可行的解决方案。

去除音频和视频中不需要的噪音的好处有很多:

  • 保证通讯——实时音视频经常遇到突发的噪音和回声,减少噪音可以保证实时互动的体验。
  • 避免失真——噪音失真可能是硬件问题导致,也可能是多个扬声器互相影响而造成。它在线上会议、线上教学、多人视频连麦等场景中都会出现。自动降噪可以避免这个问题。
  • 更专业的产品印象——优质的音视频技术的普及,提高了用户对于音视频互动质量的期望。如果由于噪音,而降低了音视频互动体验,那么也会让你的产品品牌显得不专业。

通常来讲,降低背景音中的风声、车流声等噪声可以快速提高声音质量,但这种降噪方法会让音频的预处理和后处理过程变得更加复杂。因为软件算法很难区分不需要的声音和背景音轨。

所以,有一个处理噪音的策略,对保证清晰的沟通体验至关重要。


降噪有什么作用?

降低或消除噪声对保证音频的清晰度来讲至关重要。不管是什么噪音,控制不必要噪音的方法有很多种。

大多数声学降噪工具都专注于后期处理。使用这些工具,用户需获取视频的音频波形。波形可以体现构成一段声音的多种声波。

在波形图中,噪声越长,就越容易在一条音轨上的不同地方找出不同类型的噪声。用户要选择想要减少的噪音的波形区域,然后选择其参数。大多数情况下需要反复调试。

但如果你需要为用户实时降噪,可以尝试集成声网这样的服务。


实时降噪

开发者越来越重视对噪音的预处理,希望能给用户提供清晰、准确和易于理解的实时音视频。 声网的 SDK 能让实现包含降噪功能的实时音视频场景变得更加简单。

大家在使用声网 SDK时,可以自动启用音频降噪。

随着直播、音视频连麦等场景需求的增加,自动降噪成为必不可缺的功能。实时互动意味着没有机会在将音视频传输给其他人之前对其进行处理。而声网降噪解决方案则能很好解决这个问题,它的优点在于:

  • 节省时间——后期处理时采用手动降噪非常耗时,即使是专家也需要不少时间。
  • 简化工作流程——更快进行音频处理,提升开发速度。
  • 更加专业——音频的后期处理有其局限性,可能会严重影响观众的体验。而实时的高质量音频可以为用户留下更好的印象。
  • 提高准确性——实时降噪技术已相当成熟,其效果几乎可与人工处理相媲美,甚至更好。

那么,实时降噪是如何工作的?

本质上讲,实时降噪与后期人工处理的工作原理比较相似,只是前者的速度更快。而且,目前声网还在实时降噪中加入了 AI 模块,进一步提升了降噪的效果。

例如,由于音响问题导致视频中出现回声,降噪算法会检测与之相似的声波,并在检测到最初的噪声后的几秒钟内消除后续出现的噪声。

这样就可以在没有任何明显延迟的情况下提高音质。

自动降噪也可以减少音频中的背景噪音。原理是通过一种算法来识别并去除不属于语音信号的声音。

在有较大风声时,可以将算法设置为降低所有低频声音,这样就可以保证清晰的音频质量。

如果使用得当,自动降噪可以极大程度提升音频的质量。因此,如果你的用户有音频质量差的问题,完全可以考虑使用自动降噪解决方案。


如何减少音视频中的噪音?

声网 SDK 的几个内置工具可以处理噪音。比如,回声消除可以自动消除双向通信频道两端的声音产生的回声。声网平台还兼容多种支持降噪的扩展工具。其中最强大的扩展是 AI 降噪,即使在嘈杂的地方也能提供强大的的音频清晰度。这种算法由 AI 驱动,目的是有效地抑制噪音和处理人声失真。AI 噪音抑制可以消除 100 多种不同类型的噪音,小到键盘敲击声,大到建筑工地噪音,都能一一消除。而且声网支持多个主流系统平台,并提供全球互通的实时音视频服务,其 AI 降噪能为你的用户提供清晰、高质量的音视频互动体验。


第一步——理解技术

已经知道了降噪的作用,现在有必要了解一下 AI 降噪背后的技术了。

声网 SDK 媒体传输管道包含采集、前处理、编码、传输、解码、后处理和播放等环节。 在前处理阶段,AI 降噪插件可以对管道中的音视频数据进行处理,从而实现降噪等功能。在使用前,请确保你要抑制的噪声类型与扩展程序处理的噪声类型相匹配。例如:当前版本会将麦克风采集的背景音乐当作噪声,因此不适用于使用麦克风同时采集人声和背景音乐的场景。具体有哪些噪声类型,可以点击这里查看官网文档


第二步——在你的应用中集成 AI 降噪

注意:这个步骤是针对 Web 浏览器平台的。如果要查看其它系统平台的实现步骤,请访问声网文档中心,查看对应系统平台的 AI 降噪文档。

1. 在项目的根目录下运行以下命令:

npm install agora-extension-ai-denoiser

2. 在 .js 文件中添加以下代码:

import {AIDenoiserExtension} from "agora-extension-ai-denoiser";


第三步——动态加载

有 JS 和 Wasm 的依赖项来运行 AI 噪音抑制扩展。要求使用的浏览器必须能加载和执行这些文件。


第四步——注册 AI 降噪扩展插件

AI 降噪扩展插件必须通过调用 AgoraRTC.registerExtensions,传入 AIDenoiserExtension 方法来进行注册。这里应该只有一个 AIDenoiserExtension 实例。


第五步—— IAIDenoiserProcessor 实例和注入

调用 createProcessor 方法,然后设置该扩展插件是否应默认启用。然后,通过调用 pipe 并指定 processorDestination 属性,将扩展插件注入到音频处理 pipeline 中。该操作完成后,可以根据需要启用或禁用该扩展。大家还可以设置降噪模式和级别。

声网强烈建议大家转储音频数据。在降噪处理出现问题时,可以提高故障排除效率。调用 dump 方法,并听取 ondumpondumpend 的回调。详细方法,请见文档


用声网处理噪音

作为全球领先的实时音视频技术服务平台,声网产品,包括语音通话、互动直播和视频通话都支持降噪。而且,声网还提供了丰富的官方、第三方扩展插件。

想体验声网 AI 降噪,可以免费注册声网。每位注册声网的开发者都可以获得每月 10000 分钟的免费使用额度。



原文作者:声网团队
原文链接:https://www.agora.io/en/blog/what-does-noise-reduction-do/
推荐阅读
相关专栏
SDK 教程
164 文章
本专栏仅用于分享音视频相关的技术文章,与其他开发者和声网 研发团队交流、分享行业前沿技术、资讯。发帖前,请参考「社区发帖指南」,方便您更好的展示所发表的文章和内容。