Spatial Sound pro vývojáře aplikací pro Windows, Xbox a Hololens 2
Poznámka
Tato dokumentace je určená pro cílovou skupinu vývojářů. Informace o podpoře koncového uživatele pro povolení prostorového zvuku na vašem zařízení najdete v tématu Zapnutí prostorového zvuku ve Windows 10.
Microsoft Spatial Sound je řešení microsoftu na úrovni platformy pro podporu prostorového zvuku na Xboxu, Windows a HoloLensu 2, které umožňuje zvukovou pomůcku ohraničovat i zvýšit (nad nebo pod naslouchacím procesem). Prostorový zvuk můžou využívat desktopové aplikace Windows (Win32) i aplikace univerzální platformy Windows (UPW) na podporovaných platformách. Rozhraní API prostorového zvuku umožňují vývojářům vytvářet zvukové objekty, které generují zvuk z pozic ve 3D prostoru. Dynamické zvukové objekty umožňují generovat zvuk z libovolné pozice v prostoru, což se může v průběhu času měnit. Můžete také určit, že zvukové objekty generují zvuk z jednoho z 17 předdefinovaných statických kanálů (8.1.4.4), které mohou představovat skutečné nebo virtualizované reproduktory. Skutečný výstupní formát je vybrán uživatelem a může být abstrahován z implementací Microsoft Spatial Sound; Zvuk bude prezentován stávajícím reproduktorům, sluchátkům a přijímačům domácího kina bez nutnosti jakýchkoli změn kódu nebo obsahu. Platforma plně podporuje kódování Dolby Atmos v reálném čase pro výstup HDMI i stereofonní sluchátek, DTS:X pro sluchátka a Windows Sonic pro kódování headphones pro stereo sluchátka. Aplikace Microsoft Spatial Sound se nakonec řídí zásadami kombinování systému a jejich zvuk se také bude kombinovat s aplikacemi, které nejsou prostorové. Podpora microsoft Spatial Sound je také integrována do Media Foundation; aplikace, které používají základ médií, mohou úspěšně přehrávat obsah Dolby Atmos bez další implementace.
Prostorový zvuk s Microsoft Spatial Sound podporuje televizory, domácí kina a zvukové pruhy, které podporují Dolby Atmos. Prostorový zvuk lze použít také s libovolnou dvojicí sluchátek, které uživatel může vlastnit, se zvukem vykresleným platformou pomocí Windows Sonic for Headphones, Dolby Atmos pro sluchátka nebo DTS sluchátek:X.
Povolení funkce Microsoft Spatial Sound
Ať už jako vývojář nebo uživatel, musí uživatel na svém zařízení povolit Microsoft Spatial Sound, aby mohl slyšet prostorový zvuk.
Windows
Na počítačích s Windows se to provádí prostřednictvím stránky vlastností daného zvukového výstupního zařízení. V ovládacím panelu Zvuk vyberte výstupní zařízení a klikněte na Vlastnosti zařízení. Pokud zařízení podporuje prostorový zvuk, můžete v části prostorový zvuk stránce vybrat některý z dostupných formátů z rozevíracího seznamu Prostorový zvukový formát.
Aplikaci Microsoft Spatial Sound můžete povolit také tak, že kliknete pravým tlačítkem na ikonu Hlasitost na hlavním panelu.
Xbox
Na Xboxu jsou funkce Microsoft Spatial Sound vždy dostupné pro uživatele a jsou povolené prostřednictvím aplikace Nastavení v části Obecné –> Hlasitost & zvukový výstup.
Zvukové tlačítko HDMI je naplněno všemi formáty, které podporuje audio video receiver (AVR) nebo Soundbar nebo televizor, který je přímo připojený k konzole Xbox. Možnost Optického zvuku je dostupná jenom na starších konzolích Xbox, a ne na Xbox Series X|S a vyšších verzích.
Všimněte si, že při výběru možností "Dolby Atmos pro domácí kino (pouze HDMI)" nebo "DTS:X pro domácí kino (pouze HDMI)" se uživateli zobrazí výzva ke stažení a instalaci aplikací Dolby Access nebo DTS Sound Unbound, pokud ještě nejsou nainstalované.
Vyberte Dolby Atmos pro sluchátka, sluchátka DTS:X nebo Windows Sonic pro sluchátka z formátu náhlavní soupravy rozevíracím seznamu v části Zvuk náhlavní soupravy
Pokud microsoft Spatial Sound není k dispozici (například při přehrávání na vložené stereofonní reproduktory přenosného počítače nebo pokud uživatel výslovně nepovolil Microsoft Spatial Sound podle výše), počet dostupných dynamických objektů vrácených ISpatialAudioClient::GetMaxDynamicObjectCount do aplikace bude 0.
HoloLens 2
Na HoloLens 2, Microsoft Spatial Sound je ve výchozím nastavení povolen a používá hardwarové DSP snižování zátěže navržené speciálně pro Windows Sonic pro sluchátka.
Microsoft Spatial Sound and Audio Middleware
Mnoho vývojářů aplikací a her používá řešení pro vykreslování zvuku třetích stran, která často obsahují sofistikované nástroje pro vytváření a auditování. Společnost Microsoft spolupracuje s několika z těchto poskytovatelů řešení, aby implementovala Microsoft Spatial Sound ve svých stávajících prostředích pro vytváření obsahu. To často znamená, že zde probíraná rozhraní API jsou abstrakce ze zobrazení aplikace; jsou zabalené jako moduly plug-in DSP (Digital Signal Processing), které aplikace dokáže vytvořit instanci a pomocí které může implementátor zvuku aplikace podle potřeby kombinovat s kanálem Microsoft Spatial Sound, submixem nebo odesílat jednotlivé hlasy do modulů plug-in instance dynamického objektu. Obraťte se na svého poskytovatele zvukového middlewarového řešení a požádejte ho o podporu pro Microsoft Spatial Sound.
Microsoft Spatial Sound for Audio Renderers
Mnoho rendererů zvuku cílí na rozhraní WINDOWS Audio Session API (WASAPI) koncový bod IAudioClient, kde aplikace odesílá vyrovnávací paměti smíšených a formátovaných zvukových dat do zvukové jímky WASAPI; Doručené vyrovnávací paměti se pak spotřebují pro kombinování s jinými klienty, finálním zpracováním na úrovni systému a vykreslováním.
Prostorové koncové body Microsoft Spatial Sound jsou implementovány jako ISpatialAudioClient, který má mnoho podobností s IAudioClient. Podporuje statických zvukových objektů tvořících kanálovou postel s podporou až 8.1.4.4 kanálů (8 kanálů kolem naslouchacího procesu – vlevo, vpravo, na střed, na straně, vpravo na straně, vpravo na straně, zpět, vpravo zpět a vzadu; 1 kanál s nízkými frekvencemi; 4 kanály nad naslouchacím procesem; 4 kanály pod naslouchacím procesem). A podporuje dynamické zvukové objekty, které lze libovolně umístit do 3D prostoru.
Obecný vzor kódování implementace pro ISpatialAudioClient je:
- Vytváření statických a/nebo dynamických zvukových objektů
- Každou vyrovnávací paměť každého objektu získáte tak, aby ho systém mohl vykreslit.
- Aktualizujte 3D pozice dynamických objektů na vyžádání – často (nebo zřídka) tak často, jak si aplikace přeje.
Všimněte si, že aktuální výstupní formát (reproduktory nebo sluchátka; Windows Sonic for Headphones, Dolby Atmos nebo DTS Headphone:X) je abstrahován z výše uvedené implementace – vývojář aplikací se může soustředit na prostorový zvuk, aniž by se museli přecházet na základě formátu. Aplikace, které chtějí, aby se jejich chování rozbíhají podle výstupního formátu, se můžou dotazovat na formát, který se používá, ale abstrakce znamená, že aplikace není nutná ke zpracování těchto formátů.
Microsoft Spatial Sound Integration with Audio Renderers
Vzhledem k tomu, že ISpatialAudioClient je jímka zvuku, která spotřebovává data, nabízí renderer zvuku několik možností pro interakci a doručování zvukových dat. Existují tři běžně používané techniky integrace (a u názvů používajících zvukový middleware se můžou zobrazit ekvivalentní moduly plug-in, které jsou dostupné na základě těchto možností):
- panners 7.1.4 a mastering voice: Renderery, které již podporují koncové body 7.1, se můžou rozhodnout jednoduše přidat podporu pro čtyři další výškové kanály, které ISpatialAudioClient static channel bed podporuje. Jakékoli posouvání kanálů, které dříve provedly (pravděpodobně již využívají souřadnice x,y, z), lze nyní aktualizovat tak, aby zahrnovaly tyto kanály výšky. To často nabízí nejmenší přerušení pracovních postupů vykreslování a zvuku aplikací, signál, tok a mix řízení. U sluchátek si všimněte, že plná kombinace aplikací bude prostorová – takže i stereo hudba může být vnímána jako "externalizovaná" z naslouchacího procesu.
- Udržovat existující koncový bod a navíc přidat sběrnici 7.1.4 (a pannery): Některé názvy se můžou rozhodnout zachovat dva koncové body: jejich stávající stereo koncový bod WASAPI (pro "přímý na uši" obsah, který nemá být prostorový) společně s ISpatialAudioClient static channel bed podporující 7.1.4 (nebo dokonce až 8.1.4.4). Samozřejmě, správa interakcí mezi dvěma kombinacemi představuje pro tvůrce obsahu další výzvy, i když je synchronizace zachována, protože instance WASAPI a ISAC aktivní v daném okamžiku používají stejnou velikost vyrovnávací paměti a hodiny ke zpracování.
- Použít dynamické zvukové objekty pro určité hlasy nebo submixy: Nabízí možná nejpodrobnější/přesné umístění, ale potenciálně vytváří mix neprůhlednost, tato technika zahrnuje použití ISpatialAudioClient dynamických zvukových objektů. Všimněte si, že metadata a vyrovnávací paměť zvuku se do rendereru doručí, takže tyto zvuky budou neprůhlené pro zbytek mixu aplikací. Kromě toho vzhledem k tomu, že existuje omezený počet dostupných dynamických zvukových objektů, bude muset renderer zvážit implementaci technik stanovení priority – odpočítávání, společné umístění zvuku, prolínání se statickým kanálem a tak dále. Hry často používaly tuto techniku pro jednotlivé "hrdinové" zvuky, jako je vrtulník, který se bude pohybovat kolem nad posluchačem.
Renderery se také můžou kombinovat a shodovat mezi těmito přístupy.
Důsledky prostředků modulu runtime Microsoft Spatial Sound
Na Windows a Xboxu se počet dostupných hlasů liší v závislosti na používaném formátu. Formáty Dolby Atmos podporují celkem 32 aktivních objektů (takže pokud se používá 7.1.4 kanálová postel, může být aktivní 20 dalších dynamických zvukových objektů). Systém Windows Sonic pro sluchátka podporuje 128 celkového počtu aktivních objektů, přičemž kanál LFE (Low Frequency Effects) se ve skutečnosti nepočítá jako objekt – takže když se používá 8.1.4.4 kanálová postel, může být aktivní 112 dynamických zvukových objektů.
V případě aplikací pro univerzální platformu Windows běžících na herních konzolách Xbox One se kódování v reálném čase (pro Dolby Atmos for Home Theater, Dolby Atmos pro sluchátka, DTS:X pro domácí kino, sluchátka DTS:X a Windows Sonic pro sluchátka) provádí v hardwaru bez nákladů na procesor.
Od aktualizace 2303 Xbox OS a sady Game Development Kit (GDK) se limity prostředků na Xboxu aktualizují na následující hodnoty:
Formát | Maximální počet statických objektů (postel kanálu) | Maximální počet dynamických objektů Xbox Series X|S, aplikace pro UPW & >=2303 GDK |
Maximální počet dynamických objektů Xbox Series X|S, XDK & <2303 GDK |
Maximální počet dynamických objektů Xbox One |
---|---|---|---|---|
Dolby Atmos pro domácí divadlo (HDMI) | 12 (7.1.4) | 20 | 20 | 20 |
DTS:X pro domácí divadlo (HDMI) | 17 (8.1.4.4) | 20 | 20 | 16 |
Dolby Atmos (sluchátka) | 17 (8.1.4.4) | 128 | 20 | 16 |
Sluchátka DTS:X (sluchátka) | 17 (8.1.4.4) | 200 | 20 | 16 |
Windows Sonic (Sluchátka) | 17 (8.1.4.4) | 220 | 20 | 15 |
Počínaje květnovou servisní verzí buildu Windows 22621 se limity prostředků ve Windows aktualizují na následující hodnoty:
Formát | Maximální počet statických objektů (postel kanálu) | Maximální počet dynamických objektů Windows |
Maximální počet dynamických objektů HoloLens 2 |
---|---|---|---|
Domácí divadlo Dolby Atmos (HDMI) | 12 (7.1.4) | 20 | Není k dispozici |
DTS:X pro domácí divadlo (HDMI) | 17 (8.1.4.4) | 32 | Není k dispozici |
Dolby Atmos (sluchátka) | 17 (8.1.4.4) | 128 | Není k dispozici |
Dolby Atmos (předdefinované reproduktory) | 17 (8.1.4.4) | 128 | Není k dispozici |
Sluchátka DTS:X (sluchátka) | 17 (8.1.4.4) | 128 | Není k dispozici |
DTS:X Ultra (předdefinované reproduktory) | 17 (8.1.4.4) | 128 | Není k dispozici |
Windows Sonic (Sluchátka) | 17 (8.1.4.4) | 128 | 31 |
U předchozích verzí pro Windows, Xbox a HoloLens platí následující omezení prostředků.
Formát | Maximální počet statických objektů (postel kanálu) | Maximální počet dynamických objektů Xbox One |
Maximální počet dynamických objektů Windows |
Maximální počet dynamických objektů HoloLens 2 |
---|---|---|---|---|
Dolby Atmos pro domácí divadlo (HDMI) | 12 (7.1.4) | 20 | 20 | Není k dispozici |
DTS:X pro domácí divadlo (HDMI) | 17 (8.1.4.4) | 16 | 32 | Není k dispozici |
Dolby Atmos (sluchátka) | 17 (8.1.4.4) | 16 | 16 | Není k dispozici |
Dolby Atmos (předdefinované reproduktory) | 17 (8.1.4.4) | Není k dispozici | 16 | Není k dispozici |
Sluchátka DTS:X (sluchátka) | 17 (8.1.4.4) | 16 | 32 | Není k dispozici |
DTS Ultra (předdefinované reproduktory) | 17 (8.1.4.4) | Není k dispozici | 32 | Není k dispozici |
Windows Sonic for Headphones | 17 (8.1.4.4) | 15 | 112 | 31 |
Aplikace by také měly zvážit následující důsledky pro prostředky:
- šířka pásma úložiště a disku: Lineární obsah předem vytvořený na 7.1.4 bude obvykle větší než 7,1 lineárního obsahu (ačkoli perceptuální kodeky již často využívají korelaci kanálu, aby to bylo mnohem méně než 50% více skutečných kanálů zvukových dat).
- Jiné náklady na zpracování digitálních signálů: Některé dříve globální efekty se nyní mohou stát instancemi na dynamický zvukový objekt. Někteří tvůrci obsahu navíc můžou chtít některé efekty DSP aktualizovat tak, aby podporovaly další kanály nebo je používaly jedinečně.
Microsoft Spatial Sound and Sound Spatialization Cues
Microsoft Spatial Sound se zaměřuje na simulaci umístění zvuku na idealizované kouli kolem naslouchacího procesu. Windows Sonic for Headphones, DTS Headphone:X a Dolby Atmos implementují mapování a virtualizaci reproduktorů na sluchátka, ale všimněte si, že mnoho dalších aspektů zvukové prostorové simulace, které jsou již obvykle implementovány ve způsobech s podporou tvůrce obsahu, jsou ponechány stávajícím modulům. Tvůrci obsahu nadále používají stávající herní nástroje a procesy, které dříve měli pro takové prostorové pomůcky, jako je Doppler, ztlumení a filtrování na základě vzdálenosti, okluze a obstrukce a zpomalování prostředí.
Další zdroje informací
- úložiště GitHub s ukázkami Microsoft Spatial Sound
- Dolby nabízí řadu podpůrných zdrojů týkajících se Dolby Atmos a aplikace Dolby Access na https://developer.dolby.com.
Rozhraní prostorového zvuku
Rozhraní | Popis |
---|---|
ISpatialAudioClient | Umožňuje klientovi vytvářet zvukové streamy, které generují zvuk z pozice ve 3D prostoru. |
ISpatialAudioObject | Představuje objekt, který poskytuje zvuková data, která se mají vykreslit z pozice v prostorovém prostoru 3D vzhledem k uživateli. |
ISpatialAudioObjectRenderStream | Poskytuje metody pro řízení streamu vykreslování prostorového zvukového objektu, včetně spuštění, zastavení a resetování datového proudu. |
ISpatialAudioObjectRenderStreamNotify | Poskytuje oznámení prostorovým zvukovým klientům, kteří reagují na změny ve stavu ISpatialAudioObjectRenderStream. |
Poznámka
Při použití rozhraní ISpatialAudioClient v názvu XDK (Xbox One Development Kit), musíte nejprve volat EnableSpatialAudio před voláním IMMDeviceEnumerator::EnumAudioEndpoints nebo IMMDeviceEnumerator::GetDefaultAudioEndpoint. Pokud to neuděláte, výsledkem bude E_NOINTERFACE chyba vrácená z volání k aktivaci. EnableSpatialAudio je k dispozici pouze pro názvy XDK a není nutné volat pro aplikace univerzální platformy Windows běžící na Xboxu One ani pro žádná zařízení, která nejsou xboxem One.
Prostorové zvukové struktury
Struktura | Popis |
---|---|
SpatialAudioObjectRenderStreamActivationParams | Představuje aktivační parametry pro stream prostorového zvukového vykreslení. |
SpatialAudioClientActivationParams | Představuje volitelné aktivační parametry pro stream prostorového zvukového vykreslení. |
Výčty prostorového zvuku
Výčet | Popis |
---|---|
AudioObjectType | Určuje typ objektu ISpatialAudioObject. |