音訊
本檔提供音訊裝置的設計與開發建議,包括音訊播放和音訊輸入裝置,以用於 Microsoft 的語音平臺。 語音平臺可用來提供 Windows 中的所有語音體驗,例如語音輸入和即時輔助字幕。 本文件的目標是要讓生態系統合作夥伴使用 Microsoft 技術,以優化的音訊體驗來建置裝置。
最低硬體需求和 Windows 硬體相容性計劃
最低硬體需求和 Windows 硬體相容性計劃需求是建立 Windows 相容音訊解決方案的基礎。 雖然程式是選擇性的,但強烈建議音訊產品符合這兩組需求,以確保基本的音訊品質。
如需每個詳細數據:
請參閱最低硬體需求中的 6.2.2 節
請參閱 Windows 硬體相容性計劃
優化多串流音訊播放的案例
雖然 Windows 10 桌面版不再需要多重串流,但強烈建議至少要有兩個數位對模擬轉換器 (DAC) 來支援多串流案例。 如果使用單一 DAC(例如重新導向耳機),強烈建議針對每個音訊端點獨立支援音訊音量控制和狀態(例如整合式喇叭或 3.5mm 音訊插孔),以便保留使用者設定喜好設定。
優化語音和通訊的音訊解決方案
一旦音訊解決方案符合最低硬體需求和 Windows 相容性程式需求,音訊解決方案就會在 Windows 中提供基本的音訊體驗。 視目標市場區段而定,裝置可能支援兩個額外的優化:語音平臺和Skype。 建議 語音平臺和 Skype 皆以基本音訊體驗的需求為基礎。 如果音訊解決方案未完全符合基本需求,則優化語音平臺或 Skype 將是一項挑戰。
注意
電話語音和應用程式,例如 Skype 的指導方針將會在提供時補充至本主題。
Windows 中的語音辨識
鼓勵裝置製造商將語音增強處理整合到其裝置中,以將相對於語音辨識測試準則的效能優化。
對於沒有整合式語音增強處理的裝置,Microsoft 會在 Windows 中提供預設處理。 來自 Microsoft 的語音增強處理不需要 IHV 的裝置特定微調。
如果音訊驅動程式未公開麥克風幾何和語音訊號處理,則會使用 Microsoft 語音增強管線。 若要利用第三方增強功能,必須提供麥克風幾何、支援音訊輸入上的「語音」訊號處理模式,並確保音訊驅動程式或其軟體 API 所提供的效果至少包含噪音抑制和回音取消。
語音辨識與電話語音之間的差異
許多以語音辨識功能為目標的裝置也會以電話語音使用為目標。 相似之處顯而易見 –這兩種案例都使用具有麥克風的裝置來挑選人類語音、音訊處理管線來移除環境中的噪音,以及使用依賴清楚語音訊號的應用程式,以了解語音。
差異在於誰或哪些專案會取用語音訊號。 電話語音具有人類消費者,其感知語音品質和語音可理解性是最重要的。 語音辨識具有演算法取用者,其中機器學習會根據語音訊號的特定特徵來判斷所辨識的內容,以及這些功能不一定符合感知規範的位置。
感知語音品質通常與語音辨識精確度相互關聯,但情況並不總是如此。 本檔著重於評估及最大化語音辨識精確度的方法。 建議支援「語音」訊號處理模式,並特別針對語音辨識微調該模式。
通過 Skype/Lync 音訊認證是良好裝置音訊效能的強項指標。
音訊裝置建議
下列各節涵蓋語音的建議。 為了確保高品質的語音體驗,所有裝置都應該根據這些效能需求進行測試。
面積 | 指引類型 | 應測試哪些裝置 |
---|---|---|
Device.SpeechRecognition | 提供語音辨識效能需求,以確保高品質的語音體驗。 | 所有裝置都應該根據這些效能需求進行測試。 |
Device.Audio | 提供指導方針,以在軟體介面、通訊協定和數據格式方面,以最佳方式與主機OS搭配運作。 | 所有裝置都應該根據這些指導方針進行測試。 |
Device.Audio.Acoustics | 提供裝置設計之原音和相關屬性的建議和最佳做法。 | 與將使用 Microsoft 語音增強處理之裝置最相關的裝置。 |
Device.SpeechRecognition
下表摘要說明各種環境中裝置目標語音辨識精確度的 Microsoft 建議。 所有目標都是語音精確度。
Test | 描述 | Target | 建議 |
---|---|---|---|
Device.SpeechRecognition.Quiet | 環境噪音最低(噪音樓層 < 35 dBA SPL)和無接收(回聲路徑)噪音的理想環境。 | Quiet <= 35 dBA SPL | 95% |
Device.SpeechRecognition.AmbientNoise | 各種等級和類型的嘈雜環境,例如 咖啡館和酒吧。 | 環境雜訊 @ DUT >= 57 dBA SPL | 90% |
Device.SpeechRecognition.EchoNoise | 各種層級和類型的轉譯播放案例(例如媒體播放)。 | Echo Noise @ LRP >= 70 dBA SPL | 90% |
Device.Audio
本節中的 建議 是關於裝置的軟體和硬體介面、通訊協議和數據格式。 想要使用語音辨識功能的裝置必須符合所有 Device.Audio 需求。
名稱 | 建議 |
---|---|
Device.Audio.Base.AudioProcessing | 驅動程式必須透過 FXStreamCLSID、FXModeCLSID 和 FXEndpointCLSID APOs 公開所有音訊效果(或 Proxy APOs)。 API 必須傳送正確的效果清單,以在查詢時啟用至系統。 驅動程式必須支援 APO 變更通知,而且只有在發生 APO 變更時才會通知系統。 |
Device.Audio.Base.StreamingFormats | StreamingFormats HLK 中定義之所有音訊擷取和轉譯串流格式下的語音辨識功能,最佳方式是 16 kHz,具有 24 位擷取和單聲道轉譯。 |
Device.Audio.Base.SamplePositionAccuracy | 轉譯和擷取音訊號必須正確取樣 1)且 2) 時間戳正確。 |
Device.Audio.USB.USB | 所有USB音訊輸入設備都必須根據 USB.org 裝置類別規格正確設定描述元。 |
驅動程式指導方針 | 開發 WDM 音訊驅動程式的藍圖 |
Device.Audio.Acoustics
本節中的 建議 是關於裝置的原音和相關屬性,例如麥克風和擴音器放置、麥克風回應、來自裝置的接收噪音等等。 麥克風選擇、放置、整合和數位設計是支援品質語音辨識效能的最重要因素。
建議和測試會相對於語音增強處理之前的訊號,但在麥克風相等化和固定麥克風增益之後。
如需這些建議的詳細資訊,包括建議的麥克風陣列幾何,請參閱 麥克風數位數組幾何描述元格式。
名稱 | 建議 |
---|---|
Device.Audio.Acoustics.MicArray | 請參閱 Windows 中的麥克風陣列支援。 音訊驅動程式必須實 作 KSPROPERTY_AUDIO_MIC_ARRAY_GEOMETRY 屬性。 然後,您可以透過 Windows.Devices.Enumeration API 存取 System.Devices.MicrophoneArray.Geometry 屬性。 USB 音訊驅動程式會針對在 USB 描述元中設定適當欄位的 USB 麥克風陣列支援此屬性。 |
麥克風陣列描述元 | 裝置必須使用麥克風陣列描述元來描述其麥克風類型和幾何。 |
Device.Audio.Acoustics.MicSensitivity | Max 建議設定為能夠支持被視為「響亮」的語音輸入層級,且 Min 建議設定為能夠支持視為「安靜」的語音輸入層級。 |
Device.Audio.Acoustics.MicIntegration | 麥克風必須整合,以確保麥克風與裝置底座之間的聲場密封良好,如果適當的話,沿著麥克風移植管。 將系統與麥克風之間的聲場噪音和震動降到最低。 兩個典型的解決方案是使用橡膠靴或墊片。 選擇哪一種方法,檢查聲封是否在所有生產容錯和環境與存留期變更中都已足夠。 |
Device.Audio.Acoustics.MicPlacement | 盡可能從喇叭、風扇、鍵盤、硬碟和使用者的手等噪音來源放置麥克風,並盡可能接近喇叭的嘴。 |
Device.Audio.Acoustics.MicSelfNoise | 使用高品質的麥克風將麥克風內部雜訊降到最低。 針對標準版和 63 dB,建議使用至少 61 dB 名義的麥克風,進階版 使用 63 dB。 |
Device.Audio.Acoustics.MicReceivedNoise | 接收噪音的兩個主要來源是聲場噪音和電氣噪音。 聲場噪音可能來自裝置外部,或因風扇、硬碟等而在裝置內部產生。聲場噪音也可以透過裝置機制傳輸。 使用數位麥克風,而不是模擬麥克風,可以最小化電雜訊。 |
Device.Audio.Acoustics.MicMagnitudeResponse | 進階版 和標準遮罩會套用至 Device.Audio.Acoustics.Bandwidth 底下的所有裝置層,例如裝置可以有標準頻寬(窄帶)和該波段內的 進階版 級回應。 |
Device.Audio.Acoustics.MicPhaseResponseMatching | 此建議可確保透過數位中的麥克風元素所接收訊號之間的時態關聯性與陣列中麥克風元素的實體幾何一致。 |
Device.Audio.Acoustics.MicDistortion | 建議使用 SDNR 來測量失真(脈衝雜訊訊號到失真和失真比率),不過也會提供 THD 目標。 |
Device.Audio.Acoustics.MicBandwidth | 擷取訊號的取樣率是判斷語音訊號有效頻寬的主要因素。 語音平臺在語音辨識器中使用 16 kHz 原音模型時,建議使用 16 kHz 最小取樣率。 300 Hz 是語音辨識器的有效下限,但 200 Hz 是裝置也針對語音通信的建議聲場限制。 |
Device.Audio.Acoustics.RenderDistortion | 建議使用 SDNR 來測量失真(脈衝雜訊訊號到失真和失真比率),不過也會提供 THD 目標。 |
Device.Audio.Acoustics.RenderPlacement | 若要讓聲場回音取消器能夠正常運作,裝置喇叭應放置在與麥克風的最大距離,或將直接性 Null 放在喇叭上。 |
啟用第三方增強管線的需求
下列需求是啟用第三方增強管線的關鍵。 下列各節將詳細說明這些和其他建議:
麥克風位置報告 –說明如何實作麥克風陣列的報告結構。
語音模式支援:
如何註冊特定模式的 APO
音訊號處理模式
Device.Audio.Base.Audioprocessing - 第三方管線需要聲場回音回應取消 (AEC) 和 Nosie Suppression (NS):
實作音訊處理物件
音訊處理物件架構