謝瑋成,陳章芬
(1.中建海峽建設(shè)發(fā)展有限公司,福州 350001;2.國家計算機(jī)網(wǎng)絡(luò)應(yīng)急技術(shù)處理協(xié)調(diào)中心福建分中心,福州 350001)
建筑工程在施工過程的各個階段均會產(chǎn)生大量的數(shù)據(jù),這些數(shù)據(jù)對于工程管理人員實施日常管理、開展決策分析有著指導(dǎo)性作用。但在實際施工管理中,數(shù)據(jù)壁壘現(xiàn)象普遍,各業(yè)務(wù)系統(tǒng)協(xié)議標(biāo)準(zhǔn)難統(tǒng)一;數(shù)據(jù)檢索的途徑較為不便,檢索大多依賴PC 端完成;檢索效率低下,檢索方式多為鍵盤輸入關(guān)鍵詞查詢。對此,本文提出建筑工程數(shù)據(jù)檢索App 系統(tǒng)設(shè)計方案,通過語音識別的方式獲取并翻譯用戶語音信息,再經(jīng)模糊算法檢索對應(yīng)的數(shù)據(jù)庫完成信息查詢。
建筑工程數(shù)據(jù)檢索App 系統(tǒng)采用SSM 框架搭建,即Spring MVC 框架、Spring 框架和MyBatis 框架的整合。系統(tǒng)結(jié)構(gòu)自上向下可劃分為視圖層、表現(xiàn)層、業(yè)務(wù)層和持久層和數(shù)據(jù)庫,如圖1 所示。
圖1 系統(tǒng)框架結(jié)構(gòu)
(1)視圖層。即View 層,本層提供了與用戶交互的界面,實現(xiàn)對用戶請求的響應(yīng)。
(2)表現(xiàn)層。即Controller 層,本層接收和處理視圖層傳輸來的用戶請求,通過調(diào)用業(yè)務(wù)層接口實現(xiàn)對業(yè)務(wù)流程的控制,并反饋處理結(jié)果。
(3)業(yè)務(wù)層。即Service 層,本層設(shè)計有業(yè)務(wù)模塊的邏輯應(yīng)用,其通過封裝業(yè)務(wù)層的邏輯以提高通用業(yè)務(wù)邏輯的獨立性和重復(fù)利用性,使程序更加高效。
(4)持久層。即Dao 層,本層實現(xiàn)數(shù)據(jù)的持久化操作,其通過在Spring 配置文件中定義接口實現(xiàn)類,再通過業(yè)務(wù)模塊調(diào)用接口實現(xiàn)數(shù)據(jù)業(yè)務(wù)的處理。
(5)數(shù)據(jù)庫。本層實現(xiàn)各類數(shù)據(jù)信息的存儲,如用戶信息、設(shè)備參數(shù)、環(huán)境監(jiān)測數(shù)據(jù)等。
建筑工程數(shù)據(jù)檢索App 系統(tǒng)采用語音交互的方式完成信息檢索,系統(tǒng)構(gòu)成包含人機(jī)交互子系統(tǒng)、語音識別子系統(tǒng)、信息查詢子系統(tǒng)和數(shù)據(jù)中心子系統(tǒng),系統(tǒng)功能邏輯結(jié)構(gòu)如圖2 所示。
圖2 系統(tǒng)功能邏輯結(jié)構(gòu)
人機(jī)交互子系統(tǒng)提供了一套與用戶進(jìn)行交互的界面。系統(tǒng)設(shè)計有指紋驗證、人臉驗證和密碼驗證三種登錄認(rèn)證方式。當(dāng)用戶登錄時,系統(tǒng)根據(jù)用戶選擇的登錄認(rèn)證方式及輸入的秘鑰與數(shù)據(jù)中心子系統(tǒng)進(jìn)行交互,遍歷用戶信息庫數(shù)據(jù),反饋匹配結(jié)果,確認(rèn)用戶登錄認(rèn)證狀態(tài)。登錄成功后,用戶可訪問數(shù)據(jù)查詢頁面,通過語音輸入要查詢的信息,系統(tǒng)將用戶的語音信息封裝后經(jīng)接口傳輸至語音識別子系統(tǒng)進(jìn)一步處理。待處理完成后,再通過人機(jī)交互界面將處理結(jié)果反饋給用戶。
語音識別子系統(tǒng)主要完成語音信息的解析與轉(zhuǎn)換,其工作流程為:當(dāng)接收到語音信息后,首先對語音信息進(jìn)行預(yù)處理,再提取語音信息特征,最后利用訓(xùn)練好的語言模型和聲學(xué)模型對語音特征向量進(jìn)行統(tǒng)計模式識別,翻譯得到文字信息。
語音識別子系統(tǒng)基于HMM 模型設(shè)計,具體功能借助CMUSphinx 語音識別工具實現(xiàn)。CMUSphinx 工具中 包 含 Sphinxtrain、Sphinxbase、CMUclmtk、Pocket?sphinx、Sphinx3 和Sphinx4 等工具,其中Sphinxtrain 主要用于聲學(xué)模型的訓(xùn)練,Sphinxbase 用于提取語音特征,CMUclmtk 用于訓(xùn)練語言模型,Pocketsphinx、Sphinx3、Sphinx4 作為識別的解碼器。
語言模型訓(xùn)練方面,在完成訓(xùn)練數(shù)據(jù)準(zhǔn)備后,利用CMUclmtk 工具統(tǒng)計文本文件中詞的總數(shù)以及每個詞出現(xiàn)的次數(shù),列舉文本中出現(xiàn)詞語的N 元語法,將其轉(zhuǎn)換為Sphinx 需要的二進(jìn)制格式語言模型。
聲學(xué)模型訓(xùn)練前,需提前完成參數(shù)文件配置,準(zhǔn)備訓(xùn)練所需的語音文件。聲學(xué)模型的訓(xùn)練借助Sphinx?train 工具完成,訓(xùn)練后得到的feat.params、mdef、mix?ture_weighters、means、noisedict、variances 和 transi?tion_matrices 七個文件即為解碼所需的聲學(xué)模型文件。
信息查詢子系統(tǒng)接收到經(jīng)語音識別子系統(tǒng)翻譯后的文本數(shù)據(jù),根據(jù)字典算法遍歷文本數(shù)據(jù),提取關(guān)鍵詞,再通過與數(shù)據(jù)中心子系統(tǒng)數(shù)據(jù)交互,完成對數(shù)據(jù)庫的檢索,將檢索結(jié)果經(jīng)優(yōu)化處理后反饋至人機(jī)交互子系統(tǒng)。
如圖3 所示,信息查詢子系統(tǒng)設(shè)計有進(jìn)度計劃數(shù)據(jù)查詢、施工生產(chǎn)信息查詢、勞務(wù)管理數(shù)據(jù)查詢、設(shè)備運(yùn)行數(shù)據(jù)查詢、黨群管理信息查詢和環(huán)境監(jiān)測數(shù)據(jù)查詢六部分功能。
圖3 信息查詢模塊主要功能
(1)進(jìn)度計劃數(shù)據(jù)查詢
進(jìn)度計劃數(shù)據(jù)查詢模塊支持檢索的內(nèi)容包含當(dāng)前進(jìn)度計劃、本周工作計劃和滯后工作項等。
(2)施工生產(chǎn)信息查詢
施工生產(chǎn)信息查詢模塊支持的檢索內(nèi)容包括隱患信息查詢、三維模型調(diào)取和視頻監(jiān)控調(diào)取三部分。其中,隱患信息查詢支持對未整改隱患、超期隱患、未整改隱患責(zé)任人等信息的查詢;三維模型調(diào)取支持對BIM 模型、場地排布情況的查詢。
(3)勞務(wù)管理數(shù)據(jù)查詢
勞務(wù)管理數(shù)據(jù)查詢模塊主要實現(xiàn)三方面數(shù)據(jù)檢索,即勞務(wù)人員教育情況、勞務(wù)人員考勤數(shù)據(jù)和違規(guī)行為統(tǒng)計。勞務(wù)人員教育情況包含勞務(wù)人員安全教育和技術(shù)交底情況;勞務(wù)人員考勤數(shù)據(jù)包含當(dāng)前場內(nèi)人數(shù)、本日進(jìn)出場人數(shù)及勞務(wù)人員工資;違規(guī)行為統(tǒng)計包含違規(guī)次數(shù)統(tǒng)計和違規(guī)人員信息。
(4)設(shè)備運(yùn)行數(shù)據(jù)查詢
設(shè)備運(yùn)行數(shù)據(jù)查詢模塊支持對各類大型機(jī)械設(shè)備運(yùn)行參數(shù)以及設(shè)備風(fēng)險告警信息的檢索,如龍門吊、盾構(gòu)機(jī)、塔吊等。
(5)黨群管理信息查詢
黨群管理信息查詢模塊主要為本支部黨、紀(jì)、工、團(tuán)活動開展情況的檢索,內(nèi)容包含支部基本信息、黨員基本信息、黨群活動開展情況、支部先進(jìn)個人和三會一課開展情況等。
(6)環(huán)境監(jiān)測數(shù)據(jù)查詢
環(huán)境監(jiān)測數(shù)據(jù)查詢模塊支持的檢索內(nèi)容包含環(huán)境數(shù)值信息和噴淋設(shè)備工作信息兩部分。其中,環(huán)境數(shù)值信息包含工程所在區(qū)域的溫度值、PM2.5 值、噪音值、風(fēng)速值和氣壓值;噴淋設(shè)備工作信息包括噴淋設(shè)備的運(yùn)行狀態(tài)、運(yùn)行時間等。
數(shù)據(jù)中心子系統(tǒng)存儲了維持本App 系統(tǒng)正常運(yùn)行的各類數(shù)據(jù),包含用戶信息、當(dāng)前進(jìn)度計劃、未整改隱患信息等。數(shù)據(jù)中心子系統(tǒng)的數(shù)據(jù)獲取方式有三種,分別為:人工錄入(導(dǎo)入)、接口對接和爬蟲技術(shù)。
人工錄入(導(dǎo)入)數(shù)據(jù)的方式適用于用戶信息庫的建設(shè),以及語音識別環(huán)節(jié)所需的語音數(shù)據(jù)庫和文本數(shù)據(jù)庫等的導(dǎo)入。
通過接口對接獲取數(shù)據(jù)的方式適用于開放API 的各類業(yè)務(wù)系統(tǒng),例如:對接采用國標(biāo)協(xié)議傳輸?shù)沫h(huán)境監(jiān)測系統(tǒng)、對接開放有數(shù)據(jù)接口的勞務(wù)管理平臺等。
通過爬蟲技術(shù)獲取數(shù)據(jù)的方式適用于采用以上兩種方法無法取得所需數(shù)據(jù)的場景。例如:對于無法通過接口獲取數(shù)據(jù)的機(jī)械設(shè)備管理平臺,則可借助Py?thon 的requests 庫完成平臺數(shù)據(jù)的抓取,再利用Beau?tifulSoup 庫解析平臺網(wǎng)頁,將取得的數(shù)據(jù)經(jīng)清洗和重新組織后,存儲進(jìn)本地數(shù)據(jù)庫中。
建筑工程數(shù)據(jù)檢索App 系統(tǒng)界面如圖4 所示,用戶登錄系統(tǒng)后,長按屏幕右下方的麥克風(fēng)按鈕,根據(jù)提示說出需要查詢的內(nèi)容。系統(tǒng)接收到用戶的語音信息后,通過轉(zhuǎn)碼、提取關(guān)鍵詞后遍歷數(shù)據(jù)庫,并將查詢結(jié)果經(jīng)處理后反饋給用戶。同時,系統(tǒng)設(shè)計有友好的異常反饋頁面,當(dāng)未查詢到相關(guān)信息或識別到的語音不清晰時,系統(tǒng)將通過語音反饋“對不起,我沒有聽清您說的話”等,并推測用戶可能的操作意圖,在反饋頁面顯示相關(guān)提示信息。
圖4 建筑工程數(shù)據(jù)檢索App系統(tǒng)界面
對用戶查詢操作的響應(yīng)依托廣播接收器(Broad?castReceiver)實現(xiàn),通過添加廣播過濾器,設(shè)置不同的過濾器來獲取數(shù)據(jù),并定義通過語音識別調(diào)取界面的方法,部分實現(xiàn)代碼如下:
本文邀請6 名工作人員對系統(tǒng)查詢的準(zhǔn)確率進(jìn)行了測試,測試以成功調(diào)取所需要的數(shù)據(jù)進(jìn)行顯示作為通過的標(biāo)準(zhǔn)。測試數(shù)據(jù)覆蓋查詢模塊的所有功能項,例如:施工生產(chǎn)信息查詢模塊的測試功能項包含隱患信息查詢、三維模型調(diào)取和視頻監(jiān)控調(diào)取三大類,具體測試語句和測試數(shù)量如表1 所示。
表1 施工生產(chǎn)信息查詢模塊測試數(shù)據(jù)
本次測試共設(shè)計測試數(shù)據(jù)774 組,經(jīng)測試得出,系統(tǒng)整體的查詢準(zhǔn)確率為99.2%。其中,進(jìn)度計劃數(shù)據(jù)查詢的準(zhǔn)確率為99.2%,施工生產(chǎn)信息查詢的準(zhǔn)確率為98.7%,勞務(wù)管理數(shù)據(jù)查詢的準(zhǔn)確率為99.3%,設(shè)備運(yùn)行數(shù)據(jù)查詢的準(zhǔn)確率為99.5%,黨群管理信息查詢的準(zhǔn)確率為100%,環(huán)境監(jiān)測數(shù)據(jù)查詢的準(zhǔn)確率為99%,詳細(xì)數(shù)據(jù)見表2。
表2 系統(tǒng)測試結(jié)果
本文提出了一種基于語音交互的建筑工程數(shù)據(jù)檢索App 系統(tǒng)設(shè)計方案,文中所述的系統(tǒng)基于SSM 框架構(gòu)建,實現(xiàn)了對建筑工程施工中涉及到的進(jìn)度計劃、勞務(wù)管理、環(huán)境監(jiān)測等數(shù)據(jù)的匯聚存儲,系統(tǒng)設(shè)計有良好的人機(jī)交互界面,通過自然語言處理技術(shù)實現(xiàn)對用戶語音的識別和關(guān)鍵詞提取,進(jìn)而完成用戶所需信息的檢索。經(jīng)實驗測試,系統(tǒng)查詢功能項及查詢準(zhǔn)確率均符合設(shè)計要求,預(yù)計其應(yīng)用能夠為工程管理人員帶來便利,在建筑工程管理領(lǐng)域有較高的應(yīng)用價值。