51Talk音视频技术实践和独特挑战

2021-09-01 11:12:15 浏览数 (1)

本文来自51Talk技术总监陈靖在LiveVideoStackCon 2018热身分享,并由LiveVideoStack整理而成。陈靖回顾了51Talk音视频技术的演进路线,从最早的QQ、Skype到接入第三方SDK,最后实现大部分功能自研,每个阶段都是根据业务需求、研发力量、资金投入等各种条件下的最优选择。未来,51Talk还会继续投入自研,完善功能。

文 / 陈靖

整理 / LiveVideoStack

直播回放:

https://www.baijiayun.com/web/playback/index?classid=18082262448202&session_id=201808230&token=DpL1OkBGTopt681rrJ0J_Til14FNfvQ1CRvJqOsq_lxVJRwV6ZuPCmxR_Yy7pAxb9GAzd3EEQgEKp0fXMnVKLQ

今天的分享内容主要分为下面四个部分:

1, 51Talk介绍

2, 音视频发展历程

3, 独特的挑战

4, 对策与问题

一、51Talk介绍

首先简单介绍一下中国在线教育的用户规模和市场规模等情况。

先看一下从2012年到2018年中国在线教育的用户增长。从上图中可以看出,从2012年到现在,用户数量每年都会出现大幅度的增长,在用户规模扩大的同时,其增长率也在逐年增加。今年预计用户总规模会达到1.6亿,这也就表示平均每十个人里就会有一个在线教育的用户。

对应在线教育用户数量的增长,在线教育的市场规模也在同步增长,如下图:

从图中可以看出,在2019年,预估市场规模的增长率是有所降低的,由于资本寒冬,预计明年大家要准备打一场硬仗。下面介绍一下在线教育的市场结构:

在线教育的市场结构主要分成四个部分,包括高等学历在线教育、职业在线教育、中小学在线教育、企业E-learning,目前高等学历在线教育和职业在线教育的占比正在逐年下降,中小学在线教育的占比则是逐年提高的,而企业的在线教育基本处于稳定的状态。

51Talk是第一家上市的在线教育公司(2016年6月份),教育内容是英语口语。教育理念是“高频”,我们认为英语口语类的在线教育内容在”高频”的情况下才会更有效果,而“高频”也就对应要求着“低价”,所以我们聘用的菲律宾老师多一些。随着基础消费的升级,也逐渐开始选择少量的欧美老师用以满足高端的用户的需求。我们的业务模式除了1对1、1对N之外,还有公开课直播的形式。另外,我们的一个主要特点就是教材和技术均坚持自研,在整个在线教育行业里面,算是比较早进行尝试的。在一定的情况下,当面对一些比较尖锐的挑战时,自研是一条必须选择的道路。

二、音视频发展历程

我们从2011年起开始做在线教育,基本上是沿着这条发展历程走下来的。首先,我们尝试使用的是Skype和QQ,由于老师一般都在国外,选择让老师或者学生装上Skype/QQ来沟通是一种便捷的方式。但于此同时,存在一个很大的问题是没有办法知道上课是否成功以及效果如何,无法保证提供好的用户服务。从2014年起,我们开始尝试各种各样的SDK,试过当时市面上很多主流的SDK,然而效果都不是很好。在2016年下半年的时候,我们开始了自研SDK道路,采用的是基于WebRTC的架构,现在已经基本上98%都是用的自己的SDK。对于下一代SDK,我们会加入更多音视频算法的研发成果,因为我们这一代的算法SDK落地的情况并不是那么好,只能说相对比较稳定,能满足当前的需求。

三、独特的挑战

1、客户端平台的选择

在客户端平台的选择上,超过90%的老师选择使用Windows,其余使用的是MacOS;学生端使用的平台有iOS、Andorid、Windows、MacOS,如下图:

在前端的实现上就比较困难,因为必须支持所有这些平台。Windows最让人头疼的是版本问题,而且在当前的环境下,寻找合适的Windows工程师也会比较困难。我们的竞争平台有很多选择直接用网页来解决老师端的问题,这样老师可以在Windows或MacOS任意进行选择,不过网页也存在其它问题,有一些特效和比较高端的东西可能就没有办法使用了。

2、老师端硬件的噩梦

我们的老师主要是来自菲律宾,而老师的硬件条件是其中一个很大的难题。下图是菲律宾老师的硬件情况:

上图是一个CPU跑分的图,红色箭头指向的是我曾经在2012年用过的电脑的跑分,而这却比将近70%多的老师的CPU都要好,可见老师端的硬件条件有多么的差,低配的电脑搭配的Windows系统也是很老的,电脑里还可能包含很多的病毒,这些都给我们的开发和客户端带来很大的挑战。

3、极端的网络环境

除了硬件方面的挑战外,菲律宾的极端网络情况也给我们带来很大的困难。

上图是我们记录的一次网络故障的的详细网络情况,峰值代表事故引起的高延迟,左边为老师端的网络情况,右边为学生端的网络情况。其中三条线分别表示千分之一、千分之五、百分之一,纵坐标为毫秒。可以看出有约有千分之一的老师,在发生事故时,延迟达到了4秒,即使是在未发生事故时,延迟也达到了2秒,这样是很难进行交流的。

从菲律宾到香港的专线偶尔会出现事故,比如在去年年底,就曾经出现过专线断掉超过三周的情况。另外,从老师端到菲律宾的服务器也有很高的延迟,当然通过在菲律宾一段时间的运营,事实上我们也找到了一些比较好的解决方法,而这个方法也算是我们其中一个核心竞争力。此外,我们在国内的核心节点仅有两个,分布较少,边缘节点也相对较少,但是未来一定会加大部署力度。现在有一些CDN厂商提供了一种叫做ODN的服务,通过花钱购买可以灵活的选节点来当作边缘节点,相对比较灵活。

4、市场要求的个性化及人工智能

由于市场要求,我们需要用一些新的技术来吸引用户,吸引小朋友,尤其现在是转向青少年在线教育的市场,但这其中也有很多的挑战。

为了吸引用户,提升竞争力,我们会发展很多新的技术,自己研发或者跟其它公司进行合作。在上图中,就是在人脸识别的基础上加入了美颜以及一些道具,这里涉及到了AI技术,然后还有语音识别等。我们曾经与商汤进行了半年以上时间的合作,尝试把商汤的技术用在老师端为老师进行美颜,但由于硬件环境差的问题,电脑调用商汤科技的接口就会崩溃,这就使得我们很难应用第三方的这些技术。

5、为什么自研?

数据显示,我们的音视频问题有80%以上出现在老师端,奇怪的是,相对来讲老师是固定的,那么为什么会出现那么多问题呢?音视频类问题无非有两种原因,一种是电脑极其慢,CPU占用太多导致采集都跟不上,一种就是网络的原因。由于老师数量较多且大部分使用的机器比较旧,可能每天都会有老师端的电脑出现故障,部分老师可能发现了问题但不会马上解决,这种情况就需要自研怎样才能快速发现有问题的老师端。另外,对于个性化技术,用第三方的技术可能导致无法与老师端电脑适配,因此也就对应要求我们进行自研。

四、对策与问题

1、对策

主要分为六个方面来说说我们所做的一些工作:

1)WebRTC

我们的客户端是从Media Engine这一层来做的,相对来讲比较底层;媒体转发这一部分做的是简化的SFU;编码器选择的是VP9,但是用VP9做直播会出现的问题是: CDN厂商对VP9的支持不成熟,现在支持的最好的还是H.264的编码器。

2)对视频体验优化

首先,我们做了前景编码和背景虚化,最简单的做法就是结合人脸识别;对于SVC编码,我们做了时域分层和空域分层,但空域分层没有上线,因为根据现在的业务需求没有特别大的视频,在未来也许会用得上;对于视频FEC部分,通常编码一帧出来的结果会比较大,一个包放不下,这种情况下会拆分为几个包,然后对其进行FEC,但我们的场景下做法会有不同,未来有机会可以单独再做一次分享;最后是精彩片段提取,我们在流媒体框架加了一个录制,录制完成后,会根据一些语音、语速等截取一些比较好的片段。

3)对语音的优化

对语音的优化主要体现在前处理,包括降噪和回声消除,降噪等。我们的降噪处理现在是跟第三方合作的,是结合人工智能进行降噪处理,但是回声消除这块就是只有我们自己做,没有跟任何人合作,事实上我们曾经尝试过第三方的回声消除,但效果并不是特别好。另外一个是动态码率,对于语音编码会插入一些冗余,可能会是50%、一倍或者几倍的冗余,如果在带宽很小的情况下,插入冗余会导致体验变差,而动态码率的想法很简单,如果丢包很少就不要插入太多冗余。

4)流媒体架构

这一部分包含基于旁路的录制、监控、直播;对于录制,以前是在客户端完成,而现在是在服务端完成。

5)人工智能

主要包括人脸识别、语速检测、口语打分等。

6)算法性能优化

算法性能的优化是我们比较强的一部分,我们有一些原来做DSP工作的同事,算法级和汇编级的优化都做得很好,所以说在人脸识别和语速检测这块都是自己做了SSE、Intrinsic、ARM优化,GPU这块我们现在还没做,未来如果有需要会去做的,此外,GPGPU如果未来有需要的话也可以做。

2、问题

接下来我们思考几个这个行业里的问题:

1)技术能否彻底解决硬件和网络问题?

对于音视频技术或者说整个技术能不能彻底解决硬件和网络的问题,事实上是很难的,大家想一想刚才提到的在老师端的那些大“坑”,实际上你会发现在这块应该去结合运营去做,包括产品运营、老师运营、学生运营,这样才能发挥技术最大的价值,比如说要想搞定老师的电脑,可能从国内搞一批二手电脑过去,直接把老师的电脑提升一个档次,我们的竞争平台就没有这个烦恼,事实上,对于技术是很希望有强大的运营支持,能够把我们有些特别大的坑或者没有意义的工作直接给跳过,要不然真的浪费时间。

2)老师是员工还是用户?

这个事实上是我们公司的一个问题,就是我们即把老师当成员工,也会把他当成用户,当成用户是因为老师的留存是一个重要的问题。然而如果把老师当成员工,事实上你必须对他有要求,要求更新电脑、网络,家里装的是几兆宽带等。

3)在线教育的产品到底是什么?

作为一个在线教育的公司,如何去思考在线教育的产品到底是什么呢?它是我们做出的音视频平台吗?很多人都会说不是,也许一套好的教育流程、好的教育方法甚至好的老师才是在线教育这个行业一个最本质的产品,这就是为什么作为技术人员,有时会感觉到做的东西并不是公司最核心的,更多还是起到一个支撑作用,但是我还是呼吁大家更多的加入在线教育这个行业,这个行业真的是朝阳行业,有很大的潜力。现在在线教育的公司有两种定位,一种是科技教育公司,一种是教育科技公司,如果你定位是教育科技公司,那么你的本质是科技公司,比如好未来给自己的定位就是那样,这样一来,我觉得他们的技术走的就会很快,因为技术本身会给自己提需求,决定要上哪些功能,因为技术人员知道这个功能是好的,是代表一个先进的技术;如果你定位成一个科技教育公司,那你的视角就完全不一样了。

0 人点赞