朱立鑫 崔韞鑫
摘要:隨著無(wú)人機(jī)技術(shù)的迅猛發(fā)展,控制無(wú)人機(jī)的方式也在不斷革新。研究在開源地面站上實(shí)現(xiàn)無(wú)人機(jī)語(yǔ)音指令控制技術(shù),可使操作更加便捷。通過(guò)簡(jiǎn)潔、友好的語(yǔ)音界面就可與控制系統(tǒng)進(jìn)行深入信息交互,完成語(yǔ)音指令所代表復(fù)雜控制內(nèi)容。
由于本文僅為語(yǔ)音控制無(wú)人機(jī)初探,主要介紹通過(guò)特定的一種方式實(shí)現(xiàn)語(yǔ)音控制。本文以開源地面站Mission Planner作為基礎(chǔ)進(jìn)行軟件開發(fā),利用Windows自帶的語(yǔ)音識(shí)別模塊進(jìn)行識(shí)別及其在無(wú)人機(jī)控制中的應(yīng)用為研究?jī)?nèi)容,借此來(lái)簡(jiǎn)化無(wú)人機(jī)控制流程、提供一種簡(jiǎn)潔的語(yǔ)音指令控制界面,重點(diǎn)研究了語(yǔ)音識(shí)別技術(shù)在無(wú)人機(jī)控制上的應(yīng)用。
關(guān)鍵詞:語(yǔ)音識(shí)別;無(wú)人機(jī);地面站
語(yǔ)音識(shí)別技術(shù)是一種人機(jī)交互技術(shù)。語(yǔ)言作為信息溝通的最主要方式,可為人機(jī)交互使用時(shí)提供其它方式不可替代的直接和便利。因此,將語(yǔ)音識(shí)別這種人機(jī)交互手段應(yīng)用于無(wú)人機(jī)控制方面,可以為操作人員提供一種簡(jiǎn)便的語(yǔ)音指令控制界面,使操作更加便捷。
一、語(yǔ)音控制無(wú)人機(jī)研究現(xiàn)狀
2001年,美國(guó)斯坦福大學(xué)研制出WITAS多模態(tài)對(duì)話系統(tǒng)用于控制無(wú)人機(jī)設(shè)備。隨后,語(yǔ)音控制技術(shù)高速發(fā)展。目前,我國(guó)民用無(wú)人機(jī)領(lǐng)域內(nèi),語(yǔ)音控制無(wú)人機(jī)已成為下一發(fā)展階段。
二、語(yǔ)音控制無(wú)人機(jī)總體設(shè)計(jì)
本人主要從三個(gè)方面介紹語(yǔ)音控制無(wú)人機(jī),即語(yǔ)音識(shí)別技術(shù)、指令控制及地面站軟件開發(fā)。
三、無(wú)人機(jī)語(yǔ)音識(shí)別技術(shù)
本文主要介紹通過(guò)使用C#和Speech SDK來(lái)進(jìn)行語(yǔ)音識(shí)別。本文介紹的語(yǔ)音識(shí)別功能,其實(shí)就是利用Windows的語(yǔ)音引擎,它包含在Speech SDK開發(fā)包中。我們就是使用此開發(fā)包根據(jù)自己的需要開發(fā)程序。
Speech SDK包含語(yǔ)音識(shí)別SR引擎和語(yǔ)音合成SS引擎兩種語(yǔ)音引擎。語(yǔ)音識(shí)別引擎用于識(shí)別語(yǔ)音命令,調(diào)用接口完成某個(gè)功能,實(shí)現(xiàn)語(yǔ)音控制。語(yǔ)音合成引擎用于將文字轉(zhuǎn)換成語(yǔ)音輸出。
語(yǔ)音識(shí)別引擎分兩種模式識(shí)別:文本識(shí)別模式和命令識(shí)別模式。此兩種模式的主要區(qū)別在于識(shí)別過(guò)程中使用的匹配字典不同。前者使用的是通用字典,特點(diǎn)是覆蓋的詞匯量大,因?yàn)樵~匯量大直接導(dǎo)致識(shí)別的精度降低,識(shí)別速度較慢。后者的字典需要開發(fā)者自己編寫,這種方式由開發(fā)者定義詞匯的數(shù)量,大大降低匹配過(guò)程中需要檢索的詞匯量,提高了識(shí)別速度,同時(shí)因?yàn)楹蜻x項(xiàng)極少,所以一般不會(huì)識(shí)別錯(cuò)誤。
由于控制無(wú)人機(jī)飛行僅需要幾個(gè)特定的指令,而且對(duì)識(shí)別率要求較高,所以選用命令識(shí)別模式進(jìn)行語(yǔ)音識(shí)別開發(fā)。
四、無(wú)人機(jī)飛行協(xié)議及控制指令
(一)MAVLink簡(jiǎn)介
Mavlink協(xié)議是在串口通訊基礎(chǔ)上的一種更高層的開源通訊協(xié)議,主要應(yīng)用在微型飛行器(micro aerial vehicle)的通訊上。Mavlink是為小型飛行器和地面站通訊時(shí)常常用到的那些數(shù)據(jù)制定一種發(fā)送和接收的規(guī)則并加入了校驗(yàn)(checksum)功能。
如圖所示,每個(gè)消息幀都是上述的結(jié)構(gòu),除了灰色外,其他的格子都代表了一個(gè)字節(jié)的數(shù)據(jù)。灰色格子里面的數(shù)據(jù)長(zhǎng)度是不固定的。
紅色的是起始標(biāo)志位(STX)。這個(gè)標(biāo)志位用于MAVLink消息幀接收端進(jìn)行消息解碼。
第二個(gè)格子代表的是PAYLOAD的字節(jié)長(zhǎng)度(LEN),范圍從0~255。
第三個(gè)格子代表的是本次消息幀的序號(hào)(SEQ),每次發(fā)完一個(gè)消息,這個(gè)字節(jié)的內(nèi)容會(huì)加1,加到255后會(huì)從0重新開始。這個(gè)序號(hào)用于MAVLink消息幀接收端計(jì)算消息丟失比例。
第四個(gè)格子代表發(fā)送本條消息幀的設(shè)備的系統(tǒng)編號(hào)(SYS)。
第五個(gè)格子代表了發(fā)送本條消息幀的設(shè)備的單元編號(hào)(COMP)。
第六個(gè)格子代表了有效載荷中消息包的編號(hào)(MSG),MAVLink消息幀接收端根據(jù)這個(gè)編號(hào)來(lái)確定有效載荷里的消息包并根據(jù)編號(hào)選擇對(duì)應(yīng)的方式來(lái)處理有效載荷里的信息包。
最后兩個(gè)字節(jié)是16位校驗(yàn)位,CKB是高八位,CKA是低八位。校驗(yàn)碼由CRC16算法得到。
(二)地面站和飛控的通訊流程
無(wú)人機(jī)連接好MP地面站后,都會(huì)主動(dòng)向地面站發(fā)送心跳包、飛行器姿態(tài)、系統(tǒng)狀態(tài)等組成的數(shù)據(jù)流。地面站會(huì)在剛連接上飛控時(shí)發(fā)送命令,請(qǐng)求飛控傳回所有參數(shù),飛控根據(jù)自己的情況判斷是否接受地面站的請(qǐng)求,并根據(jù)不同的命令執(zhí)行相應(yīng)的操作。
MP地面站比較成熟,在軟件內(nèi)已經(jīng)預(yù)設(shè)了無(wú)人機(jī)飛行所需的各種指令。這些指令通過(guò)MAVLink協(xié)議傳遞給飛控,從而實(shí)現(xiàn)對(duì)無(wú)人機(jī)的控制。我們只需在地面站中找到這些指令,將語(yǔ)音識(shí)別結(jié)果與這些指令相對(duì)應(yīng)就可以實(shí)現(xiàn)對(duì)無(wú)人機(jī)的語(yǔ)音控制。
五、地面站軟件開發(fā)
Mission Planner是一個(gè)功能齊全的開源地面站應(yīng)用程序。本人在此軟件的基礎(chǔ)上進(jìn)行二次開發(fā),加入語(yǔ)音識(shí)別模塊,將識(shí)別結(jié)果與無(wú)人機(jī)飛行命令相對(duì)應(yīng),從而實(shí)現(xiàn)對(duì)無(wú)人機(jī)的語(yǔ)音控制。
實(shí)現(xiàn)語(yǔ)音控制用到的MP地面站內(nèi)的飛行指令,主要是導(dǎo)航命令。導(dǎo)航命令是用于控制無(wú)人機(jī)的運(yùn)動(dòng),包括起飛、航路點(diǎn)和移動(dòng)至周圍和著陸。
本人用到的導(dǎo)航命令:
MAV_CMD_NAV_TAKEOFF:從地面起飛(發(fā)射)。實(shí)現(xiàn)“起飛”指令。
MAV_CMD_NAV_RETURN_TO_LAUNCH:返回Home位置或就近的集結(jié)點(diǎn)。Home的位置是飛行器解鎖位置。實(shí)現(xiàn)“返航”指令。
MAV_CMD_NAV_LAND:在當(dāng)前或指定位置降落。實(shí)現(xiàn)“降落”指令。
MAV_CMD_NAV_GUIDED_ENABLE:?jiǎn)⒂靡龑?dǎo)控制模式切換到外部控制器。在GUIDED模式下,在預(yù)先建立的三維坐標(biāo)系中,引導(dǎo)無(wú)人機(jī)在空間中實(shí)現(xiàn)“前進(jìn)”、“后退”、“向左”、“向右”、“上升”、“下降”等指令。
六、總結(jié)
本文以開源地面站Mission Planner作為基礎(chǔ)進(jìn)行軟件開發(fā),利用Windows自帶的語(yǔ)音識(shí)別模塊進(jìn)行識(shí)別及其在無(wú)人機(jī)控制中的應(yīng)用為研究?jī)?nèi)容,借此簡(jiǎn)化無(wú)人機(jī)控制流程、提供一種簡(jiǎn)潔的語(yǔ)音指令控制界面,實(shí)現(xiàn)了語(yǔ)音控制無(wú)人機(jī)功能。
本文僅為語(yǔ)音控制無(wú)人機(jī)初探,主要介紹通過(guò)特定的一種方式實(shí)現(xiàn)語(yǔ)音控制,僅僅是提供一種語(yǔ)音控制的思路,旨在實(shí)現(xiàn)語(yǔ)音控制功能,了解語(yǔ)音控制的簡(jiǎn)潔性、方便性。由于MP地面站只能在Windows系統(tǒng)下運(yùn)行,利用的也是Windows自帶的語(yǔ)音識(shí)別模塊,所以語(yǔ)音控制的平臺(tái)比較受限。