1. 程式人生 > >線上教育音視訊技術探索與應用

線上教育音視訊技術探索與應用

640?wx_fmt=jpeg


隨著實時音視訊通訊技術的發展,1對1,1對多直播等線上教育形式不斷的滿足個人定製化的學習需求。掌門1對1音視訊負責人 曾小偉在LiveVideoStack 線上交流分享中介紹了線上教育中音視訊技術的應用現狀、挑戰以及未來的發展。本文由LiveVideoStack整理而成。


文 / 曾小偉

整理 / LiveVideoStack

直播回放 

https://www.baijiayun.com/web/playback/index?classid=18120589731745&token=Y70ES34BeD3hKKZLIMQ5htJW7QTXpNFvF3HfaEnKnKsX8VWf2DfBnRl2q5tNi5GNCqdH1zJ1Si0


大家好,我是來自掌門1對1的曾小偉,本次跟大家分享一下線上教育領域音視訊技術的探索與應用,分享內容主要分為以下四個部分:


1,線上教育場景剖析;

2,線上教育中音視訊技術應用的現狀及難點;

3,線上教育領域音視訊技術的發展;

4,總結;


一,線上教育場景剖析


1. 1v1教學

 

640?wx_fmt=png


首先為大家介紹的線上教育場景是“1對1”教學,上圖是掌門1對1官網的一幅宣傳圖,它講的是一個1對1教學的場景,就是一個老師和一個學生在一起上課的情景。我們將圖中的場景進行了分析簡化。

 

640?wx_fmt=png


從簡化過的圖中可以看出,1對1教學時,上課的主角就是學生和老師,在課件區域的右上方會顯示自己的視訊和對方的視訊,而學生和老師關注的重點部分是課件區域。另外同樣包包含一個聊天區域,方便大家進行一些文字的交流;課件區域一般會選擇上傳PPT或PDF格式的課件,但同樣存在一些自定義格式的複雜課件。同樣,在這個區域也能播放一些視訊或者小遊戲;視訊區域,主要是為了使得學生和老師之間的互動與交流更好一些。而聊天區域,就是文字溝通的渠道,當聲音斷了或需要需要說一些比較長的字元時,用文字區域表達會更好一些。


640?wx_fmt=png


在1對1的教學場景中,除了學生和老師之外,還有一些隱藏的參與者。除了客戶端,在這個場景中還需要有三個比較重要的服務端的參與,分別是音視訊的伺服器、課件伺服器、IM伺服器。音視訊伺服器就是我們這邊的一個WebRTC的轉化伺服器;課件伺服器就是向大家提供課件資源以供下載;IM伺服器就是提供大家聊天的伺服器,類似於騰訊QQ或微信的服務端;服務端錄製會將課程內容進行錄製;此外,還有家長端和監課端。家長端為只讀的模式,它在遠端進行拉流,可以觀看上課內容但不能參與。監課端則是屬於線教育公司的行為,它是線上教育公司的質檢部門觀察所聘請老師的教學質量的手段。基本上,我們可以這樣認為,一個1對1的教學場景中,學生和老師一定會在,家長偶爾會在,監課在的機率會更少一些。接下來,簡單介紹一下1對1教學的架構,如下圖:


640?wx_fmt=png


在1對1教學的架構中,客戶端包含比較重要的幾部分:一個是需要音視訊的SDK;一個就是課件的實現,比如怎樣展示一個PPT或PDF,在課件展示的上層還有白板,老師可以在課件上寫字,推導公式或者劃出一些重點,學生可以看見老師書寫的內容;在這裡還有一個聊天模組,是一個聊天的SDK,對接IM的服務端;最後,客戶端還有一些其它部分,包括課堂服務等。在服務端主要是三個伺服器:音視訊伺服器、課件伺服器和IM伺服器。當前的1對1教學比較適用於教學內容定製化高、需要全科輔導的年紀稍大的學生。


2. 1vN教學


640?wx_fmt=png


線上教育中比較常見的另一種場景就是“1對N”教學,這裡的N一般特指兩到六個學生。當學生數量超過六個時,一個老師難以管理。那麼,為什麼低齡的學生不太適用於1對1的教學場景呢?通過一些教育心理學的實驗可以發現,年紀比較小的小朋友更喜歡大家在一起學習,小朋友喜歡搶著舉手回答問題,人多會提高他們的積極性;但是學生超過六個則會變得比較嘈雜,老師也難以管理。和1對1教學比起來,這種教學場景只是學生多一些,在服務端沒有什麼變化,但由於學生多一些,去監課的家長也會多一些,因此在同一個房間裡面,要支援的視訊的路數會更多一些。


3. 大班課場景


640?wx_fmt=png


另外,第三個場景就是一個大班課的場景。大班課場景就是有點類似於我們在教室裡面上課,是一個老師在講臺上講,幾十個或者更多學生在下面聽課,這種場景類似於網紅直播的方式。大班課場景的講師會一直講課,直到課程末尾的時候才會進行答疑環節,學生則通過連麥來提問。在服務端有一個音視訊伺服器,更加偏向於CDN廣播,另外還有一個音視訊連麥伺服器,這個連麥伺服器跟WebRTC的這套技術就比較類似了,同樣它也有課件伺服器和IM伺服器。在客戶端,與1對N的客戶端架構類似,但因為不用考量學生跟老師之間的互動情況,因此監課的需求也就沒那麼高了。


4. 其它


640?wx_fmt=png


最後,我們講一下線上教育中的一些其他場景,剛才介紹的都是一些需要用到音視訊技術或者是通過直播技術實現的線上教育的場景。除此之外,還有一些基於點播的教育場景,如MOOC、網易雲課堂等;還有和音視訊無關的,如線上搜題解題、閱讀、背單詞等。


二,線上教育中音視訊技術應用的現狀及難點


640?wx_fmt=png


首先在1對1和1對N的場景中,老師和學生需要相互看到對方,因此音視訊技術一般應用在頭像區域的視訊通訊中。這裡涉及到的音視訊的特點,核心在於一個字就是“低”。第一,解析度低。正如你們現在在直播間看我分享一樣,我的頭像解析度就是非常低的,大家關注的重點在於PPT的內容而並非分享者本人。簡單的說,在1對1教學的時候,只要能保證能看到老師和學生大概長什麼樣子就可以了,不要求高解析度。第二,幀率低。幀率低與場景有關,因為老師在講課時不會有那種劇烈的動作,所以幀率低一些也可以。另外,我們知道一個事實,當解析度越高的時候,需要更高的幀率才能讓視訊沒有卡頓感,而線上教育基本上是240P的解析度,幀率為15幀每秒就足夠了。第三,位元速率低,在解析度和幀率都低的情況下,我們編碼出來的視訊位元速率就很低,加上場景中對視訊質量的要求也並不是特別高,在編碼時,通過設定一些質量引數,可以進一步地把位元速率壓縮得更低。第四,延遲低,學生跟老師之間的溝通延遲最好在300毫秒以內,大家交流才比較好。當大家用微信語音或微信視訊去跟朋友聊天時,如果說你們兩個中有一個人的網不好,就會延時很高,變得卡頓起來,導致體驗很糟糕,所以這裡也是同樣的,我們希望延遲能夠儘量的低,老師說完一句話,學生馬上就能夠得到反饋。


640?wx_fmt=png


除了剛才說的四個低之外,在1對1、1對N的場景中,還有如下特點:首先,音訊傳輸優先,一般來說,在上課時,老師的畫面卡幾幀或者卡幾秒都不是問題,但是聲音不能斷。其次,因為現在是移動網際網路的時代,用作客戶端的裝置種類繁多,它們所帶的攝像頭、麥克風等硬體質量參差不齊,對這些裝置進行媒體採集後,視訊做起來就非常的麻煩。需要對音訊進行迴音消除及降噪處理。最後,我們常用的一些音視訊編碼格式在當前場景中不一定是適合的,比如說,現在WebRTC裡面音訊格式是Opus,視訊格式是VP8,當然也支援H.264,但是最好是沒有雙向預測幀的,否則會導致延遲進一步增大。總結一下,以上這些就是線上教育中音視訊的基本特點,而其中最重要的關鍵點就是低延時。


640?wx_fmt=png


為了實現低延遲,目前市面上使用最多的直播技術有RMTP、HLS、Dash等,但在這種1對1、1對N的教學下,基本上是無法使用的,隨隨便便延遲就會達到3~5秒。目前基本上採用的都是基於UDP/RTP的直播技術,而做得相對比較成熟的就是WebRTC了。現在各大線上教育以及一些音視訊通道服務供應商的自研方案,基本上都是基於WebRTC開源方案或者參考了WebRTC的方案提出來的。我們常見的WebRTC連線方案有三種,第一種是Mesh,就是所有的客戶端都是P2P的;第二個種是MCU,大家都把流發到一箇中間的MCU上,進行混流之後,分發到每個客戶端。其好處就是每個人的頻寬低,缺陷是延遲會稍高一些;第三種是SFU,也是最常用的,就是每個人都把自己的流都推上去,服務端只做轉發,人越多的時候,流的數目就越多。


640?wx_fmt=png


線上教育領域中,我們為什麼選擇SFU架構呢?原因有兩點:第一,相對於Mesh結構來說,SFU提供的是一個優選過後的由供應商保障的轉發線路,穩定性更高,延遲或者丟包率會更低。第二,如果選用MCU,服務端的轉碼會帶來一定的延遲。線上教育場景中每一路視訊的位元速率一般來說是200~300kbps,當同時存在2~3路,對於現在的寬頻和4G來說,問題也不大,而且我們也會考慮編解碼的消耗,當解析度很低時,編解碼的CPU記憶體消耗也是不大的。在這裡我們還需要注意兩點:第一,就是1對1和1對N的場景在SFU轉發時的位元速率控制策略是不一樣的。舉例說明,當只有一個老師和一個學生的時候,SFU轉發的時候,當學生髮現老師出現卡頓情況之後會告知老師端發慢一點,老師就會把自己的位元速率降低一些。而當1對N的時候,可能眾多學生中的一個告訴老師出現卡頓後,老師將自己的位元速率調低了,則有可能導致同一房間內剩餘的學生看到質量比較差的碼流。所以1對N的時候,SFU轉發策略會進行不同的處理,如果只有一個學生卡頓,可能會忽略,或者位元速率降的程度會縮小一些;第二,在直播的時候,我們其實可以把課件通過直接抓屏或者抓取一個視窗得方式,通過音視訊通道放出去。那麼為什麼我們一般不採用這種方式,而是直接選用課件服務和白板的信令同步策略呢?因為如果用音視訊通道的話,可能需要與頭像區域的音視訊之間做一個同步,另外,白板的解析度要達到720P,一般需要1Mbps左右的位元速率,當位元速率升高時,卡頓的風險以及編碼和網路消耗都增加了。


640?wx_fmt=png


接下來,介紹一下大班課場景下的特點,大班課非常類似於網紅直播,技術架構也非常像,直接採用穩定的TCP模式做直播,然後就是用CDN,成本比用UDP傳輸的WebRTC自建要低很多。另外,也有一些企業採用的是SFU架構的WebRTC方案,其目的可能是出於資源的複用。除此之外,大班課的課件可以選擇通過視訊傳輸,這時候頻寬消耗會大一些,但是它的客戶端相容性會好一些。


三,線上教育領域音視訊技術的發展


640?wx_fmt=png


目前音視訊領域中,各種AI/AR技術也逐漸的在發展和落地,在有些方面已經成熟或有一定精湛,比如說現在比較常見的人臉檢測、背景分割、手勢識別、情緒識別、視線估計、美顏、動態貼紙、超分技術和語音檢測等。


640?wx_fmt=png


下面會大概介紹一下基於上述一些技術的應用場景:第一,登入檢測,就是採用人臉識別檢測技術。第二,課堂背景更換,就是基於背景分割,舉例說明,因為線上教育的有些老師是在校大學生,上課的地方也許是在自己的宿舍裡,環境複雜。如果說可以把背景分割出來,更換統一的幕布,可減少一些對學生的環境干擾。第三,教學質量檢測,通過視訊裡面的學生的情緒檢測、視線識別,語音檢測,來評估課堂的教學質量。舉例說明,老師和學生上課的時候,學生的視線長期盯著螢幕看,就證明他可能是發呆了;在上課過程中我們識別出學生的情緒是疑惑,那麼有可能是老師講的點他沒有理解,如果我們把結果實時反饋給老師,老師就可以再把這個問題再講一遍,進而提升課程質量;還有語音檢測,即通過學生和老師的一些交流情況來判斷課程的質量。第四,課堂趣味互動,基於手勢檢測和動態貼圖以及人臉檢測技術。舉例說明,快到聖誕節了,對於一些年紀比較小的學生上課的時候,如果他的問題答的好,老師對他比一個大拇指,通過手勢檢測,在學生的客戶端上顯示一個貼圖,提升學生的學習興趣。第五,超解析度重建,正如前面所講,以200~300kbps的位元速率傳輸240P的視訊給對方,但是有時候老師或者學生希望對方的視訊能夠看的更清楚一些,這時候我們可以重新發送請求,讓對方重新連線一下,傳送一個更清楚的視訊。但如果說我們能夠在本地,通過超分辨重建技術,將視訊做的更清晰的話,就可以帶來更好的體驗,而且傳輸的頻寬會比較低,不過會犧牲一些計算資源,通過計算資源換取頻寬。


四,總結


640?wx_fmt=png


總結一下,當前線上教育領域的音視訊技術的應用和傳統的點播、直播技術有共同點也有區別,主流的音視訊領域都在追求超高解析度和較高的幀率,但是線上教育行業只是在傳輸延遲方面的要求是最苛刻的。隨著5G網路和一些高效能硬體的普及,線上教育領域音視訊的解析度、位元速率也會隨之提升,延遲也會進一步降低,但上升的速度肯定是比不上傳統音視訊領域的。另外,低解析度還會帶來一些麻煩,舉例說明,在視訊AI技術裡面一般都會用神經網路去訓練一些模型。在訓練模型時,大部分演算法工程師的處理都是基於解析度比較高的部分做的,這種比較低的解析度在訓練的時候會比較麻煩。而且除了線上教育之外,其它一些比較常見的場景,基本上解析度會越來越高。因此,能夠在線上教育的低解析度上面應用視訊AI技術也是一個挑戰,但是線上教育依然是一個非常火爆的領域,並且是在不斷向前發展的。



精品文章推薦




技術乾貨: