首页 > 其他分享 >在线教育音视频质量评价与感知系统

在线教育音视频质量评价与感知系统

时间:2023-06-14 12:37:23浏览次数:34  
标签:系统 在线教育 用户 算法 评价 感知 音视频 卡顿

在线教育音视频质量评价与感知系统_音视频



为了探讨用一套客观,完备的评价系统对在线教育的音视频通信质量做出评价,力求做到定量,准确,横向可对比,并基于线上运行的大数据系统,发掘端到端通信平台存在的问题,找到优化方向,提升在线教育的用户体验,VIPKID音视频团队负责人张武峰在LiveVideoStackCon2019北京站上做了有关在线教育音视频质量评价与感知系统的分享。



文 / 张武峰


整理 / LiveVideoStack



大家好我是来自VIPKID的张武峰,今天我与大家分享的是在线教育音视频质量评价与感知系统。


我有二十余年的音视频开发经验,最早从事传统视频会议方向的探索,后来转向至3G、4G网络下的视频电话。 传统视频会议多由专网传输,目标是如何尽可能地实现出色的音画质量; 而消费级互联网基于公共网络的环境与专网有很大的不同,遇到的挑战相对于专网来说完全不一样,这就使得我在进入消费级互联网行业时发现,自己之前在开发基于专网的商业级音视频业务当中积累的知识与经验无法有效应对新的业务场景和开发痛点,知识体系的更新重组对我而言是非常有必要的。


 


2017年我加入了VIPKID,带领音视频团队探索如何更好地将实时RTC技术用于在线教育领域。 我之前一直从事技术方面的优化与创新,而这次选题我特意选取了QoE方向,就是因为探索了这么多年的技术,我发现技术最重要的是为实际应用场景带来具有建设性的优化改进,而质量评价与感知系统是其中最为关键的一环。 我们希望完整构建一套严谨专业客观的音视频质量评价与感知系统,从而为用户体验的优化与提升解决方案提供强有力的数据支撑。


 


我将基于以下四个方面开展本次分享



在线教育音视频质量评价与感知系统_特征提取_02



1. 用户痛点


在线教育音视频质量评价与感知系统_音视频_03


 


管理大师德鲁克曾说: 没有度量就没有优化,这句话用于音视频开发也非常恰当。 我们在之前的开发过程中就积累了许多教训,如在优化系统时我们就曾遇见这样的问题: 设计一项优化算法,设计初期我们预期该算法能将用户体验提升至新的高度,且我们也通过多种自证方式验证了其逻辑自洽,于是我们在预期成立的前提下为该算法投入资源进行开发,但在算法上线之后我们却发现其实际效果和预期存在很大的差异,该算法对于用户的主观体验没有带来改观甚至造成负面影响。 这一经验令我们思考: 音视频系统究竟需要一套怎样的标准才能准确客观评价算法的优劣? 在设计任何音视频系统或者针对系统当中某一点进行优化时,开发者一定需要先仔细思考如何借助数据准确合理度量正在开发的算法,不仅是从实验室角度度量更应当从用户角度度量。 这样无论是灰度测试还是频繁地版本迭代,甚至多个团队基于同一方向进行的优化竞争,确立好的度量标准就如一把尺子,可以准确客观衡量出算法可为用户体验带来多少提升与优化。


在线教育音视频质量评价与感知系统_数据_04



上图右侧饼状图展示了VIPKID用户所反映的针对产品所提出的五大关键问题(占比从高到低依次为: 网络问题、设备问题、行为问题、软件问题与课件问题)对于所有RTC开发者来说,网络问题永远是一项最艰巨的挑战; 而当用户数量达到一定规模时,不同软硬件平台设备、不同版本的软件适配问题也将成为一项亟待解决的重要命题。


 


而上图左侧展示了如果用户为我们的一项服务给出差评,其给出差评所选出的主要理由: (画面/声音卡顿、声音延时/画面不同步、声音不清晰与回声严重)。 需要注意的是由于用户并非专业的开发者,这里没有一个统一的标准去衡量这些问题。 例如什么是“画面卡顿”,有些用户可能会将摄像头故障等其他问题归类为”画面卡顿“,这就需要我们基于大量的用户数据进行筛选清洗与分析从而尽可能找出用户最关注的几项痛点。 在线教育属于一个重度依赖音视频技术的应用场景,故其暴露出来的音视频技术问题也会很多。


 


2. 评价体系


 


既然存在如此多而复杂的用户痛点,那么确立一套专业客观精准高效的音视频用户体验评价体系就变得尤为重要。



在线教育音视频质量评价与感知系统_音视频_05



上图表格展示了音视频评价的多个维度,用以评价一节完整在线教育课程的用户体验优劣。 首先在视频方面,用户对卡顿的感知最为敏感,而其统计方法主要是将帧与帧之间超过200ms的间隔视为一次卡顿,(卡顿时间/上课市场)=卡顿率,我们将5%作为引起用户卡顿感的阈值,数据主要来自客户端采集。


 


视频画面的清晰度则主要使用MOS分作为评价标准,也就是从原始录像中按照每分钟1帧的方式抽取I帧图像并为其清晰度赋予MOS分值,所得到的系统分值再与用户的主观感知评价进行匹配,最终得到的分值如果低于3分那么我们就视该视频画面清晰度不佳。 需要注意的是,这里的MOS分并非单纯基于肉眼感知的画面质量,而是基于综合视频编码与网络传输的参数,通过AI训练而成的一套算法为其赋分,数据主要通过录制上课视频得到。


 


音频方面,除了“清晰度”这样一项常见的指标之外,“声音大小”是我们根据用户反馈评价新增加的一项评价维度,这主要是因为许多用户反馈上课时感觉声音过大或者过小以至于听不清楚,发生这种情况多由于老师直播或录制课程时离话筒距离不当或录制设备不佳,也有可能是用户端的设置出现失误。 我们选取老师讲话的部分并计算其音量是否合适,低于30分我们就认为该片段声音大小不符合用户体验要求; 而“清晰度”则依旧使用常见的MOS赋分的形式,利用程序给目标录像片段的音频打分,低于3分我们认为该片段的音频清晰度不佳。 以上是我们确立的针对在线教育所设计的一套完整评价维度,作为技术团队的KPI来使用。 针对每一项,我们会有专门的团队负责优化与改进目标维度对应的算法与技术指标,以实现最优效果。


 


2.1. 视频卡顿率:


 


卡顿率的定义如下: 如果是1对1的视频应用场景,那么用户卡顿率为用户观看时间内帧与帧之间超过200ms的总时长除以用户观看总时长(课中用户在线时长); 而对于一对多的视频场景,我们会统计卡顿用户数占比也就是统计卡顿率大于等于5%的用户数并将该数字除以总上课人数(也就是进过教室10s以上的用户数)。 这里的200ms阈值其实算是一个比较严苛的标准,有一些互联网公司会将该数值确定在600ms左右,我们这样做是为了统计更多的卡顿案例并获得更多的数据以便于我们进行卡顿分析与研究,促使技术团队更出色地优化卡顿。 每一项指标在确立的时候都与应用场景强相关,这些指标虽然都与技术相关但其和用户主观感知一一对应。


 


我们为统计到的卡顿情况作出了如下级别细分,其中遇到1、2级别卡顿情况的用户占比约为5%,遇到3、4、5级别卡顿的用户平均占比约为18%。 这一数字在业内属于比较好的情况。


在线教育音视频质量评价与感知系统_特征提取_06


 


2.2. 视频打分算法流程


 


我们大概花费了两到三个月探索视频打分算法,在初期我们阅读了许多论文著作,发现业界还没有很出色的无参考视频打分算法。 当时也试验过其他厂商的比较成熟的算法也没有达到理想的效果,直接用一张图片训练无法实现收敛。 于是我们尝试换了一个方向,也就是从视频编码数据流当中抽取一些参数例如GOP帧宏块的大小,宏块的个数、丢包个数等以形成训练数据集,随后再使用该数据集训练打分算法模型。 我们将得到的模型与人工标记做对比,最终的效果符合我们的需求,和用户主观感知结果的匹配度大概在80%,该算法模型就固定下来并被我们用于后续的关键开发活动当中。


在线教育音视频质量评价与感知系统_音视频_07


 


2.3. 特征提取


 


特征提取的第一步是需要对文件进行解析,我们的线上课程视频文件基于不同的系统与格式,如mp4、flv、ts等等。 再将原文件统一成H.264/H.265码流之后,码流解码程序会解析得到解码后的图像序列,该图像序列会被导入场景检测程序以生成特征提取单元; 特征提取单元会在接下来的流程中被筛选,系统判断其是否超过最大序列长度,如果未超过,那么该特征提取单元会被直接输入特征提取程序以提取出有效特征; 如果超过,那么该特征提取单元会被依据最大序列长度做切分以生成符合序列长度要求的多条特征提取单元,这些特征单元会被输入特征提取程序以生成我们想要的特征数据。


 


在线教育音视频质量评价与感知系统_特征提取_08


2.4. 视频训练的关键参数


 


下图展示了训练该算法模型所需要的几项关键参数,其中包括宏块个数、帧的类型、宏块是否会丢包等。 这一部分训练所消耗的算力资源是比较多的,如果想获得比较出色的训练效果,服务端强大且可靠的硬件支持必不可少。


 


在线教育音视频质量评价与感知系统_特征提取_09



2.5. 声音质量P.563



从事音频质量评价的朋友应该不会对该声音质量评价模型感到陌生,该算法模型于2004年被提出。 无论是音频还是视频,所有全参考的打分算法在线上系统都是不可用的。 我们无法直接调取发端和收端的数据套用全参考算法,故面对线上音视频场景所使用的打分算法一定是单边的无参考算法。 P.563就是这样一套可靠的单边算法,其不依赖发端数据,仅需收端数据即可直接运算得到评估分数。 大致流程如下图中显示的那样:


在线教育音视频质量评价与感知系统_数据_10


 


首先,提取的原始数据会经由预处理后进行话音参数特征的提取与计算,所得到的参数会被归类为多种失真类型,按照不同的失真类型选取对应的话音质量模型从而得到准确客观的MOS分数。 之前我们提到了评价维度里面有一项是音量大小,而P.563在预处理的过程中就会计算得到Active speech level adjustment这样一个参数,我们将4ms帧长下的Speech Level作为声音大小,取值范围是1~100,连续3帧以上超过阈值为不合格,反之则会被当成背景噪声过滤,从而我们得到了评估声音质量所需的所有关键评分。


 


2.6. 质量分析系统


 


之前我们介绍了如何获取算法,而在获取到准确算法之后,如何部署大批量的质量分析与数据运算便成了接下来的另一项关键命题,为解决该命题我们设计了一套支持全局任务调度的分布式质量分析系统: 接口层的HTTP接口与公司的BI系统对接,BI系统会下发质量分析任务,由HTTP接口传输至任务生成层; 任务生成层会根据上层所下发的任务清单合理进行任务分配,以充分高效利用计算资源; 分配结果传递至Job Server Node,Job Server Node会将任务真正下发至任务消费层CmqaWorker系统,而每个Worker下层的Audio-quality-evaluation或Video-quality-evaluation等会实际执行计算任务。 在-quality-evaluation进行评估计算时,CmqaCollector会收集相关数据并存储到DBI,每一次任务分发时,Cmqa Master会从DBI当中调取数据以获知哪些计算资源是空闲的或者任务负载较低,以合理科学高效分配下发任务。 该任务系统主要会在每天结束所有课程后的夜间22:00~次日08:00运行以避免影响实时上课,当然有些特殊数据需要在白天上课时同步进行,所以整个系统一直处于24小时不间断运行状态。


 


在线教育音视频质量评价与感知系统_数据_11


 


3. 质量感知


 


3.1 海豚系统



在线教育音视频质量评价与感知系统_音视频_12


 


我们将基于以上评价体系构建的质量感知系统成为“海豚系统”,该系统全天运转,用以感知整个基于在全球四十多个节点部署的超过一千五百多台服务器的上课系统。 通过该系统我们可以及时获知那些节点出现异常,甚至精确到哪个用户出现问题。 像VIPKID多为付费产品,用户对于产品体验的要求很高,我们必须提高所有技术标准并尽可能精确快速处理危机故障。 整个质量感知系统的架构如下: 首先底层的数据来源于SDK上报日志(音视频的SDK,包括音频视频帧率、卡顿率、用户所使用平台版本、摄像头数据等,其贡献数据最多)、客户端打点(用户行为)、服务端日志(自建流媒体加速系统的流媒体服务、信令服务、工作状态等)、BI数据与QOS数据(来自音视频之外的其他数据),数据拉取与采集之后会进行数据清洗,这些清洗好的结构化数据会被赋予一定标签,继而便于接下来的多维分析预处理数据,最后通过统一的数据接口将数据传输至分析与查询服务系统。 该系统由以下三大职责: 标签系统和多维分析: 便于精细化课程分析与快速响应数据分析需求; 实时预警: 可以对动态问题与节点故障进行预警; 问题挖掘: 用于传输算法模型、产出智能覆盖模型,同时挖掘问题设备。


在线教育音视频质量评价与感知系统_数据_13


 


上图展示的就是我们基于该质量感知系统制作的实时监控大盘。


 


3.2 核心指标


 


下图展示的核心指标,用于实时课程质量追踪、问题统计以及客户端发版前后对比。 所有课程的分析结果会产生标签,例如采集卡顿率数据,我们知道卡顿率和帧率是正相关的,正常的帧率为15FPS,但有些用户的帧率为5FPS,这些就属于遭遇卡顿问题的用户。 每一节课都会被打上许多标签,而真正的问题分析是通过分析某些标签突然异常变多或者这一节课出现多个异常标签,我们在定位问题时也是通过标签来确定。


在线教育音视频质量评价与感知系统_音视频_14



3.3 实时指标趋势跟踪


 


下图展示了实时指标趋势跟踪,可以看到不同地区网络覆盖情况差异很大,这也是我们优化调参的重要依据。


在线教育音视频质量评价与感知系统_数据_15


3.4 单节质量追踪


 


下图展示的是以时间作为纬度统计一节课的质量变动情况。 对一节课关键性事件、上课过程中的质量变化跟踪、整节课的质量评价,主要面向SDK研发、后端研发等业务人员。


在线教育音视频质量评价与感知系统_数据_16


 


3.5 排查问题


 


在线教育音视频质量评价与感知系统_数据_17


房间的时间打点主要用于问题追踪与排查,并与用户反馈相对应


4. 总结



在线教育音视频质量评价与感知系统_音视频_18



我们的整套系统还存在许多可以进一步改进的地方,例如基于录制文件的评价标准不能完全体现下行质量,课程量大了之后服务端计算资源消耗比较高,基于参数的视频质量评价算法和Codec类型相关,不同的码流需要重新训练等等。 这也是我们未来努力探索的方向。



标签:系统,在线教育,用户,算法,评价,感知,音视频,卡顿
From: https://blog.51cto.com/u_13530535/6476642

相关文章

  • 音视频技术开发周刊(第128期)
    架构大家都切换到UnifiedPlan了吗? 忽悠,继续忽悠统计的数据。在Chrome中使用WebRTCICE服务器进行端口扫描这真是相当不错的。不知道将开放多长时间。浅谈WebRTCNetEQWebRTCNative代码里面有很多值得学习的宝藏,其中一个就是WebRTC的NetEQ模块。根据WebRTC术语表......
  • 音视频技术开发周刊 | 134
    架构Peer5与其他ECDN技术如今,公司依靠基于云的视频平台将内容流传输给员工。不幸的是,无论云基础架构有多强大,流质量和并发收视率都受到办公室ISP连接能力的限制,而在大型视频事件中,办公室ISP连接的能力很快就会饱和。当所有员工同时开始观看视频时,根本没有足够的带宽来使用。https:/......
  • 音视频技术开发周刊 | 136
    架构WebRTC之addTransceiver()与addTrack()addTrack()Firefox74加强了附加安全性特性,简化了从MicrosoftEdge的数据导入方式Firefox的WebRTC中不再支持TLS1.0/1.1。https://betanews.com/2020/03/10/firefox-74/使用全参考模型评估WebRTC应用中的视频和音频的QoE(......
  • 各种音视频协议技术及特点
    IP协议网络层协议,主要负责将数据包发送给最终的目标计算机,无状态、不可靠无连接协议无状态:无状态是指IP通信双方是不同步传输数据的状态信息。所有IP数据报的发送、传输和接收都是相互独立。无连接:无连接是指IP通信双方都不长久的维持对方的任何信息。上层协议每次发送数据的......
  • JavaCV音视频开发宝典:使用JavaCV读取海康平台或海康网络摄像头sdk回调视频TS码流并解
    《JavaCV音视频开发宝典》专栏目录导航《JavaCV音视频开发宝典》专栏介绍和目录​前言两年前博主写了如何利用JavaCV解析各种h264裸流,《JavaCV音视频开发宝典:使用javacv读取GB28181、海康大华平台和网络摄像头sdk回调视频码流并解析预览图像》,但是随着时间变化,各个厂商sdk也......
  • 互动协作白板与音视频实时同步技术实践
    本文整理自即构科技互动白板技术负责人陈晓聪在LiveVideoStack的线上分享,内容主要围绕白板与音视频的同步和白板的多端实时互动两个角度,深度解析即构在互动白板方面的技术探索实践。文/陈晓聪整理/LiveVideoStack大家好,我是来自即构的陈晓聪,现在主要负责互动白板的技术研发工作......
  • 流媒体发展新趋势 p2p网络技术 p2p穿透 p2p音视频解决方案
    一、流媒体系统及其发展趋势 所谓流媒体是指用户通过网络或者特定数字信道边下载边播放多媒体数据的一种工作方式。流媒体应用的一个最大的好处是用户不需要花费很长时间将多媒体数据全部下载到本地后才能播放,而仅需将起始几秒的数据先下载到本地的缓冲区中就可以开始播放,后面收......
  • CRI陆宵吴:夯实底层,音视频技术未来不远
    目前,音视频技术的应用越来越火爆,这也让音视频技术从曾经一个比较小的子系统,越来越让人瞩目,而市场的需求与人才的缺乏也越来越成为一个亟需解决的矛盾。LiveVideoStack特别采访了陆宵吴经理,请他以资深从业者的角度,讲述了他对音视频技术的理解。 讲师信息 陆宵吴,CRI中国的技术经理,......
  • 音视频技术开发周刊 | 226
    每周一期,纵览音视频技术领域的干货。从体验出发构建以增长为目标的视频服务体系增长一直是业务的诉求,和增长相关的因素很多,内容、人群、创意玩法、性能体验等等,本次LiveVideoStackCon2021音视频技术大会北京站我们邀请到了火山引擎点播技术研发负责人——浩铭老师。本次分享聚......
  • 音视频技术开发周刊 | 224
    每周一期,纵览音视频技术领域的干货。高性能且灵活的iOS视频剪辑与特效开源框架–VideoLab随着移动互联网时代的到来,短视频成为了最流行的内容载体,而内容的产生离不开视频剪辑与特效创作工具。本次LiveVideoStackCon2021音视频技术大会北京站,我们邀请到了RingCentralVideo......