今天参加了声网 Agora 的《实时语音质量监控系统的过去、现在与未来》,结合之前工作时音频处理的一些经验,分享一些自己的理解。

音频(泛指人能听到的自然界的所有声音,人耳能听到声音的频谱范围一般为 20~20000HZ)和语音 (语音是指人说话的声音,人说话的声音频谱能量范围大部分分布在 300~3400HZ)两者是不同的,可以看出人是可以听到比人说话更广范围的声音的;这就是人可以听到像乐器,自然界,尖鸣声这些声音,但是人并不能发出来。

为什么要做质量评估,原因有几个方面,比如大家除了面对面交流,在通话,刷视频,听音乐等等活动中的音频是经过了编解码压缩处理的,是为了便于更小代价的传输和存储;像原始声音中掺杂噪声的去除,原始说话声音的增强处理等;可以看出不管是编解码处理还是其他语音处理,目的都是让人听起来更舒服,因此质量评估方法就是评估在对于声音进行处理后的人听起来的感受度情况。

音频评估方法分为主观评价和客观评价。

主观评价其实就是人凭借听觉感受对语音进行打分,常见的有 MOS、CMOS 和 ABX Test;像 AB TEST 在我早期的工作中经常使用到,比如对语音增强算法做了小的优化,想得到实际听觉的感受改善情况,就会把原始算法和优化后算法处理后的语音进行编组,让小伙伴们帮忙测试打分,以此判断是变优还是变差。国际电信联盟(ITU)将语音质量的主观评价方法做了标准化处理,代号为 ITU-T P.800.1。其中收听质量的绝对等级评分(Absolute Category Rating, ACR) 是目前比较广泛采用的一种主观评价方法。参与评测的人员对语音整体质量进行打分,分值范围为 1-5 分,分数越大表示语音质量最好。这种 MOS 值分数后来也应用于客观质量评价。一般 MOS 应为 4 或者更高的,会被认为是比较好的语音质量,一旦 MOS 低于 3.6,则这个语音质量基本不太能接受。

客观评价则主要是使用算法代替人打分的工作,通过算法来评测声音的质量。在客观评价中又分为有参考评价和无参考评价。

  • 有参考评价(intrusive method)顾名思义,需要声音源素材进行对比,因此这种方法只能用在线下处理上,对于实时通话处理是不可能做到的;常见的有像 ITU-T P.861(MNB), ITU-T P.862(PESQ)[2], ITU-T P.863(POLQA)[3], STOI[4], BSSEval[5],
  • 无参考评价(non intrusive method)则不需要声音源素材,常见的有 ITU-T P.563[6], ANIQUE+[7],ITU-T G.107(E-Model)[8],基于 AI 深度学习的 AutoMOS[9], QualityNet[10], NISQA[11], MOSNet[12]等等

下面表中为主流语音编解码 MOS 值测试评分(来自 Opus 官网,后来又出来了 MOS9,即最高分为 9 分

这里重点介绍下 PESQ 和 POLQA

PESQ 属于有参考的客观评价方案,将两个音频信号作为输入,其中一个由 itu 组织提供,另一个输入为经过被测 voip 系统处理后的输出信号。Pesq 算法通过对输入的两个信号提取时频域或变换域特征参数的差异,再将特征参数差异经神经网络模型映射得到客观的音质分值。PESQ 分值其实就是对 MOS 值的一个映射。

POLQA 算法是新一代语音质量评估标准,适用于固网、移动通信网络和 IP 网 络 中 的 语 音 质 量 评 估 。 POLQA 被 ITU-T(International Telecommunication Union)确定为推荐规范 P.863,可用于高清语音、 3G、4G/VoLTE、5G 网络语音质量评估。它用以替代和升级 2001 年发布的 PESQ(ITU-TRecommendation P.862)

与传统 pesq 的区别在于,POLQA 算法具有以下优点:

  • 增加对宽带(Wideband)和超宽(SuperWideband)语音质量评估的能力,支持宽带(48khz)。
  • 支持最新的语音编码和 VoIP 传输技术,针对现有的 opus、silk 编码器进行过特殊优化。
  • 支持多语言环境,各国语言都支持。ITU 组织提供标准测试语料,可进行针对性测试。

当然音频质量评估不只是评估编解码,同样还有其他因素会影响,像 VAD 传输,丢包补偿,网络质量变化(时延/抖动/丢包),甚至包括设备采集。

像上述的无论有参考和无参考,都有其应用的局限性,包括使用场景比较窄,鲁棒性差,复杂度高等问题,而要克服上述的问题,就需要一套覆盖多场景,性能运行几乎无感知的质量评估算法及体系,因此声网自行开发了一套独有的音频质量评估手段。包括上行质量评估和下行质量评估。

上行链路声音经历采集-AEC(回声消除)-NS(噪声抑制)-AGC(增益)处理过程,因此质量评估包含了设备采集稳定性/回声消除能力/噪声抑制能力/音量增益能力的处理效果。

下行链路则主要是通过设备播放给人听,经过编解码-网络传输-弱网对抗(我理解是 VAD/PLC/纠错等处理)-设备播放,最终多弱网,多设备,多模式测试下,其算法与 POLQA 误差值小于 0.15,可以说是达到了不错的效果。

关于音频质量评估,个人认为后续会按照更细化的领域方向发展,包含元素的不同,比如语音评估和音乐评估应该是属于不同的;包含场景的不同,比如实时在线处理和线下评估,实时处理需要高实时性,性能消耗小;而线下评估不需要这么高的要求,对于精准度则要求更高,则可以更多的利用 AI 人工智能的优势以及算法系统上的优化。

【音视频专题】音频质量评估方法那些事相关推荐

  1. 音频质量评价体系那些事

    前言 近年来,线上音视频的产品形态和应用场景越来越丰富,疫情更加速了许多行业线下转线上的布局,音视频技术也越来越受到各大厂的重视,Zoom的股价飞升,腾讯.字节.阿里等等巨头的大力投入,令这个赛道的竞 ...

  2. 音视频系列--音频基本理论

    一.何为声音 中学物理中我们知道,声音是物体振动产生的声波.声音通过介质(空气.固体.液体)传入到人耳中,带动听小骨振动,经过一系列的神经信号传递后,被人所感知. 声音是一种波.物体振动时会使介质(如 ...

  3. 怎么让抖音视频当做铃声android,抖音怎么提取视频里的音乐?怎么将抖音里的音乐用来做手机铃声?抖音视频提取音频的方法...

    虽然说抖音发展到现在,褒贬不一,但是架不住人家火啊,现在的人大都喜欢捧着个手机刷抖音,来打发一些碎片时光.抖音不仅带火了短视频,同样也带火了视频里面的背景音乐,许多我们平时并没有听过的歌曲在抖音上就慢 ...

  4. 音视频基础——音频基础知识

    爱情只有落实到穿衣.吃饭.数钱.睡觉,这些实实在在的小事上,才可以长久 一.声音的三要素 1. 音调 人耳对声音高低的感觉称为音调(也叫音频).音调主要与声波的频率有关.声波的频率高,则音调也高.当我 ...

  5. 计算机抖音怎么可以弄出音乐,抖音怎么提取视频里的音乐?怎么将抖音里的音乐用来做手机铃声?抖音视频提取音频的方法...

    虽然说抖音发展到现在,褒贬不一,但是架不住人家火啊,现在的人大都喜欢捧着个手机刷抖音,来打发一些碎片时光.抖音不仅带火了短视频,同样也带火了视频里面的背景音乐,许多我们平时并没有听过的歌曲在抖音上就慢 ...

  6. 音视频系列--音频基本操作(音频裁剪,音频和音频混合,音频和视频混合)

    前面介绍了音频的基本原理,这篇文章继续来总结下音频的基本操作,包括裁剪,混音和音频和视频的混合操作. 一.裁剪 下面Demo将一段输入mp3文件,根据startTime和endTime,进行裁剪,先解 ...

  7. 音视频专题--硬件解码

    1 前言概念: MediaCodec是android提供用于对音视频进行编解码的类,他通过底层的编解码器来实现音视频的功能. 解码芯片: 移动端soc的视频硬解码靠的是soc里面的DSP芯片,不是GP ...

  8. Android音视频开发-音频篇-音频的原理

    致知在格物,物格而后知至.所谓致知在格物者,言欲致吾之知,在即物而穷其理也 意思讲的是要探究事物的原理,从而获得智慧. 写代码也是如此,只有了解其中的原理,才能运用自如 所以我们要想学好Android ...

  9. javacv音视频截图,音频抽取汇总

    概述: java 使用 javacv 视频截帧, 跳到指定帧截图, 从视频中抽取音频, 音频分割为多段 1 依赖: <dependency><groupId>org.byted ...

最新文章

  1. 报名 | 清华大学海外学者短期讲学:创新创业发展课程
  2. 深度学习中将类别标签映射到one_hot向量
  3. promise ajax 队列,ES6中的promise,从使用promise封装ajax说起
  4. JZOJ 5373. 【NOIP2017提高A组模拟9.17】信仰是为了虚无之人
  5. 虚拟主机域名访问yum服务器,虚拟主机域名访问yum服务器
  6. 带学生参加电赛,5个国一,2个国二!15个省奖!
  7. Mongodb 笔记01 MongoDB 简介、MongoDB基础知识、启动和停止MongoDB
  8. ICLR 2021 | 腾讯 AI Lab 入选论文解读
  9. ffmpeg结构体SpecifierOpt说明文档
  10. 一个想法:利用VHD部署系统
  11. stl标准模板库_如何在C ++ STL(标准模板库)中使用Pair
  12. android 修改listview item view 的方法
  13. 8.XSD 复合元素
  14. python isinstance()方法的使用
  15. 加密与解密 linux,security 02: 加密与解密 、 扫描与抓包 、 总结和答疑 、 SELinux安全防护(示例代码)...
  16. 全网推广有哪些推广方式?
  17. 23万字 前端HTML与CSS学习笔记总结篇(超详细)
  18. 我新鲜出炉的 plist 图集拆图工具!github
  19. EXCEL基本功能 --- 三种常用的查找与引用函数
  20. 浏览器被360劫持解决办法

热门文章

  1. 在项目实践中如何选择编程语言
  2. springboot项目中使用Echarts实现数据折现可视化
  3. Shader——《真三国无双》城墙着火特效
  4. 10、(加强版)本金10000元存入银行,年利率是千分之三。每过一年,将本金和利息相加作为新的本金。计算五年后,获得的本金是多少?
  5. C++ / Opencv 简单实现美颜效果(瘦脸、大眼、磨皮等)
  6. 报名信息填写完成! 您的报名号请牢记!
  7. 56 道高频 JavaScript 与 ES6+ 的面试题及答案
  8. [极客大挑战 2019]Secret File
  9. matlab实现ica,Matlab用ICA进行话语分离
  10. 逆元 与等比数列求和