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, Xbox, Windows ve HoloLens 2'de uzamsal ses desteği için Microsoft 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 Uzamsal Ses uygulamalarından soyutlanabilir; ses, kod veya içerik değişikliğine gerek kalmadan mevcut hoparlörlere, kulaklıklara ve ev sineması alıcılarına sunulur. 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 kulaklık kodlaması için Windows Sonic'i tam olarak destekler. Son olarak, Microsoft Uzamsal Ses uygulamaları sistem karışım politikasına uyar ve sesleri, uzamsal ses farkındalığı 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 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 Uzamsal Sesi Etkinleştirme

Geliştirici veya tüketici olarak kullanıcının uzamsallaştırılmış sesi duyabilmesi için cihazında uzamsal ses Microsoft etkinleştirmesi gerekir.

Windows

Windows bilgisayarlarda bu, 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.

ses kontrol panelinde uzamsal sesi etkinleştirme

Ayrıca görev çubuğundaki Volume simgesine sağ tıklayarak uzamsal ses Microsoft etkinleştirebilirsiniz.

görev çubuğundan uzamsal sesi etkinleştirme

Xbox

Xbox Microsoft Uzamsal Ses özellikleri her zaman tüketici tarafından kullanılabilir ve General -> Ses ve ses çıkışı altındaki Windows Ayarları aracılığıyla etkinleştirilir.

HDMI ses düğmesi, Ses Video Alıcısı (AVR) veya Soundbar veya doğrudan Xbox konsolunuza bağlı TV tarafından desteklenen tüm biçimlerle doldurulur. "Optik ses" seçeneği yalnızca eski Xbox konsollarda kullanılabilir, Xbox Series X|S ve üzeri konsollarda kullanılamaz.

HDMI ses açılan listesini gösteren Genel Birim & Çıkış ayarları sayfasının ekran görüntüsü.

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

DTS Digital Surround seçimini gösteren Genel Birim & Çıkış ayarları sayfasının ekran görüntüsü.

Kulaklık biçimi altında, Kulaklık sesi açılır listesinden Kulaklıklar için Dolby Atmos, DTS Headphone:X veya Windows Sonic'i seçin.

Kulaklıklar için uzamsal sesi etkinleştirmeyi gösteren Genel Ses Düzeyi & Çıkış ayarları sayfasının ekran görüntüsü.

Microsoft Uzamsal Ses mevcut olmadığında (örneğin, dizüstü bilgisayara gömülü stereo hoparlörlerde çalarken veya kullanıcı yukarıda belirtildiği gibi Microsoft Uzamsal Ses'i açıkça etkinleştirmediyse), bir uygulama için ISpatialAudioClient::GetMaxDynamicObjectCount tarafından 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 Windows Sonic for Headphones için özel olarak tasarlanmış donanım DSP deşarjı kullanır.

Microsoft Uzamsal 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, mevcut yazma ortamlarında Microsoft Spatial Sound 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 örnekleyebileceği ve uygulamanın ses uygulayıcısının Microsoft Uzamsal Ses kanalı yatağına ses karıştırmak, alt karışım oluşturmak veya tekil sesleri dinamik nesne örneği eklentilerine göndermek için kullanabileceğ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.

Microsoft Ses İşleyiciler için Uzamsal Ses

Birçok ses işleyicisi Windows Ses Oturumu API'si (WASAPI) IAudioClient uç noktasını 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 kullanılır.

Microsoft Spatial Sound uzamsal uç noktaları, ISpatialAudioClient olarak uygulanır ve IAudioClient ile birçok benzerliği vardır. Kanal yatağı oluşturan statik ses nesnelerini destekler ve 8.1.4.4 kanalına kadar destek verir (dinleyicinin etrafında 8 kanal – Sol, Sağ, Merkez, Yan Sol, Yan Sağ, Arka Sol, Arka Sağ ve Arka Merkez; 1 düşük frekanslı efekt kanalı; dinleyicinin üstünde 4 kanal; dinleyicinin altında 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.
  • Sistem tarafından işlenebilmesi için her bir nesnenin ses arabelleğine her çerçevede veri aktarın.
  • 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ış formatı (hoparlörler veya kulaklıklar; Windows Sonic for Headphones, Dolby Atmos veya DTS Headphone:X) yukarıdaki uygulamadan bağımsızdır - uygulama geliştiricisi, formatta değişiklik 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.

Microsoft Ses İşleyicileriyle Uzamsal Ses Entegrasyonu

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 konumlandırması, artık bu yükseklik kanallarını da içerecek şekilde güncellenebilir. Bu genellikle işleyici ve uygulama ses akışları, sinyal, akış ve karışım kontrolü için en az kesintiyi sağlar. 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; olmasına rağmen eşitleme korunur çünkü belli bir anda aktif olan hem WASAPI hem de ISAC örnekleri işleme için aynı arabellek boyutunu ve saati 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 renderlayıcıya teslim edildiğini, bu nedenle bu seslerin uygulama karışımındaki diğer seslere karşı şeffaf olmayacağını unutmayın. Ayrıca, kullanılabilir dinamik ses nesnelerinin sayısı sınırlı olduğundan işleyicinin öncelik belirleme tekniklerini (elemine etme, ses birlikte yerleştirme, statik kanal tabanı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 Uzamsal Ses Çalışma Zamanı Kaynağı Etkileri

Windows ve Xbox 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). Windows Sonic for Headphones, Low Frequency Effects (LFE) kanalının aslında nesne olarak sayılmamasıyla 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 için, 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 kaynak sınırları aşağıdaki değerlere güncelleştirilir:

Biçim Kanal Yatağındaki Maksimum Statik Nesneler Maksimum Dinamik Nesne
Xbox Series X|S, UWP uygulamaları & =2303 GDK
Maksimum 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 (Kulaklıklar) 17 (8.1.4.4) 200 20 16
Windows Sonic (Kulaklık) 17 (8.1.4.4) 220 20 15

Windows derleme 22621'e yönelik Mayıs hizmet sürümünden itibaren Windows kaynak sınırları aşağıdaki değerlere güncelleştirilir:

Biçim Maksimum Statik Nesneler (Kanal Yatağı) Maksimum Dinamik Nesneler
Windows
Maksimum Dinamik Nesne
HoloLens 2
Dolby Atmos ev sineması (HDMI) 12 (7.1.4) 20 Uygulanamaz
Ev sineması için DTS:X (HDMI) 17 (8.1.4.4) 32 YOK
Dolby Atmos (Kulaklık) 17 (8.1.4.4) 128 Mevcut Değil
Dolby Atmos (Yerleşik Hoparlörler) 17 (8.1.4.4) 128 Uygulanamaz
DTS Headphone:X (Kulaklıklar) 17 (8.1.4.4) 128 YOK
DTS:X Ultra (Yerleşik Hoparlörler) 17 (8.1.4.4) 128 Uygulanamaz
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 Tabanı) Maksimum Dinamik Nesne
Xbox One
Maksimum Dinamik Nesneler
Windows
Maksimum Dinamik Nesne
HoloLens 2
Ev sineması için Dolby Atmos (HDMI) 12 (7.1.4) 20 20 Uygulanamaz
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 Uygulanamaz
Dolby Atmos (Yerleşik Hoparlörler) 17 (8.1.4.4) YOK 16 YOK
DTS Headphone:X (Kulaklıklar) 17 (8.1.4.4) 16 32 Mevcut Değil / Uygulanamaz
DTS Ultra (Yerleşik Hoparlörler) 17 (8.1.4.4) Geçerli Değil 32 Uygulanamaz
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 doğrusal içerikten daha büyük olacaktır (ancak algısal codec'ler, kanal korelasyonunu kullanarak gerçek ses veri kanallarının %50 daha fazlası yerine çok daha az veri kullanı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 Uzamsal Ses ve Ses Uzamsallaştırma İpuçları

Microsoft Spatial Sound, dinleyici etrafında idealleştirilmiş bir küre üzerinde ses konumlandırma benzetimine odaklanır. Windows Sonic for Headphones, 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

Uzamsal Ses Arabirimleri

Arayüz Açıklama
ISpatialAudioClient İstemcinin 3B alanda bir konumdan ses yayan ses akışları oluşturmasını sağlar.
ISpatialAudioObject 3B uzayda kullanıcıya göre bir konumdan işlenecek ses verisi 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'ı çağırmadan önce EnableSpatialAudio çağırmalısınız::EnumAudioEndpoints veya IMMDeviceEnumerator:: GetDefaultAudioEndpoint. 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 Numaralandırmaları

Numaralandırma Açıklama
AudioObjectType ISpatialAudioObject türünü belirtir.