專利名稱::用于創(chuàng)建音頻場景的設(shè)備和方法
技術(shù)領(lǐng)域:
:本發(fā)明總的來說涉及浸入式(immersive)音頻通信領(lǐng)域,且更加具體地,但決不排他地涉及在對等環(huán)境中創(chuàng)建浸入式音頻場景。
背景技術(shù):
:近年來,在創(chuàng)建可視地浸入式虛擬環(huán)境領(lǐng)域已經(jīng)有顯著的發(fā)展。這些發(fā)展導(dǎo)致大規(guī)模多游戲者角色扮演游戲的廣泛興起,在上述游戲中,參加者能夠進入公共的虛擬環(huán)境(比如戰(zhàn)場),且在虛擬環(huán)境中由一般為動畫人物形式的化身代表。可視地浸入式虛擬環(huán)境的廣泛興起部分由于以下二者的顯著發(fā)展使得能夠在虛擬環(huán)境中產(chǎn)生非常具體和逼真的圖形的圖像處理技術(shù)和采用高速處理單元的立體聲卡的開發(fā)。然而,這些環(huán)境的主要缺點在于當前游戲者間的通信機制很原始一通常涉及文本聊天或者無線對講機語音通信。將語音似乎來自化身的更自然的通信環(huán)境嵌入對應(yīng)于游戲者的虛擬世界中實現(xiàn)起來是復(fù)雜的,且傳送起來很昂貴。由參與虛擬環(huán)境的每個游戲者產(chǎn)生的音頻必須被發(fā)送給在收聽范圍內(nèi)的每個其他游戲者。對于大規(guī)模多游戲者游戲,用于促進這種音頻交換的上游和下游帶寬要求會特別高。此外,呈現(xiàn)所有接收的音頻流所需要的CPU成本較高,其需要采用特別強大的處理單元以滿足參與虛擬環(huán)境的最小硬件要求。以下提供本說明書中通篇使用的各種術(shù)語的定義音頻場景一音頻信息,包括空間地發(fā)出且根據(jù)在聲源和接收方之間的距離可選地衰減的組合聲音(例如,屬于其他化身的語音及虛擬環(huán)境內(nèi)的其他實時聲源)。音頻場景還可以包括表示環(huán)境的聲學(xué)特性的音效。
發(fā)明內(nèi)容在本發(fā)明的第一方面中,提供了一種為包括多個化身的虛擬環(huán)境中的化身創(chuàng)建音頻場景的方法,所述方法包括步驟創(chuàng)建多個化身之間的鏈接結(jié)構(gòu);和基于每個化身與其他鏈接的化身的關(guān)聯(lián)呈現(xiàn)每個化身的音頻場景。有益地,本發(fā)明的方面提供用于通過利用鏈接的對等類型結(jié)構(gòu)傳送浸入式音頻場景的低帶寬技術(shù)。以這種方式傳送服務(wù)消除了通過中心服務(wù)器發(fā)送實時業(yè)務(wù)流的要求。這對于傳送這種服務(wù)通常需要的大的服務(wù)器地段和帶寬成本來說能夠顯著節(jié)省成本。代替地,根據(jù)本發(fā)明的方面,可以使用使用服務(wù)的同級(或者鏈接的化身)的CPU資源和帶寬來傳送該服務(wù)。另外,因為每個新鏈接的化身添加資源以支持該服務(wù),可以隨著虛擬環(huán)境中化身的數(shù)目增長而容易地依比例決定服務(wù)傳送。根據(jù)第二方面,提供了包括用于控制計算機以實現(xiàn)根據(jù)本發(fā)明的第一方面的方法的至少一個指令的計算機程序。根據(jù)第三方面,提供了計算機可讀介質(zhì),該計算機可讀介質(zhì)提供根據(jù)本發(fā)明的第二方面的計算機程序。根據(jù)第四方面,提供了被設(shè)置以執(zhí)行根據(jù)本發(fā)明的第一方面的方法步驟的用戶計算裝置。根據(jù)第五方面,提供了被設(shè)置以創(chuàng)建虛擬環(huán)境的音頻場景的系統(tǒng),該系統(tǒng)包括多個計算裝置,每個計算裝置能夠控制虛擬環(huán)境中的至少一個化身,其中,每個計算裝置被設(shè)置成呈現(xiàn)至少一個化身的輸出音頻場景并將該輸出音頻場景傳遞到至少一個其他計算裝置。盡管任何其他形式可能落入本發(fā)明的范圍,現(xiàn)在參考附圖僅通過實例的方式描述本發(fā)明的實施例,在附圖中圖1是被設(shè)置以執(zhí)行本發(fā)明的實施例的系統(tǒng)的框圖;圖2示出虛擬環(huán)境中化身的布局實例;圖3示出呈現(xiàn)由圖2的虛擬環(huán)境的化身接收的每個音頻流所需的角度和衰減電平;圖4是在圖2的虛擬環(huán)境中鏈接化身的格網(wǎng)連接的實例;圖5示出確定圖2的化身之間的最短鏈接的最小生成樹的應(yīng)用;和圖6示出了根據(jù)本發(fā)明的實施例被添加到最小生成樹的邊緣。具體實施例方式參考圖1,系統(tǒng)100包括虛擬環(huán)境服務(wù)器102;控制服務(wù)器103;用戶計算裝置104;和通信系統(tǒng)106。虛擬環(huán)境服務(wù)器102的主要功能是保持用于虛擬環(huán)境的狀態(tài)信息。在本發(fā)明的實施例中,虛擬環(huán)境是多游戲者在線游戲的戰(zhàn)場,且化身表示該虛擬環(huán)境中的參加者(也就是說,用戶計算裝置104的用戶)且是動畫士兵的形式。由虛擬環(huán)境服務(wù)器102保持的狀態(tài)信息包括例如,虛擬環(huán)境中化身的位置;也就是說,戰(zhàn)場中士兵的位置。注意到,實施例不限于用于多游戲者在線游戲的虛擬環(huán)境和化身。該實施例可應(yīng)用于多種虛擬環(huán)境,包括例如,商業(yè)背景(比如虛擬職員會議)或者教育背景(比如虛擬講座)中的虛擬環(huán)境。為執(zhí)行保持狀態(tài)信息的主要功能,虛擬環(huán)境服務(wù)器102包括計算機硬件,該計算機硬件包括主板、中央處理單元、隨機存取存儲器、硬盤、網(wǎng)絡(luò)硬件和電源。除了硬件之夕卜,虛擬環(huán)境服務(wù)器102包括駐留在硬盤上且與硬件合作以提供可以執(zhí)行軟件應(yīng)用的環(huán)境的操作系統(tǒng)(比如可以在位于URL為http://WWW.redhat.com的網(wǎng)站從因特網(wǎng)獲得的Linux)。在這點上,虛擬環(huán)境服務(wù)器102的硬盤裝載了用于保持狀態(tài)信息的虛擬環(huán)境服務(wù)器應(yīng)用程序(比如可以在位于URL為http://WWW.idsoftware.com的網(wǎng)址從因特網(wǎng)獲得的Quake引擎)。控制服務(wù)器103經(jīng)由高速鏈路105連接到虛擬環(huán)境服務(wù)器102。控制服務(wù)器103包括與虛擬環(huán)境服務(wù)器相同的硬件且裝載有控制服務(wù)器應(yīng)用程序,其被設(shè)置成與虛擬環(huán)境服務(wù)器102相互作用以獲得識別在虛擬環(huán)境中出現(xiàn)的各種化身的信息,和在虛擬環(huán)境中化身的位置。該信息還可以包括化身的狀態(tài)細節(jié)(例如,活動或者不活動)和任何動態(tài)聲障(soundbarrier)的細節(jié)。使用嵌入在控制服務(wù)器應(yīng)用程序內(nèi)的算法,控制服務(wù)器103產(chǎn)生被傳遞到每個用戶計算裝置的浸入式音頻呈現(xiàn)信息。如圖1所示,控制服務(wù)器102也被設(shè)置成經(jīng)由鏈路114與用戶計算裝置通信。用戶計算裝置104是膝上型或者臺式計算機的形式。然而,容易理解本實施例不限于膝上型或者臺式通信裝置。設(shè)想在本發(fā)明的備選實施例中,用戶計算裝置104(例如,如所示的裝置04a_h)可以是比如諾基亞的N-Gage和PlaystationPortable(便攜PS)的便攜無線通信裝置。每個用戶計算裝置104包括計算機硬件,該計算機硬件包括主板、中央處理單元、隨機存取存儲器、硬盤或者類似的存儲裝置、電源、監(jiān)視器和用戶信息輸入(例如,鍵盤)。除了硬件之外,每個用戶計算裝置104的硬盤裝載有能夠與計算裝置104的硬件相互作用以提供可以執(zhí)行軟件應(yīng)用的環(huán)境的操作系統(tǒng)。在這點上,每個用戶計算裝置104的硬盤裝載有虛擬環(huán)境客戶應(yīng)用程序和浸入式音頻通信客戶應(yīng)用程序。該虛擬環(huán)境客戶應(yīng)用程序被設(shè)置成發(fā)送虛擬環(huán)境的狀態(tài)信息到加載在虛擬環(huán)境服務(wù)器102上的虛擬環(huán)境服務(wù)器應(yīng)用程序和從其接收虛擬環(huán)境的狀態(tài)信息。該浸入式音頻通信客戶應(yīng)用程序被設(shè)置成將音頻信息發(fā)送到其它浸入式音頻通信客戶端并從其接收音頻信息。先前描述了每個用戶計算裝置104裝載有操作系統(tǒng)。該實施例可以容易地被設(shè)置成操作加載在用戶計算裝置104上的任何不同操作系統(tǒng),包括例如MicrosoftWindowsXP或者Linux(當計算裝置104臺式計算機形式時二者都是典型地使用的)。通信系統(tǒng)106使得每個用戶計算裝置104的虛擬環(huán)境客戶應(yīng)用程序和虛擬環(huán)境系統(tǒng)102的虛擬環(huán)境服務(wù)器應(yīng)用程序能夠彼此交換數(shù)據(jù)(更具體地說,交換狀態(tài)信息)。通信系統(tǒng)106還使得每個用戶計算裝置104的浸入式音頻通信客戶應(yīng)用程序和控制服務(wù)器103能夠彼此交換數(shù)據(jù)(更具體地說,交換對等圖的形式的鏈接結(jié)構(gòu)的細節(jié))。為支持數(shù)據(jù)交換,通信系統(tǒng)106包括用于從用戶計算裝置104發(fā)送和接收數(shù)據(jù)的因特網(wǎng)的形式的數(shù)據(jù)網(wǎng)絡(luò)110。本發(fā)明不限于使用因特網(wǎng)且本發(fā)明的可選實施例可以采用,例如,基于802.11的無線網(wǎng)絡(luò)等。為使得虛擬環(huán)境系統(tǒng)102和用戶計算裝置104能夠經(jīng)由通信系統(tǒng)106交換數(shù)據(jù),虛擬環(huán)境服務(wù)器102經(jīng)由高速數(shù)據(jù)鏈路形式的通信鏈路114連接到因特網(wǎng)110。本發(fā)明的實施例主要涉及用于向參與虛擬環(huán)境的用戶計算裝置104的用戶提供浸入式音頻的低帶寬對等技術(shù)。同樣地,以下描述具體地集中在加載在控制服務(wù)器103上的控制服務(wù)器應(yīng)用程序和加載在每個用戶計算裝置104上的浸入式音頻通信客戶應(yīng)用程序的功能性。如先前討論的,位于控制服務(wù)器103上的控制服務(wù)器應(yīng)用程序被設(shè)置成從虛擬環(huán)境服務(wù)器應(yīng)用程序獲得關(guān)于在虛擬環(huán)境中操作的化身的位置的信息。根據(jù)在這里描述的實施例,位置信息是三維坐標(X,1,ζ)的形式??刂品?wù)器應(yīng)用程序另外被配置成獲得可能影響虛擬環(huán)境內(nèi)的聲音的傳播的任何靜態(tài)和動態(tài)聲障的細節(jié)(在下文中稱為“屏障信息”)。一旦已經(jīng)獲得位置信息和屏障信息,控制服務(wù)器應(yīng)用程序執(zhí)行以下動作(1)基于虛擬環(huán)境中化身的位置(X,y,ζ),計算樹,或者一系列樹(如果存在不在彼此的收聽范圍內(nèi)的多個完全不同的化身組)。這些樹將發(fā)言的化身連接到收聽的化身??刂品?wù)器應(yīng)用程序還可以考慮比如可用帶寬和節(jié)點的可靠性的因素(即,對應(yīng)于每個用戶計算裝置)以確定怎樣構(gòu)造樹。例如,如果樹中的節(jié)點不具有高可用帶寬,應(yīng)用可以限制其可以連接到的樹中的其他節(jié)點的數(shù)目。如果節(jié)點是不可靠的(例如,如果節(jié)點具有高延遲或者分組損失的歷史),那么控制服務(wù)器應(yīng)用程序會想要確保其是樹的葉子。(2)將環(huán)路引入樹中以減小形成對等圖的每個發(fā)言者和收聽者之間的路徑長度。控制服務(wù)器應(yīng)用程序?qū)⒉灰氡纫?guī)定長度短的環(huán)路以保證在最終由用戶計算裝置輸出的音頻流中不存在正反饋或者明顯的回聲;和(3)將與對等圖相關(guān)聯(lián)的以下細節(jié)傳遞到在該圖中標識的用戶計算裝置104(a)化身集合,用戶計算機裝置“Α”必須創(chuàng)建到該化身集合的連接;(b)應(yīng)用于A將在每個這些連接上發(fā)送的音頻流的衰減值α(α對應(yīng)于圖鏈接的長度);和(c)所接收的音頻流將要被呈現(xiàn)的角度θ(θ對應(yīng)于圖鏈接的角度)。關(guān)于創(chuàng)建樹結(jié)構(gòu)的函數(shù)(參見以上點1),可以采用任何適當?shù)臉浣Y(jié)構(gòu)。然而,在本實施例的情況下,采用最小生成樹(MST)。(其是關(guān)于與樹中的鏈路的長度相關(guān)聯(lián)的成本度量最小化的,與在虛擬環(huán)境中的化身之間的距離成正比。)有兩個主要功能由位于每個用戶計算裝置104上的浸入式音頻客戶應(yīng)用程序執(zhí)行。第一功能是呈現(xiàn)接收的音頻流以創(chuàng)建浸入式音頻場景,從而向用戶計算裝置104的用戶重放。該處理基本上涉及用戶計算裝置104在其連接到{Ε1;Ε2,...,Εη}的圖的每個邊上接收音頻流并以由浸入式音頻呈現(xiàn)信息指定的角度θ呈現(xiàn)該音頻流。第二功能涉及將由用戶計算裝置104產(chǎn)生的混合音頻流發(fā)送到全部其他邊連接的用戶計算裝置/化身。混合音頻流包括由用戶計算機裝置捕捉的音頻流(即客戶的語音)和在所有其他邊上(當然,不包括要被發(fā)送的混合音頻流所沿著的邊)接收的音頻流的混合。在發(fā)送混合音頻流之前,使用用于該特定邊的衰減值α衰減該混合音頻流,這也由浸入式音頻呈現(xiàn)信息指定。參考圖1到6,現(xiàn)在將描述由用戶計算裝置呈現(xiàn)浸入式音頻場景的方法的實例。在第一步驟中,虛擬環(huán)境服務(wù)器102將虛擬環(huán)境的狀態(tài)信息傳遞到客戶服務(wù)器103的客戶服務(wù)器應(yīng)用程序用于后續(xù)的處理。給定具有由客戶(C1,C2,...Cn)控制的每個N個化身(A1,A2,...An)的虛擬世界。由這N個客戶中的每一個產(chǎn)生音頻樣本(Vi)。以F個邊(E1;E2,...,Ef)構(gòu)造圖。這些邊中的每一個具有相關(guān)聯(lián)的角度Θ」和衰減因數(shù)α」,其中0<j<=F。(步驟1)將全部化身置于平面上,它們的(x,y)坐標對應(yīng)于它們在虛擬環(huán)境中的(x,y)坐標,如圖2所示。(步驟2)創(chuàng)建圖的全部節(jié)點之間的格網(wǎng)連接;如果存在墻壁則除去在墻壁的相對側(cè)的化身之間的任何鏈路。(步驟3)使用任何適當?shù)乃惴╛比如Kruskal算法計算連接全部節(jié)點的最小生成樹(MST)。(步驟4)處于圖中不是最小生成樹的一部分的全部鏈路;(步驟5)當可以添加環(huán)路而不超過在節(jié)點的傳輸限制,且當存在超過閾值(例如,收聽范圍的兩倍)的可能的環(huán)路時,則(a)設(shè)置min_edge_length=infinity(b)對于可以彼此聽到的每對節(jié)點i,j(i)計算在兩個節(jié)點之間的最小環(huán)路距離為min_l00Pij=SPij^VDijo其中SPij是在樹上i,j之間的最短路徑且VDij=在i和j之間的直接鏈路的長度,如果存在的話,(ii)如果Iiiiruloopij>環(huán)路閾值(2Xhearing_range)且Dij<min_edge_length(l)min_edge_length=VDij(2)min_edge={i,j}(c)將miruedge涉及的邊添加到圖。這是引入可接受的環(huán)路的最小邊?,F(xiàn)在考慮連接到虛擬環(huán)境的7個游戲者。每個游戲者使用連接到因特網(wǎng)的不同PC。每個游戲者正在控制單獨的化身-這些化身被命名為Al到A7。這些化身在虛擬世界中的x,y(空間)位置如表1所示。表1:化身的X,Y位置權(quán)利要求1.一種為包括多個化身的虛擬環(huán)境中的化身創(chuàng)建音頻場景的方法,所述方法包括步驟創(chuàng)建多個化身之間在所述虛擬環(huán)境中的鏈接結(jié)構(gòu);和基于每個化身與其他鏈接的化身的關(guān)聯(lián)呈現(xiàn)每個化身的音頻場景;其中,所創(chuàng)建的鏈接結(jié)構(gòu)能夠操作以定義用于呈現(xiàn)所述音頻場景的角度或衰減因數(shù)中的至少一個以應(yīng)用于進入鏈路上的音頻流,其中所述用于呈現(xiàn)所述音頻場景的角度對應(yīng)于所述每個化身與所述其他鏈接的化身之間的鏈路的角度,其中所述虛擬環(huán)境包含以下項中的一個或多個多游戲者在線游戲、虛擬商業(yè)會議或者虛擬教育功能,并且其中所述化身中的每一個包含所述虛擬環(huán)境中的參與者。2.如權(quán)利要求1所述的創(chuàng)建音頻場景的方法,其中,該鏈接結(jié)構(gòu)包括最小生成樹。3.如權(quán)利要求1所述的創(chuàng)建音頻場景的方法,其中,所述最小生成樹鏈接結(jié)構(gòu)是關(guān)于與所述樹中的鏈路的長度相關(guān)聯(lián)的成本度量最小化的,并且其中所述樹中的鏈路的長度正比于所述虛擬環(huán)境中兩個化身之間的距離。4.如權(quán)利要求3所述的創(chuàng)建音頻場景的方法,其中,該衰減因數(shù)包括與所述鏈接結(jié)構(gòu)中鏈路的長度相對應(yīng)的值。5.如權(quán)利要求2到4中任意一個所述的創(chuàng)建音頻場景的方法,由此,在鏈接結(jié)構(gòu)中兩個化身之間的鏈路的角度定義呈現(xiàn)角度。6.如權(quán)利要求1到4中任意一個所述的創(chuàng)建音頻場景的方法,其中,該鏈接結(jié)構(gòu)是連接所述多個化身的樹結(jié)構(gòu)。7.如權(quán)利要求6所述的創(chuàng)建音頻場景的方法,其中,該樹結(jié)構(gòu)是最小生成樹。8.如權(quán)利要求7所述的創(chuàng)建音頻場景的方法,進一步包括將環(huán)路引入到最小生成樹以使得環(huán)路的最小長度小于預(yù)定值以避免呈現(xiàn)音頻場景時的回聲的步驟。9.如權(quán)利要求8所述的創(chuàng)建音頻場景的方法,其中,該預(yù)定值是化身的收聽范圍的兩倍。10.如權(quán)利要求1-4中的任意一個所述的創(chuàng)建音頻場景的方法,進一步包括將呈現(xiàn)的音頻場景與由所述多個化身中的至少一個產(chǎn)生的音頻流混合的步驟。11.如權(quán)利要求10所述的創(chuàng)建音頻場景的方法,進一步包括將混合的音頻場景發(fā)送到另一鏈接的化身的步驟。12.一種為包括多個化身的虛擬環(huán)境中的化身創(chuàng)建音頻場景的系統(tǒng),所述系統(tǒng)包括用于創(chuàng)建多個化身之間在所述虛擬環(huán)境中的鏈接結(jié)構(gòu)的裝置;和用于基于每個化身與其他鏈接的化身的關(guān)聯(lián)呈現(xiàn)每個化身的音頻場景的裝置;其中,所創(chuàng)建的鏈接結(jié)構(gòu)能夠操作以定義用于呈現(xiàn)所述音頻場景的角度或衰減因數(shù)中的至少一個以應(yīng)用于進入鏈路上的音頻流,其中所述用于呈現(xiàn)所述音頻場景的角度對應(yīng)于所述每個化身與所述其他鏈接的化身之間的鏈路的角度,其中所述虛擬環(huán)境包含以下項中的一個或多個多游戲者在線游戲、虛擬商業(yè)會議或者虛擬教育功能,并且其中所述化身中的每一個包含所述虛擬環(huán)境中的參與者。13.一種被設(shè)置成創(chuàng)建包括多個化身的虛擬環(huán)境的音頻場景的系統(tǒng),所述多個化身在所述虛擬環(huán)境中存在鏈接結(jié)構(gòu),該系統(tǒng)包括多個計算裝置,每個計算裝置能夠控制虛擬環(huán)境中的至少一個化身,其中,每個計算裝置被設(shè)置成基于所述至少一個化身與其他鏈接的化身的關(guān)聯(lián)呈現(xiàn)至少一個化身的輸出音頻場景并將該輸出音頻場景傳遞到至少一個其他計算裝置,其中,所創(chuàng)建的鏈接結(jié)構(gòu)能夠操作以定義用于呈現(xiàn)所述音頻場景的角度或衰減因數(shù)中的至少一個以應(yīng)用于進入鏈路上的音頻流,其中所述用于呈現(xiàn)所述音頻場景的角度對應(yīng)于所述每個化身與所述其他鏈接的化身之間的鏈路的角度,其中所述虛擬環(huán)境包含以下項中的一個或多個多游戲者在線游戲、虛擬商業(yè)會議或者虛擬教育功能,并且其中所述化身中的每一個包含所述虛擬環(huán)境中的參與者。14.如權(quán)利要求13所述的被設(shè)置成創(chuàng)建音頻場景的系統(tǒng),其中,每個計算裝置進一步被設(shè)置成從至少一個其他計算裝置接收輸入音頻場景,并與輸出音頻場景一起呈現(xiàn)該輸入音頻場景。全文摘要在多個化身的虛擬環(huán)境中為化身創(chuàng)建音頻場景。在化身之間創(chuàng)建鏈接結(jié)構(gòu)?;诨砼c其它鏈接的化身的關(guān)聯(lián),為每個化身創(chuàng)建音頻場景。文檔編號H04S7/00GK102325299SQ20111015295公開日2012年1月18日申請日期2007年11月8日優(yōu)先權(quán)日2006年11月8日發(fā)明者F·薩費,P·鮑斯特德申請人:杜比實驗室特許公司