Térbeli hang Windows, Xbox és Hololens 2 alkalmazásfejlesztőknek

Jegyzet

Ez a dokumentáció egy fejlesztői közönség számára készült. A térbeli hang eszközre való engedélyezésének végfelhasználói támogatásáról a Az Windows 10 térbeli hang bekapcsolása című témakörben olvashat.

Microsoft Térbeli hang Microsoft platformszintű megoldása a térbeli hang támogatásához Xbox, Windows és HoloLens 2 rendszeren, lehetővé téve a térbeli és a magassági (a figyelő fölötti vagy alatti) hangjelzéseket. A térbeli hangzást Windows asztali (Win32) alkalmazások, valamint Univerzális Windows-platform (UWP) támogatott platformokon elérhető alkalmazások is használhatják. A térbeli hang API-k lehetővé teszik a fejlesztők számára, hogy olyan hangobjektumokat hozzanak létre, amelyek hangot bocsátanak ki a térbeli pozíciókból. A dinamikus hangobjektumok lehetővé teszik a hangkibocsátást egy tetszőleges helyről a térben, ami idővel változhat. Azt is megadhatja, hogy a hangobjektumok a 17 előre definiált statikus csatorna (8.1.4.4) egyikéből bocsátanak ki hangot, amelyek valós vagy virtualizált hangszórókat képviselhetnek. A tényleges kimeneti formátumot a felhasználó választja ki, és Microsoft Térbeli hang implementációkból absztrakcióra is használható. A hang a meglévő hangszórók, fejhallgatók és házimozi fogadók számára kód- vagy tartalommódosítás nélkül jelenik meg. A platform teljes mértékben támogatja a valós idejű Dolby Atmos kódolást a HDMI és a sztereó fejhallgató kimenetéhez, a DTS:X for Headphones kódolást és a sztereó fejhallgatókhoz a Windows Sonic for Headphones kódolást. Végül Microsoft térbeli hangalkalmazások betartják a rendszerkeverési szabályzatot, és hangjuk is keveredik a térbelileg nem tudatos alkalmazásokkal. Microsoft Térbeli hang támogatás a Media Foundationbe is integrálva van; a Media Foundationt használó alkalmazások további megvalósítás nélkül sikeresen le tudják játszani a Dolby Atmos-tartalmakat.

A Microsoft Térbeli Hang támogatja azokat a tévéket, házimozi rendszereket és hangprojektorokat, amelyek támogatják a Dolby Atmost. A térbeli hang bármilyen fejhallgatóval használható, amely a fogyasztó tulajdonában van, a hang pedig a platform által van megjelenítve a Windows Sonic for Headphones, a Dolby Atmos for Headphones, vagy a DTS Headphone:X segítségével.

Microsoft térbeli hang engedélyezése

Fejlesztőként vagy fogyasztóként a felhasználónak engedélyeznie kell a Microsoft térbeli hangot az eszközén a térhangzás élményéhez.

Windows

Windows számítógépeken ez egy adott hangkimeneti eszköz tulajdonságainak lapján történik. A Hang vezérlőpulton válasszon ki egy kimeneti eszközt, és kattintson Eszköztulajdonságokelemre. A Térbeli hang szakaszában, ha az eszköz támogatja a térbeli hangot, a Térbeli hangformátum legördülő listából választhatja ki az elérhető formátumok egyikét.

térbeli hang engedélyezése a hangvezérlő panelen

A Microsoft térbeli hang engedélyezéséhez kattintson a jobb gombbal a Volume ikonra a tálcán.

térbeli hang engedélyezése a tálcáról

Xbox

A Xbox Microsoft térbeli hangfunkciók mindig elérhetők a fogyasztó számára, és a General -> Hangerő és hangkimenet alatti Windows beállításokon keresztül engedélyezve vannak.

A HDMI hanggomb tele van a hangvideó-fogadó (AVR) vagy a hangsáv által támogatott összes formátummal, illetve a Xbox konzolhoz közvetlenül csatlakozó TV-vel. Az "Optikai hang" lehetőség csak a régebbi Xbox konzolokon érhető el, Xbox Series X|S és újabb konzolokon nem.

Képernyőkép az Általános hangerő és kimenet beállításai lapról, amelyen a HDMI hang legördülő listája látható.

Vegye figyelembe, hogy a "Dolby Atmos házimozihoz (csak HDMI)" vagy a "DTS:X házimozihoz (csak HDMI)" lehetőség kiválasztása a HDMI-hangban arra kéri a felhasználót, hogy töltse le és telepítse a Dolby Access vagy a DTS Sound Kötetlen alkalmazásokat, ha még nincs telepítve

Az Általános hangerő- és kimeneti beállítások oldal képernyőképe, amelyen a DTS Digital Surround kiválasztása látható.

Válassza ki a "Dolby Atmos for Headphones", "DTS Headphone:X" vagy "Windows Sonic for Headphones" lehetőséget a Fejhallgató formátum legördülő menüjéből a Fejhallgató hang alatt.

Képernyőkép az Általános hangerő & Kimenet beállításai lapról, amelyen a fejhallgató térbeli hangjának engedélyezése látható.

Ha Microsoft Térbeli hang nem érhető el (például beágyazott laptop sztereó hangszóróin való lejátszáskor, vagy ha a felhasználó nem engedélyezte explicit módon Microsoft Térbeli hang fentről), a ISpatialAudioClient:GetMaxDynamicObjectCount által egy alkalmazáshoz visszaadott elérhető dinamikus objektumok száma 0 lesz.

HoloLens 2

A HoloLens 2 Microsoft Térbeli Hang alapértelmezés szerint engedélyezve van, és kifejezetten a Windows Sonic for Headphones-hoz tervezett hardveres DSP-kiszervezést használja.

Microsoft térbeli hang- és hangközvetezési szoftver

Számos alkalmazás- és játékfejlesztő használ harmadik féltől származó hangmegjelenítő motormegoldásokat, amelyek gyakran kifinomult szerzői és meghallgatási eszközöket tartalmaznak. Microsoft több ilyen megoldásszolgáltatóval is együttműködve implementálta a Microsoft Spatial Soundot a meglévő szerzői környezetekben. Ez gyakran azt jelenti, hogy az itt tárgyalt API-k absztrakcióra kerülnek az alkalmazás nézetéből; ezek digitális jelfeldolgozó (DSP) beépülő modulokként vannak csomagolva, amelyeket az alkalmazás képes létrehozni, és amelyeket az alkalmazás hangmegvalósítója használhat egy Microsoft térbeli hangcsatorna ágyához, alkeverékéhez, vagy igény szerint egyéni hangokat küldhet dinamikus objektumpéldány beépülő modulokba. A Microsoft térbeli hang támogatásának szintjéről a hangköztes szoftver szolgáltatójánál érdeklődjön.

Microsoft Spatial Sound a hang renderelőkhöz

Számos hangleképező egy Windows Audio Session API-t (WASAPI) IAudioClient végpontot céloz meg, ahol az alkalmazás a vegyes és formátumnak megfelelő hangadatok puffereit egy WASAPI hangelosztóba irányítja át; a kézbesített puffereket ezután más ügyfelekkel való keveréshez, a végső rendszerszintű feldolgozáshoz és rendereléshez használja fel.

A Microsoft térbeli hang végpontjai ISpatialAudioClient néven vannak implementálva, amely számos hasonlóságot mutat az IAudioClient-tel. Támogatja a statikus hangobjektumokat, amelyek csatornaágyat alkotnak, és legfeljebb 8.1.4.4 csatornát támogat (8 csatorna a hallgató körül – Bal, Jobb, Közép, Oldalsó Bal, Oldalsó Jobb, Hátsó Bal, Hátsó Jobb, és Hátsó Közép; 1 alacsony frekvenciájú effektus csatorna; 4 csatorna a hallgató felett; 4 csatorna a hallgató alatt). Támogatja dinamikus hangobjektumokat, amelyek tetszőlegesen elhelyezhetők 3D térben.

Az ISpatialAudioClient általános implementációs kódolási mintája a következő:

  • Statikus és/vagy dinamikus hangobjektumok létrehozása.
  • Minden objektum hangpufferét töltsd be minden keretnél, hogy a rendszer renderelhesse azt.
  • Igény szerint frissítheti a dinamikus objektumok térhatású pozícióját – olyan gyakran (vagy ritkán), ahogy az alkalmazás szeretné.

Vegye figyelembe, hogy az aktuális kimeneti formátum (hangszórók vagy fejhallgatók; Windows Sonic for Headphones, Dolby Atmos vagy DTS Headphone:X) a fenti implementációból absztrakcióra kerül – az alkalmazás fejlesztője a térbeli hangzásra összpontosíthat anélkül, hogy a formátum alapján kellene pivotolnia. Azok az alkalmazások, amelyek azt szeretnék, hogy a viselkedésük a kimeneti formátum alapján eltérjen, lekérdezhetik a használt formátumot, de az absztrakció azt jelenti, hogy az alkalmazás nem szükséges ezeknek a formátumoknak a kezeléséhez.

Microsoft Térbeli hangintegráció hang renderelőkkel

Mivel ISpatialAudioClient egy olyan hangelosztó, amely adatokat használ fel, a hangmegjelenítő számos lehetőséget kínál a hangadatok kezeléséhez és továbbításához. Három gyakran használt integrációs technika létezik (és a hangközvetítést használó címek esetében az alábbi lehetőségek alapján elérhető egyenértékű beépülő modulok jelenhetnek meg):

  • 7.1.4-es pannerek és hang-elsajátítás: A 7.1 végpontokat már támogató renderelők egyszerűen támogathatnák a ISpatialAudioClient statikus csatornaágy által támogatott négy további magassági csatornát. Bármelyik korábban használt csatorna (amely valószínűleg már használta az x, y, z koordinátákat) most frissíthető, hogy magassági csatornákat is tartalmazzon. Ez gyakran a legkevésbé zavarja meg a renderelő és az alkalmazás hangmunkafolyamatait, a jel, a folyamat és a keverésvezérlés szempontjából. Fejhallgatón keresztül tudnia kell, hogy a teljes alkalmazásmix térbeli lesz – így még a sztereó zene is a hallgatótól "külsőként" lesz érzékelhető.
  • Meglévő végpont karbantartása, plusz adjunk hozzá egy 7.1.4-es buszt (és pannereket): Egyes címek dönthetnek úgy, hogy két végpontot tartanak fenn: a meglévő sztereó WASAPI-végpontjukat (a "közvetlen fülekhez" tartalmak esetében, amelyek nem térbelinek szántak) egy ISpatialAudioClient 7.1.4-es statikus csatornás ágy mellett (vagy akár 8.1.4.4-ig). A két mix közötti interakciók kezelése természetesen további kihívásokat jelent a tartalomkészítők számára, bár a szinkronizálás megmarad, mivel az adott időben aktív WASAPI- és ISAC-példányok is ugyanazt a pufferméretet és órát használják a feldolgozáshoz.
  • Dinamikus hangobjektumok használata bizonyos hangokhoz vagy alkeverékekhez: A legrészletesebb/legpontosabb helymeghatározást kínálja, de a mix átlátszatlanságát is létrehozhatja. Ez a technika magában foglalja ISpatialAudioClient dinamikus hangobjektumok használatát. Vegye figyelembe, hogy a metaadatok és a hangpuffer eljutnak a renderelőhöz, így ezek a hangok nem lesznek láthatók az alkalmazás többi részében. Emellett, mivel korlátozott számú dinamikus hangobjektum érhető el, a renderelőnek fontolóra kell vennie a rangsorolási technikák implementálását – selejtezést, hangtársítást, a statikus csatornaágyba való keverést stb. A játékok gyakran használják ezt a technikát az egyes "hős" hangokhoz, mint például a helikopterhang, amely a hallgató felett mozog.

A renderelők is keverhetik és kombinálhatják ezeket a megközelítéseket.

Microsoft Térbeli hang futtatókörnyezet erőforrás-következményei

Windows és Xbox a rendelkezésre álló hangok száma a használt formátumtól függően változik. A Dolby Atmos formátumok összesen 32 aktív objektumot támogatnak (így ha 7.1.4 csatornás ágy van használatban, 20 további dinamikus hangobjektum lehet aktív). Windows Sonic for Headphones összesen 128 aktív objektumot támogat, mivel az alacsony frekvenciájú effektusok (LFE) csatorna valójában nem számít objektumnak – így ha egy 8.1.4.4 csatornás ágy van használatban, 112 dinamikus hangobjektum lehet aktív.

A Xbox One játékkonzolokon futó Univerzális Windows-platform alkalmazások esetében a valós idejű kódolás (a Dolby Atmos for Home Theater, a Dolby Atmos for Headphones, a DTS:X for Home Theater, a DTS Headphone:X és a Windows Sonic for Headphones esetében) processzorköltség nélkül történik hardveren.

A 2303-Xbox operációsrendszer-frissítéstől és a játékfejlesztői készlettől (GDK) kezdve a Xbox erőforráskorlátjai a következő értékekre frissülnek:

Formátum Statikus objektumok maximális száma (csatorna ágy) Dinamikus objektumok maximális beállítása
Xbox Series X|S UWP-alkalmazások és >=2303 GDK
Dinamikus objektumok maximális beállítása
Xbox Series X|S, XDK és <2303 GDK
Dinamikus objektumok maximális beállítása
Xbox One
Dolby Atmos házimozihoz (HDMI) 12 (7.1.4) 20 20 20
DTS:X otthoni színházhoz (HDMI) 17 (8.1.4.4) 20 20 16
Dolby Atmos (fejhallgató) 17 (8.1.4.4) 128 20 16
DTS Headphone:X (Fejhallgatók) 17 (8.1.4.4) 200 20 16
Windows Sonic (Fejhallgatók) 17 (8.1.4.4) 220 20 15

A 22621-es build Windows májusi karbantartási kiadásától kezdve a Windows erőforráskorlátai a következő értékekre frissülnek:

Formátum Statikus objektumok maximális száma (csatorna ágy) Dinamikus objektumok maximális beállítása
Windows
Dinamikus objektumok maximális beállítása
HoloLens 2
Dolby Atmos házimozi (HDMI) 12 (7.1.4) 20 N/A
DTS:X házimozihoz (HDMI) 17 (8.1.4.4) 32 N/A
Dolby Atmos (fejhallgató) 17 (8.1.4.4) 128 N/A
Dolby Atmos (beépített hangszórók) 17 (8.1.4.4) 128 N/A
DTS Headphone:X (Fejhallgatók) 17 (8.1.4.4) 128 N/A
DTS:X Ultra (beépített hangszórók) 17 (8.1.4.4) 128 N/A
Windows Sonic (Fejhallgatók) 17 (8.1.4.4) 128 31

Az előző Windows, Xbox és HoloLens kiadásokra az alábbi erőforráskorlátok vonatkoznak.

Formátum Statikus objektumok maximális száma (csatorna ágy) Dinamikus objektumok maximális beállítása
Xbox One
Dinamikus objektumok maximális beállítása
Windows
Dinamikus objektumok maximális beállítása
HoloLens 2
Dolby Atmos házimozihoz (HDMI) 12 (7.1.4) 20 20 N/A
DTS:X házimozihoz (HDMI) 17 (8.1.4.4) 16 32 N/A
Dolby Atmos (fejhallgató) 17 (8.1.4.4) 16 16 N/A
Dolby Atmos (beépített hangszórók) 17 (8.1.4.4) N/A 16 N/A
DTS Headphone:X (Fejhallgatók) 17 (8.1.4.4) 16 32 N/A
DTS Ultra (beépített hangszórók) 17 (8.1.4.4) N/A 32 N/A
Windows Sonic fejhallgatókhoz 17 (8.1.4.4) 15 112 31

Az alkalmazásoknak az alábbi erőforrás-következményeket is figyelembe kell venniük:

  • Tárolási/lemez sávszélesség: A 7.1.4-re előre létrehozott lineáris tartalom általában nagyobb, mint a 7.1-es lineáris tartalom (bár a perceptuális kodekek már gyakran kihasználják a csatornakorreláció előnyeit, hogy ez lényegesen kisebb legyen, mint az 50%-kal több tényleges hangcsatorna).
  • Egyéb digitális jelfeldolgozási költségek: Egyes korábban globális hatások dinamikus hangobjektumonként példányossá válhatnak. Emellett előfordulhat, hogy egyes tartalomkészítők frissíteni szeretnének néhány DSP-effektust, hogy további csatornákat támogassanak, vagy egyedileg használják őket.

Microsoft Térbeli Hang és Hang Térbeli Megjelenítési Utasítások

Microsoft Térbeli hang a figyelő körül egy idealizált gömbön a hanghelyezési szimulációra összpontosít. Windows Sonic for Headphones, DTS Headphone:X és Dolby Atmos hangszóró-leképezést és virtualizálást valósít meg a fejhallgatón, de vegye figyelembe, hogy a hangtérszimuláció számos egyéb aspektusa, amelyek általában tartalomkészítő által engedélyezett módon lettek implementálva, a meglévő motorokra maradnak. A tartalomkészítők továbbra is a meglévő játékeszközöket és folyamatokat használják olyan térbeli jelekhez, mint a Doppler, a távolságalapú csillapítás és szűrés, az elzáródás és az akadálymentesítés, valamint a környezeti reverberáció.

További erőforrások

Térbeli hangfelületek

Interfész Leírás
ISpatialAudioClient Lehetővé teszi, hogy az ügyfél olyan hangstreameket hozzon létre, amelyek hangot bocsátanak ki egy 3D-s helyről.
ISpatialAudioObject Olyan objektumot jelöl, amely a felhasználóhoz képest 3D-s térbeli helyről renderelhető hangadatokat biztosít.
ISpatialAudioObjectRenderStream Módszereket biztosít a térbeli hangobjektum-renderelési stream vezérléséhez, beleértve a stream indítását, leállítását és alaphelyzetbe állítását.
ISpatialAudioObjectRenderStreamNotify Értesítéseket biztosít a térbeli hangügyfeleknek az ISpatialAudioObjectRenderStream állapotának változásaira való reagáláshoz.

 

Jegyzet

Ha az ISpatialAudioClient interfészeket használja egy Xbox One Fejlesztői Készlet (XDK) címén, először a EnableSpatialAudio függvényt kell hívnia, mielőtt a IMMDeviceEnumerator::EnumAudioEndpoints vagy a IMMDeviceEnumerator::GetDefaultAudioEndpoint függvényeket hívná meg. Ha ezt elmulasztják, az Activate függvény hívása E_NOINTERFACE hibát ad vissza. EnableSpatialAudio csak XDK-címekhez érhető el, és nem kell meghívni az Xbox One-on futó Univerzális Windows-platform alkalmazásokhoz, sem pedig nem-Xbox One eszközökhöz.

 

Térbeli hangstruktúrák

Szerkezet Leírás
SpatialAudioObjectRenderStreamActivationParams A térbeli hangmegjelenítési stream aktiválási paramétereit jelöli.
SpatialAudioClientActivationParams Térbeli hangmegjelenítési stream opcionális aktiválási paramétereit jelöli.

 

Térbeli hang számbavétele

Felsorolás Leírás
AudioObjectType Meghatározza az ISpatialAudioObject típusát.