摘 要:隨著網(wǎng)絡(luò)學(xué)習(xí)平臺(tái)在企業(yè)培訓(xùn)中的應(yīng)用,網(wǎng)絡(luò)考試質(zhì)量評(píng)價(jià)顯得尤為突出,只有嚴(yán)把網(wǎng)絡(luò)考試質(zhì)量關(guān),才能對(duì)網(wǎng)絡(luò)學(xué)習(xí)的質(zhì)量進(jìn)行準(zhǔn)確地評(píng)價(jià)。因此,有必要研發(fā)專門針對(duì)網(wǎng)絡(luò)學(xué)習(xí)平臺(tái)的分布式考試防作弊技術(shù)。
關(guān)鍵詞:網(wǎng)絡(luò)考試;分布式;防作弊
1 開發(fā)背景
網(wǎng)絡(luò)學(xué)習(xí)平臺(tái)在我國(guó)還處于新興事物階段,由于不受時(shí)間、地點(diǎn)、空間限制,且支持移動(dòng)(手機(jī)登錄)學(xué)習(xí)模式,受到廣大用戶的喜愛,已成為當(dāng)今最熱門的企業(yè)內(nèi)部培訓(xùn)模式。
隨著網(wǎng)絡(luò)學(xué)習(xí)平臺(tái)在企業(yè)培訓(xùn)中的應(yīng)用,網(wǎng)絡(luò)考試質(zhì)量評(píng)價(jià)日益突出,只有把好網(wǎng)絡(luò)考試質(zhì)量關(guān),才能對(duì)網(wǎng)絡(luò)學(xué)習(xí)的質(zhì)量進(jìn)行準(zhǔn)確地評(píng)估。因此,研發(fā)專門針對(duì)網(wǎng)絡(luò)考試平臺(tái)的分布式考試防作弊技術(shù)具有重要意義。
2 系統(tǒng)分析
網(wǎng)絡(luò)考試防作弊技術(shù)與在考場(chǎng)集中考試的防作弊技術(shù)有許多相同的地方,都需要用到攝像機(jī)采集圖像信號(hào),通過音頻采集部件和話筒采集現(xiàn)場(chǎng)的語音信號(hào)。對(duì)于考場(chǎng)來說,可以通過控制器來控制攝像機(jī)采集圖像信號(hào),以及控制話筒采集現(xiàn)場(chǎng)的語音信號(hào),并對(duì)其進(jìn)行壓縮抒包處理,然后通過網(wǎng)絡(luò)接口向外部發(fā)送。同時(shí),控制器還能通過網(wǎng)絡(luò)接口接收遠(yuǎn)端控制中心發(fā)出的控制指令,并根據(jù)控制指令,通過焦距控制器和視角控制器實(shí)現(xiàn)對(duì)攝像機(jī)焦距和視角進(jìn)行控制。
然而,在分布式網(wǎng)絡(luò)考試中所用的攝像機(jī)是學(xué)員自帶筆記本或臺(tái)式機(jī)上的攝像頭,話筒是筆記本或臺(tái)式機(jī)上的麥克風(fēng)。這就無法在服務(wù)器端控制學(xué)員的攝像機(jī)焦距和視角,在防作弊操作上存在缺陷。針對(duì)現(xiàn)有技術(shù)所存在的不足,提供一種基于網(wǎng)絡(luò)平臺(tái)的分布式考試防作弊系統(tǒng)和防作弊方法。
2.1 分布式考試防作弊系統(tǒng)構(gòu)想
基于網(wǎng)絡(luò)平臺(tái)的分布式考試防作弊系統(tǒng),包括相互連接的用戶端和服務(wù)端。其中,服務(wù)端接收用戶端傳輸?shù)目荚嚨顷戲?yàn)證信息并處理后反饋至用戶端,用戶端向服務(wù)端發(fā)送考試信息并存儲(chǔ)在服務(wù)端中。
用戶端包括考前登錄模塊、網(wǎng)頁(yè)攝像模塊、網(wǎng)頁(yè)錄音模塊、網(wǎng)頁(yè)異步提交模塊。
考前登錄模塊分別與網(wǎng)頁(yè)攝像模塊、網(wǎng)頁(yè)錄音模塊連接,網(wǎng)頁(yè)攝像模塊、網(wǎng)頁(yè)錄音模塊連接分別與網(wǎng)頁(yè)異步提交模塊連接;考前登錄模塊驗(yàn)證用戶的考試登錄信息并通過網(wǎng)頁(yè)攝像模塊、網(wǎng)頁(yè)錄音模塊發(fā)送至服務(wù)端,網(wǎng)頁(yè)攝像模塊、網(wǎng)頁(yè)錄音模塊分別采集圖像信息、語音信息傳輸至網(wǎng)頁(yè)異步提交模塊并通過網(wǎng)絡(luò)傳輸至服務(wù)端。
服務(wù)端包括服務(wù)端語音處理模塊、服務(wù)端圖像處理模塊、用戶考試記錄數(shù)據(jù)庫(kù)、作弊查閱和驗(yàn)證模塊:
服務(wù)端語音處理模塊、服務(wù)端圖像處理模塊與用戶考試記錄數(shù)據(jù)庫(kù)、作弊查閱和驗(yàn)證模塊連接,作弊查閱和驗(yàn)證模塊與用戶考試記錄數(shù)據(jù)庫(kù)連接;服務(wù)端語音處理模塊、服務(wù)端圖像處理模塊接收用戶端發(fā)送的考試登錄信息并傳輸至作弊查閱和驗(yàn)證模塊,作弊查閱和驗(yàn)證模塊驗(yàn)證考試登錄信息并反饋至用戶端;服務(wù)端語音處理模塊、服務(wù)端圖像處理模塊處理服務(wù)端接受的圖像信息、語音信息并存儲(chǔ)在用戶考試記錄數(shù)據(jù)庫(kù)中;作弊查閱和驗(yàn)證模塊,調(diào)取用戶考試記錄數(shù)據(jù)庫(kù)中的圖像信息、語音信息判定是否作弊。
2.2 分布式考試防作弊方法構(gòu)想
基于網(wǎng)絡(luò)平臺(tái)的分布式考試防作弊方法,包括如下步驟:
考前登錄模塊檢測(cè)防作弊考試環(huán)境并驗(yàn)證用戶信息,網(wǎng)頁(yè)異步提交模塊控制網(wǎng)頁(yè)錄音模塊、網(wǎng)頁(yè)攝像模塊實(shí)時(shí)采集用戶的考試信息發(fā)送至服務(wù)端。
服務(wù)端語音處理模塊、服務(wù)端圖像處理模塊分別對(duì)接收的用戶語音信息、圖像信息預(yù)處理并存儲(chǔ)在用戶考試記錄數(shù)據(jù)庫(kù)中。
管理員通過作弊查閱和驗(yàn)證模塊查閱預(yù)處理后的語音信息和圖像信息驗(yàn)證用戶的考試信息。
圖1 分布式考試防作弊系統(tǒng)的結(jié)構(gòu)示意圖
3 系統(tǒng)實(shí)現(xiàn)
3.1 用戶端實(shí)現(xiàn)
3.1.1 圖像信息采集
用戶在登錄頁(yè)面上輸入登錄信息時(shí),該登錄頁(yè)面中的JavaScript程序會(huì)調(diào)用錄音函數(shù)、攝照函數(shù)控制用戶端的攝像頭、麥克風(fēng)隨機(jī)拍照/錄像或錄音,得到隨機(jī)拍攝的照片/一小段錄像和錄下的一小段錄音。當(dāng)用戶提交登錄頁(yè)面時(shí),所錄下的聲音數(shù)據(jù)和所拍的照片數(shù)據(jù)/錄像數(shù)據(jù)一同傳送到服務(wù)端。
考慮到網(wǎng)絡(luò)傳輸速度差異,采用定時(shí)拍照傳輸圖片的方式。兼顧用戶作弊的動(dòng)作速度及網(wǎng)頁(yè)異步傳輸?shù)乃俣龋恼盏臅r(shí)間間隔定為3秒較合適。利用定時(shí)獲取的圖片,在服務(wù)端由機(jī)器輔助管理員隨時(shí)判斷用戶是否作弊,而不是監(jiān)考員在考場(chǎng)監(jiān)視或集中監(jiān)視,避免干擾用戶自主考試。
圖像信息采集實(shí)現(xiàn):在考試頁(yè)面添加JavaScript定時(shí)模塊:setTimeout(function()(要執(zhí)行的代碼),3000),其中3000的單位是毫秒,即每隔3秒執(zhí)行一次function的代碼。采用Flash來實(shí)現(xiàn)網(wǎng)頁(yè)的圖像采集和語音采集功能,為此需要使得JavaScript可以調(diào)用Flash的函數(shù)。Flash的AddCallback方法允許JavaScript調(diào)用其時(shí)間上的函數(shù),基本的調(diào)用語法如下:
External Interface.addCal lback(functionID:String, instance:Object,functionName:Function)。與call方法類似,它也是一個(gè)靜態(tài)方法,有三個(gè)參數(shù):functionID為從JavaScript調(diào)用ActionScript函數(shù)時(shí)可使用的名稱。此名稱不必與ActionScript方法的實(shí)際名稱匹配;instance是在該方法中被解析成的對(duì)象。此對(duì)象不一定是在其上可找到該方法的對(duì)象,可以指定任何對(duì)象(或1);functionName為要從JavaScript調(diào)用的ActionScript方法。
圖像信息采集時(shí),主要用到Flash的Camera類,加入以下代碼實(shí)現(xiàn)圖像信息采集功能:myCam=Camera. get();myCam. setMode(400,300,10);my_video.attachVideo(myCam)。再通過以下代碼實(shí)現(xiàn)視頻的撲捉:
function saveCamera(){
lv.bm = new Flash.display.BitmapData(400, 300,true,0);
lv.bm. draw(camera);
var tempObj=_root.createEmptyMovieClip(\"photo\",100);
tempObj._x=400; tempObj._y=300;
tempObj.attachBitmap(lv. bm,1);
}
3.1.2 音頻信息采集
為使服務(wù)端并行處理錄音文件,同時(shí)可分段對(duì)是否作弊進(jìn)行校驗(yàn),采用定時(shí)錄音并發(fā)送的方式。兼顧用戶作弊的交談時(shí)長(zhǎng)及網(wǎng)頁(yè)異步傳輸?shù)乃俣?,錄音時(shí)長(zhǎng)為30秒較合適。語音信號(hào)在服務(wù)端由機(jī)器判斷用戶是否有作弊嫌疑,避免干擾用戶自主考試。另外,考試開始前提示用戶選擇相對(duì)安靜的環(huán)境考試,避免服務(wù)端誤判作弊。
語音信息采集實(shí)現(xiàn):在考試頁(yè)面上的JavaScript調(diào)用Flash的下列類來實(shí)現(xiàn)用戶語音信息采集功能:
import org.as3wavsound.WavSound;
import org.bytearray.micrecorder.MicRecorder;
import org.bytearray.micrecorder.encorder.WaveEncoder;
import org.bytearray.micrecorder.events.RecordingEvent;
import Flash.display.MovieClip;
var recorder:MicRecorder=new MicRecorder(new WavEncoder() );
var player:WavSound;
recorder.addEventListener(RecordingEvent.RECORDING,onRecording);
recorder.addEventListener(Event.COMPLETE,onRecordComplete);
recorder.record();
recorder.stop();
new WavSound(recordar.output);
3.1.3 圖像、音頻信息傳輸
用戶在考試頁(yè)面上答題的時(shí)間一般較長(zhǎng),以3秒作為記錄時(shí)長(zhǎng)的圖像信息文件和語音信息文件需要及時(shí)送到服務(wù)端,而不能先暫時(shí)保存在頁(yè)面數(shù)據(jù)中。因此,每張考試網(wǎng)頁(yè)中都包含用AJAX寫的異步JavaScript腳本,其功能是將定時(shí)采集到的照片和語音信息推送到服務(wù)端。AJAX指的是異步JavaScript及XML(Asynchronous JavaScript And XML)。AJAX是一種獨(dú)立于Web服務(wù)器軟件的用于創(chuàng)建更好、更快,以及交互性更強(qiáng)的Web應(yīng)用程序的技術(shù)。AJAX應(yīng)用程序獨(dú)立于瀏覽器和平臺(tái)并被所有的主流瀏覽器支持,可使因特網(wǎng)應(yīng)用程序更小、更快、更友好。AJAX能夠涉及廣大的用戶、更易安裝及維護(hù),也更易開發(fā)。在AJAX中很好地定義了使用的Web標(biāo)準(zhǔn),AJAX基于下列Web標(biāo)準(zhǔn):JavaScript、XML、HTML和CSS。
通過使用AJAX,用戶的考試頁(yè)面可通過JavaScript的XML Http Request對(duì)象直接與服務(wù)器進(jìn)行通信。通過這個(gè)對(duì)象,用戶考試頁(yè)面中的JavaScript腳本程序在定時(shí)器的作用下,定時(shí)獲得該時(shí)長(zhǎng)內(nèi)的語音數(shù)據(jù)和圖像數(shù)據(jù),而后建立要連接的URL,打開到具有給URL的服務(wù)器的連接,并設(shè)置服務(wù)器在接收完數(shù)據(jù)后要運(yùn)行的函數(shù),最后發(fā)送請(qǐng)求。
3.2 服務(wù)端實(shí)現(xiàn)
服務(wù)端存儲(chǔ)有每個(gè)用戶考試的錄音文件和圖片文件,并且還存有服務(wù)端語音處理模塊和服務(wù)端圖像處理模塊理過的文件,作弊查閱可從語音信息和圖像信息兩方面來進(jìn)行。
3.2.1 音頻處理
音頻信息采用定時(shí)錄音并發(fā)送的方式,可使服務(wù)端并行處理錄音文件,同時(shí)可分段校驗(yàn)是否作弊。兼顧用戶作弊的交談時(shí)長(zhǎng)及網(wǎng)頁(yè)異步傳輸?shù)乃俣?,錄音時(shí)長(zhǎng)為30秒較合適。考慮到音頻信號(hào)會(huì)帶入背景噪音,利用這些幀的倒譜系數(shù)平均值作為背景噪聲倒譜系數(shù)估計(jì)值;計(jì)算每幀信號(hào)的倒譜系數(shù),計(jì)算每幀信號(hào)的倒譜系數(shù)與噪聲倒譜系數(shù)估計(jì)值的倒譜距離;按各幀倒譜距離得到倒譜距離軌跡;然后利用近似能量方法中門限判決的方法檢測(cè)語音段和噪聲段;最后處理得到語音的起始點(diǎn)和終止點(diǎn),通過中值濾波作處理;將處理過的波形數(shù)據(jù)連同原始錄音數(shù)據(jù)一同存入對(duì)應(yīng)數(shù)據(jù)庫(kù)中的表單內(nèi)。用戶在考試期間的所有錄音文件按時(shí)間先后順序,以時(shí)間軸上的輪廓模式展示在頁(yè)面中,極大地方便管理員查找用戶在考試時(shí)是否有作弊的行為。
目前,語言邊界檢查算法有許多,鑒于倒譜被認(rèn)為是語音信號(hào)一種較好的時(shí)頻表示,故采用倒譜系數(shù)法。倒譜系數(shù)包含線性預(yù)測(cè)倒譜系數(shù)(LPC2CEP)或Mel刻度倒譜系數(shù)(MFCC),這里用MFCC倒譜向量取代簡(jiǎn)單特征參數(shù)作為語音端點(diǎn)檢測(cè)的判決特征向量。信號(hào)倒譜可以看成是信號(hào)能量譜密度函數(shù)S(w)的對(duì)數(shù)的傅里葉級(jí)數(shù)展開:
(1)
其中,Cn是倒譜系數(shù),它是實(shí)數(shù),且Cn=C,logS(?棕)是信號(hào)能量譜密度函數(shù)。
(2)
其中,C0為倒譜系數(shù),d?棕表示對(duì)角速度進(jìn)行積分運(yùn)算。
對(duì)于一對(duì)譜密度函數(shù)S(?棕)和S'(?棕),應(yīng)用Parsavel定理可用倒譜距離來表示對(duì)數(shù)譜的均方距離:
式中,Cn和C'n 為對(duì)應(yīng)于譜密度函數(shù)S(?棕)和S'(?棕)的倒譜系數(shù)。
倒譜距離測(cè)量法根據(jù)每個(gè)信號(hào)幀與噪聲幀的倒譜距離的軌跡進(jìn)行檢測(cè),它采用門限判決的方法,其過程如下:
(1)假定抽樣信號(hào)的前幾幀信號(hào)是背景噪聲。利用這些幀的倒譜系數(shù)C0的平均值作為背景噪聲倒譜系數(shù)的估計(jì)值,用向量C表示。
(2)計(jì)算每幀信號(hào)的倒譜系數(shù),然后用式(4)計(jì)算每幀信號(hào)的倒譜系數(shù)與噪聲倒譜系數(shù)估計(jì)值的倒譜距離:
式中:C'n為對(duì)應(yīng)于Cn的倒譜系數(shù);P為倒譜系數(shù)的階數(shù)。
(3)由步驟(2)計(jì)算的各幀倒譜距離得到倒譜距離軌跡。然后利用近似能量方法中門限判決的方法檢測(cè)語音段和噪聲段。
(4)為使背景噪聲倒譜系數(shù)的估計(jì)值C能夠適應(yīng)噪聲的變化,采用一個(gè)平滑處理過程。背景噪聲倒譜估計(jì)C利用已經(jīng)檢測(cè)過的上一信號(hào)幀的倒譜向量,按照下式進(jìn)行更新:
C(k)=?滓C(k)+(1-?滓)C(k-1) (5)
其中,k為信號(hào)幀幀號(hào),C為上一信號(hào)幀倒譜向量,?滓為一個(gè)時(shí)間調(diào)整因子,并且這一幀被認(rèn)為是非語音幀。
(5)最后處理得到語音的起始點(diǎn)和終止點(diǎn),通過中值濾波作處理后,再將處理過的波形數(shù)據(jù)連同原始語音數(shù)據(jù)一同存入該用戶在用戶考試記錄數(shù)據(jù)庫(kù)中的表單內(nèi)。
3.2.2 圖像處理
圖像信息采用定時(shí)拍照傳圖片的方式。兼顧到用戶作弊的動(dòng)作速度及網(wǎng)頁(yè)異步傳輸?shù)乃俣?,拍照的時(shí)間間隔定為3秒較合適,即每隔3秒執(zhí)行一次function的代碼。圖像采集傳輸至服務(wù)端處理,由機(jī)器輔助隨時(shí)判斷用戶是否在作弊。
服務(wù)端圖像處理模塊在服務(wù)端對(duì)接收的圖像縮放處理過程是這樣的:原圖像長(zhǎng)為400像素,寬為300像素,現(xiàn)縮小到長(zhǎng)為80像素,寬為60像素。將接收到的每張圖像分割成多個(gè)小區(qū)域,這個(gè)小區(qū)域的長(zhǎng)為5像素,寬為5像素;找出每個(gè)小區(qū)域中每個(gè)像素點(diǎn)RGB值;對(duì)小區(qū)域中的像素點(diǎn)RGB值求平均值得到新的RGB值,進(jìn)一步通過小區(qū)域中各像素的R(紅)值之和、G(綠)值之和以及B(藍(lán))值之和,采用取平均值的方法求出該點(diǎn)的RGB值;將新的RGB值按照小區(qū)域的位置重新排列得到縮放后的圖片;將縮放后的圖片依序存儲(chǔ)在該用戶在用戶考試記錄數(shù)據(jù)庫(kù)中的表單內(nèi)。具體算法的語義描述如下:
For (w=0;w<80;w++){
For (h=0;h<60;h++){
Sum=0;
For (i=0;i<5;i++)
Sum+=rb[w*5+I,h*5]+rb[w*5+I,h*5+1]+rb[w*5+I,h*5+2]+rb[w*5+I,h*5+3]+ rb[w*5+I,h*5+4];
Nb[w,h]=sum/25;
}
3.2.3 管理員查驗(yàn)
服務(wù)端存儲(chǔ)了每個(gè)用戶考試期間的錄音、圖片原文件和處理過的縮小文件。管理員可以從圖像信息、語音信息兩方面檢查考生是否存在作弊嫌疑。
首先,管理員可以查看用戶的錄音處理文件,查看用戶被處理過的語音圖形信息,服務(wù)端將用戶考試期間經(jīng)倒譜處理后的坐標(biāo)圖形呈現(xiàn)在管理員的顯示屏上,它展現(xiàn)為時(shí)間軸上的輪廓信息,坐標(biāo)上有用戶語音的地方呈凸起圖形。若有凸起的輪廓,說明用戶在交談,管理員可認(rèn)為此時(shí)用戶存在作弊嫌疑,點(diǎn)擊這個(gè)凸起區(qū)域,可進(jìn)一步調(diào)取原始錄音文件進(jìn)行驗(yàn)證。管理員可聽到用戶此刻的原音回放,以此來驗(yàn)證用戶是否在交談。
其次,管理員可以查看用戶考試期間的圖像信息,由于圖片做了縮放,服務(wù)端一次就將256張小圖片呈現(xiàn)在管理員的顯示屏上。管理員可按PgDn鍵來看下一屏的256張小圖片,按PgUp鍵來看上一屏的256張小圖片。用戶一個(gè)小時(shí)考試的圖片僅需5個(gè)滿屏就可全部瀏覽完(用戶每隔3秒拍攝一幅圖片),相當(dāng)快捷方便。通過瀏覽圖片,就可回放用戶考試現(xiàn)場(chǎng)的情形,從而發(fā)現(xiàn)用戶是否存在作弊。
綜上,通過實(shí)時(shí)采集用戶的圖像信息和音頻信息,有效防止網(wǎng)絡(luò)用戶在自主考試時(shí)作弊,間接促使用戶切實(shí)從提高自身技能方面來加強(qiáng)網(wǎng)絡(luò)學(xué)習(xí),杜絕投機(jī)、僥幸考試現(xiàn)象發(fā)生,客觀反映每位用戶的技能水平,從而有效提高網(wǎng)絡(luò)學(xué)習(xí)平臺(tái)的使用效能。
參考文獻(xiàn)
[1]董爽,于麗娟.基于B_S模式的物業(yè)管理信息系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)[J].中國(guó)管理信息化,2010(6).
[2]蔡明朝.教育考試防作弊技術(shù)之人臉識(shí)別技術(shù)的應(yīng)用探討[J].關(guān)愛明天,2015(3).
[3]徐巧枝,劉東升.網(wǎng)絡(luò)考試防作弊系統(tǒng)的研究與設(shè)計(jì)[J].計(jì)算機(jī)教育,2010(5).
[4]劉思堯.在線考試系統(tǒng)防作弊策略研究[J].軟件導(dǎo)刊,2013,12(10).
[5]張艷軍.基于ASP.NET在線考試系統(tǒng)防作弊策略[J].2010,6(33).