李海飛
(福州閩地勘測(cè)規(guī)劃有限公司 福建福州 350011)
城市地下管線探測(cè)的外業(yè)數(shù)據(jù)采集,目前處于紙質(zhì)手工記錄向移動(dòng)GIS過(guò)渡的階段,采用紙質(zhì)手工記錄,作業(yè)人員需外業(yè)完成記錄以后,轉(zhuǎn)入內(nèi)業(yè),繼續(xù)完成數(shù)據(jù)的整理和錄入或交由專門的內(nèi)業(yè)人員整理。內(nèi)業(yè)工作量大,內(nèi)外人員數(shù)據(jù)交接存在數(shù)據(jù)不規(guī)范、理解有偏差等現(xiàn)象。成果數(shù)據(jù)出現(xiàn)問(wèn)題時(shí),分析原因較為困難,工序中間環(huán)節(jié)多,出錯(cuò)幾率大。采用移動(dòng)GIS進(jìn)行數(shù)據(jù)采集,高效的優(yōu)化了外業(yè)數(shù)據(jù)采集流程。
為進(jìn)一步提高作業(yè)效率,本文以地下管線普查工作為例,研究了在外業(yè)采集終端的基礎(chǔ)上,結(jié)合語(yǔ)音識(shí)別的技術(shù)進(jìn)行數(shù)據(jù)采集應(yīng)用,為類似工作提供參考。
本移動(dòng)GIS硬件采用RTK手簿,系統(tǒng)包含的應(yīng)用程序框架 (Application framework),作為Andrio開發(fā)的基礎(chǔ),利用最新的Visual studio c#,可開發(fā)供不同組件調(diào)用的功能模塊,利用核心API訪問(wèn)權(quán)限,開發(fā)外業(yè)應(yīng)用組件[1];移動(dòng)終端硬件具有雙頻雙星主板及雙頻雙星天線,搜索衛(wèi)星的靈敏度和有效性高,在外業(yè)有很強(qiáng)的便攜性及靈活性,還具有以下特點(diǎn):
1)采用網(wǎng)絡(luò)RTK可得到小于30厘米的實(shí)時(shí)手持定位精度,甚至可以完全不依靠外接設(shè)備,只采用單機(jī)。
2)通過(guò)對(duì)中桿或支架與主機(jī)連接后,定位精度可以精確到厘米級(jí),輔以系統(tǒng)強(qiáng)大的計(jì)算能力,為使用者提供穩(wěn)定的高品質(zhì)數(shù)據(jù)采集成果。
3)通過(guò)GIS軟件平臺(tái)的二次開發(fā),可實(shí)現(xiàn)數(shù)據(jù)的無(wú)縫對(duì)接。并可以根據(jù)客戶的個(gè)性化要求,定制各種特定需求的行業(yè)應(yīng)用軟件。
地下管線敷設(shè)于地下,按功能可分為給水、排水、燃?xì)?、熱力、電力、通信、工業(yè)等。地下管線探測(cè)應(yīng)查明地下管線的類別、平面位置、走向、埋深、偏距、規(guī)格、材質(zhì)、載體特征、建設(shè)年代、埋設(shè)方式、權(quán)屬單位等,測(cè)量地下管線平面坐標(biāo)和高程,并符合下列規(guī)定:
1)地下管線普查時(shí)應(yīng)建立管線數(shù)據(jù)庫(kù);
2)地下管線詳查時(shí)應(yīng)查明與工程建設(shè)施工有關(guān)的信息;
3)地下管線竣工測(cè)量成果應(yīng)符合地下管線數(shù)據(jù)庫(kù)更新的技術(shù)要求。
為完成以上任務(wù),本系統(tǒng)以Andrio系統(tǒng)的RTK手簿為基礎(chǔ),開發(fā)基于語(yǔ)音識(shí)別的信息采集系統(tǒng),啟動(dòng)該系統(tǒng)后,可手動(dòng)加載測(cè)區(qū)的地形底圖或正射影像圖,系統(tǒng)會(huì)自動(dòng)建立各種管線圖層,也可以打開已有的管線圖進(jìn)行修改編輯、管線屬性信息的查詢與編輯、成果質(zhì)量檢查,利用外接配帶的耳機(jī)與麥克風(fēng),在野外現(xiàn)場(chǎng)采集管線的空間信息和屬性信息,必要時(shí)可手工干預(yù)修改,系統(tǒng)外業(yè)采集的數(shù)據(jù)可與電腦上的管線數(shù)據(jù)處理系統(tǒng)對(duì)接[2]。
語(yǔ)音識(shí)別移動(dòng)GIS地下管線數(shù)據(jù)采集系統(tǒng)的開發(fā)環(huán)境,采用Visual Studio.NET 2017的C#進(jìn)行Andrio應(yīng)用開發(fā)。
語(yǔ)音識(shí)別移動(dòng)GIS地下管線數(shù)據(jù)采集系統(tǒng)主要由以下幾個(gè)模塊組成:
1)數(shù)據(jù)錄入和處理
通過(guò)訪問(wèn)API獲取平面位置和地面高程;通過(guò)語(yǔ)音識(shí)別獲取點(diǎn)名、埋深、材料等屬性,在主界面上分別顯示到對(duì)應(yīng)輸入框,在確認(rèn)無(wú)誤后,存儲(chǔ)到管線成果數(shù)據(jù)文件中,若外業(yè)不便于觀看屏幕,可選擇語(yǔ)音識(shí)別的同時(shí),對(duì)操作人員的語(yǔ)音進(jìn)行錄音,各段錄音與錄音時(shí)設(shè)備所在位置信息一起保存,以便后續(xù)查驗(yàn)核對(duì)如圖1
2)管線圖形顯示
管線圖形顯示:根據(jù)錄入及讀取的管線數(shù)據(jù)自動(dòng)生成管線圖,同時(shí)提供矢量和柵格顯示及平移、縮放、旋轉(zhuǎn)功能;交互編輯功能,添加或刪除管線點(diǎn)、標(biāo)注點(diǎn)名和管徑、連線、刪除線、移動(dòng)、捕捉、屬性匹配等功能。
圖1 管線數(shù)據(jù)采集
3)數(shù)據(jù)檢查
檢查管線點(diǎn)和線的圖、屬性信息的一致性,選擇管線、管線點(diǎn)查詢其相應(yīng)的屬性,在圖上圈定范圍并進(jìn)行分類統(tǒng)計(jì),實(shí)時(shí)顯示、保存或統(tǒng)計(jì)結(jié)果。
4)成果數(shù)據(jù)輸出
以shape格式或DXF格式輸出管線數(shù)據(jù),在電腦上進(jìn)一步編輯或?qū)牍芫€數(shù)據(jù)庫(kù)。
除第一個(gè)模塊外,其它各模塊目前均有不少研究及應(yīng)用案例,本文不再進(jìn)行說(shuō)明,重點(diǎn)對(duì)該系統(tǒng)的語(yǔ)音識(shí)別部分進(jìn)行說(shuō)明。
該語(yǔ)音識(shí)別數(shù)據(jù)采集系統(tǒng)采用在安卓開發(fā)中的使用的離線語(yǔ)音識(shí)別的開源項(xiàng)目CMU Pocket-Spinnx。它是完全離線的語(yǔ)音識(shí)別,只要按照要求開發(fā),目前的語(yǔ)音識(shí)別正確率尚可。
通過(guò)PocketSpinnx官網(wǎng),可以學(xué)習(xí)該離線語(yǔ)音識(shí)別的工作原理,能夠加深對(duì)移動(dòng)GIS地下管線數(shù)據(jù)采集系統(tǒng)使用語(yǔ)音識(shí)別的理解。為了把Pocket-Spinnx的離線語(yǔ)音識(shí)別功能引入到地下管線數(shù)據(jù)采集系統(tǒng):
a)建立語(yǔ)言模型:
圖2 管線短語(yǔ)
將外業(yè)數(shù)據(jù)采集時(shí),常用到的術(shù)語(yǔ)、數(shù)字、字母等想要識(shí)別的字、詞組成命令集,能組合成短語(yǔ)的盡量組成短語(yǔ),如“4 孔”、“6 孔”、“4 根”、“6 根”等,打開Sublime Text新建一個(gè)管線短語(yǔ)的txt文件,采用utf-8編碼,每一行寫一個(gè)命令詞,如圖2管線短語(yǔ)的txt文件編輯完后,打開http://www.speech.cs.cmu.edu/tools/lmtool-new.html生成語(yǔ)言模型,點(diǎn)擊選擇文件,選擇剛才編寫的管線短語(yǔ)的.txt文件,然后點(diǎn)擊COMPILE KNOWLEDGE BASE按鈕,生成語(yǔ)言模型,將生成的整個(gè).tgz文件下載下來(lái)解壓縮,本系統(tǒng)需要的語(yǔ)言模型即為其中的.lm文件。
b)建立字典模型
字典模型在語(yǔ)音識(shí)別數(shù)據(jù)采集系統(tǒng)的作用是為了讓語(yǔ)音識(shí)別器能正確識(shí)別短語(yǔ)的發(fā)音,從而選擇正確的中文、數(shù)字、字母等管線短語(yǔ),以便于采集系統(tǒng)根據(jù)管線短語(yǔ)中的關(guān)鍵字對(duì)輸入的數(shù)據(jù)進(jìn)行分類、分層、錄入屬性,獲取字典模型要到PocketSpinnx的資源網(wǎng)盤中的Mandarin文件夾,將后綴為.dic的文件下載,該文件里已存在日常普通話的發(fā)音,在其中查找到管線的短語(yǔ),找不到完整短語(yǔ)的就用單個(gè)字的發(fā)音組合,以該.dic文件的格式為模板,在.lm語(yǔ)言模型文件中的.dic文件中,補(bǔ)充完善.dic文件的發(fā)音,如圖3。
圖3 字典模型
完成管線短語(yǔ)字典模型。
c)建立聲學(xué)模型文件
在上述資源網(wǎng)盤的Mandarin文件夾下,下載.tar.bz2并解壓,得到聲學(xué)模型文件:
d)導(dǎo)入接口
做好以上準(zhǔn)備工作后,在PocketSpinnx開源的安卓demo中可以看到如圖4。
圖4 集成相關(guān)接口
將demo中的aars和models導(dǎo)入創(chuàng)建語(yǔ)音識(shí)別數(shù)據(jù)采集系統(tǒng)的項(xiàng)目中,快速集成相關(guān)接口。為了讓系統(tǒng)能夠識(shí)別中文,參照demo中en-us-ptm中的英文聲學(xué)模型,新建一個(gè)GXDY文件夾,含前面獲得
的普通話聲學(xué)模型、語(yǔ)言模型和字典模型。
e)調(diào)用識(shí)別器
獲得以上模型以后,在項(xiàng)目中調(diào)用相關(guān)的API,獲取語(yǔ)音識(shí)別器類SpeechRecognizer,開始監(jiān)聽和結(jié)束監(jiān)聽。創(chuàng)建管線短語(yǔ)文件監(jiān)聽的時(shí)候需要.gram文件,參考.gram文件編寫管線短語(yǔ)文件。
grammar menu;
public
外業(yè)開始語(yǔ)音數(shù)據(jù)錄入以后,監(jiān)聽器在監(jiān)聽管線短語(yǔ)文件的字、詞中找出發(fā)音最相似的,在語(yǔ)音顯示行中顯示監(jiān)聽結(jié)果。在使用者確認(rèn)后,系統(tǒng)對(duì)聽取到的屬性信息和從API中獲取的坐標(biāo)信息對(duì)管線數(shù)據(jù)進(jìn)行分類存儲(chǔ)并顯示在屏幕上[3]。
系統(tǒng)采用語(yǔ)音方式進(jìn)行屬性錄入,系統(tǒng)對(duì)關(guān)鍵字進(jìn)行提取后分別填入對(duì)應(yīng)字段,不必人工一一查找并填寫對(duì)應(yīng)字段;對(duì)部分屬性相同的管線或管線點(diǎn)可只錄入不同的屬性部分,相同的屬性部分可用同前一點(diǎn)或前一線的方式快速填入,語(yǔ)音錄入的屬性字段若存在不正確的數(shù)據(jù)可手工修改后錄入繪圖的方式進(jìn)行記錄,結(jié)合耳機(jī)語(yǔ)音回報(bào)的功能,可實(shí)現(xiàn)免看屏幕,解放雙手的外業(yè)操作。由于大量管線短語(yǔ)數(shù)據(jù)采用規(guī)范輸入,可以有效降低語(yǔ)音識(shí)別的錯(cuò)誤率,極大減少內(nèi)、外業(yè)的工作量,明顯提高工作效率。
由于口音、環(huán)境嘈雜等復(fù)雜情況,某些情況下可能存在誤錄的情況,需人工查看并修正錄入,可通過(guò)操作人員本人對(duì)需用到的管線短語(yǔ)一一讀音建立語(yǔ)音字典的方式,過(guò)濾無(wú)關(guān)聲音,提高正確率。