音訊號處理模式

驅動程式會為每個裝置宣告支援的音訊號處理模式。

可用的訊號處理模式

音訊類別(由應用程式選取)會對應至音訊模式(由驅動程式定義)。 Windows 定義七種音訊號處理模式。 OEM 和 IHV 可以判斷要實作的模式。 建議 IHD/OEM 使用新的模式來新增音訊效果,以優化音訊號以提供最佳的用戶體驗。 下表摘要說明這些模式。

模式 轉譯/擷取 描述
Raw 兩者 原始模式指定不應該套用至數據流的任何訊號處理。 應用程式可以要求完全未觸及的原始數據流,並執行自己的訊號處理。
預設 兩者 此模式會定義預設音訊處理。
電影* 轉譯 電影音訊播放
媒體* 兩者 音樂音訊播放(大部分媒體串流預設)
演講* 擷取 人類語音擷取(例如個人助理的輸入)
通信* 兩者 VOIP 轉譯和擷取 (例如 Teams、Skype、Lync)
通知* 轉譯 鈴聲、警示、警示等。

* Windows 10 的新功能。

訊號處理模式驅動程式需求

音訊設備驅動器至少 需要支援RawDefault 模式。 支援其他模式是選擇性的。

並非所有模式都可能適用於特定系統。 驅動程式會定義支援哪些訊號處理模式(也就是哪些類型的APOs會安裝為驅動程式的一部分),並據以通知OS。 如果驅動程式不支援特定模式,則 Windows 會使用下一個最佳的比對模式。

下圖顯示支援多個模式的系統:

此圖顯示支援多個音訊模式的系統,具有多個SFX和 MFX 效果。

Windows 音訊串流類別

為了通知系統音訊數據流的使用方式,應用程式可以選擇以特定音訊串流類別標記數據流。 應用程式可以在建立音訊串流之後,使用任何音訊 API 來設定音訊類別。 在 Windows 中,有九個音訊串流類別。

類別 描述
電影 影片, 影片與對話框 (取代 ForegroundOnlyMedia)
媒體 媒體播放的預設類別 (取代 BackgroundCapableMedia)
遊戲聊天 使用者之間的遊戲內通訊 (Windows 10 中的新類別)
語音 語音輸入 (例如個人助理) 和輸出 (例如瀏覽應用程式) (Windows 10 中的新類別)
通訊 VOIP,即時聊天
警示 警示、響鈴音、通知
音效 嗶聲、丁等
遊戲媒體 在遊戲音樂中
遊戲效果 球彈跳、汽車發動機音效、子彈等。
其他 未分類數據流

如先前所述,音訊類別(由應用程式選取)會對應至音訊模式(由驅動程式定義)。 應用程式可以使用其中一個 10 個音訊類別來標記其每個數據流。

應用程式沒有選項可變更音訊類別與訊號處理模式之間的對應。 應用程式不知道「音訊處理模式」的概念。 他們無法找出每個數據流所使用的模式。

WASAPI 程式代碼範例

WASAPIAudio 範例中的下列 WASAPI 程式代碼會示範如何設定不同的音訊類別。

// 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 ) ) { … }

    …

訊號處理模式和效果

OEM 會定義將用於每個模式的效果。 Windows 定義十七種類型的音訊效果清單。

如需如何將 APO 與模式產生關聯的資訊,請參閱 實作音訊處理物件

應用程式可以詢問將哪些效果套用至原始或非RAW處理的特定數據流。 當影響或原始處理狀態變更時,應用程式也可以要求收到通知。 應用程式可以使用這項資訊來判斷通訊等特定串流類別是否可用,或只有RAW模式正在使用中。 如果只有RAW模式可用,應用程式可以判斷自己要新增多少音訊處理。

如果 System.Devices.AudioDevice.RawProcessingSupported 為 true,應用程式也可以選擇在特定數據流上設定「使用 RAW」旗標。 如果 System.Devices.AudioDevice.RawProcessingSupported 為 false,應用程式就無法設定 “use RAW” 旗標。

應用程式無法查看有多少模式存在,但RAW/非RAW除外。

無論音訊硬體設定為何,應用程式都應該要求最佳的音訊效果處理。 例如,將數據流標記為 Communications 會讓 Windows 知道暫停背景音樂。

如需靜態音訊數據流類別的詳細資訊,請參閱 AudioCategory 列舉MediaElement.AudioCategory 屬性

系統效果的 CLSID

FX_DISCOVER_EFFECTS_APO_CLSID

這是MsApoFxProxy.dll「Proxy 效果」的 CLSID,它會查詢驅動程式以取得作用中效果的清單;

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

KSATTRIBUTEID_AUDIOSIGNALPROCESSING_MODE

KSATTRIBUTEID_AUDIOSIGNALPROCESSING_MODE是 Kernel Streaming 的識別碼,可識別所參考的特定屬性,是訊號處理模式屬性。

這裏顯示的 #define 語句可在 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是透過包含KSATTRIBUTE_LIST的 KSDATARANGE 結構,透過模式感知驅動程式來使用。 此清單中有單一元素,也就是 KSATTRIBUTE KSATTRIBUTE 結構的 Attribute 成員會設定為 KSATTRIBUTEID_AUDIOSIGNALPROCESSING_MODE。

音訊效果

下列音訊效果可用於 Windows 10。

音訊效果 描述
聲場回音取消 (AEC) 聲場回音取消 (AEC) 在音訊串流中已存在之後,移除回音來改善音訊品質。
噪音抑制 (NS) 簡單的噪音抑制 (NS) 會在音訊串流中出現噪音,例如嗡嗡作響和嗡嗡作響。
深度雜訊抑制 深度雜訊抑制使用進階 AI/機器學習技術來抑制噪音,特別是在語音通話中。
自動增益控制(AGC) 自動增益控制 (AGC) - 設計為在其輸出中提供受控制的訊號幅度,儘管輸入訊號中的幅度變化。 平均或尖峰輸出訊號層級是用來動態調整輸入對輸出的增益至適當的值,以達到穩定的輸出層級,即使輸入訊號層級也很大。
梁形成 (BF) 梁形成(BF)是用於方向信號傳輸或接收的信號處理技術。 這可藉由將分階段陣列中的元素結合在一起,讓特定角度的訊號體驗建設性干擾,而其他人則經歷破壞性干擾。 與全向接收/傳輸相比,改善被稱為接收/傳輸收益(或損失)。
固定音調移除 固定音調移除是用來衰減常數背景噪音,例如磁帶他、電扇或嗶聲。
等化器 Equalizer 效果是用來使用線性篩選來改變音訊系統的頻率回應。 這允許提升訊號的不同部分,類似於高音或低音設定。
放大縮小字體功能 放大縮小字體功能 音量均衡器效果會藉由將音訊輸出撫平來減少感知的音量差異,讓更響亮和更安靜的聲音更接近平均音量。
低音提升 在具有有限低音功能的膝上型計算機等系統中,有時可以藉由提升喇叭所支援頻率範圍中的低音回應來提升音訊的感知品質。 低音通過增加中低音範圍增加,提升行動裝置上非常小的喇叭音效。
虛擬環繞 虛擬環繞使用簡單的數位方法,將多通道訊號結合成兩個通道。 這樣做的方式是使用大部分新式音訊接收器中可用的 Pro Logic 譯碼器,將轉換的訊號還原到原始的多通道訊號。 虛擬環繞非常適合具有雙通道音效硬體的系統,以及具有環繞音效增強機制的接收器。
虛擬耳機 虛擬化的環繞音效可讓戴著耳機的用戶區分聲音,從正面到後面,以及從側面到側邊。 這是通過傳輸空間提示來完成的,説明大腦當地語系化聲音,並將其整合到聲音場。 這具有使聲音感覺它超越耳機的效果,創造了一個“外頭”的聆聽體驗。 使用稱為「前端相關傳輸函式」的先進技術(HRTF)來達到此效果。 HRTF 會產生以人頭部形狀為基礎的原音提示。 這些提示不僅有助於接聽程式找出聲音的方向和來源,還能增強圍繞接聽程式的原音環境類型。
喇叭填滿 大部分的音樂只製作了兩個頻道,因此不會針對一般音訊或視訊愛好者的多通道音訊設備進行優化。 因此,只有左前和右前擴音器才產生音樂,是一種不太理想的音訊體驗。 喇叭填滿會模擬多通道擴音器設定。 它允許只聽到兩個喇叭的音樂,在房間裡的所有擴音器上播放,以提高空間轟動。
房間更正 房間修正會藉由自動計算延遲、頻率響應和獲得調整的最佳組合,優化會議室中特定位置的接聽體驗,例如沙發的中心緩衝。 會議室修正功能較能比對視訊畫面上的影像,而且在桌面喇叭放置在非標準位置的情況下也很有用。 室內校正處理是高端接收器類似功能的改善,因為它更好地說明人類耳朵處理聲音的方式。 校正是透過麥克風的協助執行,而且程式可以搭配立體聲和多通道系統使用。 用戶會將麥克風放在使用者想要坐的地方,然後啟動測量會議室回應的精靈。 精靈會接著播放來自每個喇叭的一組特別設計的音調,並測量麥克風位置中每個喇叭的距離、頻率回應和整體增益。
Bass 管理 有兩種低音管理模式:正向低音管理和反向低音管理。 正向低音管理 會篩選出音訊數據流的低頻率內容。 正向低音管理演算法會根據可處理深度低音頻率的通道,將篩選的輸出重新導向至子音器或前端和右前喇叭通道。 此決策是以 LRBig 旗標的設定為基礎。 若要設定 LRBig 旗標,使用者會使用 控制台 中的音效小程式來存取 Bass Management 設定 對話框。 用戶選取複選框來指出,例如,前端和左前喇叭是全範圍,而此動作會設定 LRBig 旗標。 若要清除此旗標,請選取複選框。 反向低音管理 會將訊號從子聲道散發至其他輸出通道。 視 LRBig 旗標的設定而定,訊號會導向至所有通道或向左和右方通道。 當將子音器訊號混合到其他通道時,此程式會使用大幅降低的收益。 使用的低音管理模式取決於主喇叭的低音和低音處理功能的可用性。 在 Windows 中,使用者透過 控制台 中的音效小程式提供這項資訊。
環境影響 透過更準確地模擬真實世界的音訊環境,環境效果會努力提高音訊播放的實境。 您可以選取許多不同的環境,例如「體育場」模擬體育場的聲場。
喇叭保護 說話者保護的目的是抑制共鳴頻率,導致說話者對任何計算機系統元件造成實體傷害。 例如,某些實體硬碟可以透過以正確的頻率播放響亮的聲音來損壞。 其次,當喇叭超過特定值時,喇叭保護可藉由衰減訊號,將喇叭的損壞降到最低。
說話者補償 有些喇叭在重現音效時比其他人更好。 例如,特定喇叭可能會衰減低於 100 Hz 的音效。 有時候,音訊驅動程式和韌體 DSP 解決方案對於他們播放的喇叭的特定效能特性有瞭解,而且可以新增設計來補償說話者限制的處理。 例如,可以建立端點效果 (EFX),以將增益套用至低於 100 Hz 的頻率。 當結合實體喇叭中的衰減時,這個效果會產生增強的音訊逼真度。
動態範圍壓縮 動態範圍壓縮會藉由縮小或「壓縮」音訊號的動態範圍來放大無聲音效。 音訊壓縮會放大低於特定閾值的安靜音效,而響亮的聲音仍然不受影響。

這裏顯示的 #define 語句可在 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)

聲場回音取消

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

雜訊抑制

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

自動增益控制

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

波束 形成

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

固定音調移除

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

均衡

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

聲度均衡器

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

虛擬四周

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

虛擬耳機

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

房間更正

#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 管理

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

環境影響

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

說話者保護

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

說話者補償

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

動態範圍壓縮

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

深度雜訊抑制

從 Windows 11 版本 24H2 開始,可以使用新的 GUID 來啟用深度雜訊抑制。

雜訊抑制效果有兩個標識符。 [雜訊抑制] 的現有標識碼,以及針對深度雜訊抑制新增的新標識碼。 前者適用於「低」(簡單)雜訊抑制,而後者為「高」,並實作為 AI/機器學習解決方案。 如同所有可用的音訊效果,應用程式會視其需求和特定案例而定,選擇他們可能想要使用哪一個效果。

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

音訊效果,例如深度雜訊抑制,會實作為音訊處理物件 - APO。 如需詳細資訊,請參閱 Windows 音訊處理物件

如果 APO 要公開其狀態可以動態開啟或關閉的效果,則 APO 必須實 IAudioSystemEffects3 作 介面。 如需詳細資訊,請參閱 IAudioSystemEffects3 介面(audioengineextensionapo.h)