驅動程式會為每個裝置宣告支援的音訊號處理模式。
可用的訊號處理模式
音訊類別(由應用程式選取)會對應至音訊模式(由驅動程式定義)。 Windows 定義七種音訊號處理模式。 OEM 和 IHV 可以判斷要實作的模式。 建議 IHD/OEM 使用新的模式來新增音訊效果,以優化音訊號以提供最佳的用戶體驗。 下表摘要說明這些模式。
模式 | 渲染/擷取 | 說明 |
---|---|---|
未加工 | 兩者 | 原始模式表示不應該在數據流上進行任何信號處理。 應用程式可以要求完全未觸及的原始數據流,並執行自己的訊號處理。 |
預設 | 兩者 | 此模式會定義預設音訊處理。 |
電影* | 渲染 | 電影音訊播放 |
媒體* | 兩者 | 音樂音訊播放(大部分媒體串流預設) |
演講* | 擷取 | 人類語音擷取(例如個人助理的輸入) |
通信* | 兩者 | VOIP 轉譯和擷取 (例如 Teams、Skype、Lync) |
通知* | 渲染 | 鈴聲、鬧鈴、警示等。 |
* Windows 10 的新功能。
訊號處理模式驅動程式需求
音訊設備驅動器至少需要支援 Raw 或 Default 模式。 支援其他模式是選擇性的。
並非所有模式都可能適用於特定系統。 驅動程式會定義支援哪些訊號處理模式(也就是哪些類型的APOs會安裝為驅動程式的一部分),並據以通知OS。 如果驅動程式不支援特定模式,則 Windows 會使用下一個最佳的比對模式。
下圖顯示支援多個模式的系統:
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處理。 當影響或原始處理狀態變更時,應用程式也可以要求收到通知。 應用程式可以使用這項資訊來判斷是否有特定的串流效果,例如「原音回音取消」,或是否沒有使用任何效果。 如果未使用任何效果,應用程式可以判斷要新增的音訊處理量。
如果 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「代理效果」的 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 會產生以人頭部形狀為基礎的原音提示。 這些提示不僅有助於接聽程式找出聲音的方向和來源,還能增強圍繞接聽程式的原音環境類型。 |
喇叭填充 | 大部分的音樂只製作了兩個頻道,因此不會針對一般音訊或視訊愛好者的多通道音訊設備進行優化。 因此,僅從左前和右前揚聲器發出音樂,是一種不太理想的音訊體驗。 喇叭填滿會模擬多通道擴音器設定。 它允許原本只能透過兩個喇叭播放的音樂,可以在房間裡的所有擴音器上播放,以增強空間感受。 |
房間更正 | 音場校正會藉由自動計算延遲、頻率響應和增益調整的最佳組合,優化房間中特定位置的聆聽體驗,例如沙發的中間坐墊。 房間校正功能更好地使音效和視訊畫面上的影像相匹配,在桌面喇叭放置於非標準位置時也很有用。 房間校正處理相較於高端接收器的類似功能有了改善,因為它更好地考慮到人類耳朵處理聲音的方式。 校正是透過麥克風的協助執行,而且程式可以搭配立體聲和多通道系統使用。 用戶會將麥克風放在使用者想要坐的地方,然後啟動測量會議室回應的精靈。 向導會依次播放每個喇叭中一組特別設計的音調,並從麥克風所在的位置測量每個喇叭的距離、頻率響應和整體增益。 |
低音管理 | 有兩種低音管理模式:正向低音管理和反向低音管理。 正向低音管理 會篩選出音訊數據流的低頻率內容。 正向低音管理演算法會根據可處理深度低音頻率的通道,將篩選的輸出重新導向至子音器或前端和右前喇叭通道。 此決策是以 LRBig 旗標的設定為基礎。 若要設定 LRBig 旗標,使用者會使用控制面板中的音效小程式來存取 [Bass 管理設定] 對話方塊。 使用者選取複選框來指出,例如,右前喇叭和左前喇叭是全頻,而此動作會設定 LRBig 標誌。 若要清除此旗標,請選取複選框。 反向低音管理 會將訊號從子聲道散發至其他輸出通道。 根據 LRBig 旗標的設定,訊號會導向至所有聲道或僅限於前左和前右聲道。 當將低音喇叭訊號混合到其他通道時,此過程會使用大幅的增益減少。 所使用的低音管理模式取決於低音喇叭(超低音喇叭)的可用性和主喇叭的低音處理能力。 在 Windows 中,使用者透過控制面板中的音效小程式提供這項資訊。 |
環境影響 | 透過更準確地模擬真實世界的音訊環境,環境效果可以增強音訊播放的現實感。 您可以選取許多不同的環境,例如「體育場」模擬體育場的聲場。 |
喇叭保護 | 揚聲器保護的目的是抑制會導致揚聲器對任何電腦系統元件造成實體傷害的共鳴頻率。 例如,某些實體硬碟可以透過以正確的頻率播放響亮的聲音來損壞。 其次,當喇叭超過特定值時,喇叭保護可藉由衰減訊號,將喇叭的損壞降到最低。 |
說話者補償 | 有些喇叭在重現音效時比其他人更好。 例如,特定喇叭可能會衰減低於 100 Hz 的音效。 有時候,音訊驅動程式和韌體 DSP 解決方案對於它們播放到的揚聲器的特定效能特性有瞭解,而且可以新增設計來補償揚聲器限制的處理。 例如,可以建立端點效果 (EFX),以將增益套用至低於 100 Hz 的頻率。 當結合實體喇叭中的衰減時,這個效果會產生增強的音訊逼真度。 |
動態範圍壓縮 | 動態範圍壓縮會藉由縮小或「壓縮」音訊信號的動態範圍來放大較小聲音。 音訊壓縮會放大低於特定閾值的安靜音效,而響亮的聲音仍然不受影響。 |
這裏顯示的 #define 語句可在 KSMedia.h 頭檔中取得。
預設
#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)
原始
#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)
重低音增強
#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)
低音調整
#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 要公開其狀態可以動態開啟或關閉的效果,則必須實現 IAudioSystemEffects3
介面。 如需詳細資訊,請參閱 IAudioSystemEffects3 介面(audioengineextensionapo.h)。