Modalità di elaborazione del segnale audio

I driver dichiarano le modalità di elaborazione dei segnali audio supportate per ogni dispositivo.

Modalità di elaborazione dei segnali disponibili

Le categorie audio (selezionate dalle applicazioni) vengono mappate alle modalità audio (definite dai driver). Windows definisce sette modalità di elaborazione dei segnali audio. Gli OEM e gli IHD possono determinare le modalità da implementare. È consigliabile che IHVs/OEM usino le nuove modalità per aggiungere effetti audio che ottimizzano il segnale audio per offrire la migliore esperienza utente. Le modalità sono riepilogate nella tabella illustrata di seguito.

Modalità Rendering/acquisizione Descrizione
Raw Entrambi La modalità non elaborata specifica che non deve essere applicata alcuna elaborazione del segnale al flusso. Un'applicazione può richiedere un flusso non elaborato completamente intatto ed eseguire la propria elaborazione del segnale.
Default Entrambi Questa modalità definisce l'elaborazione audio predefinita.
Film* Render Riproduzione audio filmato
Media* Entrambi Musica riproduzione audio (impostazione predefinita per la maggior parte dei flussi multimediali)
Discorso* Capture Acquisizione vocale umana (ad esempio, input per assistente personale)
Comunicazioni* Entrambi Rendering e acquisizione VOIP (ad esempio Teams, Skype, Lync)
Notifica* Render Suonerie, allarmi, avvisi e così via.

* Novità in Windows 10.

Requisiti del driver della modalità di elaborazione dei segnali

I driver di dispositivo audio devono supportare almeno la modalità Raw o Default . Il supporto di modalità aggiuntive è facoltativo.

È possibile che non tutte le modalità siano disponibili per un particolare sistema. I driver definiscono le modalità di elaborazione dei segnali che supportano (ad esempio, quali tipi di API vengono installati come parte del driver) e informano il sistema operativo di conseguenza. Se una particolare modalità non è supportata dal driver, Windows userà la modalità di corrispondenza migliore successiva.

Il diagramma seguente illustra un sistema che supporta più modalità:

Diagramma che mostra un sistema che supporta più modalità audio, con più effetti SFX e MFX.

Categorie di flussi audio windows

Per informare il sistema sull'utilizzo di un flusso audio, le applicazioni hanno la possibilità di contrassegnare il flusso con una categoria di flusso audio specifica. Le applicazioni possono impostare la categoria audio, usando una qualsiasi delle API audio, subito dopo aver creato il flusso audio. In Windows sono disponibili nove categorie di flussi audio.

Categoria Descrizione
Film Film, video con finestra di dialogo (sostituisce ForegroundOnlyMedia)
File media Categoria predefinita per la riproduzione multimediale (sostituisce BackgroundCapableMedia)
Game Chat Comunicazione nel gioco tra utenti (nuova categoria in Windows 10)
Comandi vocali Input vocale (ad esempio assistente personale) e output (ad esempio, app di spostamento) (nuova categoria in Windows 10)
Comunicazioni VOIP, chat in tempo reale
Avvisi Allarme, tono circolare, notifiche
Effetti sonori Beeps, dings, ecc.
Game Media Nella musica del gioco
Effetti del gioco Palle rimbalzano, suoni motore auto, proiettili, ecc.
Altro Flussi senza categoria

Come accennato in precedenza, le categorie audio (selezionate dalle applicazioni) vengono mappate alle modalità audio (definite dai driver). Le applicazioni possono contrassegnarne ognuno con una delle 10 categorie audio.

Le applicazioni non hanno la possibilità di modificare il mapping tra una categoria audio e una modalità di elaborazione del segnale. Le applicazioni non hanno alcuna consapevolezza del concetto di "modalità di elaborazione audio". Non è possibile scoprire quale modalità viene usata per ognuno dei flussi.

Esempio di codice WASAPI

Il codice WASAPI seguente dell'esempio WASAPIAudio mostra come impostare diverse categorie 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 ) ) { … }

    …

Modalità ed effetti di elaborazione dei segnali

Gli OEM definiscono gli effetti che verranno usati per ogni modalità. Windows definisce un elenco di diciassette tipi di effetti audio.

Per informazioni su come associare le API alle modalità, vedere Implementazione di oggetti di elaborazione audio.

È possibile che le applicazioni chieda quali effetti verrebbero applicati a un flusso specifico per l'elaborazione RAW o non RAW. Le applicazioni possono anche chiedere di ricevere una notifica quando cambiano gli effetti o lo stato di elaborazione non elaborato. L'applicazione può usare queste informazioni per determinare se è disponibile una categoria di streaming specifica come la comunicazione o se è in uso solo la modalità RAW. Se è disponibile solo la modalità RAW, l'applicazione può determinare la quantità di elaborazione audio personalizzata da aggiungere.

Se System.Devices.AudioDevice.RawProcessingSupported è true, le applicazioni hanno anche la possibilità di impostare un flag "use RAW" su determinati flussi. Se System.Devices.AudioDevice.RawProcessingSupported è false, le applicazioni non possono impostare il flag "use RAW".

Le applicazioni non hanno visibilità sul numero di modalità presenti, ad eccezione di RAW/non RAW.

Le applicazioni devono richiedere l'elaborazione ottimale dell'effetto audio, indipendentemente dalla configurazione hardware audio. Ad esempio, l'assegnazione di tag a un flusso come Comunicazioni farà sapere a Windows di sospendere la musica di sottofondo.

Per altre informazioni sulle categorie di flusso audio statico, vedere enumerazione AudioCategory e proprietà MediaElement.AudioCategory.

CLSID per gli effetti di sistema

FX_DISCOVER_EFFECTS_APO_CLSID

Si tratta del CLSID per l'MsApoFxProxy.dll "effetto proxy", che esegue una query sul driver per ottenere l'elenco degli effetti attivi;

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

KSATTRIBUTEID_AUDIOSIGNALPROCESSING_MODE

KSATTRIBUTEID_AUDIOSIGNALPROCESSING_MODE è un identificatore di Kernel Streaming che identifica che l'attributo specifico a cui viene fatto riferimento è l'attributo della modalità di elaborazione del segnale.

Le istruzioni #define illustrate di seguito sono disponibili nel file di intestazione 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 viene usato per i driver con riconoscimento della modalità con una struttura KSDATARANGE che contiene un KSATTRIBUTE_LIST. Questo elenco include un singolo elemento, ovvero KSATTRIBUTE. Il membro Attribute della struttura KSATTRIBUTE è impostato su KSATTRIBUTEID_AUDIOSIGNALPROCESSING_MODE.

Effetti audio

Gli effetti audio seguenti sono disponibili per l'uso in Windows 10.

Effetto audio Descrizione
Annullamento dell'eco acustico (AEC) L'annullamento dell'eco acustico (AEC) migliora la qualità audio rimuovendo l'eco, dopo che è già presente nel flusso audio.
Eliminazione del rumore (NS) Simple Noise Suppression (NS) elimina il rumore, ad esempio humming e ronzio, quando è presente nel flusso audio.
Eliminazione del rumore profondo L'eliminazione del rumore profondo usa tecniche avanzate di intelligenza artificiale/machine learning per eliminare il rumore in particolare nelle chiamate vocali.
Controllo automatico dei guadagni (AGC) Automatic Gain Control (AGC): è progettato per fornire un'ampiezza del segnale controllata all'output, nonostante la variazione dell'ampiezza nel segnale di input. Il livello medio o massimo di segnale di output viene usato per regolare dinamicamente il guadagno input-to-output su un valore appropriato, consentendo un livello stabile di output, anche con un'ampia gamma di livelli di segnale di input.
Forming trave (BF) Beam Forming (BF) è una tecnica di elaborazione dei segnali usata per la trasmissione o la ricezione di segnali direzionali. Questo risultato viene ottenuto combinando gli elementi in una matrice in più fasi in modo che segnali in determinati angoli sperimentano interferenze costruttive mentre altri sperimentano interferenze distruttive. Il miglioramento rispetto alla ricezione/trasmissione omnidirectionale è noto come guadagno di ricezione/trasmissione (o perdita).
Rimozione costante del tono La rimozione costante del tono viene usata per attenuare il rumore di fondo costante, ad esempio nastro, ventole elettriche o ronzio.
Equalizer L'effetto Equalizer viene usato per modificare la risposta di frequenza di un sistema audio usando filtri lineari. Ciò consente di aumentare le diverse parti del segnale, in modo simile a un'impostazione treble o bass.
Equalizzatore di rumorosità L'effetto equalizzatore di rumorosità riduce le differenze di volume percepite livellando l'output audio in modo che i suoni più rumorosi e silenziosi siano più vicini a un livello medio di rumorosità.
Boost basso Nei sistemi come i portatili con altoparlanti con funzionalità di basso limitato, a volte è possibile aumentare la qualità percepita dell'audio aumentando la risposta dei bassi nell'intervallo di frequenza supportato dall'altoparlante. La spinta di basso migliora il suono sui dispositivi mobili con altoparlanti molto piccoli aumentando il guadagno nell'intervallo di bassi medi.
Racchiudi virtuale Il surround virtuale usa metodi digitali semplici per combinare un segnale multicanale in due canali. Questa operazione viene eseguita in modo da consentire il ripristino del segnale trasformato al segnale multicanale originale, usando i decodificatori pro logici disponibili nella maggior parte dei ricevitori audio moderni. Il surround virtuale è ideale per un sistema con hardware audio a due canali e un ricevitore con un meccanismo di miglioramento del suono surround.
Cuffie virtuali Il suono surround virtualizzato consente agli utenti che indossano cuffie di distinguere il suono dalla parte anteriore alla parte posteriore e da lato a lato. Questo è fatto trasmettendo segnali spaziali che aiutano il cervello a localizzare i suoni e integrarli in un campo sonoro. Questo ha l'effetto di rendere il suono come se trascende le cuffie, creando un'esperienza di ascolto "fuori dalla testa". Questo effetto viene ottenuto usando una tecnologia avanzata denominata Head Related Transfer Functions (HRTF). HRTF genera segnali acustici basati sulla forma della testa umana. Questi segnali non solo aiutano i listener a individuare la direzione e la sorgente del suono, ma migliora anche il tipo di ambiente acustico che circonda il listener.
Riempimento altoparlante La maggior parte della musica viene prodotta con solo due canali ed è quindi non ottimizzata per le apparecchiature audio multicanale del tipico appassionato di audio o video. Quindi avere musica eseguire solo gli altoparlanti front-left e front-right è un'esperienza audio meno che ideale. Il riempimento altoparlante simula una configurazione altoparlante multicanale. Consente la musica che altrimenti verrebbe ascoltata su solo due altoparlanti per essere riprodotti su tutti gli altoparlanti nella stanza, migliorando la sensazione spaziale.
Correzione sala La correzione della stanza ottimizza l'esperienza di ascolto per una determinata posizione nella stanza, ad esempio, il cuscino centrale del divano, calcolando automaticamente la combinazione ottimale di ritardo, risposta di frequenza e regolazioni. La funzionalità di correzione della stanza corrisponde meglio all'immagine sullo schermo video ed è utile anche nei casi in cui gli altoparlanti desktop sono posizionati in posizioni non standard. l'elaborazione della correzione della stanza è un miglioramento rispetto a caratteristiche simili nei ricevitori di fascia alta, perché è meglio in base al modo in cui l'orecchio umano elabora il suono. La calibrazione viene eseguita con l'aiuto di un microfono e la procedura può essere usata con sistemi stereo e multicanale. L'utente posiziona il microfono in cui l'utente intende sedersi e quindi attiva una procedura guidata che misura la risposta della stanza. La procedura guidata riproduce un set di toni appositamente progettati da ogni altoparlante a sua volta e misura la distanza, la risposta di frequenza e il guadagno complessivo di ogni altoparlante dalla posizione del microfono.
Gestione bassi Esistono due modalità di gestione dei bassi: gestione dei bassi in avanti e gestione dei bassi inversa. La gestione dei bassi in avanti filtra il contenuto a bassa frequenza del flusso di dati audio. L'algoritmo di gestione dei bassi in avanti reindirizza l'output filtrato all'indietro o ai canali degli altoparlanti front-left e front-right, a seconda dei canali che possono gestire frequenze di basso profonde. Questa decisione si basa sull'impostazione del flag LRBig. Per impostare il flag LRBig, l'utente usa l'applet Sound in Pannello di controllo per accedere alla finestra di dialogo Bass Management Impostazioni. L'utente seleziona una casella di controllo per indicare, ad esempio, che gli altoparlanti front-right e front-left sono completi e questa azione imposta il flag LRBig. Per deselezionare questo flag, selezionare la casella di controllo. La gestione dei bassi inversa distribuisce il segnale dal canale della classe agli altri canali di output. Il segnale viene indirizzato a tutti i canali o ai canali front-left e front-right, a seconda dell'impostazione del flag LRBig. Questo processo usa una notevole riduzione del guadagno quando si mescola il segnale del riquadro negli altri canali. La modalità di gestione dei bassi utilizzata dipende dalla disponibilità di una classe classe e dalla capacità di gestione dei bassi degli altoparlanti principali. In Windows l'utente fornisce queste informazioni tramite l'applet Sound in Pannello di controllo.
Effetti ambientali Gli effetti ambientali funzionano per aumentare la realtà della riproduzione audio simulando in modo più accurato gli ambienti audio reali. Esistono diversi ambienti che è possibile selezionare, ad esempio "stadio" simula l'acustica di uno stadio sportivo.
Protezione del parlante Lo scopo della protezione dell'altoparlante è eliminare le frequenze risonanti che causerebbero danni fisici agli altoparlanti a uno dei componenti di sistema dei PC. Ad esempio, alcuni dischi rigidi fisici possono essere danneggiati riproducendo un suono forte alla giusta frequenza. Secondariamente, la protezione dell'altoparlante funziona per ridurre al minimo i danni agli altoparlanti, attenuando il segnale, quando supera determinati valori.
Compensazione voce Alcuni altoparlanti sono migliori per riprodurre il suono di altri. Ad esempio, un particolare altoparlante può attenuare i suoni inferiori a 100 Hz. A volte i driver audio e le soluzioni DSP firmware hanno conoscenze sulle specifiche caratteristiche di prestazioni degli altoparlanti in cui stanno riproducendo e possono aggiungere l'elaborazione progettata per compensare le limitazioni dell'altoparlante. Ad esempio, è possibile creare un effetto endpoint (EFX) che si applica alle frequenze inferiori a 100 Hz. Questo effetto, se combinato con l'attenuazione nell'altoparlante fisico, comporta una maggiore fedeltà audio.
Compressione dell'intervallo dinamico La compressione dell'intervallo dinamico amplifica i suoni silenziosi restringendo o "comprimendo" un intervallo dinamico di un segnale audio. La compressione audio amplifica i suoni silenziosi che sono al di sotto di una determinata soglia mentre i suoni rumorosi rimangono inalterati.

Le istruzioni #define illustrate di seguito sono disponibili nel file di intestazione 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)

ACUSTICA ECHO CANCELLATION

#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)

NOI edizione Standard ELIMINAZIONE

#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)

CONTROLLO DI GUADAGNO AUTOMATICO

#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)

BEAMFORMING

#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)

RIMOZIONE TONO COSTANTE

#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)

EQUALIZZATORE

#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)

EQUALIZZATORE DI RUMOROSITÀ

#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)

BASS BOOST

#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)

CUFFIE VIRTUALI

#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)

CORREZIONE 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)

GESTIONE BASSI

#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)

EFFETTI AMBIENTALI

#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)

PROTEZIONE ALTOPARLANTE

#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)

COMPENSAZIONE VOCE

#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)

COMPRESSIONE DELL'INTERVALLO DINAMICO

#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)

Eliminazione del rumore profondo

A partire da Windows 11, versione 24H2, è disponibile un nuovo GUID per abilitare l'eliminazione del rumore profondo.

Esistono due identificatori per gli effetti di eliminazione del rumore. Esiste un identificatore esistente per l'eliminazione del rumore e il nuovo identificatore aggiunto per l'eliminazione del rumore profondo. Il primo è per l'eliminazione di rumore "basso" (semplice), mentre quest'ultimo è "alto" e viene implementato come soluzione di intelligenza artificiale/machine learning. Come per tutti gli effetti audio disponibili, spetta all'applicazione scegliere quale potrebbe voler usare, a seconda delle proprie esigenze e di scenari specifici.

#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)

Gli effetti audio, ad esempio l'eliminazione del rumore profondo, vengono implementati come oggetto di elaborazione audio - APO. Per altre informazioni, vedere Oggetti di elaborazione audio di Windows.

L'APO deve implementare l'interfaccia IAudioSystemEffects3 se sta per esporre effetti il cui stato può essere attivato o disattivato dinamicamente. Per altre informazioni, vedere Interfaccia IAudioSystemEffects3 (audioengineextensionapo.h).