音视频通话:小议音频处理与压缩技术
发布日期:2021-05-09 07:46:14 浏览次数:16 分类:博客文章

本文共 2192 字,大约阅读时间需要 7 分钟。

在视频或者音频通话过程中,一方面为了减小原始声音数据的传输码率,需要进行音频压缩,另一方面为了得到更高质量的音质,需要进行音频处理。那么,如何处理好这两方面,保证声音传播的高真性?本篇文章将会结合在音视频技术方面的实战和经验,小议音频处理与压缩技术。

 

推荐阅读:

《》

《》

 

音频处理的方法主要包括:音频降噪、自动增益控制、回声抑制、静音检测和生成舒适噪声,主要的应用场景是视频或者音频通话领域。音频压缩包括各种音频编码标准,涵盖ITU制定的电信领域音频压缩标准(G.7xx系列)和微软、Google、苹果、杜比等公司制定的互联网领域的音频压缩标准。(iLBC、SILK、OPUS、AAC、AC3等)。

 

音频基础概念

在进一步了解音频处理和压缩之前需要知道这些:

(1)音调:泛指声音的频率信息,人耳的主观感受为声音的低沉(低音)或者尖锐(高音)。

(2)响度:声音的强弱。

(3)采样率:声音信息在由模拟信号转化为数字信号过程中的精确程度,采样率越高,声音信息保留的越多。

(4)采样精度:声音信息在由模拟信号转化为数字信号过程中,表示每一个采样点所需要的字节数,一般为16bit(双字节)表示一个采样点。

(5)声道数:相关的几路声音数量,常见的如单声道、双声道、5.1声道。

(6)音频帧长:音频处理或者压缩所操作的一段音频信息,常见的是10ms,20ms,30ms。

 

音频处理基础

  1. 噪声抑制Noise Suppression)

手机等设备采集的原始声音往往包含了背景噪声,影响听众的主观体验,降低音频压缩效率。以Google著名的开源框架WebRTC为例,我们对其中的噪声抑制算法进行严谨的测试,发现该算法可以对白噪声和有色噪声进行良好的抑制。满足视频或者语音通话的要求。

其他常见的噪声抑制算法如开源项目Speex包含的噪声抑制算法,也有较好的效果,该算法适用范围较WebRTC的噪声抑制算法更加广泛,可以在任意采样率下使用。

  1. 回声消除Acoustic EchoCanceller)

在视频或者音频通话过程中,本地的声音传输到对端播放之后,声音会被对端的麦克风采集,混合着对端人声一起传输到本地播放,这样本地播放的声音包含了本地原来采集的声音,造成主观感觉听到了自己的回声。

回声产生的原理如下图所示

以WebRTC为例,其中的回声抑制模块建议移动设备采用运算量较小的AECM算法,该算法的处理步骤如下图所示。有兴趣的读者可以参考AECM的源代码进行研究,这里不展开介绍了。

3.自动增益控制Auto Gain Control)

手机等设备采集的音频数据往往有时候响度偏高,有时候响度偏低,造成声音忽大忽小,影响听众的主观感受。自动增益控制算法根据预先配置的参数对输入声音进行正向/负向调节,使得输出的声音适宜人耳的主观感受。

WebRTC为例,它的自动增益控制算法的基本流程图如下所示。

4.静音检测Voice ActivityDetection)

静音检测的基本原理:计算音频的功率谱密度,如果功率谱密度小于阈值则认为是静音,否则认为是声音。静音检测广泛应用于音频编码、AGC、AECM等。

5.舒适噪声产生ComfortableNoiseGeneration)

舒适噪声产生的基本原理:根据噪声的功率谱密度,人为构造噪声。广泛适用于音频编解码器。在编码端计算静音时的白噪声功率谱密度,将静音时段和功率谱密度信息编码。在解码端,根据时间信息和功率谱密度信息,重建随机白噪声。

它的应用场景:完全静音时,为了创造舒适的通话体验,在音频后处理阶段添加随机白噪声。

音频编码基础

音频的另一个广泛应用的领域:音频编码。

首先看一下当前应用最广泛的一些音频编码标准,如下图所示。

 

图中横轴是音频编码码率,纵轴是音频频带信息。从图中我们可以获得如下几方面信息。

(1)对于固定码率的编码标准,如G.711或者G.722,图中采用单点表示,说明这两个编码标准是固定码率编码标准。其他如Opus、Speex,它们的曲线是连续的,说明这类编码标准是可变码率的编码标准。

(2)从频带方面看,G.711、G.722、AMR和iLBC等标准适用于narrowband(8khz采样率)和wideband(16khz采样率)范围,针对普通的语音通话场景。AAC和MP3适用于fullband(48khz采样率)范围,针对特殊的音乐场景。而Opus适用于整个频带,可以进行最大范围的动态调节,适用范围最广。

(3)从标准的收费情况看,适用于互联网传输的iLBC、Speex和Opus都是免费且开源的;适用于音乐场景的MP3和AAC,需要license授权,而且不开源。

 

随着音频处理和压缩技术的不断发展,效果更好、适用范围更广、性能更高的算法和新的技术必将不断涌现,如果你有好的技术或者分享,欢迎留言,我们一起探讨。

想要获取更多产品干货、技术干货,欢迎关注。

 

网易云信(NeteaseYunXin)是集网易18年IM以及音视频技术打造的PaaS服务产品,来自网易核心技术架构的通信与视频云服务,稳定易用且功能全面,致力于提供全球领先的技术能力和场景化解决方案。开发者通过集成客户端SDK和云端OPEN API,即可快速实现包含IM、音视频通话、直播、点播、互动白板、短信等功能。

 

上一篇:直播技术:从性能参数到业务大数据,浅谈直播CDN服务监控
下一篇:MCtalk对话尚德机构:AI讲师,假套路还是真功夫?

发表评论

最新留言

表示我来过!
[***.240.166.169]2025年05月06日 19时15分25秒

关于作者

    喝酒易醉,品茶养心,人生如梦,品茶悟道,何以解忧?唯有杜康!
-- 愿君每日到此一游!

推荐文章

Hyper-V系列:微软官方文章 2023-01-23
idea打war包的两种方式 2023-01-23
Java系列:【注释模板】IDEA中JAVA类、方法注释模板教程 2023-01-23
JS系列(仅供参考):【浏览器编程】浏览器F12调试工具面板详解和JavaScript添加断点 2023-01-23
Kali 更换源(超详细,附国内优质镜像源地址) 2023-01-23
kali安装docker(亲测有效) 2023-01-23
Linux系列:Linux目录分析:[/] + [/usr] + [/usr/local] + [/usr/local/app-name]、Linux最全环境配置 + 动态库/静态库配置 2023-01-23
Linux系列:ubuntu各版本之间的区别以及Ubuntu、kubuntu、xUbuntu、lubuntu等版本区别及界面样式 2023-01-23
mysql系列:远程连接MySQL错误“plugin caching_sha2_password could not be loaded”的解决办法 2023-01-23
Nessus扫描结果出现在TE.IO或者ES容器结果查看问题解决方案 2023-01-23
Nmap渗透测试指南之探索网络 2023-01-23
Nmap渗透测试指南之防火墙/IDS逃逸、信息搜集 2023-01-23
Nmap端口服务 之 CentOS7 关于启动Apache(httpd)服务、telnet服务、smtp服务、ftp服务、sftp服务、snmp服务 2023-01-23
PHP系列:PHP 基础编程 2(时间函数、数组---实现登录&注册&修改) 2023-01-23
PHP系列:使用PHP实现登录注册功能的完整指南 2023-01-23
Python&aconda系列:cmd/powershell/anaconda prompt提示“系统找不到指定的路径”(亲测有效) 2023-01-23
Python&aconda系列:conda踩坑记录2.UnsatisfiableError: The following specifications were found to be incompa 2023-01-23
Python&aconda系列:Jupyter Notebook快速上手、深度学习库PyTorch安装 2023-01-23
Python&aconda系列:(W&L)Conda使用faiss-gpu报错及解决办法、安装numpy的坑、cmd执行Python脚本找不到第三方库、安装tensorflow-gpu时遇到的from 2023-01-23