Modos de procesamiento de señal de audio
Los controladores declaran los modos de procesamiento de señal de audio admitidos para cada dispositivo.
Modos de procesamiento de señal disponibles
Las categorías de audio (seleccionadas por las aplicaciones) se asignan a los modos de audio (definidos por los controladores). Windows tiene definidos siete modos de procesamiento de señal de audio. Los OEM y IHV pueden determinar qué modos quieren implementar. Se recomienda que los IHV/OEM usen los nuevos modos para agregar efectos de audio que optimicen la señal de audio para proporcionar la mejor experiencia del usuario. Los modos vienen resumidos en la tabla que aparece a continuación.
Mode | Renderización/captura | Descripción |
---|---|---|
Notificación sin procesar | Ambos | El modo sin procesar indica que no debe haber ningún procesamiento de señal aplicado a la transmisión. Una aplicación puede solicitar una transmisión sin procesar que esté completamente intacta y realizar su propio procesamiento de señal. |
Valor predeterminado | Ambos | Este modo define el procesamiento de audio predeterminado. |
Películas* | Representación | Reproducción de audio de película |
Multimedia* | Ambos | Reproducción de audio de música (valor predeterminado en la mayoría de las transmisiones multimedia) |
Voz* | Capture | Captura de voz humana (por ejemplo, la entrada al asistente personal) |
Comunicaciones* | Ambos | Renderización y captura de VOIP (por ejemplo, Teams, Skype, Lync) |
Notificación* | Representación | Tonos, alarmas, alertas, etc. |
* Novedades de Windows 10.
Requisitos del controlador del modo de procesamiento de señal
Los controladores de dispositivos de audio deben admitir al menos el modo Sin procesar o Predeterminado. Es posible que se acepten modos adicionales.
Es posible que no todos los modos estén disponibles para un sistema determinado. Los controladores definen qué modos de procesamiento de señal admiten (es decir, qué tipos de APO se instalan como parte del controlador) e informan al sistema operativo en consecuencia. Si el controlador no admite un modo determinado, Windows usará el siguiente modo de coincidencia más adecuado.
En el diagrama siguiente se muestra un sistema que admite varios modos:
Categorías de secuencias de audio de Windows
Para informar al sistema sobre el uso de una transmisión de audio, las aplicaciones tienen la opción de etiquetarla con una categoría de transmisión de audio específica. Las aplicaciones pueden establecer la categoría de audio mediante cualquiera de las API de audio, justo después de crear la secuencia de audio. En Windows hay nueve categorías de secuencias de audio.
Category | Descripción |
---|---|
Película | Películas, vídeo con cuadro de diálogo (reemplaza a ForegroundOnlyMedia) |
Media | Categoría predeterminada para reproducción multimedia (reemplaza a BackgroundCapableMedia) |
Chat de juego | Comunicación en el juego entre usuarios (nueva categoría en Windows 10) |
Voz | Entrada (por ejemplo, asistente personal) y salida de voz (por ejemplo, aplicaciones de navegación) (nueva categoría en Windows 10) |
Comunicaciones | VOIP, chat en tiempo real |
Alertas | Alarma, tono de llamada, notificaciones |
Efectos de Sonido | Pitidos, timbres, etc. |
Elementos multimedia de juegos | Música del juego |
Efectos de juego | Bolas rebotando, ruido de motor de coche, balas, etc. |
Otros | Secuencias sin clasificar |
Como se mencionó anteriormente, las categorías de audio (seleccionadas por las aplicaciones) se asignan a los modos de audio (definidos por los controladores). Las aplicaciones pueden etiquetar cada una de sus secuencias con una de las 10 categorías de audio.
Las aplicaciones no tienen la opción de cambiar la asignación entre una categoría de audio y un modo de procesamiento de señal. Las aplicaciones no tienen conocimiento del concepto de "modo de procesamiento de audio". No pueden averiguar qué modo se usa para cada una de sus secuencias.
Ejemplo de código WASAPI
El siguiente código WASAPI del ejemplo WASAPIAudio muestra cómo establecer diferentes categorías de audio.
// 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 y efectos de procesamiento de señal
Los OEM definen qué efectos se usarán para cada modo. Windows define una lista de diecisiete tipos de efectos de audio.
Para obtener información sobre cómo asociar los APO con modos, consulte Implementación de objetos de procesamiento de audio.
Es posible que las aplicaciones pregunten qué efectos se aplicarían a una secuencia específica para el procesamiento RAW o no RAW. Las aplicaciones también pueden solicitar que se notifique cuando cambien los efectos o el estado de procesamiento sin procesar. La aplicación puede usar esta información para determinar si hay disponible una categoría de streaming específica, como la comunicación, o si solo está en uso el modo RAW. Si solo está disponible el modo RAW, la aplicación puede determinar la cantidad de procesamiento de audio que se va a agregar.
Si System.Devices.AudioDevice.RawProcessingSupported es true, las aplicaciones también tienen la opción de establecer una marca "use RAW" en determinadas secuencias. Si System.Devices.AudioDevice.RawProcessingSupported es false, las aplicaciones no pueden establecer la marca "use RAW".
Las aplicaciones no tienen visibilidad sobre cuántos modos están presentes, con la excepción de RAW/no RAW.
Las aplicaciones deben solicitar el procesamiento óptimo del efecto de audio, independientemente de la configuración del hardware de audio. Por ejemplo, al etiquetar una secuencia como Comunicaciones, Windows sabrá que tiene que pausar la música de fondo.
Para obtener más información sobre las categorías de secuencias de audio estáticas, consulte Enumeración AudioCategory y la propiedad MediaElement.AudioCategory.
CLSID para efectos del sistema
FX_DISCOVER_EFFECTS_APO_CLSID
Este es el CLSID del "efecto proxy" MsApoFxProxy.dll, que consulta al controlador para obtener la lista de efectos activos.
FX_DISCOVER_EFFECTS_APO_CLSID = "{889C03C8-ABAD-4004-BF0A-BC7BB825E166}"
KSATTRIBUTEID_AUDIOSIGNALPROCESSING_MODE
KSATTRIBUTEID_AUDIOSIGNALPROCESSING_MODE es un identificador de streaming de Kernel que identifica que el atributo específico al que se hace referencia es el atributo del modo de procesamiento de señal.
Las instrucciones #define que se muestran aquí están disponibles en el archivo de encabezado 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 se usa para los controladores compatibles con el modo con una estructura KSDATARANGE que contiene KSATTRIBUTE_LIST. Esta lista tiene un único elemento, que es KSATTRIBUTE. El miembro Attribute de la estructura KSATTRIBUTE se establece en KSATTRIBUTEID_AUDIOSIGNALPROCESSING_MODE.
Efectos de audio
Los siguientes efectos de audio están disponibles para su uso en Windows 10.
Efecto de audio | Descripción |
---|---|
Cancelación de eco acústico (AEC) | La cancelación de eco acústico (AEC) mejora la calidad del audio quitando el eco, después de que ya esté presente en la secuencia de audio. |
Supresión de ruido (NS) | La supresión de ruido simple (NS) suprime el ruido, como el zumbido, cuando está presente en la secuencia de audio. |
Supresión de ruido profundo | La supresión de ruido profundo usa técnicas avanzadas de inteligencia artificial y aprendizaje automático para suprimir el ruido, especialmente en las llamadas de voz. |
Control automático de ganancia (AGC) | Control automático de ganancia (AGC): está diseñado para proporcionar una amplitud de señal controlada en su salida, a pesar de la variación de la amplitud en la señal de entrada. El nivel medio o máximo de señal de salida se usa para ajustar dinámicamente la ganancia de entrada a salida a un valor adecuado, lo que permite un nivel estable de salida, incluso con una amplia gama de niveles de señal de entrada. |
Formación de haces (BF) | La formación de haces (BF) es una técnica de procesamiento de señal utilizada para la transmisión o recepción de señales direccionales. Esto se logra mediante la combinación de elementos de una matriz por fases de tal manera que las señales en ángulos concretos experimentan interferencias constructivas, mientras que otras experimentan interferencias destructivas. La mejora en comparación con la recepción o transmisión omnidireccional se conoce como la ganancia de recepción/transmisión (o pérdida). |
Eliminación de tono constante | La eliminación de tono constante se usa para atenuar el ruido de fondo constante, como silbidos de cinta, ventiladores eléctricos o zumbidos. |
Ecualizador | El efecto de ecualizador se usa para modificar la respuesta de frecuencia de un sistema de audio mediante filtros lineales. Esto permite aumentar diferentes partes de la señal, de forma similar al ajuste de agudos o graves. |
Ecualizador de ruido | El efecto de ecualizador de ruido reduce las diferencias de volumen percibidas al nivelar la salida de audio para que los sonidos más fuertes y silenciosos estén más cerca de un nivel medio de ruido. |
Aumento de graves | En sistemas como los portátiles, que tienen altavoces con una capacidad de graves limitada, a veces es posible aumentar la calidad percibida del audio aumentando la respuesta de los graves en el rango de frecuencia compatible con el altavoz. El aumento de graves mejora el sonido en dispositivos móviles con altavoces muy pequeños aumentando la ganancia en la gama de medios-graves. |
Sonido envolvente virtual | El envolvente virtual usa métodos digitales simples para combinar una señal multicanal en dos canales. Esto se hace de una manera que permite restaurar la señal transformada a la señal multicanal original, usando los descodificadores Pro Logic que están disponibles en la mayoría de los receptores de audio modernos. El envolvente virtual es ideal para un sistema con un hardware de sonido de dos canales y un receptor que tiene un mecanismo de mejora de sonido envolvente. |
Auriculares virtuales | El sonido envolvente virtualizado permite a los usuarios que llevan auriculares distinguir el sonido tanto de delante hacia atrás como de lado a lado. Esto se hace transmitiendo indicaciones espaciales que ayudan al cerebro a localizar los sonidos e integrarlos en un campo de sonido. Esto hace que el sonido parezca trascender los auriculares, creando una experiencia auditiva "fuera de la cabeza". Este efecto se logra mediante una tecnología avanzada denominada Funciones de transferencia relacionadas con la cabeza (HRTF). HRTF genera indicaciones acústicas basadas en la forma de la cabeza humana. Estas indicaciones no solo ayudan a los oyentes a localizar la dirección y la fuente del sonido, sino que también realzan el tipo de entorno acústico que rodea al oyente. |
Relleno de altavoz | La mayoría de la música se produce con solo dos canales y, por tanto, no está optimizada para el equipo de audio multicanal del aficionado típico al audio o al vídeo. Por eso, que la música emane solo de los altavoces frontales izquierdo y derecho no es una experiencia de audio ideal. El relleno del altavoz simula una configuración de altavoz multicanal. Permite reproducir en todos los altavoces de la sala música que, de otro modo, solo se escucharía en dos altavoces, lo que aumenta la sensación espacial. |
Corrección de sala | La corrección de sala optimiza la experiencia de escucha para un lugar concreto de la sala, por ejemplo, el cojín central del sofá, calculando automáticamente la combinación óptima de ajustes de retardo, respuesta en frecuencia y ganancia. La función de corrección de la sala ajusta mejor el sonido a la imagen de la pantalla de vídeo y también es útil en los casos en que los altavoces de sobremesa se colocan en ubicaciones no estándar. el procesamiento de corrección de la sala es una mejora con respecto a funciones similares de los receptores de gama alta, ya que tiene más en cuenta la forma en que el oído humano procesa el sonido. La calibración se realiza con la ayuda de un micrófono y el procedimiento se puede usar con sistemas estéreo y multicanal. El usuario coloca el micrófono donde piensa sentarse y, a continuación, activa un asistente que mide la respuesta de la sala. El asistente reproduce una serie de tonos especialmente diseñados desde cada altavoz sucesivamente y mide la distancia, la respuesta en frecuencia y la ganancia general de cada altavoz desde la ubicación del micrófono. |
Administración de graves | Hay dos modos de gestión de graves: gestión de graves directa y gestión de graves inversa. La gestión de reenvío de graves filtra el contenido de baja frecuencia de la secuencia de datos de audio. El algoritmo de gestión de reenvío de graves redirige la salida filtrada al subwoofer o a los canales de altavoces frontal izquierdo y frontal derecho, en función de los canales que puedan manejar frecuencias graves profundas. Esta decisión se basa en la configuración de la marca LRBig. Para establecer la marca LRBig, el usuario usa el applet Sound en Panel de control para acceder al cuadro de diálogo Configuración de administración de graves. El usuario selecciona una casilla para indicar, por ejemplo, que los altavoces frontal derecho y frontal izquierdo son de rango completo y esta acción activa la marca LRBig. Para borrar esta marca, seleccione la casilla. La gestión inversa de graves distribuye la señal del canal del subwoofer a los demás canales de salida. La señal se dirige a todos los canales o a los canales frontal izquierdo y frontal derecho, dependiendo de la configuración de la marca LRBig. Este proceso utiliza una reducción sustancial de la ganancia al mezclar la señal de subwoofer en los otros canales. El modo de gestión de graves utilizado depende de la disponibilidad de un subwoofer y de la capacidad de gestión de graves de los altavoces principales. En Windows, el usuario proporciona esta información a través del applet Sound en Panel de control. |
Efectos ambientales | Los efectos ambientales aumentan la realidad de la reproducción de audio al simular con mayor precisión los entornos de audio del mundo real. Hay una serie de entornos diferentes que puede seleccionar, por ejemplo, "estadio" simula la acústica de un estadio deportivo. |
Protección de altavoces | El propósito de la protección de los altavoces es suprimir las frecuencias resonantes que podrían hacer que los altavoces causaran daños físicos a cualquiera de los componentes del sistema del PC. Por ejemplo, algunos discos duros físicos pueden dañarse al reproducir un sonido fuerte con la frecuencia adecuada. En segundo lugar, la protección de altavoces funciona para minimizar los daños a los altavoces, atenuando la señal, cuando supera ciertos valores. |
Compensación del altavoz | Algunos altavoces son mejores para reproducir el sonido que otros. Por ejemplo, un altavoz determinado puede atenuar los sonidos por debajo de 100 Hz. A veces, los controladores de audio y las soluciones DSP de firmware tienen conocimiento sobre las características de rendimiento específicas de los altavoces a los que están reproduciendo y pueden agregar procesamiento diseñado para compensar las limitaciones de los altavoces. Por ejemplo, se podría crear un efecto de punto de conexión (EFX) que aplique ganancia a frecuencias inferiores a 100 Hz. Este efecto, cuando se combina con la atenuación en el altavoz físico, da como resultado una fidelidad de audio mejorada. |
Compresión de intervalo dinámico | La compresión de rango dinámico amplía los sonidos silenciosos mediante el estrechamiento o la "compresión" del intervalo dinámico de una señal de audio. La compresión de audio amplía los sonidos silenciosos que están por debajo de un umbral determinado, mientras que los sonidos fuertes permanecen sin verse afectados. |
Las instrucciones #define que se muestran aquí están disponibles en el archivo de encabezado 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)
CANCELACIÓN 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)
SUPRESIÓN DE RUIDO
#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)
CONTROL AUTOMÁTICO DE GANANCIA
#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)
FORMACIÓN DE HACES
#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)
ELIMINACIÓN DE TONO 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)
ECUALIZADOR
#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)
ECUALIZADOR DE RUIDO
#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 GRAVES
#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)
SONIDO ENVOLVENTE 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)
AURICULARES VIRTUALES
#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)
CORRECCIÓN DE LA 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)
BASS MANAGEMENT
#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)
EFECTOS AMBIENTALES
#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)
PROTECCIÓN DE ALTAVOCES
#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)
COMPENSACIÓN DEL ALTAVOZ
#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)
COMPRESIÓN DE INTERVALO DINÁMICO
#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)
Supresión de ruido profundo
A partir de Windows 11, versión 24H2, hay disponible un nuevo GUID para habilitar la supresión de ruido profundo.
Hay dos identificadores para los efectos de supresión de ruido. Hay un identificador existente para la supresión de ruido y el nuevo identificador que se agrega para la supresión de ruido profundo. El primero es para la supresión de ruido "bajo" (simple), mientras que el segundo es "alto" y se implementa como una solución de IA/aprendizaje automático. Como ocurre con todos los efectos de audio disponibles, depende de la aplicación elegir cuál quiere utilizar, en función de sus necesidades y escenarios particulares.
#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)
Los efectos de audio, como la supresión de ruido profundo, se implementan como un objeto de procesamiento de audio - APO. Para obtener más información, consulte Objetos de procesamiento de audio de Windows.
El APO debe implementar la interfaz IAudioSystemEffects3
si va a exponer efectos cuyo estado puede activarse o desactivarse dinámicamente. Para obtener más información, consulte Interfaz IAudioSystemEffects3 (audioengineextensionapo.h).