Compartilhar via


Som Espacial para desenvolvedores de aplicativos para Windows, Xbox e Hololens 2

Nota

Esta documentação é direcionada para um público de desenvolvedores. Para obter suporte ao usuário final para habilitar o som espacial em seu dispositivo, consulte Como ativar o som espacial em Windows 10.

Microsoft Som Espacial é a solução de nível de plataforma da Microsoft para suporte a som espacial no Xbox, Windows e HoloLens 2, permitindo sinais de áudio surround e elevação (acima ou abaixo do ouvinte). O som espacial pode ser utilizado por aplicativos Windows desktop (Win32) e aplicativos Plataforma Universal do Windows (UWP) em plataformas com suporte. As APIs de som espacial permitem que os desenvolvedores criem objetos de áudio que emitem áudio de posições no espaço 3D. Objetos de áudio dinâmicos permitem emitir áudio de uma posição arbitrária no espaço, o que pode mudar ao longo do tempo. Você também pode especificar que objetos de áudio emitem som de um dos 17 canais estáticos predefinidos (8.1.4.4) que podem representar alto-falantes reais ou virtualizados. O formato de saída real é selecionado pelo usuário e pode ser abstraído de implementações de som espacial Microsoft; o áudio será apresentado a alto-falantes, fones de ouvido e receptores de home theater existentes sem a necessidade de alterações de código ou conteúdo. A plataforma oferece suporte total à codificação em tempo real do Dolby Atmos para saída HDMI e fones de ouvido estéreo, DTS:X para Fones de Ouvido e Windows Sonic para Fones de Ouvido em fones de ouvido estéreo. Por fim, os aplicativos de Som Espacial da Microsoft respeitam a política de mixagem do sistema, e seu áudio também será misturado com aplicativos não compatíveis com som espacial. O suporte ao Som Espacial da Microsoft também está integrado ao Media Foundation; aplicativos que usam Media Foundation podem reproduzir com êxito o conteúdo Dolby Atmos sem nenhuma implementação adicional.

O som espacial com Microsoft Spatial Sound é compatível com TVs, home theaters e barras de som que suportam Dolby Atmos. O som espacial também pode ser usado com qualquer par de fones de ouvido que o consumidor possa possuir, com áudio renderizado pela plataforma usando Windows Sonic for Headphones, Dolby Atmos para Fones de Ouvido ou DTS Headphone:X.

Habilitando o Som Espacial da Microsoft

Seja como desenvolvedor ou consumidor, um usuário deve habilitar Microsoft Som Espacial em seu dispositivo para ouvir som espacializado.

Windows

Em Windows computadores, isso é feito por meio da página de propriedades de um determinado dispositivo de saída de som. No painel de controle Sound, selecione um dispositivo de saída e clique propriedades do dispositivo. Na seção Som Espacial da página, se o dispositivo suportar som espacial, você poderá selecionar um dos formatos disponíveis no menu suspenso de Formato de Som Espacial.

habilitar o som espacial no painel de controle de som

Você também pode habilitar Microsoft Som Espacial clicando com o botão direito do mouse no ícone Volume na barra de tarefas.

habilitar o som espacial da barra de tarefas

Xbox

No Xbox, os recursos de Som Espacial da Microsoft estão sempre disponíveis para o consumidor e são habilitados por meio das Configurações do Windows em Geral -> Volume e saída de áudio.

O botão de áudio HDMI é preenchido com todos os formatos compatíveis com o Receptor de Vídeo de Áudio (AVR) ou a Barra de Som ou a TV que está diretamente conectada ao console Xbox. A opção "Áudio óptico" só está disponível em consoles de Xbox mais antigos e não em Xbox Series X|S e superiores.

Captura de tela da página de configurações gerais de Volume e Saída exibindo a lista suspensa de áudio HDMI.

Observe que selecionar as opções "Dolby Atmos para home theater (somente HDMI)" ou "DTS:X para home theater (somente HDMI)" no áudio HDMI solicitará que o usuário baixe e instale aplicativos Dolby Access ou DTS Sound Unbound se ainda não estiver instalado

Captura de tela da página de configurações de Volume Geral & Saída mostrando a seleção do DTS Digital Surround.

Selecione Dolby Atmos para Fones de Ouvido, DTS Headphone:X, ou Windows Sonic para Fones de Ouvido no menu suspenso Formato do Headset em Áudio do Headset

Captura de tela da página de configurações do Volume Geral e Saída mostrando a habilitação do som espacial para fones de ouvido.

Quando o Som Espacial da Microsoft não está disponível (por exemplo, ao reproduzir em alto-falantes estéreo embutidos no laptop ou se o usuário não tiver habilitado explicitamente o Som Espacial da Microsoft conforme mencionado acima), o número de objetos dinâmicos disponíveis retornados por ISpatialAudioClient::GetMaxDynamicObjectCount para um aplicativo será 0.

HoloLens 2

No HoloLens 2, o Microsoft Som Espacial é habilitado por padrão e usa o offload de DSP de hardware especificamente projetado para Windows Sonic para Fones de Ouvido.

Microsoft middleware de áudio e som espacial

Muitos desenvolvedores de aplicativos e jogos usam soluções de mecanismo de renderização de áudio de terceiros, que geralmente incluem ferramentas sofisticadas de criação e audição. Microsoft fez parceria com vários desses provedores de solução para implementar Microsoft o Som Espacial em seus ambientes de criação existentes. Isso significará frequentemente que as APIs discutidas aqui são abstraídas da exibição do aplicativo; elas são compiladas como plug-ins de processamento de sinal digital (DSP) que o aplicativo pode instanciar e que o implementador de áudio do aplicativo pode usar para misturar a um canal do Microsoft Spatial Sound, submix ou enviar vozes individuais para plug-ins de instância de objeto dinâmico, conforme desejado. Consulte o provedor de solução de middleware de áudio para obter o nível de suporte do Microsoft Spatial Sound.

Microsoft som espacial para renderizadores de áudio

Muitos renderizadores de áudio têm como alvo um ponto de extremidade WASAPI IAudioClient, no qual o aplicativo fornece buffers de dados de áudio misturados e conformados em formato a um coletor de áudio WASAPI; os buffers entregues são então consumidos para mistura com outros clientes, processamento final no nível do sistema e renderização.

Os pontos de extremidade do Microsoft Spatial Sound são implementados como ISpatialAudioClient, que tem muitas semelhanças com IAudioClient. Ele dá suporte a objetos de som estáticos formando uma base de canais, com suporte para até 8.1.4.4 canais (8 canais ao redor do ouvinte – Esquerda, Direita, Centro, Lado Esquerdo, Lado Direito, Traseira Esquerda, Traseira Direita e Centro Traseiro; 1 canal de efeitos de baixa frequência; 4 canais acima do ouvinte; 4 canais abaixo do ouvinte). E dá suporte a objetos de som dinâmicos, que podem ser posicionados arbitrariamente no espaço 3D.

O padrão de codificação de implementação geral para ISpatialAudioClient é:

  • Crie objetos de áudio estáticos e/ou dinâmicos.
  • Alimente o buffer de áudio de cada objeto a cada quadro para que o sistema possa renderizá-lo.
  • Atualize as posições 3D dos objetos dinâmicos sob demanda – com a frequência (ou raramente) desejada pelo aplicativo.

Observe que o formato de saída atual (alto-falantes ou fones de ouvido; Windows Sonic for Headphones, Dolby Atmos ou DTS Headphone:X) é abstraído da implementação acima – o desenvolvedor do aplicativo pode se concentrar no áudio espacial sem precisar ajustar com base no formato. Aplicativos que desejam que seu comportamento divergue com base no formato de saída podem consultar o formato em uso, mas a abstração significa que um aplicativo não é necessário para lidar com esses formatos.

Integração de Som Espacial da Microsoft com Renderizadores de Áudio

Como ISpatialAudioClient é um coletor de áudio que consome dados, um renderizador de áudio tem várias opções de como interagir e entregar dados de áudio a ele. Há três técnicas de integração comumente usadas (e para títulos que usam middleware de áudio, você pode ver plug-ins equivalentes disponibilizados com base nessas opções):

  • controladores de panorâmica 7.1.4 e voz de masterização: renderizadores que já dão suporte a pontos de extremidade 7.1 podem optar por apenas adicionar suporte aos quatro canais de altura adicionais que o ISpatialAudioClient conjunto de canais estáticos suporta. Qualquer panoramização de canal que eles fizeram anteriormente (provavelmente já aproveitando coordenadas x, y, z) agora pode ser atualizada para incluir esses canais de altura. Isso geralmente oferece a menor interrupção nos fluxos de trabalho de áudio do renderizador e do aplicativo, sinal, fluxo e controle de combinação. Em fones de ouvido, observe que a combinação completa de aplicativos será espacializada, portanto, até mesmo música estéreo pode ser percebida como "externalizada" do ouvinte.
  • Manter o ponto de extremidade existente, além de adicionar um barramento de áudio 7.1.4 (e panners): alguns títulos podem optar por manter dois pontos de extremidade: seu ponto de extremidade WASAPI estéreo existente (para conteúdo "direto aos ouvidos" que não se destina à espacialização) ao lado de um ISpatialAudioClient estrutura de canais estáticos que dá suporte a 7.1.4 (ou até mesmo até 8.1.4.4). É claro que o gerenciamento de interações entre duas misturas apresenta desafios adicionais aos criadores de conteúdo, embora a sincronização seja mantida, já que as instâncias WASAPI e ISAC ativas em um determinado momento usam o mesmo tamanho de buffer e relógio para processamento.
  • Usar objetos de som dinâmicos para determinadas vozes ou submixes: oferecendo talvez o posicionamento mais detalhado e preciso, mas potencialmente criando opacidade na mixagem, essa técnica envolve o uso de objetos de som dinâmicos do ISpatialAudioClient. Observe que os metadados e o buffer de áudio são entregues ao renderizador, portanto, esses sons serão opacos para o restante da combinação de aplicativos. Além disso, como há um número limitado de objetos de som dinâmicos disponíveis, o renderizador precisará considerar a implementação de técnicas de priorização – eliminação, co-colocação de som, mistura com a matriz de canal estático e assim por diante. Os jogos têm usado frequentemente essa técnica para sons individuais de "herói", como um helicóptero que se moverá acima do ouvinte.

Os renderizadores também podem misturar e combinar essas abordagens.

Implicações de Recursos do Microsoft Spatial Sound Runtime

Em Windows e Xbox, o número de vozes disponíveis varia de acordo com o formato em uso. Os formatos do Dolby Atmos dão suporte a 32 objetos ativos totais (portanto, se uma cama de canal 7.1.4 estiver em uso, 20 objetos de som dinâmicos adicionais poderão estar ativos). Windows Sonic for Headphones dá suporte a 128 objetos ativos no total, com o canal LFE (Efeitos de Baixa Frequência) não sendo realmente contado como um objeto. Portanto, quando uma estrutura de canal 8.1.4.4 está em uso, 112 objetos de som dinâmicos podem estar ativos.

Para aplicativos Plataforma Universal do Windows em execução em consoles de jogos Xbox One, o código em tempo real (para Dolby Atmos para Home Theater, Dolby Atmos para Fones de Ouvido, DTS:X para Home Theater, DTS Headphone:X e Windows Sonic for Headphones) é executado em hardware sem custo de CPU.

A partir da atualização do sistema operacional 2303 Xbox e do Kit de Desenvolvimento de Jogos (GDK), os limites de recursos em Xbox são atualizados para os seguintes valores:

Formato Objetos estáticos máximos (leito de canal) Máximo de objetos dinâmicos
Xbox Series X|S, aplicativos UWP & >=2303 GDK
Máximo de objetos dinâmicos
Xbox Series X|S, XDK & 2303 GDK
Número máximo de objetos dinâmicos
Xbox One
Dolby Atmos para Home Theater (HDMI) 12 (7.1.4) 20 20 20
DTS:X para Home Theater (HDMI) 17 (8.1.4.4) 20 20 16
Dolby Atmos (fones de ouvido) 17 (8.1.4.4) 128 20 16
DTS Headphone:X (Fone de ouvido) 17 (8.1.4.4) 200 20 16
Windows Sonic (Fones de Ouvido) 17 (8.1.4.4) 220 20 15

A partir da versão de manutenção de maio para Windows build 22621, os limites de recursos em Windows são atualizados para os seguintes valores:

Formato Objetos estáticos máximos (base de canal) Máximo de objetos dinâmicos
Windows
Máximo de objetos dinâmicos
HoloLens 2
Home theater com Dolby Atmos (HDMI) 12 (7.1.4) 20 N/A
DTS:X para home theater (HDMI) 17 (8.1.4.4) 32 N/A
Dolby Atmos (fones de ouvido) 17 (8.1.4.4) 128 N/A
Dolby Atmos (alto-falantes internos) 17 (8.1.4.4) 128 N/A
DTS Headphone:X (Fone de ouvido) 17 (8.1.4.4) 128 N/A
DTS:X Ultra (alto-falantes internos) 17 (8.1.4.4) 128 N/A
Windows Sonic (Fones de Ouvido) 17 (8.1.4.4) 128 31

Para versões de Windows, Xbox e HoloLens anteriores, os limites de recursos a seguir se aplicam.

Formato Objetos estáticos máximos (leito de canal) Máximo de objetos dinâmicos
Xbox One
Máximo de objetos dinâmicos
Windows
Máximo de objetos dinâmicos
HoloLens 2
Dolby Atmos para cinema em casa (HDMI) 12 (7.1.4) 20 20 N/A
DTS:X para home theater (HDMI) 17 (8.1.4.4) 16 32 N/A
Dolby Atmos (fones de ouvido) 17 (8.1.4.4) 16 16 N/A
Dolby Atmos (alto-falantes internos) 17 (8.1.4.4) N/A 16 N/A
DTS Headphone:X (Fone de ouvido) 17 (8.1.4.4) 16 32 N/A
DTS Ultra (alto-falantes internos) 17 (8.1.4.4) N/A 32 N/A
Windows Sonic for Headphones 17 (8.1.4.4) 15 112 31

Os aplicativos também devem considerar as seguintes implicações de recursos:

  • armazenamento/largura de banda de disco: o conteúdo linear pré-criado para 7.1.4 normalmente será maior do que o conteúdo linear 7.1 (embora codecs perceptivos geralmente aproveitem a correlação de canais para fazer com que isso seja muito menos do que os 50% a mais de canais reais de dados de áudio)
  • Outros custos de processamento de sinal digital: alguns efeitos que eram anteriormente globais agora podem ser instanciados por objeto de som dinâmico. Além disso, alguns criadores de conteúdo podem desejar atualizar alguns efeitos DSP para dar suporte a canais adicionais ou usá-los exclusivamente.

Microsoft Som Espacial e Indicações de Espacialização de Som

Microsoft Som Espacial é focado na simulação de posicionamento de som em uma esfera idealizada em torno do ouvinte. Windows Sonic for Headphones, DTS Headphone:X e Dolby Atmos implementam mapeamento de alto-falante e virtualização para fones de ouvido, mas observe que muitos outros aspectos da simulação espacial de som, já normalmente implementados de maneiras habilitadas para criadores de conteúdo, são deixados para os mecanismos existentes. Os criadores de conteúdo continuam a usar as ferramentas e processos de jogos existentes que já tiveram para indicações espaciais como Doppler, atenuação e filtragem baseadas em distância, oclusão e obstrução e reverberação ambiental.

Recursos adicionais

Interfaces de Áudio Espacial

Interface Descrição
ISpatialAudioClient Permite que um cliente crie fluxos de áudio que emitem áudio de uma posição no espaço 3D.
ISpatialAudioObject Representa um objeto que fornece dados de áudio a serem renderizados de uma posição no espaço 3D, em relação ao usuário.
ISpatialAudioObjectRenderStream Fornece métodos para controlar um fluxo de renderização de objeto de áudio espacial, incluindo iniciar, parar e redefinir o fluxo.
ISpatialAudioObjectRenderStreamNotify Fornece notificações para clientes de áudio espacial responderem a alterações no estado de um ISpatialAudioObjectRenderStream.

 

Nota

Ao usar as interfaces ISpatialAudioClient em um título do XDK (Kit de Desenvolvimento Xbox One), você deve primeiro chamar EnableSpatialAudio antes de chamar IMMDeviceEnumerator::EnumAudioEndpoints ou IMMDeviceEnumerator:: GetDefaultAudioEndpoint. A falha ao fazer isso resultará na devolução de um erro E_NOINTERFACE da chamada para ativar. EnableSpatialAudio só está disponível para títulos XDK e não precisa ser chamado para aplicativos Plataforma Universal do Windows em execução em Xbox One, nem para dispositivos não Xbox One.

 

Estruturas Espaciais de Som

Estrutura Descrição
SpatialAudioObjectRenderStreamActivationParams Representa parâmetros de ativação para um fluxo de renderização de áudio espacial.
SpatialAudioClientActivationParams Representa parâmetros de ativação opcionais para um fluxo de renderização de áudio espacial.

 

Enumerações de som espacial

Enumeração Descrição
TipoDeObjetoDeÁudio Especifica o tipo de ISpatialAudioObject.