アプリ開発者向けの空間サウンド Windows Xbox、Hololens 2

注意

このドキュメントは、開発者対象ユーザーを対象にしています。 デバイスで空間サウンドを有効にするためのエンド ユーザー のサポートについては、「デバイスで空間サウンドを有効にする方法」をWindows 10。

Microsoft Spatial Sound は、Xbox、Windows、HoloLens 2 で空間サウンドをサポートするための Microsoft のプラットフォーム レベルのソリューションであり、サラウンドと昇格 (リスナーの上または下) の両方のオーディオ キューを有効にできます。空間サウンドは、Windows デスクトップ (Win32) アプリと、サポートされているプラットフォーム上のユニバーサル Windows Platform (UWP) アプリによって利用できます。 空間サウンド API を使用すると、開発者は、3D 空間内の位置からオーディオを出力するオーディオ オブジェクトを作成できます。 動的オーディオ オブジェクトを使用すると、空間内の任意の位置からオーディオを出力できます。これは時間のとうに変化する可能性があります。 また、オーディオ オブジェクトが、実際または仮想化された話者を表す 17 の定義済みの静的チャネル (8.1.4.4) の 1 つからサウンドを出力することもできます。 実際の出力形式はユーザーによって選択され、Microsoft Spatial Sound の実装から抽象化できます。オーディオは、コードやコンテンツの変更を必要とせずに、既存のスピーカー、ヘッドセット、ホーム レシーバーに表示されます。 このプラットフォームでは、リアルタイムの Dolby Atmos エンコードが完全にサポートされています。このエンコードは、HD とステレオ の両方のステレオ ステレオ出力、DtS:X for し、ステレオ ステレオ 用の Windows Sonic for Headphones エンコードです。 最後に、Microsoft Spatial Sound アプリはシステム の混合ポリシーに基づいており、そのオーディオも非空間対応アプリと混在します。 Microsoft Spatial Sound のサポートは、次のメディア ファンデーション。Media Foundation を使用するアプリは、追加の実装を行う必要がない Dolby Atmos コンテンツを正常に再生できます。

Microsoft Spatial Sound を使用した空間サウンドでは、Dolby Atmos をサポートするテレビ、ホーム ホール、サウンド バーがサポートされています。 空間サウンドは、コンシューマーが所有できる任意のペアリングのヘッドセットと一緒に使用できます。また、Windows Sonic for Headphones、Dolby Atmos for Headphones、または DTS のヘッドセット:X を使用してプラットフォームによってレンダリングされるオーディオを使用できます。

Microsoft Spatial Sound の有効化

ユーザーは、開発者でもコンシューマーでも、空間化されたサウンドを聞くには、デバイスで Microsoft Spatial Sound を有効にする必要があります。

Windows

このWindows、特定のサウンド出力デバイスのプロパティ ページを使用して行われます。 [サウンド] コントロール パネル で、出力デバイスを選択し、[デバイスのプロパティ] をクリックします。 ページの [空間サウンド ] セクションで、デバイスが空間サウンドをサポートしている場合は、[空間サウンド形式] ドロップダウンから使用可能な形式 のいずれかを選択 できます。

サウンド コントロール パネルで空間サウンドを有効にする

タスク バーの [ボリューム] アイコンを右クリックして、Microsoft Spatial Sound を有効にすることもできます。

タスク バーから空間サウンドを有効にする

Xbox One

Xbox Oneでは、Microsoft Spatial Sound 機能は常にコンシューマーで使用できます。また、オーディオ出力 の [全般] -> Volume & の下にある 設定 アプリ を使用して有効になります

設定アプリで Xbox One で空間サウンドを有効にする

ホーム 施設の Dolby Atmos が "Bitstream 形式" として選択された後、この形式のサポートは、EDID (拡張ディスプレイ識別データ) によって確認されます。 形式がサポートされていない場合は、ユーザーにエラー メッセージが表示されます。 このオプションを初めて選択する場合は、ユーザーがアプリをダウンロードDolby Access注意してください。

[BITstream out] 以外の形式が [HD オーディオ] で選択されている場合 、[Bitstream 形式] ドロップダウンは無効になります。

設定アプリで Xbox One で無効になっている空間サウンド

[ヘッドセットDolby Atmos for Headphonesの下にある [ヘッドセットの形式] ドロップダウンから [Windows Sonic for Headphones、DTS Headset:X、または Windows Sonic for Headphones を 選択します

設定アプリで Xbox One のヘッドセットの空間サウンドを有効にする

Microsoft Spatial Sound が使用できない場合 (たとえば、埋め込みノート PC ステレオ スピーカーで再生する場合、またはユーザーが上記で Microsoft Spatial Sound を明示的に有効にしていない場合 )、ISpatialAudioClient::GetMaxDynamicObjectCount によってアプリケーションに返される使用可能な動的オブジェクトの数は 0 になります。

HoloLens 2

このHoloLens 2、Microsoft Spatial Sound は既定で有効にされ、専用に設計されたハードウェア DSP オフロードをWindows Sonic for Headphones。

Microsoft Spatial Sound and Audio Middleware

多くのアプリ開発者やゲーム開発者は、多くの場合、高度なオーサリングツールやゲーム ツールを含むサードパーティ製のオーディオ レンダリング エンジン ソリューションを使用します。 Microsoft は、これらのソリューション プロバイダーのいくつかと提携して、既存のオーサリング環境に Microsoft Spatial Sound を実装しています。 これは、多くの場合、ここで説明する API がアプリのビューから抽象化されるという意味です。これらは、アプリがインスタンス化できるデジタル信号処理 (DSP) プラグインとしてラップされ、アプリのオーディオ実装者は、Microsoft Spatial Sound チャネル のbed、submix、または必要に応じて個々の音声を動的オブジェクト インスタンス プラグインに送信するために使用できます。 Microsoft Spatial Sound のサポートレベルについては、オーディオ ミドルウェア ソリューション プロバイダーに問い合わせください。

オーディオ レンダラー用の Microsoft Spatial Sound

多くのオーディオ レンダラーは、Windows Audio Session API (WASAPI) IAudioClientエンドポイントを対象とします。このエンドポイントでは、混合および形式に準拠したオーディオ データのバッファーが WASAPI オーディオ シンクにフィードされます。その後、配信されたバッファーは、他のクライアントとの混合、最終的なシステム レベルの処理、レンダリングのために使用されます。

Microsoft Spatial Sound 空間エンドポイントは 、IAudioClient と多くの類似点を持つ ISpatialAudioClientとして実装されます。 チャネルの床を形成する静的なサウンド オブジェクトをサポートし、最大 8.1.4.4 チャネル (リスナーの周囲に 8 つのチャネル (左、右、中央、左に戻る、右に戻る、および戻るセンター)、1 つの低周波数効果チャネル、リスナーの上に 4 チャネル、リスナーの下に 4 チャネル) をサポートします。 また 、3D 空間に任意に配置できる動的なサウンド オブジェクトがサポートされています。

ISpatialAudioClient の一般的な実装コーディング パターンは次の通りです。

  • 静的または動的なオーディオ オブジェクトを作成します。
  • システムでレンダリングできるよう、各オブジェクトのオーディオ バッファーに各フレームをフィードします。
  • 動的オブジェクトの 3D 位置を必要に応じて更新する – アプリが望む頻度 (または頻度が低い)。

現在の出力形式 (スピーカーまたはヘッドセット) に注意してください。Windows Sonic for Headphones、Dolby Atmos、または DTS の機能は上記の実装から抽象化されています。アプリ開発者は、形式に基づいてピボットすることなく、空間サウンドに集中できます。 出力形式に基づいて動作を分岐したいアプリは、使用されている形式に対してクエリを実行できますが、抽象化は、これらの形式を処理するためにアプリが必要で "ない" ことを意味します。

Microsoft Spatial Sound とオーディオ レンダラーの統合

ISpatialAudioClientはデータを使用するオーディオ シンクなので、オーディオ レンダラーには、オーディオ データを操作して配信する方法に関するオプションがいくつかあります。 一般的に使用される 3 つの統合手法があります (また、オーディオ ミドルウェアを使用するタイトルの場合は、これらのオプションに基づいて同等のプラグインが使用できる場合があります)。

  • 7.1.4 のパンナーとマスター音声: 7.1 エンドポイントを既にサポートしているレンダラーは 、ISpatialAudioClient 静的チャネル の床でサポートされる 4 つの追加の高さチャネルのサポートを追加することを選択できます。 以前に行ったすべてのチャネル パン (x、y、z 座標を既に利用している可能性があります) を更新して、これらの高さのチャネルを含める必要があります。 多くの場合、レンダラーとアプリのオーディオ ワークフロー、シグナル、フロー、ミックス制御の中断が最小限に抑えることができます。 ヘッドセットでは、アプリの完全な組み合わせが空間化され、ステレオ音楽でもリスナーから "外部化" と認識される可能性があります。
  • 既存のエンドポイントを維持し、さらに 7.1.4 バス (および panners) を追加します。一部のタイトルでは、7.1.4 (または最大 8.1.4.4) をサポートする ISpatialAudioClient 静的チャネル の床と共に、既存のステレオ WASAPI エンドポイント (空間化されていない "直接から耳" のコンテンツ) の 2 つのエンドポイントを維持することを選択できます。 もちろん、2 つのミックス間の相互作用を管理すると、コンテンツ作成者に追加の課題が生まれますが、同期は維持されます。WASAPI インスタンスと ISAC インスタンスの両方が、特定の時点でアクティブな場合、処理に同じバッファー サイズとクロックを使用します。
  • 特定 の音声またはサブミックスに動的なサウンド オブジェクトを使用する: 最も詳細で正確な配置を提供しますが、混在の不透明度が生まれる可能性があります。この手法には 、ISpatialAudioClient 動的サウンド オブジェクトの使用が含まれます。 メタデータとオーディオ バッファーはレンダラーに配信されます。そのため、これらのサウンドはアプリミックスの残りの部分では不透明になります。 さらに、使用可能な動的サウンド オブジェクトの数が限られているので、レンダラーでは、カリング、サウンドのコロケーション、静的チャネル の床へのブレンドなど、事前の手法の実装を検討する必要があります。 ゲームでは、リスナーの上を移動するヒーローなど、個々の "ヒーロー" サウンドに対してこの手法が頻繁に使用されています。

レンダラーは、これらのアプローチ間で組み合わせ、一致する場合があります。

Microsoft Spatial Sound Runtime のリソースへの影響

Xbox Windowsでは、使用可能な音声の数は、使用されている形式によって異なります。 Dolby Atmos 形式では、合計 32 のアクティブなオブジェクトがサポートされます (したがって、7.1.4 チャネル の床が使用されている場合は、20 の動的サウンド オブジェクトを追加でアクティブにできます)。 Windows Sonic for Headphones では、低頻度効果 (LFE) チャネルが実際にはオブジェクトとしてカウントされない 128 の合計アクティブ オブジェクトがサポートされています。そのため、8.1.4.4 チャネル の床が使用されている場合、112 の動的なサウンド オブジェクトをアクティブにできます。

Xbox One ゲーム コンソール上で実行されているユニバーサル Windows Platform アプリの場合、リアルタイム エンコード (ホーム ステージの場合は Dolby Atmos、Dolby Atmos for Headphones、DTS の場合は、DtS の支払い:X、Windows Sonic for Headphones) は、CPU コストをかからずにハードウェアで実行されます。

フォーマット 最大静的オブジェクト (チャネル の床) 動的オブジェクトの最大値
Xbox One
動的オブジェクトの最大値
Windows
動的オブジェクトの最大値
HoloLens 2
Dolby Atmos (HD) 12 (7.1.4) 20 20 NA
Dolby Atmos (ヘッドセット&組み込みスピーカー) 17 (8.1.4.4) 16 16 NA
DTS ヘッドセット:X (ヘッドセット) 17 (8.1.4.4) 16 32 NA
Windows Sonic for Headphones 17 (8.1.4.4) 15 112 31

アプリでは、次のリソースへの影響についても考慮する必要があります。

  • Storage/ディスク帯域幅: 7.1.4 に事前に作成された線形コンテンツは、通常7.1 の線形コンテンツよりも大きくなります (ただし、知覚コーデックでは、既にチャネルの相関関係を利用して、オーディオデータの50% 以上の実際のチャネルよりもはるかに小さい) ことができます。
  • その他のデジタル信号処理コスト: 以前のグローバル効果のいくつかは、動的サウンドオブジェクトごとにインスタンス化されるようになりました。 また、一部のコンテンツ作成者は、追加のチャネルをサポートするために一部の DSP 効果を更新したり、独自に使用したりできます。

Microsoft 空間サウンドとサウンド Spatialization のキュー

Microsoft の空間サウンドは、リスナーを中心にした、シミュレートされた球体でのサウンドポジショニングのシミュレーションに焦点を合わせています。 Windows Sonic for Headphones、DTS ヘッドホン: X、Dolby Atmos では、スピーカーのマッピングと仮想化をヘッドホンに実装していますが、既にコンテンツ作成者が有効な方法で実装されているサウンド空間シミュレーションの他の多くの側面は、既存のエンジンに残されています。 コンテンツ作成者は、既にあるゲームツールとプロセスを、ドップラー、距離ベースの減衰とフィルター処理、遮蔽と障害物、および環境リバーブとして使用します。

その他のリソース

空間サウンドインターフェイス

インターフェイス 説明
ISpatialAudioClient クライアントが3D 空間内の位置からオーディオを出力するオーディオストリームを作成できるようにします。
ISpatialAudioObject 3D 空間内の位置からユーザーを基準としてレンダリングされるオーディオデータを提供するオブジェクトを表します。
ISpatialAudioObjectRenderStream ストリームの開始、停止、リセットなど、空間オーディオオブジェクトのレンダーストリームを制御するメソッドを提供します。
ISpatialAudioObjectRenderStreamNotify ISpatialAudioObjectRenderStream の状態の変化に対応するための、空間オーディオクライアントの通知を提供します。

注意

Xbox One Development Kit (XDK) のタイトルで ISpatialAudioClientインターフェイスを使用する場合は、 IMMDeviceEnumerator:: enumaudioendpointsまたは IMMDeviceEnumerator:: GetDefaultAudioEndpointを呼び出す前に、まず enabl を呼び出す必要があります。 これを行わないと、 _ アクティブ化するために、呼び出しから E nointerface エラーが返されます。 enablalalaudio は、XDK タイトルに対してのみ使用できます。また、Xbox One で実行されているアプリ、または非 Xbox One デバイスに対してもユニバーサル Windows プラットフォーム呼び出す必要はありません。

空間サウンド構造体

構造体 説明
SpatialAudioObjectRenderStreamActivationParams 空間オーディオレンダリングストリームのアクティベーションパラメーターを表します。
SpatialAudioClientActivationParams 空間オーディオレンダリングストリームの省略可能なアクティベーションパラメーターを表します。

空間サウンド列挙型

列挙 説明
AudioObjectType ISpatialAudioObject の種類を指定します。