實作高品質的空間音訊和頭部追蹤

Android 13 支援空間音訊,並提供 API,讓應用程式開發人員瞭解目前的電話實作、連線的耳機和使用者設定組合,是否允許以沉浸式方式播放多聲道音訊內容。

OEM 可以使用新的音訊管線架構和感應器架構整合功能,提供支援頭部追蹤的空間音訊效果,並達到所需的效能和延遲程度。HID 通訊協定會指定如何透過藍牙連結頭部追蹤裝置,並透過 Android 感應器架構將其設為 HID 裝置。如需更多規定和驗證資訊,請參閱「空間音訊和頭部追蹤」。

本頁的指南適用於採用全新空間音訊 API 和音訊架構的空間音訊解決方案,以及搭載 Android 13 以上版本的 Android 手機,和配備頭部追蹤感應器的相容耳機。

動態和靜態空間音訊模式的導入規範

靜態空間音訊不需要頭部追蹤功能,因此頭戴式裝置不需要具備特定功能。所有有線和無線耳機都支援靜態空間音訊。

API 實作

原始設備製造商「必須」實作 Android 12 導入的 Spatializer 類別。實作項目必須通過為 Spatializer 類別導入的 CTS 測試

妥善導入 API 可確保應用程式開發人員 (尤其是媒體串流服務) 能夠在整個生態系統中獲得一致的行為,並根據裝置功能、目前的算繪環境和使用者選擇,挑選最佳內容。

使用者介面

導入 Spatializer 類別後,請驗證 UI 是否有下列行為:

  • 配對支援空間音訊的耳機後,這款耳機的藍牙裝置設定會顯示「空間音訊」切換按鈕:

    spatial-audio-ui

    圖 1. 空間音訊設定。

  • 耳機中斷連線時,即可使用這些設定。

  • 首次配對耳機後,空間音訊的預設狀態為啟用

  • 使用者選取的狀態 (啟用或停用) 會在手機重新啟動或取消配對並重新配對耳機後保留。

功能行為

音訊格式

啟用空間音訊功能,且渲染裝置為有線或藍牙耳機時,空間音訊效果必須渲染下列音訊格式:

  • AAC,5.1 聲道
  • 原始 PCM,5.1 聲道

為提供更優質的使用者體驗,我們強烈建議支援下列格式/頻道設定:

  • Dolby Digital Plus
  • 5.1.2、7.1、7.1.2、7.1.4 聲道

播放立體內容

即使已啟用空間音訊,立體聲內容也不得透過空間化效果引擎算繪。如果實作項目允許立體內容空間化,就必須提供自訂 UI,讓使用者輕鬆開啟或關閉這項功能。啟用空間音訊後,使用者應可在播放空間化多聲道內容和非空間化立體聲內容之間切換,不必變更使用者設定、重新連線或重新設定耳機。空間音效內容和立體聲內容之間的轉換,必須盡量減少音訊中斷。

用途轉換和並行

請按照下列方式處理特殊用途:

  • 通知必須與空間音訊內容混合,方式與非空間音訊內容相同。
  • 鈴聲必須允許與空間音訊內容混音。不過,音訊焦點機制預設會在有鈴聲時暫停空間音訊內容。
  • 接聽或撥打電話或視訊會議時,空間音訊播放必須暫停。通話結束時,空間音訊播放作業必須以相同的空間音訊設定繼續播放。音訊路徑的重新設定必須快速且順暢,才能從空間音訊模式切換至對話模式,以免影響通話體驗。

透過音箱播放

不一定要支援透過喇叭或雙耳模式進行音訊空間化。

頭部追蹤功能導入指南

本節著重說明動態空間音訊,這項功能有特定的耳機需求。

使用者介面

實作並配對支援空間音訊的耳機後,請確認 UI 具有下列行為:

  • 在藍牙裝置設定中,如果耳機的「空間音訊」設定已啟用,「空間音訊」下方會顯示「頭部追蹤」設定:

    ht-ui

    圖 2. 空間音訊和頭部追蹤設定。

  • 停用空間音訊時,系統不會顯示頭部追蹤設定。

  • 首次配對頭戴式裝置後,頭部追蹤功能的預設狀態會設為「已啟用」

  • 使用者選取的狀態 (啟用或停用) 必須在手機重新啟動或取消配對並重新配對耳機後仍維持不變。

功能行為

頭部姿勢報表

  • 從頭戴式裝置傳送至 Android 裝置的頭部姿勢資訊 (以 x、y 和 z 座標表示),必須快速且準確地反映使用者的頭部動作。
  • 透過藍牙連結回報頭部姿勢時,必須遵循 HID 定義的通訊協定。
  • 只有在使用者透過藍牙裝置設定 UI 啟用「頭部追蹤」時,耳機才能將頭部追蹤資訊傳送至 Android 手機。

效能

回覆太慢

頭部追蹤延遲是指從慣性測量單元 (IMU) 擷取頭部動作,到耳機感應器偵測到該動作所造成的聲音變化,這段時間的長度。頭部追蹤延遲時間不得超過 150 毫秒。

頭部姿勢回報率

頭部追蹤功能啟用時,頭戴式裝置必須以建議的週期性間隔 (約 20 毫秒) 回報頭部姿勢。為避免藍牙傳輸抖動期間,手機觸發過時的輸入偵測邏輯,兩次更新之間的時間間隔不得超過 40 毫秒。

電源最佳化

為節省電力,建議實作項目使用 Bluetooth 編碼解碼器切換延遲模式選取機制,這些機制由 音訊 HAL藍牙音訊 HAL 介面提供。

音訊架構和藍牙堆疊的 AOSP 實作項目已支援訊號,可控制轉碼器切換。如果原始設備製造商的實作項目使用藍牙音訊的主要音訊 HAL (稱為轉碼器卸載模式),原始設備製造商必須確保音訊 HAL 會在音訊 HAL 和藍牙堆疊之間轉送這些訊號。

轉碼器切換

開啟動態空間音訊和頭部追蹤功能時,請使用低延遲編解碼器,例如 Opus。播放非空間音訊內容時,請使用低功耗轉碼器,例如進階音訊編碼 (AAC)

切換轉碼器時,請遵守下列規則:

  • 只追蹤下列音訊 HAL 輸出串流的活動:
    • 專屬空間音訊輸出
    • 媒體專屬串流,例如深層緩衝區或壓縮卸載播放
  • 當所有相關串流都處於閒置狀態,且空間音效串流開始時,請將 isLowLatency 設為 true,藉此指定低延遲編解碼器,然後啟動藍牙串流。

  • 所有相關串流都處於閒置狀態,且媒體串流開始時,請將 isLowLatency 設為 false,藉此啟動藍牙串流,指定低功耗轉碼器。

  • 如果媒體串流處於啟用狀態,且空間音訊串流開始,請將 isLowLatency 設為 true,重新啟動藍牙串流。

在耳機端,耳機必須支援低延遲和低功耗解碼器,並實作標準轉碼器選取通訊協定。

調整延遲模式

選取低延遲編解碼器時,系統會調整延遲模式。

根據頭部追蹤功能是否開啟,延遲模式調整功能會使用可用機制來減少或增加延遲,在延遲、電量和音質之間取得最佳平衡。啟用空間音訊和頭部追蹤功能時,系統會選擇低延遲模式。啟用空間音訊並停用頭部追蹤功能時,系統會選取無延遲模式。如果只要求靜態空間音訊,延遲調整功能可大幅節省電力,並提升藍牙音訊連結的穩定性。最常見的延遲調整機制是縮減或延長藍牙耳機的抖動緩衝區大小。

如要瞭解如何調整 LE Audio 的延遲模式,請參閱「透過 LE Audio 進行頭部追蹤」。