さらなる実施形態、詳細、利点、および修正は、添付の図面とあわせて考慮されるべき以下の好ましい実施形態の詳細な説明から明らかとなるであろう。
一実施形態は、オーディオ信号等の入力を、ハプティック効果を生成するために用いることができるハプティック信号に変換できるシステムである。このシステムは、入力を複数の周波数帯域にフィルタリングでき、ここで各周波数帯域は入力のサブ信号を含み、システムはさらに、一つ以上の分析パラメータに基づいて複数の周波数帯域に優先順位を付けることができる。一般に、システムは、優先順位を付けた周波数帯域のリストを作成しうる。システムは、優先順位を付けたリストから一つ以上の周波数帯域をさらに選択し、選択された周波数帯域(単数または複数)を用いて、選択された周波数帯域(単数または複数)の合成に少なくとも部分的に基づくハプティック信号を生成しうる。例えばシステムは、オーディオ信号を帯域通過フィルタリングにかけて四つの周波数帯域にし、マグニチュードが最大のオーディオサブ信号を含む周波数帯域に基づいてハプティック信号を生成しうる。システムのハプティック変換機能は、デバイスで再生できる出力ファイルを提供するオフライン機能として、または再生時に処理を行うアルゴリズムとして、実装されうる。
別の実施形態は、オーディオ信号等の入力を、ハプティック効果を生成するために用いることができるハプティック信号に変換できるシステムである。このシステムは、マルチメディアファイル(例えばオーディオファイルまたはビデオファイル)を読み込み、マルチメディアファイルからオーディオ信号等の入力信号を抽出しうる。システムは、入力信号を一つ以上の入力サブ信号にフィルタリングしうる。例えばシステムは、相補的な遮断周波数を有する異なる帯域通過フィルタを用いて、入力信号を異なる相補的な入力サブ信号に分割しうる。次いでシステムは、各入力サブ信号につきハプティックサブ信号を作成しうる。システムは、ハプティックサブ信号をさらに混合または別途合成して、元の入力信号に対応する全体のハプティック信号にしうる。システムのハプティック変換機能は、ソフトウェアモジュール、モバイルアプリケーション、またはオーディオ/ビデオプレーヤおよび編集ツールのプラグインとして実装されうる。
図1は、本発明の一実施形態によるシステム10のブロック図である。一実施形態では、システム10はモバイルデバイスの一部であり、システム10は、モバイルデバイスにハプティック変換機能を提供する。別の実施形態では、システム10は着用可能デバイスの一部であり、システム10は、着用可能デバイスにハプティック変換機能を提供する。着用可能デバイスの例には、リストバンド、ヘッドバンド、眼鏡、リング、レッグバンド、衣類と一体化されたアレイ、またはユーザが身に付けまたはユーザによって保持されうる他の任意のタイプのデバイスが含まれる。一部の着用可能デバイスは、「ハプティック式」、すなわちハプティック効果を生成する機構を含むものとすることができる。別の実施形態では、システム10は、デバイス(例えばモバイルデバイスまたは着用可能デバイス)から切り離されており、デバイスにハプティック変換機能を遠隔提供する。単一のシステムとして図示されているが、システム10の機能は、分散型システムとして実装されてもよい。システム10は、バス12または情報通信のための他の通信機構と、バス12に結合された情報処理のためのプロセッサ22とを含む。プロセッサ22は、任意のタイプの汎用または特定用途向けプロセッサであってよい。システム10は、プロセッサ22により実行される情報および命令を格納するメモリ14をさらに含む。メモリ14は、ランダムアクセスメモリ(「RAM」)、リードオンリメモリ(「ROM」)、磁気もしくは光ディスクなどのスタティックストレージ、または他の任意のタイプのコンピュータ可読媒体の任意の組み合わせで構成することができる。
コンピュータ可読媒体は、プロセッサ22によりアクセス可能な任意の利用可能な媒体であればよく、揮発性および不揮発性媒体の両方、取外し可能および取外し不能媒体、通信媒体、および記憶媒体を含むことができる。通信媒体は、コンピュータ可読命令、データ構造、プログラムモジュールまたは他のデータを、搬送波または他のトランスポート機構などの変調データ信号に含むことができ、公知技術のその他の任意の形の情報配信媒体を含みうる。記憶媒体には、RAM、フラッシュメモリ、ROM、消去可能プログラム可能リードオンリメモリ(「EPROM」)、電気的消去可能プログラム可能リードオンリメモリ(「EEPROM」)、レジスタ、ハードディスク、取外し可能ディスク、コンパクトディスクリードオンリメモリ(「CD−ROM」)、または公知技術の他の任意の形の記憶媒体を含みうる。
一実施形態では、メモリ14は、プロセッサ22により実行されたときに機能を提供するソフトウェアモジュールを格納する。モジュールは、一実施形態ではシステム10のほかモバイルデバイスの残りの部分にオペレーティングシステム機能を提供する、オペレーティングシステム15を含む。モジュールは、以下でより詳細に開示するように、分割および合成を用いて入力を一つ以上のハプティック効果に変換する、ハプティック変換モジュール16をさらに含む。ある実施形態では、ハプティック変換モジュール16は、分割および合成を用いて入力を一つ以上のハプティック効果に変換するための特定の個別の機能を各モジュールが提供する、複数のモジュールを含みうる。システム10は通常、Immersion CorporationによるIntegrator(登録商標)ソフトウェアなど、追加の機能を含むための一つ以上の追加のアプリケーションモジュール18を含む。
システム10は、リモートソースからデータを送信および/または受信する実施形態では、赤外線、無線、Wi−Fiまたはセルラネットワーク通信等の移動無線ネットワーク通信を提供するために、ネットワークインタフェースカード等の通信デバイス20をさらに含む。他の実施形態では、通信デバイス20は、イーサネット(登録商標)接続またはモデム等の有線ネットワーク接続を提供する。
プロセッサ22は、グラフィック表現またはユーザインタフェースをユーザに表示するための液晶ディスプレイ(「LCD」)等のディスプレイ24に、バス12を介してさらに結合される。ディスプレイ24は、プロセッサ22から信号を送受信するように構成されたタッチスクリーン等の接触感知式入力デバイスでもよく、マルチタッチ式タッチスクリーンでもよい。
システム10は、一実施形態では、アクチュエータ26をさらに含む。プロセッサ22は、生成されたハプティック効果に関連したハプティック信号をアクチュエータ26に送信し、さらにアクチュエータ26が、振動触覚ハプティック効果、静電摩擦ハプティック効果、または変形ハプティック効果等のハプティック効果を出力する。アクチュエータ26は、アクチュエータ駆動回路を含む。アクチュエータ26は、例えば、電動モータ、電磁アクチュエータ、ボイスコイル、形状記憶合金、電気活性ポリマ、ソレノイド、偏心回転質量モータ(「ERM:eccentric rotating mass motor」)、リニア共振アクチュエータ(「LRA:linear resonant actuator」)、圧電アクチュエータ、高帯域幅アクチュエータ、電気活性ポリマ(「EAP:electroactive polymer」)アクチュエータ、静電摩擦ディスプレイ、または超音波振動発生器でもよい。代替的実施形態では、システム10は、アクチュエータ26に加えて、一つ以上の追加のアクチュエータを含みうる(図1には示されない)。アクチュエータ26は、ハプティック出力デバイスの一例であり、ここでハプティック出力デバイスとは、駆動信号に応答して振動触覚ハプティック効果、静電摩擦ハプティック効果、または変形ハプティック効果等のハプティック効果を出力するように構成されたデバイスである。代替的実施形態では、アクチュエータ26は、他の何らかのタイプのハプティック出力デバイスに置換できる。さらに、他の代替的実施形態では、システム10はアクチュエータ26を含まなくてもよく、システム10とは別個のデバイスが、アクチュエータまたはハプティック効果を生成する他のハプティック出力デバイスを含み、システム10は、生成されたハプティック信号を、通信デバイス20を通じてそのデバイスに送る。
システム10は、一実施形態では、スピーカ28をさらに含む。プロセッサ22は、スピーカ28にオーディオ信号を送信してもよく、さらにスピーカ28がオーディオ効果を出力する。スピーカ28は、例えば、ダイナミックラウドスピーカ、動電ラウドスピーカ、圧電ラウドスピーカ、磁気歪みラウドスピーカ、静電ラウドスピーカ、リボン型平面磁気ラウドスピーカ、屈曲波ラウドスピーカ、フラットパネルラウドスピーカ、ハイルエアモーショントランスデューサ、プラズマアークスピーカ、およびデジタルラウドスピーカでありうる。代替的実施形態では、システム10は、スピーカ28に加えて、一つ以上の追加のスピーカを含みうる(図1には示されない)。さらに、他の代替的実施形態では、システム10は、スピーカ28を含まなくてもよく、システム10とは別個のデバイスが、オーディオ効果を出力するスピーカを含み、システム10は、オーディオ信号を、通信デバイス20を通じてそのデバイスに送る。
システム10は、一実施形態では、センサ30をさらに含む。センサ30は、音、動作、加速度、生体信号、距離、流量、力/圧力/歪み/屈曲、湿度、線形位置、方位/傾斜、無線周波数、回転位置、回転速度、スイッチの操作、温度、振動、または可視光強度等であるがこれに限定されない、エネルギーの一形態または他の物理的性質を検出するように構成されうる。センサ30は、検出エネルギーまたは他の物理的性質を、電気信号または仮想センサ情報を表す任意の信号に変換するようにさらに構成されうる。センサ30は、加速度計、心電図、脳波図、筋電計、眼電図、電気的パラトグラフ、電気皮膚反応センサ、容量センサ、ホール効果センサ、赤外センサ、超音波センサ、圧力センサ、光ファイバセンサ、曲りセンサ(または屈曲センサ)、力感知レジスタ、ロードセル、LuSense CPS2 155、ミニチュア圧力トランスデューサ、圧電センサ、ストレインゲージ、湿度計、線形位置タッチセンサ、線形ポテンショメータ(またはスライダ)、線形可変差動変圧器、コンパス、傾斜計、磁性タグ(または無線周波数識別タグ)、回転エンコーダ、回転ポテンショメータ、ジャイロスコープ、オンオフスイッチ、温度センサ(温度計、熱電対、抵抗温度検知器、サーミスタ、または温度変換集積回路等)、マイクロホン、光度計、高度計、生体モニタ、カメラ、または光依存レジスタ等であるがこれに限定されない任意のデバイスであってよい。代替的実施形態では、システム10は、センサ30に加えて、一つ以上の追加のセンサを含みうる(図1には示されない)。これらの実施形態の一部では、センサ30および一つ以上の追加のセンサは、センサアレイまたは他の何らかのタイプのセンサの集まりの一部であってもよい。さらに、他の代替的実施形態では、システム10は、センサ30を含まなくてもよく、システム10とは別個のデバイスが、エネルギーの一形態または他の物理的性質を検出するセンサを含み、検出されたエネルギーまたは他の物理的性質を、電気信号または仮想センサ情報を表す他のタイプの信号に変換する。それからこのデバイスが、変換された信号を、通信デバイス20を通じてシステム10に送ることができる。
図2は、本発明の一実施形態による、システムにより行われるハプティック変換機能のフロー図である。一実施形態では、図2の機能、ならびに図4の機能および図7の機能は、それぞれ、メモリまたは他のコンピュータ可読媒体または有形媒体に格納されたソフトウェアにより実装され、プロセッサにより実行される。この実施形態では、各機能は、ハプティック変換モジュール(図1のハプティック変換モジュール16など)により行われうる。他の実施形態では、各機能は、ハードウェアにより(例えば、特定用途向け集積回路(「ASIC」)、プログラム可能ゲートアレイ(「PGA」)、フィールドプログラム可能ゲートアレイ(「FPGA」)などを使用して)、またはハードウェアとソフトウェアの任意の組み合わせにより行われうる。
ハプティック変換機能は、入力信号の一つ以上の「チャンク」(セグメントとしても識別される)を受け取ることと、入力信号の各チャンクを処理することと、変更された入力信号のチャンクをアクチュエータ等のハプティック出力デバイスで再生することとを含みうる。ある実施形態では、入力は、オーディオ信号またはオーディオデータを含む他のタイプのオーディオ入力であってもよい。他の代替的実施形態では、入力は、ビデオ信号またはビデオデータを含む他のタイプのビデオ入力であってもよい。さらに他の代替的実施形態では、入力は、加速度信号または加速度データを含む他のタイプの加速度入力であってもよい。さらに他の代替的実施形態では、入力は、方位データを含む方位信号、周囲光データを含む周囲光信号、または、メディアファイルに関連付けられ、センサ30等のセンサで検知することもできる別のタイプの信号であってもよい。センサの出力は予め記録されてもよく、媒体ファイルとともに提供されてもよい。したがってセンサは、システムに取り付けられていても、取り付けられていなくてもよい。
この実施形態によれば、フローが210から開始し、210で入力信号チャンクが受け取られる。前述のように、入力信号チャンクは、入力信号のセグメントである。一実施形態では、入力信号チャンクは、入力信号全体を含みうる。フローは、220へ進む。
220では、入力信号チャンクがフィルタリング(例えば帯域通過フィルタリング)されて、複数の入力サブ信号(周波数帯域としても識別される)が作成される。より具体的には、入力信号チャンクに一つ以上のフィルタ(例えば帯域通過フィルタ)がかけられて入力信号チャンクのいくつかのセグメントが除去され、入力信号チャンクの残りのセグメントが特定の周波数帯域内の一つ以上の周波数を含むようにすることができる。フィルタをかけた後に残った入力信号チャンクのセグメントは、入力サブ信号または周波数帯域として識別される。複数のフィルタを用いる実施形態では、各フィルタが特定の周波数帯域に対応し、複数のパスで入力信号チャンクに複数のフィルタがかけられ(入力信号チャンクに各パスで異なるフィルタがかけられ)、各フィルタが、そのフィルタに対応する周波数帯域内の一つ以上の周波数を含む入力信号チャンクのセグメントを作成しうる。ある実施形態では、入力サブ信号は、入力信号全体のチャンクを含みうる。
例えば、第一フィルタは低周波数帯域に相当し、第二フィルタは中周波数帯域に相当し、第三フィルタは高周波帯域に相当するようにすることができる。入力信号チャンクに第一フィルタがかけられ、低周波数帯域内の一つ以上の周波数を含む第一入力サブ信号が作成されうる。次いで入力信号チャンクに第二フィルタが適用され、中周波数帯域内の一つ以上の周波数を含む第二入力サブ信号が作成されうる。次いで入力信号チャンクに第三フィルタがかけられ、高周波帯域内の一つ以上の周波数を含む第三入力サブ信号が作成されうる。
220で作成される入力サブ信号(すなわち周波数帯域)は、図2では周波数帯域221、222、223、および224として示されている。しかし、任意の数の入力サブ信号が作成されてよく、各入力サブ信号は、任意のタイプの周波数帯域内の一つ以上の周波数を含むように定義することができる。入力サブ信号の実現例は、図3とともにさらに後述する。その後、フローは230へ進む。
230では、分析パラメータに基づいて入力サブ信号(例えば周波数帯域221〜224)に優先順位が付けられる。より具体的には、各入力サブ信号の一つ以上の特性が分析され、分析パラメータが一つ以上の特性を定義する。特性の例には、周波数、継続時間、包絡線、密度、およびマグニチュードを含むことができる。その後、各入力サブ信号の分析された特性に基づいて、入力サブ信号に順序(すなわち優先順位)が付けられうる。例えば、各入力サブ信号の分析された特性に基づいてリスト内で一つ以上の入力サブ信号に優先順位を付けた、一つ以上の入力サブ信号の優先順位付きリストが生成されうる。
一例として、分析パラメータは、入力サブ信号のマグニチュードとして定義されうる。複数の入力サブ信号(すなわち周波数帯域)が作成され、最大マグニチュード値を決定するために各入力サブ信号が分析されうる。各入力サブ信号の最大マグニチュード値が比較され、対応する最大マグニチュード値に基づいて入力サブ信号に優先順位が付けられうる。
分析パラメータを用いて入力サブ信号を分析し、優先順位を付けることの実現例は、図3とともにさらに後述する。その後、フローは240へ進む。
240では、優先順位が付けられた入力サブ信号から選択された一つ以上の入力サブ信号に基づいてハプティック信号が計算され、生成される。より具体的には、優先順位が付けられた入力サブ信号から一つ以上の入力サブ信号がまず選択される。例えば、入力サブ信号の優先順位付きリストから、最高優先順位の入力サブ信号(または最高優先順位の複数の入力サブ信号)が選択されうる。その後、選択された入力サブ信号(単数または複数)に基づいてハプティック信号が計算される。より具体的には、選択された入力サブ信号(単数または複数)の一つ以上の特性を含むようにハプティック信号が計算される。ある実施形態では、ハプティック信号は、選択された入力サブ信号(単数または複数)の全ての特性を含むように計算されうる。複数の入力サブ信号がある実施形態では、ハプティック信号は、少なくとも部分的に、入力サブ信号の組み合わせに基づいて計算されうる。その後、ハプティック信号が生成される。
一例として、最大マグニチュード値が最も高い入力サブ信号が選択されうる。入力サブ信号の最大マグニチュード値を用いて、ハプティック信号が計算されうる。その後、このハプティック信号を用いて、マグニチュードが最大の入力サブ信号に基づくハプティック効果が生成されうる。別の例として、最大マグニチュード値が最も高い三つの入力サブ信号が選択されうる。三つの入力サブ信号の最大マグニチュード値を用いて、ハプティック信号が計算されうる。例えば、三つの最大マグニチュード値の平均または他の計算が計算されうる。この平均値または他の計算値を用いて、ハプティック信号が生成されうる。その後、このハプティック信号を用いて、マグニチュードが最大の三つの入力サブ信号に基づくハプティック効果が生成されうる。その後、フローは250へ進む。
250では、生成されたハプティック信号が、「歪みハプティック信号」へと「歪められる」。より具体的には、生成されたハプティック信号が「歪み」関数に入力され、歪み関数が、入力信号に含まれるデータを「歪め」または変形させて出力信号を作成することができ、この出力信号も「歪み信号」として識別される。したがって、生成されたハプティック信号を歪み関数に入力することにより、歪み関数が、生成されたハプティック信号に含まれるデータを歪めうる。生成されたハプティック信号に含まれるデータを歪めることにより、生成されたハプティック信号を最終的に「歪みハプティック信号」に変形することができる。ある実施形態では、歪みハプティック信号は、特定のハプティック出力デバイスに、より適しているため、歪みハプティック信号は、一つ以上のハプティック効果を生成するために特定のハプティック出力デバイスで再生されうる。
一例では、LRAまたはERMの場合に、歪み関数は入力ハプティック信号を包絡処理し、または入力ハプティック信号の最大マグニチュード値を用いて、生成される出力ハプティック信号のマグニチュードを計算することができ、ここで出力ハプティック信号のマグニチュードは、出力ハプティック信号により生成されるハプティック効果のマグニチュードと相関する。別の例では、圧電アクチュエータ、高帯域幅アクチュエータ、またはEAPアクチュエータの場合に、歪み関数は入力ハプティック信号を波形として再生し、または別のタイプのアルゴリズムを行って入力ハプティック信号を出力ハプティック信号に変換しうる。
ある実施形態では、250は省略されてもよい。その後、フローは260へ進む。
260では、ハプティック信号(250が行われる場合には歪みハプティック信号、または250が省略される場合には生成されたハプティック信号)が、図1のアクチュエータ26等のハプティック出力デバイスに送られ、ハプティック出力デバイスが、ハプティック信号に基づいて一つ以上のハプティック効果を生成する。したがって、選択された入力サブ信号(単数または複数)に基づいて、一つ以上のハプティック効果が生成されうる。その後、フローは終了する。
ある実施形態では、図2に示したハプティック変換機能は、モバイルデバイスまたはタッチスクリーンデバイスなど、ハプティック効果を出力するように構成されたデバイスで、実時間で行われることができる。他の代替的実施形態では、図2に示したハプティック変換機能は、コンピュータまたは他のタイプの計算機によりオフラインで行われることもでき、結果として生じたハプティック信号が、ハプティック効果を出力するように構成されたデバイスに送られればよい。
図3は、本発明の一実施形態による、周波数帯域分析および優先順位付けを用いて分析され、一つ以上のハプティック効果に変換される、複数の入力サブ信号の図である。前述のように、入力信号301は、一つ以上のフィルタを用いてフィルタリングされて、入力サブ信号302、303、および304を含む複数の入力サブ信号が作成されうる。入力サブ信号302は、入力信号の200Hzの中心周波数の帯域通過を表し、第一フィルタを用いて作成されうる。入力サブ信号303は、入力信号の1000Hzの中心周波数の帯域通過を表し、第二フィルタを用いて作成されうる。入力サブ信号304は、入力信号の5000Hzの中心周波数の帯域通過を表し、第三フィルタを用いて作成されうる。
この実施形態によれば、各入力サブ信号は、複数のセグメントまたはウィンドウに分割されうる。図の実施形態では、ウィンドウ310、320、および330の例が示されており、ウィンドウ310、320、および330はそれぞれ、入力サブ信号302、303、および304のセグメントを含む。代替的実施形態では、入力サブ信号は、図3に示されていない他のウィンドウを含みうる。さらに、ある実施形態では、入力サブ信号のウィンドウが連続して配置され、前のウィンドウが終わる位置から後続のウィンドウが始まっていてもよい。
本実施形態によれば、ウィンドウごとに、各入力サブ信号の一つ以上の特性が分析パラメータに基づいて分析されうる。したがって、図の実施形態では、ウィンドウ310、320、および330のウィンドウごとに、入力サブ信号302の一つ以上のオーディオ特性が分析パラメータに基づいて分析されうる。同様に、ウィンドウ310、320、および330のウィンドウごとに、入力サブ信号303および304の一つ以上のオーディオ特性も、分析パラメータに基づいて分析されうる。ウィンドウ310、320、および330のウィンドウごとに、分析に基づいて入力サブ信号302、303、および304に優先順位が付けられうる。さらに、ウィンドウ310、320、および330のウィンドウごとに、優先順位付けに基づいて入力サブ信号302、303、および304から入力サブ信号が選択され、選択された入力サブ信号がハプティック信号に変換されうる。分析パラメータの例には、周波数、継続時間、包絡線、密度、およびマグニチュードが含まれうる。
一例では、分析パラメータは、マグニチュードとすることができる。この例では、ウィンドウ310で、入力サブ信号302、303、および304のマグニチュードを分析することができる。さらに、ウィンドウ310で、入力サブ信号302のマグニチュードが最大であることから、入力サブ信号302を選択することができる。その後、入力サブ信号302を用いて、ウィンドウ310のハプティック信号を生成することができる。同様に、ウィンドウ320で、入力サブ信号302、303、および304のマグニチュードを分析することができる。さらに、ウィンドウ320で、入力サブ信号302のマグニチュードが最大であることから、入力サブ信号302を選択することができる。その後、入力サブ信号302を用いて、ウィンドウ320のハプティック信号を生成することができる。同様に、ウィンドウ330で、入力サブ信号302、303、および304のマグニチュードを分析することができる。さらに、ウィンドウ330で、入力サブ信号303のマグニチュードが最大であることから、入力サブ信号303を選択することができる。その後、入力サブ信号303を用いて、ウィンドウ330のハプティック信号を生成することができる。
一例では、分析パラメータは密度とすることができる。一実施形態では、密度は、信号の異なる周波数に分散された信号のパワーまたはエネルギーとすることができる。この例では、ウィンドウ310で、入力サブ信号302、303、および304の密度を分析することができる。さらに、ウィンドウ310で、入力サブ信号304の密度が最も高いことから、入力サブ信号304を選択することができる。その後、入力サブ信号304を用いて、ウィンドウ310のハプティック信号を生成することができる。同様に、ウィンドウ320で、入力サブ信号302、303、および304の密度を分析することができる。さらに、ウィンドウ320で、入力サブ信号304の密度が最も高いことから、入力サブ信号304を選択することができる。その後、入力サブ信号304を用いて、ウィンドウ320のハプティック信号を生成することができる。同様に、ウィンドウ330で、入力サブ信号302、303、および304の密度を分析することができる。さらに、ウィンドウ330で、入力サブ信号303の密度が最も高いことから、入力サブ信号303を選択することができる。その後、入力サブ信号303を用いて、ウィンドウ330のハプティック信号を生成することができる。
図4は、本発明の別の実施形態による、システムにより行われるハプティック変換機能のフロー図である。一実施形態によれば、ハプティック変換機能は、オーディオファイルまたはビデオファイル等のマルチメディアファイルを入力として受け取り、ハプティック信号を出力として生成する、ソフトウェアプログラムまたはアルゴリズムにより行われうる。ソフトウェアプログラムまたはアルゴリズムは、スタンドアロン型ソフトウェアプログラム、モバイルアプリケーション、またはProToolsなどの他のオーディオ/ビデオ編集ツールのプラグインでありうる。別の実施形態では、ハプティック変換機能は、マルチメディアファイルを受け取ってマルチメディアファイルのコンテンツを出力するマルチメディアプレイヤにより行われ、その際コンテンツが一つ以上のハプティック効果によって強化されうる。マルチメディアプレイヤは、モバイルデバイスまたはコンピュータ用に調整されうる。一実施形態では、ハプティック変換モジュール(図1のハプティック変換モジュール16など)により、機能が行われてもよい。
この実施形態によれば、フローが開始し、マルチメディアファイル410が受け取られる。マルチメディアファイル410は、マルチメディアデータを含む任意のコンピュータファイルである。一実施形態例では、マルチメディアファイル410は、オーディオデータを含むコンピュータファイルである。別の実施形態例では、マルチメディアファイル410は、ビデオデータを含むコンピュータファイルである。別の実施形態例では、マルチメディアファイル410は、オーディオデータおよびビデオデータの両方を含むコンピュータファイルである。さらに別の実施形態例では、マルチメディアファイル410は、他の何らかのタイプのデータを含むコンピュータファイルである。マルチメディアファイル410は、オンラインでストリーミングされ、または、メモリ、ディスク、または他のタイプの非一時的コンピュータ可読媒体等の物理デジタルサポート上に提供されうる。その後、マルチメディアファイル410からオーディオ信号420(図4ではオーディオトラック420として識別される)が抽出される。オーディオ信号420は、マルチメディアファイル410から抽出されうる入力信号の一例である。代替的実施形態では、オーディオ信号420は、ビデオ信号、加速度信号、方位信号、周囲光信号、またはセンサで捕らえられたデータを含みうる別のタイプの信号等の別のタイプの入力信号で置換されてもよい。
その後、オーディオ信号420がフィルタリング(例えば帯域通過フィルタリング)されて、入力サブ信号(すなわち周波数帯域)の一種である複数のオーディオサブ信号が作成される。より具体的には、オーディオ信号420に一つ以上のフィルタ(例えば帯域通過フィルタ)がかけられてオーディオ信号420のいくつかのセグメントが除去され、オーディオ信号420の残りのセグメントが特定の周波数帯域内の一つ以上の周波数を含むようにすることができる。フィルタをかけた後に残るオーディオ信号420のセグメントは、オーディオサブ信号として識別される。複数のフィルタを用いる実施形態では、各フィルタが特定の周波数帯域に対応し、複数のパスでオーディオ信号420に複数のフィルタがかけられ(オーディオ信号420に各パスで異なるフィルタがかけられ)、各フィルタが、そのフィルタに対応する周波数帯域内の一つ以上の周波数を含むオーディオ信号420のセグメントを作成しうる。図の実施形態では、一つ以上のフィルタは、帯域通過フィルタ430、440、および450により表されている。しかし、任意の数のフィルタが用いられうる。さらに、任意のタイプのフィルタが用いられうる。ある実施形態では、オーディオサブ信号は、オーディオ信号420の全体を含みうる。
ある実施形態では、各フィルタにつき定義される遮断周波数の選択は、元の入力信号中に存在する周波数のほとんどまたは全部をカバーする連続した相補的な入力サブ信号(すなわち周波数帯域)を有するような方法で行われうる。異なるフィルタの数および帯域幅の選択は、入力信号(例えばオーディオ信号420)の性質に関連すればよく、ハプティック信号の作成に影響しうる。一部の実施形態では、ハプティック出力デバイスの共振周波数を用いて、フィルタの数および帯域幅が定義されうる。例えば、第一入力サブ信号がハプティック出力デバイスの共振周波数より低い周波数の成分を含み、第二入力サブ信号がハプティック出力デバイスの共振周波数の周辺の周波数の成分を含み、第三入力サブ信号がハプティック出力デバイスの共振周波数より大きい周波数の成分を含む、三つの入力サブ信号を、三つのフィルタを用いて生み出すことができる。
次に、オーディオサブ信号または他のタイプの入力サブ信号が、複数のハプティック変換アルゴリズムを用いてハプティックサブ信号に変換される。図の実施形態では、ハプティック変換アルゴリズムは、アルゴリズム431、441、および451により表されている。しかし、任意の数のハプティック変換アルゴリズムが用いられうる。ある実施形態では、各オーディオサブ信号は、固有のハプティック変換アルゴリズムを用いてハプティック信号に変換される。したがって、複数のオーディオサブ信号または他のタイプの入力サブ信号を、複数のハプティック変換アルゴリズムが複数のハプティックサブ信号に変換(convert)しうる。
ハプティック変換アルゴリズムの例には、(a)オーディオサブ信号に既定の係数とハプティック出力デバイスの共振周波数で実現される正弦搬送波形とを乗算するステップ、(b)オーディオサブ信号に既定の係数を乗算するステップ、または(c)オーディオサブ信号の周波数成分を、ある周波数帯域から、ハプティック出力デバイスの共振周波数の周りの別の周波数帯域にシフトし、元のオーディオサブ信号の形を保つために、シフトされたオーディオサブ信号に元のオーディオサブ信号を乗算するステップを含むことができる。周波数シフトアルゴリズムの例は、図5ととともにさらに説明する。
その後、ハプティックサブ信号は、ハプティックミキサ460を用いて混合されハプティック信号にされる。ハプティックミキサ460は、いくつかの混合技術の一つにより、ハプティックサブ信号を混合することができる。混合技術の例は、図6とともにさらに説明する。
ある実施形態では、ハプティック信号は、その最大絶対値を用いて1に正規化されうる(図4には示されない)。他の実施形態では、正規化は省略されうる。
さらに、ある実施形態では、ハプティック信号から一つ以上の「ノイズ振動」が除去されうる(図4には示されない)。「ノイズ振動」とは、所定値からの所定閾値未満のずれを含むハプティック信号のセグメントである。このセグメントは、「ノイズ」として識別でき、ハプティック信号から除去されうる。これにより、ハプティック信号がハプティック出力デバイスに送られたときに、「より綺麗な」(すなわち、より適切で強力な)ハプティック効果を生み出す。
様々な技術を用いて、ハプティックトラックから「ノイズ」として識別できる一つ以上の「ノイズ振動」を除去することができる。一つの技術は、ハプティック信号から複数の「チャンク」または「ウィンドウ」のサンプルをとり、これらのサンプルの平均絶対値(または別の実装では最大絶対値)を計算し、サンプルの計算値が所定閾値より低い場合にはサンプルを「ノイズ」として識別する。その後、「ノイズ」として識別された全てのサンプルの値が、0に減少される。別の技術は、時間ウィンドウのインターリーブを用いる。時間ウィンドウごとに、ハプティック信号の正規化値が、二つのより大きな時間ウィンドウ内、すなわち(a)その時間ウィンドウ自体および先行する時間ウィンドウ内、ならびに(b)その時間ウィンドウ自体および後続の時間ウィンドウ内で、チェックされる。これらの二つの時間ウィンドウ内で、平均正規化絶対値(または別の実施態様では最大正規化絶対値)が所定閾値より低い場合には、その時間ウィンドウ内の成分は「ノイズ」として識別され、その値は0に減少される。他の実施形態では、ハプティック信号からの一つ以上のノイズ振動の除去は、省略されうる。
その後、ハプティック信号は、受け取ったハプティック信号に基づいて一つ以上のハプティック効果を生成および出力するように構成されたデバイス470に送られる。デバイス470は、マルチメディアファイル410から、オーディオ信号、ビデオ信号、オーディオデータおよびビデオデータの両方を含む信号、または他の何らかのタイプの入力信号であってもよい入力信号を受け取るようにさらに構成される。デバイス470は、入力信号に基づいてオーディオ効果、ビデオ効果、または他のタイプの効果等の一つ以上の効果を生成および出力するようにさらに構成されうる。さらに、デバイス470は、オーディオ効果、ビデオ効果、または他のタイプの効果を「補う」ように一つ以上のハプティック効果を生成するように、さらに構成されうる。デバイス470は、その構成(すなわちハプティック出力デバイスの数および位置)を考慮して、多様なハプティック効果および/または信号を同時に再生することができる。
図5は、本発明の一実施形態による、入力信号の周波数シフトの例を示す。前述のように、ハプティック変換アルゴリズムは、入力信号の周波数成分を、ある周波数帯域から、ハプティック出力デバイスの共振周波数の周りの別の周波数帯域にシフトし、元の入力信号の形を保つためにシフトされた入力信号に最終的に元の入力信号を乗算することにより、入力信号をハプティック信号に変換しうる。図5に示した例では、入力信号510が、ハプティック信号520に周波数シフトされる。より具体的には、入力信号510は、300Hz〜500Hzの周波数帯域内の周波数成分を含む。しかし、入力信号510がハプティック信号520に周波数シフトされると、入力信号の周波数成分は、300Hz〜500Hzの周波数帯域から100Hz〜200Hzの周波数帯域にシフトされる。したがって、ハプティック信号520は、100Hz〜200Hzの周波数帯域内の周波数成分を含む。
ある実施形態では、周波数シフトは、入力信号510の高速フーリエ変換を用いて達成される。さらに、「シフト元(shift−to)」周波数帯域(例えば入力信号510の元の周波数帯域)および「シフト先(shift−from)」周波数帯域(例えばハプティック信号520のシフトされた周波数帯域)のサイズに応じて、複数の周波数シフト技術の一つを用いることができる。これは、シフト元周波数帯域およびシフト先周波数帯域のサイズに応じて、シフト元周波数帯域内の複数の周波数がシフト先周波数帯域内の一つの周波数で置換されるか、またはシフト元周波数帯域内の一つの周波数(band)がシフト先周波数帯域内の複数の周波数で置換されるためである。
シフト元周波数帯域がシフト先周波数帯域より大きいシナリオでは、シフト先周波数帯域の各周波数が、シフト元周波数帯域の複数の周波数を表す。これを達成するためには、ある実施形態によれば、三つの周波数シフト技術の一つを用いることができる。第一の周波数シフト技術は、シフト元周波数帯域の複数の周波数の高速フーリエ変換値を平均し、平均をシフト先周波数帯域の対応する周波数に割り当てることである。第二の周波数シフト技術は、シフト元周波数帯域の複数の周波数の高速フーリエ変換値を合計し、合計をシフト先周波数帯域の対応する周波数に割り当てることである。第三の周波数シフト技術は、高速フーリエ変換の絶対値が最大のシフト元周波数帯域の周波数を選択し、シフト元周波数帯域の他の周波数を無視し、高速フーリエ変換の最大絶対値をシフト先周波数帯域の対応する周波数に割り当てることである。
他方で、シフト先周波数帯域がシフト元周波数帯域より大きいシナリオでは、シフト元周波数帯域の各周波数が、シフト先周波数帯域の複数の周波数で表される。これを達成するためには、二つの周波数シフト技術の一つを用いることができる。第一の周波数シフト技術は、シフト元周波数帯域の周波数の高速フーリエ変換値をシフト先周波数帯域の複数の周波数に割り当てることである。第二の周波数シフト技術は、シフト元周波数帯域の周波数の高速フーリエ変換値をシフト先周波数帯域の一つの周波数(例えば最低周波数)に割り当てることである。
図6は、本発明の一実施形態による、複数のハプティックサブ信号を混合するように構成されたハプティックミキサ610のブロック図である。前述のように、オーディオ信号620等の入力信号が複数のハプティックサブ信号(図6にハプティックトラックとして示される)に変換されればよく、ハプティックミキサ610が、ハプティックサブ信号を混合してハプティック信号にしうる。ハプティックミキサ610は、ハプティックサブ信号をいくつかの混合技術の一つにより混合することができ、三つの混合技術の例が図6の630に示されている。
第一の混合技術によれば、631でハプティックサブ信号が合計され、ハプティックサブ信号の合計を用いてハプティック信号が計算される。ある実施形態では、その後ハプティック信号は正規化される。
第二の混合技術によれば、632で各ハプティックサブ信号が複数の時間ウィンドウに分割される。633では、各時間ウィンドウで、対応する入力信号の一つ以上の卓越周波数が識別される。各時間ウィンドウで、元の入力信号の各周波数のパワースペクトル密度(「PSD:power spectrum density」)値が計算され、PSD値が最も高いN個の周波数が「支配的な周波数(dominant frequencies)」として識別され、ここでNは周波数の任意の数である。これらのN個の周波数は、異なる入力サブ信号により表される異なる帯域に帰属する。634では、N個の支配的な周波数のグループ内の周波数が最も多い帯域が、支配的な帯域として識別される。その対応するハプティックサブ信号値が、特定の時間ウィンドウで結果として生じる出力ハプティック信号に割り当てられる。
第三の混合技術によれば、635で、各入力サブ信号が、複数の時間ウィンドウに分割される。636では、各時間ウィンドウにつき、周波数帯域ごとのPSD値が計算され、各入力サブ信号につき周波数帯域ごとのPSD寄与率も計算される。より具体的には、各時間ウィンドウにつき、各入力サブ信号のPSD値が計算され、その時間ウィンドウの全体のPSD値が計算され、各入力サブ信号につき、入力サブ信号のPSD値の全体のPSD値に対する比が計算される。全体のPSD値に対する入力サブ信号のPSD値の比が、その特定の入力サブ信号のPSD寄与率である。637では、各時間ウィンドウで、各ハプティックサブ信号が、その対応する入力サブ信号のPSD寄与率に応じて重み付けされ、重み付けされたハプティックサブ信号が合計され、各時間ウィンドウのハプティックサブ信号の重み付け和に基づいてハプティック信号が計算される。
第三の混合技術は、入力サブ信号全体で周波数成分が大きく変化しうること、したがってハプティックサブ信号全体で大きく変化しうることに由来する。ハプティックサブ信号を合算したときには、各ハプティックサブ信号に等しい重みが与えられる。しかしこれは、元の入力サブ信号が元の入力成分にわずかに影響を及ぼしたような場合を考慮に入れることができない。PSD寄与率に関係する重みを与えれば、各ハプティックサブ信号が、その対応する入力サブ信号の元の入力信号に対する寄与と同様に、ハプティック信号に寄与する。したがって、結果として生じる特定の時間ウィンドウのハプティック信号は、特定の時間ウィンドウの対応する入力サブ信号の元の入力信号に対する寄与率によりそれぞれ重み付けされたハプティックサブ信号を全て合計したものである。
図7は、本発明の一実施形態による、ハプティック変換モジュール(図1のハプティック変換モジュール16など)の機能のフロー図である。フローが開始し、710に進む。710で、入力が受け取られる。ある実施形態では、入力信号のセグメントが受け取られうる。他の実施形態では、マルチメディアファイルが受け取られ、マルチメディアファイルから入力信号が抽出されうる。ある実施形態では、入力信号はオーディオ信号であってもよい。他の実施形態では、入力信号はビデオ信号であってもよい。他の実施形態では、入力信号は加速度信号であってもよい。その後、フローは720へ進む。
720では、入力が複数の入力サブ信号に分割される。ある実施形態では、入力が一つ以上のフィルタを用いてフィルタリングされればよく、各入力サブ信号は周波数帯域を含みうる。さらに、これらの実施形態の一部では、一つ以上のフィルタには、少なくとも一つの帯域通過フィルタが含まれる。その後、フローは730へ進む。
730で、入力サブ信号は、ハプティック信号に変換される。ある実施形態では、入力サブ信号は、分析パラメータに基づいて優先順位が付けられうる。一つ以上の入力サブ信号が選択され、選択された入力サブ信号に基づいてハプティック信号が生成されうる。これらの実施形態の一部では、分析パラメータは、入力サブ信号の特性を含みうる。さらに、入力サブ信号の特性には、周波数、継続時間、包絡線、密度、またはマグニチュードの一つが含まれうる。さらに、これらの実施形態の一部では、ハプティック信号が歪みハプティック信号に歪められ、歪みハプティック信号に基づいて一つ以上のハプティック効果が生成されうる。
他の実施形態では、入力サブ信号がハプティックサブ信号に変換されうる。これらの実施形態の一部では、入力サブ信号は、入力サブ信号に係数および正弦搬送波形を乗算すること、入力サブ信号に係数を乗算すること、または、周波数成分を入力サブ信号の第一周波数帯域から入力サブ信号の第二周波数帯域にシフトすることのうちの少なくとも一つにより、ハプティックサブ信号に変換されうる。さらに、これらの実施形態の一部では、各入力サブ信号は、固有のハプティック変換アルゴリズムを用いてハプティックサブ信号に変換されうる。さらに、一部の実施形態では、入力サブ信号の高速フーリエ変換が行われうる。
さらに、周波数成分が入力サブ信号の第一周波数帯域から入力サブ信号の第二周波数帯域にシフトされる実施形態では、シフトすることは、入力サブ信号の第一周波数帯域内の複数の周波数の複数の高速フーリエ変換値を平均し、平均を入力サブ信号の第二周波数帯域内の周波数に割り当てること、入力サブ信号の第一周波数帯域内の複数の周波数の複数の高速フーリエ変換値を合計し、合計を入力サブ信号の第二周波数帯域内の周波数に割り当てること、入力サブ信号の第一周波数帯域内の複数の周波数の複数の高速フーリエ変換値から絶対値が最大の高速フーリエ変換値を選択し、選択された高速フーリエ変換値を入力サブ信号の第二周波数帯域内の周波数に割り当てること、入力サブ信号の第一周波数帯域内の周波数の高速フーリエ変換値を、入力サブ信号の第二周波数帯域内の複数の周波数に割り当てること、または、入力サブ信号の第一周波数帯域内の周波数の高速フーリエ変換値を、入力サブ信号の第二周波数帯域内の最低周波数に割り当てることのうち少なくとも一つを含みうる。
ある実施形態では、その後、ハプティックサブ信号が混合されてハプティック信号にされうる。これらの実施形態の一部では、混合することは、複数のハプティックサブ信号を合計してハプティック信号にし、ハプティック信号を正規化すること、入力信号を一つ以上の時間ウィンドウに分割し、各時間ウィンドウで複数の入力サブ信号の複数の周波数を分析し、各時間ウィンドウで複数のハプティックサブ信号からハプティックサブ信号をハプティック信号として選択すること、ただし選択されたハプティックサブ信号は、複数の周波数のうちの周波数を含むものとする、または、ハプティック信号を一つ以上の時間ウィンドウに分割し、各時間ウィンドウで複数の入力サブ信号の各入力サブ信号のパワースペクトル密度寄与率を計算し、各時間ウィンドウで複数のハプティックサブ信号の重み付け合成をハプティック信号として計算すること、ただし各ハプティックサブ信号の重みは、対応する入力サブ信号のパワースペクトル密度寄与率に基づくものとする、のうちの一つを含みうる。
ある実施形態では、ハプティック信号は、その最大絶対値を用いて1に正規化されうる。さらに、ある実施形態では、ハプティック信号から一つ以上のノイズ振動が除去されうる。これらの実施形態の一部では、ハプティック信号から一つ以上のサンプルハプティックサブ信号が選択されうる。一つ以上の選択されたサンプルハプティックサブ信号の各選択されたサンプルハプティックサブ信号につき平均絶対値が計算されうる。各平均絶対値が、閾値と比較されうる。サンプルハプティックサブ信号は、その対応する平均絶対値が閾値未満の場合には、ハプティック信号から除去されうる。その後、フローは740へ進む。
740では、ハプティック信号に基づいて一つ以上のハプティック効果が生成される。一部の実施形態では、ハプティック信号が、一つ以上のハプティック効果を生成するためにハプティック出力デバイスに送られうる。これらの実施形態の一部では、ハプティック出力デバイスは、アクチュエータでありうる。その後、フローは終了する。
したがって、一実施形態では、システムは、入力を一つ以上の周波数帯域にフィルタリングし、一つ以上の周波数帯域を、既定の分析パラメータに基づいて分析し、優先順位を付け、優先順位付けに基づいて周波数帯域の少なくとも一つを選択することができ、選択された周波数帯域(単数または複数)を用いて、一つ以上のハプティック効果を生成するために最終的に用いられるハプティック信号を生成することができる。入力の複数の周波数帯域を分析し、優先順位付けに基づいて一つ以上の周波数帯域を選択すれば、入力全体がハプティック信号に伝えられるまたとない機会となる。より具体的には、入力の全周波数スペクトルを含めることができ、一つ以上の特定の周波数帯域、例えばユーザから見てほとんどフォアグラウンド(foreground)である一つ以上の周波数帯域を選択することができる。これにより、入力の複数の周波数帯域を最初に分析せずに入力の周波数帯域を単に選択するよりも、入力に対してより「カスタマイズされた」ハプティック効果がもたらされうる。入力をフィルタリングし、入力の複数の周波数帯域に優先順位を付けることにより、システムはさらに、入力を「補う」ように生成されうるハプティック効果を「完全なものにする」ことができる。さらに、このような解決策は、将来のハプティック変換アルゴリズムによっても拡張されうる的確な解決策となりうる。
さらに、別の実施形態では、システムは、入力を一つ以上の周波数帯域にフィルタリングし、各周波数帯域をハプティックサブ信号に変換し、ハプティックサブ信号を混合して、一つ以上のハプティック効果を生成するために最終的に用いられるハプティック信号にすることができる。システムは、オーサリング効果等の人的介入を必要とせずに入力を「補う」強力なハプティック効果を作成しうる。このようなシステムは、タブレットまたはスマートフォン等の任意のモバイルデバイスに実装されることができ、デバイスの処理力のほかデバイスのハプティック再生コンポーネントを用いて、より豊かなビデオ視聴体験またはよりリッチな音楽視聴体験などのより豊かな体験を届けることができる。さらに、過去の解決策と異なり、このシステムは、入力の低周波数成分など、入力の特定のセグメントではなく、全ての入力にもとづいたハプティック信号の作成を試みうる。前述のように、これは、既存の周波数を与えられた入力の成分を再グループ化し、グループの周波数プロファイルに応じて、さらにハプティック再生デバイスに応じて、各グループを適切に処理することにより、達成することができる。このようなアプローチは、入力を「補う」より「完全な」ハプティック効果を生み出すことができる。
本明細書の全体にわたり記載された本発明の特徴、構造、または特性は、一つ以上の実施形態において任意の適切な様式で組み合わされうる。例えば、本明細書の全体にわたる「一実施形態」、「一部の実施形態」、「ある実施形態」、「ある実施形態(複数)」、または他の類似の語の使用は、実施形態に関連して記載された特定の特徴、構造、または特性が本発明の少なくとも一つの実施形態に含まれうるという事実をさす。したがって、本明細書の全体にわたって見られる「一実施形態」、「一部の実施形態」、「ある実施形態」、「ある実施形態(複数)」の語句または他の類似の語は、全てが必ずしも同じ実施形態のグループをさすわけではなく、記載された特徴、構造、または特性は、一つ以上の実施形態で任意の適切な様式で組み合わせられうる。
通常の技術を有する当業者は、上述の本発明が、異なる順序のステップを用いて、および/または開示されたものとは異なる構成の要素を用いて実施されうることを容易に理解するであろう。したがって、本発明はこれらの好ましい実施形態に基づいて記載されているが、一定の修正、変形、および代替的構造が明らかであり、本発明の趣旨および範囲内にもとどまることが当業者には明らかである。したがって、本発明の境界および限界を決定するためには、添付の請求の範囲が参照されなければならない。