音訊處理物件架構

音訊處理物件 (API) ,為 Windows 音訊串流提供可自訂的軟體數位訊號處理。

音訊處理物件概觀

Windows 可讓 OEM 和協力廠商音訊硬體製造商在其音訊驅動程式的加值功能中包含自訂數位訊號處理效果。 這些效果會封裝為使用者模式系統效果音訊處理物件 (API) 。

音訊處理物件 (API) ,提供 Windows 音訊串流的軟體數位訊號處理。 APO 是 COM 主機物件,其中包含撰寫以提供特定數位訊號處理 (DSP) 效果的演算法。 這項功能稱為「音訊效果」。AEC 的範例包括圖形等等程式、殘響、tremolo、聲場回音取消 (AEC) 和自動增益控制 (AGC) 。 APO 是以 COM 為基礎的即時進程物件。

注意 本檔中的描述和術語大多是指輸出裝置,例如喇叭。 不過,這項技術是對稱的,基本上適用于輸入裝置。

軟體 API 與硬體 DSP 的比較

硬體數位訊號處理器 (DSP) 是特製化的微控制器 (或 SIP 區塊) ,其架構已針對數位訊號處理的操作需求優化。 實作用途內建硬體與使用軟體 APO 的音訊處理可能會有顯著的優點。 其中一個優點是 CPU 使用量和相關聯的耗電量可能會降低硬體實作的 DSP。

在實作軟體型 APO 之前,您需要考慮的專案目標和條件約束有其他優點和缺點。

軟體型效果會在軟體裝置管道中插入串流初始化。 這些解決方案會對主要 CPU 執行所有效果處理,而且不依賴外部硬體。 當驅動程式和硬體僅支援 RAW 處理時,這種類型的解決方案最適合傳統 Windows 音訊解決方案,例如 HDAudio、USB 和藍牙裝置。 如需 RAW 處理的詳細資訊,請參閱 音訊訊號處理模式

硬體 DSP 的 Proxy APO

在硬體 DSP 中套用的任何效果都必須透過 Proxy APO 公告。 Microsoft 提供預設 Proxy APO (MsApoFxProxy.dll) 。 若要使用 Microsoft 提供的 APO,必須支援此屬性集和屬性。

您可以選擇性地實作自己的 Proxy APO。

Windows 提供的 (系統) API

Windows 會安裝一組預設的 ADO,以提供許多不同的音訊效果。 如需系統提供的 APO 效果清單,請參閱 音訊訊號處理模式

OEM 可以包含所有系統提供的 APOs,或以自訂 APO 取代部分或全部。

自訂 APOS

藉由新增其他音訊效果,可以建立自訂 API 來增強 Windows 音訊體驗。

OEM 可以在隨附 Windows 時,包含所提供 Windows APOs 和自訂 APOs 的任何組合。

OEM 或協力廠商可以安裝自訂 APO,以在購買裝置之後增強音訊體驗。 當使用者使用標準 INF 檔案安裝音訊裝置磁碟機時,他們會自動存取系統的 ADO。 獨立硬體廠商 (IHV) 和原始設備製造商 (OEM) 可以提供額外的自訂系統效果,同時仍使用 Microsoft 類別驅動程式。 其作法是將其 DSP 演算法封裝為 APO,並修改標準 INF 檔案,以將其 API 插入音訊引擎的訊號處理圖形中。

如需建立自訂 API 的詳細資訊,請參閱 實作音訊處理物件

自訂 APO 支援應用程式

若要允許使用者設定與自訂 APO 相關聯的設定,建議的方法是建立硬體支援應用程式。 如需詳細資訊,請參閱 硬體支援應用程式 (HSA) :驅動程式開發人員的步驟

自訂 APO 測試和需求

Microsoft HLK 提供可與 APO 搭配使用的測試。 如需音訊測試的詳細資訊,請參閱 Device.Audio TestingDevice.Audio 測試

這兩項測試在使用 APO 時特別有用。

確認音訊效果 (手動) - 認證

SysFX 測試

如需支援 APOS 之音訊需求的資訊,請參閱 Device.Audio Requirements

自訂 APO 工具和公用程式

您可以使用「音訊效果探索範例」來探索可用的音訊效果。 此範例示範如何在轉譯和擷取音訊裝置上查詢音訊效果,以及如何監視音訊效果的變更。 它包含在 SDK 範例中,而且可以使用此連結下載:

音訊效果探索範例

應用程式音訊效果感知

應用程式能夠呼叫 API,以判斷系統上目前作用中的音訊效果。 如需音訊效果感知 API 的詳細資訊,請參閱 AudioRenderEffectsManager 類別

音訊處理物件架構

音訊效果的位置

實作為 ADO 的音訊效果有三個不同的位置。 它們位於 (SFX) 、模式效果 (MFX) ,以及 EFX) (端點效果。

(SFX) 資料流程效果

資料流程效果 APO 具有每個資料流程效果的實例。 串流效果是在混合 (轉譯) 之前,或是在指定模式 (擷取) 之後,而且可用於在混音器之前變更通道計數。 資料流程效果不會用於原始資料流程。

某些版本的 Windows 作為優化,不會以 RAW 模式載入 SFX 或 MFX API。

  • Windows 8.1不會載入 RAW SFX 或 RAW MFX
  • Windows 10載入 RAW MFX,但不會載入 RAW SFX

MFX (模式效果)

MFX) (模式效果會套用至對應至相同模式的所有資料流程。 模式效果會套用在混合 (轉譯) 或特定模式 (擷取) 之前,但在混合 (轉譯) 或所有模式 (擷取) 之前。 此處應放置任何不需要資料流程效果細節的案例特定效果或效果。 使用模式效果會更有效率,因為多個資料流程有一個實例共用相同的特性,例如週期性和格式。

端點效果 (EFX)

端點效果 (EFX) 會套用至使用相同端點的所有資料流程。 端點效果一律會套用至原始資料流程。 也就是說,在混合 (轉譯) 或所有模式 (擷取) 之前。 端點效果應該謹慎使用,而且當不確定效果應該放在 [模式] 區域中時。 應該放在端點區域中的一些效果是說話者保護和說話者補償。

下圖顯示資料流程 (SFX) 、模式 (MFX) 和端點 (EFX) 效果Windows 10的位置。

圖表說明資料流程、模式和端點效果在Windows 10中的位置。

多個自訂 APO 效果

您可以設定多個 APO 型效果來處理不同的應用程式。

下圖說明多個應用程式如何存取資料流程、模式和端點 APO 效果的多個組合。 所有 APO 都是以 COM 為基礎,並以使用者模式執行。 在此案例中,沒有任何效果在硬體或核心模式中執行。

此圖顯示多個應用程式如何存取串流、模式和端點 APO 效果的各種組合。

注意 您可以使用此頁面底部的捲軸來檢視此圖表的所有內容。

轉譯和擷取的軟體模式效果和硬體端點效果

下圖說明轉譯和擷取的軟體模式效果和硬體端點效果。

顯示轉譯和擷取程式的軟體模式效果和硬體端點效果的圖表。

具備硬體效果的 DSP 配備系統

下圖說明在硬體中實作效果的 DSP 配備系統。 在此案例中,應該建立 Proxy APO,以通知應用程式硬體中實作的效果。

此圖描述在硬體中實作效果的 DSP 型系統。

Windows 音訊處理物件

硬體卸載音訊驅動程式實作