Compartilhar via


Windows 10: novidades para drivers de áudio

Este tópico fornece um resumo de alto nível do que há de novo no áudio do Windows 10.

Resumo de recursos

Confira os novos recursos de áudio no Windows 10.

Melhorias de áudio de baixa latência

A latência de áudio é o atraso entre o momento em que o som é criado e o momento em que é ouvido. Ter baixa latência de áudio é muito importante para vários cenários importantes, como os seguintes.

  • Áudio profissional
  • Criação e mixagem musical
  • Comunicações como Skype
  • Realidade aumentada e virtual
  • Jogos

A latência total de um dispositivo é a soma das latências dos seguintes componentes:

  • Sistema operacional
  • Objetos de processamento de áudio
  • Driver de áudio
  • Hardware de áudio

No Windows 10, a latência no sistema operacional foi reduzida. Sem alterações de driver, os aplicativos no Windows 10 terão latência de 4,5 a 16 ms menor. Além disso, se o driver tiver sido atualizado para aproveitar as novas DDIs de baixa latência que usam pequenos buffers para processar dados de áudio, a latência será ainda menor. Se um driver for compatível com buffers de áudio de 3 ms, a latência de ida e volta será de aproximadamente 10 ms.

Diagrama mostrando a pilha de áudio de baixa latência com aplicativos, driver de mecanismo de áudio e componentes de hardware.

A pilha de áudio suporta vários tamanhos de pacotes e redimensionamento dinâmico de pacotes, a fim de otimizar a compensação entre latência e energia com base no cenário do usuário. Além disso, os fluxos serão priorizados, a fim de garantir que os de alta prioridade (por exemplo, chamadas telefônicas) tenham recursos dedicados.

Para que os drivers de áudio ofereçam suporte a baixa latência, o Windows 10 fornece os três novos recursos a seguir:

  1. [Obrigatório] Declare o tamanho mínimo do buffer com suporte em cada modo.
  2. [Opcional, mas recomendado] Melhore a coordenação do fluxo de dados entre o driver e o sistema operacional.
  3. [Opcional, mas recomendado] Registre os recursos do driver (interrupções, threads) para que eles possam ser protegidos pelo sistema operacional em cenários de baixa latência. Para obter mais informações, consulte Áudio de baixa latência.

Modos de processamento de sinal e categorias de áudio

Modos de processamento de sinal

Os drivers declaram os modos de processamento de sinal de áudio suportados para cada dispositivo.

As categorias de áudio (selecionadas pelos aplicativos) são mapeadas para modos de áudio (definidos pelos drivers). O Windows define sete modos de processamento de sinal de áudio. OEMs e IHVs podem determinar quais modos desejam implementar. Os modos estão resumidos na tabela mostrada abaixo.

Mode Renderização/captura Descrição
Raw Ambos O modo bruto especifica que não deve haver nenhum processamento de sinal aplicado ao fluxo. Um aplicativo pode solicitar um fluxo bruto que está completamente intocado e executar seu próprio processamento de sinal.
Padrão Ambos Esse modo define o processamento de áudio padrão.
Filmes* Renderizar Reprodução de áudio de filme
Mídia* Ambos Reprodução de áudio de música (padrão para a maioria dos fluxos de mídia)
Fala* Capture Captura de voz humana (por exemplo, entrada para Cortana)
Comunicações* Ambos Renderização e captura de VOIP (por exemplo, Skype, Lync)
Notificação* Renderizar Toques, alarmes, alertas, etc.

Os drivers de dispositivo de áudio precisam oferecer suporte a pelo menos o modo Raw ou Padrão. O suporte a modos adicionais é opcional.

Modos dedicados para fala, filme, música e comunicações. Os drivers de áudio serão capazes de definir diferentes tipos de formatos e processamento de áudio, com base no tipo de fluxo.

Categorias de áudio

A tabela a seguir mostra as categorias de áudio no Windows 10.

Para informar o sistema sobre o uso de um fluxo de áudio, os aplicativos têm a opção de marcar o fluxo com uma categoria de fluxo de áudio específica. No Windows 10, há nove categorias de fluxo de áudio.

Categoria Descrição
Filme* Filmes, vídeo com caixa de diálogo (substitui ForegroundOnlyMedia)
Mídia* Categoria padrão para reprodução de mídia (substitui BackgroundCapableMedia)
Bate-papo do jogo* Comunicação no jogo entre usuários (Nova categoria no Windows 10)
Fala* Entrada de voz (por exemplo, assistente pessoal) e saída (por exemplo, aplicativos de navegação) (Nova categoria no Windows 10)
Comunicações VOIP, bate-papo em tempo real
Alertas Alarme, toque, notificações
Efeitos sonoros Bipes, dings, etc
Mídia de jogos Na música do jogo
Efeitos de jogo Bolas quicando, sons de motor de carro, balas, etc.
Outro Fluxos não categorizados

* Novidades no Windows 10.

Para obter mais informações, consulte Modos de processamento de sinal de áudio e Arquitetura de objeto de processamento de áudio.

Efeitos de APO descarregados em hardware

O Windows 10 oferece suporte a efeitos de APO descarregados de hardware. Os APOs podem ser carregados na parte superior do pino de descarregamento. Isso permite que o processamento de áudio seja feito em software e hardware. Além disso, o processamento pode mudar dinamicamente. Parte ou todo o processamento pode ser movido do APO do software para o DSP quando houver recursos de hardware suficientes e, em seguida, movido de volta para o APO do software quando a carga no DSP aumenta.

Para obter mais informações, consulte Implementar efeitos de APO descarregados de hardware.

Ativação de voz da Cortana – Ativação por voz

Cortana, a tecnologia de assistente pessoal, foi demonstrada pela primeira vez na Microsoft BUILD Developer Conference em 2013. A ativação por voz é um recurso que permite aos usuários invocar um mecanismo de reconhecimento de fala de vários estados de energia do dispositivo dizendo uma frase específica – "Ei, Cortana". O recurso Ativação de voz "Hey Cortana" (VA) permite que os usuários ativem rapidamente a experiência (por exemplo, Cortana) fora do seu contexto ativo (ou seja, o que está atualmente na tela) usando sua voz. O recurso é direcionado para cenários quando a tela está desligada, ociosa ou quando está totalmente ativa. Se o hardware oferecer suporte ao buffering, os usuários poderão encadear a frase-chave e a frase de comando. Isso melhora a experiência de ativação completa na voz para o usuário. Para obter mais informações, confira Ativação de voz.

Drivers de áudio universais do Windows

O Windows 10 oferece suporte a um modelo de driver que funciona para PC e 2:1 e Windows 10 para telefones e tablets de tela pequena. Isso significa que os IHVs podem desenvolver seu driver em uma plataforma e que o driver funciona em todos os dispositivos (desktops, laptops, tablets, telefones). O resultado é a redução do tempo e do custo de desenvolvimento.

Para desenvolver drivers de áudio universal, use as seguintes ferramentas:

  1. Visual Studio 2015: Novas configurações de driver permitem que a "Plataforma de destino" seja definida como "Universal" para criar um driver multiplataforma.
  2. APIValidator: Esta é uma ferramenta WDK que verifica se o driver é universal e destaca as chamadas que precisam ser atualizadas.
  3. Amostras de áudio no GitHub: O sysvad e o SwapAPO foram convertidos em drivers universais. Para obter mais informações e ponteiros para o código de exemplo do GitHub, consulte Drivers universais do Windows para áudio.

Gerenciamento de recursos para drivers de áudio

Um desafio com a criação de uma boa experiência de áudio em um dispositivo móvel de baixo custo é que alguns dispositivos têm várias restrições de simultaneidade. Por exemplo, é possível que o dispositivo só possa reproduzir até 6 fluxos de áudio simultaneamente e suporte apenas 2 fluxos de descarregamento. Quando há uma chamada telefônica ativa em um dispositivo móvel, é possível que o dispositivo aceite apenas 2 fluxos de áudio. Quando o dispositivo está capturando áudio, o dispositivo só pode reproduzir até 4 fluxos de áudio.

O Windows 10 inclui um mecanismo para expressar restrições de simultaneidade para garantir que fluxos de áudio de alta prioridade e chamadas de telefone celular possam ser reproduzidos. Se o sistema não tiver recursos suficientes, os fluxos de baixa prioridade serão encerrados. Esse mecanismo só está disponível em telefones e tablets, não em desktops ou laptops.

Para obter mais informações, consulte Gerenciamento de recursos de hardware de áudio.

Redistribuição de PNP para drivers de áudio

A redistribuição PNP é usada em determinados cenários PCI em que os recursos de memória precisam ser realocados. Nesse caso, alguns drivers são descarregados e, em seguida, recarregados em locais de memória diferentes, a fim de criar espaço de memória contíguo livre. A redistribuição pode ser acionada em dois cenários principais:

  1. Hotplug PCI: um usuário conecta um dispositivo e o barramento PCI não tem recursos suficientes para carregar o driver para o novo dispositivo. Alguns exemplos de dispositivos que se enquadram nesta categoria incluem Thunderbolt, USB-C e NVME Storage. Nesse cenário, os recursos de memória precisam ser reorganizados e consolidados (redistribuídos) para oferecer suporte aos dispositivos adicionais que estão sendo adicionados.
  2. BARs redimensionáveis PCI: depois que um driver para um dispositivo é carregado com êxito na memória, ele solicita recursos adicionais. Alguns exemplos de dispositivos incluem placas gráficas de alta tecnologia e dispositivos de armazenamento. Para obter mais informações, consulte Implementar redistribuição PnP para drivers de áudio PortCls.