図は、単に説明の目的で本開示の実施形態を図示する。本明細書で説明される開示の原理またはうたわれている利益から逸脱することなく、本明細書で示される構造および方法の代替実施形態が採用され得ることを、当業者は以下の説明から容易に認識されよう。
本開示の実施形態は、人工現実システムを含むか、または人工現実システムとともに実装され得る。人工現実は、ユーザへの提示の前に何らかの様式で調整された形式の現実であり、これは、たとえば、仮想現実(VR)、拡張現実(AR)、複合現実(MR)、ハイブリッド現実、あるいはそれらの何らかの組合せおよび/または派生物を含み得る。人工現実コンテンツは、完全に生成されたコンテンツ、またはキャプチャされた(たとえば、現実世界の)コンテンツと組み合わせられた生成されたコンテンツを含み得る。人工現実コンテンツは、ビデオ、オーディオ、触覚フィードバック、またはそれらの何らかの組合せを含み得、それらのいずれも、単一のチャネルまたは複数のチャネルにおいて提示され得る(観察者に3次元効果をもたらすステレオビデオなど)。さらに、いくつかの実施形態では、人工現実は、たとえば、人工現実におけるコンテンツを作成するために使用される、および/または人工現実において別様に使用される(たとえば、人工現実におけるアクティビティを実施する)アプリケーション、製品、アクセサリ、サービス、またはそれらの何らかの組合せにも関連し得る。人工現実コンテンツを提供する人工現実システムは、ヘッドセット、ホストコンピュータシステムに接続されたヘッドマウントディスプレイ(HMD)、スタンドアロンHMD、ニアアイディスプレイ(NED)、モバイルデバイスまたはコンピューティングシステム、あるいは、1人または複数の観察者に人工現実コンテンツを提供することが可能な任意の他のハードウェアプラットフォームを含む、様々なプラットフォーム上に実装され得る。
ルームモードの局所効果を組み込むための音響フィルタの決定のためのオーディオシステムが本明細書で提示される。オーディオアセンブリによって提示されるオーディオコンテンツは、ユーザのターゲットエリアに関連するルームモードによって引き起こされることになる音響ひずみ(たとえば、周波数と位置との関数としての増幅)が、提示されたオーディオコンテンツの一部であり得るように、音響フィルタを使用してフィルタ処理される。本明細書で使用される増幅は、信号強度の増加または減少を表すために使用され得ることに留意されたい。ターゲットエリアは、ユーザによって占有されるローカルエリア、または仮想エリアであり得る。仮想エリアは、ローカルエリア、何らかの他の仮想エリア、またはそれらの何らかの組合せに基づき得る。たとえば、ローカルエリアは、オーディオシステムのユーザによって占有されているリビングルームであり得、仮想エリアは、仮想コンサートスタジアムまたは仮想会議室であり得る。
オーディオシステムは、オーディオサーバに通信可能に結合されたオーディオアセンブリを含む。オーディオアセンブリは、ユーザによって装着されるヘッドセット上に実装され得る。オーディオアセンブリは、1つまたは複数のルームモードパラメータをオーディオサーバに(たとえば、ネットワークを介して)要求し得る。要求は、たとえば、ターゲットエリアの少なくとも一部の視覚情報(深度情報、カラー情報など)、ユーザのロケーション情報、仮想音源のロケーション情報、ユーザによって占有されるローカルエリアの視覚情報、またはそれらの何らかの組合せを含み得る。
オーディオサーバは、1つまたは複数のルームモードパラメータを決定する。オーディオサーバは、要求中の情報を使用してターゲットエリアのモデルを識別および/または生成する。いくつかの実施形態では、オーディオサーバは、要求中のターゲットエリアの視覚情報に基づいてターゲットエリアの少なくとも一部分の3D仮想表現を展開する。オーディオサーバは、複数の候補モデルからモデルを選択するために3D仮想表現を使用する。オーディオサーバは、モデルを使用することによってターゲットエリアのルームモードを決定する。たとえば、オーディオサーバは、モデルの形状または次元に基づいてルームモードを決定する。ルームモードは、1つまたは複数のタイプのルームモードを含み得る。ルームモードのタイプは、たとえば、軸モード、正接モード、および斜交モードを含み得る。各タイプについて、ルームモードは、1次モード、より高次のモード、またはそれらの何らかの組合せを含み得る。オーディオサーバは、ルームモードのうちの少なくとも1つとユーザの位置とに基づいて1つまたは複数のルームモードパラメータ(たとえば、Qファクタ、利得、振幅、モーダル周波数など)を決定する。オーディオサーバは、ルームモードパラメータを決定するために仮想音源のロケーション情報をも使用し得る。たとえば、オーディオサーバは、ルームモードが喚起(excite)されるか否かを決定するために仮想音源のロケーション情報を使用する。オーディオサーバは、仮想音源が腹位置に位置することに基づいて、ルームモードが喚起されないと決定し得る。
ルームモードパラメータは、オーディオコンテンツに適用されたとき、ターゲットエリア内のユーザの位置における音響ひずみをシミュレートする、音響フィルタを表す。音響ひずみは、少なくとも1つのルームモードに関連する周波数における増幅を表現し得る。オーディオサーバは、ルームモードパラメータのうちの1つまたは複数をヘッドセットに送信する。
オーディオアセンブリは、オーディオサーバからの1つまたは複数のルームモードパラメータを使用して音響フィルタを生成する。オーディオアセンブリは、生成された音響フィルタを使用してオーディオコンテンツを提示する。いくつかの実施形態では、オーディオアセンブリは、ユーザの位置の変化および/またはユーザと仮想オブジェクトとの間の相対位置の変化を動的に検出し、それらの変化に基づいて音響フィルタを更新する。
いくつかの実施形態では、オーディオコンテンツは空間化されたオーディオコンテンツである。空間化されたオーディオコンテンツは、オーディオコンテンツがユーザの周辺の環境中の1つまたは複数のポイントから(たとえば、ターゲットエリア中の仮想オブジェクトから)発生するように思われるような様式で提示される、オーディオコンテンツである。
いくつかの実施形態では、ターゲットエリアは、ユーザのローカルエリアであり得る。たとえば、ターゲットエリアは、ユーザが座るオフィスルームである。ターゲットエリアが実際のオフィスであるので、オーディオアセンブリは、現実の音源がオフィスルーム中の特定のロケーションからどのように聞こえることになるかに従う様式で、提示されたオーディオコンテンツが空間化されることを引き起こす、音響フィルタを生成する。
いくつかの他の実施形態では、ターゲットエリアは、(たとえば、ヘッドセットを介して)ユーザに提示されている仮想エリアである。たとえば、ターゲットエリアは仮想会議室であり得る。ターゲットエリアが仮想会議室であるので、オーディオアセンブリは、現実の音源が仮想会議室中の特定のロケーションからどのように聞こえることになるかに従う様式で、提示されたオーディオコンテンツが空間化されることを引き起こす、音響フィルタを生成する。たとえば、ユーザは仮想コンテンツを提示され得、これにより、仮想コンテンツは、仮想話者がスピーチをするのを見る仮想オーディエンスとともに、ユーザが着座しているかのように思われるようになる。また、音響フィルタによって修正された提示されたオーディオコンテンツにより、オーディオコンテンツは、話者が会議室において話しているかのようにユーザに聞こえるようになり、これは、ユーザが実際は(大きい会議室とは著しく異なる音響特性を有することになる)オフィスルームにいるにもかかわらずである。
図1は、1つまたは複数の実施形態による、部屋100におけるルームモードの局所効果を示す。音源105が、部屋100中に位置し、部屋100に音波を放出する。音波は、部屋100の基本共振を引き起こし、部屋100においてルームモードが生じる。図1は、部屋の第1のモーダル周波数における1次モード110と、第1のモーダル周波数の2倍である第2のモーダル周波数における2次モード120とを示す。図1に示されていないが、より高次のルームモードが部屋100において存在することがある。1次モード110と2次モード120は両方とも軸モードであり得る。
ルームモードは、部屋100の形状、次元、および/または音響特性に依存する。ルームモードは、部屋100内の異なる位置において異なる量の音響ひずみを引き起こす。音響ひずみは、モーダル周波数(およびモーダル周波数の倍数)におけるオーディオ信号の正の増幅(すなわち、振幅の増加)または負の増幅(すなわち、減衰)であり得る。
1次モード110と2次モード120とは、部屋100の異なる位置においてピークとディップとを有し、ピークとディップとは、部屋100内の周波数と位置との関数としての音波の増幅の異なるレベルを引き起こす。図1は、部屋100内の3つの異なる位置130、140、および150を示す。位置130において、1次モード110および2次モード120は各々ピークを有する。位置140に移動すると、1次モード110と2次モード120の両方が減少し、2次モード120はディップを有する。位置150にさらに移動すると、1次モード110におけるヌルと2次モード120におけるピークとがある。1次モード110の効果と2次モード120の効果とを組み合わせると、オーディオ信号の増幅は、位置130において最も高く、位置150において最も低い。したがって、ユーザによって知覚される音は、ユーザがどんな部屋にいるか、および、ユーザがその部屋の中のどこにいるかに基づいて、劇的に変動することがある。以下で説明されるように、ユーザによって占有されるターゲットエリアについてのルームモードをシミュレートし、追加されたレベルのリアリズムをユーザに提供するためにルームモードを考慮に入れてユーザにオーディオコンテンツを提示する、システムが説明される。
図2は、1つまたは複数の実施形態による、立方体の部屋の軸モード210と、正接モード220と、斜交モード230とを示す。ルームモードは、様々な部屋表面から反射する音によって引き起こされる。図2中の部屋は、立方体の形状を有し、6つの表面、すなわち、4つの壁と、1つの天井と、1つの床とを含む。部屋において3つのタイプのモード、すなわち、軸モード210と、正接モード220と、斜交モード230とがあり、それらのモードは、図2では破線によって表現される。軸モード210は、部屋の2つの平行な表面間の共振を伴う。3つの軸モード210が部屋において生じ、1つは、天井と床とを伴い、他の2つは、各々、平行な壁のペアを伴う。他の形状の部屋では、異なる数の軸モード210が生じ得る。正接モード220は、平行な表面の2つのセット、すなわち、すべての4つの壁、または、天井と床とをもつ2つの壁を伴う。斜交ルームモード230は、部屋のすべての6つの表面を伴う。
軸ルームモード210は、3つのタイプのモードのうちで最も強い。正接ルームモード220は、軸ルームモード210の半分の強さであり得、斜交ルームモード230は、軸ルームモード210の1/4の強さであり得る。いくつかの実施形態では、オーディオコンテンツに適用されたとき、部屋における音響ひずみをシミュレートする音響フィルタが、軸ルームモード210に基づいて決定される。いくつかの他の実施形態では、正接ルームモード220および/または斜交ルームモード230も、音響フィルタを決定するために使用される。軸ルームモード210、正接ルームモード220、および斜交ルームモード230の各々は、一連のモーダル周波数において生じることがある。3つのタイプのルームモードのモーダル周波数は異なり得る。
図3は、1つまたは複数の実施形態による、オーディオシステム300のブロック図である。オーディオシステム300は、ネットワーク330を介してオーディオサーバ320に接続されたヘッドセット310を含む。ヘッドセット310は、部屋350中のユーザ340によって装着され得る。
ネットワーク330は、ヘッドセット310をオーディオサーバ320に接続する。ネットワーク330は、ワイヤレス通信システムおよび/またはワイヤード通信システムの両方を使用する、ターゲットエリアネットワークおよび/またはワイドエリアネットワークの任意の組合せを含み得る。たとえば、ネットワーク330は、インターネット、ならびに携帯電話網を含み得る。一実施形態では、ネットワーク330は、標準通信技術および/またはプロトコルを使用する。したがって、ネットワーク330は、イーサネット、802.11、ワールドワイドインターオペラビリティフォーマイクロウェーブアクセス(WiMAX)、2G/3G/4Gモバイル通信プロトコル、デジタル加入者回線(DSL)、非同期転送モード(ATM)、InfiniBand、PCI Expressアドバンストスイッチングなどの技術を使用するリンクを含み得る。同様に、ネットワーク330上で使用されるネットワーキングプロトコルは、マルチプロトコルラベルスイッチング(MPLS)、伝送制御プロトコル/インターネットプロトコル(TCP/IP)、ユーザデータグラムプロトコル(UDP)、ハイパーテキストトランスポートプロトコル(HTTP)、簡易メール転送プロトコル(SMTP)、ファイル転送プロトコル(FTP)などを含むことができる。ネットワーク330を介して交換されるデータは、2進形式(たとえばポータブルネットワークグラフィックス(PNG))の画像データ、ハイパーテキストマークアップ言語(HTML)、拡張可能マークアップ言語(XML)などを含む、技術および/またはフォーマットを使用して表現され得る。さらに、リンクの全部または一部は、セキュアソケットレイヤ(SSL)、トランスポートレイヤセキュリティ(TLS)、仮想プライベートネットワーク(VPN)、インターネットプロトコルセキュリティ(IPsec)など、従来の暗号化技術を使用して暗号化され得る。ネットワーク330はまた、同じまたは異なる部屋中に位置する複数のヘッドセットを同じオーディオサーバ320に接続し得る。
ヘッドセット310は、ユーザにメディアコンテンツを提示する。一実施形態では、ヘッドセット310は、たとえば、NEDまたはHMDであり得る。概して、ヘッドセット310は、メディアコンテンツが、ヘッドセット310の一方または両方のレンズを使用して提示されるように、ユーザの顔に装着され得る。しかしながら、ヘッドセット310はまた、メディアコンテンツが異なる様式でユーザに提示されるように使用され得る。ヘッドセット310によって提示されるメディアコンテンツの例は、1つまたは複数の画像、ビデオコンテンツ、オーディオコンテンツ、またはそれらの何らかの組合せを含む。ヘッドセット310は、オーディオアセンブリを含み、少なくとも1つの深度カメラアセンブリ(DCA)および/または少なくとも1つのパッシブカメラアセンブリ(PCA)をも含み得る。図8に関して以下で詳細に説明されるように、DCAは、ターゲットエリア(たとえば、部屋350)の一部または全部についての3Dジオメトリを表す深度画像データを生成し、PCAは、ターゲットエリアの一部または全部についてのカラー画像データを生成する。いくつかの実施形態では、ヘッドセット310のDCAおよびPCAは、部屋350の視覚情報を決定するためにヘッドセット310上に取り付けられた同時位置特定およびマッピング(SLAM)センサーの一部である。したがって、少なくとも1つのDCAによってキャプチャされた深度画像データおよび/または少なくとも1つのPCAによってキャプチャされたカラー画像データは、ヘッドセット310のSLAMセンサーによって決定された視覚情報と呼ばれることがある。さらに、ヘッドセット310は、ターゲットエリア内のヘッドセット310の位置(たとえば、ロケーションおよび姿勢)を追跡する位置センサーまたは慣性測定ユニット(IMU)を含み得る。ヘッドセット310は、ターゲットエリア内のヘッドセット310のロケーションをさらに追跡するための全地球測位システム(GPS)受信機をも含み得る。ターゲットエリア内のヘッドセット310の位置(配向を含む)は、ヘッドセット310のロケーション情報と呼ばれる。ヘッドセットのロケーション情報は、ヘッドセット310のユーザ340の位置を指示し得る。
オーディオアセンブリは、ユーザ340にオーディオコンテンツを提示する。オーディオコンテンツは、オーディオコンテンツがターゲットエリア中のオブジェクト(現実のまたはオブジェクト)から発生するように思われるような様式で提示され、空間化されたオーディオコンテンツとしても知られ得る。ターゲットエリアは、部屋350など、ユーザの物理的環境、または仮想エリアであり得る。たとえば、オーディオアセンブリによって提示されるオーディオコンテンツは、仮想会議室中の仮想話者から発生するように思われ得る(これは、ヘッドセット310を介してユーザ340に提示されている)。いくつかの実施形態では、ターゲットエリア内のユーザ340の位置に関連するルームモードの局所効果がオーディオコンテンツに組み込まれる。ルームモードの局所効果は、ターゲットエリア内のユーザ340の位置において生じる(特定の周波数の)音響ひずみによって表現される。音響ひずみは、ターゲットエリア中のユーザの位置が変化するにつれて、変化し得る。いくつかの実施形態では、ターゲットエリアは部屋350である。いくつかの他の実施形態では、ターゲットエリアは仮想エリアである。仮想エリアは、部屋350とは異なる現実の部屋に基づき得る。たとえば、部屋350はオフィスである。ターゲットエリアは、会議室に基づく仮想エリアである。オーディオアセンブリによって提示されるオーディオコンテンツは、会議室中に位置する話者からのスピーチであり得る。会議室内の位置が、ターゲットエリア内のユーザの位置に対応する。オーディオコンテンツは、オーディオコンテンツが、会議室の話者から発生し、会議室内の位置において受信されているように思われるように、レンダリングされる。
オーディオアセンブリは、ルームモードの局所効果を組み込むために音響フィルタを使用する。オーディオアセンブリは、オーディオサーバ320にルームモードクエリを送ることによって音響フィルタを要求する。ルームモードクエリは、1つまたは複数のルームモードパラメータについての要求であり、1つまたは複数のルームモードパラメータに基づいて、オーディオアセンブリは、オーディオコンテンツに適用されたとき、ルームモードによって引き起こされることになる音響ひずみ(たとえば、周波数と位置との関数としての増幅)をシミュレートする、音響フィルタを生成することができる。ルームモードクエリは、ターゲットエリア(たとえば、部屋350または仮想エリア)の一部または全部を表す視覚情報、ユーザのロケーション情報、オーディオコンテンツの情報、またはそれらの何らかの組合せを含み得る。視覚情報は、ターゲットエリアの一部または全部の3Dジオメトリを表し、ターゲットエリアの一部または全部のカラー画像データをも含み得る。いくつかの実施形態では、ターゲットエリアの視覚情報は、(たとえば、ターゲットエリアが部屋350である実施形態において)ヘッドセット310および/または異なるデバイスによってキャプチャされ得る。ユーザのロケーション情報は、ターゲットエリア内のユーザ340の位置を指示し、ヘッドセット310のロケーション情報、またはユーザ340の位置を表す情報を含み得る。オーディオコンテンツの情報は、たとえば、オーディオコンテンツの仮想音源のロケーションを表す情報を含む。オーディオコンテンツの仮想音源は、ターゲットエリア中の現実オブジェクトおよび/または仮想オブジェクトであり得る。ヘッドセット310は、ネットワーク330を介してオーディオサーバ320にルームモードクエリを通信し得る。
いくつかの実施形態では、ヘッドセット310は、オーディオサーバ320から、音響フィルタを表す1つまたは複数のルームモードパラメータを取得する。ルームモードパラメータは、オーディオコンテンツに適用されたとき、ターゲットエリアにおける1つまたは複数のルームモードによって引き起こされる音響ひずみをシミュレートする、音響フィルタを表すパラメータである。ルームモードパラメータは、ルームモードのQファクタ、利得、振幅、モーダル周波数、音響フィルタを表す他の特徴、またはそれらの何らかの組合せを含む。ヘッドセット310は、オーディオコンテンツをレンダリングするためのフィルタを生成するために、ルームモードパラメータを使用する。たとえば、ヘッドセット310は、無限インパルス応答フィルタおよび/または全域通過フィルタを生成する。無限インパルス応答フィルタおよび/または全域通過フィルタは、各モーダル周波数に対応するQ値および利得を含む。ヘッドセット310の動作および構成要素に関する追加の詳細は、図4、図8、および図9に関して以下で説明される。
オーディオサーバ320は、ヘッドセット310から受信されたルームモードクエリに基づいて1つまたは複数のルームモードパラメータを決定する。オーディオサーバ320は、ターゲットエリアのモデルを決定する。いくつかの実施形態では、オーディオサーバ320は、ターゲットエリアの視覚情報に基づいてモデルを決定する。たとえば、オーディオサーバ320は、視覚情報に基づいてターゲットエリアの少なくとも一部分の3D仮想表現を取得する。オーディオサーバ320は、3D仮想表現を候補モデルのグループと比較し、3D仮想表現にマッチする候補モデルをモデルとして識別する。いくつかの実施形態では、候補モデルは、部屋の形状、部屋の1つまたは複数の次元、または部屋内の表面の材料音響パラメータ(たとえば、減衰パラメータ)を含む、部屋のモデルである。候補モデルのグループは、異なる形状、異なる次元、および異なる表面を有する、部屋のモデルを含むことができる。ターゲットエリアの3D仮想表現は、ターゲットエリアの形状および/または次元を定義する、ターゲットエリアの3Dメッシュを含む。3D仮想表現は、ターゲットエリア内の表面の音響特性を表すために1つまたは複数の材料音響パラメータ(たとえば、減衰パラメータ)を使用し得る。オーディオサーバ320は、候補モデルと3D仮想表現との間の差がしきい値を下回るという決定に基づいて、候補モデルが3D仮想表現にマッチすると決定する。差は、表面の形状、次元、音響特性などの差を含み得る。いくつかの実施形態では、オーディオサーバ320は、候補モデルと3D仮想表現との間の差を決定するために、適合メトリック(fit metric)を使用する。適合メトリックは、ハウスドルフ距離(Hausdorff distance)の2乗誤差、開放性(たとえば屋内対屋外)、ボリュームなど、1つまたは複数の幾何学的特徴に基づき得る。しきい値は、ルームモード変化の知覚的丁度可知差(JND:just noticeable difference)に基づき得る。たとえば、ユーザがモーダル周波数の10%の変化を検出することができる場合、最高10%のモーダル周波数変化を生じることになる幾何学的偏差が許容されることになる。しきい値は、10%のモーダル周波数変化を生じることになる幾何学的偏差であり得る。
オーディオサーバ320は、モデルを使用してターゲットエリアのルームモードを決定する。たとえば、オーディオサーバ320は、ルームモードを決定するために、数値シミュレーション技法(たとえば、有限要素法、境界要素法、有限差分時間領域法など)など、従来の技法を使用する。いくつかの実施形態では、オーディオサーバ300は、ルームモードを決定するためのモデルの形状、次元、および/または材料音響パラメータに基づいて、ルームモードを決定する。ルームモードは、軸モード、正接モード、および斜交モードのうちの1つまたは複数を含み得る。いくつかの実施形態では、オーディオサーバ320は、ユーザの位置に基づいてルームモードを決定する。たとえば、オーディオサーバ320は、ユーザの位置に基づいてターゲットエリアを識別し、識別に基づいてターゲットエリアのルームモードを取り出す。
オーディオサーバ330は、ルームモードのうちの少なくとも1つとターゲットエリア内のユーザの位置とに基づいて、1つまたは複数のルームモードパラメータを決定する。ルームモードパラメータは、オーディオコンテンツに適用されたとき、少なくとも1つのルームモードに関連する周波数について、ターゲットエリア内のユーザの位置において生じる音響ひずみをシミュレートする、音響フィルタを表す。オーディオサーバ320は、オーディオコンテンツをレンダリングするために、ルームモードパラメータをヘッドセット310に送信する。いくつかの実施形態では、オーディオサーバ330は、ルームモードパラメータに基づいて音響フィルタを生成し得、音響フィルタをヘッドセット310に送信する。
図4は、1つまたは複数の実施形態による、オーディオサーバ400のブロック図である。オーディオサーバ400の一実施形態がオーディオサーバ300である。オーディオサーバ400は、オーディオアセンブリからのルームモードクエリに応答して、ターゲットエリアの1つまたは複数のルームモードパラメータを決定する。オーディオサーバ400は、データベース410と、マッピングモジュール420と、マッチングモジュール430と、ルームモードモジュール440と、音響フィルタモジュール450とを含む。他の実施形態では、オーディオサーバ400は、任意の追加のモジュールとともにリストされたモジュールの任意の組合せを有することができる。オーディオサーバ400の1つまたは複数のプロセッサ(図示せず)が、オーディオサーバ400内のモジュールの一部または全部を稼働し得る。
データベース410は、オーディオサーバ400のためのデータを記憶する。記憶されたデータは、仮想モデル、候補モデル、ルームモード、ルームモードパラメータ、音響フィルタ、オーディオデータ、視覚情報(深度情報、カラー情報など)、ルームモードクエリ、オーディオサーバ400によって使用され得る他の情報、またはそれらの何らかの組合せを含み得る。
仮想モデルは、1つまたは複数のエリアと、それらのエリアの音響特性(たとえば、ルームモード)とを表す。仮想モデル中の各ロケーションが、対応するエリアについての音響特性(たとえば、ルームモード)に関連する。音響特性が仮想モデル中に表されるエリアは、仮想エリア、物理的エリア、またはそれらの何らかの組合せを含む。物理的エリアは、仮想エリアとは対照的な、現実のエリア(たとえば、実際の物理的部屋)である。物理的エリアの例は、会議室、浴室、廊下、オフィス、ベッドルーム、ダイニングルーム、屋外スペース(たとえば、パティオ、庭園、公園など)、リビングルーム、オーディトリアム、何らかの他の現実のエリア、またはそれらの何らかの組合せを含む。仮想エリアは、完全に架空であり、および/または現実の物理的エリアに基づき得る(たとえば、物理的部屋を仮想エリアとしてレンダリングする)、スペースを表す。たとえば、仮想エリアは、架空化された地下牢、仮想会議室のレンダリングなどであり得る。仮想エリアは現実の場所に基づき得ることに留意されたい。たとえば、仮想会議室は、現実の会議場に基づき得る。仮想モデル中の特定のロケーションは、部屋350内のヘッドセット310の現在の物理的ロケーションに対応し得る。部屋350の音響特性は、マッピングモジュール420から取得された仮想モデル内のロケーションに基づいて、仮想モデルから取り出され得る。
ルームモードクエリは、ターゲットエリア内のユーザの位置について、ターゲットエリアのルームモードの効果を組み込むために使用される音響フィルタを表す、ルームモードパラメータについての要求である。ルームモードクエリは、ターゲットエリア情報、ユーザ情報、オーディオコンテンツ情報、オーディオサーバ320が音響フィルタを決定するために使用することができる何らかの他の情報、またはそれらの何らかの組合せを含む。ターゲットエリア情報は、ターゲットエリアを表す情報(たとえば、ターゲットエリアのジオメトリ、ターゲットエリア内のオブジェクト、材料、カラーなど)である。ターゲットエリア情報は、ターゲットエリアの深度画像データ、ターゲットエリアのカラー画像データ、またはそれらの何らかの組合せを含み得る。ユーザ情報は、ユーザを表す情報である。ユーザ情報は、ターゲットエリア内のユーザの位置を表す情報、ユーザが物理的に位置する物理的エリアの情報、またはそれらの何らかの組合せを含み得る。オーディオコンテンツ情報は、オーディオコンテンツを表す情報である。オーディオコンテンツ情報は、オーディオコンテンツの仮想音源のロケーション情報、オーディオコンテンツの物理的音源のロケーション情報、またはそれらの何らかの組合せを含み得る。
候補モデルは、異なる形状および/または次元を有する、部屋のモデルであり得る。オーディオサーバ400は、ターゲットエリアのモデルを決定するために候補モデルを使用する。
マッピングモジュール420は、ルームモードクエリ中の情報を仮想モデル内のロケーションにマッピングする。マッピングモジュール420は、ターゲットエリアに対応する仮想モデル内のロケーションを決定する。いくつかの実施形態では、マッピングモジュール420は、(i)ターゲットエリアの情報および/またはユーザの位置の情報と、(ii)仮想モデル内のエリアの対応する構成との間のマッピングを識別するために、仮想モデルを検索する。仮想モデル内のエリアは、物理的エリアおよび/または仮想エリアを表し得る。一実施形態では、マッピングは、ターゲットエリアの視覚情報のジオメトリを、仮想モデル内のロケーションに関連するジオメトリとマッチングすることによって実施される。別の実施形態では、マッピングは、ユーザの位置の情報を仮想モデル内のロケーションとマッチングすることによって実施される。たとえば、ターゲットエリアが仮想エリアである実施形態では、マッピングモジュール420は、ユーザの位置を指示する情報に基づいて、仮想モデル中の仮想エリアに関連するロケーションを識別する。マッチは、仮想モデル内のロケーションがターゲットエリアの表現であることを示唆する。
マッチが見つけられた場合、マッピングモジュール420は、仮想モデル内のロケーションに関連するルームモードを取り出し、ルームモードパラメータを決定するためにルームモードを音響フィルタモジュール450に送る。いくつかの実施形態では、仮想モデルは、ターゲットエリアにマッチする仮想モデル内のロケーションに関連するルームモードを含まないが、ロケーションに関連する候補モデルを含む。マッピングモジュール420は、候補モデルを取り出し得、ターゲットエリアのルームモードを決定するために候補モデルをルームモードモジュール440に送る。いくつかの実施形態では、仮想モデルは、ターゲットエリアにマッチする仮想モデル内のロケーションに関連する、ルームモードまたは候補モデルを含まない。マッピングモジュール420は、ロケーションの3D表現を取り出し得、ターゲットエリアのモデルを決定するためにその3D表現をマッチングモジュール440に送る。
マッチが見つけられない場合、これは、ターゲットエリアの構成が仮想モデルによってまだ表されていないという指示である。そのような場合、マッピングモジュール420は、ルームモードクエリ中の視覚情報に基づいてターゲットエリアの3D仮想表現を展開し、3D仮想表現により仮想モデルを更新し得る。ターゲットエリアの3D仮想表現は、ターゲットエリアの3Dメッシュを含み得る。3Dメッシュは、ターゲットエリアの境界を表現するポイントおよび/またはラインを含む。3D仮想表現は、壁、天井、床、家具の表面、器具の表面、他のタイプのオブジェクトの表面など、ターゲットエリア内の表面の仮想表現をも含み得る。いくつかの実施形態では、仮想モデルは、仮想エリア内の表面の音響特性を表すために1つまたは複数の材料音響パラメータ(たとえば、減衰パラメータ)を使用する。いくつかの実施形態では、マッピングモジュール420は、3D仮想表現を含み、仮想エリア内の表面の音響特性を表すために1つまたは複数の材料音響パラメータを使用する、新しいモデルを展開し得る。新しいモデルはデータベース410中に保存され得る。
マッピングモジュール420はまた、マッチングモジュール430とルームモードモジュール440とのうちの少なくとも1つに、マッチが見つけられないことを知らせ得、したがって、マッチングモジュール430は、ターゲットエリアのモデルを決定することができ、ルームモードモジュール440は、モデルを使用することによってターゲットエリアのルームモードを決定することができる。
いくつかの実施形態では、マッピングモジュール420は、ユーザが物理的に位置するローカルエリア(たとえば、部屋350)に対応する、仮想モデル内のロケーションをも決定し得る。
ターゲットエリアは、ローカルエリアとは異なり得る。たとえば、ローカルエリアは、ユーザが座るオフィスルームであるが、ターゲットエリアは仮想エリア(たとえば、仮想会議室)である。
マッチが見つけられた場合、マッピングモジュール420は、ターゲットエリアに対応する仮想モデル内のロケーションに関連するルームモードを取り出し、ルームモードパラメータを決定するためにルームモードを音響フィルタモジュール450に送る。マッチが見つけられない場合、マッピングモジュール420は、ルームモードクエリ中の視覚情報に基づいてターゲットエリアの3D仮想表現を展開し、ターゲットエリアの3D仮想表現により仮想モデルを更新し得る。マッピングモジュール420はまた、マッチングモジュール430とルームモードモジュール440とのうちの少なくとも1つに、マッチが見つけられないことを知らせ得、したがって、マッチングモジュール430は、ターゲットエリアのモデルを決定することができ、ルームモードモジュール440は、モデルを使用することによってターゲットエリアのルームモードを決定することができる。
マッチングモジュール430は、ターゲットエリアの3D仮想表現に基づいてターゲットエリアのモデルを決定する。一例としてターゲットエリアをとると、いくつかの実施形態では、マッチングモジュール430は、複数の候補モデルからモデルを選択する。候補モデルは、形状、次元、または部屋内の表面に関する情報を含む、部屋のモデルであり得る。候補モデルのグループは、異なる形状(たとえば、正方形、円、三角形など)と、異なる次元(たとえば、靴箱、大きい会議室など)と、異なる表面とを有する部屋のモデルを含むことができる。マッチングモジュール430は、ターゲットエリアの3D仮想表現を各候補モデルと比較し、候補モデルが3D仮想表現にマッチするかどうかを決定する。マッチングモジュール430は、候補モデルと3D仮想表現との間の差がしきい値を下回るという決定に基づいて、候補モデルが3D仮想表現にマッチすると決定する。差は、表面の形状、次元、音響特性などの差を含み得る。いくつかの実施形態では、マッチングモジュール430は、3D仮想表現が複数の候補モデルにマッチすると決定し得る。マッチングモジュール430は、最良のマッチを伴う候補モデル、すなわち、3D仮想表現との最小差を有する候補モデルを選択する。
いくつかの実施形態では、マッチングモジュール430は、候補モデルの形状と、3D仮想表現中に含まれる3Dメッシュの形状とを比較する。たとえば、マッチングモジュール430は、3Dメッシュターゲットエリアの中心からいくつかの方向において光線を追跡し、3Dメッシュが算出する、光線が交差するポイントを決定する。マッチングモジュール430は、これらのポイントにマッチする候補モデルを識別する。マッチングモジュール430は、比較から、候補モデルのサイズとターゲットエリアのサイズとの差を除外するために、候補モデルを縮小または拡大し得る。
ルームモードモジュール440は、ターゲットエリアのモデルを使用してターゲットエリアのルームモードを決定する。ルームモードは、3つのタイプのルームモード、すなわち、軸モード、正接モード、および斜交モードのうちの少なくとも1つを含み得る。いくつかの実施形態では、各タイプのルームモードについて、ルームモードモジュール440は、1次モードを決定し、より高次のモードをも決定し得る。ルームモードモジュール440は、モデルの形状および/または次元に基づいてルームモードを決定する。たとえば、モデルが矩形均質形状を有する実施形態では、ルームモードモジュール440は、モデルの軸モード、正接モード、および斜交モードを決定する。いくつかの実施形態では、ルームモードモジュール440は、聴覚のまたは再生可能な周波数範囲中のより低い周波数(たとえば、63Hz)から、ターゲットエリアのシュレーダー周波数(Schroeder frequency)までの範囲に入る、ルームモードを計算するためにモデルの次元を使用する。ターゲットエリアのシュレーダー周波数は、ルームモードが、周波数においてあまりに密に重複しすぎて、個々に区別可能でない、周波数であり得る。ルームモードモジュール440は、ターゲットエリアのボリュームおよびターゲットエリアの残響時間(たとえば、RT60)に基づいてシュレーダー周波数を決定し得る。ルームモードモジュール440は、ルームモードを決定するために、たとえば、(有限要素法、境界要素法、有限差分時間領域法などの)数値シミュレーション技法を使用し得る。
いくつかの実施形態では、ルームモードモジュール440は、ルームモードを決定するためにターゲットエリアの3D仮想表現内の表面の(減衰パラメータなどの)材料音響パラメータを使用する。たとえば、ルームモードモジュール440は、ターゲットエリアのカラー画像データを使用して表面の材料組成を決定する。ルームモードモジュール440は、表面の材料組成に基づいて各表面についての減衰パラメータを決定し、その材料組成および減衰パラメータによりモデルを更新する。
一実施形態では、ルームモードモジュール440は、表面の材料組成を決定するために機械学習技法を使用する。初期化モジュール230が、ターゲットエリアの画像データ(または、表面に関係する画像データの一部)および/またはオーディオデータを機械学習モデルに入力することができ、機械学習モデルは、各表面の材料組成を出力する。機械学習モデルは、線形サポートベクターマシン(線形SVM)、他のアルゴリズムのブースティング(たとえば、AdaBoost)、ニューラルネットワーク、ロジスティック回帰、単純ベイズ、メモリベース学習、ランダムフォレスト、バッグツリー、判定ツリー、ブーストツリー、またはブーストスタンプなど、異なる機械学習技法を用いてトレーニングされ得る。機械学習モデルのトレーニングの一部として、トレーニングセットが形成される。トレーニングセットは、表面のグループの画像データおよび/またはオーディオデータと、そのグループ中の表面の材料組成とを含む。
各ルームモードまたは複数のルームモードの組合せについて、ルームモードモジュール440は、周波数と位置との関数としての増幅を決定する。増幅は、(1つまたは複数の)対応するルームモードによって引き起こされる信号強度の増加または減少を含む。
音響フィルタモジュール450は、ルームモードのうちの少なくとも1つとターゲットエリア内のユーザの位置とに基づいて、ターゲットエリアの1つまたは複数のルームモードパラメータを決定する。いくつかの実施形態では、音響フィルタモジュール450は、周波数とターゲットエリア内の位置(たとえば、ユーザの位置)との関数としての増幅に基づいて、ルームモードパラメータを決定する。ルームモードパラメータは、ユーザの位置においてルームモードのうちの少なくとも1つによって引き起こされる音響ひずみを表す。いくつかの実施形態では、音響フィルタモジュール450はまた、音響ひずみを決定するためにオーディオコンテンツの音源の位置を使用する。
いくつかの実施形態では、オーディオコンテンツは、ヘッドセットの外部にある1つまたは複数のスピーカーによってレンダリングされる。音響フィルタモジュール450は、ユーザのローカルエリアの1つまたは複数のルームモードパラメータを決定する。いくつかの実施形態では、ターゲットエリアは、ローカルエリアとは異なる。たとえば、ユーザのローカルエリアは、ユーザが座るオフィスルームであり、ターゲットエリアは、仮想音源(たとえば、話者)を含む仮想会議室である。ローカルエリアのルームモードパラメータは、ヘッドセットの外部の(たとえば、コンソール上のまたはコンソールに結合された)スピーカーからのオーディオコンテンツをレンダリングするために使用され得る、ローカルエリアの音響フィルタを表す。ローカルエリアの音響フィルタは、ローカルエリア中のユーザの位置においてローカルエリアのルームモードを緩和する。いくつかの実施形態では、音響フィルタモジュール450は、ルームモードモジュール440によって決定されたローカルエリアの1つまたは複数のルームモードに基づいて、ローカルエリアのルームモードパラメータを決定する。ローカルエリアのルームモードは、マッピングモジュール420またはマッチングモジュール430のいずれかによって決定されたローカルエリアのモデルに基づいて、決定され得る。
図5は、1つまたは複数の実施形態による、音響フィルタを表すルームモードパラメータを決定するためのプロセス500を示すフローチャートである。図5のプロセス500は、装置、たとえば、図4のオーディオサーバ400の構成要素によって実施され得る。他の実施形態では、他のエンティティ(たとえば、ヘッドセットおよび/またはコンソールの部分)が、プロセスのステップの一部または全部を実施し得る。同様に、実施形態は、異なるおよび/または追加のステップを含むか、あるいは異なる順序でステップを実施し得る。
オーディオサーバ400は、510において、ターゲットエリアの3D仮想表現に部分的に基づいてターゲットエリアのモデルを決定する。ターゲットエリアは、ローカルエリアまたは仮想エリアであり得る。仮想エリアは現実の部屋に基づき得る。いくつかの実施形態では、オーディオサーバ510は、ターゲットエリア内のユーザの位置に基づいてデータベースからモデルを取り出すことによって、モデルを決定する。たとえば、データベースは、1つまたは複数のエリアを表す仮想モデルを記憶し、それらのエリアのモデルを含む。各エリアは、仮想モデル内のロケーションに対応する。エリアは、仮想エリア、物理的エリア、またはそれらの何らかの組合せを含む。オーディオサーバ400は、たとえば、ターゲットエリア内のユーザの位置に基づいて、仮想モデル中のターゲットエリアに関連するロケーションを識別することができる。オーディオサーバ400は、識別されたロケーションに関連するモデルを取り出す。他のいくつかの実施形態では、オーディオサーバ400は、たとえば、ヘッドセットから、ターゲットエリアの少なくとも一部分を表す深度情報を受信する。いくつかの実施形態では、オーディオサーバ400は、深度情報を使用して3D仮想表現の少なくとも一部を生成する。オーディオサーバ400は、3D仮想表現を複数の候補モデルと比較する。オーディオサーバ400は、3次元仮想表現にマッチする、複数の候補モデルのうちの1つをターゲットエリアのモデルとして識別する。いくつかの実施形態では、オーディオサーバ400は、候補モデルの形状と3D仮想表現の形状との間の差がしきい値を下回るという決定に基づいて、候補モデルが3次元仮想表現にマッチすると決定する。オーディオサーバ400は、比較中に、候補モデルの次元と3D仮想表現の次元との差をなくすために、候補モデルを縮小または拡大し得る。いくつかの実施形態では、オーディオサーバ400は、3D仮想表現中の各表面についての減衰パラメータを決定し、その減衰パラメータによりモデルを更新する。
オーディオサーバ400は、520において、モデルを使用してターゲットエリアのルームモードを決定する。いくつかの実施形態では、オーディオサーバ320は、モデルの形状に基づいてルームモードを決定する。ルームモードは、従来の技法を使用して計算され得る。オーディオサーバ400はまた、ルームモードを決定するために3D仮想表現における表面のモデルの次元および/または減衰パラメータを使用することができる。ルームモードは、軸モード、正接モード、または斜交モードを含み得る。いくつかの実施形態では、ルームモードは、可聴周波数範囲のより低い周波数(たとえば、63Hz)からターゲットエリアのシュレーダー周波数までの範囲に入る。ルームモードは、ターゲットエリア内の位置の関数としての、特定の周波数における音の増幅を表す。オーディオサーバ400は、複数のルームモードの組合せに対応する増幅を決定し得る。
オーディオサーバ400は、530において、ルームモードのうちの少なくとも1つとターゲットエリア内のユーザの位置とに基づいて、1つまたは複数のルームモードパラメータ(たとえば、Qファクタなど)を決定する。ルームモードは、周波数と位置との関数としての、信号強度の増幅によって表現される。いくつかの実施形態では、オーディオサーバ400は、周波数と位置との関数としての増幅をより十分に表すために、2つ以上のルームモードに関連する増幅を組み合わせる。オーディオサーバ400は、ユーザの位置における周波数の関数としての増幅を決定する。増幅とユーザの位置における周波数との関数に基づいて、オーディオサーバ400はルームモードパラメータを決定する。ルームモードパラメータは、オーディオコンテンツに適用されたとき、少なくとも1つのルームモードに関連する周波数における、ユーザの位置における、音響ひずみをシミュレートする、音響フィルタを表す。いくつかの実施形態では、少なくとも1つのルームモードは1次軸モードである。いくつかの実施形態では、オーディオサーバ320は、ターゲットエリア内のユーザの位置における少なくとも1つのルームモードに対応する増幅に基づいて、1つまたは複数のルームモードパラメータを決定する。音響フィルタは、オーディオコンテンツをユーザに提示するためにヘッドセットによって使用され得る。
図6は、1つまたは複数の実施形態による、オーディオアセンブリ600のブロック図である。オーディオアセンブリ600の一部または全部は、ヘッドセット(たとえば、ヘッドセット310)の一部であり得る。オーディオアセンブリ600は、スピーカーアセンブリ610と、マイクロフォンアセンブリ620と、オーディオコントローラ630とを含む。一実施形態では、オーディオアセンブリ600は、たとえば、オーディオアセンブリ600の異なる構成要素の動作を制御するための入力インターフェース(図6に図示せず)をさらに備える。他の実施形態では、オーディオアセンブリ600は、任意の追加の構成要素とともにリストされた構成要素の任意の組合せを有することができる。いくつかの実施形態では、オーディオサーバ400の機能のうちの1つまたは複数がオーディオアセンブリ600によって実施され得る。
スピーカーアセンブリ610は、たとえば、オーディオコントローラ630からのオーディオ命令に基づいてユーザの耳のために音を作り出す。いくつかの実施形態では、スピーカーアセンブリ610は、たとえば、オーディオコントローラ630からのオーディオ命令に従って、ユーザの耳において空気伝搬音響圧力波を生成することによって音を作り出す、空気伝導トランスデューサのペアとして(たとえば、各耳について1つずつ)実装される。スピーカーアセンブリ610の各空気伝導トランスデューサは、周波数範囲の異なる部分をカバーするための1つまたは複数のトランスデューサを含み得る。たとえば、周波数範囲の第1の部分をカバーするために圧電トランスデューサが使用され得、周波数範囲の第2の部分をカバーするために可動コイルトランスデューサが使用され得る。いくつかの他の実施形態では、スピーカーアセンブリ610の各トランスデューサは、ユーザの頭部中の対応する骨を振動させることによって音を作り出す、骨伝導トランスデューサとして実装される。骨伝導トランスデューサとして実装される各トランスデューサは、ユーザの骨の一部分に結合された耳介の後ろに配置されて、ユーザの骨の一部分を振動させ、それにより、組織伝搬(tissue-borne)音響圧力波が生成され、組織伝搬音響圧力波は、ユーザの蝸牛のほうへ伝搬し、それにより鼓膜を迂回し得る。いくつかの他の実施形態では、スピーカーアセンブリ610の各トランスデューサは軟骨伝導トランスデューサとして実装され、軟骨伝導トランスデューサは、外耳の周りの耳介軟骨の1つまたは複数の部分(たとえば、耳殻、耳珠、耳介軟骨の何らかの他の部分、またはそれらの何らかの組合せ)を振動させることによって、音を作り出す。軟骨伝導トランスデューサは、耳介軟骨の1つまたは複数の部分を振動させることによって、空気伝搬音響圧力波を生成する。
マイクロフォンアセンブリ620は、ターゲットエリアからの音を検出する。マイクロフォンアセンブリ620は複数のマイクロフォンを含み得る。複数のマイクロフォンは、たとえば、各耳について耳道の入口において音を測定するように構成された少なくとも1つのマイクロフォン、ターゲットエリアからの音をキャプチャするように位置決めされた1つまたは複数のマイクロフォン、ユーザからの音(たとえば、ユーザのスピーチ)をキャプチャするように位置決めされた1つまたは複数のマイクロフォン、またはそれらの何らかの組合せを含み得る。
オーディオコントローラ630は、ルームモードパラメータについて要求するためにルームモードクエリを生成する。オーディオコントローラ630は、ターゲットエリアの視覚情報とユーザのロケーション情報とに少なくとも部分的に基づいて、ルームモードクエリを生成することができる。オーディオコントローラ630は、たとえば、ヘッドセット310の1つまたは複数のカメラから、ターゲットエリアの視覚情報を取得し得る。視覚情報は、ターゲットエリアの3Dジオメトリを表す。視覚情報は、深度画像データ、カラー画像データ、またはそれらの組合せを含み得る。深度画像データは、ターゲットエリアの壁、床および天井の表面など、ターゲットエリアの表面によって定義されるターゲットエリアの形状に関するジオメトリ情報を含み得る。カラー画像データは、ターゲットエリアの表面に関連する音響材料に関する情報を含み得る。オーディオコントローラ630は、ヘッドセット310からユーザのロケーション情報を取得し得る。一実施形態では、ユーザのロケーション情報はヘッドセットのロケーション情報を含む。別の実施形態では、ユーザのロケーション情報は、現実の部屋または仮想部屋中のユーザの位置を指定する。
オーディオコントローラ630は、オーディオサーバ400から受信されたルームモードパラメータに基づいて音響フィルタを生成し、音響フィルタを使用してオーディオコンテンツを提示するためにスピーカーアセンブリ610にオーディオ命令を提供する。たとえば、オーディオコントローラ630は、ルームモードパラメータに基づいてベル形パラメトリック無限インパルス応答フィルタを生成する。ベル形パラメトリック無限インパルス応答フィルタは、各モーダル周波数に対応するQ値および利得を含む。いくつかの実施形態では、オーディオコントローラ630は、たとえば、モーダル周波数におけるオーディオ信号の振幅を増加させることによって、オーディオ信号をレンダリングするために、これらのフィルタを適用する。いくつかの実施形態では、オーディオコントローラ630は、人工リバーブレータ(reverberator)(たとえば、シュレーダー、FDN、またはネスト全域通過リバーブレータ)のフィードバックループ内に、またはモーダル周波数における残響時間を修正するために、これらのフィルタを配置する。オーディオコントローラ630は、ユーザのターゲットエリアに関連するルームモードによって引き起こされることになる音響ひずみ(たとえば、周波数と位置との関数としての増幅)が、提示されたオーディオコンテンツの一部であり得るように、音響フィルタをオーディオコンテンツに適用する。
別の例として、オーディオコントローラ630は、ルームモードパラメータに基づいて全域通過フィルタを生成する。全域通過フィルタは、モーダル周波数を中心とするQ値を有する。オーディオコントローラ630は、モーダル周波数におけるオーディオ信号を遅延させ、モーダル周波数におけるリンギングの知覚を作成するために、全域通過フィルタを使用する。いくつかの実施形態では、オーディオコントローラ630は、オーディオ信号をレンダリングするために、ベル形パラメトリック無限インパルス応答フィルタと全域通過フィルタの両方を使用する。いくつかの実施形態では、オーディオコントローラ630は、ユーザの位置の変化に基づいてフィルタを動的に更新する。
図7は、1つまたは複数の実施形態による、音響フィルタを使用することによってオーディオコンテンツを提示するプロセス700を示すフローチャートである。図7のプロセス700は、装置、たとえば、図6のオーディオアセンブリ600の構成要素によって実施され得る。他の実施形態では、他のエンティティ(たとえば、図9のヘッドセット900の構成要素および/または図8に示されている構成要素)が、プロセスのステップの一部または全部を実施し得る。同様に、実施形態は、異なるおよび/または追加のステップを含むか、あるいは異なる順序でステップを実施し得る。
オーディオアセンブリ600は、710において、1つまたは複数のルームモードパラメータに基づいて音響フィルタを生成する。音響フィルタは、コンテンツに適用されたとき、ターゲットエリア内のユーザの位置における、およびターゲットエリアの少なくとも1つのルームモードに関連する周波数における、音響ひずみをシミュレートする。音響ひずみは、音がターゲットエリア中で放出されたときの、ターゲットエリア内のユーザの位置における増幅によって表現される。ターゲットエリアは、ユーザのローカルエリア、または仮想エリアであり得る。いくつかの実施形態では、音響フィルタは、ルームモードのモーダル周波数におけるQ値または利得を伴う無限インパルス応答フィルタ、および/あるいはモーダル周波数を中心とするQ値を伴う全域通過フィルタを含む。
いくつかの実施形態では、1つまたは複数のルームモードパラメータは、オーディオサーバ、たとえば、オーディオサーバ400からオーディオアセンブリ600によって受信される。オーディオアセンブリはルームモードクエリをオーディオサーバに送り、オーディオサーバは、ルームモードクエリ中の情報に基づいて1つまたは複数のルームモードパラメータを決定する。いくつかの他の実施形態では、オーディオアセンブリ600は、ターゲットエリアの少なくとも1つのルームモードに基づいて1つまたは複数のルームモードパラメータを決定する。ターゲットエリアの少なくとも1つのルームモードは、オーディオサーバによって決定され、オーディオアセンブリ600に送られ得る。
オーディオアセンブリ600は、720において、音響フィルタを使用することによってユーザにオーディオコンテンツを提示する。たとえば、オーディオアセンブリ600は、ユーザのターゲットエリアに関連するルームモードによって引き起こされることになる音響ひずみ(たとえば、信号強度の増加または減少)が、提示されたオーディオコンテンツの一部であり得るように、音響フィルタをオーディオコンテンツに適用する。オーディオコンテンツは、ユーザがターゲットエリア中に物理的に位置しないことがあるにもかかわらず、ターゲットエリア中のオブジェクトから発生し、ターゲットエリア内のユーザの位置において受信されているように思われる。たとえば、ユーザは、オフィスルームにおいて座り、オーディオコンテンツ(たとえば、ミュージカル)は、仮想会議室中の話者から発生し、仮想会議室中のユーザの位置において受信されているように思われるように、提示され得る。
システム環境
図8は、1つまたは複数の実施形態による、ヘッドセット810とオーディオサーバ400とを含むシステム環境800のブロック図である。システム800は、人工現実環境、たとえば、仮想現実環境、拡張現実環境、複合現実環境、またはそれらの何らかの組合せにおいて動作し得る。図8によって示されているシステム800は、ヘッドセット810と、オーディオサーバ400と、コンソール860に結合された入出力(I/O)インターフェース840とを含む。ヘッドセット810と、オーディオサーバ400と、コンソール860とは、ネットワーク880を通して通信する。図8は、1つのヘッドセット810と1つのI/Oインターフェース850とを含む例示的なシステム800を示すが、他の実施形態では、任意の数のこれらの構成要素が、システム800中に含まれ得る。たとえば、各々が、関連するI/Oインターフェース850を有する、複数のヘッドセット810があり得、各ヘッドセット810およびI/Oインターフェース850はコンソール860と通信する。代替構成では、異なるおよび/または追加の構成要素が、システム800中に含まれ得る。さらに、図8に示されている構成要素のうちの1つまたは複数に関して説明される機能性は、いくつかの実施形態では、図8に関して説明されるものとは異なる様式で構成要素の間で分散され得る。たとえば、コンソール860の機能性の一部または全部がヘッドセット810によって提供され得る。
ヘッドセット810は、ディスプレイアセンブリ815と、光学ブロック820と、1つまたは複数の位置センサー835と、DCA830と、慣性測定ユニット(IMU)825と、PCA840と、オーディオアセンブリ600とを含む。ヘッドセット810のいくつかの実施形態は、図8に関して説明されるものとは異なる構成要素を有する。さらに、図8に関して説明される様々な構成要素によって提供される機能性は、他の実施形態ではヘッドセット810の構成要素の間で別様に分散されるか、またはヘッドセット810からリモートにある別個のアセンブリにおいて取り込まれ得る。ヘッドセット810の一実施形態が、図3中のヘッドセット310または図9中のヘッドセット900である。
ディスプレイアセンブリ815は、コンソール860から受信されたデータに従ってユーザに2D画像または3D画像を表示する電子ディスプレイを含み得る。画像は、ユーザのローカルエリアの画像、ローカルエリアからの光と組み合わせられた仮想オブジェクトの画像、仮想エリアの画像、またはそれらの何らかの組合せを含み得る。仮想エリアは、ユーザから遠い現実の部屋をマッピングされ得る。様々な実施形態では、ディスプレイアセンブリ815は、単一の電子ディスプレイまたは複数の電子ディスプレイ(たとえば、ユーザの各眼のためのディスプレイ)を備える。電子ディスプレイの例は、液晶ディスプレイ(LCD)、有機発光ダイオード(OLED)ディスプレイ、アクティブマトリックス有機発光ダイオードディスプレイ(AMOLED)、導波路ディスプレイ、何らかの他のディスプレイ、またはそれらの何らかの組合せを含む。
光学ブロック820は、電子ディスプレイから受光された画像光を拡大し、画像光に関連する光学誤差を補正し、補正された画像光をヘッドセット810のユーザに提示する。様々な実施形態では、光学ブロック820は、1つまたは複数の光学要素を含む。光学ブロック820中に含まれる例示的な光学要素は、アパーチャ、フレネルレンズ、凸レンズ、凹レンズ、フィルタ、反射表面、または画像光に影響を及ぼす任意の他の好適な光学要素を含む。その上、光学ブロック820は、異なる光学要素の組合せを含み得る。いくつかの実施形態では、光学ブロック820中の光学要素のうちの1つまたは複数は、部分反射コーティングまたは反射防止コーティングなど、1つまたは複数のコーティングを有し得る。
光学ブロック820による画像光の拡大および集束は、電子ディスプレイが、物理的により小さくなり、重さが減じ、より大きいディスプレイよりも少ない電力を消費することを可能にする。さらに、拡大は、電子ディスプレイによって提示されるコンテンツの視野を増加させ得る。たとえば、表示されるコンテンツの視野は、表示されるコンテンツが、ユーザの視野のほとんどすべて(たとえば、対角約110度)、およびいくつかの場合にはすべてを使用して提示されるようなものである。さらに、いくつかの実施形態では、拡大の量は、光学要素を追加することまたは取り外すことによって調整され得る。
いくつかの実施形態では、光学ブロック820は、1つまたは複数のタイプの光学誤差を補正するように設計され得る。光学誤差の例は、たる形ひずみまたは糸巻き形ひずみ、縦色収差、あるいは横色収差を含む。他のタイプの光学誤差は、球面収差、色収差、またはレンズ像面湾曲による誤差、非点収差、または任意の他のタイプの光学誤差をさらに含み得る。いくつかの実施形態では、表示のために電子ディスプレイに提供されるコンテンツは予歪され、光学ブロック820が、そのコンテンツに基づいて生成された画像光を電子ディスプレイから受光した後に、光学ブロック820はそのひずみを補正する。
IMU825は、位置センサー835のうちの1つまたは複数から受信された測定信号に基づいて、ヘッドセット810の位置を指示するデータを生成する電子デバイスである。位置センサー835は、ヘッドセット810の運動に応答して1つまたは複数の測定信号を生成する。位置センサー835の例は、1つまたは複数の加速度計、1つまたは複数のジャイロスコープ、1つまたは複数の磁力計、運動を検出する別の好適なタイプのセンサー、IMU825の誤差補正のために使用されるタイプのセンサー、またはそれらの何らかの組合せを含む。位置センサー835は、IMU825の外部に、IMU825の内部に、またはそれらの何らかの組合せで位置し得る。
DCA830は、部屋など、ターゲットエリアの深度画像データを生成する。深度画像データは、イメージングデバイスからの距離を定義するピクセル値を含み、したがって、深度画像データにおいてキャプチャされたロケーションの(たとえば、3D)マッピングを提供する。図8中のDCA830は、光プロジェクタ833と、1つまたは複数のイメージングデバイス825と、コントローラ830とを含む。いくつかの他の実施形態では、DCA830は、ステレオでイメージングするカメラのセットを含む。
光プロジェクタ833は、ターゲットエリア中のオブジェクトから反射され、深度画像データを生成するためにイメージングデバイス835によってキャプチャされた、構造化光パターンまたは他の光(たとえば、飛行時間についての赤外線フラッシュ)を投影し得る。たとえば、光プロジェクタ833は、異なるタイプの複数の構造化光(SL)要素(たとえばライン、グリッド、またはドット)をヘッドセット810の周囲のターゲットエリアの一部分上に投影し得る。様々な実施形態では、光プロジェクタ833は、エミッタと回折光学要素とを備える。エミッタは、光(たとえば、赤外光)で回折光学要素を照明するように構成される。照明された回折光学要素は、複数のSL要素を含むSLパターンをターゲットエリアに投影する。たとえば、照明された回折光学要素によって投影されるSL要素の各々は、回折光学要素上の特定のロケーションに関連するドットである。
DCA830によってターゲットエリアに投影されるSLパターンは、それがターゲットエリア中の様々な表面およびオブジェクトに遭遇するとき、変形する。1つまたは複数のイメージングデバイス825は、各々、ターゲットエリアの1つまたは複数の画像をキャプチャするように構成される。キャプチャされた1つまたは複数の画像の各々は、光プロジェクタ833によって投影され、ターゲットエリア中のオブジェクトによって反射される、複数のSL要素(たとえば、ドット)を含み得る。1つまたは複数のイメージングデバイス825の各々は、検出器アレイ、カメラ、またはビデオカメラであり得る。
いくつかの実施形態では、光プロジェクタ833は、飛行時間技法を使用することによって深度画像データを生成するために、ローカルエリア中のオブジェクトから反射され、イメージングデバイス835によってキャプチャされる、光パルスを投影する。たとえば、光プロジェクタ833は、飛行時間についての赤外線フラッシュを投影する。イメージングデバイス835は、オブジェクトによって反射された赤外線フラッシュをキャプチャする。コントローラ837は、オブジェクトまでの距離を決定するために、イメージングデバイス835からの画像データを使用することができる。コントローラ837は、イメージングデバイス835が、光プロジェクタ833による光パルスの投影と同期して、反射された光パルスをキャプチャするように、命令をイメージングデバイス835に提供し得る。
コントローラ837は、イメージングデバイス835によってキャプチャされた光に基づいて深度画像データを生成する。コントローラ837は、コンソール860、オーディオコントローラ420、または何らかの他の構成要素に深度画像データをさらに提供し得る。
PCA840は、カラー(たとえば、RGB)画像データを生成する1つまたは複数のパッシブカメラを含む。アクティブ光放出および反射を使用するDCA830とは異なり、PCA840は、画像データを生成するためにターゲットエリアの環境から光をキャプチャする。ピクセル値がイメージングデバイスからの深度または距離を定義するのではなく、画像データのピクセル値は、イメージングデータにおいてキャプチャされたオブジェクトの可視カラーを定義し得る。いくつかの実施形態では、PCA840は、パッシブイメージングデバイスによってキャプチャされた光に基づいてカラー画像データを生成するコントローラを含む。いくつかの実施形態では、DCA830とPCA840とは共通コントローラを共有する。たとえば、共通コントローラは、可視スペクトル(たとえば、画像データ)においておよび赤外線スペクトル(たとえば、深度画像データ)においてキャプチャされた1つまたは複数の画像の各々を互いにマッピングし得る。1つまたは複数の実施形態では、共通コントローラは、追加または代替として、オーディオコントローラまたはコンソール860にターゲットエリアの1つまたは複数の画像を提供するように構成される。
オーディオアセンブリ600は、ルームモードの局所効果をオーディオコンテンツに組み込むための音響フィルタを使用して、ヘッドセット810のユーザにオーディオコンテンツを提示する。いくつかの実施形態では、オーディオアセンブリ600は、音響フィルタを表すルームモードパラメータを要求するために、ルームモードクエリをオーディオサーバ400に送る。ルームモードクエリは、ターゲットエリアの仮想情報、ユーザのロケーション情報、オーディオコンテンツの情報、またはそれらの何らかの組合せを含む。オーディオアセンブリ600は、ネットワーク880を通してオーディオサーバ400からルームモードパラメータを受信する。オーディオアセンブリ600は、オーディオコンテンツをレンダリングするための一連のフィルタ(たとえば、無限インパルス応答フィルタ、全域通過フィルタなど)を生成するために、ルームモードパラメータを使用する。フィルタは、モーダル周波数におけるQ値および利得を有し、ターゲットエリア内のユーザの位置における音響ひずみをシミュレートする。オーディオコンテンツは、空間化され、提示されるとき、ターゲットエリア内のオブジェクト(たとえば、仮想オブジェクトまたは現実オブジェクト)から発生し、ターゲットエリア内のユーザの位置において受信されているように思われる。
一実施形態では、ターゲットエリアは、ユーザのローカルエリアの少なくとも一部分であり、空間化されたオーディオコンテンツは、ローカルエリア中の仮想オブジェクトから発生するように思われ得る。別の実施形態では、ターゲットエリアは仮想エリアである。たとえば、ユーザは小さいオフィスにいるが、ターゲットエリアは、仮想話者がスピーチをする大きい仮想会議室である。仮想会議室は、ルームモードなど、小さいオフィスとは異なる音響効果特性を有する。オーディオアセンブリ600は、スピーチが仮想会議室中の仮想話者から発生するかのように、ユーザにスピーチを提示する(すなわち、会議室が現実のロケーションであるかのように、会議室のルームモードを使用し、小さいオフィスのルームモードを使用しない)。
オーディオサーバ400は、オーディオアセンブリ600からのルームモードクエリ中の情報に基づいてターゲットエリアの1つまたは複数のルームモードパラメータを決定する。いくつかの実施形態では、オーディオサーバ400は、ターゲットエリアの3D表現に基づいてターゲットエリアのモデルを決定する。ターゲットエリアの3D表現は、ターゲットエリアの視覚情報、および/またはターゲットエリア内のユーザの位置を指示するユーザのロケーション情報など、ルームモードクエリ中の情報に基づいて決定され得る。オーディオサーバ400は、3D表現を候補モデルと比較し、3D表現にマッチする候補モデルを、ターゲットエリアのモデルとして選択する。オーディオサーバ400は、モデルの形状および/または次元などに基づいて、モードを使用して、ターゲットエリアのルームモードを決定する。ルームモードは、周波数と位置との関数としての増幅によって表現され得る。ルームモードのうちの少なくとも1つとターゲットエリア中のユーザの位置とに基づいて、オーディオサーバ400は、1つまたは複数のルームモードパラメータを決定する。
いくつかの実施形態では、オーディオアセンブリ600は、オーディオサーバ400の機能性の一部または全部を有する。ヘッドセット810のオーディオアセンブリ600とオーディオサーバ400とは、ワイヤードまたはワイヤレス通信リンク(たとえば、ネットワーク880)を介して通信し得る。
I/Oインターフェース850は、ユーザがアクション要求を送り、コンソール860から応答を受信することを可能にするデバイスである。アクション要求は、特定のアクションを実施するための要求である。たとえば、アクション要求は、画像データまたはビデオデータのキャプチャを開始または終了するための命令、あるいはアプリケーション内で特定のアクションを実施するための命令であり得る。I/Oインターフェース850は、1つまたは複数の入力デバイスを含み得る。例示的な入力デバイスは、キーボード、マウス、ゲームコントローラ、またはアクション要求を受信し、そのアクション要求をコンソール860に通信するための任意の他の好適なデバイスを含む。I/Oインターフェース850によって受信されたアクション要求は、コンソール860に通信され、コンソール860は、そのアクション要求に対応するアクションを実施する。いくつかの実施形態では、I/Oインターフェース850は、上記でさらに説明されたように、I/Oインターフェース850の初期位置に対するI/Oインターフェース850の推定位置を指示する較正データをキャプチャするIMU825を含む。いくつかの実施形態では、I/Oインターフェース850は、コンソール860から受信された命令に従って、ユーザに触覚フィードバックを提供し得る。たとえば、アクション要求が受信された後に触覚フィードバックが提供されるか、または、コンソール860がアクションを実施した後に、コンソール860が、I/Oインターフェース850に命令を通信して、I/Oインターフェース850が触覚フィードバックを生成することを引き起こす。
コンソール860は、DCA830とPCA840とヘッドセット810とI/Oインターフェース850とのうちの1つまたは複数から受信された情報に従って、処理するためのコンテンツをヘッドセット810に提供する。図8に示されている例では、コンソール860は、アプリケーションストア863と、追跡モジュール865と、エンジン867とを含む。コンソール860のいくつかの実施形態は、図8に関して説明されるものとは異なるモジュールまたは構成要素を有する。同様に、以下でさらに説明される機能は、図8に関して説明されるものとは異なる様式でコンソール860の構成要素の間で分散され得る。いくつかの実施形態では、コンソール860に関して本明細書で説明される機能性は、ヘッドセット810、またはリモートシステムにおいて実装され得る。
アプリケーションストア863は、コンソール860が実行するための1つまたは複数のアプリケーションを記憶する。アプリケーションは、プロセッサによって実行されたとき、ユーザへの提示のためのコンテンツを生成する命令のグループである。アプリケーションによって生成されたコンテンツは、ヘッドセット810またはI/Oインターフェース850の移動を介してユーザから受信された入力に応答したものであり得る。アプリケーションの例は、ゲームアプリケーション、会議アプリケーション、ビデオ再生アプリケーション、または他の好適なアプリケーションを含む。
追跡モジュール865は、1つまたは複数の較正パラメータを使用してシステム800のローカルエリアを較正し、ヘッドセット810またはI/Oインターフェース850の位置を決定する際の誤差を低減するように、1つまたは複数の較正パラメータを調整し得る。たとえば、追跡モジュール865は、DCA830によってキャプチャされたSL要素の位置をより正確に決定するために、DCA830の焦点を調整するための較正パラメータをDCA830に通信する。また、追跡モジュール865によって実施される較正は、ヘッドセット810中のIMU825および/またはI/Oインターフェース850中に含まれるIMU825から受信された情報を考慮する。さらに、ヘッドセット810の追跡が失われた(たとえば、DCA830が、少なくともしきい値数の投影されたSL要素の見通し線を失った)場合、追跡モジュール865は、システム800の一部または全部を再較正し得る。
追跡モジュール865は、DCA830、PCA840、1つまたは複数の位置センサー835、IMU825、またはそれらの何らかの組合せからの情報を使用して、ヘッドセット810またはI/Oインターフェース850の移動を追跡する。たとえば、追跡モジュール865は、ヘッドセット810からの情報に基づいて、ローカルエリアのマッピングにおいてヘッドセット810の基準点の位置を決定する。追跡モジュール865は、ローカルエリアまたは仮想エリア中のオブジェクト(現実オブジェクトまたは仮想オブジェクト)の位置をも決定し得る。さらに、いくつかの実施形態では、追跡モジュール865は、ヘッドセット810の将来のロケーションを予測するために、IMU825からのヘッドセット810の位置を指示するデータの部分ならびにDCA830からのローカルエリアの表現を使用し得る。追跡モジュール865は、ヘッドセット810またはI/Oインターフェース850の推定または予測された将来の位置をエンジン867に提供する。
エンジン867は、アプリケーションを実行し、追跡モジュール865から、ヘッドセット810の位置情報、加速度情報、速度情報、予測された将来の位置、またはそれらの何らかの組合せを受信する。受信された情報に基づいて、エンジン867は、ユーザへの提示のためにヘッドセット810に提供すべきコンテンツを決定する。たとえば、受信された情報が、ユーザがターゲットエリアの位置にいることを指示する場合、エンジン867は、ターゲットエリアに関連する仮想コンテンツ(たとえば、画像およびオーディオ)を生成する。ターゲットエリアは、仮想エリア、たとえば、仮想会議室であり得る。エンジン867は、ヘッドセット810がユーザに表示すべき、仮想会議室の画像と、仮想会議室においてなされるスピーチとを生成することができる。ターゲットエリアは、ユーザのローカルエリアであり得る。エンジン867は、ローカルエリアからの現実オブジェクトと組み合わせられた仮想オブジェクトの画像と、仮想オブジェクトまたは現実オブジェクトに関連するオーディオコンテンツとを生成することができる。別の例として、受信された情報が、ユーザが左を見ていることを指示する場合、エンジン867は、仮想ターゲットエリアにおいてまたはターゲットエリアにおいて、ターゲットエリアを追加のコンテンツで拡張するユーザの移動を反映する、ヘッドセット810のためのコンテンツを生成する。さらに、エンジン867は、I/Oインターフェース850から受信されたアクション要求に応答して、コンソール860上で実行しているアプリケーション内でアクションを実施し、そのアクションが実施されたというフィードバックをユーザに提供する。提供されるフィードバックは、ヘッドセット810を介した視覚または可聴フィードバック、あるいはI/Oインターフェース850を介した触覚フィードバックであり得る。
図9は、1つまたは複数の実施形態による、オーディオアセンブリを含むヘッドセット900の斜視図である。ヘッドセット900は、図3中のヘッドセット330または図8中のヘッドセット810の一実施形態であり得る。(図9に示されているような)いくつかの実施形態では、ヘッドセット900は、NEDとして実装される。(図9に示されていない)代替実施形態では、ヘッドセット900は、HMDとして実装される。概して、ヘッドセット900は、コンテンツ(たとえば、メディアコンテンツ)が、ヘッドセット900の一方または両方のレンズ910を使用して提示されるように、ユーザの顔に装着され得る。しかしながら、ヘッドセット900はまた、メディアコンテンツが異なる様式でユーザに提示されるように使用され得る。ヘッドセット900によって提示されるメディアコンテンツの例は、1つまたは複数の画像、ビデオ、オーディオ、またはそれらの何らかの組合せを含む。ヘッドセット900は、他の構成要素の中でも、フレーム905と、レンズ910と、DCA925と、PCA930と、位置センサー940と、オーディオアセンブリとを含み得る。DCA925およびPCA930は、ヘッドセット900の一部または全部の周囲のターゲットエリアの視覚情報をキャプチャするためにヘッドセット900に取り付けられたSLAMセンサーの一部であり得る。図9は、ヘッドセット900の構成要素をヘッドセット900上の例示的なロケーションに示すが、構成要素は、ヘッドセット900上の他の場所に、ヘッドセット900とペアにされた周辺デバイス上に、またはそれらの何らかの組合せで位置し得る。
ヘッドセット900は、ユーザの視覚を補正または増強するか、ユーザの眼を保護するか、あるいはユーザに画像を提供し得る。ヘッドセット900は、ユーザの視力の欠損を補正する眼鏡であり得る。ヘッドセット900は、太陽からユーザの眼を保護するサングラスであり得る。ヘッドセット900は、衝撃からユーザの眼を保護する保護眼鏡であり得る。ヘッドセット900は、夜間にユーザの視覚を増強するための暗視デバイスまたは赤外線ゴーグルであり得る。ヘッドセット900は、ユーザのための人工現実コンテンツを作り出すニアアイディスプレイであり得る。代替的に、ヘッドセット900は、レンズ910を含まないことがあり、ユーザにオーディオコンテンツ(たとえば、音楽、ラジオ、ポッドキャスト)を提供するオーディオアセンブリをもつフレーム905であり得る。
フレーム905は、ヘッドセット900の他の構成要素を保持する。フレーム905は、レンズ910を保持する前面部分と、ユーザの頭部に付けるためのエンドピースとを含む。フレーム905の前面部分は、ユーザの鼻の上をまたいでいる。エンドピース(たとえば、テンプル)は、そこにユーザのこめかみが付くフレーム905の部分である。エンドピースの長さは、異なるユーザに適合するように調整可能(たとえば、調整可能なテンプルの長さ)であり得る。エンドピースはまた、ユーザの耳の後ろ側で湾曲する部分(たとえば、テンプルの先端、イヤピース)を含み得る。
レンズ910は、ヘッドセット900を装着しているユーザに対して光を提供するかまたは透過する。レンズ910は、ユーザの視力の欠損を補正するのを助けるための処方レンズ(たとえば、単焦点、二焦点、および三焦点、または累進多焦点(progressive))を含み得る。処方レンズは、ヘッドセット900を装着しているユーザに対して周辺光を透過する。透過された周辺光は、ユーザの視力の欠損を補正するように処方レンズによって変えられ得る。レンズ910は、太陽からユーザの眼を保護するための偏光レンズまたは色付きレンズを含み得る。レンズ910は、ユーザの眼に向かって導波路の端部または縁部を通って画像光が結合された導波路ディスプレイの一部としての1つまたは複数の導波路を含み得る。レンズ910は、画像光を提供するための電子ディスプレイを含み得、電子ディスプレイからの画像光を拡大するための光学ブロックをも含み得る。レンズ910は、ディスプレイアセンブリ815と光学ブロック820との組合せの一実施形態であり得る。
DCA925は、部屋など、ヘッドセット330の周囲のローカルエリアについての深度情報を表す深度画像データをキャプチャする。DCA925は、DCA830の一実施形態であり得る。いくつかの実施形態では、DCA925は、光プロジェクタ(たとえば、構造化光および/または飛行時間についてのフラッシュ照明)と、イメージングデバイスと、コントローラ(図9に図示せず)とを含み得る。キャプチャされたデータは、光プロジェクタによってローカルエリア上に投影された光の、イメージングデバイスによってキャプチャされた画像であり得る。一実施形態では、DCA925は、コントローラと、ローカルエリアの部分をステレオでキャプチャするために配向される2つまたはそれ以上のカメラとを含み得る。キャプチャされたデータは、ローカルエリアの2つまたはそれ以上のカメラによってステレオでキャプチャされた画像であり得る。DCA925のコントローラは、キャプチャされたデータと、深度決定技法(たとえば、構造化光、飛行時間、ステレオイメージングなど)を使用して、ローカルエリアの深度情報を算出する。深度情報に基づいて、DCA925のコントローラは、ローカルエリア内のヘッドセット330の絶対位置情報を決定する。DCA925は、ヘッドセット330と一体化され得るか、またはヘッドセット330の外部のローカルエリア内に配置され得る。いくつかの実施形態では、DCA925のコントローラは、たとえばさらなる処理とオーディオサーバ400への通信とのために、ヘッドセット330のオーディオコントローラ920に深度画像データを送信し得る。
PCA930は、カラー(たとえば、RGB)画像データを生成する1つまたは複数のパッシブカメラを含む。PCA930は、PCA840の一実施形態であり得る。アクティブ光放出および反射を使用するDCA925とは異なり、PCA930は、カラー画像データを生成するためにローカルエリアの環境から光をキャプチャする。ピクセル値がイメージングデバイスからの深度または距離を定義するのではなく、カラー画像データのピクセル値は、画像データにおいてキャプチャされたオブジェクトの可視カラーを定義し得る。いくつかの実施形態では、PCA930は、パッシブイメージングデバイスによってキャプチャされた光に基づいてカラー画像データを生成するコントローラを含む。PCA930は、たとえば、さらなる処理とオーディオサーバ400への通信とのために、オーディオコントローラ920にカラー画像データを提供し得る。
いくつかの実施形態では、DCA925とPCA930とは、深度情報を生成するためにステレオイメージングを使用するカラーカメラシステムなどの同じカメラアセンブリである。
位置センサー940は、ヘッドセット9010の運動に応答して、1つまたは複数の測定信号に基づいて、ヘッドセット900のロケーション情報を生成する。位置センサー940は、位置センサー835のうちの1つの一実施形態であり得る。位置センサー940は、ヘッドセット900のフレーム905の一部分に位置し得る。位置センサー940は、位置センサー、IMU、またはその両方を含み得る。ヘッドセット900のいくつかの実施形態は、位置センサー940を含むことも含まないこともあり、または2つ以上の位置センサー940を含み得る。位置センサー940がIMUを含む実施形態では、IMUは、位置センサー940からの測定信号に基づいてIMUデータを生成する。位置センサー940の例は、1つまたは複数の加速度計、1つまたは複数のジャイロスコープ、1つまたは複数の磁力計、運動を検出する別の好適なタイプのセンサー、IMUの誤差補正のために使用されるタイプのセンサー、またはそれらの何らかの組合せを含む。位置センサー940は、IMUの外部に、IMUの内部に、またはそれらの何らかの組合せで位置し得る。
1つまたは複数の測定信号に基づいて、位置センサー940は、ヘッドセット900の初期位置に対するヘッドセット900の現在位置を推定する。推定位置は、ヘッドセット900のロケーションおよび/あるいはヘッドセット900またはヘッドセット900を装着しているユーザの頭部の配向、あるいはそれらの何らかの組合せを含み得る。配向は、基準点に対する各耳の位置に対応し得る。いくつかの実施形態では、位置センサー940は、ヘッドセット900の現在位置を推定するために、DCA925からの深度情報および/または絶対位置情報を使用する。位置センサー940は、並進運動(前/後、上/下、左/右)を測定するための複数の加速度計と、回転運動(たとえば、ピッチ、ヨー、ロール)を測定するための複数のジャイロスコープとを含み得る。いくつかの実施形態では、IMUは、測定信号を迅速にサンプリングし、サンプリングされたデータからヘッドセット900の推定位置を計算する。たとえば、IMUは、加速度計から受信された測定信号を経時的に積分して速度ベクトルを推定し、その速度ベクトルを経時的に積分して、ヘッドセット900上の基準点の推定位置を決定する。基準点は、ヘッドセット900の位置を表すために使用され得る点である。基準点は、概してエリア中の点として定義され得るが、実際には、基準点は、ヘッドセット900内の点として定義される。
オーディオアセンブリは、ルームモードの局所効果を組み込むためにオーディオコンテンツをレンダリングする。ヘッドセット900のオーディオアセンブリは、図6に関して上記で説明されたオーディオアセンブリ600の一実施形態である。いくつかの実施形態では、オーディオアセンブリは、音響フィルタについてのクエリをオーディオサーバ(たとえば、オーディオサーバ400)に送る。オーディオアセンブリは、オーディオサーバからルームモードパラメータを受信し、オーディオコンテンツを提示するための音響フィルタを生成する。音響フィルタは、ルームモードのモーダル周波数におけるQ値および利得を有する、無限インパルス応答フィルタおよび/または全域通過フィルタを含むことができる。いくつかの実施形態では、オーディオアセンブリは、スピーカー915aおよび915bと、音響センサーのアレイ935と、オーディオコントローラ920とを含む。
スピーカー915aおよび915bは、ユーザの耳のために音を作り出す。スピーカー915a、915bは、図6中のスピーカーアセンブリ610のトランスデューサの実施形態である。スピーカー915aおよび915bは、オーディオコントローラ920から、音を生成するためのオーディオ命令を受信する。スピーカー915aは、オーディオコントローラ920から左オーディオチャネルを取得し、スピーカー915bは、オーディオコントローラ920から右オーディオチャネルを取得する。図9に示されているように、各スピーカー915a、915bは、フレーム905のエンドピースに結合され、ユーザの対応する耳への入口の前に配置される。スピーカー915aおよび915bはフレーム905の外部に示されているが、スピーカー915aおよび915bはフレーム905に囲まれ得る。いくつかの実施形態では、各耳のための個々のスピーカー915aおよび915bの代わりに、ヘッドセット330は、提示されたオーディオコンテンツの方向性を改善するために、たとえば、フレーム905のエンドピースに組み込まれた、スピーカーアレイ(図9に図示せず)を含む。
音響センサーのアレイ935は、ヘッドセット330の一部または全部の周囲のローカルエリアにおける音を監視および記録する。音響センサーのアレイ935は、図6のマイクロフォンアセンブリ620の一実施形態である。図9に示されているように、音響センサーのアレイ935は、ヘッドセット330上に位置決めされた複数の音響検出ロケーションを伴う複数の音響センサーを含む。
オーディオコントローラ920は、ルームモードクエリをオーディオサーバ(たとえば、オーディオサーバ400)に送ることによって1つまたは複数のルームモードパラメータをオーディオサーバに要求する。ルームモードクエリは、ターゲットエリア情報、ユーザ情報、オーディオコンテンツ情報、オーディオサーバ320が音響フィルタを決定するために使用することができる何らかの他の情報、またはそれらの何らかの組合せを含む。いくつかの実施形態では、オーディオコントローラ920は、ヘッドセット900に接続されたコンソール(たとえば、コンソール860)からの情報に基づいてルームモードクエリを生成する。オーディオサーバ920は、ターゲットエリアの画像に基づいて、ターゲットエリアの少なくとも一部分を表す視覚情報を生成し得る。いくつかの実施形態では、オーディオコントローラ920は、ヘッドセット900の他の構成要素からの情報に基づいてルームモードクエリを生成する。たとえば、ターゲットエリアの少なくとも一部分を表す視覚情報は、DCA925によってキャプチャされた深度画像データおよび/またはPCA930によってキャプチャされたカラー画像データを含み得る。ユーザのロケーション情報は、位置センサー940によって決定され得る。
オーディオコントローラ920は、オーディオサーバから受信されたルームモードパラメータに基づいて音響フィルタを生成する。オーディオコントローラ920は、ターゲットエリアのルームモードの局所効果が音に組み込まれるように、音響フィルタを使用することによって音を生成するための、オーディオ命令をスピーカー915a、915bに提供する。オーディオコントローラ920は、図6のオーディオコントローラ630の一実施形態であり得る。
一実施形態では、通信モジュール(たとえば、トランシーバ)がオーディオコントローラ920に組み込まれ得る。別の実施形態では、通信モジュールは、オーディオコントローラ920の外部にあり、オーディオコントローラ920に結合された別個のモジュールとしてフレーム905に組み込まれ得る。
追加の構成情報
本開示の実施形態の上記の説明は、説明の目的で提示されており、網羅的であること、または開示される正確な形態に本開示を限定することは意図されない。当業者は、上記の開示に照らして多くの修正および変形が可能であることを諒解することができる。
本明細書のいくつかの部分は、情報に関する動作のアルゴリズムおよび記号表現に関して本開示の実施形態について説明する。これらのアルゴリズム説明および表現は、データ処理技術分野の当業者が、他の当業者に自身の仕事の本質を効果的に伝えるために通常使用される。これらの動作は、機能的に、算出量的に、または論理的に説明されるが、コンピュータプログラムまたは等価な電気回路、マイクロコードなどによって実装されることが理解される。さらに、一般性の喪失なしに、動作のこれらの仕組みをモジュールと呼ぶことが時々好都合であることも証明された。説明される動作およびそれらの関連するモジュールは、ソフトウェア、ファームウェア、ハードウェア、またはそれらの任意の組合せにおいて具現され得る。
本明細書で説明されるステップ、動作、またはプロセスのいずれも、1つまたは複数のハードウェアまたはソフトウェアモジュールで、単独でまたは他のデバイスとの組合せで実施または実装され得る。一実施形態では、ソフトウェアモジュールは、コンピュータプログラムコードを含んでいるコンピュータ可読媒体を備えるコンピュータプログラム製品で実装され、コンピュータプログラムコードは、説明されるステップ、動作、またはプロセスのいずれかまたはすべてを実施するためにコンピュータプロセッサによって実行され得る。
本開示の実施形態はまた、本明細書の動作を実施するための装置に関し得る。この装置は、必要とされる目的のために特別に構築され得、および/あるいは、この装置は、コンピュータに記憶されたコンピュータプログラムによって選択的にアクティブ化または再構成される汎用コンピューティングデバイスを備え得る。そのようなコンピュータプログラムは、非一時的有形コンピュータ可読記憶媒体、または電子命令を記憶するのに好適な任意のタイプの媒体に記憶され得、それらの媒体はコンピュータシステムバスに結合され得る。さらに、本明細書で言及される任意のコンピューティングシステムは、単一のプロセッサを含み得るか、または増加された算出能力のために複数のプロセッサ設計を採用するアーキテクチャであり得る。
本開示の実施形態はまた、本明細書で説明されるコンピューティングプロセスによって作り出される製品に関し得る。そのような製品は、コンピューティングプロセスから生じる情報を備え得、その情報は、非一時的有形コンピュータ可読記憶媒体に記憶され、本明細書で説明されるコンピュータプログラム製品または他のデータ組合せの任意の実施形態を含み得る。
最終的に、本明細書において使用される言い回しは、主に読みやすさおよび教育目的で選択されており、本明細書において使用される言い回しは、本発明の主題を定めるかまたは制限するように選択されていないことがある。したがって、本開示の範囲はこの詳細な説明によって限定されるのではなく、むしろ、本明細書に基づく出願に関して生じる請求項によって限定されることが意図される。したがって、実施形態の開示は、以下の特許請求の範囲に記載される本開示の範囲を例示するものであり、限定するものではない。