Windows, Xbox ve Hololens 2 için uygulama geliştiricileri için Spatial Sound
Not
Bu belgeler bir geliştirici hedef kitlesi için hedeflenmiştir. Cihazınızda uzamsal sesi etkinleştirmeye yönelik son kullanıcı desteği için bkz. Windows 10'da uzamsal sesi açma .
Microsoft Spatial Sound, Microsoft'un Xbox, Windows ve HoloLens 2'de uzamsal ses desteğine yönelik platform düzeyinde bir çözümdür ve hem çevreleme hem de yükseltme (dinleyicinin üstünde veya altında) sesli ipuçları sağlar. Uzamsal ses, Windows masaüstü (Win32) uygulamalarının yanı sıra desteklenen platformlardaki Evrensel Windows Platformu (UWP) uygulamaları tarafından kullanılabilir. Uzamsal ses API'leri, geliştiricilerin 3B alanda bulunan konumlardan ses yayan ses nesneleri oluşturmasına olanak sağlar. Dinamik ses nesneleri, zaman içinde değişebilen rastgele bir konumdan ses yaymanıza olanak sağlar. Ses nesnelerinin gerçek veya sanallaştırılmış hoparlörleri temsil eden önceden tanımlanmış 17 statik kanaldan (8.1.4.4) birinden ses yaydığını da belirtebilirsiniz. Gerçek çıkış biçimi kullanıcı tarafından seçilir ve Microsoft Spatial Sound uygulamalarından soyutlanabilir; ses, herhangi bir kod veya içerik değişikliğine gerek kalmadan mevcut hoparlörlere, kulaklıklara ve ev sineması alıcılarına sunulacaktır. Platform hem HDMI hem de stereo kulaklık çıkışı için gerçek zamanlı Dolby Atmos kodlamasını, Kulaklıklar için DTS:X'i ve stereo kulaklıklar için Windows Sonic for Headphones kodlamasını tam olarak destekler. Son olarak, Microsoft Spatial Sound uygulamaları sistem karıştırma ilkesine uyar ve sesleri uzamsal olarak farkında olmayan uygulamalarla da karıştırılır. Microsoft Spatial Sound desteği de Media Foundation ile tümleşiktir; media foundation kullanan uygulamalar, ek uygulama olmadan Dolby Atmos içeriğini başarıyla yürütebilir.
Microsoft Spatial Sound ile uzamsal ses, Dolby Atmos'u destekleyen televizyonları, ev sinemalarını ve ses çubuklarını destekler. Uzamsal ses, kulaklıklar için Windows Sonic, Kulaklıklar için Dolby Atmos veya DTS Headphone:X kullanılarak platform tarafından işlenen ses ile tüketicinin sahip olabileceği herhangi bir kulaklık çiftiyle de kullanılabilir.
Microsoft Spatial Sound'u etkinleştirme
İster geliştirici ister tüketici olarak kullanıcının uzamsal ses duyabilmesi için cihazında Microsoft Spatial Sound'u etkinleştirmesi gerekir.
Windows
Windows bilgisayarlarda, bu işlem belirli bir ses çıkış cihazının özellikler sayfası aracılığıyla yapılır. Ses denetim masasından bir çıkış cihazı seçin ve cihaz özellikleri tıklayın. Sayfanın Uzamsal ses bölümünde, cihaz uzamsal sesi destekliyorsa, Uzamsal ses biçimi açılan listesinden kullanılabilir biçimlerden birini seçebilirsiniz.
Görev çubuğundaki Ses düzeyi simgesine sağ tıklayarak da Microsoft Spatial Sound'u etkinleştirebilirsiniz.
Xbox
Xbox'ta Microsoft Spatial Sound özellikleri her zaman tüketici tarafından kullanılabilir ve Genel -> Ses & ses çıkışıaltındaki Ayarlar Uygulaması aracılığıyla etkinleştirilir.
HDMI ses düğmesi, Ses Video Alıcısı (AVR) veya Soundbar ya da Xbox konsolunuza doğrudan bağlı TV tarafından desteklenen tüm biçimlerle doldurulur. "Optik ses" seçeneği yalnızca eski Xbox konsollarında kullanılabilir, Xbox Series X|S ve üzerinde kullanılamaz.
HDMI seste "Ev sineması için Dolby Atmos (yalnızca HDMI)" veya "DTS:X ev sineması için (yalnızca HDMI)" seçeneklerinin seçilmesi, kullanıcıdan dolby Access veya DTS Ses Bağlantısız uygulamaları önceden yüklü değilse indirmesini ve yüklemesini isteyecektir
Mikrofonlu Kulaklık ses altındaki Mikrofonlu Kulaklık biçimindeki açılan listeden Kulaklıklar için Dolby Atmos, DTS Headphone:X veya Windows Sonic for Headphones'ı seçin
Microsoft Spatial Sound kullanılamadığında (örneğin, katıştırılmış dizüstü bilgisayar stereo hoparlörlerinde çalarken veya kullanıcı yukarıda microsoft Spatial Sound'u açıkça etkinleştirmediyse), ISpatialAudioClient::GetMaxDynamicObjectCount tarafından bir uygulamaya döndürülen kullanılabilir dinamik nesne sayısı 0 olur.
HoloLens 2
HoloLens 2'de Microsoft Spatial Sound varsayılan olarak etkindir ve Kulaklıklar için Windows Sonic için özel olarak tasarlanmış donanım DSP boşaltmayı kullanır.
Microsoft Spatial Ses ve Ses Ara Yazılımı
Birçok uygulama ve oyun geliştiricisi genellikle gelişmiş yazma ve seçme araçlarını içeren üçüncü taraf ses işleme altyapısı çözümlerini kullanır. Microsoft, Microsoft Spatial Sound'u mevcut yazma ortamlarında uygulamak için bu çözüm sağlayıcılarından birkaçıyla işbirliği yaptı. Bu genellikle burada açıklanan API'lerin uygulama görünümünden soyutlandığı anlamına gelir; bunlar, uygulamanın başlatabileceği ve uygulamanın ses uygulayıcısının bir Microsoft Spatial Sound kanal yatağına karışmak, alt karışımını yapmak veya dinamik nesne örneği eklentilerine tek tek sesler göndermek için kullanabildiği dijital sinyal işleme (DSP) eklentileri olarak sarmalanmıştır. Microsoft Spatial Sound için destek düzeyi için ses ara yazılımı çözüm sağlayıcınıza danışın.
Ses oluşturucular için Microsoft Spatial Sound
Birçok ses işleyicisi IAudioClientuç noktasıbir Windows Ses Oturumu API'sini (WASAPI) hedefler; burada uygulama karma ve biçime uygun ses verilerinin arabelleklerini bir WASAPI ses havuzuna aktarır; Teslim edilen arabellekler daha sonra diğer istemcilerle karıştırmak, son sistem düzeyinde işleme ve işleme için tüketilir.
Microsoft Spatial Sound uzamsal uç noktaları, IAudioClientile birçok benzerliği olan ISpatialAudioClientolarak uygulanır. Kanal yatağı oluşturan statik ses nesnelerini destekler ve 8.1.4.4 kanala kadar (dinleyicinin etrafındaki 8 kanal – Sol, Sağ, Orta, Yan Sol, Yan Sağ, Arka Sol, Sağ Arka ve Arka Merkez; 1 düşük frekanslı efekt kanalı; dinleyicinin üstünde 4 kanal; dinleyicinin altındaki 4 kanal). Ayrıca, rastgele olarak 3B alana yerleştirilebilen dinamik ses nesnelerini destekler.
ISpatialAudioClient için genel uygulama kodlama düzeni:
- Statik ve/veya dinamik ses nesneleri oluşturun.
- Sistemin işleyebilmesi için her bir nesnenin ses arabelleğine her çerçeveyi besleyin.
- Dinamik nesnelerin 3B konumlarını, uygulamanın istediği sıklıkta (veya seyrek olarak) isteğe bağlı olarak güncelleştirin.
Geçerli çıkış biçiminin (hoparlörler veya kulaklıklar; Kulaklıklar, Dolby Atmos veya DTS Headphone:X) için Windows Sonic yukarıdaki uygulamadan soyutlanır - uygulama geliştiricisi biçime göre özetleme yapmaya gerek kalmadan uzamsal sese odaklanabilir. Çıkış biçimine göre davranışlarının farklı olmasını isteyen uygulamalar kullanımdaki biçimi sorgulayabilir, ancak soyutlama, bir uygulamanın bu biçimleri işlemek için gerekli olmadığı anlamına gelir.
Ses oluşturucularla Microsoft Uzamsal Ses Tümleştirmesi
ISpatialAudioClient veri kullanan bir ses havuzu olduğundan, ses işleyicisi ile etkileşim kurma ve ses verilerini ona teslim etme için çeşitli seçeneklere sahiptir. Yaygın olarak kullanılan üç tümleştirme tekniği vardır (ve ses ara yazılımını kullanan başlıklar için, bu seçeneklere bağlı olarak kullanıma sunulan eşdeğer eklentiler görebilirsiniz):
- 7.1.4 kaydırıcılar ve ana ses: Zaten 7.1 uç noktalarını destekleyen işleyiciler, ISpatialAudioClient statik kanal yatağı tarafından desteklenen dört ek yükseklik kanalı için destek eklemeyi tercih edebilir. Daha önce yaptıkları (muhtemelen x,y, z koordinatlarından yararlanan) herhangi bir kanal artık bu yükseklik kanallarını içerecek şekilde güncelleştirilebilir. Bu genellikle işleyici ve uygulama ses iş akışları, sinyal, akış ve karma denetimi için en düşük kesintiyi sunar. Kulaklıklar üzerinden, tam uygulama karışımının uzamsallaştırılacağını unutmayın; bu nedenle stereo müzik bile dinleyiciden "dışlanmış" olarak algılanabilir.
- Mevcut uç noktayı koruyun ve bir 7.1.4 veri yolu (ve panner)ekleyin: Bazı başlıklar iki uç nokta korumayı seçebilir: mevcut stereo WASAPI uç noktası (uzamsallaştırılmaya gerekmeyen "kulaklara doğrudan" içerik için) ve 7.1.4'ü (veya 8.1.4.4'e kadar) destekleyen ISpatialAudioClient statik kanal yatağı. Tabii ki, iki karışım arasındaki etkileşimleri yönetmek içerik oluşturucular için ek zorluklar doğurur, ancak eşitleme korunur, ancak belirli bir zamanda etkin olan WASAPI ve ISAC örnekleri işleme için aynı arabellek boyutunu ve saatini kullanır.
- belirli sesler veya alt bileşenler için dinamik ses nesneleri kullanın: Belki de en ayrıntılı/doğru konumlandırmayı sunarak ancak karma opaklık oluşturma olasılığı olan bu teknik, ISpatialAudioClient dinamik ses nesnelerini kullanmayı içerir. Meta verilerin yanı sıra ses arabelleğinin işleyiciye teslim edilir, bu nedenle bu seslerin uygulama karışımının geri kalanına göre donuk olacağını unutmayın. Ayrıca, kullanılabilir dinamik ses nesnelerinin sayısı sınırlı olduğundan işleyicinin öncelik belirleme tekniklerini (etiketleme, ses birlikte konumu, statik kanal yatağına harmanlama vb.) uygulamayı göz önünde bulundurması gerekir. Oyunlar, dinleyicinin üzerinde hareket edecek bir helikopter gibi bireysel "hero" sesleri için bu tekniği sık sık kullandı.
İşleyiciler de bu yaklaşımları karıştırabilir ve eşleştirebilir.
Microsoft Spatial Sound Runtime Kaynağı Etkileri
Windows ve Xbox'ta kullanılabilir seslerin sayısı kullanımdaki biçime göre değişir. Dolby Atmos biçimleri toplam 32 aktif nesneyi destekler (bu nedenle 7.1.4 kanal yatak kullanılıyorsa, 20 ek dinamik ses nesnesi etkin olabilir). Kulaklıklar için Windows Sonic, Low Frequency Effects (LFE) kanalının aslında nesne olarak sayılmamasıyla birlikte toplam 128 etkin nesneyi destekler. Bu nedenle 8.1.4.4 kanal yatağı kullanımda olduğunda 112 dinamik ses nesnesi etkin olabilir.
Xbox One oyun konsollarında çalışan Evrensel Windows Platformu uygulamaları için gerçek zamanlı kodlama (Dolby Atmos for Home Theater, Dolby Atmos for Headphones, DTS:X for Home Theater, DTS Headphone:X ve Windows Sonic for Headphones için) donanımda cpu maliyeti olmadan gerçekleştirilir.
2303 Xbox işletim sistemi güncelleştirmesi ve Oyun Geliştirme Seti (GDK) ile başlayarak Xbox'taki kaynak sınırları aşağıdaki değerlere güncelleştirilir:
Biçim | Maksimum Statik Nesneler (Kanal Yatağı) | En Fazla Dinamik Nesne Xbox Series X|S, UWP uygulamaları & >=2303 GDK |
En Fazla Dinamik Nesne Xbox Series X|S, XDK & <2303 GDK |
En Fazla Dinamik Nesne Xbox One |
---|---|---|---|---|
Ev Sineması (HDMI) için Dolby Atmos | 12 (7.1.4) | 20 | 20 | 20 |
Ev Sineması (HDMI) için DTS:X | 17 (8.1.4.4) | 20 | 20 | 16 |
Dolby Atmos (Kulaklık) | 17 (8.1.4.4) | 128 | 20 | 16 |
DTS Headphone:X (Headphones) | 17 (8.1.4.4) | 200 | 20 | 16 |
Windows Sonic (Kulaklık) | 17 (8.1.4.4) | 220 | 20 | 15 |
Windows derlemesi 22621'e yönelik Mayıs hizmet sürümünden itibaren Windows'taki kaynak sınırları aşağıdaki değerlere güncelleştirilir:
Biçim | Maksimum Statik Nesneler (Kanal Yatağı) | En Fazla Dinamik Nesne Windows |
En Fazla Dinamik Nesne HoloLens 2 |
---|---|---|---|
Dolby Atmos ev sineması (HDMI) | 12 (7.1.4) | 20 | YOK |
Ev sineması için DTS:X (HDMI) | 17 (8.1.4.4) | 32 | YOK |
Dolby Atmos (Kulaklık) | 17 (8.1.4.4) | 128 | YOK |
Dolby Atmos (Yerleşik Hoparlörler) | 17 (8.1.4.4) | 128 | YOK |
DTS Headphone:X (Headphones) | 17 (8.1.4.4) | 128 | YOK |
DTS:X Ultra (Yerleşik Hoparlörler) | 17 (8.1.4.4) | 128 | YOK |
Windows Sonic (Kulaklık) | 17 (8.1.4.4) | 128 | 31 |
Önceki Windows, Xbox ve HoloLens sürümleri için aşağıdaki kaynak sınırları geçerlidir.
Biçim | Maksimum Statik Nesneler (Kanal Yatağı) | En Fazla Dinamik Nesne Xbox One |
En Fazla Dinamik Nesne Windows |
En Fazla Dinamik Nesne HoloLens 2 |
---|---|---|---|---|
Ev sineması için Dolby Atmos (HDMI) | 12 (7.1.4) | 20 | 20 | YOK |
Ev sineması için DTS:X (HDMI) | 17 (8.1.4.4) | 16 | 32 | YOK |
Dolby Atmos (Kulaklık) | 17 (8.1.4.4) | 16 | 16 | YOK |
Dolby Atmos (Yerleşik Hoparlörler) | 17 (8.1.4.4) | YOK | 16 | YOK |
DTS Headphone:X (Headphones) | 17 (8.1.4.4) | 16 | 32 | YOK |
DTS Ultra (Yerleşik Hoparlörler) | 17 (8.1.4.4) | YOK | 32 | YOK |
Kulaklıklar için Windows Sonic | 17 (8.1.4.4) | 15 | 112 | 31 |
Uygulamalar aşağıdaki kaynak etkilerini de dikkate almalıdır:
- Depolama/disk bant genişliği: 7.1.4'e önceden yazılmış doğrusal içerik genellikle 7.1'den büyük doğrusal içerik olacaktır (ancak algısal codec'ler bunu 50% gerçek ses verisi kanalından çok daha az yapmak için kanal bağıntısından yararlanır)
- Diğer dijital sinyal işleme maliyetleri: Daha önce bazı genel efektler artık dinamik ses nesnesi başına örneklenebilir. Ayrıca, bazı içerik oluşturucular bazı DSP efektlerini ek kanalları destekleyecek şekilde güncelleştirmek veya bunları benzersiz olarak kullanmak isteyebilir.
Microsoft Spatial Sound and Sound Spatialization Cues
Microsoft Spatial Sound, dinleyici etrafında idealleştirilmiş bir küre üzerinde ses konumlandırma benzetimine odaklanmıştır. Kulaklıklar için Windows Sonic, DTS Headphone:X ve Dolby Atmos kulaklıklara konuşmacı eşleme ve sanallaştırma uygular, ancak genellikle içerik oluşturucu özellikli yollarla uygulanan ses uzamsal benzetiminin diğer birçok yönünün mevcut motorlara bırakıldığını unutmayın. İçerik oluşturucular Doppler, mesafe tabanlı azaltma ve filtreleme, tıkanıklık ve çevresel yankı gibi uzamsal ipuçları için daha önce sahip oldukları mevcut oyun araçlarını ve süreçlerini kullanmaya devam ediyor.
Ek Kaynaklar
- Microsoft Spatial Sound örnekleri github deposu
- Dolby, https://developer.dolby.comadresinde Dolby Atmos ve Dolby Access uygulamasıyla ilgili bir dizi destek kaynağı sunar.
Uzamsal Ses Arabirimleri
Arayüz | Açıklama |
---|---|
ISpatialAudioClient | İstemcinin 3B alanda bir konumdan ses yayan ses akışları oluşturmasını sağlar. |
ISpatialAudioObject | Kullanıcıya göre 3B alandan işlenecek ses verileri sağlayan bir nesneyi temsil eder. |
ISpatialAudioObjectRenderStream | Bir uzamsal ses nesnesi işleme akışını denetlemek için akışı başlatma, durdurma ve sıfırlama gibi yöntemler sağlar. |
ISpatialAudioObjectRenderStreamNotify | Uzamsal ses istemcilerinin ISpatialAudioObjectRenderStream durumundaki değişikliklere yanıt vermesi için bildirimler sağlar. |
Not
Xbox One Geliştirme Seti (XDK) başlığında ISpatialAudioClient arabirimlerini kullanırken, IMMDeviceEnumerator::EnumAudioEndpoints veya IMMDeviceEnumerator::GetDefaultAudioEndpointçağırmadan önce EnableSpatialAudio çağırmalısınız. Bunun yapılmaması, Etkinleştirme çağrısından bir E_NOINTERFACE hatası döndürülmesine neden olur. EnableSpatialAudio yalnızca XDK başlıkları için kullanılabilir ve Xbox One üzerinde çalışan Evrensel Windows Platformu uygulamaları veya Xbox One olmayan cihazlar için çağrılmaları gerekmez.
Uzamsal Ses Yapıları
Yapı | Açıklama |
---|---|
SpatialAudioObjectRenderStreamActivationParams | Uzamsal ses işleme akışı için etkinleştirme parametrelerini temsil eder. |
SpatialAudioClientActivationParams | Uzamsal ses işleme akışı için isteğe bağlı etkinleştirme parametrelerini temsil eder. |
Uzamsal Ses Sabit Listeleri
Sayım | Açıklama |
---|---|
AudioObjectType | ISpatialAudioObject türünü belirtir. |