Windows 10:音訊驅動程式的新功能

本主題提供Windows 10音訊新功能的高階摘要。

功能摘要

以下是Windows 10中的新音訊功能。

低延遲音訊改善

音訊延遲是建立音效和聽到聲音時之間的延遲。 對數個主要案例而言,低音訊延遲非常重要,例如下列各項。

  • 專業音訊
  • 音樂建立和混合
  • Skype 之類的通訊
  • 虛擬和擴增實境
  • 遊戲

裝置的總延遲是下列元件的延遲總和:

  • 作業系統
  • 音訊處理物件
  • 音訊驅動程式
  • 音訊硬體

在Windows 10工作已完成,以減少 OS 中的延遲。 若沒有任何驅動程式變更,Windows 10中的應用程式將會經歷 4.5-16 毫秒的延遲。 此外,如果驅動程式已更新以利用使用小型緩衝區來處理音訊資料的新低延遲 DIS,則延遲會降低更多。 如果驅動程式支援 3 毫秒的音訊緩衝區,則往返延遲為 ~10 毫秒。

此圖顯示具有應用程式、音訊引擎驅動程式和硬體元件的低延遲音訊堆疊。

音訊堆疊支援多個封包大小和動態封包調整大小,以根據使用者的案例優化延遲和電源之間的取捨。 此外,串流會排定優先順序,以確保高優先順序資料流程 (例如通話) 具有專用資源。

為了讓音訊驅動程式支援低延遲,Windows 10提供下列 3 項新功能:

  1. [強制]宣告每個模式中支援的最小緩衝區大小。
  2. [選擇性,但建議]改善驅動程式與 OS 之間的資料流程協調。
  3. [選擇性,但建議]註冊驅動程式資源 (中斷、執行緒) ,以便在低延遲案例中受到 OS 的保護。 如需詳細資訊,請參閱 低延遲音訊

訊號處理模式和音訊類別

訊號處理模式

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

應用程式) 所選取的音訊類別 (會對應至驅動程式所定義的音訊模式 () 。 Windows 會定義七種音訊訊號處理模式。 OEM 和 IHV 可以判斷其想要實作的模式。 下表摘要說明這些模式。

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

音訊裝置磁碟機至少需要支援原始或預設模式。 支援其他模式是選擇性的。

語音、電影、音樂和通訊的專用模式。 音訊驅動程式可以根據資料流程類型定義不同類型的音訊格式和處理。

音訊類別

下表顯示Windows 10中的音訊類別。

為了通知系統音訊資料流程的使用方式,應用程式可以選擇使用特定音訊資料流程類別標記資料流程。 在Windows 10有九個音訊串流類別。

類別 描述
電影* 影片、影片與對話方塊 (取代 ForegroundOnlyMedia)
媒體* 媒體播放的預設類別 (取代 BackgroundCapableMedia)
遊戲聊天* 使用者之間的遊戲內通訊 (新類別Windows 10)
演講* 語音輸入 (例如個人助理) 和輸出 (,例如導覽應用程式) (Windows 10) 的 [新增] 類別
通訊 VOIP,即時聊天
警示 警示、環形音調、通知
音效 Beeps、dings 等
遊戲媒體 在遊戲音樂中
遊戲效果 球彈跳、汽車引擎音效、專案符號等。
其他 未分類的資料流程

* Windows 10的新功能。

如需詳細資訊,請參閱 音訊訊號處理模式音訊處理物件架構

硬體卸載 APO 效果

Windows 10支援硬體卸載的 APO 效果。 ADO 可以載入卸載釘選的頂端。 這可讓音訊處理同時在軟體和硬體中完成。 此外,處理也可以動態變更。 當有足夠的硬體資源時,部分或所有處理都可以從軟體 APO 移至 DSP,然後在 DSP 中的負載增加時移回軟體 APO。

如需詳細資訊,請參閱 實作硬體卸載 APO 效果

Cortana 語音啟用 - 語音喚醒

Cortana 個人助理技術首次在 2013 年 Microsoft BUILD 開發人員會議中示範。 語音啟用是一項功能,可讓使用者從各種裝置電源狀態叫用語音辨識引擎,方法是說出特定片語 -「Hey Cortana」。 「Hey Cortana」語音啟用 (VA) 功能可讓使用者快速參與體驗 (例如 Cortana) 在其作用中內容之外 (,亦即目前使用其語音) 畫面上的功能。 此功能是以螢幕關閉、閒置或完全作用中的案例為目標。 如果硬體支援緩衝處理,則使用者可以將關鍵字組和命令片語鏈結在一起。 這可改善使用者的端對端喚醒語音體驗。 如需詳細資訊,請參閱 語音啟用

適用于音訊的 Windows 通用驅動程式

Windows 10支援一個適用于電腦和 2:1 的驅動程式模型,以及適用于手機和小型螢幕平板電腦的Windows 10。 這表示 IHV 可以在一個平臺中開發驅動程式,而且該驅動程式可在所有裝置 (桌上型電腦、膝上型電腦、平板電腦、手機) 運作。 結果會降低開發時間和成本。

若要開發通用音訊驅動程式,請使用下列工具:

  1. Visual Studio 2015:新的驅動程式設定可讓「目標平臺」設定為「通用」,以建立多平臺驅動程式。
  2. APIValidator:這是一種 WDK 工具,可檢查驅動程式是否為通用,並醒目提示需要更新的呼叫。
  3. GitHub 中的音訊範例:sysvad 和 SwapAPO 已轉換為通用驅動程式。 如需 GitHub 範例程式碼的詳細資訊和指標,請參閱 適用于音訊的通用 Windows 驅動程式

音訊驅動程式的資源管理

在低成本行動裝置上建立良好音訊體驗的一項挑戰,就是某些裝置具有各種並行限制。 例如,裝置只能同時播放最多 6 個音訊串流,且只支援 2 個卸載資料流程。 當行動裝置上有作用中的通話時,裝置可能只支援 2 個音訊串流。 當裝置擷取音訊時,裝置只能播放最多 4 個音訊串流。

Windows 10包含一種機制,可表達並行限制,以確保高優先順序音訊串流和行動電話通話能夠播放。 如果系統沒有足夠的資源,則會終止低優先順序資料流程。 這項機制僅適用于手機和平板電腦,不適用於桌上型電腦或膝上型電腦。

如需詳細資訊,請參閱 音訊硬體資源管理

音訊驅動程式的 PNP 重新平衡

PNP 重新平衡用於需要重新配置記憶體資源的特定 PCI 案例中。 在此情況下,會卸載某些驅動程式,然後在不同的記憶體位置重載,以建立可用的連續記憶體空間。 重新平衡可在兩個主要案例中觸發:

  1. PCI hotplug:使用者插入裝置,而 PCI 匯流排沒有足夠的資源可載入新裝置的驅動程式。 屬於此類別的一些裝置範例包括「規則」、「USB-C」和「NVME 儲存體」。 在此案例中,記憶體資源必須重新排列併合並 (重新平衡) ,以支援要新增的其他裝置。
  2. PCI 可調整大小的 BAR:在裝置的驅動程式成功載入記憶體中之後,它會要求額外的資源。 裝置的一些範例包括高階圖形卡和儲存裝置。 如需詳細資訊,請參閱 實作 PortCls 音訊驅動程式的 PnP 重新平衡