吳慧欽,王志強(qiáng),阿西達(dá),汪曉翠
(航空工業(yè)洪都,江西 南昌,330024)
教練機(jī)作為飛行員訓(xùn)練體系的核心部分,擔(dān)負(fù)著飛行員的訓(xùn)練任務(wù),是部隊(duì)?wèi)?zhàn)斗力快速生成的保障。飛行模擬器用于飛行人員的地面訓(xùn)練,已經(jīng)在飛行訓(xùn)練領(lǐng)域得到廣泛應(yīng)用。與真實(shí)飛機(jī)進(jìn)行實(shí)際飛行訓(xùn)練相比,飛行模擬器具有可控性、無(wú)破壞性、經(jīng)濟(jì)性、可靠性等優(yōu)點(diǎn)。
聲音仿真系統(tǒng)是飛行模擬器的重要組成部分,模擬飛行過(guò)程中的各種聲音效果,為飛行員提供一個(gè)逼真的音效環(huán)境。主要功能包括:座艙環(huán)境噪音、提示告警音、導(dǎo)航音;前、后艙飛行人員和教員之間的語(yǔ)音通話。因此,在飛行模擬系統(tǒng)仿真中,真實(shí)、完全地再現(xiàn)飛行操作人員周圍各個(gè)方位的各種聲源是十分必要的。聲音仿真技術(shù)的研究對(duì)于聲音仿真系統(tǒng)產(chǎn)品的研制具有重要意義。
正是基于這種需要,本文采用聲音建模與動(dòng)態(tài)調(diào)度相結(jié)合的方法進(jìn)行聲音仿真系統(tǒng)的設(shè)計(jì)。該方法處理速度快,實(shí)時(shí)性好,編程容易實(shí)現(xiàn)。 采用DirectX的音頻API(應(yīng)用程序編程接口)—XAudio2 及8 路×8 路的音頻矩陣。在 Windows 平臺(tái)上采用 Visual C++2010開(kāi)發(fā)了聲音仿真軟件。通過(guò)應(yīng)用于模擬器飛行,驗(yàn)證該方案的正確性和有效性。
聲音仿真系統(tǒng)模擬飛機(jī)在地面滑跑、起飛、空中飛行、下降、著陸等各階段飛行人員在駕駛艙內(nèi)可聽(tīng)到的典型聲音效果,包括環(huán)境噪聲、告警導(dǎo)航音及通話子系統(tǒng)。
1) 環(huán)境噪音
主要仿真飛機(jī)在各個(gè)階段和各個(gè)操作過(guò)程中的綜合環(huán)境噪音,具體包括:
①發(fā)動(dòng)機(jī)工作噪音:發(fā)生器起動(dòng)、發(fā)生器關(guān)車、單發(fā)起動(dòng)、單發(fā)關(guān)車、單發(fā)慢車狀態(tài)、單發(fā)巡航狀態(tài)、單發(fā)最大巡航狀態(tài)、單發(fā)額定狀態(tài)和單發(fā)最大狀態(tài);
② 氣流噪音:飛機(jī)在不同馬赫數(shù)點(diǎn)時(shí),飛行人員在駕駛艙內(nèi)可聽(tīng)到的氣流聲;
③起落架收放噪音;
④襟翼、減速板收放噪音;
⑤地面滑跑與飛機(jī)接地噪音:飛機(jī)在多個(gè)速度點(diǎn)滑跑和兩輪滑跑狀態(tài)地面的噪音及飛機(jī)接地時(shí)輪胎與地面摩擦聲的噪音;
⑥液壓、冷氣、電氣系統(tǒng)工作聲。
2)告警導(dǎo)航音
主要仿真機(jī)載系統(tǒng)音頻信號(hào),具體包括:無(wú)線電地面電臺(tái)、導(dǎo)航臺(tái)音頻信號(hào)、告警系統(tǒng)音頻、告警系統(tǒng)告警語(yǔ)音等。
3)通話子系統(tǒng)
主要模擬語(yǔ)音通訊通話,具體包括:受訓(xùn)飛行員之間的音頻通話、教員與飛行員的直接通話、話音自聽(tīng)。
目前國(guó)內(nèi)外飛行模擬器實(shí)現(xiàn)聲音實(shí)時(shí)仿真方法有兩種:
1) 聲音建模與合成方法[1],簡(jiǎn)稱建模法,即:先采集聲音信號(hào),對(duì)原始的聲音素材進(jìn)行離線頻譜分析得到其頻域模型,在聲音仿真中根據(jù)飛機(jī)的狀態(tài)和參數(shù),實(shí)時(shí)計(jì)算不同聲音的頻率和幅值,從而控制音響發(fā)生器發(fā)出聲音。這種方法的優(yōu)點(diǎn)是存儲(chǔ)量小、交互性好,可以做到聲音變化的自然平滑過(guò)渡,但計(jì)算量較大且聲音逼真度不高。
2) 聲源采樣、動(dòng)態(tài)調(diào)度法,簡(jiǎn)稱調(diào)度法,即: 將飛行過(guò)程中所需要的各種聲音直接錄制成聲音文件保存到聲音素材庫(kù),在聲音仿真中根據(jù)飛機(jī)狀態(tài)動(dòng)態(tài)調(diào)度聲音文件。這種方法的優(yōu)點(diǎn)是聲音逼真、計(jì)算量小,但交互性較差、占用較大的存儲(chǔ)空間。
鑒于上述兩種方法各有利弊,本文采用了對(duì)不同的音效使用不同的方法進(jìn)行實(shí)現(xiàn),并融合了XAudio2的硬件加速功能,從而對(duì)飛行模擬器的音效進(jìn)行仿真。
XAudio2 是微軟公司推出的DirectX 音頻組件,相比之前的DirectSound 在3D 聲音以及環(huán)繞聲音上有很大的改進(jìn),可單獨(dú)為每個(gè)揚(yáng)聲器設(shè)置音量。
XAudio2 技術(shù)具有以下幾個(gè)方面的特點(diǎn)[2]:
1) XAudio2 提供了一個(gè)強(qiáng)大而靈活的可編程數(shù)字信號(hào)處理(DSP)框架,同時(shí)為每個(gè)聲音提供了內(nèi)置的濾波器,以達(dá)到高效濾波的效果。
2) 次混音效果就是把幾個(gè)聲音混合成一個(gè)單一的音頻流。 XAudio2 允許任意層次的次混音,能夠創(chuàng)造出復(fù)雜的聲音以及混音。
3) 支持壓縮音頻格式,XAudio2 在 Windows 中支持ADPCM 和xWMA 壓縮格式。
4) 增強(qiáng)多通道和環(huán)繞立體聲效果。 XAudio2 取消了以往只支持6 聲道的限制,支持任意具有多聲道功能的聲卡,且不需要硬件加速。在Windows 平臺(tái)中,3D 聲音和環(huán)繞聲更加靈活和透明。
5) 多采樣率處理。為了最大限度地減少CPU 的使用率,XAudio2 提供了創(chuàng)建多個(gè)低速率音頻處理的技術(shù)。
6) 非阻塞 API 模型,XAudio2 技術(shù)所采用的調(diào)節(jié)方法不會(huì)阻塞音頻處理引擎,在其他運(yùn)行中也不會(huì)造成音頻處理引擎阻塞問(wèn)題。
音頻矩陣提供8 路音頻輸入、8 路音頻輸出的全功能矩陣混音控制。用于各類模擬器中的通信、告警等聲音系統(tǒng),全功能的矩陣混音功能可提供每個(gè)音頻節(jié)點(diǎn)的254 級(jí)音量控制,且每個(gè)音頻節(jié)點(diǎn)可實(shí)現(xiàn)獨(dú)立靜音控制。
聲音仿真系統(tǒng)由聲音仿真軟件、聲音仿真計(jì)算機(jī)、音頻功率放大器、音頻矩陣、音箱及耳麥組成。
根據(jù)飛行模擬器中各種聲音的不同特點(diǎn),將其分為固定聲源、實(shí)時(shí)生成聲源和實(shí)時(shí)語(yǔ)音通話3 大類[3]。
1) 固定聲源,主要包括告警導(dǎo)航音、起落架、襟翼、減速板收放聲。 這種聲音對(duì)象單一、短小、經(jīng)常重復(fù),不隨飛行狀態(tài)的變化而變化,不需要進(jìn)行實(shí)時(shí)計(jì)算。 所以采用調(diào)度法,將聲音直接錄制成聲音文件保存到聲音文件素材庫(kù)中,在告警導(dǎo)航音信號(hào)觸發(fā)時(shí)根據(jù)索引號(hào)調(diào)出相應(yīng)的文件,利用XAudio2 組件進(jìn)行播放即可。
2) 實(shí)時(shí)生成聲源,主要包括環(huán)境噪音。飛機(jī)在飛行過(guò)程中,飛機(jī)發(fā)動(dòng)機(jī)噪聲與發(fā)動(dòng)機(jī)的轉(zhuǎn)速、飛行高度等參數(shù)有關(guān),地面滑跑聲、接地聲及氣流噪音與速度等參數(shù)有關(guān)。 若采用調(diào)度法,則需要在每一個(gè)具體的飛行狀態(tài)節(jié)點(diǎn)采集聲音信號(hào)存入聲音文件素材庫(kù)中,這樣加大了存儲(chǔ)空間的占用,降低了聲音交互性與實(shí)時(shí)性。 因此采用建模法,根據(jù)飛機(jī)的實(shí)時(shí)飛行參數(shù)實(shí)時(shí)計(jì)算不同狀態(tài)的聲音頻率和幅值,利用XAu-dio2 組件對(duì)聲音進(jìn)行實(shí)時(shí)合成。
3) 實(shí)時(shí)語(yǔ)音通話,主要是前/后艙飛行員、教員與飛行員進(jìn)行實(shí)時(shí)通話,前、后艙和教員控制臺(tái)處語(yǔ)音信號(hào)經(jīng)音頻矩陣后輸出至教員控制臺(tái)終端,同時(shí)與語(yǔ)音告警音混音后經(jīng)阻抗調(diào)節(jié)單元輸出至前、后艙耳麥。
聲音仿真軟件運(yùn)行在聲音仿真計(jì)算機(jī)上,通過(guò)UDP 以太網(wǎng)與飛機(jī)仿真系統(tǒng)及音頻矩陣進(jìn)行數(shù)據(jù)交互。 軟件接收飛機(jī)仿真系統(tǒng)發(fā)送的飛行參數(shù)(包括發(fā)動(dòng)機(jī)狀態(tài)、轉(zhuǎn)速、飛行速度、起落架、襟翼、減速板狀態(tài)、告警導(dǎo)航音信號(hào)等)、各語(yǔ)音通訊音量大小,通過(guò)調(diào)用XAudio2 組件播放固定聲音及實(shí)時(shí)生成聲源,經(jīng)聲卡傳輸給音頻矩陣設(shè)備再到音箱及耳麥。同時(shí)發(fā)送音量數(shù)據(jù)至音頻矩陣,從而控制各輸出通道音量大小。 原理圖如圖1 所示。
圖1 系統(tǒng)原理圖
軟件采用模塊化結(jié)構(gòu)設(shè)計(jì),基于Microsoft Visual Studio C++2010 平臺(tái)實(shí)現(xiàn)編程。 軟件根據(jù)飛機(jī)當(dāng)前飛行狀態(tài),調(diào)整音源庫(kù)聲音素材的頻率和音量,合成環(huán)境噪音模擬音頻信號(hào),通過(guò)聲卡輸出。根據(jù)飛機(jī)告警信號(hào)和告警等級(jí),進(jìn)行語(yǔ)音告警信號(hào)排序,并按飛機(jī)告警邏輯從音源庫(kù)調(diào)用對(duì)應(yīng)語(yǔ)音告警聲音文件,生成音頻信號(hào),通過(guò)聲卡輸出。同時(shí)軟件通過(guò)以太網(wǎng)與音頻矩陣進(jìn)行通訊, 控制各輸入通道對(duì)應(yīng)的輸出通道,以及設(shè)置各輸出通道的音量。
根據(jù)軟件的主要功能,可以分為五個(gè)模塊:配置文件導(dǎo)入、數(shù)據(jù)網(wǎng)絡(luò)任務(wù)、枚舉聲卡、環(huán)境音播放、告警音播放。軟件流程圖如圖2 所示。
在某型教練機(jī)飛行模擬器中,經(jīng)過(guò)多次反復(fù)測(cè)試,驗(yàn)證了聲音仿真系統(tǒng)的功能。系統(tǒng)采用模塊化結(jié)構(gòu)設(shè)計(jì),更加靈活、便于擴(kuò)展。播放環(huán)境噪音及告警音的混音效果好,多通道輸出語(yǔ)音通話,彼此獨(dú)立,便于單通道控制。以配置文件的形式管理告警音文件的播放,以編號(hào)區(qū)分告警音的等級(jí)(危險(xiǎn)、警告、注意、提示等),實(shí)現(xiàn)按告警的優(yōu)先級(jí)別排序后依次告警,便于對(duì)告警音的增加、刪除管理功能。通過(guò)該聲音仿真系統(tǒng),為飛行員提供逼真的音效環(huán)境,在實(shí)際使用中實(shí)現(xiàn)了較好的效果。