(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公表特許公報(A)
(11)【公表番号】
(43)【公表日】2024-08-06
(54)【発明の名称】オーディオストリームの動的レイテンシ推定
(51)【国際特許分類】
H04R 3/00 20060101AFI20240730BHJP
H04L 43/0852 20220101ALI20240730BHJP
【FI】
H04R3/00 320
H04L43/0852
【審査請求】未請求
【予備審査請求】未請求
(21)【出願番号】P 2024502176
(86)(22)【出願日】2022-07-15
(85)【翻訳文提出日】2024-02-29
(86)【国際出願番号】 US2022073757
(87)【国際公開番号】W WO2023288291
(87)【国際公開日】2023-01-19
(32)【優先日】2021-07-16
(33)【優先権主張国・地域又は機関】US
(81)【指定国・地域】
(71)【出願人】
【識別番号】519408504
【氏名又は名称】ミックスヘイロー コーポレイション
【氏名又は名称原語表記】MIXHALO CORP.
(74)【代理人】
【識別番号】100105957
【氏名又は名称】恩田 誠
(74)【代理人】
【識別番号】100068755
【氏名又は名称】恩田 博宣
(74)【代理人】
【識別番号】100142907
【氏名又は名称】本田 淳
(72)【発明者】
【氏名】シン、ビクラム
(72)【発明者】
【氏名】ルックハルト ザ フォース、チャールズ エドワード
【テーマコード(参考)】
5D220
【Fターム(参考)】
5D220BA30
(57)【要約】
オーディオストリームについてのパケット動的レイテンシ推定のためのシステム及び方法は、例えばコンピューティングデバイスのマイクロホンを使用して第1のオーディオ信号をキャプチャすること、アクセスポイントから無線通信を介して第2のオーディオ信号をコンピューティングデバイスにおいて受信すること、第2のオーディオ信号に対する第1のオーディオ信号の遅延の一組の推定値を第1のオーディオ信号及び第2のオーディオ信号のそれぞれの分析ステップにおける相互相関に基づいて決定すること、遅延の一組の推定値についての平均遅延および信頼区間を決定すること、信頼区間を閾値持続時間と比較すること、信頼区間が閾値持続時間未満であることに応答して、コンピューティングデバイスによって制御されるスピーカーを使用してアクセスポイントから受信したオーディオ信号を平均遅延に基づいて決定された追加遅延を加えて再生することを含む。
【特許請求の範囲】
【請求項1】
システムであって、
マイクロホンと、
スピーカーと、
ネットワークインタフェースと、
メモリと、
プロセッサと、を備え、前記メモリは、
前記マイクロホンを使用して第1のオーディオ信号をキャプチャすることと、
前記ネットワークインタフェースを使用して、アクセスポイントから無線通信を介して第2のオーディオ信号を受信することと、
前記第2のオーディオ信号に対する前記第1のオーディオ信号の遅延の一組の推定値を、前記第1のオーディオ信号および前記第2のオーディオ信号のそれぞれの分析ステップにおける相互相関に基づいて決定することと、
前記遅延の一組の推定値についての平均遅延および信頼区間を決定することと、
前記信頼区間を閾値持続時間と比較することと、
前記信頼区間が前記閾値持続時間未満であることに応答して、前記スピーカーを使用して、前記アクセスポイントから受信されたオーディオ信号を、前記平均遅延に基づいて決定された追加遅延を加えて再生することと、を前記システムに実行させるための前記プロセッサにより実行可能である複数の命令を含む、システム。
【請求項2】
前記メモリは、
前記ネットワークインタフェースを使用して、前記アクセスポイントから無線通信を介して最大遅延パラメータを受信することと、
前記遅延の前記一組の推定値を決定するために、前記最大遅延パラメータに基づいて、相互相関を使用して探索するために位相シフトの範囲を選択することと、を前記システムに実行させるための前記プロセッサにより実行可能である複数の命令を含む、請求項1に記載のシステム。
【請求項3】
前記メモリは、
前記ネットワークインタフェースを使用して、前記アクセスポイントから無線通信を介して最小遅延パラメータを受信することと、
前記遅延の前記一組の推定値を決定するために、前記最小遅延パラメータに基づいて、相互相関を使用して探索するために前記位相シフトの範囲を選択することと、を前記システムに実行させるための前記プロセッサにより実行可能である複数の命令を含む、請求項2に記載のシステム。
【請求項4】
前記メモリは、
前記ネットワークインタフェースを使用して、前記アクセスポイントから無線通信を介してタイムスタンプを受信することと、
前記アクセスポイントについての距離推定値を前記タイムスタンプに基づいて決定することと、
前記遅延の前記一組の推定値を決定するために、前記距離推定値に基づいて、相互相関を使用して探索するために位相シフトの範囲を選択することと、を前記システムに実行させるための前記プロセッサにより実行可能である複数の命令を含む、請求項1に記載のシステム。
【請求項5】
前記信頼区間は90%の信頼区間であり、前記閾値持続時間は20ミリ秒である、請求項1に記載のシステム。
【請求項6】
前記それぞれの分析ステップは、重なっている分析窓を有する、請求項1に記載のシステム。
【請求項7】
前記それぞれの分析ステップは、隣接する分析ステップと半分だけ重なる分析窓を有する、請求項6に記載のシステム。
【請求項8】
方法であって、
コンピューティングデバイスのマイクロホンを使用して第1のオーディオ信号をキャプチャすることと、
アクセスポイントから無線通信を介して第2のオーディオ信号を前記コンピューティングデバイスにおいて受信することと、
前記第2のオーディオ信号に対する前記第1のオーディオ信号の遅延の一組の推定値を、前記第1のオーディオ信号および前記第2のオーディオ信号のそれぞれの分析ステップにおける相互相関に基づいて決定することと、
前記遅延の前記一組の推定値についての平均遅延および信頼区間を決定することと、
前記信頼区間を閾値持続時間と比較することと、
前記信頼区間が前記閾値持続時間未満であることに応答して、前記コンピューティングデバイスによって制御されるスピーカーを使用して、前記アクセスポイントから受信したオーディオ信号を、前記平均遅延に基づいて決定された追加遅延を加えて再生することと、を備える方法。
【請求項9】
前記アクセスポイントから無線通信を介して最大遅延パラメータを受信することと、
前記遅延の前記一組の推定値を決定するために、前記最大遅延パラメータに基づいて、相互相関を使用して探索するための位相シフトの範囲を選択することと、を備える請求項8に記載の方法。
【請求項10】
前記アクセスポイントから無線通信を介して最小遅延パラメータを受信することと、
前記遅延の前記一組の推定値を決定するために、前記最小遅延パラメータに基づいて、相互相関を使用して探索するための前記位相シフトの範囲を選択することと、を備える請求項9に記載の方法。
【請求項11】
前記アクセスポイントから無線通信を介してタイムスタンプを受信することと、
前記タイムスタンプに基づいて前記アクセスポイントについての距離推定値を決定することと、
前記遅延の前記一組の推定値を決定するために、前記距離推定値に基づいて、相互相関を使用して探索するための位相シフトの範囲を選択することと、を備える請求項8に記載の方法。
【請求項12】
前記信頼区間は90%の信頼区間であり、前記閾値持続時間は20ミリ秒である、請求項8に記載の方法。
【請求項13】
前記それぞれの分析ステップは、重なっている分析窓を有する、請求項8に記載の方法。
【請求項14】
前記それぞれの分析ステップは、隣接する分析ステップと半分だけ重なる分析窓を有する、請求項13に記載の方法。
【請求項15】
プロセッサによって実行されると、複数の動作の実行を可能にする複数の実行可能命令を含む非一時的なコンピュータ可読記憶媒体であって、前記複数の動作は、
コンピューティングデバイスのマイクロホンを使用して第1のオーディオ信号をキャプチャすることと、
アクセスポイントから無線通信を介して第2のオーディオ信号を前記コンピューティングデバイスにおいて受信することと、
前記第2のオーディオ信号に対する前記第1のオーディオ信号の遅延の一組の推定値を、前記第1のオーディオ信号および前記第2のオーディオ信号のそれぞれの分析ステップにおける相互相関に基づいて決定することと、
前記遅延の前記一組の推定値についての平均遅延および信頼区間を決定することと、
前記信頼区間を閾値持続時間と比較することと、
前記信頼区間が前記閾値持続時間未満であることに応答して、前記コンピューティングデバイスによって制御されるスピーカーを使用して、前記アクセスポイントから受信したオーディオ信号を、前記平均遅延に基づいて決定された追加遅延を加えて再生することと、を含む、非一時的なコンピュータ可読記憶媒体。
【請求項16】
前記複数の動作は、
前記アクセスポイントから無線通信を介して最大遅延パラメータを受信することと、
前記遅延の前記一組の推定値を決定するために、前記最大遅延パラメータに基づいて、相互相関を使用して探索するための位相シフトの範囲を選択することと、を含む、請求項15に記載の非一時的なコンピュータ可読記憶媒体。
【請求項17】
前記複数の動作は、
前記アクセスポイントから無線通信を介して最小遅延パラメータを受信することと、
前記遅延の前記一組の推定値を決定するために、前記最小遅延パラメータに基づいて、相互相関を使用して探索するための前記位相シフトの範囲を選択することと、を含む、請求項16に記載の非一時的なコンピュータ可読記憶媒体。
【請求項18】
前記複数の動作は、
前記アクセスポイントから無線通信を介してタイムスタンプを受信することと、
前記タイムスタンプに基づいて前記アクセスポイントについての距離推定値を決定することと、
前記遅延の前記一組の推定値を決定するために、前記距離推定値に基づいて、相互相関を使用して探索するための位相シフトの範囲を選択することと、を含む、請求項15に記載の非一時的なコンピュータ可読記憶媒体。
【請求項19】
前記信頼区間は90%の信頼区間であり、前記閾値持続時間は20ミリ秒である、請求項15に記載の非一時的なコンピュータ可読記憶媒体。
【請求項20】
前記それぞれの分析ステップは、重なっている分析窓を有する、請求項15に記載の非一時的なコンピュータ可読記憶媒体。
【発明の詳細な説明】
【技術分野】
【0001】
本開示は、オーディオストリームの動的レイテンシ推定に関する。
【背景技術】
【0002】
関連する2つの信号の相互相関を使用して、2つの信号間の相対遅延を推定することができる。相互相関関数は、各信号のすべてのフレームの積を合計し、次いで、新たに生成された信号のピークを特定することによって機能する。例えば、[5、10、-2、5]の複数のフレーム値を有する信号を有し、その信号を0(ゼロ)フレームオフセットで複数のフレーム値[2、8、-5、2]を含む信号と相互相関させる場合、この方法は、(5*2)+(10*8)+(-2*-5)+(5*2)=110という値を返す。この値は、異なるオフセットでのサンプルの相互相関値と比較されることができる。生成された値が最大であるオフセットは、信号が最も相関しているオフセットである。
【発明の概要】
【0003】
本明細書では、オーディオストリームのための動的レイテンシ推定の実装形態が開示される。
第1の態様では、マイクロホンと、スピーカーと、メモリと、プロセッサと、ネットワークインタフェースとを含むシステムが提供される。メモリは、マイクロホンを使用して第1のオーディオ信号をキャプチャすることと、ネットワークインタフェースを使用して、アクセスポイントから無線通信を介して第2のオーディオ信号を受信することと、第2のオーディオ信号に対する第1のオーディオ信号の遅延の一組の推定値を第1のオーディオ信号および第2のオーディオ信号のそれぞれの分析ステップにおける相互相関に基づいて決定することと、遅延の一組の推定値についての平均遅延および信頼区間を決定することと、信頼区間を閾値持続時間と比較することと、信頼区間が閾値持続時間未満であることに応答して、スピーカーを使用して、アクセスポイントから受信したオーディオ信号を、平均遅延に基づいて決定された追加遅延を加えて再生することと、をシステムに実行させるためのプロセッサによって実行可能な複数の命令を記憶する。
【0004】
第2の態様では、方法が提供され、該方法は、コンピューティングデバイスのマイクロホンを使用して第1のオーディオ信号をキャプチャすることと、アクセスポイントから無線通信を介して第2のオーディオ信号をコンピューティングデバイスにおいて受信することと、第2のオーディオ信号に対する第1のオーディオ信号の遅延の一組の推定値を第1のオーディオ信号および第2のオーディオ信号のそれぞれの分析ステップにおける相互相関に基づいて決定することと、遅延の一組の推定値についての平均遅延および信頼区間を決定することと、信頼区間を閾値持続時間と比較することと、信頼区間が閾値持続時間未満であることに応答して、コンピューティングデバイスによって制御されるスピーカーを使用して、アクセスポイントから受信したオーディオ信号を、平均遅延に基づいて決定された追加遅延を加えて再生することと、を含む。
【0005】
第3の態様では、非一時的なコンピュータ可読記憶媒体が提供され、該非一時的なコンピュータ可読記憶媒体は、プロセッサにより実行されると、複数の動作の実行を可能にする複数の実行可能命令を含み、複数の動作は、コンピューティングデバイスのマイクロホンを使用して第1のオーディオ信号をキャプチャすることと、アクセスポイントから無線通信を介して第2のオーディオ信号をコンピューティングデバイスにおいて受信することと、第2のオーディオ信号に対する第1のオーディオ信号の遅延の一組の推定値を第1のオーディオ信号および第2のオーディオ信号のそれぞれの分析ステップにおける相互相関に基づいて決定することと、遅延の一組の推定値についての平均遅延および信頼区間を決定することと、信頼区間を閾値持続時間と比較することと、信頼区間が閾値持続時間未満であることに応答して、コンピューティングデバイスによって制御されるスピーカーを使用して、アクセスポイントから受信したオーディオ信号を、平均遅延に基づいて決定された追加遅延を加えて再生することと、を含む。
【図面の簡単な説明】
【0006】
本開示は、添付の図面と併せて読むとき、以下の詳細な説明から最もよく理解される。一般的な慣行に従って、図面の様々な特徴は縮尺通りではないことが強調される。逆に、様々な特徴の寸法は、明確にするために任意に拡大または縮小されている。
【
図1】
図1は、オーディオストリームの動的レイテンシ推定のためのシステムの一例のブロック図である。
【
図2】
図2は、相互相関を使用して分析窓における2つの信号間の遅延を推定するための技法の一例のブロック図である。
【
図3A】
図3Aは、音源と、音源からのオーディオ信号とその信号を受信する複数のクライアントデバイスによる使用のための複数の遅延範囲パラメータとを再送信するペアとされた無線アクセスポイントとを含む、同期オーディオをライブストリーミングするシステムの一例の図である。
【
図3B】
図3Bは、音源と、音源からのオーディオ信号とそれらの信号を受信する複数のクライアントデバイスによる使用のための複数の遅延範囲パラメータとを再送信するペアとされた複数の無線アクセスポイントとを含む、同期オーディオをライブストリーミングするシステムの一例の図である。
【
図3C】
図3Cは、音源と、無線アクセスポイントまでのクライアントデバイスの距離を特定し、その距離に基づいて複数の遅延範囲パラメータを推測するために使用され得る複数のタイムスタンプとともに音源からオーディオ信号を再送信するペアとされた無線アクセスポイントとを含む、同期オーディオをライブストリーミングするシステムの一例の図である。
【
図4】
図4は、
図1に示されるシステムのコンピューティングデバイスの内部構成の一例のブロック図である。
【
図5】
図5は、オーディオストリームについての動的レイテンシ推定のための技法の一例を示すフローチャートである。
【
図6】
図6は、2つのオーディオ信号間の遅延を推定するために相互相関を使用して探索されるべき位相シフトの範囲を決定するための技法の一例を示すフローチャートである。
【
図7】
図7は、2つのオーディオ信号間の遅延を推定するために相互相関を使用して探索されるべき位相シフトの範囲を決定するための技法の一例を示すフローチャートである。
【発明を実施するための形態】
【0007】
リアルタイムオーディオストリーミングプラットフォームは、ライブイベントからサウンドボードオーディオ(soundboard audio)を取得し、それを現在存在する複数の参加者にリアルタイムでストリーミングするように構成され得る。リアルタイムオーディオストリーミングプラットフォームは、音源から複数のオーディオフレームを取得し、無線ネットワークを介してリアルタイムで複数のオーディオフレームを複数のコンピューティングデバイス(例えば、モバイルデバイス)に送信し得る。
【0008】
このプロセスに伴う課題の1つは、音速に関するものである。標準的な日の海面静止状態(sea level static conditions)の大気を考慮すると、音速は約761mph(約1225kmph)、すなわち1100フィート/秒(約335メートル/秒)である。紙上では、これは速く聞こえるが、ネットワークデータの速度と比較すると、これは非常に遅い。音速の一般的な簡略化は、移動距離1フィート(30.48センチメートル)毎に1ミリ秒のレイテンシが加えられることである(例えば、聴取者がスピーカーのような音源から200フィート(約61メートル)離れている場合、聴取者は200ミリ秒のオーディオのレイテンシを経験する)。しかしながら、リアルタイムオーディオストリーミングプラットフォームは、はるかに速い速度(たとえば、20ms未満)で動作することができ、その速度は距離によってわずかに影響を受けるだけである。結果として、聴取者が音源から遠くに移動するほど、プラットフォームストリーミングレイテンシと音源からの自然オーディオレイテンシ(natural audio latency)との間の差はより相違するようになる。これは、プラットフォームオーディオストリームおよびライブイベントオーディオが時間整合(time alignment)から外れ、「スラップバック(slapback)」効果を生じさせる耳障りな聴取体験を発生させる可能性がある。プラットフォームはライブイベントにおいて複数の参加者にストリーミングしているため、この課題(すなわち、ライブオーディオソース(live audio source)とプラットフォームストリームとの間のレイテンシの不一致)は一般的であり得る。このレイテンシの不一致に対処することにより、より楽しい/強化された聴取体験をユーザーに提供することができる。
【0009】
動的レイテンシのアプローチおよび概要:
時間整合の問題にアプローチする多くの方法が存在する。リアルタイムオーディオストリーミングプラットフォームの場合、目標は、聴取者が音源(例えば、コンサートの場合、ステージ)からのおおよ距離を知ることである。これは測位(ジオロケーション:geolocation)を用いて行うことができるが、アリーナ内では、建物の材料に起因して特に正確ではないことが多い。代わりの1つの手法は、基準ストリームと対にされた聴取者位置におけるオーディオを使用して時間整合することである。
【0010】
リアルタイムオーディオストリーミングプラットフォームのベースラインレイテンシ((baseline latency))(例えば、約20ms)は事前に知られており、このレイテンシは1000ft(約305m)未満の距離において著しく変化しないため、無線ネットワークを介して受信されたオーディオトラフィックは基準信号として使用され得る。聴取者の周囲のライブオーディオは、ユーザーのモバイルデバイスの1つまたは複数のマイクロホン(microphone)を使用してキャプチャされ、2つのオーディオ信号の相対位相シフト(relative phase shift)を推定するために基準信号と比較され得る。この相対位相シフトは、プラットフォームネットワークストリームの既知のベースラインレイテンシと組み合わされて、音源からの聴取者の距離を正確に推定するために使用され得る。
【0011】
様々な技法が、動的環境(例えば、聴取者および他のオブジェクトが移動している可能性があるコンサート)における複数のオーディオ信号のレイテンシを推定して、聴取者のために再生されるオーディオストリームの遅延を動的に調整して、ユーザーが体験しているライブオーディオと同期させることを可能にするために使用され得る。いくつかの実装形態では、遅延調整を決定することは、聴取者と音源(たとえば、複数のスピーカー)との間の距離を推定することを含む。例えば、レイテンシを推定するためのいくつかの技法は、相互相関(CC : cross-correlation)の判定を含む。例えば、レイテンシを推定するためのいくつかの技法は、平均二乗差(ASDF : Average Square Difference)の判定を含む。例えば、レイテンシを推定するためのいくつかの技法は、ピーク分析(PEAK)の判定を含む。例えば、レイテンシを推定するためのいくつかの技法は、PHAT(generalized cross-correlation with phase transformation)の判定を含む。例えば、いくつかの実装形態は、オープンソースの時間遅延推定(TDE : time delay estimation)比較ライブラリLibTDEを部分的に使用して実施されてもよい。例えば、これらの技法は、実際の複数のライブイベントにおいて取得され、2つのサンプル間の遅延を推定するために使用される、対にされたストリームと聴取者/ユーザーのマイクサンプル(mic samples)とに適用され得る。
【0012】
LibTDEの相互相関モジュールは、正確で有用なツールであるが、現実世界のライブイベントストリーミング状況において常に成り立つとは限らない多くの仮定を行う。例えば、LibTDEを使用する過去の研究は、ライブイベントベースの現実世界のシナリオに適合しない以下の仮定を行っている。
【0013】
クワイエット/クリーン(Quiet / Clean)信号対雑音比(SNR : Signal-to-Noise ratio):相互相関式(Cross Correlation formula)を使用するいくつかの過去の研究は、静かな部屋における比較を仮定している。しかしながら、ライブイベント設定では、SNRを劇的に低下させる多くの追加ノイズが存在する。
【0014】
精密マイクロホンハードウェアアレイ:距離を計算するために複数の高品質オーディオマイクロホンが使用され、アレイ設定で配置されている。いくつかの実装形態では、リアルタイムオーディオストリーミングプラットフォームは、携帯電話の単一のマイクロホンを使用してロバストな時間遅延および距離推定を達成することを試みている。
【0015】
制御された基準ストリーム:試験の制御された環境では、いくつかの過去の研究は、実際の音発生源を基準信号として使用してきた。全てのリスニングデバイス(listening device)を音源(例えば、ライブイベントのサウンドボード)に配線することが非実用的であるため、リアルタイムオーディオストリーミングプラットフォームはこの仮定を行うことができないことが多い。
【0016】
定義された信号源:いくつかの過去の実装は、レイテンシ/距離を決定するために正弦波を使用するように設計されていた。リアルタイムオーディオストリーミングプラットフォームは、イベントにおいてライブオーディオを利用しており、したがって、従来の位相シフト推定器が期待するようなクリーンな波形を利用することができない。
【0017】
反復速度:CC式を使用するいくつかの過去の研究は、推定精度を向上させるために継続的に実行されるように設計されている。しかしながら、聴取者のモバイルデバイス上でそのようなプロセスを実行することは、バッテリをあまりにも速く消耗させて有用でないことがある。
【0018】
上に列挙された複数の制限は、現実世界の複数の設定における(例えば、CC式を使用する)時間遅延推定技法の有効性を制限し得る。しかしながら、CC式を基に追加の特徴および計算を構築することによって、ライブイベント、実世界の状況において機能するように設計された、よりロバストで正確な時間遅延推定(TDE : time delay estimation)を作成することができる。
【0019】
(CC式を使用する)リアルタイムオーディオストリーミングプラットフォームのTDEのための複数の入力パラメータは、以下を含み得る。
サイクル:サイクルは、コンピューティングデバイス(例えば、モバイルデバイス)のマイクまたはヘッドホン(headphone)のマイクからのストリーム記録およびマイク記録の長さからなる。サイクルの長さは、以下の複数の変数によって定義される。
【0020】
分析窓サイズ:2つのクリップ(clips)が比較される窓のサイズ(例えば、ミリ秒単位)。この窓サイズは可変に設定されてもよい。
分析ステップサイズ:CC式によって行われた分析を反復した後に分析窓が進められる長さ(例えば、ミリ秒単位)。ステップサイズは可変に設定されてもよい。
【0021】
サイクル当たりのステップ:現在のサイクルにおける2つのオーディオクリップ間の遅延を推定する場合に、リアルタイムオーディオストリーミングプラットフォームのTDEによって考慮されるステップサイズ長のステップ数。サイクル当たりのステップは可変に設定されてもよい。
【0022】
部分ステップ:冗長計算を減少させるために、サイクル分析ごとの複数のステップをより小さい複数のチャンクに分割する処理。
最大遅延:2つのサンプルが互いにずれる可能性がある(例えば、ミリ秒単位における)最大距離。最大遅延は可変に設定されてもよい。
【0023】
最小遅延:2つのサンプルが互いにずれる可能性がある(例えば、ミリ秒単位における)最小距離。最小遅延は可変に設定されてもよい。
間隔:TDEプロセスがどのくらいの頻度で実行されるかを決定するために使用される。間隔パラメータは、デバイスへの影響を低減するために使用される。
【0024】
いくつかの実装形態では、相互相関の時間計算量は、2つの入力変数、すなわち、最大遅延および分析窓に線形的に関連し得る。
O(n)=O(最大遅延*分析窓)=O(mw)
CC関数はまた、サンプルにおける各分析ステップに対して繰り返されてもよい。
【0025】
O(n)=O(mw)*O(サイクル長/分析ステップ)
=O(MwL/s)
これらの定義が適切であれば、ここで、リアルタイムオーディオストリーミングプラットフォームのTDEを説明することができ、これは、プラットフォームストリーミングシステムおよびコンピューティングデバイス(たとえば、モバイルデバイス)のマイクロホンのみを使用して、実世界のライブイベントシナリオにおける遅延を推定するためにCC式を使用する。より正確なTDEを作成するために、以下の変更および改良を実施することができる。
【0026】
測定における誤差の可能性が最も高い低SNR(制限#1)に対処するために、雑音に対する最大の寄与因子は群集(crowd)である。群集雑音は、ほとんどがランダムであり、周波数スペクトルの大部分をカバーするという点で、ホワイトノイズによく似ている。これは、実際の遅延値よりも高い誤測定値と低い誤測定値がほぼ等しい数で発生し、最も多くの測定値が実際の遅延値に集中にすることを意味する。したがって、これらの測定値の平均値が実際の遅延を安全に表すことができるかどうかを判定するために、サンプル測定値分布の信頼区間(confidence interval)を計算することができる。これは、(サイクルデータセットと呼ばれる)サイクル当たりのステップにおける各分析ステップのCC式の結果を平均化し、次いで、このサイクルデータセットに信頼区間を適用することを含む。信頼区間は、ばらつきの許容量を有する標準偏差を使用して決定され得る。例えば、信頼区間は、サイクルデータセット内の全ての値が90%の確率で20msの変動内に収まるとして定義されることができる。この統計分析はまた、上述の精密ハードウェア(#2)および定義された信号源(#4)の制限に対処する。
【0027】
制御された基準ストリーム(#3)の欠如に対処するために、TDEは、リアルタイムオーディオストリーミングプラットフォームからのネットワークストリームを基準として利用する。リアルタイムオーディオストリーミングプラットフォームのベースラインレイテンシは既知であるため、それに応じて複数の計算を調整することができる。
【0028】
追加の改良は、反復速度(#5)の仮定に対処することに関するものである。上記の時間計算量の定義に基づいて、複数の推定値に悪影響を与えることなく、最大遅延、分析窓、サイクルを可能な限り小さく保ち、分析ステップ値を可能な限り大きく保つことが有用である。反復プロセスの一例を以下に説明する。
【0029】
オーディオサンプルは、リアルタイムオーディオストリーミングプラットフォームから取得されるとともに、コンピューティングデバイス(例えば、モバイルデバイス)の1つまたは複数のマイクロホンによってキャプチャされる。次に、分析窓を規定することによって分析が行われる。いくつかの実装では、次いで、分析ステップサイズは、各反復についての分析窓の半分に設定される。各反復において、分析窓は、遅延推定値を生成するCC式に送られる。この遅延値は、CC式の速度を向上させるために、最大遅延変数によって制限されることができる(これは、ステップサイズごとに行われる必要がある計算の数を制限することによって行われる)。次いで、窓は、次の反復において分析ステップサイズ(例えば、分析窓の半分)によって指定された長さだけ進められ、遅延が再び計算される。このプロセスは、サイクルまたはサンプルが完全に分析されるまで続く。
【0030】
分析窓、分析ステップサイズ、および最大遅延値を増加または減少させることは、トレードオフを伴い、したがって、可変に設定され、TDEが異なる条件において異なるように最適化されることを可能にし得る。分析窓を大きくすることによって、その値を計算するために使用されるオーディオフレームまたはサンプルの数がより多くなるため、信号間の遅延計算のロバスト性を増大させるが、これはまた、時間計算量を増加させ、遅延推定が時間とともにどのように変化するかについて考慮するために利用される測定の分解能を低減させる。分析ステップサイズは、この値の増加が時間計算量を減少させるが、それと引き換えに遅延デルタ分解能が減少するので、逆に挙動する。最大遅延を増大させることによって、時間計算量を増加させ、エラーの可能性を増加させるので、この値を可能な限り低く保つことがより良好であり得る。したがって、概して、遅延推定値に悪影響を与えることなく、最大遅延、分析窓、およびサイクル長を可能な限り小さく保ち、分析ステップ値を可能な限り大きく保つことが最良である。
【0031】
いくつかの実装形態では、TDEは、-maxDelayからmaxDelayまでの遅延窓を分析し、これは、どのオーディオ信号が遅延しているかが不明である場合に必要である。しかしながら、場合によっては、マイクロホンによって局所的に記録されたオーディオ信号は、遅延された信号であることが知られている。したがって、遅延窓の最小値は、0(ゼロ)に増加され、それにより、再び相互相関演算の速度を2倍にし得る。
【0032】
いくつかの実装形態では、リアルタイムオーディオストリーミングプラットフォームのTDEは、ロックフリーの動的プログラミング手法を利用して、前の反復からの値を計算および記憶しながら、リアルタイムで到着するオーディオデータを用いて計算して、アルゴリズムによってかかる時間を約半分に低減することができる。相互相関分析の複数のステップが、決定された一組の遅延推定値におけるそれぞれの遅延推定値を決定するために複数のオーディオサンプルの重なり合う複数の窓を使用する場合、並列処理を使用することができ、TDEは、複数の部分ステップからのデータを共有することによって計算時間を短縮することができる。例えば、半分だけ重なる隣接する分析窓を使用する2つのステップは、それらの分析窓の重なる部分に対応する相互相関計算の部分的な結果を共有することができる。TDEは、重なり合うチャンクのCC値を最初に計算し、その後、分析窓の残りの結果を計算し、分析窓の残りの結果と組み合わせることができる。これは、分析窓の重なり合う部分の分析を行っている間に、CC分析データの次のステップの残りのデータが到着するためである。ステップ計算は独立して行われ、共有される部分ステップを優先することによって、TDEは、冗長計算の量、すなわち、TDE計算の時間計算量を低減することができる。TDEは、重なり合う複数の分析窓のうちの早い方からの部分ステップを再使用することができるので、次のステップにおいて行われる必要がある計算は、次のステップの分析窓の残りについてのみである。
【0033】
図1は、オーディオストリームの動的レイテンシ推定のためのシステム100の一例のブロック図である。システム100は、音源102と、無線通信ネットワークを介して音源からのオーディオ信号の複数のフレームを送信するように構成された無線アクセスポイント104と、オーディオ信号の複数のフレームを受信し、空気中で音波を介して音源102からコンピューティングデバイス110に伝搬した生の(raw)オーディオ信号と同期してオーディオ信号を再生するように構成されたコンピューティングデバイス110とを含む。コンピューティングデバイス110は、無線通信ネットワークを介してデータを受信するように構成されたネットワークインタフェース120と、マイクロホン130と、スピーカー140とを含む。いくつかの実施形態では、コンピューティングデバイス110は、1つまたは複数のヘッドホンに通信可能に接続される。コンピューティングデバイス110は、マイクロホン130によってキャプチャされたオーディオと、無線アクセスポイント104から受信したストリーミングオーディオ信号との間の相対遅延を推定するように構成され得る。この例では、ネットワークインタフェース120は、これらのオーディオ信号間の相対遅延をより効率的におよび/または効果的に推定するためにコンピューティングデバイス110によって使用され得る遅延範囲データを含むパケット106を無線アクセスポイント104から受信するために使用される。例えば、システム100は、
図5の技法500を実施するように構成され得る。例えば、システム100は、
図6の技法600を実施するように構成され得る。例えば、システム100は、
図7の技法700を実施するように構成され得る。
【0034】
音源102は、システム100の周りの空気を介して音波として伝搬し、且つ、記録され、電子無線通信ネットワーク(例えば、WiFiネットワーク)を介してクライアントデバイスに配信するために、デジタル信号として無線アクセスポイント104に渡されるオーディオ信号を生成する。例えば、音源は、コンサートにおける生の複数の演奏者およびその楽器であり得る。例えば、音源は、大きな会場における音声を再生するより大きなスピーカーであり得る。例えば、無線アクセスポイント104は、
図4のコンピューティングデバイス400の複数のコンポーネントを含み得る。例えば、無線アクセスポイント104は、電子無線通信ネットワークを介してオーディオデータを複数のクライアントデバイスに送信するオーディオサーバーを含み得る。いくつかの実装形態では、無線アクセスポイント104は、スタジアムまたは他の場所(venue)における無線ネットワーク(たとえば、WiFiネットワークまたはセルラーデータネットワーク)を介して複数のコンサート参加者のパーソナルコンピューティングデバイス(例えば、スマートフォンまたはタブレット)にライブコンサートまたは音楽演奏のオーディオデータをマルチキャストするように構成されている。
【0035】
コンピューティングデバイス110は、マイクロホン130によってキャプチャされたオーディオと、ネットワークインタフェース120を使用して無線アクセスポイント104から受信したストリーミングオーディオ信号との間の相対遅延を推定するように構成され得る。例えば、コンピューティングデバイス110は、複数の拡張現実アプリケーションのためのスマートフォン、タブレット、またはヘッドマウントディスプレイであり得る。例えば、コンピューティングデバイス110は、
図4のコンピューティングデバイス400の複数のコンポーネントを含み得る。相互相関に基づくアルゴリズムを使用して、オーディオ信号間の相対遅延を推定することができる。いくつかの実装形態では、コンピューティングデバイス110は、マイクロホン130を使用して第1のオーディオ信号をキャプチャし、ネットワークインタフェース120を使用して、アクセスポイント104から無線通信を介して第2のオーディオ信号を受信し、第1のオーディオ信号および第2のオーディオ信号のそれぞれの分析ステップにおける(たとえば、
図2の技法200を使用する)相互相関に基づいて、第2のオーディオ信号に対する第1のオーディオ信号の遅延の一組の推定値を決定し、遅延の一組の推定値についての平均遅延および信頼区間を決定し、信頼区間を閾値持続時間と比較し、信頼区間が閾値持続時間未満であることに応答して、スピーカーを使用して、アクセスポイントから受信したオーディオ信号を、平均遅延に基づいて決定された追加遅延を加えて再生するように構成されている。例えば、信頼区間は90%の信頼区間であり、閾値持続時間は20ミリ秒であり得る。それぞれの分析ステップは、重なり合う分析窓を有してもよい。例えば、それぞれの分析ステップは、隣接する分析ステップと半分だけ重なり合う分析窓を有してもよい。例えば、コンピューティングデバイス110は、
図5の技法500を実施するように構成され得る。
【0036】
遅延範囲データ(例えば、無線アクセスポイント104の近傍で予想される最小遅延および最大遅延)を含むパケット106などの無線アクセスポイント104から受信した情報は、相対遅延を推定するために相互相関分析を使用して探索される位相シフトの範囲を制限するために使用され得る。例えば、1つまたは複数の無線アクセスポイントからの遅延範囲に関連する情報は、
図3A、
図3B、および
図3Cに示される方式のうちの1つまたは複数を使用してコンピューティングデバイス110に提供され得る。いくつかの実装形態では、コンピューティングデバイス110は、ネットワークインタフェース120を使用して、アクセスポイント104から無線通信を介して最大遅延パラメータを受信し、遅延の一組の推定値を決定するために、最大遅延パラメータに基づいて、相互相関を使用して探索するための位相シフトの範囲を選択するように構成されている。いくつかの実装形態では、コンピューティングデバイス110は、ネットワークインタフェース120を使用して、アクセスポイントから無線通信を介して最小遅延パラメータを受信し、遅延の一組の推定値を決定するために、最小遅延パラメータに基づいて、相互相関を使用して探索するための位相シフトの範囲を選択するように構成されている。いくつかの実装形態では、コンピューティングデバイス110は、ネットワークインタフェース120を使用して、アクセスポイント104から無線通信を介してタイムスタンプを受信し、タイムスタンプに基づいてアクセスポイント104についての距離推定値を決定し、遅延の一組の推定値を決定するために、距離推定値に基づいて、相互相関を使用して探索するための位相シフトの範囲を選択するように構成されている。
【0037】
図2は、分析窓における2つの信号間の遅延を推定するために相互相関を使用する技法200の一例のブロック図である。技法200は、第1のオーディオ信号202(例えば、ローカルマイクロホンでキャプチャされたオーディオ信号)および第2のオーディオ信号204(例えば、無線ネットワークを介して送信された複数のサンプルのフレームとして受信したストリーミングオーディオ信号)を入力として取得し、2つの入力信号間の推定遅延250を出力する。入力信号202および204は、それぞれの加法性雑音成分(additive noise component)を有するモデル化された互いに対して時間をずらしたものである。技法200は、可変遅延バッファ210を使用して、2つのオーディオ信号の真の相対遅延(D)の推定値を特定するために探索される用途(アプリケーション)について予想される遅延の範囲にわたって変化させることができる位相シフトを第2のオーディオ信号204に導入する。第1のオーディオ信号202および位相シフトされた第2のオーディオ信号204は、乗算器220に送られ、結果として生じる複数の積は、探索される様々な位相シフトにおける相互相関を決定するために複数の積を加算する相互相関器230に送られる。結果として生じる複数の相互相関は、2つの入力信号間の推定遅延250として最大相互相関に対応する位相シフトを識別するピーク検出器240に送られる。いくつかの実装形態では、技法200は、2つの入力信号202および204の異なる分析窓に複数回適用され、結果として生じる一組の推定遅延250は、第1のオーディオ信号202と第2のオーディオ信号204との間の相対遅延のよりロバストな推定値を決定するために統計的に分析され得る。
【0038】
最大遅延変数を低減するために、いくつかの手法が、リアルタイムオーディオストリーミングプラットフォームならびにTDEの両方に組み込まれている。アルゴリズムの速度を向上させ、測定誤差を低減する最も効果的な方法の1つは、最大遅延窓(オーディオが遅延される可能性のある値の範囲)を可能な限り小さい値に設定することによるものである。これを行う特定の方法は、これらの値をメタデータとしてサーバー(例えば、無線アクセスポイント104)からクライアント(すなわち、コンピューティングデバイス)に配信することである。以下に、これらの値を決定するために実施され得る3つの例の手段を説明する。
【0039】
図3Aは、同期オーディオをライブストリーミングするシステム300の一例の図であり、システム300は、音源302と、音源302からのオーディオ信号とその信号を受信する複数のクライアントデバイスによる使用のための複数の遅延範囲パラメータとを再送信するペアとされた(paired)無線アクセスポイント304とを含む。この状況では、すべてのアクセスポイントが、会場全体について同じ最大遅延値および最小遅延値を送信し、クライアントは、この最大遅延値および最小遅延値を使用して複数の相互相関入力パラメータを調整する。例えば、最大および最小遅延パラメータは、会場固有であり得る。複数のサンプルのオフセットは、最小遅延に整合するように事前調整されることができ、CC関数の最大遅延は、サーバーから送信された最小値と最大値との間の差に設定されることができる。この例では、無線アクセスポイント304は、100ミリ秒の最小遅延パラメータおよび300ミリ秒の最大遅延パラメータをブロードキャストしており、クライアントデバイス(図示せず)は、これらパラメータを使用して、それらのオーディオストリームを音源302からの空気伝達のオーディオ信号とより効率的に同期させることができる。
【0040】
図3Bは、同期オーディオをライブストリーミングするシステム310の一例の図であり、システム310は、音源302と、音源302からのオーディオ信号とそれらの信号を受信する複数のクライアントデバイスによる使用のための複数の遅延範囲パラメータとを再送信するペアとされた複数の無線アクセスポイント312および314とを含む。システム310では、各無線アクセスポイントは、音源302からのその位置およびそのそれぞれの無線カバレージサービスエリアの位置に基づいて固有の遅延範囲をクライアントに供給する。これにより、可能性のある遅延窓を小さく保ちながら、より大きいエリアのカバレージを可能にし得る。この例では、無線アクセスポイント312は、100ミリ秒の最小遅延パラメータおよび200ミリ秒の最大遅延パラメータをブロードキャストしている。無線アクセスポイント312よりも音源302から遠くに位置している無線アクセスポイント314は、200ミリ秒の最小遅延パラメータおよび300ミリ秒の最大遅延パラメータをブロードキャストしている。クライアントデバイス(図示せず)は、この遅延範囲情報を使用して、それらのオーディオストリームを音源302からの空気伝達のオーディオ信号とより効率的に同期させることができる。
【0041】
図3Cは、同期オーディオをライブストリーミングするシステム320の一例の図であり、システム320は、音源302と、音源302からオーディオ信号および複数のタイムスタンプを再送信するペアとされた無線アクセスポイント322とを含み、タイムスタンプは、無線アクセスポイント322までのクライアントデバイスの距離を決定し、その距離に基づいて複数の遅延範囲パラメータを推測するために使用されることができる。システム320では、クライアントが、無線アクセスポイント322からの距離に基づいて遅延を推定することができる。ネットワークメッセージの複数のタイムスタンプを使用して、クライアントは、無線アクセスポイント322からのその距離を決定し、これにより、可能性のある最大遅延範囲を低減することができる。例えば、これらのタイムスタンプは、リアルタイムオーディオストリーミングプラットフォームに接続されたすべてのデバイス(無線アクセスポイント322およびクライアント)にわたってピコ秒の時間精度を可能にする精密時間プロトコル(PTP : Precision Time Protocol)を使用して同期され得る。無線アクセスポイント322に十分に近い場合、実際の遅延の30ms以内であることが保証される平均遅延値を使用する。その距離の外側にある場合、クライアントは、中心範囲よりも高いおよび低い(above and below)より小さい分割窓で相互相関を使用して、実際の遅延を決定することができる。この手法は、無線アクセスポイント322ごとに最大の遅延範囲を提供し得る。
【0042】
図4は、無線アクセスポイント104またはコンピューティングデバイス110などの、
図1に示されるシステムのコンピューティングデバイス400の内部構成の一例のブロック図である。例えば、クライアントデバイスおよび/またはサーバーデバイスは、携帯電話、タブレットコンピュータ、ラップトップコンピュータ、ノートブックコンピュータ、デスクトップコンピュータ、サーバーコンピュータ、および/または他の適切なコンピューティングデバイスなど、複数のコンピューティングデバイスおよび/または単一のコンピューティングデバイスを含むコンピューティングシステムであり得る。コンピューティングデバイス400は、プロセッサ402、バス404、メモリ406、複数の周辺機器414、電源416、ネットワーク通信ユニット418、ユーザーインタフェース420、他の適切なコンポーネント、および/またはそれらの任意の組合せなどのコンポーネントおよび/またはユニットを含むことができる。
【0043】
プロセッサ402は、マイクロプロセッサなどの中央処理装置(CPU)とすることができ、単一または複数の処理コアを有する単一または複数のプロセッサを含むことができる。代替的に、プロセッサ402は、情報を操作または処理することが可能である、現在存在するまたは今後開発される別のタイプのデバイスまたは複数のデバイスを含むことができる。例えば、プロセッサ402は、有線接続及び/又は(無線ネットワーク接続を含む)ネットワーク接続を含む任意の方法で相互接続された複数のプロセッサを含むことができる。いくつかの実装形態では、プロセッサ402の複数の処理は、直接的に、またはローカルエリアもしくは他のタイプのネットワークで接続され得る複数の物理デバイスおよび/またはユニットにわたって分散されることができる。いくつかの実装形態では、プロセッサ402は、処理データおよび/または命令のローカル記憶のためのキャッシュまたはキャッシュメモリを含むことができる。プロセッサ402の複数の処理は、直接的にまたはローカルエリアもしくは他のタイプのネットワークで接続され得る複数のマシンにわたって分散されることができる。
【0044】
メモリ406は、揮発性メモリ、不揮発性メモリ、および/またはそれらの組合せを含むことができる。例えば、メモリ406は、DDR SDRAMなどの1つまたは複数のDRAMモジュールなどの揮発性メモリ、およびディスクドライブ、ソリッドステートドライブ、フラッシュメモリ、相変化メモリ(PCM : Phase-Change Memory)などの不揮発性メモリ、および/またはアクティブ電源がない場合などに永続的な電子情報記憶が可能である任意の形態の不揮発性メモリを含むことができる。メモリ406は、プロセッサ402による処理のためのデータおよび/または命令を記憶することが可能である、現在存在するかまたは今後開発される別のタイプのデバイスまたは複数のデバイスを含むことができる。プロセッサ402は、バス404を介してメモリ406内のデータにアクセスおよび/またはデータを操作することができる。
図4では単一のブロックとして示されているが、メモリ406は複数のユニットとして実装されることができる。例えば、コンピューティングデバイス400は、RAMなどの揮発性メモリ、およびハードドライブまたは他のストレージなどの永続性メモリを含むことができる。メモリ406は、ネットワークベースのメモリ、または複数のクライアントおよび/もしくは複数のサーバーの処理を実行する複数のマシン内のメモリなど、複数のマシンにわたって分散されることができる。
【0045】
メモリ406は、プロセッサ402による即時アクセスのために、複数の実行可能命令408、アプリケーションデータ410などのデータ、オペレーティングシステム412、またはそれらの組合せを含むことができる。複数の実行可能命令408は、例えば、プロセッサ402によって実行されるように不揮発性メモリから揮発性メモリに全体的または部分的にロードおよび/またはコピーされ得る1つまたは複数のアプリケーションプログラムを含むことができる。複数の実行可能命令408は、本明細書において説明される様々な機能を実行するために、複数のプログラム可能モジュールおよび/またはアルゴリズム、複数の機能プログラム、複数のコード、複数のコードセグメント、および/またはそれらの組合せで編成されることができる。例えば、メモリ406は、コンピューティングデバイス400を含むシステムに、
図5の技法500、
図6の技法600、または
図7の技法700を実施させるために、プロセッサ402によって実行可能な複数の命令を含み得る。
【0046】
アプリケーションデータ410は、例えば、ユーザーファイル、データベースカタログおよび/または辞書、ウェブブラウザ、ウェブサーバー、データベースサーバーなどの機能プログラムのための構成情報、および/またはそれらの組み合わせを含むことができる。オペレーティングシステム412は、例えば、Microsoft Windows(登録商標)、Mac OS X(登録商標)、もしくはLinux(登録商標)、スマートフォンもしくはタブレットデバイス等の小型デバイス用のオペレーティングシステム、またはメインフレームコンピュータ等の大型デバイス用のオペレーティングシステムであり得る。メモリ406は、1つまたは複数のデバイスを備えることができ、ソリッドステートストレージまたは磁気ストレージなどの1つまたは複数のタイプのストレージを利用することができる。
【0047】
複数の周辺機器414は、バス404を介してプロセッサ402に接続されることができる。複数の周辺機器は、コンピューティングデバイス400自体および/またはコンピューティングデバイス400の周囲の環境を監視することができる、複数のセンサもしくは複数の検出器、または任意の数のセンサもしくは検出器を含むデバイスとすることができる。例えば、コンピューティングデバイス400は、GPS(global positioning system)位置特定ユニットなどの地理空間位置識別ユニットを含むことができる。別の例として、コンピューティングデバイス400は、プロセッサ402などのコンピューティングデバイス400の複数のコンポーネントの温度を測定するための温度センサを含むことができる。他のセンサまたは検出器が、考慮されることができるように、コンピューティングデバイス400とともに使用されることができる。いくつかの実装形態では、クライアントおよび/またはサーバーは、複数の周辺機器414を省略することができる。いくつかの実装形態では、電源416はバッテリとすることができ、コンピューティングデバイス400は、外部配電システムから独立して動作することができる。複数の周辺機器414または電源416などのコンピューティングデバイス400の複数のコンポーネントのいずれも、バス404を介してプロセッサ402と通信することができる。ここでは単一のバスとして示されているが、バス404は、様々なブリッジ、コントローラ、および/またはアダプタを介して互いに接続され得る複数のバスから構成されてもよい。
【0048】
ネットワーク通信ユニット418はまた、バス404を介してプロセッサ402に接続されることができる。いくつかの実装形態では、ネットワーク通信ユニット418は、1つまたは複数の送受信機を備えることができる。ネットワーク通信ユニット418は、ネットワークインタフェースを介してネットワークへの接続またはリンクを提供し、ネットワークインタフェースは、イーサネット(登録商標)などの有線ネットワークインタフェースまたは無線ネットワークインタフェースであり得る。例えば、コンピューティングデバイス400は、イーサネット(登録商標)、TCP、IP、電力線通信(PLC : power line communication)、WiFi、赤外線、GPRS、GSM(登録商標)、CDMA、TDMA、UMTS、または他の適切なプロトコルなどの1つまたは複数のネットワークプロトコルを使用して、ネットワーク通信ユニット418およびネットワークインタフェースを介して他のデバイスと通信することができる。
【0049】
ユーザーインタフェース420は、ディスプレイ、マウス、タッチパッド、タッチスクリーンなどの位置入力デバイス、キーボード、ならびに/または任意の他のヒューマンおよびマシンインターフェースデバイスを含むことができる。ユーザーインタフェース420は、バス404を介してプロセッサ402に接続されることができる。ユーザーがコンピューティングデバイス400をプログラムするかまたは別様に使用することを可能にする他のインタフェースデバイスが、ディスプレイに加えて、またはディスプレイの代替として提供されることができる。いくつかの実装形態では、ユーザーインタフェース420は、液晶ディスプレイ(LCD: liquid crystal display)、陰極線管(CRT : cathode-ray tube)、LED(light emitting diode)ディスプレイ(たとえば、OLEDディスプレイ)、または他のディスプレイであり得る、ディスプレイを含むことができる。ユーザーインタフェース420は、電子オーディオデータを媒体(例えば、空気)中で音に変換するように構成されたオーディオドライバー(audio driver)(例えば、スピーカー)を含み得る。例えば、ユーザーインタフェース420のスピーカーは、(例えば、音楽またはスピーチ信号を符号化した)オーディオデータを再生するために使用され得る。いくつかの実施形態では、コンピューティングデバイス400は、1つまたは複数のヘッドホンに通信可能に接続される。例えば、いくつかの実施形態では、1つまたは複数のヘッドホンは、オーディオデータを再生するために使用され得る。
【0050】
図5は、オーディオストリームについての動的レイテンシ推定のための技法500の一例を示すフローチャートである。技法500は、コンピューティングデバイスのマイクロホンを使用して第1のオーディオ信号をキャプチャすることと(510)、アクセスポイントから無線通信を介して第2のオーディオ信号をコンピューティングデバイスにおいて受信することと(520)、第1のオーディオ信号および第2のオーディオ信号のそれぞれの分析ステップにおける相互相関に基づいて、第2のオーディオ信号に対する第1のオーディオ信号の遅延の一組の推定値を決定することと(530)、遅延の一組の推定値についての平均遅延および信頼区間を決定することと(540)、信頼区間を閾値持続時間と比較することと(550)、信頼区間が閾値持続時間未満であることに応答して、コンピューティングデバイスによって制御されるスピーカーを使用して、アクセスポイントから受信したオーディオ信号を、平均遅延に基づいて決定された追加遅延を加えて再生することと(560)を含む。例えば、技法500は、
図1のコンピューティングデバイス110によって実施され得る。例えば、技法500は、
図4のコンピューティングデバイス400によって実施され得る。
【0051】
技法500は、コンピューティングデバイスのマイクロホンを使用して第1のオーディオ信号をキャプチャすること(510)を含む。例えば、マイクロホンは、遠くの音源からの音を聴いているライブイベントにおけるユーザーの携帯電話、タブレット、またはヘッドマウントディスプレイに組み込まれてもよい。例えば、第1のオーディオ信号は、44.1kHzでサンプリングされ、第2のオーディオ信号との比較のためにパルス符号変調フォーマットで符号化され得る。
【0052】
技法500は、アクセスポイント(例えば、無線アクセスポイント104)から無線通信を介してコンピューティングデバイスにおいて第2のオーディオ信号を受信すること(520)を含む。例えば、第2のオーディオ信号は、ネットワークインタフェース(例えば、ネットワークインタフェース120)を使用して受信され得る(520)。例えば、第2のオーディオ信号は、(例えば、音楽またはスピーチ信号を符号化した)オーディオデータの複数のフレームのシーケンスとして受信され得る。
【0053】
技法500は、第1のオーディオ信号および第2のオーディオ信号のそれぞれの分析ステップにおける相互相関に基づいて、第2のオーディオ信号に対する第1のオーディオ信号の遅延の一組の推定値を決定すること(530)を含む。例えば、第1のオーディオ信号および第2のオーディオからの複数組のオーディオサンプルは、遅延の一組の推定値についての遅延のそれぞれの推定値を決定するそれぞれの分析ステップにおいて使用されるべき異なる複数の分析窓にグループ化され得る。これらの分析窓は合わせて、2つのオーディオ信号の1サイクルにわたってもよい。いくつかの実装形態では、各分析ステップは、重なっている分析窓を有する。例えば、それぞれの分析ステップは、隣接する分析ステップと半分だけ重なる分析窓を有する。一例では、各分析ステップの分析窓は、2秒の長さであってもよく、ステップサイズは、1秒の長さであってもよく、その結果、隣接する分析窓は、半分または1秒重なっている。例えば、サイクルごとに5つの分析ステップが使用され、それにより、第1のオーディオ信号および第2のオーディオ信号の各々からのオーディオデータの合計2*5-4=6秒が1サイクルにおいて使用される。各分析ステップについて、相互相関分析を実行して、遅延の一組の推定値の遅延のそれぞれの推定値を決定することができる。例えば、分析窓において相互相関を最大化する2つのオーディオ信号間の位相シフトが特定され、分析ステップについての遅延のそれぞれの推定値として使用され得る。例えば、
図2の技法200は、分析ステップを実行し、分析ステップについての遅延のそれぞれの推定値を決定するように実施され得る。いくつかの実装形態では、分析ステップ中に探索される位相シフトの範囲は、2つのオーディオ信号間の可能性のある相対遅延の範囲についてのアウトオブバンド情報(out-of-band information)に基づいて制限され、これは、計算量を低減し、いくつかのタイプのエラーを防止する働きをし得る。可能性のある相対遅延の範囲についての情報は、アクセスポイントから受信され得る。例えば、
図6の技法600は、探索されるべき遅延の範囲を決定するために実施され得る。例えば、
図7の技法700は、探索されるべき遅延の範囲を決定するために実施され得る。いくつかの実装形態では、2つの分析窓の重なっている部分に対応する部分的な結果を生成する分析ステップを実行するために、ロックフリー(lock-free)の動的プログラミング手法が使用されてもよく、計算量をさらに低減するために、この部分的な結果は記憶され、2つの分析ステップのうちの後の分析ステップにおいて再利用されることができる。
【0054】
技法500は、遅延の一組の推定値についての平均遅延および信頼区間を決定すること(540)を含む。1サイクルについての遅延の一組の推定値に適用されるこの統計分析は、雑音を抑制し、第1のオーディオ信号および第2のオーディオ信号の相対遅延の最終推定値のロバスト性を向上し得る。いくつかの実施形態では、信頼区間は、80%、85%、90%、および95%のうちの1つであり、閾値持続時間は、16ミリ秒、18ミリ秒、20ミリ秒、22ミリ秒、および24ミリ秒のうちの1つである。例えば、いくつかの実装形態では、信頼区間は90%の信頼区間であり、閾値持続時間は20ミリ秒である。
【0055】
技法500は、信頼区間を閾値持続時間と比較すること(550)を含む。例えば、閾値持続時間は20ミリ秒であり得る。ステップ555において、信頼区間が閾値未満である場合、信頼区間が閾値持続時間未満であることに応答して、技法500は、コンピューティングデバイスによって制御されるスピーカーを使用して、アクセスポイントから受信したオーディオ信号を、平均遅延に基づいて決定された追加遅延を加えて再生すること(560)を含む。いくつかの実施形態では、技法500は、コンピューティングデバイスに通信可能に接続された1つまたは複数のヘッドホンを使用して、アクセスポイントから受信したオーディオ信号を、平均遅延に基づいて決定された追加遅延を加えて再生することを含む。いくつかの実装形態では、追加遅延は平均遅延に等しい。いくつかの実装形態では、追加遅延は、平均遅延から、コンピューティングデバイスの記録または再生経路(プレイアウト経路:playout pathways)を通る既知のまたは推定された遅延だけ取り除かれる。いくつかの実装形態では、追加遅延は、所望の音響効果を生成するために平均遅延に基づいて決定される。
【0056】
ステップ555において、信頼区間が閾値以上である場合、平均遅延は、第1のオーディオ信号と第2のオーディオ信号との間の相対遅延の推定値として適用されない。第2のオーディオ信号の再生は、停止され得るか、または相対遅延の以前の推定値もしくはデフォルト遅延を使用して進行され得る。技法500は、第1のオーディオ信号と第2のオーディオ信号との間の相対遅延のより良好な推定値を決定することを試みるために、2つのオーディオ信号からのオーディオサンプルの次のサイクルで繰り返され得る。
【0057】
図6は、2つのオーディオ信号間の遅延を推定するために相互相関を使用して探索されるべき位相シフトの範囲を決定するための技法600の一例を示すフローチャートである。技法600は、アクセスポイントから無線通信を介して最大遅延パラメータを受信することと(610)、アクセスポイントから無線通信を介して最小遅延パラメータを受信することと(620)、遅延の一組の推定値を決定するために、最大遅延パラメータおよび/または最小遅延パラメータに基づいて、相互相関を使用して探索するための位相シフトの範囲を選択することと(630)を含む。例えば、最大遅延パラメータおよび/または最小遅延パラメータは、アクセスポイントからパケット(例えば、パケット106)で受信され得る。例えば、最大遅延パラメータおよび/または最小遅延パラメータは、会場に固有であり、会場内のすべてのアクセスポイントによってブロードキャストされ得る(例えば、
図2A参照)。いくつかの実装形態では、最大遅延パラメータおよび/または最小遅延パラメータは、各アクセスポイントに固有であり得る(例えば、
図2B参照)。例えば、コンピューティングデバイスは、受信した無線信号強度などのアクセスポイントへの近接性または近接性の代替指標に基づいて、複数のアクセスポイントから使用すべき最大遅延パラメータおよび/または最小遅延パラメータを選択し得る。例えば、技法600は、
図1のコンピューティングデバイス110によって実施され得る。例えば、技法600は、
図4のコンピューティングデバイス400によって実施され得る。
【0058】
図7は、2つのオーディオ信号間の遅延を推定するために相互相関を使用して探索されるべき位相シフトの範囲を決定するための技法700の一例を示すフローチャートである。技法700は、アクセスポイントから無線通信を介してタイムスタンプを受信することと(710)、タイムスタンプに基づいてアクセスポイントについての距離推定値を決定することと(720)、遅延の一組の推定値を決定するために、距離推定値に基づいて、相互相関を使用して探索するための位相シフトの範囲を選択することと(730)を含む。例えば、タイムスタンプは、複数のデバイスにわたってピコ秒の時間精度を可能にする精密時間プロトコル(PTP: Precision Time Protocol)を使用して同期され得る。アクセスポイントに十分に近い場合には、実際の遅延の範囲内(例えば、30ms内)であることが保証される平均遅延値である。その距離の外側にある場合、(例えば、
図3Cに関連して説明したように)実際の遅延を決定するために、中心範囲の上および下にあるより小さい分割範囲で相互相関を評価することができる。この手法は、アクセスポイントごとに最大の遅延範囲を提供することができる。例えば、技法700は、
図1のコンピューティングデバイス110によって実施され得る。例えば、技法700は、
図4のコンピューティングデバイス400によって実施され得る。
【0059】
本開示を特定の実施形態に関連して説明してきたが、本開示は、開示された実施形態に限定されるべきではなく、逆に、添付の特許請求の範囲内に含まれる様々な変更および等価な構成を包含することが意図されており、特許請求の範囲は、法律の下で許容されるようなすべてのそのような変更および等価な構造を包含するように最も広い解釈が与えられるべきであることを理解されたい。
【国際調査報告】