Compartilhar via


Modos de processamento de sinal de áudio

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

Modos de processamento de sinais disponíveis

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. É recomendável que os IHVs/OEMs usem os novos modos para adicionar efeitos de áudio que otimizem o sinal de áudio para proporcionar a melhor experiência ao usuário. 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 assistente pessoal)
Comunicações* Ambos Renderização e captura de VOIP (por exemplo, Teams, Skype, Lync)
Notificação* Renderizar Toques, alarmes, alertas, etc.

* Novidades no Windows 10.

Requisitos de Driver do modo de processamento de sinal

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

É possível que nem todos os modos fiquem disponíveis para um determinado sistema. Os drivers definem os modos de processamento de sinal com que são compatíveis (ou seja, que tipos de APOs são instalados como parte do driver) e informam o sistema operacional adequadamente. Se um modo específico não for compatível com o driver, o Windows usará o próximo melhor modo correspondente.

O diagrama a seguir mostra um sistema que dá suporte a vários modos:

Diagrama que mostra um sistema compatível com diversos modos de áudio, com vários efeitos SFX e MFX.

Categorias de transmissão de áudio do Windows

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. Os aplicativos podem definir a categoria de áudio usando qualquer uma das APIs de áudio, logo depois da criação da transmissão de áudio. No Windows, há nove categorias de transmissão 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 Música em jogo
Efeitos de jogo Bolas quicando, sons de motor de carro, balas, etc.
Outro Fluxos não categorizados

Como já foi mencionado antes, as categorias de áudio (selecionadas pelos aplicativos) são mapeadas para modos de áudio (definidos pelos drivers). Os aplicativos podem marcar cada um dos seus fluxos com uma das 10 categorias de áudio.

Os aplicativos não têm a opção de trocar o mapeamento entre uma categoria de áudio e um modo de processamento de sinal. Os aplicativos não reconhecem o conceito de "modo de processamento de áudio". Eles não conseguem descobrir qual modo é usado para cada fluxo.

Exemplo de código WASAPI

O seguinte código WASAPI da amostra de WASAPIAudio mostra como definir diversas categorias de áudio.

// The ActivateAudioInterfaceAsync is a replacement for IMMDevice::Activate
IActivateAudioInterfaceAsyncOperation *asyncOp = nullptr;
HRESULT hr = S_OK;

String ^defaultRender = Windows::Media::Devices::MediaDevice::GetDefaultAudioRenderId( Windows::Media::Devices::AudioDeviceRole::Default );

hr = ActivateAudioInterfaceAsync( defaultRender->Data(), __uuidof( IAudioClient3 ), nullptr, this, &asyncOp );
if ( FAILED( hr ) ) { … }
…

// the app’s implementation of IActivateAudioInterfaceCompetionHandler is invoked asynchronously
HRESULT ActivateAudioInterfaceCompletionHandler::ActivateCompleted( IActivateAudioInterfaceAsyncOperation *activateOperation ) {
    HRESULT hr = S_OK;
    HRESULT hrActivateResult = S_OK;
    IUnknown *pUnknown = nullptr;
    IAudioClient3 *pAudioClient3 = nullptr;

    hr = activateOperation->GetActivateResult( &hrActivateResult, &pUnknown );
    if ( FAILED( hr ) )  { … }
    if ( FAILED( hrActivateResult ) ) { … }

    hr = pUnknown->QueryInterface( IID_PPV_ARGS( &pAudioClient3 ) );
    if ( FAILED( hr ) ) { … }

    // The IAudioClient3::SetClientProperties call needs to happen after activation completes,
    // but before the call to IAudioClient3::Initialize or IAudioClient3::InitializeSharedAudioStream.
    AudioClientProperties props = {};
    props.cbSize = sizeof(props);
    props.eCategory = AudioCategory_GameEffects;
    pAudioClient3->SetClientProperties( &props );
    if ( FAILED( hr ) ) { … }

    hr = pAudioClient3->InitializeSharedAudioStream( … );
    if ( FAILED( hr ) ) { … }

    …

Efeitos e modos de processamento de sinais

Os OEMs definem quais serão os efeitos usados para cada modo. O Windows define uma lista com dezessete tipos de efeitos de áudio.

Para saber mais sobre como associar APOs a modos, consulte Implementar objetos de processamento de áudio.

É possível que os aplicativos perguntem quais efeitos seriam aplicados a uma transmissão específica para processamento RAW ou não-RAW. Os aplicativos também podem solicitar para serem notificados quando houver mudanças nos efeitos ou no estado de processamento bruto. O aplicativo pode usar essas informações para determinar se uma categoria de streaming específica, como comunicação, está disponível ou se somente o modo RAW está em uso. Se somente o modo RAW estiver disponível, o aplicativo poderá determinar quanto processamento de áudio deverá ser adicionado.

Se o System.Devices.AudioDevice.RawProcessingSupported for true, os aplicativos também poderão definir um sinalizador "use RAW" em alguns fluxos. Se o System.Devices.AudioDevice.RawProcessingSupported for false, os aplicativos não poderão definir o sinalizador "use RAW".

Os aplicativos não têm visibilidade de quantos modos estão presentes, com exceção do RAW/não-RAW.

Os aplicativos devem solicitar o processamento de efeito de áudio ideal, não importa a configuração de hardware de áudio. Por exemplo, marcar um fluxo como Comunicações permitirá que o Windows saiba como pausar a música de fundo.

Para obter mais informações sobre as categorias de fluxo de áudio estático, consulte Enumeração de AudioCategory e Propriedade MediaElement.AudioCategory.

CLSIDs para os efeitos do sistema

FX_DISCOVER_EFFECTS_APO_CLSID

Este é o CLSID para o "efeito proxy" MsApoFxProxy.dll, que consulta o driver para obter a lista de efeitos ativos;

FX_DISCOVER_EFFECTS_APO_CLSID  = "{889C03C8-ABAD-4004-BF0A-BC7BB825E166}"

KSATTRIBUTEID_AUDIOSIGNALPROCESSING_MODE

O KSATTRIBUTEID_AUDIOSIGNALPROCESSING_MODE é um identificador para o Kernel Streaming que identifica que o atributo específico que referenciado é o atributo do modo de processamento de sinal.

As instruções #define mostradas aqui estão disponíveis no arquivo de cabeçalho KSMedia.h.

#define STATIC_KSATTRIBUTEID_AUDIOSIGNALPROCESSING_MODE 0xe1f89eb5, 0x5f46, 0x419b, 0x96, 0x7b, 0xff, 0x67, 0x70, 0xb9, 0x84, 0x1
DEFINE_GUIDSTRUCT("E1F89EB5-5F46-419B-967B-FF6770B98401", KSATTRIBUTEID_AUDIOSIGNALPROCESSING_MODE);
#define KSATTRIBUTEID_AUDIOSIGNALPROCESSING_MODE DEFINE_GUIDNAMED(KSATTRIBUTEID_AUDIOSIGNALPROCESSING_MODE)

O KSATTRIBUTEID_AUDIOSIGNALPROCESSING_MODE é usado para drivers com reconhecimento de modo com uma estrutura KSDATARANGE que contém uma KSATTRIBUTE_LIST. Esta lista contém um único elemento, que é um KSATTRIBUTE. O membro Attribute da estrutura KSATTRIBUTE é definido como KSATTRIBUTEID_AUDIOSIGNALPROCESSING_MODE.

Efeitos de áudio

Os efeitos de áudio seguintes estão disponíveis para uso no Windows 10.

Efeito de áudio Descrição
Cancelamento de Eco Acústico (AEC) O Cancelamento de Eco Acústico (AEC) melhora a qualidade do áudio removendo o eco, depois de já estar presente na transmissão de áudio.
Supressão de ruído (NS) A Supressão de Ruído (NS) simples suprime ruídos, como zumbidos que podem estar presentes na transmissão de áudio.
Supressão de ruído profundo A Supressão de ruído profundo usa técnicas avançadas de IA/aprendizado de máquina para suprimir ruídos, especialmente em chamadas de voz.
AGC (Controle de ganho automático) O AGC (controle de ganho automático) serve para fornecer uma amplitude de sinal controlada na saída, não importa a variação da amplitude no sinal de entrada. O nível de sinal de saída médio ou de pico é usado para ajustar dinamicamente o ganho de entrada para saída para um valor adequado, permitindo um nível estável de saída, mesmo com uma ampla gama de níveis de sinal de entrada.
Forma de feixe (BF) A Forma de feixe (BF) é uma técnica de processamento de sinais usada para transmissão ou recepção de sinais direcionais. Isso é conseguido ao combinar elementos em uma matriz faseada de tal forma que os sinais em ângulos específicos experimentam interferência construtiva, enquanto outros experimentam interferência destrutiva. A melhoria em comparação com a recepção/transmissão omnidirecional é conhecida como ganho (ou perda) da recepção/transmissão.
Remoção de tom constante A Remoção de tom constante é usada para atenuar ruídos de fundo constante, como chiado de fita, ventiladores elétricos ou zumbidos.
Equalizador O efeito Equalizador é usado para mudar a resposta de frequência de um sistema de áudio com filtros lineares. Isso permite que diferentes partes do sinal sejam aumentadas, similar a uma configuração de agudos ou graves.
Equalizador de volume O efeito Equalizador de volume reduz as diferenças percebidas de volume, nivelando a saída de áudio para que sons mais altos e silenciosos estejam mais próximos de um nível médio de volume.
Aumento de grave Em sistemas como laptops que têm alto-falantes com capacidade de graves limitada, às vezes, é possível aumentar a qualidade percebida do áudio ao aumentar a resposta de graves na faixa de frequência que o alto-falante suporta. O aumento de graves melhora o som em dispositivos móveis com alto-falantes bem pequenos, aumentando o ganho na faixa de médio-graves.
Surround virtual O Surround virtual usa métodos digitais simples para combinar um sinal multicanal em dois canais. Isso é feito de modo a permitir que o sinal transformado seja restaurado para o sinal multicanal original, usando os decodificadores Pro Logic que estão disponíveis na maioria dos receptores de áudio modernos. O Virtual surround é ideal para um sistema com um hardware de som de dois canais e um receptor que tenha um mecanismo de aprimoramento de som surround.
Fones de ouvido virtuais O som Surround virtualizado permite que os usuários que usam fones de ouvido consigam distinguir o som da frente para trás, bem como de um lado para o outro. Isso é feito ao transmitir sugestões espaciais que ajudam o cérebro a localizar os sons e integrá-los em um campo sonoro. Esse efeito faz com que o som pareça transcender os fones de ouvido, criando uma experiência de audição "fora da cabeça". Este efeito é conseguido com uma tecnologia avançada chamada HRTF (função de transferência relacionada a cabeçalho). O HRTF gera sugestões acústicas que são baseadas no formato da cabeça humana. Essas sugestões não só ajudam os ouvintes a localizar a direção e a origem do som, mas também aprimoram o tipo de ambiente acústico que cerca o ouvinte.
Preenchimento do alto-falante A maioria das músicas é produzida somente com dois canais e, portanto, não é otimizada para o equipamento de áudio multicanal do típico entusiasta de áudio ou vídeo. Portanto, ter música emanando somente dos alto-falantes frontais esquerdo e dianteiro direito é uma experiência de áudio abaixo do ideal. O preenchimento de alto-falantes simula uma configuração de alto-falante multicanal. Ele permite que a música que seria ouvida somente em dois alto-falantes seja tocada em todos os alto-falantes da sala, aumentando a sensação espacial.
Correção de sala A correção da sala otimiza a experiência de audição para um local específico da sala, por exemplo, a almofada do seu sofá, calculando automaticamente a combinação ideal de atraso, resposta de frequência e ajustes de ganho. O recurso de correção de sala combina melhor o som com a imagem na tela de vídeo e também é útil para os casos em que os alto-falantes da área de trabalho estão em locais fora do padrão. O processamento de correção de sala é uma melhoria em relação a recursos parecidos de receptores high-end, pois leva mais em consideração a forma como o ouvido humano processa o som. A calibração é feita com a ajuda de um microfone, e o procedimento pode ser usado com sistemas estéreo e multicanal. O usuário coloca o microfone onde quer se sentar e, depois, ativa um assistente que mede a resposta da sala. O assistente reproduz um conjunto de tons criados especialmente a partir de cada alto-falante, e mede a distância, a resposta de frequência e o ganho geral de cada alto-falante a partir da localização do microfone.
Gerenciamento de graves Há dois modos de gerenciamento de graves: gerenciamento de graves dianteiros e gerenciamento de graves reverso. O gerenciamento de graves filtra o conteúdo de baixa frequência da transmissão de dados de áudio. O algoritmo de gerenciamento de graves dianteiro redireciona a saída filtrada para o subwoofer ou para os canais de alto-falante frontais esquerdo e direito, dependendo dos canais que podem lidar com as frequências graves profundas. Esta decisão é baseada na configuração do sinalizador LRBig. Para definir o sinalizador LRBig, o usuário usa o miniaplicativo Som no Painel de controle para acessar a caixa de diálogo Configurações de gerenciamento de graves. O usuário marca uma caixa de seleção para indicar, por exemplo, que os alto-falantes frontais direito e frontal estão completos e esta ação define o sinalizador LRBig. Para limpar este sinalizador, marque a caixa de seleção. O gerenciamento reverso de graves distribui o sinal do canal do subwoofer para os outros canais de saída. O sinal é direcionado a todos os canais ou aos canais frontais esquerdo e direito, dependendo da configuração do sinalizador LRBig. Este processo usa uma redução de ganho substancial ao mixar o sinal do subwoofer nos outros canais. O modo de gerenciamento de graves usado depende da disponibilidade de um subwoofer e da capacidade de manipular os graves dos alto-falantes principais. No Windows, o usuário fornece essas informações por meio do miniaplicativo Som no Painel de controle.
Efeitos ambientais Os efeitos ambientais operam para aumentar a realidade da reprodução de áudio, simulando mais precisamente os ambientes de áudio do mundo real. Há uma série de ambientes diferentes que você pode selecionar, como o "estádio", que simula a acústica de um estádio esportivo.
Proteção de alto-falante O objetivo da proteção de alto-falantes é suprimir frequências ressonantes que poderiam fazer com que os alto-falantes causassem danos a qualquer um dos componentes do sistema dos PCs. Por exemplo, alguns discos rígidos físicos podem ser danificados ao tocar um som alto na frequência certa. Secundariamente, a proteção dos alto-falantes opera para reduzir os danos aos alto-falantes, atenuando o sinal quando ele ultrapassa certos valores.
Compensação de alto-falante Alguns alto-falantes são melhores que outros na reprodução de som. Por exemplo, um determinado alto-falante pode atenuar os sons abaixo de 100 Hz. Às vezes, os drivers de áudio e as soluções DSP de firmware têm conhecimento das características específicas de performance dos alto-falantes em que estão sendo reproduzidos e podem adicionar processamento projetado para compensar as limitações do alto-falante. Por exemplo, pode ser criado um efeito de ponto de extremidade (EFX) que aplica ganho a frequências abaixo de 100 Hz. Quando combinado com a atenuação no alto-falante físico, esse efeito resulta em melhor fidelidade do áudio.
Compressão de faixa dinâmica A compressão de faixa dinâmica amplifica os sons silenciosos ao estreitar ou "comprimir" o alcance dinâmico de um sinal de áudio. A compressão de áudio amplifica os sons silenciosos que estão abaixo de um certo limite, enquanto os sons altos continuam inalterados.

As instruções #define mostradas aqui estão disponíveis no arquivo de cabeçalho KSMedia.h.

DEFAULT

#define STATIC_AUDIO_SIGNALPROCESSINGMODE_DEFAULT 0xc18e2f7e, 0x933d, 0x4965, 0xb7, 0xd1, 0x1e, 0xef, 0x22, 0x8d, 0x2a, 0xf3
DEFINE_GUIDSTRUCT("C18E2F7E-933D-4965-B7D1-1EEF228D2AF3", AUDIO_SIGNALPROCESSINGMODE_DEFAULT);
#define AUDIO_SIGNALPROCESSINGMODE_DEFAULT DEFINE_GUIDNAMED(AUDIO_SIGNALPROCESSINGMODE_DEFAULT)

RAW

#define STATIC_AUDIO_SIGNALPROCESSINGMODE_RAW 0x9e90ea20, 0xb493, 0x4fd1, 0xa1, 0xa8, 0x7e, 0x13, 0x61, 0xa9, 0x56, 0xcf
DEFINE_GUIDSTRUCT("9E90EA20-B493-4FD1-A1A8-7E1361A956CF", AUDIO_SIGNALPROCESSINGMODE_RAW);
#define AUDIO_SIGNALPROCESSINGMODE_RAW DEFINE_GUIDNAMED(AUDIO_SIGNALPROCESSINGMODE_RAW)

CANCELAMENTO DO ECO ACÚSTICO

#define STATIC_AUDIO_EFFECT_TYPE_ACOUSTIC_ECHO_CANCELLATION 0x6f64adbe, 0x8211, 0x11e2, 0x8c, 0x70, 0x2c, 0x27, 0xd7, 0xf0, 0x01, 0xfa
DEFINE_GUIDSTRUCT("6f64adbe-8211-11e2-8c70-2c27d7f001fa", AUDIO_EFFECT_TYPE_ACOUSTIC_ECHO_CANCELLATION);
#define AUDIO_EFFECT_TYPE_ACOUSTIC_ECHO_CANCELLATION DEFINE_GUIDNAMED(AUDIO_EFFECT_TYPE_ACOUSTIC_ECHO_CANCELLATION)

SUPRESSÃO DE RUÍDO

#define STATIC_AUDIO_EFFECT_TYPE_NOISE_SUPPRESSION          0x6f64adbf, 0x8211, 0x11e2, 0x8c, 0x70, 0x2c, 0x27, 0xd7, 0xf0, 0x01, 0xfa
DEFINE_GUIDSTRUCT("6f64adbf-8211-11e2-8c70-2c27d7f001fa", AUDIO_EFFECT_TYPE_NOISE_SUPPRESSION);
#define AUDIO_EFFECT_TYPE_NOISE_SUPPRESSION DEFINE_GUIDNAMED(AUDIO_EFFECT_TYPE_NOISE_SUPPRESSION)

CONTROLE AUTOMÁTICO DE GANHO

#define STATIC_AUDIO_EFFECT_TYPE_AUTOMATIC_GAIN_CONTROL     0x6f64adc0, 0x8211, 0x11e2, 0x8c, 0x70, 0x2c, 0x27, 0xd7, 0xf0, 0x01, 0xfa
DEFINE_GUIDSTRUCT("6f64adc0-8211-11e2-8c70-2c27d7f001fa", AUDIO_EFFECT_TYPE_AUTOMATIC_GAIN_CONTROL);
#define AUDIO_EFFECT_TYPE_AUTOMATIC_GAIN_CONTROL DEFINE_GUIDNAMED(AUDIO_EFFECT_TYPE_AUTOMATIC_GAIN_CONTROL)

FORMAÇÃO DE FEIXE

#define STATIC_AUDIO_EFFECT_TYPE_BEAMFORMING                0x6f64adc1, 0x8211, 0x11e2, 0x8c, 0x70, 0x2c, 0x27, 0xd7, 0xf0, 0x01, 0xfa
DEFINE_GUIDSTRUCT("6f64adc1-8211-11e2-8c70-2c27d7f001fa", AUDIO_EFFECT_TYPE_BEAMFORMING);
#define AUDIO_EFFECT_TYPE_BEAMFORMING DEFINE_GUIDNAMED(AUDIO_EFFECT_TYPE_BEAMFORMING)

REMOÇÃO DE TOM CONSTANTE

#define STATIC_AUDIO_EFFECT_TYPE_CONSTANT_TONE_REMOVAL      0x6f64adc2, 0x8211, 0x11e2, 0x8c, 0x70, 0x2c, 0x27, 0xd7, 0xf0, 0x01, 0xfa
DEFINE_GUIDSTRUCT("6f64adc2-8211-11e2-8c70-2c27d7f001fa", AUDIO_EFFECT_TYPE_CONSTANT_TONE_REMOVAL);
#define AUDIO_EFFECT_TYPE_CONSTANT_TONE_REMOVAL DEFINE_GUIDNAMED(AUDIO_EFFECT_TYPE_CONSTANT_TONE_REMOVAL)

EQUALIZADOR

#define STATIC_AUDIO_EFFECT_TYPE_EQUALIZER                  0x6f64adc3, 0x8211, 0x11e2, 0x8c, 0x70, 0x2c, 0x27, 0xd7, 0xf0, 0x01, 0xfa
DEFINE_GUIDSTRUCT("6f64adc3-8211-11e2-8c70-2c27d7f001fa", AUDIO_EFFECT_TYPE_EQUALIZER);
#define AUDIO_EFFECT_TYPE_EQUALIZER DEFINE_GUIDNAMED(AUDIO_EFFECT_TYPE_EQUALIZER)

EQUALIZADOR DE VOLUME

#define STATIC_AUDIO_EFFECT_TYPE_LOUDNESS_EQUALIZER         0x6f64adc4, 0x8211, 0x11e2, 0x8c, 0x70, 0x2c, 0x27, 0xd7, 0xf0, 0x01, 0xfa
DEFINE_GUIDSTRUCT("6f64adc4-8211-11e2-8c70-2c27d7f001fa", AUDIO_EFFECT_TYPE_LOUDNESS_EQUALIZER);
#define AUDIO_EFFECT_TYPE_LOUDNESS_EQUALIZER DEFINE_GUIDNAMED(AUDIO_EFFECT_TYPE_LOUDNESS_EQUALIZER)

AUMENTO DE GRAVE

#define STATIC_AUDIO_EFFECT_TYPE_BASS_BOOST                 0x6f64adc5, 0x8211, 0x11e2, 0x8c, 0x70, 0x2c, 0x27, 0xd7, 0xf0, 0x01, 0xfa
DEFINE_GUIDSTRUCT("6f64adc5-8211-11e2-8c70-2c27d7f001fa", AUDIO_EFFECT_TYPE_BASS_BOOST);
#define AUDIO_EFFECT_TYPE_BASS_BOOST DEFINE_GUIDNAMED(AUDIO_EFFECT_TYPE_BASS_BOOST)

SURROUND VIRTUAL

#define STATIC_AUDIO_EFFECT_TYPE_VIRTUAL_SURROUND           0x6f64adc6, 0x8211, 0x11e2, 0x8c, 0x70, 0x2c, 0x27, 0xd7, 0xf0, 0x01, 0xfa
DEFINE_GUIDSTRUCT("6f64adc6-8211-11e2-8c70-2c27d7f001fa", AUDIO_EFFECT_TYPE_VIRTUAL_SURROUND);
#define AUDIO_EFFECT_TYPE_VIRTUAL_SURROUND DEFINE_GUIDNAMED(AUDIO_EFFECT_TYPE_VIRTUAL_SURROUND)

FONES DE OUVIDO VIRTUAIS

#define STATIC_AUDIO_EFFECT_TYPE_VIRTUAL_HEADPHONES         0x6f64adc7, 0x8211, 0x11e2, 0x8c, 0x70, 0x2c, 0x27, 0xd7, 0xf0, 0x01, 0xfa
DEFINE_GUIDSTRUCT("6f64adc7-8211-11e2-8c70-2c27d7f001fa", AUDIO_EFFECT_TYPE_VIRTUAL_HEADPHONES);
#define AUDIO_EFFECT_TYPE_VIRTUAL_HEADPHONES DEFINE_GUIDNAMED(AUDIO_EFFECT_TYPE_VIRTUAL_HEADPHONES)

CORREÇÃO DE SALA

#define STATIC_AUDIO_EFFECT_TYPE_ROOM_CORRECTION            0x6f64adc9, 0x8211, 0x11e2, 0x8c, 0x70, 0x2c, 0x27, 0xd7, 0xf0, 0x01, 0xfa
DEFINE_GUIDSTRUCT("6f64adc9-8211-11e2-8c70-2c27d7f001fa", AUDIO_EFFECT_TYPE_ROOM_CORRECTION);
#define AUDIO_EFFECT_TYPE_ROOM_CORRECTION DEFINE_GUIDNAMED(AUDIO_EFFECT_TYPE_ROOM_CORRECTION)

GERENCIAMENTO DE BASS

#define STATIC_AUDIO_EFFECT_TYPE_BASS_MANAGEMENT            0x6f64adca, 0x8211, 0x11e2, 0x8c, 0x70, 0x2c, 0x27, 0xd7, 0xf0, 0x01, 0xfa
DEFINE_GUIDSTRUCT("6f64adca-8211-11e2-8c70-2c27d7f001fa", AUDIO_EFFECT_TYPE_BASS_MANAGEMENT);
#define AUDIO_EFFECT_TYPE_BASS_MANAGEMENT DEFINE_GUIDNAMED(AUDIO_EFFECT_TYPE_BASS_MANAGEMENT)

EFEITOS AMBIENTAIS

#define STATIC_AUDIO_EFFECT_TYPE_ENVIRONMENTAL_EFFECTS      0x6f64adcb, 0x8211, 0x11e2, 0x8c, 0x70, 0x2c, 0x27, 0xd7, 0xf0, 0x01, 0xfa
DEFINE_GUIDSTRUCT("6f64adcb-8211-11e2-8c70-2c27d7f001fa", AUDIO_EFFECT_TYPE_ENVIRONMENTAL_EFFECTS);
#define AUDIO_EFFECT_TYPE_ENVIRONMENTAL_EFFECTS DEFINE_GUIDNAMED(AUDIO_EFFECT_TYPE_ENVIRONMENTAL_EFFECTS)

PROTEÇÃO DE ALTO-FALANTE

#define STATIC_AUDIO_EFFECT_TYPE_SPEAKER_PROTECTION         0x6f64adcc, 0x8211, 0x11e2, 0x8c, 0x70, 0x2c, 0x27, 0xd7, 0xf0, 0x01, 0xfa
DEFINE_GUIDSTRUCT("6f64adcc-8211-11e2-8c70-2c27d7f001fa", AUDIO_EFFECT_TYPE_SPEAKER_PROTECTION);
#define AUDIO_EFFECT_TYPE_SPEAKER_PROTECTION DEFINE_GUIDNAMED(AUDIO_EFFECT_TYPE_SPEAKER_PROTECTION)

COMPENSAÇÃO DE ALTO-FALANTE

#define STATIC_AUDIO_EFFECT_TYPE_SPEAKER_COMPENSATION       0x6f64adcd, 0x8211, 0x11e2, 0x8c, 0x70, 0x2c, 0x27, 0xd7, 0xf0, 0x01, 0xfa
DEFINE_GUIDSTRUCT("6f64adcd-8211-11e2-8c70-2c27d7f001fa", AUDIO_EFFECT_TYPE_SPEAKER_COMPENSATION);
#define AUDIO_EFFECT_TYPE_SPEAKER_COMPENSATION DEFINE_GUIDNAMED(AUDIO_EFFECT_TYPE_SPEAKER_COMPENSATION)

COMPRESSÃO DE FAIXA DINÂMICA

#define STATIC_AUDIO_EFFECT_TYPE_DYNAMIC_RANGE_COMPRESSION  0x6f64adce, 0x8211, 0x11e2, 0x8c, 0x70, 0x2c, 0x27, 0xd7, 0xf0, 0x01, 0xfa
DEFINE_GUIDSTRUCT("6f64adce-8211-11e2-8c70-2c27d7f001fa", AUDIO_EFFECT_TYPE_DYNAMIC_RANGE_COMPRESSION);
#define AUDIO_EFFECT_TYPE_DYNAMIC_RANGE_COMPRESSION DEFINE_GUIDNAMED(AUDIO_EFFECT_TYPE_DYNAMIC_RANGE_COMPRESSION)

Supressão de ruído profundo

A partir do Windows 11, versão 24 H2, uma nova GUID está disponível para habilitar a Supressão de ruído profundo.

Há dois identificadores para efeitos de supressão de ruído. Há um identificador existente para Supressão de ruído e o novo identificador que é adicionado para a Supressão de ruído profundo. O primeiro é para supressão de ruído "baixo" (simples), enquanto o segundo é "alto" e é implementado como uma solução de IA/aprendizado de máquina. Assim como acontece com todos os efeitos de áudio disponíveis, é o aplicativo que escolhe qual usar, dependendo das suas necessidades e cenários específicos.

#define STATIC_AUDIO_EFFECT_TYPE_DEEP_NOISE_SUPPRESSION 0x6f64add0, 0x8211, 0x11e2, 0x8c, 0x70, 0x2c, 0x27, 0xd7, 0xf0, 0x01, 0xfa

DEFINE_GUIDSTRUCT("6f64add0-8211-11e2-8c70-2c27d7f001fa", AUDIO_EFFECT_TYPE_DEEP_NOISE_SUPPRESSION);

#define AUDIO_EFFECT_TYPE_DEEP_NOISE_SUPPRESSION DEFINE_GUIDNAMED(AUDIO_EFFECT_TYPE_DEEP_NOISE_SUPPRESSION)

Os efeitos de áudio, como Supressão de ruído profundo, são implementados como um Objeto de processamento de áudio (APO). Para obter mais informações sobre APOs, veja Objetos de processamento de áudio do Windows.

O APO precisa implementar a interface IAudioSystemEffects3 se for expor efeitos cujo estado pode ser ativado ou desativado dinamicamente. Para saber mais informações, consulte Interface IAudioSystemEffects3 (audioengineextensionapo.h).