Bagikan melalui


Suara Spasial untuk pengembang aplikasi untuk Windows, Xbox, dan Hololens 2

Nota

Dokumentasi ini ditargetkan untuk audiens pengembang. Untuk dukungan pengguna akhir untuk mengaktifkan suara spasial di perangkat Anda, lihat Cara mengaktifkan suara spasial di Windows 10.

Microsoft Spatial Sound adalah solusi tingkat platform Microsoft untuk dukungan suara spasial pada Xbox, Windows, dan HoloLens 2, memungkinkan petunjuk audio surround dan elevasi (di atas atau di bawah pendengar). Suara spasial dapat dimanfaatkan oleh baik aplikasi desktop Windows (Win32) maupun aplikasi Universal Windows Platform (UWP) pada platform yang mendukung. API suara spasial memungkinkan pengembang membuat objek audio yang memancarkan audio dari posisi dalam ruang 3D. Objek audio dinamis memungkinkan Anda memancarkan audio dari posisi arbitrer di ruang, yang dapat berubah dari waktu ke waktu. Anda juga dapat menentukan bahwa objek audio mengeluarkan suara dari salah satu dari 17 saluran statis yang telah ditentukan sebelumnya (8.1.4.4) yang dapat mewakili speaker nyata atau virtual. Format output aktual dipilih oleh pengguna, dan dapat diabstraksi dari implementasi Suara Spasial Microsoft; audio akan disajikan ke speaker, headphone, dan penerima home theater yang ada tanpa memerlukan perubahan kode atau konten apa pun. Platform ini sepenuhnya mendukung pengodean Dolby Atmos real-time untuk output HDMI dan headphone stereo, DTS:X untuk headphone, dan Windows Sonic untuk headphone stereo. Terakhir, aplikasi Microsoft Suara Spasial mematuhi kebijakan pencampuran sistem, dan audionya juga akan dicampur dengan aplikasi yang tidak mendukung suara spasial. dukungan Microsoft Spatial Sound juga diintegrasikan ke dalam Media Foundation; aplikasi yang menggunakan media foundation dapat berhasil memutar konten Dolby Atmos tanpa implementasi tambahan.

Suara spasial dengan Microsoft Spatial Sound mendukung TV, teater rumahan, dan sound bar yang mendukung Dolby Atmos. Suara spasial juga dapat digunakan dengan headphone apapun yang dimiliki konsumen, dengan audio yang dirender oleh platform menggunakan Windows Sonic untuk Headphones, Dolby Atmos untuk Headphones, atau DTS Headphone:X.

Mengaktifkan Suara Spasial Microsoft

Baik sebagai pengembang atau konsumen, pengguna harus mengaktifkan Microsoft Suara Spasial di perangkat mereka untuk mendengar suara spasial.

Windows

Pada PC Windows, ini dilakukan melalui halaman properti untuk perangkat output suara tertentu. Dari panel kontrol Suara, pilih perangkat output dan klik properti Perangkat . Di bagian suara spasial pada halaman, jika perangkat mendukung suara spasial, Anda dapat memilih salah satu format yang tersedia dari menu dropdown format suara spasial.

mengaktifkan suara spasial di panel kontrol suara

Anda juga dapat mengaktifkan Microsoft Suara Spasial dengan mengklik kanan ikon Volume di taskbar.

mengaktifkan suara spasial dari bilah tugas

Xbox

Pada Xbox, kemampuan Suara Spasial Microsoft selalu tersedia untuk konsumen, dan diaktifkan melalui Setelan Windows di bawah General - Volume & keluaran audio.

Tombol audio HDMI diisi dengan semua format yang didukung oleh Audio Video Receiver (AVR) atau Soundbar atau TV yang terhubung langsung ke konsol Xbox Anda. Opsi "Audio optik" hanya tersedia di konsol Xbox yang lebih lama dan bukan di Xbox Series X|S ke atas.

Cuplikan layar halaman Pengaturan Umum Volume & Output memperlihatkan menu dropdown audio HDMI.

Perhatikan bahwa memilih opsi "Dolby Atmos untuk home theater (khusus HDMI)" atau "DTS:X untuk home theater (hanya HDMI)" dalam audio HDMI akan meminta pengguna untuk mengunduh dan menginstal aplikasi Dolby Access atau DTS Sound Unbound jika belum diinstal

Cuplikan layar halaman pengaturan Output & Volume Umum yang menunjukkan pilihan DTS Digital Surround.

Pilih Dolby Atmos untuk Headphone, DTS Headphone:X, atau Windows Sonic untuk Headphone dari menu dropdown format Headset di bawah Headset audio

Tangkapan layar halaman pengaturan Volume Umum & Output yang menunjukkan pengaktifan suara spasial untuk headphone.

Ketika Microsoft Spatial Sound tidak tersedia (misalnya, saat memutar ke speaker stereo laptop yang tertanam, atau jika pengguna belum mengaktifkan Microsoft Spatial Sound secara eksplisit seperti yang dijelaskan di atas), jumlah objek dinamis yang tersedia yang dikembalikan oleh ISpatialAudioClient::GetMaxDynamicObjectCount ke aplikasi adalah 0.

HoloLens 2

Pada HoloLens 2, Microsoft Spatial Sound diaktifkan secara default dan menggunakan pemrosesan DSP perangkat keras yang dirancang khusus untuk Windows Sonic for Headphones.

Microsoft Suara Spasial dan Middleware Audio

Banyak pengembang aplikasi dan game menggunakan solusi mesin penyajian audio pihak ketiga, yang sering mencakup alat penulisan dan audisi canggih. Microsoft telah bermitra dengan beberapa penyedia solusi ini untuk mengimplementasikan Microsoft Suara Spasial di lingkungan penulisan yang ada. Ini akan sering berarti API yang dibahas di sini dikeluarkan dari pandangan aplikasi; API ini dibungkus sebagai plug-in pemrosesan sinyal digital (DSP) yang dapat diinstansiasi oleh aplikasi, dan yang dapat digunakan oleh pelaksana audio aplikasi untuk mencampur ke dasar saluran Suara Spasial Microsoft, submiks, atau mengirim suara individual ke plug-in instans objek dinamis sesuai keinginan. Konsultasikan dengan penyedia solusi middleware audio Anda untuk tingkat dukungan mereka untuk suara spasial Microsoft.

Microsoft Spatial Sound untuk Perender Audio

Banyak perender audio menargetkan Windows Audio Session API (WASAPI) IAudioClient sebagai titik akhir, di mana aplikasi memberi umpan buffer data audio yang telah dicampur dan disesuaikan formatnya ke sebuah sink audio WASAPI; buffer yang dikirimkan kemudian digunakan untuk dicampur dengan klien lain, untuk pemrosesan tingkat sistem akhir, dan penyajian.

Titik akhir spasial Microsoft Spatial Sound diimplementasikan sebagai ISpatialAudioClient, yang memiliki banyak kesamaan dengan IAudioClient. Ini mendukung statis objek suara membentuk susunan saluran, dengan dukungan untuk hingga 8.1.4.4 saluran (8 saluran di sekitar pendengar - Kiri, Kanan, Tengah, Sisi Kiri, Sisi Kanan, Belakang Kiri, Belakang Kanan, dan Belakang Tengah; 1 saluran efek frekuensi rendah; 4 saluran di atas pendengar; 4 saluran di bawah pendengar). Dan mendukung objek suara dinamis, yang dapat diposisikan secara segan-segan dalam ruang 3D.

Pola pengkodatan implementasi umum untuk ISpatialAudioClient adalah:

  • Buat objek audio statis dan/atau dinamis.
  • Masukkan buffer audio setiap objek ke setiap frame agar sistem dapat merendernya.
  • Perbarui posisi 3D objek dinamis sesuai permintaan – sesering (atau jarang) sesuai keinginan aplikasi.

Perhatikan bahwa format output saat ini (speaker atau headphone; Windows Sonic untuk Headphone, Dolby Atmos, atau DTS Headphone:X) diabstraksi dari implementasi di atas - pengembang aplikasi dapat fokus pada suara spasial tanpa perlu melakukan pivot berdasarkan format. Aplikasi yang menginginkan perilakunya berbeda berdasarkan format output dapat mengkueri format yang digunakan, tetapi abstraksi berarti aplikasi tidak diperlukan untuk menangani format ini.

Integrasi Suara Spasial Microsoft dengan Perender Audio

Karena ISpatialAudioClient adalah sink audio yang menggunakan data, perender audio memiliki beberapa opsi cara berinteraksi dan mengirimkan data audio ke dalamnya. Ada tiga teknik integrasi yang umum digunakan (dan untuk judul yang menggunakan middleware audio, Anda mungkin melihat plug-in yang setara tersedia berdasarkan opsi ini):

  • Panner 7.1.4 dan pemrosesan akhir suara: Perender yang sudah mendukung saluran keluaran 7.1 dapat memilih untuk hanya menambahkan dukungan untuk empat saluran tinggi tambahan yang didukung tata letak saluran statis ISpatialAudioClient. Setiap panning saluran yang sebelumnya mereka lakukan (kemungkinan sudah memanfaatkan koordinat x, y, z) dapat diperbarui untuk sekarang menyertakan saluran ketinggian ini. Ini sering menawarkan gangguan paling sedikit untuk perender dan alur kerja audio aplikasi, sinyal, aliran, dan pengendalian pencampuran. Melalui headphone, perhatikan bahwa campuran aplikasi lengkap akan dibuat berkesan ruang, sehingga bahkan musik stereo dapat dirasakan berasal dari luar pendengar.
  • Mempertahankan titik akhir yang ada, dan menambahkan bus 7.1.4 (dan panner): Beberapa judul dapat memilih untuk mempertahankan dua titik akhir: titik akhir WASAPI stereo yang ada (untuk konten 'langsung ke telinga' yang tidak ditujukan untuk dispasialisasi) bersama channel static ISpatialAudioClient yang mendukung 7.1.4 (atau bahkan hingga 8.1.4.4). Tentu saja, mengelola interaksi antara dua campuran memberikan tantangan tambahan kepada pembuat konten, meskipun sinkronisasi dipertahankan, karena instans WASAPI dan ISAC aktif pada waktu tertentu memang menggunakan ukuran dan jam buffer yang sama untuk pemrosesan.
  • Gunakan objek suara dinamis untuk suara atau submix tertentu: Menawarkan mungkin posisi yang paling rinci/akurat, tetapi berpotensi menciptakan keburaman campuran, teknik ini melibatkan penggunaan objek suara dinamis ISpatialAudioClient. Perhatikan bahwa metadata ditambah buffer audio dikirimkan ke perender, sehingga suara ini akan buram ke campuran aplikasi lainnya. Selain itu, karena ada sejumlah terbatas objek suara dinamis yang tersedia, perender perlu mempertimbangkan untuk menerapkan teknik prioritas - penyortiran, pengelompokan suara, menggabungkan dengan saluran statis, dan sebagainya. Game sering menggunakan teknik ini untuk suara "hero" individu, seperti helikopter yang akan bergerak di atas listener.

Penerjemah juga dapat mengombinasikan pendekatan-pendekatan ini.

Implikasi Sumber Daya Runtime Suara Spasial Microsoft

Pada Windows dan Xbox, jumlah suara yang tersedia bervariasi berdasarkan format yang digunakan. Format Dolby Atmos mendukung total objek aktif 32 (jadi jika tempat tidur saluran 7.1.4 sedang digunakan, 20 objek suara dinamis tambahan dapat aktif). Windows Sonic untuk Headphones mendukung total 128 objek aktif, dengan saluran Efek Frekuensi Rendah (LFE) tidak benar-benar dihitung sebagai objek -- jadi ketika lapisan saluran 8.1.4.4 digunakan, 112 objek suara yang dinamis dapat aktif.

Untuk aplikasi Platform Windows Universal yang berjalan di konsol game Xbox One, pengodean realtime (untuk Dolby Atmos untuk Home Theater, Dolby Atmos untuk Headphone, DTS:X untuk Home Theater, DTS Headphone:X, dan Windows Sonic for Headphones) dilakukan dalam perangkat keras tanpa biaya CPU.

Dimulai dengan pembaruan OS Xbox 2303 dan Game Development Kit (GDK), batas sumber daya pada Xbox diperbarui ke nilai berikut:

Format Maksimum Objek Statis (Channel Bed) Objek Dinamis Maksimum
Xbox Series X|S, aplikasi UWP & =2303 GDK
Objek Dinamis Maksimum
Xbox Series X|S, XDK & 2303 GDK
Objek Dinamis Maksimum
Xbox One
Dolby Atmos untuk Home Theater (HDMI) 12 (7.1.4) 20 20 20
DTS:X untuk Home Theater (HDMI) 17 (8.1.4.4) 20 20 16
Dolby Atmos (Headphones) 17 (8.1.4.4) 128 20 16
DTS Headphone:X (Headphone) 17 (8.1.4.4) 200 20 16
Windows Sonic (Headphones) 17 (8.1.4.4) 220 20 15

Dimulai dengan rilis layanan Mei untuk Windows build 22621, batas sumber daya pada Windows diperbarui ke nilai berikut:

Format Objek Statis Maks (Tempat Tidur Saluran) Objek Dinamis Maksimum
Windows
Objek Dinamis Maksimum
HoloLens 2
Home Theater Dolby Atmos (HDMI) 12 (7.1.4) 20 N/A
DTS:X untuk home theater (HDMI) 17 (8.1.4.4) 32 N/A
Dolby Atmos (Headphones) 17 (8.1.4.4) 128 N/A
Dolby Atmos (Dengan Speaker Bawaan) 17 (8.1.4.4) 128 N/A
DTS Headphone:X (Headphone) 17 (8.1.4.4) 128 N/A
DTS:X Ultra (Speaker Terintegrasi) 17 (8.1.4.4) 128 N/A
Windows Sonic (Headphone) 17 (8.1.4.4) 128 31

Untuk rilis Windows, Xbox, dan HoloLens sebelumnya, batas sumber daya berikut berlaku.

Format Maksimum Objek Statis (Channel Bed) Objek Dinamis Maksimum
Xbox One
Maks Objek Dinamis
Windows
Objek Dinamis Maksimum
HoloLens 2
Dolby Atmos untuk teater rumah (HDMI) 12 (7.1.4) 20 20 N/A
DTS:X untuk home theater (HDMI) 17 (8.1.4.4) 16 32 N/A
Dolby Atmos (Headphones) 17 (8.1.4.4) 16 16 N/A
Dolby Atmos (Built-in Speaker) 17 (8.1.4.4) N/A 16 N/A
DTS Headphone:X (Headphone) 17 (8.1.4.4) 16 32 N/A
DTS Ultra (Speaker Terintegrasi) 17 (8.1.4.4) N/A 32 N/A
Windows Sonic untuk Headphone 17 (8.1.4.4) 15 112 31

Aplikasi juga harus mempertimbangkan implikasi sumber daya berikut:

  • Bandwidth penyimpanan/disk: Konten linier yang telah ditulis sebelumnya ke 7.1.4 biasanya akan lebih besar dari 7,1 konten linier (meskipun codec persepsi sudah sering memanfaatkan korelasi saluran untuk membuat ini jauh lebih kecil dari 50% saluran data audio yang lebih aktual)
  • Biaya pemrosesan sinyal digital lainnya: Beberapa efek global sebelumnya sekarang dapat dibuat per objek suara dinamis. Selain itu, beberapa pembuat konten mungkin ingin memperbarui beberapa efek DSP untuk mendukung saluran tambahan atau menggunakannya secara unik.

Microsoft Suara Spasial dan Petunjuk Spasialisasi Suara

Microsoft Spatial Sound berfokus pada simulasi penempatan suara pada bola ideal di sekitar pendengar. Windows Sonic untuk Headphone, DTS Headphone:X, dan Dolby Atmos menerapkan pemetaan speaker dan virtualisasi ke headphone. Namun, perlu diperhatikan bahwa banyak aspek lain dari simulasi spasial suara, yang biasanya sudah diaktifkan oleh pembuat konten, diserahkan kepada mesin yang ada. Pembuat konten terus menggunakan alat dan proses game yang ada yang telah mereka miliki untuk petunjuk spasial seperti Doppler, pelemahan dan pemfilteran berbasis jarak, oklusi dan halangan, serta gema lingkungan.

Sumber Daya Tambahan

Antarmuka Suara Spasial

Antarmuka Deskripsi
ISpatialAudioClient Memungkinkan klien membuat aliran audio yang memancarkan audio dari posisi dalam ruang 3D.
ISpatialAudioObject Mewakili objek yang menyediakan data audio yang akan dirender dari posisi dalam ruang 3D, relatif terhadap pengguna.
ISpatialAudioObjectRenderStream Menyediakan metode untuk mengontrol aliran render objek audio spasial, termasuk memulai, menghentikan, dan mengatur ulang aliran.
ISpatialAudioObjectRenderStreamNotify Menyediakan pemberitahuan bagi klien audio spasial untuk merespons perubahan status ISpatialAudioObjectRenderStream.

 

Nota

Saat menggunakan antarmuka ISpatialAudioClient pada judul Xbox One Development Kit (XDK), Anda harus terlebih dahulu memanggil EnableSpatialAudio sebelum memanggil IMMDeviceEnumerator::EnumAudioEndpoints atau IMMDeviceEnumerator:: GetDefaultAudioEndpoint. Kegagalan untuk melakukannya akan mengakibatkan kesalahan E_NOINTERFACE dikembalikan dari panggilan ke Aktifkan. EnableSpatialAudio hanya tersedia untuk judul XDK, dan tidak perlu dipanggil untuk aplikasi Platform Windows Universal yang berjalan di Xbox One, atau untuk perangkat yang tidak Xbox One.

 

Struktur Suara Spasial

Struktur Deskripsi
SpatialAudioObjectRenderStreamActivationParams Mewakili parameter aktivasi untuk aliran render audio spasial.
SpatialAudioClientActivationParams Mewakili parameter aktivasi opsional untuk aliran render audio spasial.

 

Enumerasi Suara Spasial

Enumerasi Deskripsi
AudioObjectType Menentukan jenis dari sebuah ISpatialAudioObject.