> ## Documentation Index
> Fetch the complete documentation index at: https://devdocs.xbox.com/llms.txt
> Use this file to discover all available pages before exploring further.

# XBOX One 中的音訊架構

> XBOX One 中的音訊架構

*更新日期：2019 年 4 月 29 日*

XBOX One 中的音訊架構力求在前一代平台的成功之處與取捨之間取得平衡，同時預期新一代實作日益增加的技術需求。此架構針對音訊轉譯最常見的層面 (例如壓縮、混音和篩選)，在許多同時進行的語音上提供硬體加速路徑。此外，此架構還為軟體處理的耗用提供共用資源模型，讓個別遊戲能夠選擇要在 CPU 使用中套用的自訂訊號處理類型和數量。本主題說明 XBOX One 上音訊架構的這些軟體和硬體特性。本主題也詳細說明這些特性可能如何影響您在實作期間所做的選擇。

* [音訊架構概觀](/zh-TW/build/console-features/audio/overviews/xbox-one-audio-architecture#ID4EKB)
* [音訊與 XBOX One 硬體](/zh-TW/build/console-features/audio/overviews/xbox-one-audio-architecture#ID4E3E)
* [壓縮格式](/zh-TW/build/console-features/audio/overviews/xbox-one-audio-architecture#ID4EZF)
* [音訊與 XBOX One 應用程式模型](/zh-TW/build/console-features/audio/overviews/xbox-one-audio-architecture#ID4EOBAC)
* [XBOX One 音訊程式庫](/zh-TW/build/console-features/audio/overviews/xbox-one-audio-architecture#ID4EJEAC)
* [總結：立即開始使用](/zh-TW/build/console-features/audio/overviews/xbox-one-audio-architecture#ID4EBGAC)

***

<a id="ID4EKB" />

## 音訊架構概觀

除了可用於解碼、合成、轉譯和其他工作的一般 CPU 運算能力之外，XBOX One 還提供數個專用於音訊處理的硬體元件 (如圖 1 所示)，這些元件可以定址整個統一記憶體空間。

**圖 1. 硬體加速音訊元件的示意圖**

<img src="https://mintcdn.com/microsoft-4404708b/CwRBzaXvHw9zaPoe/images/gdk/features/console/hardware_accelerated_audio_components.png?fit=max&auto=format&n=CwRBzaXvHw9zaPoe&q=85&s=4972d048c5e99dda9e54b43a160718f0" alt="硬體加速音訊元件" width="800" height="316" data-path="images/gdk/features/console/hardware_accelerated_audio_components.png" />

* 可調整硬體音訊處理引擎 (SHAPE) 構成 XBOX One 上大部分的音訊功能，不過其他處理器也提供了重要的功能。
* 音訊控制處理器 (ACP) 提供狀態管理和排程。
* 音訊純量處理器 (ASP) 支援純量浮點數和向量整數運算。
* 音訊向量處理器 (AVP) 支援向量浮點數運算，主要設計用於多聲道回音消除 (MEC)。

<a id="ID4E6B" />

### SHAPE

SHAPE 是專用於音訊處理的核心硬體。SHAPE 會執行許多以每個語音為基礎通常需要的基本作業。使用 SHAPE，您可以降低 CPU 的負擔 (即使是高複音數和複雜的訊號路由也一樣)，同時在遊戲選擇自訂處理數位訊號或執行分析或軟體合成時，仍能提供 SHAPE 與 CPU 之間資料交換的彈性。

SHAPE 以 128 個樣本的區塊運作，當 CPU 使用時，每個樣本支援 24 位元整數解析度或 32 位元浮點數。在 48 KHz 時，這代表 2.67 毫秒的音訊框架，相較於 XBOX 360 上的 256 個樣本區塊，可提供更高的計時解析度和更低的延遲。

SHAPE 提供下列六個專注於常見音訊工作的固定功能區塊。

* **XMA 解碼器**
  XMA 可同時解碼 512 個 XMA 格式的語音。這是為 XBOX 360 開發的感知編解碼器，提供使用者可調整的品質和壓縮率，壓縮率通常介於 6:1 到 14:1 之間。

* **SRC**
  高品質、專用的多相取樣率轉換器 (SRC) 區塊，可對 512 個單聲道音訊資料進行高效能、高品質的頻率重新取樣。SRC 可用於格式轉換、都卜勒效應或音高變化。

* **混音緩衝區**
  混音緩衝區是 128 個就地混音聲道的專用累加器。它們不需要存取記憶體，而且總共有 8192 個虛擬可用的聲道。混音緩衝區也提供粗略的計量和削波偵測，以用於偵錯和監視。

* **FLTVOL**
  FLTVOL 模組為 2560 個語音或混音提供音量縮放和狀態變數篩選器的實作。它類似於 Windows 和 XBOX 360 上提供的軟體公開 `XAudio2` 每個語音篩選器。此篩選器可以提供低通、高通、帶通和陷波篩選。此篩選器會公開 Q 和截止/中心頻率參數。它最常用於距離和遮蔽模型。

* **EQ/CMP**
  EQ/CMP 模組提供最多 512 個聲道的三頻段等化和動態範圍壓縮。EQ 由三個串聯的雙二階篩選器組成。壓縮器具有硬拐點回應，並支援側鏈和擴展器功能。

* **DMA**
  SHAPE 具有專用的直接記憶體存取 (DMA) 硬體，可在統一記憶體空間之間傳輸音訊資料。DMA 讓各種情境成為可能，例如在不使用取樣率轉換器的情況下傳輸、傳輸最終混音聲道，以及在以 SHAPE 為基礎的音訊圖形中間進行以 CPU 為基礎的處理。

播放一般的音訊圖形預期會大量使用上述每個處理器。

<a id="ID4EXD" />

### ACP

ACP 為北橋上所有其他音訊硬體元件提供狀態管理和排程。不需要讓 CPU 參與框架內處理，也不需要承受其可能帶來的同步或延遲。

<a id="ID4E5D" />

### ASP

ASP 支援純量浮點數和向量整數運算。硬體中提供了語音聊天編解碼器：包括管理語音聊天耳機與主機之間無線通訊的編解碼器，以及用來壓縮和解壓縮 SILK 編解碼器語音資料以進行網路語音通訊的編解碼器。

<a id="ID4EKE" />

### AVP

AVP 支援向量浮點數運算，主要設計用於新一代 Kinect 音訊輸入的 MEC 和其他雜訊降低。AVP 支援語音辨識以及聊天/任意音訊輸入的使用。

MEC 和其他雜訊降低程序可提供更清晰易懂的使用者語音音訊資料串流，即使通話麥克風的位置比較靠近輸出喇叭而不是使用者也一樣。

***

<a id="ID4E3E" />

## 音訊與 XBOX One 硬體

XBOX One 上的音訊輸出管線去除了前一代主機中的數位類比轉換器 (DAC)。所有音訊都嚴格地以數位方式透過 HDMI 1.4a 或 S/PDIF 光纖輸出進行輸出。HDMI 1.4a 允許從主機傳輸高傳真、線性的 7.1 聲道脈衝碼調變 (PCM)。遊戲預設的輸出取樣率為 48 KHz，位元深度為 24 位元。XBOX One 也最多可支援同時輸出至四個立體聲耳機。每個輸出都可以代表獨特的多聲道混音，並根據輸出格式 (例如耳機或 S/PDIF 輸出) 的需求進行降混。

XBOX One 接受來自各種來源的音訊輸入，例如 Kinect 麥克風陣列、語音聊天耳機和雲端資源。此外，音訊可以透過以 CPU 為基礎的運算以演算法產生，並在 CPU 上、透過 SHAPE 硬體元件，或透過這兩種方法即時處理。

***

<a id="ID4EZF" />

## 壓縮格式

XBOX One 支援 XMA2 的硬體解壓縮，相較於未壓縮的 PCM，可大幅減少儲存空間、頻寬和記憶體。`XAudio2` 也針對 xWMA 和適應性差分脈衝碼調變 (ADPCM) 提供軟體解碼支援。雖然 ADPCM 格式的運算負擔很低，但 ADPCM 作為非感知編解碼器，在較低的取樣率下可能會出現明顯的失真。

<Note>xWMA 和 XMA2 都源自為 Windows Media Audio (WMA) 開發的編解碼器，而且兩者都是專為 XBOX 遊戲開發的。XMA2 所使用的可用編解碼器和參數子集比 xWMA 使用的子集小。雖然 xWMA 和 XMA2 都是為 XBOX 開發的，但兩者無法互換：每種檔案格式的標頭不同，而且這些格式與 PC 版本的 Windows 不相容。XMA2 和 xWMA 使用的編解碼器也略有不同，因此每一種都會因所使用的壓縮系統而產生各自的失真。</Note>

下表顯示格式、大約壓縮率和循環功能。

| 格式 | 壓縮率 (約略) | XBOX One | XBOX 360 | 循環功能 |
| - | - | - | - | - |
| PCM | 無 | ✔ | ✔ | 任意 |
| ADPCM | 3.5-4:1 | ✔ 軟體 | | 區塊對齊 |
| XMA2 | 6-14:1 | ✔ 512 硬體 | ✔ 320 硬體 | 128 樣本對齊 |
| xWMA | 20-40:1 | ✔ 軟體 | ✔ 軟體 | 僅限端對端；可能有間隙 |

MP3、OGG 和其他用於遊戲資產的音訊格式，可以透過在 CPU 上執行的遊戲或中介軟體軟體編解碼器來提供。

***

<a id="ID4EOBAC" />

## 音訊與 XBOX One 應用程式模型

在前景時，應用程式可以完整存取 SHAPE 硬體。不過，當應用程式被推入背景釘選、子母畫面或其他情境時，應用程式會放棄硬體控制權。根據預設，其硬體會暫停，並在遊戲返回前景時繼續。對於軟體圖形會暫停的獨佔資源應用程式 (ERA) 也是如此。

遊戲可以選擇卸除其音訊圖形，並在*繼續*時重新建構。某些遊戲，特別是播放背景音樂 (例如串流廣播) 的共用資源應用程式 (SRA)，可能會選擇讓音訊的某些層面即使在暫停時也繼續播放。在這些情境中，遊戲應仔細評估是否要嘗試從硬體轉譯無縫轉換為軟體轉譯，或一律透過純軟體管線播放預定用於背景播放的音訊。這會影響壓縮格式和 CPU 成本。例如，XMA 壓縮的資產需要使用 SHAPE 硬體，因此背景應用程式將無法解碼。

對於選擇配置 CPU 資源的遊戲，`XAudio2` 音訊引擎為許多功能提供軟體路徑。在可行的情況下，這些功能會模擬硬體功能，但某些運算密集的處理在軟體中無法使用或以不同的方式實作。根據應用程式狀態從硬體處理轉換為軟體處理的遊戲，在規劃音訊管線時可能需要考慮這些差異，如下表所示。

\| 功能| XBOX One 硬體功能 | XBOX One 軟體功能 | 是否相同？ |
\| --- | --- | --- | --- | --- | --- | --- | --- | --- |
\| 取樣率轉換| SRC，多相| `XAudio2` 線性插補| 否 |
\| 參數式 EQ| EQ/CMP，三頻段 EQ| 簡單的單頻段 EQ 或自訂數位訊號處理 (DSP)| 否 |
\| 壓縮器/限制器| EQ/CMP，硬拐點、側鏈和擴展器功能| 自訂 DSP| 否 |
\| 篩選| FLTVOL，狀態變數篩選器| `XAudio2` 狀態變數篩選器、單極 LPF 或自訂 DSP| 是 |
\| 混音| 混音緩衝區；包括削波偵測和計量| 軟體混音；用於削波偵測和計量的自訂 DSP| 是，針對混音 |

***

<a id="ID4EJEAC" />

## XBOX One 音訊程式庫

XBOX One 支援兩種用於一般遊戲用途的音訊轉譯 API，以及用於播放使用者音樂的 Windows 8 Media Foundation API 變體。

* `XAudio2` 是以遊戲為主的音訊程式庫，已可在 XBOX 360 和 Windows (從 Windows XP 到 Windows 8) 上使用。我們建議大多數遊戲的開發都使用 `XAudio2`。

* Windows 音訊工作階段 API (WASAPI) 可用於任何自訂、完全以軟體實作的管線。WASAPI 只提供音訊端點功能。用戶端必須實作解壓縮、取樣率轉換、混音和數位訊號處理，以及與 XBOX One 上音訊硬體元件的互動。WASAPI 最常由音訊中介軟體解決方案使用。

<Note>XBOX One 環境不支援 Microsoft 跨平台音訊建立工具 (XACT) 和 `DirectSound`。先前使用這些技術的遊戲應考慮本主題中所列的解決方案，或使用經過核准的 XBOX One 音訊中介軟體選項。</Note>

***

<a id="ID4EBGAC" />

## 總結：立即開始使用

開始為 XBOX One 開發的遊戲內容建立者和實作者，在開始規劃時可以考慮下列事項。

* 規劃 7.1 音訊。這包括預先轉譯和即時內容的平移與定位。考慮您的遊戲將如何使用每個音訊聲道。

* 探索並了解音訊壓縮選項。了解 XMA、xWMA 和 ADPCM 壓縮在聲音和大小上的差異。若要了解 XBOX One 上預期的預算目標，請評估內容的品質和位元速率設定。

* 考慮硬體加速 DSP 的使用模式，特別是當您的遊戲打算實作遮蔽或阻擋的模擬時。

***

## 另請參閱

[XAudio2 概觀](/zh-TW/build/console-features/audio/overviews/xaudio2-overview)
[ADPCM 概觀](/zh-TW/build/console-features/audio/overviews/adpcm-overview)
[SHAPE 概觀](/zh-TW/build/console-features/audio/overviews/shape-overview)
[XMA2 概觀](/zh-TW/build/console-features/audio/overviews/xma2-overview)
[xWMA 概觀](/zh-TW/build/console-features/audio/overviews/xwma-overview)


## Related topics

- [XBOX One 中的音频架构](/zh-CN/build/console-features/audio/overviews/xbox-one-audio-architecture.md)
- [存取 GDK 資源與下載](/zh-TW/home/onboarding-access/access-resources.md)
- [PlayFab Party 版本資訊](/zh-TW/services/playfab/multiplayer/networking/release-notes.md)
- [GetXmaFrameBitPosition](/zh-CN/reference/audio/xma2defs/functions/getxmaframebitposition.md)
- [XDK 与 GDK 音频 API 对比](/zh-CN/build/console-features/audio/overviews/comparison-of-xdk-and-gdk-audio-api.md)
