原文见:在路上的博客

全文参考:
1. 音视频测试建议(腾讯音视频实验室质量平台组)
2. Android 端音视频测试(网易云信)
3. 腾讯会议如何进行视频质量评估与优化?
4. 关于 UGC、PGC、OGC 三者详细区别
5. 音视频质量评估绿皮书
6. 语音质量评估
7. 语音增强及质量评估的论文
8. VIPKID 音视频质量评估与感知系统


恭喜自己,因为做该方案,完成了自己的第一次知名开源项目的 pull request。

1、背景

视频电话功能,涉及实时音视频的质量评估。

音视频传输流程如下:
音视频传输流程如下

如图所示,影响音视频质量的因素有:

实时传输视频质量专项有:(不同网络环境下)

图片质量不能完全代表视频质量,这个一定注意。有疑问的,看下图(来源:腾讯会议)

2、音视频质量评估方案

2.1 视频评估方案

视频质量评估致力于评估视频的人眼感知质量,总的来说有两种评估方式:

客观质量评估算法大概分三类,主要取决于是否使用无损的源视频作为参考。

不同视频算法在视频数据库上的表现:
不同视频算法在视频数据库上的表现

通过调研发现,视频质量评估开源算法,暂时以 netflix 的 VMAF 的为准,后期会增加腾讯开源的 DVQA 评估(DVQA 的模型以 PGC 视频的,不适合 UGC 的用户场景)。
DVQA 开源版当前适用场景:

(1)netflix VMAF

2.2 音频评估方案

音频质量评估算法较多,从稳定性和评估纬度考虑,选择 PESQ 和 STOI 进行音频评估。
音频质量评估相关介绍及代码见:https://testerhome.com/topics/25054

(1)PESQ

(2)可短时客观可懂(STOI)

STOI:可短时客观可懂,是用来评估在时域上经过掩蔽或经过短时傅里叶变换且频域上加权的带噪语音的可懂性。计算 STOI 时,用时间对其的纯净与混合语音信号来计算每个音频通道 kk K ( =1, ,  ) 与 400ms 短时分段 mm M ( =1, ,  ) 的中间值 d km ( , ) 。首先,对纯净和带噪语音信号进行短时傅里叶变换,得到第 j 个频段第 n 个时间侦的短时能量谱 ( ) 2 X jn, 和 ( ) 2 Y jn, 。 将 j 个跨越 1/3 倍频带间隔的 ( ) 2 X jn, 和 ( ) 2 Y jn, 相加得到第 k 个音频通道的能量谱 ( ) 2 X kn, 和 ( ) 2 Y kn, 。带噪语音能量谱 ( ) 2 Y kn, 被限制为信号失真比不能低于−15dB。中间值 d km ( , ) 是 ( ) 2 X km, 和 第 k 通道 m 分段的带噪语音能量谱 ( ) ( ) 2 Y kn n N , 1, , =  的相关指数。STOI 评分 d 是带噪语音每个频带可懂性的平均值,表达式如下: ( ) , 1 , k m d d km KM = ∑ STOI 通过对纯净语音和待评价的语音进行比较从而得到评分,取值范围为 0-1。取值越高语音质量越好。

STOI 通过对纯净语音和待评价的语音进行比较从而得到评分,取值范围为 0-1。取值越高语音质量 越好。

git:https://github.com/mpariente/pystoi

2.3 流畅度评估

2.4 网络模拟工具

可通过模拟不同的网络环境,一方面验证 SDK 承诺的各项性能指标是否合格,另一方面验证弱网环境下的音视频质量。

(1)QNET 弱网测试工具

推荐使用 QNET,使用成本极低,且体验很好。
只需要在设备上安装 APP,并用 QQ 登陆即可。弱网模拟环境稳定、安装简单。

(2)network emulator

弱网测试工具:network emulator,微软开源,可实现带宽、丢包、延时、抖动、综合网络等弱网参数的限制。
弱网测试常用参数:
弱网测试常用参数

(2)facebook ATC

安装及使用参考:https://testerhome.com/topics/15562

2.5 好用的测试框架

FR:@rikiesxiao (叉叉敌)

3、参考资料

UGC 质量评估:评估对象为短视频、直播、实时视频通话等。

3.1 SDK 性能指标

(1)音视频 SDK 性能指标

腾讯数据来源:https://cloud.tencent.com/document/product/454/9867
推流状态数据:

获取播放的状态数据:

3.2 视频质量标准及算法

视频质量客观评估就是量化一段视频通过视频传输/处理系统时画面质量变化(通常是下降)程度的方法。

(1)视频评估算法对比


指标解析:

(2)腾讯会议开源的 DVQA

针对腾讯会议场景所开发的基于深度学习的实时视频全参考质量评估算法。

腾讯会议使用深度学习设计了一个新的网格,来自动学习视频质量的相关特征,然后在 PGC 数据集上训练得到一个通用的网格。

腾讯视频也开发了端到端自动的质量评测系统,这是整体的框架图。其实它的策略相对来说没那么复杂,就是在发送端播放源视频,经过可控的损伤网络之后,另一边是接收端,在接收端捕获会议呈现的画面,把这个画面拿出来再结合发送端的源视频去计算它的质量分数。前面提到的性能、码率这些绝对的指标都可以得到,抗性更多取决于什么样的网络情况下体验特别糟糕,时延、卡顿、音画同步、包括帧率都可以通过比对这两个视频得到结果。

(3)netflix VMAF

3.3 音频质量标准

PESQ 和 PQLQA 都是业界公认的语音音质评估算法;

(1)音频评估纬度

A. 绝对等级评分 (MOS)

<!--br {mso-data-placement:same-cell;}--> td {white-space:pre-wrap;}音频级别 MOS 值评价标准优 4.0~5.0 很好,听得清楚;延迟小,交流流畅良 3.5~4.0 稍差,听得清楚;延迟小,交流欠流畅,有点杂音中 3.0~3.5 还可以,听不太清;有一定延迟,可以交流差 1.5~3.0 勉强,听不太清;延迟较大,交流需要重复多遍劣 0~1.5 极差,听不懂;延迟大,交流不通畅
一般 MOS 应为 4 或者更高,这可以被认为是比较好的语音质量,若 MOS 低于 3.6,则表示大部分被测不太满意这个语音质量。
MOS 测试一般要求:

  1. 足够多样化的样本(即试听者和句子数量)以确保结果在统计上的显著;
  2. 控制每个试听者的实验环境和设备保持一致;
  3. 每个试听者遵循同样的评估标准。

B. 失真等级评分(Degradation Category Rating, DCR)

C. 相对等级评分(Comparative Category Rating, CCR)

(2)音频评估算法

A. python-pesq(PESQ)

B. 分段信噪比(SegSNR)

由于语音信号是一种缓慢变化的短时平稳信号,因而在不同时间段上的信噪比也应不一样。为了改善信噪比的问题,可以采用分段信噪比。

C. 对数似然比测度(LLR)

坂仓距离测度是通过语音信号的线性预测分析来实现的。ISD 基于两组线性预测参数 (分别从原纯净语音和处理过的语音的同步帧得到) 之间的差异。LLR 可以看成一种坂仓距离(Itakura Distance,IS),但 IS 距离需要考虑模型增益。而 LLR 不考虑模型增益引起的幅度位移,更重视整体谱包络的相似度。

D. 对数谱距离(LSD)

E. 可短时客观可懂(STOI)

0-1 范围,值越大,可懂度越高。

F. 加权谱倾斜测度(WSS)

WSS 值越小说明扭曲越少,越小越好,范围

G. 感知客观语音质量评估(POLQA)

POLQA,是一种全参考(FR)算法,可对与原始信号相关的降级或处理过的语音信号进行评级。它将参考信号(讲话者侧)的每个样本与劣化信号(收听者侧)的每个相应样本进行比较。两个信号之间的感知差异被评为差异。
PQLQA 的音质评估涵盖了可懂度、卡顿等听感信息;因为是有参算法,所以不适合用于变声一类的场景评估;除关心音质的评价值外,音质平稳性也会对听感有较大影响。

4.5 音视频处理工具 FFmpeg

(1)统计码率

ffmpeg -i  /Users/lizhen/Downloads/mask.mp4  -hide_banner

输出:

5、名词解释

(1)视频

(2)音频参数(参考资料)


↙↙↙阅读原文可查看相关链接,并与作者交流