楊云海,章芬芬
(韶關(guān)學(xué)院信息科學(xué)與工程學(xué)院,廣東韶關(guān)512005)
一種語音課堂考勤系統(tǒng)的設(shè)計與實現(xiàn)
楊云海,章芬芬
(韶關(guān)學(xué)院信息科學(xué)與工程學(xué)院,廣東韶關(guān)512005)
課堂考勤工作是教師必須開展的一項日常教學(xué)管理工作,傳統(tǒng)的考勤方式、登記辦法和統(tǒng)計方式都存在費時費力、效率不高的問題.使用信息技術(shù)開發(fā)一種語音課堂考勤系統(tǒng)輔助教師進(jìn)行課堂考勤以及記錄、統(tǒng)計等工作,可在一定程度上減輕教師在課堂考勤和考勤統(tǒng)計方面的工作量.
課堂;考勤;語音;數(shù)據(jù)庫
課堂考勤是教師的一項日常教學(xué)管理工作,是學(xué)校教學(xué)管理工作的重要組成部分[1].采用傳統(tǒng)的考勤辦法:教師點名、手工記錄缺勤情況的方式,不僅需要花費較多的課堂時間,通過手工記錄得到的紙面的缺勤記錄材料也不方便查對和統(tǒng)計.因此,采用傳統(tǒng)方法開展課堂考勤工作,效率不高.設(shè)計、開發(fā)一種語音課堂考勤系統(tǒng),使用計算機(jī)進(jìn)行播報學(xué)生名冊、登記缺勤記錄等工作,可以縮短課堂考勤所需要的時間,同時,電子化的考勤記錄也更方便管理,對提高教師的考勤工作效率有一定的幫助[2].筆者根據(jù)教師在課堂考勤工作的需求,開發(fā)了一個簡單易用的課堂考勤管理系統(tǒng).
作為一個簡單易用的課堂考勤管理系統(tǒng),系統(tǒng)的功能比較簡單.按軟件各部分實現(xiàn)的功能,可以劃分為幾個主要模塊(見圖1).

圖1 語音課堂考勤系統(tǒng)功能模塊的劃分
1.1 班級管理
教師在一個學(xué)期(或一段時間內(nèi))為多個班級授課的情況比較普遍,可以把多個班級的名單導(dǎo)入到系統(tǒng)中,當(dāng)要對特定的班級進(jìn)行考勤時,可以通過查找、篩選得到該班級學(xué)生的名單,以便按名單進(jìn)行考勤.選定特定的班級后,系統(tǒng)還能自動統(tǒng)計出班級人數(shù)(即要進(jìn)行考勤的人數(shù)).
1.2 考勤語音播報與同步顯示
計算機(jī)以語音的形式逐一播報學(xué)生名單,同時,正在播報的學(xué)生姓名以較大的字體同步顯示在顯示器上(以方便接投影播放).如學(xué)生缺勤,教師通過點擊鼠標(biāo)登記學(xué)生的缺勤情況,此時,系統(tǒng)對所登記的缺勤類型(如曠課、請假等)也進(jìn)行播報.
1.3 缺勤記錄的統(tǒng)計與管理
缺勤記錄在考勤的過程中,就由教師通過點擊鼠標(biāo)的操作記錄在數(shù)據(jù)庫中.在完成當(dāng)天(或當(dāng)次)的考勤后,可以馬上翻查出登記的缺勤情況,方便核對信息和統(tǒng)計缺勤人員.另外,在學(xué)期末(或完成階段課程后),如需要對缺勤情況進(jìn)行匯總,可以根據(jù)登記的情況獲取每個學(xué)生的缺勤匯總數(shù)據(jù).
2.1 數(shù)據(jù)庫設(shè)計
2.1.1 數(shù)據(jù)庫管理系統(tǒng)的選擇
由于系統(tǒng)是單機(jī)單用戶的,并且要存儲、處理的數(shù)據(jù)量不大,可把選擇數(shù)據(jù)庫管理系統(tǒng)的原則定為:①較輕量,功能和性能要求都不需要太高,能實現(xiàn)基本的數(shù)據(jù)存儲和檢索即可;②安裝配置較為簡便;③管理工具的功能較為完善.
微軟Access桌面數(shù)據(jù)庫管理系統(tǒng)的各方面特性都能很好地符合這些要求.Access數(shù)據(jù)庫不僅具有強大的數(shù)據(jù)管理功能,而且可以很方便地利用各種數(shù)據(jù)源生成窗體、查詢和報表,對于數(shù)據(jù)的查詢和管理都十分便捷[1],本系統(tǒng)也選用Access作為數(shù)據(jù)庫管理系統(tǒng).

圖2 語音課堂考勤系統(tǒng)的數(shù)據(jù)庫設(shè)計
2.1.2 數(shù)據(jù)表的設(shè)計
系統(tǒng)使用了5張表記錄所需要的信息.
學(xué)生基本信息使用了3張表,分別是:stu(學(xué)生表,主碼為:stu_id)、class(班級表,主碼為:class_id)、institute(學(xué)院表,主碼為:institute_id).
考勤記錄使用了2張表,分別是:check(缺勤記錄表,主碼為:check_id)、check_type(缺勤類型表,主碼為:check_type_id).
各表的字段名及完整性約束見圖2.各項完整性約束確保了數(shù)據(jù)的有效性和正確性.
2.2 語音播報的實現(xiàn)
要使計算機(jī)能播報學(xué)生名單,就要把文字轉(zhuǎn)化為語音,這就是需要使用TTS(Text-To-Speech,也稱Speech Synthesis,即語音合成)開發(fā)工具.微軟的TTS開發(fā)工具Speech SDK 5.1默認(rèn)提供了英文和中文兩種語音引擎,可以很方便地使用它來開發(fā)朗讀中文和英文的應(yīng)用程序[2],非常適合本系統(tǒng)的需求.Speech SDK 5.1的SAPI(Speech Application Programming Interface)5.1提供的組件對象模型(COM)SpVoice,是實現(xiàn)TTS程序的主要部件.
2.2.1 抽取待播報的文本
在播報學(xué)生名單時,系統(tǒng)先從數(shù)據(jù)庫中讀取需要考勤學(xué)生數(shù)據(jù)的集合(一個班級、或多個班級),數(shù)據(jù)集合存放并顯示在系統(tǒng)主界面的ADODC控件中;移動ADODC的游標(biāo)獲取每條學(xué)生記錄中的姓名(stu_name)字段,把學(xué)生姓名文本交由SpVoice對象進(jìn)行處理.

圖3 TTS數(shù)據(jù)處理流程
2.2.2 播報文本
在使用SpVoice對象時,要遵循以下的步驟:①創(chuàng)建SpVoice對象;②設(shè)置SpVoice對象的屬性,如:使用的語音引擎(Voice)、語音流輸出的格式(Format)、語速(Rate)、音量(Volume),以及語音狀態(tài)位(Speak flags,可以使用不同的設(shè)置組合,使語音播報更能符合應(yīng)用場景的需求)等等,當(dāng)然也可以不指定而使用系統(tǒng)默認(rèn)的設(shè)置;③調(diào)用SpVoice對象的Speak方法,實現(xiàn)文本到語音的轉(zhuǎn)換.
使用VB實現(xiàn)這幾個步驟的代碼如下:
Set SPV=New SpVoice'創(chuàng)建SpVoice對象
Set SPV.Voice=語音引擎'按照所選擇的語音對語音對象進(jìn)行更改
SPV.Rate=語速'更改語速,范圍為-10至10
SPV.Volume=音量'更改音量,范圍為0至100
(其它設(shè)置,略)'由于SpVoice對象的可設(shè)置屬性很多,在此不一一列舉
SPV.Speak需要播報的文本'播報文本
2.3 開發(fā)環(huán)境的選擇
系統(tǒng)采用VB作為開發(fā)環(huán)境.VB技術(shù)雖然較為古老,但其可用組件豐富,擴(kuò)展性較強,并且提供了較為直觀、易用的數(shù)據(jù)庫開發(fā)控件,可以快速開發(fā)出數(shù)據(jù)庫應(yīng)用程序[7].VB提供了Jet數(shù)據(jù)庫引擎,應(yīng)用程序通過Jet數(shù)據(jù)庫引擎可以直接建立和編輯Access數(shù)據(jù)庫并完成對數(shù)據(jù)庫的各種操作[8].另外,對于本系統(tǒng)所選用的語音開發(fā)工具SAPI 5.1,VB也有比較好的支持和豐富的范例.
2.4 考勤功能界面和操作
課堂考勤系統(tǒng)的界面以簡潔風(fēng)格為主,打開軟件,選擇要進(jìn)行考勤的班級后,就可以開始考勤了,主要功能界面見圖4.

圖4 語音課堂考勤系統(tǒng)的主界面
在考勤的過程中,教師通過鼠標(biāo)點擊“上一位”或“下一位”按鈕,計算機(jī)按游標(biāo)的位置播報學(xué)生姓名,如果學(xué)生應(yīng)答不明確,則可點擊“重復(fù)”按鈕重新播報其姓名,如確定缺勤,則點擊相應(yīng)的缺勤類別按鈕進(jìn)行登記.除了可以對所列出的名單(全班)進(jìn)行全部考勤以外,還可以選擇從名單中的某個序號開始,對以上或以下的名單進(jìn)行考勤.在計算機(jī)逐一播報學(xué)生姓名的同時,學(xué)生的姓名也同時以較大的字體顯示在顯示器上.
在完成當(dāng)前的考勤后,還可以把當(dāng)前缺勤的情況進(jìn)行匯總顯示(見圖5),可以在完成考勤后對缺勤人員的登記情況進(jìn)行核對.

圖5 缺勤登記信息核對窗口
2.5 統(tǒng)計功能的實現(xiàn)
系統(tǒng)把每次的缺勤情況都以新增記錄的形式保存在數(shù)據(jù)庫中,如果要對缺勤情況進(jìn)行階段性的統(tǒng)計(如學(xué)期末統(tǒng)計等),只需要對所缺勤情況記錄進(jìn)行分類、匯總即可.系統(tǒng)使用了Access的交叉表查詢功能實現(xiàn)了一個既可以顯示缺勤記錄總計信息、又可以顯示缺勤記錄明細(xì)信息的表格,可謂是一目了然(見圖6),極大地方便了教師對信息的統(tǒng)計和查看.

圖6 缺勤信息統(tǒng)計表
實現(xiàn)這個交叉表查詢的SQL代碼如下:
TRANSFORM Count(考勤表.[check_type])AS check_type之計數(shù)
SELECT
考勤表.[stu_sno]AS[學(xué)號],考勤表.[stu_name]AS[姓名],
考勤表.[class_name]AS[班級],Count(考勤表.[check_type])AS[缺勤統(tǒng)計]
FROM考勤表GROUP BY考勤表.[stu_sno],考勤表.[stu_name],考勤表.[class_name]
PIVOT考勤表.[check_date];
在完成語音課堂考勤系統(tǒng)的開發(fā)后,經(jīng)過一段時間試用,系統(tǒng)的功能和穩(wěn)定性都能達(dá)到設(shè)計要求,在課堂考勤時能較大地提高工作效率,在考勤信息統(tǒng)計匯總時也發(fā)揮了作用,有效減輕了教師的工作負(fù)擔(dān).但是,本系統(tǒng)還存在一些不足,比如:語音播報未能做到十分自然,一些姓名中的多音字未能正解識別(這也是受限于所使用的語音引擎);系統(tǒng)的統(tǒng)計功能的界面不夠美觀、功能仍需補充和完善.另外,對于一款實用型語音課堂考勤軟件,集成一些必要的教師日程管理或教學(xué)管理的功能,也是很有必要的.今后,將繼續(xù)研究課堂考勤、登記和統(tǒng)計工作的需求,對系統(tǒng)功能作進(jìn)一步的改進(jìn)和完善,提高其可用性和實用性.
[1]胡開華,舒期梁,張玉靜.基于VB的課堂考勤系統(tǒng)[J].科技信息,2009(36):155-156.
[2]陳侃.校園考勤系統(tǒng)的設(shè)計與實現(xiàn)[J].計算機(jī)光盤軟件與應(yīng)用,2013(2):235-236.
[3]張洪波.Access在學(xué)生宿舍管理中的應(yīng)用[J].理論界,2005(3):176.
[4]童強.利用SAPI5.1實現(xiàn)電腦語音朗讀應(yīng)用程序[J].微計算機(jī)信息,2006(5):257-258.
[5]尹惠玲,楊帆,于虹,等.基于COM的智能TTS系統(tǒng)的設(shè)計與實現(xiàn)[J].微計算機(jī)信息,2009(15):172-173.
[6]陳超越.基于VB和SAPI的語音合成的實現(xiàn)[J].電腦編程技巧與維護(hù),2010(18):42.
[7]夏慶梅,熊華鋼.VB訪問SQL Server的三種數(shù)據(jù)訪問接口的研究[J].計算機(jī)應(yīng)用研究,2001(12):44-45.
[8]吳文斗,周兵,吳興勇.Visual Basic程序設(shè)計教程[M].2版.長沙:湖南教育出版社,2011:292.
Design and Implementation of a Speech Classroom Attendance Checking System
YANG Yun-hai,Zhang Fen-fen
(School of Information Science and Engineering,Shaoguan University,Shaoguan 512005,Guangdong,China)
Checking the attendance of student in class is a daily work for a teacher.Using the traditional way to checking attendance,registering the absence record,and counting it must cost much time and energy,usually has low efficiency.Designing and achieving a speech classroom attendance checking system,using computer to assisted teachers to do something like checking attendance,registering the absence record,and counting absence record,can reduce the workload for the teacher.
classroom;attendance;speech;database
TP311
A
1007-5348(2016)12-0010-05
(責(zé)任編輯:歐愷)
2016-11-02
2015年度韶關(guān)學(xué)院科研項目(S201501002).
楊云海(1978-),男,廣東廣州人,韶關(guān)學(xué)院信息科學(xué)與工程學(xué)院講師,碩士;研究方向:信息技術(shù)應(yīng)用.