国产日韩欧美一区二区三区三州_亚洲少妇熟女av_久久久久亚洲av国产精品_波多野结衣网站一区二区_亚洲欧美色片在线91_国产亚洲精品精品国产优播av_日本一区二区三区波多野结衣 _久久国产av不卡

?

XAudio2技術(shù)在地鐵列車駕駛模擬器中的應(yīng)用

2011-03-21 14:07:42錢雪軍
城市軌道交通研究 2011年1期
關(guān)鍵詞:混音音量聲源

陳 嘉 錢雪軍 朱 鳴 姚 軍

(1.同濟(jì)大學(xué)電氣工程系,200092,上海;2.上海申通地鐵集團(tuán)有限公司軌道交通培訓(xùn)中心,201102,上?!蔚谝蛔髡?碩士研究生)

XAudio2技術(shù)在地鐵列車駕駛模擬器中的應(yīng)用

陳 嘉1錢雪軍1朱 鳴2姚 軍2

(1.同濟(jì)大學(xué)電氣工程系,200092,上海;2.上海申通地鐵集團(tuán)有限公司軌道交通培訓(xùn)中心,201102,上?!蔚谝蛔髡?碩士研究生)

為了使受訓(xùn)學(xué)員在地鐵列車駕駛模擬器上獲得逼真的聽覺(jué)效果,需要對(duì)列車駕駛室中聽到的各種聲音進(jìn)行模擬仿真。在分析列車駕駛模擬器聲音的種類及特點(diǎn)的基礎(chǔ)上,把模擬駕駛器中的聲音分為無(wú)方位的聲音和3D立體聲進(jìn)行研究。提出了采用微軟最新DirectX組件中的XAduio2技術(shù)來(lái)實(shí)現(xiàn)聲音的仿真。仿真得到的聲音效果能夠使受訓(xùn)學(xué)員聽覺(jué)上產(chǎn)生強(qiáng)烈的沉浸感。

XAduio2技術(shù);地鐵列車駕駛模擬器;聲音仿真

First-author's addressDepartment of Electrical Engineering,Tongji University,200092,Shanghai,China

地鐵列車駕駛模擬器仿真系統(tǒng)要求對(duì)真實(shí)系統(tǒng)進(jìn)行盡可能真實(shí)的仿真,不僅要在整個(gè)駕駛過(guò)程中給受訓(xùn)學(xué)員提供逼真的視覺(jué)、力感,而且要有逼真的音響效果。逼真的音響效果可以使受訓(xùn)學(xué)員產(chǎn)生身臨其境的感覺(jué),增加系統(tǒng)的沉浸感。因此,對(duì)地鐵列車駕駛模擬器聲音的仿真研究具有重要的意義。

1 地鐵列車駕駛模擬器聲音仿真系統(tǒng)簡(jiǎn)介

地鐵列車駕駛模擬器由駕駛室操縱臺(tái)、控制仿真系統(tǒng)、視景仿真系統(tǒng)、聲音仿真系統(tǒng)等幾個(gè)主要部分組成。地鐵列車實(shí)際運(yùn)行時(shí)會(huì)產(chǎn)生各種聲音,包括輪軌噪聲、變頻器噪聲、橋隧噪聲、電器動(dòng)作噪聲,以及空氣制動(dòng)、鳴笛、會(huì)車和調(diào)車連掛所引起的噪聲等。這些都是聲音仿真系統(tǒng)需要模擬的對(duì)象。

在駕駛模擬器中,聲音信息一方面可以為視景仿真系統(tǒng)實(shí)時(shí)伴音,使視覺(jué)和聽覺(jué)相互疊加;另一方面3D聲音信息可以補(bǔ)充由于視野的局限而接收不到的信息。如起霧時(shí)從遠(yuǎn)方相向駛來(lái)的列車發(fā)出的聲音可以使駕駛員準(zhǔn)確判斷前方的狀況。因此,在地鐵列車駕駛模擬器中,逼真的聲音仿真能增強(qiáng)駕駛員在虛擬駕車環(huán)境中的沉浸感。

目前,國(guó)內(nèi)地鐵列車駕駛模擬器的聲音仿真一般使用微軟DirectX中的DirectSound組件來(lái)實(shí)現(xiàn)。從DirectX 9.0版本以后,微軟未對(duì)DirectSound進(jìn)行重大更改,而在其后的DirectX 10.1版本中推出了它的替代音頻 API(應(yīng)用程序編程接口)——XAudio2。XAudio2在3D聲音以及環(huán)繞聲音上較DirectSound有很大的改進(jìn),可單獨(dú)為每個(gè)揚(yáng)聲器設(shè)置音量。例如:配置5.1聲道或7.1聲道音響各個(gè)揚(yáng)聲器的聲音;在程序中可以僅設(shè)置其中一個(gè)揚(yáng)聲器的音量,也可分別計(jì)算出每個(gè)揚(yáng)聲器所要產(chǎn)生的音量。在新版的DirectX中,XAudio2主要用來(lái)進(jìn)行音頻的信號(hào)處理,而三維空間的聲音定位任務(wù)則由另一個(gè)音頻API——X3DAudio來(lái)實(shí)現(xiàn)。這樣的搭配使得3D音效的編程變得更加靈活而方便。

2 聲音仿真的重要概念

2.1 聲音定位原理

在真實(shí)環(huán)境中,人們感知聲音在空間中的位置由許多因素決定。其中聲源所提供的位置因素有:

(1)總體響度。一般來(lái)說(shuō),響度是決定聆聽者主觀距離感的最重要因素。當(dāng)一個(gè)聲源離開聆聽者時(shí),聆聽者聽到的音量將隨著聲源的遠(yuǎn)離而減小。

(2)耳間聽覺(jué)強(qiáng)度差。若聲源在聆聽者右邊,則其右耳聽到的聲音比左耳要大。

(3)兩耳聽覺(jué)時(shí)間差。從位于聆聽者右側(cè)聲源發(fā)出的聲音,到達(dá)右耳的時(shí)間比到達(dá)左耳要短一點(diǎn)。這個(gè)偏差一般為毫秒級(jí)。

(4)衰減。由于耳朵的形狀和位置,使得從聆聽者身后傳來(lái)的聲音比聆聽者前面?zhèn)鱽?lái)的聲音更低沉一些。此外,如果聲源從聆聽者右邊傳來(lái),則傳遞到左耳的聲音很大一部分會(huì)被聆聽者的頭部衰減掉。

(5)耳廓作用。由于耳廓的特殊構(gòu)造,使得從不同方向傳來(lái)的聲音到達(dá)耳膜的時(shí)間產(chǎn)生了微小變化。這種效應(yīng)的數(shù)學(xué)模型被稱作頭部相關(guān)傳遞函數(shù)。

2.2 聲音錐

無(wú)方向的聲音對(duì)同一距離的任意方向都有相同的振幅,而有方向的聲音則只在它所指向的方向振幅最大。描述這種現(xiàn)象的聲音模型稱為聲音錐。聲音錐由聲音內(nèi)錐和聲音外錐構(gòu)成,且外錐角度必須始終大于等于內(nèi)錐角度,如圖1所示。

圖1 聲音錐示意圖

當(dāng)聆聽者處于聲音內(nèi)錐時(shí),考慮到聲音緩沖區(qū)的基本音量、與聲源的距離以及方向等因素,此時(shí)聆聽者接收到的音量就等于聲音內(nèi)錐的音量。當(dāng)聆聽者位于聲音外錐半徑之外時(shí),所接收到的音量是線性變化的,它的取值可以從0.0f(f表示浮點(diǎn)數(shù))到2.0f。聲音外錐音量1.0f代表聲音無(wú)衰減,0.5f代表聲音衰減了6 dB,0.0f則代表聲音完全消失了。在聲音錐的內(nèi)錐和外錐之間是一個(gè)過(guò)渡帶。聆聽者接收到的音量從聲音內(nèi)錐過(guò)渡到聲音外錐時(shí)將逐漸減小。

2.3 聲音的多普勒效應(yīng)

聲波是通過(guò)傳播介質(zhì)發(fā)送給聆聽者的。如果聲波波源相對(duì)于聆聽者位置固定,則聆聽者接收到的聲波頻率與波源的頻率相同。如果波源與聆聽者有相對(duì)運(yùn)動(dòng),聆聽者檢測(cè)到的頻率就與實(shí)際波源頻率有差異。頻率差的大小取決于雙方的相對(duì)運(yùn)動(dòng)速度。這種因?yàn)椴ㄔ春婉雎犝咧兄换騼烧咭圆煌俣认鄬?duì)于傳播介質(zhì)運(yùn)動(dòng),使聆聽者所接收到的聲波頻率高于或低于波源的振動(dòng)頻率的現(xiàn)象稱為聲音的多普勒效應(yīng)。

3 XAudio2組件介紹

XAudio2作為微軟新推出的DirectX的一個(gè)音頻組件,是一個(gè)底層的、跨越Windows和Xbox 360硬件平臺(tái)的音頻API。它與之前Windows平臺(tái)下的DirectSound音頻接口和Xbox平臺(tái)下的XAudio音頻接口一樣,為游戲開發(fā)提供了強(qiáng)大的信號(hào)處理與混音的功能。XAudio2為Windows和Xbox 360開發(fā)者提供了“寫一次代碼,編譯兩次”的優(yōu)秀解決方案,大大減少了游戲開發(fā)人員跨平臺(tái)修改代碼的工作量。

3.1 XAudio2的特點(diǎn)

XAudio2與Windows平臺(tái)下的DirectX音頻組件DirectSound相比,有以下優(yōu)點(diǎn):

(1)可編程的數(shù)字信號(hào)處理(DSP)效果以及單個(gè)語(yǔ)音濾波效果。DSP效果是音頻處理的核心部分,它使用混響和閉塞/阻塞濾波效果來(lái)處理聲音,并對(duì)聲音在游戲環(huán)境中進(jìn)行定位。XAudio2提供了一個(gè)強(qiáng)大而靈活的DSP框架,同時(shí)還為每個(gè)聲音提供了內(nèi)置的濾波器,以達(dá)到高效濾波的效果

(2)次混音效果。次混音就是把幾個(gè)聲音混合成一個(gè)單一的音頻流??墒褂肵Audio2的次混音效果來(lái)處理、合并游戲中類似的音頻部分。例如,所有的游戲音效部分可以合并起來(lái),并允許用戶調(diào)節(jié)音量,而游戲音樂(lè)部分的音量也可以單獨(dú)調(diào)節(jié)。XAudio2允許任意層次的次混音,能夠創(chuàng)造出復(fù)雜的聲音以及游戲混音。

(3)支持壓縮音頻格式。XAudio2支持壓縮音頻格式,在Windows中支持ADPCM 和xWMA壓縮格式。

(4)增強(qiáng)的多通道和環(huán)繞立體聲效果。XAudio2進(jìn)一步增強(qiáng)了Windows對(duì)多聲道、3D聲音以及環(huán)繞聲的支持。XAudio2取消了以往只支持6聲道的限制,支持任意具有多聲道功能的聲卡,且該卡不需要硬件加速。在Windows平臺(tái)中,3D聲音和環(huán)繞聲更加靈活和透明。

(5)多采樣率處理。為了最大限度地減少CPU的使用率,XAudio2提供了創(chuàng)建多個(gè)低速率音頻處理的技術(shù)。如果音頻頻率低于48 kHz,則允許以聲音的原始頻率來(lái)進(jìn)行處理,這樣可以顯著地降低CPU的使用率。

(6)非阻塞API模型。除了極個(gè)別例外,XAudio2的調(diào)用方法不會(huì)阻塞音頻處理引擎。這意味著開發(fā)人員可以放心調(diào)用XAudio2的方法,不用擔(dān)心因?yàn)槠渌谶\(yùn)行的XAudio2方法造成音頻處理引擎阻塞。

3.2 XAudio2相關(guān)概念

XAudio2組件中共有源聲音、次混音聲音、主混音聲音等三種類型的聲音,XAuio2通過(guò)它們來(lái)處理、操作和播放音頻數(shù)據(jù)。

源聲音:代表音頻數(shù)據(jù)流,并發(fā)送數(shù)據(jù)給其他類型的聲音。

次混音聲音:其職能是對(duì)接收到的音頻數(shù)據(jù)進(jìn)行操作,如進(jìn)行音頻采樣率轉(zhuǎn)換。當(dāng)次混音聲音處理完數(shù)據(jù)后,將數(shù)據(jù)傳遞給另一個(gè)次混音聲音或者主混音聲音。

主混音聲音:接收從源聲音和次混音聲音傳遞過(guò)來(lái)的數(shù)據(jù),并把音頻數(shù)據(jù)發(fā)送給音頻硬件。

音頻圖是XAudio2聲音的一個(gè)集合。聲音數(shù)據(jù)從音頻圖中的源聲音開始,可以選擇經(jīng)過(guò)一個(gè)或多個(gè)次混音聲音,最后發(fā)送到主混音聲音,由主混音聲音把音頻數(shù)據(jù)發(fā)送給音頻硬件處理。音頻圖包含每個(gè)正在播放的源聲音,零個(gè)或多個(gè)次混音聲音,一個(gè)主混音聲音。圖2是一個(gè)簡(jiǎn)單的音頻圖示意圖。

圖2 簡(jiǎn)單的音頻圖示意圖

4 XAduio2在模擬器中的應(yīng)用

地鐵列車運(yùn)行中的聲音可分為沒(méi)有方位的聲音和3D立體聲兩種。例如,在駕駛室內(nèi)聽到的輪軌噪聲基本具有恒定的響度,因此輪軌噪聲可看作是無(wú)方位的聲音;當(dāng)2列車會(huì)車時(shí),由于聲音的多普勒效應(yīng),就需要使用3D立體聲來(lái)模擬這種效果。本文介紹用XAudio2來(lái)模擬這兩種聲音的過(guò)程。

4.1 無(wú)方位聲音的仿真

在操縱駕駛模擬器的時(shí)候,駕駛室內(nèi)聽到的列車機(jī)械、電器動(dòng)作等的聲音基本上是無(wú)方位的聲音,因此無(wú)需進(jìn)行3D定位的聲音仿真,直接播放出來(lái)即可達(dá)到所需的效果。

用XAudio2播放無(wú)方位聲音的最小步驟是:先初始化XAudio2,然后創(chuàng)建一個(gè)源聲音并將音頻數(shù)據(jù)傳遞給它;這樣,一個(gè)聲音文件就可以通過(guò)音頻輸出設(shè)備播放出來(lái)了。特別要指出的是,由于DirectX是基于組件對(duì)象模型(Component Object Model,簡(jiǎn)為COM)開發(fā)的,所以在調(diào)用XAudio2Create初始化XAduio2前,必須先調(diào)用COM函數(shù)CoInitialize或者CoInitializeEx,才能成功初始化XAudio2。程序的流程圖如3所示。

4.2 3D立體聲的仿真

設(shè)置合適的聲音錐可以使程序中的聲音栩栩如生。例如,在模擬2車會(huì)車的場(chǎng)景中,可以把聲源放在來(lái)車內(nèi)部,并設(shè)置聲音錐的方向?yàn)樵撥嚨男旭偡较?設(shè)置合適的內(nèi)錐和外錐角度,并設(shè)置超過(guò)外錐一段距離后將聽不到任何聲音;同時(shí)設(shè)置多普勒效應(yīng)因子。這樣,當(dāng)受訓(xùn)學(xué)員模擬駕駛時(shí),與來(lái)車越接近,聲音就會(huì)越大越刺耳;當(dāng)會(huì)車完畢后,學(xué)員聽到的來(lái)車聲音將逐漸減小直至聽不到為止。通過(guò)3D立體聲仿真,可使駕駛員通過(guò)聲音音調(diào)的變化判斷出與來(lái)車的相對(duì)速度,仿佛置身于真實(shí)的駕車環(huán)境中。如果簡(jiǎn)單地重放聲音,就體現(xiàn)不出聲音的動(dòng)感。

圖3 播放無(wú)方位聲音流程圖

X3DAudio是與XAuido2在三維空間中結(jié)合使用的API。X3DAudio使用聆聽者(Listener)和發(fā)射器(Emitter)來(lái)管理三維空間中的聲音。聆聽者和發(fā)射器分別代表聲音接收方和發(fā)射源的位置。

(1)聆聽者:定義為空間中聆聽者所在的點(diǎn)的位置及其方向。一般來(lái)說(shuō),無(wú)論是第一人稱視角或是第三人稱視角模式下,它的位置和方向與場(chǎng)景中攝像機(jī)位置是一致的。聆聽者的位置用世界坐標(biāo)來(lái)表示。

(2)發(fā)射器:定義為空間中的一個(gè)(或多個(gè))發(fā)射聲源的點(diǎn)。發(fā)射器的位置可在三維空間中的任何地方。發(fā)射器的位置也用世界坐標(biāo)來(lái)表示。

要注意發(fā)射器和聆聽者的相對(duì)位置,才能計(jì)算最終的揚(yáng)聲器音量。除了位置外,聆聽者和發(fā)射器還可以包含速度。與3D圖形渲染引擎不同,X3DAudio只使用速度來(lái)計(jì)算多普勒效應(yīng)(不需要計(jì)算位置)。

XAudio2與X3DAudio一起配套使用時(shí),可以逼真地模擬出3D立體聲。X3DAudio和XAudio2之間的相互作用是通過(guò)直接調(diào)用2個(gè)X3DAudio函數(shù)來(lái)實(shí)現(xiàn)的,它們分別是 X3DAudioInitialize和X3DAudioCalculate函數(shù)。

在駕駛模擬器中產(chǎn)生3D立體聲效果可以通過(guò)以下兩個(gè)步驟來(lái)實(shí)現(xiàn)。

步驟1:初始化X3DAudio。

首先調(diào)用X3DAudioInitialize函數(shù)初始化X3DAudio,再 創(chuàng)建 X3DAUDIO_LISTENER、X3DAUDIO_EMITT ER和X3DAUDIO_DSP_SETT INGS結(jié)構(gòu)體的實(shí)例。

步驟2:利用X3DAudio計(jì)算和設(shè)置3D音頻效果。

①動(dòng)態(tài)更新 X3DAUDIO_LISTENER與X3DAUDIO_EMITT ER實(shí)例的當(dāng)前位置、速度以及方位。

②調(diào)用X3DAudioCalculate函數(shù)重新計(jì)算當(dāng)前聲音的音頻效果。其中多普勒頻移效應(yīng)計(jì)算公式為實(shí)際頻率=多普勒頻移系數(shù)×原始頻率。只有當(dāng)程序中X3DAUDIO_CALCULATE_DOPPLER標(biāo)志位設(shè)置時(shí),調(diào)用X3DAudioCaculate函數(shù)才能計(jì)算出多普勒頻率。

③調(diào)用IXAudio2Voice::SetOutputMatrix和IXAudio2SourceVoice::SetFrequencyRatio函數(shù),將上一步計(jì)算得到的音量和音調(diào)值數(shù)據(jù)傳送給源聲音。

④調(diào)用IXAudio2Voice::SetOutputMatrix函數(shù)將計(jì)算好的混響水平發(fā)送給次混音聲音。

⑤調(diào)用 IXAudio2Voice::SetFilterParameters函數(shù)將計(jì)算出的低通濾波系數(shù)發(fā)送給源聲音。

這樣,通過(guò)5.1聲道的音頻輸出設(shè)備,學(xué)員在模擬駕駛時(shí),將能準(zhǔn)確辨別出聲源的位置、速度等信息,且當(dāng)2列車會(huì)車時(shí),能很逼真地感受到聲音的多普勒效應(yīng),仿佛身臨其境,沉浸在模擬駕駛環(huán)境中。

5 結(jié) 語(yǔ)

本文簡(jiǎn)要介紹了XAduio2技術(shù)。應(yīng)用該技術(shù)開發(fā)的具有三維立體聲效果的地鐵列車駕駛模擬器聲音仿真系統(tǒng),可以逼真地模擬真實(shí)地鐵列車駕駛中的各種聲音以及音響效果,使受訓(xùn)學(xué)員產(chǎn)生身臨其境的沉浸感,能夠滿足地鐵列車駕駛模擬器對(duì)聲音仿真的要求。

[1]張順廣.機(jī)車仿真器中聲音系統(tǒng)的研究與開發(fā)[D].成都:西南交通大學(xué),2003.

[2]張鐸,陳定方,蔣云.空間聲音建模技術(shù)及其在駕駛模擬器中的應(yīng)用[J].湖北工業(yè)大學(xué)學(xué)報(bào),2007(6):62.

[3]Microsoft.DirectX Software Development Kit[EB/OL].(2008-11)[2010-01-01].http:∥msdn.microsoft.com/en-us/library/ee415899(VS.85).aspx

Application of XAudio2 Technology to Metro Train Driving Simulator

Chen Jia,Qian Xuejun,Zhu Ming,Yao Jun

In order to give the trainees some vivid auditory effects,the simulation of various sounds in cabin is significant for metro train driving simulator(MTDS).In this paper,the types and characteristics of sounds in MTDS are discussed,which are divided into non-directional sounds and 3D stereo sounds.A new method of audio simulation is proposed with the application of the latest Microsoft DirectX component XAudio2,this technology is able to give the trainees a strong sense of immersion.

XAudio2 technology;metro train drivings imulator;audio simulation

TP 391.9

2010-01-06)

猜你喜歡
混音音量聲源
測(cè)測(cè)你的“音量值”
虛擬聲源定位的等效源近場(chǎng)聲全息算法
基于GCC-nearest時(shí)延估計(jì)的室內(nèi)聲源定位
電子制作(2019年23期)2019-02-23 13:21:12
請(qǐng)放心地扭大音量看電影聽音樂(lè)吧!Mclntosh Sonus Faber家庭影院套裝
一種多路音頻混音算法的實(shí)現(xiàn)與應(yīng)用
電子世界(2017年15期)2017-08-30 00:17:22
運(yùn)用內(nèi)積相關(guān)性結(jié)合迭代相減識(shí)別兩點(diǎn)聲源
細(xì)火慢燉增加音量調(diào)節(jié)級(jí)數(shù)
力-聲互易在水下聲源強(qiáng)度測(cè)量中的應(yīng)用
基于DSP的多方會(huì)議系統(tǒng)的混音方案
靈犀一指
新密市| 葵青区| 阿克陶县| 巴彦县| 卢龙县| 冕宁县| 汉川市| 游戏| 阆中市| 娄烦县| 黄山市| 潼南县| 南郑县| 锦州市| 阿尔山市| 惠安县| 普兰店市| 定南县| 巢湖市| 枞阳县| 辽阳县| 丰原市| 永昌县| 十堰市| 怀安县| 同德县| 宿州市| 丰原市| 雷波县| 吉林市| 青川县| 宁河县| 蓬安县| 呼玛县| 三门峡市| 壶关县| 贞丰县| 卓尼县| 高台县| 新巴尔虎右旗| 新乡市|