Observação
O acesso a essa página exige autorização. Você pode tentar entrar ou alterar diretórios.
O acesso a essa página exige autorização. Você pode tentar alterar os diretórios.
Os drivers declaram os modos de processamento de sinal de áudio com suporte para cada dispositivo.
Modos de processamento de sinal disponíveis
As categorias de áudio (selecionadas por aplicativos) são associadas a modos de áudio (definidos por drivers). O Windows define sete modos de processamento de sinal de áudio. OEMs e IHVs podem determinar quais modos eles desejam implementar. É recomendável que os IHVs/OEMs utilizem os novos modos para adicionar efeitos de áudio que otimizam o sinal de áudio para fornecer a melhor experiência do usuário. Os modos são resumidos na tabela mostrada abaixo.
| Modo | Renderização/captura | Descrição |
|---|---|---|
| Cru | Ambos | O modo bruto especifica que não deve haver nenhum processamento de sinal aplicado ao fluxo. Um aplicativo pode solicitar um fluxo bruto 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) |
| Discurso* | Captura | Captura de voz humana (por exemplo, entrada para assistente pessoal) |
| Comunicações* | Ambos | Renderização e captura VoIP (por exemplo, Teams, Skype, Lync) |
| Notificação* | Renderizar | Toques, alarmes, alertas etc. |
* Novo no Windows 10.
Importante
Os fluxos de captura brutos não devem incluir nenhum processamento variável ou adaptável, como controle de eco, controle de ganho automático ou supressão de ruído. O único processamento de áudio permitido na captura bruta é a equalização linear para nivelar a resposta de frequência.
Requisitos do driver do modo de processamento de sinal
Os drivers de dispositivo de áudio precisam dar suporte pelo menos ao modo Bruto ou Padrão . O suporte a modos adicionais é opcional.
É possível que nem todos os modos estejam disponíveis para um sistema específico. Os drivers definem quais modos de processamento de sinal são suportados (ou seja, quais tipos de APOs são instalados como parte do driver) e informam o sistema operacional da maneira adequada. Se um modo específico não for suportado pelo driver, o Windows usará o próximo modo mais adequado.
O diagrama a seguir mostra um sistema que dá suporte a vários modos:
Categorias de Fluxo 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 após a criação do fluxo de áudio. No Windows, 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) |
| Chat do jogo | Comunicação no jogo entre usuários (nova categoria no Windows 10) |
| Fala | Entrada de fala (por exemplo, assistente pessoal) e saída (por exemplo, aplicativos de navegação) (nova categoria no Windows 10) |
| Comunicações | VOIP, chat em tempo real |
| Alertas | Alarme, toque, notificações |
| Efeitos sonoros | Bipes, toques, etc. |
| Mídia do jogo | Na música do jogo |
| Efeitos do jogo | Bolas saltando, sons do motor do carro, balas, etc. |
| Outros | Fluxos não categorizados |
Conforme mencionado anteriormente, as categorias de áudio (selecionadas por aplicativos) são mapeadas para modos de áudio (definidos por drivers). Os aplicativos podem marcar cada um de seus fluxos com uma das 10 categorias de áudio.
Os aplicativos não têm a opção de alterar o mapeamento entre uma categoria de áudio e um modo de processamento de sinal. Os aplicativos não têm reconhecimento do conceito de um "modo de processamento de áudio". Eles não podem descobrir qual modo é usado para cada um de seus fluxos.
Exemplo de código WASAPI
O código WASAPI a seguir do exemplo WASAPIAudio mostra como definir diferentes 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 ) ) { … }
…
Modos e efeitos de processamento de sinal
Os OEMs definem quais efeitos serão usados para cada modo. O Windows define uma lista de dezessete tipos de efeitos de áudio.
Para obter informações sobre como associar APOs a modos, consulte Implementando objetos de processamento de áudio.
É possível que os aplicativos perguntem quais efeitos seriam aplicados a um fluxo específico para processamento RAW ou não RAW. Os aplicativos também podem solicitar que sejam notificados quando os efeitos ou o estado de processamento bruto forem alterados. O aplicativo pode usar essas informações para determinar se um efeito de streaming específico, como "cancelamento de eco acústico", está disponível ou se nenhum efeito está em uso. Se nenhum efeito estiver em uso, o aplicativo poderá determinar quanto processamento de áudio deve ser adicionado.
Se o System.Devices.AudioDevice.RawProcessingSupported for verdadeiro, os aplicativos também terão a opção de definir um sinalizador "use RAW" em determinados fluxos de áudio. Se System.Devices.AudioDevice.RawProcessingSupported for false, os aplicativos não poderão definir o sinalizador "usar RAW".
Os aplicativos não têm visibilidade de quantos modos estão presentes, com exceção de RAW/non-RAW.
Os aplicativos devem solicitar o processamento de efeito de áudio ideal, independentemente da configuração de hardware de áudio. Por exemplo, marcar um fluxo como Comunicações permitirá que o Windows saiba para pausar a música em segundo plano.
Para obter mais informações sobre as categorias de fluxo de áudio estático, consulte a enumeração AudioCategory e a propriedade MediaElement.AudioCategory.
CLSIDs para efeitos do sistema
FX_DISCOVER_EFFECTS_APO_CLSID
Esse é o CLSID para o MsApoFxProxy.dll "efeito proxy", que consulta o driver para obter a lista de efeitos ativos;
FX_DISCOVER_EFFECTS_APO_CLSID = "{889C03C8-ABAD-4004-BF0A-BC7BB825E166}"
KSATTRIBUTEID_AUDIOSIGNALPROCESSING_MODE
KSATTRIBUTEID_AUDIOSIGNALPROCESSING_MODE é um identificador do Kernel Streaming que identifica que o atributo específico que está sendo referenciado é o atributo de 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)
KSATTRIBUTEID_AUDIOSIGNALPROCESSING_MODE é usado por drivers com reconhecimento de modo com uma estrutura KSDATARANGE que contém um KSATTRIBUTE_LIST. Essa lista tem um único elemento, que é um KSATTRIBUTE. O membro attribute da estrutura de KSATTRIBUTE está definido como KSATTRIBUTEID_AUDIOSIGNALPROCESSING_MODE.
Efeitos de áudio
Os efeitos de áudio a seguir 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 que ele já estiver presente no fluxo de áudio. |
| Supressão de ruído (NS) | A Supressão de Ruído Simples (NS) suprime ruídos como zumbido e chiado, quando estão presentes no fluxo de áudio. |
| Supressão de ruído profundo | A Supressão de Ruído Profundo usa técnicas avançadas de IA/machine learning para suprimir o ruído especialmente em chamadas de voz. |
| Controle de Ganho Automático (AGC) | Controle de Ganho Automático (AGC) – foi projetado para fornecer uma amplitude de sinal controlada em sua saída, apesar da variação da amplitude no sinal de entrada. O nível médio ou de sinal de saída 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. |
| BF (Formação de Feixe) | A técnica de formação de feixe (BF) é uma técnica de processamento de sinal usada para transmissão ou recepção de sinal direcional. Isso é feito combinando elementos em uma matriz em fases de modo que sinais em ângulos específicos experimentam interferência construtiva, enquanto outros experimentam interferência destrutiva. A melhora em comparação com a recepção/transmissão omnidirecional é conhecida como ganho (ou perda) de recepção/transmissão. |
| Remoção de tom constante | A remoção de tons constantes é usada para atenuar o ruído constante de fundo, como chiado de fita, ventiladores elétricos ou zumbidos. |
| Equalizador | O efeito Equalizer é usado para alterar a resposta de frequência de um sistema de áudio usando filtros lineares. Isso permite que diferentes partes do sinal sejam aumentadas, semelhante a uma configuração de agudos ou graves. |
| Equalizador de voz alta | O efeito de equalizador de intensidade reduz as diferenças de volume percebidas nivelando a saída de áudio para que sons mais altos e silenciosos fiquem mais próximos de um nível médio de ruído. |
| Aumento de grave | Em sistemas como laptops que têm alto-falantes com capacidade de baixo limitada, às vezes é possível aumentar a qualidade percebida do áudio aumentando a resposta de baixo no intervalo de frequência que é suportado pelo alto-falante. O aumento do baixo melhora o som em dispositivos móveis com alto-falantes muito pequenos aumentando o ganho na faixa de baixo médio. |
| Surround virtual | O surround virtual usa métodos digitais simples para combinar um sinal multicanal em dois canais. Isso é feito de uma maneira que permite 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 surround virtual é ideal para um sistema com um hardware de som de dois canais e um receptor que tem 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 distinguem o som de frente para trás, bem como de um lado para o outro. Isso é feito transmitindo indicações espaciais que ajudam o cérebro a localizar os sons e integrá-los a um campo de som. Isso tem o efeito de fazer o som parecer que transcende os fones de ouvido, criando uma experiência de escuta "fora da cabeça". Esse efeito é obtido usando uma tecnologia avançada chamada HRTF (Funções de Transferência Relacionadas à Cabeça). O HRTF gera indicações acústicas baseadas na forma da cabeça humana. Essas indicaçõ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 está ao redor do ouvinte. |
| Preenchimento do alto-falante | A maioria das músicas é produzida com apenas dois canais e, portanto, não é otimizada para o equipamento de áudio multicanal do típico entusiasta de áudio ou vídeo. Portanto, ter a música saindo apenas dos alto-falantes frontais esquerdo e direito não é a experiência de áudio ideal. O preenchimento do alto-falante simula uma configuração de alto-falante multicanal. Ele permite que músicas que de outra forma seriam ouvidas em apenas dois alto-falantes sejam tocadas em todos os alto-falantes da sala, melhorando a sensação espacial. |
| Correção de sala | A correção de sala otimiza a experiência de escuta para um local específico na sala, por exemplo, a almofada central do sofá, calculando automaticamente a combinação ideal de atraso de áudio, resposta de frequência e ajustes de amplificação. O recurso de correção de sala alinha melhor o som à imagem na tela de vídeo e também é útil nos casos em que as caixas de som do computador são colocadas em locais não padrão. O processamento de correção de sala é uma melhoria em relação a recursos semelhantes em receptores de alta qualidade, pois considera melhor a maneira como o ouvido humano processa o som. A calibragem é executada com a ajuda de um microfone e o procedimento pode ser usado com sistemas estéreo e multicanais. O usuário coloca o microfone no local onde pretende sentar e, em seguida, ativa um assistente que mede a resposta da sala. O assistente reproduz, por sua vez, um conjunto de tons especialmente projetados 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 avante e gerenciamento de graves reverso. Gerenciamento avançado de graves filtra o conteúdo de baixa frequência do fluxo de dados de áudio. O algoritmo de gerenciamento avançado de graves redireciona a saída filtrada para o subwoofer ou para os canais de caixas de som frontal esquerdo e frontal direito, dependendo dos canais que podem lidar com frequências graves. Essa decisão se baseia na configuração do sinalizador LRBig. Para definir o sinalizador LRBig, o usuário usa o applet Som no Painel de Controle para acessar a caixa de diálogo Configurações de Gerenciamento de Graves. O usuário seleciona uma caixa de seleção para indicar, por exemplo, que os alto-falantes frontais direito e esquerdo têm alcance total, e essa ação define o sinalizador LRBig. Para limpar esse sinalizador, desmarque a caixa de seleção. O gerenciamento de baixo reverso distribui o sinal do canal subwoofer para os outros canais de saída. O sinal é direcionado para todos os canais ou para os canais frontal-esquerdo e frontal-direito, dependendo da configuração do sinalizador LRBig. Esse processo usa uma redução substancial de ganho ao misturar o sinal de subwoofer em outros canais. O modo de gerenciamento de graves usado depende da disponibilidade de um subwoofer e da capacidade de tratamento de baixo dos alto-falantes principais. No sistema Windows, o usuário fornece essas informações por meio do applet Som no Painel de Controle. |
| Efeitos ambientais | Os efeitos ambientais funcionam para aumentar a realidade da reprodução de áudio simulando com mais precisão ambientes de áudio do mundo real. Há vários ambientes diferentes que você pode selecionar, por exemplo, "estádio" simula a acústica de um estádio esportivo. |
| Proteção do Locutor | A finalidade da proteção do locutor é suprimir frequências ressonantes que fariam com que os alto-falantes causassem danos físicos a qualquer um dos componentes do sistema dos computadores. Por exemplo, alguns discos rígidos físicos podem ser danificados tocando um som alto na frequência certa. Em segundo lugar, a proteção do alto-falante funciona para minimizar os danos aos alto-falantes, atenuando o sinal, quando ele excede determinados valores. |
| Compensação do locutor | Alguns alto-falantes são melhores em reproduzir som do que outros. Por exemplo, um alto-falante específico pode atenuar sons abaixo de 100 Hz. Às vezes, os drivers de áudio e as soluções DSP de firmware conhecem as características de desempenho específicas dos alto-falantes para os quais eles estão transmitindo o som, e podem adicionar processamento projetado para compensar as limitações desses alto-falantes. Por exemplo, pode ser criado um efeito de ponto de extremidade (EFX) que aplica ganho a frequências abaixo de 100 Hz. Esse efeito, quando combinado com a atenuação no alto-falante físico, resulta em fidelidade de áudio aprimorada. |
| Compactação de intervalo dinâmico | A compactação de intervalo dinâmico amplifica sons silenciosos restringindo ou "compactando" o intervalo dinâmico de um sinal de áudio. A compactação de áudio amplifica sons silenciosos que estão abaixo de um determinado limite, enquanto os sons altos permanecem não afetados. |
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)
formato 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 DE 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 DE GANHO AUTOMÁTICO
#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 RUÍDO
#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 BAIXO
#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)
VIRTUAL SURROUND
#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 GRAVES
#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 DO LOCUTOR
#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 DO LOCUTOR
#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 24H2, um novo 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 supressão de ruído profundo. O primeiro é para supressão de ruído 'baixo' (simples), enquanto o último é 'alto' e é implementado como uma solução de IA/machine learning. Assim como acontece com todos os efeitos de áudio disponíveis, cabe ao aplicativo escolher qual deles eles podem querer usar, dependendo de 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)
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, consulte Objetos de Processamento de Áudio do Windows.
O APO precisa implementar a IAudioSystemEffects3 interface se ela vai expor efeitos cujo estado pode ser ativado ou desativado dinamicamente. Para obter mais informações, consulte a interface IAudioSystemEffects3 (audioengineextensionapo.h).