本開示の主題は、法定要件を満たすために本明細書に具体的に記載される。しかしながら、記載自体は、この特許の範囲を限定することを意図したものではない。むしろ、本発明者らは、特許請求された主題が、他の現在または将来の技術と連携して、このドキュメントに記載されたものに類似した異なるステップまたはステップの組合せを含むように他の手法で具体化され得ると考える。さらに、「ステップ」および/または「ブロック」という用語は、適用される方法の異なる要素を暗示するために本明細書で使用され得るが、これらの用語は、個々のステップの順序が明示的に記載されていない限り、個々のステップの順序が明示的に記載されている場合を除いて、本明細書に開示される様々なステップ間の特定の順序を示唆すると解釈されるべきではない。本明細書で記載される各方法は、ハードウェア、ファームウェア、および/またはソフトウェアの任意の組合せを使用して実行され得るコンピューティング処理を備え得る。たとえば、様々な機能は、メモリに記憶された命令を実行するプロセッサによって実行され得る。これらの方法はまた、コンピュータ記憶媒体に記憶されたコンピュータ使用可能な命令として具体化され得る。これらの方法は、いくつか例を挙げると、スタンドアロンアプリケーション、サービスまたはホステッドサービス(スタンドアロンまたは別のホステッドサービスとの組合せ)、または別の製品へのプラグインによって提供され得る。
大まかに言えば、本明細書の態様は、接触ベースのオペレーティングシステムとのハンズフリーインタラクションを可能にするメカニズムに関する。認識されるように、接触ベースのオペレーティングシステム(Android、iOSなど)は、接触ベースのオペレーティングシステムを実行しているモバイルデバイスの接触画面を介して受信した入力に依存することがよくある。しかしながら、ユーザの能力やモバイルデバイスが使用される状況によっては、接触画面とのインタラクションが不可能または望ましくない場合がある。たとえば、ユーザが手を使って別のタスクを実行している場合、タスクを中止して接触ベースのオペレーティングシステムとインタラクトするのは不便で時間がかかることがよくある。したがって、この態様は、接触ベースのオペレーティングシステムとのハンズフリーインタラクションを容易にするデバイス、方法、およびシステムに関する。
本明細書の1つの態様は、接触ベースのオペレーティングシステムとのハンズフリーインタラクションのための方法を実施するヘッドマウントコンピューティングデバイス(ヘッドセットなど)に関する。非限定的な例では、ヘッドセットは、ディスプレイ(ヘッドアップディスプレイ、接眼ディスプレイなど)、センサ(とりわけ、カメラ、マイクロフォン、加速度計、ジャイロスコープ、磁力計など)、1つまたは複数のプロセッサ、およびメモリを含み得る。ヘッドセットは、接触ベースのオペレーティングシステムを実行しているモバイルデバイスと通信可能に結合され得る。ヘッドセットはまた、たとえば、ヘッドセットの接眼ディスプレイ上に、接触ベースのオペレーティングシステムのユーザインターフェースのインスタンスを表示するように構成され得る。さらに、ヘッドセットは、センサを介して受信されたハンズフリー入力を使用して、接触ベースのオペレーティングシステムのユーザインターフェースとのインタラクションを容易にするハンズフリーインタラクションモードを提供し得る。たとえば、1つの例示的な態様は、ヘッドセットによって検出された移動を使用して、接触ベースのオペレーティングシステムの動作を実行するためのナビゲートのための命令またはコマンドを判定する。
別の例示的な態様は、ヘッドセットによって検出された音声コマンドを使用して、接触ベースのオペレーティングシステムの動作を実行するための命令またはコマンドを判定する。したがって、ヘッドセットは、含まれるセンサ(とりわけ、マイクロフォンなど)を監視し、センサによって受信された入力を分析し、入力に関連付けられた接触ベースのオペレーティングシステムの命令またはコマンドを判定し、接触ベースのオペレーティングシステムのユーザインターフェース内をナビゲートするための命令またはコマンドを実行するように構成され得る。さらに、ヘッドセットは、ハンズフリーインタラクションモードを容易にするために、ヘッドセット構成要素またはソフトウェアモジュールを使用して、接触ベースのオペレーティングシステムのユーザインターフェースと、接触ベースのオペレーティングシステムに関連付けられたコードとを、リアルタイムで分析するように構成され得る。
別の例示的な態様は、音声コマンドと、ヘッドセットによって検出された移動との両方を使用して、接触ベースのオペレーティングシステムのユーザインターフェースをナビゲートし、接触ベースのオペレーティングシステムの動作を実行するための命令またはコマンドを判定する。さらに、ヘッドセットは、コンテキスト固有のデータ(ユーザ固有の設定、ハンズフリーインターフェース固有の設定、キーワードキューライブラリ、接触ベースのインターフェース固有の設定、位置固有の設定など)を備えるカスタマイズされたデータベースを含むか、またはそれらと通信し、ハンズフリーインタラクションモードの使いやすさを向上させ得る。ヘッドセットは、ハンズフリーインタラクションモードの使いやすさを向上させるために、ワイヤレス通信システム(Bluetooth、NFC、RFID、WIFIなど)を含み得る。一例として、ワイヤレス通信システムは、カスタマイズされたデータベースに記憶されたコンテキスト固有のデータに相関し得る位置情報をヘッドセットに提供することによって、ハンズフリーインタラクションモードの使いやすさを向上させ得る。ヘッドセットは、ハンズフリーインタラクションモードの使いやすさを向上させるために、ワイヤレス通信システムを装備したモバイルデバイスと通信可能に結合され得る。さらに、ヘッドセットは、コンテキスト固有のデータを備えるネットワークベースのカスタマイズされたデータベースを利用するように構成され得る。
さらに別の例示的な態様は、ユーザインターフェースツリーを使用して、ハンズフリー操作のためにユーザインターフェースディスプレイ上にオーバレイされるユーザインターフェースラベルを生成する。接触ベースのデバイス上で初期化されたアプリケーションが問い合わされ、初期化されたアプリケーションによって生成されたユーザインターフェースツリーが検出され得る。少なくとも1つのGUI要素基準が、ユーザインターフェースツリーから抽出され得る。ユーザインターフェースラベルは、各GUI要素基準について生成され得、たとえば、ハンズフリーオペレーティングシステムのディスプレイ上に表示され得る。ハンズフリーオペレーティングシステムのユーザは、接触ベースのアプリケーションを操作するために、ユーザインターフェースラベルに相関付けられた音声または移動コマンドを使用し得る。ここで図1に移って示すように、本開示のいくつかの実施形態が適用され得る例示的な動作環境100を示すブロック図が提供される。本明細書に記載されるこの構成および他の構成は、例としてのみ記載されていることが理解されるべきである。図示されているものに加えて、またはその代わりに、他の構成および要素(たとえば、マシン、インターフェース、機能、順序、および機能のグループ化など)を使用することができ、明確化のために、ある要素は完全に省略され得る。さらに、本明細書に記載される要素の多くは、個別または分散された構成要素として、または他の構成要素と連携して、および、任意の適切な組合せおよび位置で実施され得る機能エンティティである。1つまたは複数のエンティティによって実行されるものとして本明細書に記載されている様々な機能は、ハードウェア、ファームウェア、および/またはソフトウェアによって実行され得る。たとえば、いくつかの機能は、メモリに記憶された命令を実行するプロセッサによって実行され得る。
図示されていない他の構成要素のうち、例示的な動作環境100は、ユーザデバイス102a〜102nなどのいくつかのユーザデバイスと、データソース104aおよび104bから104nなどのいくつかのデータソースと、サーバ106と、センサ103a〜103nと、ネットワーク110とを含む。図1に図示される環境100は、1つの適切な動作環境の例であることが理解されるべきである。図1に図示される構成要素のおのおのは、たとえば、図10に関連して記載されたコンピューティングデバイス1000などの任意のタイプのコンピューティングデバイスを介して実施され得る。これらの構成要素は、ネットワーク110を介して互いに通信することができ、ネットワーク110は、1つまたは複数のローカルエリアネットワーク(LAN)および/または広域ネットワーク(WAN)を含み得るがこれらに限定されない。例示的な実施では、ネットワーク110は、様々な可能な公衆および/またはプライベートネットワークのいずれかのうち、インターネットおよび/またはセルラネットワークを備える。
本開示の範囲内で、任意の数のユーザデバイス、サーバ、およびデータソースが、動作環境100内で適用され得ることが理解されるべきである。おのおのは、分散環境で協調する単一のデバイスまたは複数のデバイスを備え得る。たとえば、サーバ106は、本明細書で記載される機能性を集合的に提供する分散環境に配置された複数のデバイスを介して提供され得る。さらに、図示されていない他の構成要素も、分散環境に含まれ得る。
ユーザデバイス102a〜102nは、ユーザが使用できる任意のタイプのコンピューティングデバイスを備え得る。たとえば、1つの実施形態では、ユーザデバイス102a〜102nは、図10に関連して記載されたタイプのコンピューティングデバイスであり得る。限定ではなく例として、ユーザデバイスは、パーソナルコンピュータ(PC)、ラップトップコンピュータ、モバイルまたはモバイルデバイス、スマートフォン、タブレットコンピュータ、スマートウォッチ、ウェアラブルコンピュータ、携帯情報端末(PDA)、MP3プレーヤ、全地球測位システム(GPS)またはデバイス、ビデオプレーヤ、ハンドヘルド通信デバイス、ゲームデバイスまたはシステム、エンタテイメントシステム、車両コンピュータシステム、組込システムコントローラ、カメラ、リモート制御、バーコードスキャナ、コンピュータ化された測定デバイス、器具、消費者向け電子デバイス、ワークステーション、ヘッドマウントコンピューティングデバイス、またはこれらの描写されたデバイスの任意の組合せ、または任意の他の適切なデバイスとして具体化され得る。
ユーザデバイス102a〜102nは、動作環境100のクライアント側にあるクライアントデバイスであることができる一方、サーバ106は、動作環境100のサーバ側にあることができる。サーバ106は、本開示で論じられる機能および機能性の任意の組合せを実施するように、ユーザデバイス102a〜102nにおけるクライアント側ソフトウェアと連携して動作するように設計されたサーバ側ソフトウェアを備えることができる。動作環境100のこの分割は、適切な環境の一例を説明するために提供され、サーバ106およびユーザデバイス102a〜102nの任意の組合せが、別個のエンティティとして残るという各実施の要件はない。
データソース104aおよび104bから104nは、動作環境100の様々な構成要素のいずれかにデータを利用可能にするように構成されたデータソースおよび/またはデータシステム、または図2に関連して記載されたハンズフリーインタラクションシステム200を備え得る。たとえば、1つの実施形態では、1つまたは複数のデータソース104aから104nは、図2のストレージ270を提供する(またはアクセスできるようにする)。データソース104aおよび104bから104nは、ユーザデバイス102a〜102nおよびサーバ106から離散し得るか、またはそれらに組み込まれ得る、および/または、ともに統合され得る。1つの実施形態では、データソース104aから104nのうちの1つまたは複数は、1つまたは複数のセンサを備え、これらは、ユーザデバイス102a〜102nのうちの1つまたは複数、またはサーバ106に統合または関連付けられ得る。動作環境100を利用して、動き処理と、サウンド処理と、キーワードカスタムライブラリ、ユーザデータ、およびコンテキスト固有のデータなどのデータストレージのための構成要素を含む、図2および図3に記載されるハンズフリーインタラクションシステム200の構成要素のうち、1つまたは複数を実施できる。
ここで図2に移って示すように、本開示のいくつかの実施形態が適用され得るハンズフリーインタラクションシステム200の例示的な実施形態を例示するブロック図が提供される。ハンズフリーインタラクションシステム200は、一般に、接触ベースのオペレーティングシステム202のアプリケーションおよび機能とのハンズフリーインタラクションを容易にするように動作する。図2に図示されるハンズフリーインタラクションシステム200は、本開示の実施形態が適用され得る1つのシステムの例であることが理解されるべきである。図示される各構成要素は、図1を参照して記載された動作環境100に類似した1つまたは複数のコンピューティングデバイスを含み得る。ハンズフリーインタラクションシステム200は、ここに示されている単一のモジュール/構成要素またはモジュール/構成要素の組合せに関連する依存性または要件を有すると解釈されるべきではない。たとえば、ハンズフリーインタラクションシステム200は、本明細書に記載された機能性を集合的に提供する分散環境に配置された複数のデバイスを備え得る。ハンズフリーインタラクションシステム200および/またはその様々な構成要素は、本開示の様々な実施形態によるいずれかに配置され得ることが理解されるべきである。
ヘッドマウントコンピューティングデバイス220(図9を参照してより詳細に記載される)は、一般に、接触ベースのオペレーティングシステム202の接触ベースのユーザインターフェース206とのハンズフリーインタラクションを容易にする。ヘッドマウントコンピューティングデバイス220は、とりわけ、動きおよびオーディオセンサ、ディスプレイ、および入力制御などの、様々なヘッドセットデバイス入力および出力構成要素を備え得る。さらに、ヘッドマウントコンピューティングデバイス220は、ストレージ270などのコンピュータ記憶媒体に記憶されたコンピュータ使用可能な命令を含み得る。したがって、ヘッドマウントコンピューティングデバイス220は、ハードウェア、ファームウェア、および/またはソフトウェアの任意の組合せを使用して実行され得るコンピューティング処理を実行するように構成され得る。たとえば、様々な機能は、メモリに記憶された命令を実行するプロセッサ(たとえば、ヘッドセットプロセッサ280)によって実行され得る。これらの方法は、いくつか例を挙げると、スタンドアロンアプリケーション、サービスまたはホステッドサービス(スタンドアロンまたは別のホステッドサービスとの組合せ)、または別の製品へのプラグインによって提供され得る。
ハンズフリーインタラクションシステム200によって実行される機能および処理は、アプリケーション、サービス、またはルーチン(ヘッドセットアプリケーション276など)に関連付けられ得る。特に、そのようなアプリケーション、サービス、またはルーチンは、ヘッドマウントコンピューティングデバイス220上で動作し得るか、または複数のデバイス全体に分散され得る。たとえば、本明細書に記載される機能および処理は、接触ベースのユーザデバイス(ユーザデバイス102aなど)、サーバ(サーバ106など)上で実行され得るか、またはクラウドにおいて実施され得る。さらに、いくつかの実施形態では、ハンズフリーインタラクションシステム200の構成要素は、ネットワーク110全体に分散され得る。さらに、これらの構成要素、これらの構成要素によって実行される機能、またはこれらの構成要素によって実行されるサービスは、コンピューティングシステムのオペレーティングシステムレイヤ、アプリケーションレイヤ、ハードウェアレイヤなどの適切な抽象化レイヤにおいて実施され得る。あるいは、またはさらに、これらの構成要素の機能性および/または本明細書に記載された本発明の実施形態は、少なくとも部分的に、1つまたは複数のハードウェア論理構成要素によって実行できる。たとえば、限定することなく、使用できるハードウェア論理構成要素の例示的なタイプは、フィールドプログラマブルゲートアレイ(FPGA)、特定用途向け集積回路(ASIC)、特定用途向け標準製品(ASSP)、システムオンチップシステム(SOC)、複合プログラマブル論理デバイス(CPLD)などを含む。さらに、機能性は、ハンズフリーインタラクションシステム200の例において図示される特定の構成要素に関して本明細書で記載されるが、いくつかの実施形態では、これらの構成要素の機能性は、他の構成要素間で共有または分散できると考慮される。
したがって、ヘッドマウントコンピューティングデバイス220は、ハンズフリーインタラクションモードを提供するための命令(ヘッドセットアプリケーション276によって記憶され得る)を実行する1つまたは複数のヘッドセットプロセッサ280を含み得る。ハンズフリーインタラクションモードは、ヘッドマウントコンピューティングデバイス220を介して、接触ベースのオペレーティングシステム202のプログラム、アプリケーション、および機能とのインタラクションを容易にし得る。1つの態様では、ヘッドセットアプリケーション276は、接触ベースのオペレーティングシステム202で動作する既存のバイナリアプリケーション(アプリケーション208など)とのハンズフリーインタラクションを容易にするための命令を含む。たとえば、ハンズフリーインタラクションシステム200は、Playstore、Appstore、および接触ベースのアプリケーションの他の任意のソースから利用可能なアプリケーションなどの任意の数のアプリケーションで、ネイティブまたは既存のバイナリを介した使用のために構成され得る。さらに、ヘッドセットエンジン210は、接触ベースのオペレーティングシステム202で実行しているアプリケーション208に問い合わせて、接触ベースのユーザインターフェース206に含まれる、とりわけ、そのような入力制御、フォーム要素、およびナビゲーションコマンドなどの画面構成要素/機能を判定し得る。たとえば、ヘッドセットエンジン210は、接触ベースのオペレーティングシステム202のユーザインターフェースレイヤを分析して、様々な画面構成要素/機能がいつ表示のために提供されるかを判定し得る。このようにして、接触ベースのアプリケーションが実行されると、様々に表示されるアプリケーションのUI構成要素を決定できる。その後、画面構成要素/機能が、抽出または識別され得、以下に記載されるように、処理のためにハンズフリーインタラクションシステム200の他の構成要素へ提供され得る。結果として、接触ベースのオペレーティングシステム202で動作可能な事実上すべてのアプリケーションは、実行時にハンズフリーインタラクションのために有効化され得る。さらに、ハンズフリーインタラクションシステム200は、標準的なハンズフリーインタラクションモード命令と互換性のないアプリケーション用のXMLファイルを含み得る。XMLファイルは、標準的なハンズフリーインタラクションモード命令を無視し、カスタマイズされた命令を提供し得る。さらに、XMLファイルは、実行時にアプリケーション208の既存のバイナリとマージされ得るので、既存のバイナリを変更する必要はない。
さらに、ヘッドマウントコンピューティングデバイス220は、たとえば、ヘッドマウントコンピューティングデバイス220を介して受信されたハンズフリー入力を感知または検出し得る様々なヘッドセットデバイスI/O222、構成要素を含み得る。受信された入力は、たとえば、ハンズフリー入力判定器240によって処理されて、1つまたは複数のハンズフリーコマンドを生成し得る。さらに、ハンズフリーインタラクションシステム200は、受信されたハンズフリー入力に関連付けられたコマンドを判定および/または生成するように構成され得る。生成されたハンズフリーコマンドは、実行のために接触ベースのオペレーティングシステム202に(たとえば、通信構成要素232によって)通信され得る。判定されたコマンドは、対応する接触ベースの入力を実行しているかのように、コマンドを実行するように接触ベースのオペレーティングシステム202にプログラム的に指示し得る。
ヘッドセットエンジン210は、一般に、接触ベースのオペレーティングシステム202、接触ベースのユーザインターフェース206、動き処理システム242、サウンド処理システム250、インターフェース分析器212、ストレージ270、ヘッドセットデバイス入力/出力(I/O)222、およびそれぞれの部分構成要素間の通信を容易にすることを担当する。いくつかの態様では、ヘッドセットエンジン210は、ヘッドセットデバイスI/O222からの信号の受信に応じて、ハンズフリーインタラクションモードを初期化する。たとえば、物理的入力制御238(ボタン、スイッチなど)は、ハンズフリーインタラクションモードを初期化する入力を受信し得る。いくつかの態様では、ヘッドセットエンジン210はまた、接触ベースのスクロール機能および接触ベースの制御ダイアログが判定されるように、接触ベースのユーザインターフェース206および/または接触ベースのオペレーティングシステム202の分析を初期化する。いくつかの態様では、ヘッドセットエンジン210は、(たとえば、センサ226a〜226nから)動きデータを受信し、この情報をハンズフリー入力判定器240へ送信する。いくつかの態様では、ヘッドセットエンジン210は、ヘッドセットデバイスI/O222からオーディオ入力224を受信し、この情報をハンズフリー入力判定器240に送信する。
接触ベースのユーザインターフェース206は、一般に、ハンズフリーインタラクションシステム200における接触ベースのオペレーティングシステム202とのユーザインタラクションを容易にする。いくつかの態様では、接触ベースのユーザインターフェース206は、接触ベースのスクロール機能(「スワイプ」機能、水平スクロールバー、垂直スクロールバーなど)を備え得る。いくつかの態様では、接触ベースのユーザインターフェース206は、接触ベースの制御ダイアログ(たとえば、テキストボックスまたはフィールド、チェックボックス、アプリケーションアイコン、ドキュメントツール、ラジオボタンなど)を備える。
態様では、ストレージ270は、キーワードカスタムライブラリ272を含み得る。キーワードカスタムライブラリ272は、接触ベースの制御ダイアログの関連付けへのキーワードキューを含むデータベースを備え得る。態様では、ストレージ270はまた、ユーザ固有の設定、好み、しきい値、許可、または個人または個人のグループに関連付けられた任意のデータを備え得る。態様では、ストレージ270は、アプリケーション276をヘッドセットし得る。ストレージ270は、ハンズフリーインタラクションシステム200の構成要素および部分構成要素のいずれかと通信可能に結合され得る。
オーディオ入力224は、一般に、マイクロフォン(たとえば、指向性および全方向性マイクロフォン)など、オーディオをキャプチャするための構成要素を称する。実施形態では、オーディオ入力224は、周囲ノイズがキャプチャされ、最終的にユーザオーディオ入力の処理および分析を支援するために使用され得るように構成されたヘッドマウントコンピューティングデバイス220の様々なポイントに配置された複数のマイクロフォンを備え得る。オーディオ入力224は、本開示の範囲から逸脱することなく、オーディオ入力を認識し、オーディオ入力をオーディオフィードに変換できる任意のセンサまたはセンサのシステムであり得ることが理解されよう。オーディオ出力230は、一般に、ユーザへのサウンド出力を容易にする。電気入力に応じてサウンドを生成できる任意の1つまたは複数のオーディオ出力構成要素(スピーカなど)は、本開示の範囲から逸脱することなく、実施形態において使用され得ることが理解されよう。実施形態では、オーディオ出力230は、少なくともヘッドセットデバイスI/O222と通信するように構成され得る。通信構成要素232は、一般に、任意の適切な通信プロトコルを介して、ヘッドマウントコンピューティングデバイス220と他のデバイスとの間の通信を容易にする。実施形態では、通信構成要素は、図10を参照して上記または下記で論じられるワイヤレス通信システムを備え得る。
ディスプレイ234は、一般に、ユーザへのデータの視覚的提示を容易にする。本開示の範囲から逸脱することなく、任意のディスプレイが様々な実施形態において使用され得ることが理解されよう。センサ226a〜226nは、とりわけ、カメラ、マイクロフォン、GPS、RFIDセンサ、赤外線センサ、光センサ、磁力計、ジャイロスコープ、容量性トランスデューサ、ポテンショメータ、抵抗性トランスデューサ、シンクロ、加速度計、マイクロジャイロスコープを含み得る。
ここで図3に移って示すように、例示的なヘッドマウントコンピューティングデバイス220が本開示のいくつかの実施形態を適用し得るハンズフリーインタラクションシステム200の追加の態様を例示するブロック図が提供される。ヘッドマウントコンピューティングデバイス220は、本開示のいくつかの実施形態が適用され得る、動きキャプチャ、動き分析、オーディオ入力、オーディオ分析、オーディオ出力、画像キャプチャ、位置検出、方位決定、コンテキスト決定、インターフェース表示、位置検出、およびネットワーク接続のためのシステムと、ヘッドマウントコンピューティングデバイス220と通信可能に結合することができ、ネットワーク110と通信可能に結合できるユーザデバイス102a〜102nと、図1に関連して記載されているネットワーク110と、サーバ106と、データソース104aとを備え得る。ハンズフリーインタラクションシステム200の構成要素は、たとえば、図10に関連して記載されたコンピューティングデバイス1000のように、コンパイルされたコンピュータ命令または機能のセット、プログラムモジュール、コンピュータソフトウェアサービス、または1つまたは複数のコンピュータシステムにおいて実行される処理の構成として具体化され得る。
1つの実施形態では、ハンズフリーインタラクションシステム200の構成要素によって実行される機能は、変位を、接触ベースの命令、コマンド、または接触ベースのオペレーティングシステム内の入力に変換することに関連付けられる。実施形態では、ハンズフリーインタラクションシステム200は、ヘッドマウントコンピューティングデバイスヘッドセット入力/出力(I/O)222、ヘッドセットエンジン210、およびハンズフリーインタラクションシステム200内の他のシステムまたはサブシステムを検出、処理、分配、監視、および/またはアクティブ化することを担当し得るハンズフリー入力判定器240を含む。たとえば、アクティベーションコマンドの受信に応じて、ヘッドセットエンジン210は、ヘッドマウントコンピューティングデバイス上のハンズフリーインタラクションモードを初期化し得、ハンズフリーインタラクションモードは、接触ベースのオペレーティングシステム(OS)のユーザインターフェースとのインタラクションを可能にする。ハンズフリーインタラクションモードの初期化の一部として、ヘッドセットエンジン210は、インターフェース分析器212、動き処理システム242、サウンド処理システム250、およびコンテキスト分析器214をアクティブ化し得る。
動き処理システム242は、一般に、ヘッドセットデバイスI/O222によって検出された動きベースの入力データの処理を容易にする。動き処理システム242は、ヘッドマウントコンピューティングデバイス220、ユーザデバイス102a〜102n、サーバ106、または、たとえばネットワーク110を介してハンズフリーインタラクションシステム200と通信可能に接続可能な任意の位置に存在し得る。実施形態では、動き処理システム242は、ヘッドセットエンジンのサブシステムであり得る。実施形態では、動き処理システム242は、通信構成要素232を介してヘッドマウントコンピューティングデバイス220と通信可能に結合された1つまたは複数のユーザデバイス102a〜102nのサブシステムであり得る。他の実施形態では、動き処理システム242は、通信構成要素232を介してヘッドマウントコンピューティングデバイス220と通信可能に結合された1つまたは複数のネットワーク化されたデバイスのサブシステムであり得る。
したがって、センサ226a〜226nからのデータは、分析のために動き処理システム242へ送信され得る。いくつかの実施形態では、動き処理システム242は、動き検出構成要素244、較正制御構成要素246、および動き変換構成要素248(以下でより詳細に記載される)を含む部分構成要素を含み得る。態様では、動き処理システム242は、通信構成要素232を介してハンズフリーインタラクションシステム200と通信可能に接続され得る。ヘッドセットの横方向、平行方向、および回転方向の移動は、センサ226a〜226nによって検出され、ニュートラル位置および方位を決定するために動き処理システム242によって処理され得る。たとえば、センサデータは、動き処理システム242によって処理されて、3軸に対するヘッドセットの位置および方位を、9つの自由度で検出し得る。実施形態では、動き処理システム242は、ハンズフリーインタラクションモードの開始時のヘッドセットの方位を検出することによって、ハンズフリーインタラクションモードの開始中に、ニュートラル位置を較正し得る。
態様では、しきい変位は、任意の軸において、ニュートラルから+/−10度のヘッドセットの回転など、ニュートラル位置からの所定の変位値であり得る。さらに、しきい変位は、ヘッドマウントコンピューティングデバイス220の角度変位、平行移動、回転、または他の任意の移動であり得る。認識されるように、この記載では一般に単数として称されるが、任意の数のしきい変位が決定され得る。しきい変位は、接触ベースのオペレーティングシステム202とインタラクトするための任意の数の接触ベースの入力に対応し得る。たとえば、スクロールアップ接触ベース入力は、ヘッドマウントコンピューティングデバイス220の上方への回転の対応するハンズフリー入力を有し得る。したがって、ハンズフリー回転入力は、ニュートラル位置から上方に、所定の度数の、対応するしきい値を有し得る。その結果、不注意によるハンズフリー入力が減少または排除され得る。
他の態様では、しきい変位は、たとえば、動き処理システム242および/またはヘッドセットエンジン210によって、自動的かつ反復的に調整され得る。限定ではなく例として、ハンズフリーインタラクションシステム200は、ハンズフリー入力(ユーザデータ274に記憶され得る)を監視して、以前のヘッドセット動きデータに基づいて、しきい変位を調整するコンピュータ学習命令または機械学習命令を含み得る。他の態様では、しきい変位は、ヘッドマウントコンピューティングデバイス220に関連付けられた任意の数の位置(たとえば、位置決定部216によって決定され得る)に関連付けられた使用データに基づいて自動的に調整され得る。他の態様では、変位しきい値は、ユーザによって決定され得るカスタマイズされた値であり得る。たとえば、ユーザは、ハンズフリーインタラクションシステム200内に記憶され、本明細書に記載されたデバイスのいずれかによって実行され得るハンズフリーインタラクションアプリケーションのユーザインターフェースを介してしきい変位設定を調整し得る。したがって、動き処理システム242は、以下でより詳細に記載されるように、検出された変位、またはヘッドセットの平行移動を、しきい変位と比較し得る。
動き検出構成要素244は、動き処理システム242を監視して、ヘッドマウントコンピューティングデバイス220の変位を検出し得る。たとえば、動き検出構成要素244は、較正制御構成要素246によって記憶された初期基準画像を、動き処理システム242によってキャプチャされた後続の画像と比較して、ヘッドマウントコンピューティングデバイス220の初期位置に対するヘッドマウントコンピューティングデバイス220の変位を検出し得る。初期基準画像を後続の画像と比較することによって、ヘッドマウントコンピューティングデバイス220の初期位置に対するヘッドマウントコンピューティングデバイス220の変位を検出するために、任意の数の画像分析アルゴリズムが使用され得ることが理解されよう。さらに、しきい値および/または検出された変位は、変位の持続時間を判定することを含み得る。たとえば、しきい変位は、ハンズフリー入力として認識されるために、変位を5秒間維持する必要がある場合がある。さらに、動き検出センサ(本明細書で論じられるように、加速度計、ジャイロスコープなどを含み得るセンサ226a〜226nなど)からの任意のタイプのデータを使用して、変位を判定または検出できることが認識されるべきである。
動き検出構成要素244が、しきい変位を超えるヘッドマウントコンピューティングデバイス220の変位を検出するとき、動き変換構成要素248は、角度変位を、1つまたは複数の接触ベースの入力に対応する命令に変換し得る。動き変換構成要素248は、変位のタイプに基づいて適切な命令を決定し得る。実施形態では、動き変換構成要素248は、修飾子を用いて命令を拡張し得る。たとえば、ページスクロール命令は、10ページのスクロールなど、ページ数の修飾子で拡張され得る。修飾子は、検出された変位の持続時間など、検出されたハンズフリー入力に関連付けられた機能に基づき得る。
サウンド処理システム250は、一般に、ヘッドセットデバイスI/O222によって検出されたオーディオベースの入力データの処理を容易にする。したがって、センサ226a〜226nからのデータは、分析のためにサウンド処理システム250へ送信され得る。いくつかの態様では、オーディオ入力224からのデータは、分析のためにサウンド処理システム250へ送信され得る。いくつかの実施形態では、サウンド処理システム250は、インターフェース分析器212、オーディオ処理構成要素254、およびオーディオ変換構成要素256を含むオーディオ検出構成要素を含む部分構成要素を含み得る。いくつかの態様では、サウンド処理システム250は、検出されたオーディオ入力を、接触ベースの制御ダイアログに関連付けられたキーワードキューと比較し得る。態様では、サウンド処理システム250は、通信構成要素232を介してハンズフリーインタラクションシステム200と通信可能に接続され得る。
したがって、サウンド処理システム250は、ハンズフリーインタラクションシステム200と通信可能に接続できるユーザデバイス、ネットワーク、サーバ、または任意の位置に配置され得る。
実施形態では、接触ベースのオペレーティングシステムは、1つのアプリケーションのみへのオーディオ入力を可能にするように構成されるので、サウンド処理システムはさらに、オーディオ共有構成要素(図示せず)を備え得る。オーディオ共有構成要素は、複数の処理、アプリケーション、構成要素などが、オーディオ入力を同時に受信することを可能にし得る。言い換えれば、オーディオ共有構成要素は、オーディオフィードが、さらなる処理または分析なしに接触ベースのオペレーティングシステムへ続け、オーディオ検出構成要素252へ続けることを可能にし得る。別の言い方をすれば、オーディオ共有構成要素は、サウンド処理システムの機能性を損なうことなく、接触ベースのアプリケーションへのオーディオフィードの提供を容易にする。
たとえば、ユーザは、接触ベースのオペレーティングシステムとハンズフリーナビゲーションシステム内で、電話会議アプリケーションを同時に実行でき、オーディオ共有構成要素により、オーディオフィードを、電話会議アプリケーションへ続けることができる。さらに、オーディオ共有構成要素は、オーディオ検出構成要素252に、オーディオフィードを提供し得る。したがって、実施形態では、オーディオ共有構成要素は、オーディオフィードを複製し得る。
オーディオ検出構成要素252は、一般に、オーディオ入力224および/またはセンサ226a〜226nを監視して、オーディオフィードを検出することを容易にする。たとえば、オーディオ検出構成要素252は、信号がマイクロフォンによって受信されていることを検出するために、ヘッドマウントコンピューティングデバイス220のマイクロフォンを聞くことができる。この例を続けると、オーディオ検出構成要素252は、マイクロフォンによって受信された信号が、所定の音量を超えていることを判定することを担当し得る。これは、ハンズフリー可聴入力を判定するために信号をさらに処理する必要があることを示し得る。実施形態では、オーディオ検出構成要素252は、検出されたオーディオフィードを、オーディオ処理構成要素254へ提供する。
オーディオ処理構成要素254は、一般に、オーディオフィードの処理を容易にして、ユーザの音声を識別、分離、および分析する。実施形態では、オーディオ処理構成要素254は、音声認識アルゴリズム、ノイズ低減アルゴリズム、スピーチテキストアルゴリズム、機械学習アルゴリズムなどを使用して、オーディオフィードを処理し得る。いくつかの態様では、オーディオ処理構成要素254は、オーディオ検出構成要素252から複数のオーディオフィードを受信し得る。これらの実施形態では、オーディオ処理構成要素254は、複数のオーディオフィードを処理して、少なくとも部分的に、ユーザの音声をバックグラウンドノイズから分離し得る。ノイズ低減アルゴリズム、音声分離アルゴリズム、または任意の適切なアルゴリズムまたは技法を使用して、少なくとも部分的に、ユーザの音声が、バックグラウンドから分離され得ることが理解されよう。実施形態では、オーディオ処理構成要素254は、オーディオ検出構成要素252からオーディオフィードを受信し、インターフェース分析器212による接触ベースの制御ダイアログに関連付けられた第1の可聴入力を識別し得る。
実施形態では、オーディオ処理構成要素254は、オーディオフィードを分析し、オーディオフィードをキーワードキューと比較して、処理されたオーディオフィードがキーワードキューと一致するか否かを判定し得る。
オーディオ変換構成要素256は、一般に、一致したオーディオフィードキーワードキューの、関連付けられた制御ダイアログへの変換を容易にする。したがって、オーディオ変換構成要素256は、オーディオ処理構成要素254から、一致するキーワードキューを受信し、キーワードキューに関連付けられた制御ダイアログを判定し得る。
インターフェース分析器212は、一般に、接触ベースのユーザインターフェース206内の接触ベースのユーザインタラクション機能、接触ベースのオペレーティングシステム202、接触ベースのユーザインターフェース206内のアプリケーション208、および接触ベースのユーザインターフェース206内のドキュメント204の検出を容易にする。本明細書で使用される場合、接触ベースのユーザインタラクション機能は、接触ベースのスクロール機能(「スワイプ」機能、水平スクロールバー、垂直スクロールバーなど)、接触ベースの制御ダイアログ(たとえば、テキストボックスまたはフィールド、チェックボックス、アプリケーションアイコン、ドキュメントツール、ラジオボタンなど)、および、より一般的には、接触ベースのユーザインターフェース、オペレーティングシステム、アプリケーション、および/またはドキュメント内でのユーザインタラクションを容易にする任意の要素、機能、アイコン、コマンド、コード、拡張機能、マクロなどを含む。態様では、インターフェース分析器212は、接触ベースのユーザインターフェース206、接触ベースのオペレーティングシステム202、および/または接触ベースのユーザインターフェース206内のアプリケーション208のソースコードをスキャンすることによって、接触ベースのユーザインタラクション機能を検出および/または識別し得る。態様では、インターフェース分析器212は、コンテキスト固有の機能を容易にするために、キーワードカスタムライブラリ272および/またはユーザデータ274を参照し得る。
いくつかの実施形態では、コンテキスト分析器214は、一般に、ハンズフリーインタラクションシステム200のコンテキストデータおよびコンテキスト固有の機能の分析を容易にする。コンテキストデータは、ヘッドセットエンジン210またはその部分構成要素の動作に関連する任意のデータであり得る。非限定的な例として、コンテキストデータは、ユーザデータ(ユーザデータ274など)、アプリケーションデータ(アプリケーション208に関連付けられるなど)、または通信構成要素232または位置決定部216から受信したデータであり得る。実施形態では、コンテキスト分析器214は、インターフェース分析器212をさらに監視し、カスタマイズされたデータが、接触ベースのユーザインターフェースの現在のインスタンスに関連するか否かを判定する。実施形態では、コンテキスト分析器は、分析に応じて、ハンズフリー入力判定器240、ヘッドセットエンジン210、またはそれらのそれぞれの部分構成要素の機能を変更し得る。たとえば、インターフェース分析器212が、接触ベースのユーザインターフェースの特定のインスタンスを分析することに応じて、コンテキスト分析器214は、接触ベースのユーザインターフェースの特定のインスタンスに関連付けられたカスタムキーワードキューライブラリ(カスタムキーワードライブラリ272など)を発見し得る。コンテキスト分析器214は、その後、カスタムキーワードキューライブラリを、サウンド処理システム250へ通信し得る。
実施形態では、コンテキスト分析器214は、位置情報を使用して、ハンズフリー入力判定器240の機能を変更し得る。たとえば、コンテキスト分析器214は、特定のカスタムキーワードライブラリに関連付けられた位置データ(位置決定部216によって検出されたBluetoothビーコン情報など)を分析し得る。実施形態では、コンテキスト分析器214は、特定の動きベースのしきい値が、コンテキストデータの結果として示されることを判定し得る。
実施形態では、インターフェース分析器212は、互換性のある接触ベースのユーザインターフェース、たとえば、Google AndroidまたはApple iOSを検出し、接触ベースのOSを分析して、ユーザインターフェースの第1のインスタンスに関連付けられた接触ベースのコマンドを検出し得る。インターフェース分析器は、たとえば、ユーザインターフェースの第1のインスタンスが、接触ベースのスクロール機能を備えていることを検出し得る。たとえば、接触ベースのスクロール機能は、接触ベースのオペレーティングシステムの異なるメニュー画面にナビゲートするために、接触ベースのオペレーティングシステムに関連付けられた接触ベースのスクロール機能と、アプリケーションの別のメニュー画面にナビゲートするために、アプリケーションに関連付けられた接触ベースのスクロール機能と、および/または、ドキュメントの別の部分にナビゲートするために、ドキュメントに関連付けられた接触ベースのスクロール機能とを備え得る。
実施形態では、インターフェース分析器212が、接触ベースのスクロール機能を検出すると、ヘッドセットエンジン210は、動きキャプチャシステムを較正し、変位を監視し、変位を、関連付けられた接触ベースのスクロール機能に変換する動き処理システム242をアクティブ化し得る。アクティブ化されると、動き処理システム242は、較正制御構成要素246をアクティブ化し得る。較正制御構成要素246は、ヘッドマウントコンピューティングデバイスの初期位置を検出し、初期位置は、1つまたは複数の軸に対するヘッドマウントコンピューティングデバイス220の方位を含む。実施形態では、較正制御構成要素246は、画像をキャプチャするためにカメラ(たとえば、センサ226a〜226nのうちの1つ)を適用し得る動き検出構成要素244をアクティブ化することによって、ヘッドマウントコンピューティングデバイスの初期位置を決定し得る。較正制御構成要素246は、ヘッドマウントコンピューティングデバイス220の相対的な移動を判定するために、後続の画像と比較するための初期基準画像として、少なくとも一時的に画像を記憶し得る。
さらに、実施形態では、インターフェース分析器212は、検出された接触ベースのスクロール機能を、対応する方位のヘッドマウントコンピューティングデバイス220の変位と関連付ける。たとえば、インターフェース分析器212が、ユーザインターフェースの第1のインスタンス内での左から右への「スワイプ」に対応する接触ベースのOSに関連付けられた接触ベースのスクロール機能を検出した場合、インターフェース分析器212は、ヘッドマウントコンピューティングデバイス220の初期位置に対する右への変位を、左から右への接触ベースのスワイプと関連付け得る。別の例として、インターフェース分析器212が、ユーザインターフェースの第1のインスタンス内で垂直スクロールバーを検出した場合。インターフェース分析器212は、ヘッドマウントコンピューティングデバイス220の初期位置に対する角度変位「上」を、垂直スクロールバーを所定数のスクロール単位、上に移動させることと関連付け得る。インターフェース分析器212が、ユーザインターフェースの第1のインスタンス内で水平スクロールバーを検出した場合、インターフェース分析器212は、ヘッドマウントコンピューティングデバイス220の初期位置に対する右への角度変位を、水平スクロールバーを所定数のスクロール単位、右に移動させることと関連付け得る。
さらに、ヘッドセットエンジン210は、ディスプレイ構成要素234をアクティブ化して、接触ベースのオペレーティングシステムのユーザインターフェースの第1のインスタンスを、ヘッドマウントコンピューティングデバイス220のディスプレイ(図2を参照してより詳細に記載され、参照番号234によって示される)上に表示できる。実施形態では、ヘッドセットエンジン210は、その後、ヘッドマウントコンピューティングデバイスの第1の角度変位を検出する動き検出構成要素244をアクティブ化し得、第1の角度変位は、第1のしきい角度変位を上回り、第1のしきい角度変位は、初期位置に対する角度変位である。
さらに、インターフェース分析器212が、左から右へのスワイプに対応し、ヘッドマウントコンピューティングデバイスの初期位置に対する右への角度変位を、左から右への接触ベースのスワイプに関連付けられた接触ベースのスクロール機能を検出し、動き検出構成要素244が、ヘッドマウントコンピューティングデバイスの、初期位置から、しきい値を超える右への角度変位を検出した場合、動き変換構成要素248は、左から右にスワイプする命令が必要であると判定し得る。動き変換構成要素248は、その後、角度変位を、左から右へのスワイプに対応する命令に変換し、この命令を、コマンド生成器213に渡し得る。コマンド生成器213は、動き変換構成要素248によって示される命令に対応する接触ベースの入力を生成し、接触ベースのユーザインターフェース内で命令を実行する。システムによって任意の変位が検出、分析、および変換され得、前述の例は例として意図されており、限定として意図されていないことが理解されよう。
実施形態では、インターフェース分析器212は、互換性のある接触ベースのオペレーティングシステムを検出し、接触ベースのユーザインターフェースを分析して、ユーザインターフェースの第1のインスタンスに関連付けられた少なくとも1つの接触ベースの制御ダイアログを検出し得る。たとえば、接触ベースの制御ダイアログは、オーディオ出力を有効にするため、またはオーディオ出力の音量を変えるために、接触ベースのオペレーティングシステムに関連付けられた接触ベースのコマンドと、および/または、たとえば、アプリケーションを開始するため、またはアプリケーション要素、テキストフィールド、または「送信」要素を選択するため、アプリケーションに関連付けられた接触ベースの制御ダイアログとを備え得る。
前述の例は、潜在的な接触ベースの制御ダイアログのごく一部に過ぎず、限定として意図されていないことが理解されよう。
実施形態では、インターフェース分析器212が、接触ベースの制御ダイアログを検出すると、ヘッドセットエンジン210は、オーディオ入力を監視および処理し、オーディオ入力を分析し、オーディオ入力を、関連付けられた接触ベースの制御ダイアログに変換するサウンド処理システム250をアクティブ化し得る。アクティブ化されると、サウンド処理システム250は、制御ダイアログオプションを検出および識別して、キーワードキューに関連付けるインターフェース分析器212をアクティブ化し得る。実施形態では、インターフェース分析器212は、実行時にユーザインターフェースの第1のインスタンスに関連付けられたソースコードをスキャンし、機能を抽出することによって、接触ベースの制御ダイアログを検出する。たとえば、インターフェース分析器212が、ユーザインターフェースの第1のインスタンスに埋め込まれた「ボタン」を検出した場合、インターフェース分析器212は、ボタンテキストをキーワードキューに関連付ける。実施形態では、インターフェース分析器212は、ハンズフリーコンピューティングデバイスのメモリ(ストレージ270など)に記憶されたユーザインターフェースの第1のインスタンスに関連付けられた、カスタマイズされたキーワードキューライブラリを検出し得る。
実施形態では、インターフェース分析器212は、通信可能に結合されたユーザデバイス(ユーザデバイス102aなど)に記憶されたカスタマイズされたキーワードキューライブラリを検出し得る。実施形態では、インターフェース分析器212は、通信可能に結合されたデータソース(データソース104aなど)に記憶されたカスタマイズされたキーワードキューライブラリを検出し得る。
ヘッドセットエンジン210は、ディスプレイ構成要素234をアクティブ化して、接触ベースのオペレーティングシステムのユーザインターフェースの第1のインスタンスを、ヘッドマウントコンピュータデバイスのディスプレイに表示する。実施形態では、ヘッドセットエンジン210は、その後、オーディオ検出構成要素252をアクティブ化して、たとえば、センサ226a〜226nまたはオーディオ入力224を介して受信されたオーディオを検出し、オーディオ入力を、オーディオ処理構成要素254に渡す。本明細書で使用される場合、オーディオフィードへの言及は、オーディオ入力デバイスによってキャプチャされた音響信号、またはオーディオ入力要素によって生成された電気信号のいずれかを指すことができる。
コマンド生成器213が、接触ベースのユーザインターフェース内で命令を実行することに応じて、ヘッドセットエンジン210は、その後、ディスプレイ構成要素234に、接触ベースのオペレーティングシステムのユーザインターフェースの第2のインスタンスを、ヘッドマウントコンピューティングデバイスのディスプレイに表示するように指示する。
ここで図4aに移って示すように、図3を参照して記載されたヘッドセットによって少なくとも部分的に実施され得る例示的な動きベースのハンズフリーインタラクションモード400を例示するブロック図が提供される。実施形態では、ヘッドセットエンジンは、動き処理システム242に関連付けられたハンズフリーインタラクションモード402を初期化する。ハンズフリーインタラクションモード402は、ユーザインターフェースの第1のインスタンス内の接触ベースのスクロール機能を検出し、接触ベースのスクロール機能を第1の角度変位に関連付けるために、インターフェース分析器をアクティブ化することを含み得る。ブロック404において、ハンズフリーコンピューティングデバイスの初期位置が検出され、初期基準方位が決定される。実施形態では、これは、図3を参照して論じたように、較正制御構成要素246によって行われ得る。実施形態では、較正制御構成要素246は、基準方位をリセットするために、任意のポイントにおいて、ユーザによって再アクティブ化され得る。たとえば、ユーザは、初期基準方位が決定されたときに、頭が奇妙なまたは不快な位置にある可能性があり、その結果、ハンズフリーナビゲーション中にその位置を維持することは望ましくなく、ユーザは、基準方位が再決定され得るように、較正制御構成要素246を再アクティブ化できる。実施形態では、ヘッドマウントコンピューティングデバイス220は、較正制御構成要素246の再アクティブ化に関連付けられたボタン(物理的入力要素238など)を有し得る。さらに、および/または代わりに、実施形態では、所定のオーディオコマンドは、較正制御構成要素を再アクティブ化することに関連付けられる。
ブロック406において、ディスプレイは、ユーザインターフェースの第1のインスタンスを提示する。実施形態では、これは、図3を参照して論じられるように、ヘッドセットエンジン210によって行われる。ブロック408において、ヘッドマウントコンピュータデバイスの移動は、図3を参照して記載されるように、動き検出構成要素244によって検出される。ブロック410において、検出された移動は、図3を参照して記載されるように、動き検出構成要素244によって、接触ベースのスクロール機能に関連付けられた角度しきい値を超えたと判定される。ブロック412において、検出された変位は、動き変換構成要素248によって、接触ベースのスクロール機能に関連付けられた接触ベースのスクロール命令に変換される。
さらに、コマンドは、接触ベースのインターフェースの第1のインスタンス内で生成および実行される。ブロック414において、接触ベースのスクロールコマンドを実行することに応じて、ユーザインターフェースの第2のインスタンスが表示される。方法400は、必要な回数だけ繰り返し実行され得ることが理解されよう。
実施形態では、動きベースのハンズフリーインタラクションモードのいくつかの処理は、図3を参照して記載されたように、ヘッドマウントコンピューティングデバイス220と通信可能に接続されたユーザデバイス(ユーザデバイス102aなど)によって少なくとも部分的に完了され得る。
ここで図4bに移って示すように、図3に例示されるヘッドセットによって少なくとも部分的に実施され得る例示的なオーディオベースのハンズフリーインタラクションモード416を例示するブロック図が提供される。実施形態では、ヘッドセットエンジンは、サウンド処理システム250に関連付けられたハンズフリーインタラクションモード418を初期化する。ハンズフリーインタラクションモード418を初期化することは、ユーザインターフェースの第1のインスタンス内の少なくとも1つの接触ベースの制御ダイアログを検出するためにインターフェース分析器をアクティブ化することを含み得る。ブロック420において、少なくとも1つの接触ベースの制御ダイアログが識別され、キーワードキューに関連付けられる。実施形態では、インターフェース分析器は、接触ベースのユーザインターフェース内で実行しているアプリケーションのソースコードを分析し、アプリケーションのソースコード内の接触ベースの制御ダイアログに関連付けられた名前を識別し得る。インターフェース分析器は、その後、アプリケーションのソースコードからの名前と実質的に同様のキーワードキューを生成し、生成されたキーワードキューを、接触ベースの制御ダイアログに関連付け得る。たとえば、接触ベースのユーザインターフェースが、アプリケーションにおいて建設の青写真を表示しており、アプリケーションが、アプリケーション内でズーム機能を開く接触ベースの制御ダイアログを有する場合、インターフェース分析器は、リアルタイムで、アプリケーションのソースコードにアクセスし、ズーム機能をエンコードするコードの一部分を識別し、機能が「ズーム」と命名されていることを検出し、キーワードキュー「ズーム」を生成し、生成されたキーワードキュー「ズーム」を、ズーム機能を開く接触ベースの制御ダイアログに関連付け得る。実施形態では、インターフェース分析器は、図7Bを参照して詳細に論じられるように、接触ベースの制御ダイアログをキーワードキューに関連付ける場合、事前定義されたライブラリまたはカスタムキーワードキューライブラリを参照し得る。
ブロック422において、ディスプレイは、ユーザインターフェースの第1のインスタンスを提示する。実施形態では、ヘッドセットエンジン210は、図3を参照して論じられるように、ユーザインターフェースの提示を統合する。実施形態では、ブロック424において、グラフィカルオーバレイは、キーワードキューの少なくとも1つの視覚的インジケータを備える第1のユーザインターフェース上に同時に表示され、インターフェース分析器が第1のユーザインターフェースで識別され得る。さらなる実施形態では、視覚的インジケータは、図8Bを参照して例示され論じられるように、接触ベースの制御ダイアログの位置に実質的に近接して配置され得る。
ブロック426において、可聴入力がヘッドセットによって検出される。実施形態では、可聴入力は、オーディオ入力224、たとえば、ユーザによって話された「ズーム」という句によって最初に検出され得る。オーディオ入力224は、その後、話された「ズーム」という句をオーディオフィードに変換し、オーディオフィードをオーディオ検出構成要素252に渡し得る。オーディオ検出構成要素252は、その後、オーディオ処理構成要素254をアクティブ化し得る。
ブロック428において、オーディオフィードが処理および分析され、可聴入力が、キーワードキュー、したがって、接触ベースの制御ダイアログと一致するか否かが判定される。実施形態では、オーディオ処理構成要素254は、音声認識アルゴリズム、ノイズ低減アルゴリズム、スピーチテキストアルゴリズム、機械学習アルゴリズムなどを使用して、オーディオフィードを処理し得る。たとえば、オーディオフィードを処理して、ユーザが話す「ズーム」という句を、周囲ノイズ、偶発的ノイズ、またはバックグラウンドノイズから分離し得る。オーディオ処理構成要素254は、その後、処理されたオーディオフィードを分析し、処理されたオーディオフィードをキーワードキューと比較して、処理されたオーディオフィードがキーワードキューと一致するか否かを判定し得る。
ブロック430において、検出されたキーワードキューに関連付けられた接触ベースの制御ダイアログに対応する接触ベースのコマンドが生成され、コマンドは、接触ベースのユーザインターフェースの第1のインスタンス内で実行される。言い換えると、オーディオ処理構成要素が、オーディオフィードがキーワードキューに一致すると判定すると、オーディオ変換構成要素は、一致したキーワードキューを、関連付けられた制御ダイアログに変換する。オーディオ変換構成要素は、その後、制御ダイアログをコマンド生成器に渡し、コマンド生成器は、接触ベースの制御ダイアログと同等のコマンドを生成する。生成されたコマンドは、その後、接触ベースのユーザインターフェース内のヘッドセットエンジンによって実行される。たとえば、オーディオ処理構成要素が、「ズーム」という句をキーワードキュー「ズーム」に一致させると、オーディオ変換構成要素は、キーワードキュー「ズーム」を、ズーム制御ダイアログの選択と同等の命令に変換する。命令はその後、コマンド生成器に渡され、コマンド生成器は、ズームの接触ベースの制御ダイアログの、接触ベースのユーザ選択と同等のコマンドを生成する。このコマンドは、その後、接触ベースのユーザインターフェース内のヘッドセットエンジンによって実行され、ズーム機能がアクティブになる。方法416は、必要な回数だけ繰り返し実行され得ることが理解されよう。
ここで図4cに移って示すように、図3に例示されるヘッドセットによって少なくとも部分的に実施され得る、例示的な動きベースおよびオーディオベースのハンズフリーインタラクションモードを例示するブロック図が提供される。ハンズフリーインタラクションモードは、ブロック440において開始される。実施形態では、図3を参照して論じたように、インターフェース分析器は、接触ベースのOSを分析して、ユーザインターフェースの第1のインスタンスに関連付けられた少なくとも1つの接触ベースのコマンドを検出する。たとえば、インターフェース分析器は、たとえば、接触ベースのオペレーティングシステムの異なるメニュー画面にナビゲートするための接触ベースのスクロール機能を、ユーザインターフェースの第1のインスタンスが備えていることを検出し得、インターフェース分析器212はまた、たとえば、接触ベースのオペレーティングシステムにインストールされたアプリケーションを開くための接触ベースの制御ダイアログを、ユーザインターフェースの第1のインスタンスが備えていることを検出し得る。
ヘッドセットエンジン210は、その後、ハンズフリー移動プロトコル436を初期化し、ハンズフリーオーディオプロトコル438を初期化し得る。実施形態では、ハンズフリー移動プロトコル436は、動きベースのハンズフリーインタラクションモード400の処理のいくつか、一部、またはすべてを備え得る。たとえば、ヘッドセットエンジン210は、較正制御構成要素246をアクティブ化して、ヘッドマウントコンピューティングデバイスの初期位置を決定し得、初期位置は、1つまたは複数の軸に対するヘッドマウントコンピューティングデバイスの方位を含む。実施形態では、ハンズフリーオーディオプロトコル438は、オーディオベースのハンズフリーインタラクションモード416のいくつか、一部、すべて、または代替の処理を備え得る。たとえば、ヘッドセットエンジンは、制御ダイアログ検出モジュールをアクティブ化して、オーディオベースのハンズフリーナビゲーションを有効化し得る。ヘッドセットエンジンは、ハンズフリー移動プロトコル436およびハンズフリーオーディオプロトコル438を任意の順序でまたは同時に初期化し得ることが理解されよう。
ヘッドセットの初期基準方位が決定され、接触ベースの制御ダイアログが、キーワードキューに関連付けられると、ブロック440に図示されるように、接触ベースのユーザインターフェースの第1のインスタンスが表示される。ブロック442において、動き検出構成要素およびオーディオ検出構成要素は、図4Aおよび図4Bを参照して記載されるように、ヘッドセットI/Oシステムからの入力データを監視、検出、および分析する。
ブロック444において、移動が検出されると、動き検出構成要素は、ブロック410を参照して論じたように、移動が、関連するしきい値を超えたか否かを判定する。関連するしきい値を超えた場合、ブロック412および414を参照して論じたように、ブロック446においてディスプレイが調整される。関連するしきい値を超えない場合、システムはブロック442に戻る。
ブロック448において、オーディオ入力が検出されると、オーディオ処理構成要素は、ブロック428を参照して論じたように、オーディオ入力が、キーワードキューと一致するか否かを判定する。オーディオ入力がキーワードキューと一致する場合、ブロック430を参照して論じたように、関連付けられた制御ダイアログと同等の接触ベースのコマンドがブロック450において実行される。方法432は、必要な回数だけ繰り返し実行され得ることが理解されよう。
ここで図5に移って示すように、接触ベースのオペレーティングシステムとのハンズフリーインタラクションを容易にする例示的な多軸動きベースの方法500を図示するブロック図が提供される。言い換えれば、方法500は、互換性のあるヘッドセットとともに利用される場合、接触ベースのオペレーティングシステムとの単純および複雑な動きベースのハンズフリーインタラクションを容易にする。実例として、互換性のあるヘッドセットを装着しているユーザは、ブロック510において、ハンズフリーナビゲーションインターフェースを初期化する。ヘッドセットの初期基準方位は、以前に論じたように、ニュートラル位置で前方を向くのと同等であると判定される。
ブロック512において、ヘッドセットは移動を検出する。たとえば、ユーザは頭をニュートラルから右に、そして同時に上に向ける。ブロック514において、システムは、移動が第1の軸におけるものであるか否かを判定する。たとえば、第1の軸における移動は、初期基準位置からx軸(ユーザの右側)に向かうz軸を中心とした回転であり得る。言い換えれば、システムは、ユーザが頭を前向きから右向きに向けた(回転させた)ことを検出し得る。ブロック516において、システムは、移動が第2の軸でも生じたか否かを判定する。たとえば、第2の軸における移動は、初期基準位置からz軸に向かう(装着者の観点から上向きの)x軸を中心とした回転であり得る。言い換えれば、システムは、y軸に実質的に平行な位置からz軸に向かって(回転された)ユーザの頭も検出し得る。
ブロック518において、システムは、第1の軸における移動が、第1の軸のしきい値を超えたか否かを判定する。第1の軸のしきい値は、たとえば、初期基準位置から+/−10度であるように事前に決定され得る。システムが、第1の軸において+/−10度を超える変位を検出した場合、システムは、しきい値を超えたと判定する。システムが、第1の軸において+/−10度未満の変位を検出した場合、システムは、しきい値を超えていないと判定する。たとえば、ユーザが頭を右に20度回転させた場合、システムは第1の軸のしきい値を超えたと判定する。
ブロック520において、システムは、第2の軸における移動が、第2の軸のしきい値を超えたか否かを判定する。第2の軸のしきい値は、たとえば、初期基準位置から+/−10度であるように事前に決定され得る。システムが、第2の軸において+/−10度を超える変位を検出した場合、システムは、しきい値を超えたと判定する。システムが、第2の軸において+/−10度未満の変位を検出した場合、システムは、しきい値を超えていないと判定する。たとえば、ユーザが頭を20度上に向けた場合、システムは、第2の軸のしきい値を超えたと判定する。
ブロック522において、システムは、多軸入力に関連付けられた接触ベースのスクロール機能を実行し、接触ベースのユーザインターフェースの第2のインスタンスを表示する。実施形態では、多軸入力は、2つの独立した接触ベースのスクロール機能を表し得る。
前の例を続けると、多軸入力、右および上、は、水平スクロールバーを、所定数のスクロール単位右に移動し、垂直スクロールバーを、所定数のスクロール単位上に移動することに対応し得る。実施形態では、多軸入力は、単一の接触ベースのスクロール機能を表し得る。たとえば、多軸入力、右および上、は、表示されたドキュメントの全ページと同等の数のスクロール単位で、垂直スクロールバーを移動することに対応し得る。
ブロック516に戻って示すように、移動が、第1の軸でのみ検出される場合、システムは、ブロック524において、移動が第1の軸のしきい値を超えたか否かを判定する。移動が第1の軸のしきい値を超えなかった場合、システムはブロック512に戻る。移動が第1の軸のしきい値を超えた場合、システムは、第1の軸の入力に関連付けられた接触ベースのスクロール機能を実行し、ブロック526において、接触ベースのユーザインターフェースの第2のインスタンスを表示する。
ブロック518に戻って示すように、検出された移動が、第1の軸のしきい値を超えない場合、システムは、ブロック528に進む。ブロック528において、システムは、移動が、第2の軸のしきい値を超えたか否かを判定する。移動が、第2の軸のしきい値を超えなかった場合、システムは、ブロック512に戻る。移動が、第2の軸のしきい値を超えた場合、システムは、第2の軸の入力に関連付けられた接触ベースのスクロール機能を実行し、ブロック530において、接触ベースのユーザインターフェースの第2のインスタンスを表示する。
例示的な方法500を参照して提供される例は、本開示の範囲内で可能な多軸入力および関連付けられた接触ベースのスクロールコマンドの一部分のみを表すことが理解されよう。そのため、例は単なる例示であり、限定として解釈されるように意図されていない。
ここで図6Aに移って示すように、可能な使用事例を例示する例示的な図が、開示された本発明の実施形態と整合して提供される。図6Aは、図の明確さを保証するために、実施形態のシステムおよび構成要素の一部分のみを含むことが理解されよう。ハンズフリーナビゲーションインターフェースを初期化した後、互換性のあるヘッドセットを装着しているユーザは、ユーザが建築している建物に関連付けられた青写真602の第1の部分を、ディスプレイを介して提示される。青写真602の第1の部分に関連付けられた建物600の領域を検査した後、ユーザは頭を左に向け得る。
604において、システムは、この場合はx軸である第1の軸における移動を検出し、第1の軸における移動が、第1の軸のしきい値を超えたと判定する。システムは、その後、その移動を、左へのスクロールと同等の接触ベースのスクロール機能に関連付けられたコマンドに変換する。システムは、その後、接触ベースのユーザインターフェース内でコマンドを実行する。システムは、その後、接触ベースのユーザインターフェースの第2のインスタンスを表示する。ここで、コマンドは、表示された青写真内で所定の距離だけ左にスクロールし、ディスプレイは、青写真606の第2の部分を表示する。
ここで図6Bに移って示すように、開示された本発明の実施形態と整合する、別の可能な使用事例を例示する例示的な図が提供される。図6Bは、図の明確さを保証するために、実施形態のシステムおよび構成要素の一部分のみを含むことが理解されよう。ハンズフリーナビゲーションインターフェースを初期化し、スクロールバー位置616aにおいて垂直スクロールバーを、スクロールバー位置614aにおいて水平スクロールバーを検出した後、互換性のあるヘッドセットを装着しているユーザは、ユーザが建築している建物に関連付けられた経費報告書612の第1のページを、ディスプレイを介して提示され得る。経費報告書612の第1のページをレビューした後、ユーザは頭を下に回転させ得る。618において、ヘッドセットは、x軸を中心とした角度変位を検出し、第1の軸における動きが、第1の軸のしきい値を超えていると判定し得る。システムは、その後、その移動を、垂直スクロールバーをスクロールバー位置616aから所定の距離だけ下に、スクロールバー位置616bに移動させることに関連付けられたコマンドに変換する。システムは、その後、接触ベースのユーザインターフェース内でコマンドを実行する。システムは、その後、接触ベースのユーザインターフェースの第2のインスタンスを表示する。ここで、ディスプレイは、経費報告書620の第2ページを表示する。
ここで図7Aに移って示すように、接触ベースのオペレーティングシステムの接触ベースのユーザインターフェース内で、音声入力の、実行されたコマンドへの正確な変換を一般に容易にする方法700を例示するフロー図が提供される。最初に、ブロック701に図示されるように、この方法は、ヘッドセットセンサから入力データを受信することを含む。さらに、ブロック702において、この方法は、受信された入力データがオーディオフィードであるか否かを判定することを含み得る。たとえば、接触ベースの制御ダイアログに関連付けられたオーディオ入力が検出され得る。いくつかの態様では、ブロック704において、この方法は、オーディオ入力を分析することを備える。実施形態では、オーディオフィードは、オーディオ入力を識別するためにコンピュータベースの音声認識技法を使用して処理される。ブロック706において、この方法は、分析されたオーディオ入力が、キーワードキューと一致するか否かを判定し得る。実施形態では、分析されたオーディオ入力は、制御ダイアログ検出器によって接触ベースの制御ダイアログに関連付けられた、生成されたキーワードキューと比較される。オーディオ入力がキーワードキューと一致するか否かを判定するために、任意の1つまたは複数の音声テキストマッチングアルゴリズムが使用され得ることを理解されたい。
実施形態では、接触ベースの制御ダイアログは、接触ベースのオペレーティングシステムで実行されるモバイルアプリケーションに関連付けられ得る。実施形態では、ブロック708において、この方法は、オーディオ入力に一致するキーワードキューが、ハンズフリーインタラクションモードを保留する命令に対応するか否かを判定することを備える。たとえば、この方法は、キーワードキューが、オーディオ入力構成要素をパッシブモードに設定するための命令に対応するか否かを判定し得る。このコンテキストでは、パッシブモードは、ハンズフリーインタラクションモード内のヘッドセットセンサおよび/またはオーディオ入力システムの分析を(少なくとも一時的に)一時停止することを指す。しかしながら、実施形態では、ヘッドセットセンサおよび/またはオーディオ入力システムは、他の処理で使用するためにアクティブのままである。言い換えれば、ヘッドセットセンサおよび/またはオーディオ入力システムは、接触ベースのオペレーティングシステム内で実行しているアプリケーションにデータを送信し続け得る。たとえば、ハンズフリーインタラクションモードを使用して、ビデオチャットアプリケーションからのビデオチャット要求に答えた後、ユーザは、パッシブモードに関連付けられたキーワードキューを話すことによって、ハンズフリーインタラクションモードをパッシブモードにし得るが、ビデオチャットアプリケーション内でヘッドセットのマイクロフォンおよびカメラを使用し続ける。
この方法の実施形態では、ブロック710において、キーワードキューが、オーディオ入力をパッシブモードに設定する命令に関連付けられていると判定することに応じて、オーディオ入力がパッシブモードに設定される。いくつかの実施形態では、ブロック712において、パッシブモードを非アクティブ化するコマンドが受信され、方法はブロック702に戻る。実施形態では、パッシブモードを非アクティブ化するコマンドは、ヘッドセット上に配置された物理的入力要素(ボタンなど)に関連付けられ得る。ブロック708に戻って示すように、実施形態では、キーワードキューが、パッシブモード命令以外のものである場合、接触ベースの制御ダイアログコマンドが生成され、接触ベースのユーザインターフェース内で実行される。
ここで図7Bに移って示すように、オーディオ入力をキーワードキューと比較するための例示的な方法716を例示する図7Aに示されるフロー図の一部が提供される。例示的な方法716は、一般に、オーディオ入力を、生成されたキーワードキュー、カスタムキーワードキュー、および補助キーワードキューと比較することを容易にする。図7Aを参照して論じたように、ブロック704において、方法は、オーディオ入力を分析することを備える。ブロック718において、分析されたオーディオ入力は、インターフェース分析器によって生成されたキーワードキューと比較され得る。以前に論じたように、キーワードキューは、ユーザインターフェースの第1のインスタンスに関連付けられたソースコードを分析することにより、インターフェース分析器によって識別および生成され得る。
いくつかの実施形態では、ブロック720において、分析されたオーディオ入力は、カスタムキーワードキューライブラリ722と比較され得る。そのため、ユーザは、カスタマイズされたキーワードキューを作成し、カスタマイズされたキーワードキューを、接触ベースの制御ダイアログに関連付け得る。実施形態では、このカスタムキーワードライブラリは、少なくとも部分的に、インターフェース分析器によって生成されたキーワードキューに取って代わり得る。実施形態では、キーワードキューは、ユーザインターフェースの特定の第1のインスタンスに関連付けられた、カスタマイズされた、または事前に決定された、キーワードキュー制御ダイアログの組合せであり得る。
実施形態では、ブロック724において、分析されたオーディオ入力は、補助キーワードキューライブラリ728と比較され得る。実施形態では、補助キーワードキューライブラリは、接触ベースの制御ダイアログに関連付けられた複数のキーワードキューを備えるテーブルを備え得る。
たとえば、インターフェース分析器が、発音できない接触ベースの制御ダイアログを識別した場合、インターフェース分析器は、発音できない制御ダイアログに関連付けられた補助キーワードキューライブラリから、少なくとも1つの補助キーワードキューを自動的に置き換え得る。さらに、および/または代わりに、接触ベースのユーザインターフェースの第1のインスタンスが、実質的に同様の生成されたキーワードキューをもたらす複数の接触ベースの制御ダイアログを含む場合、補助キーワードキューライブラリは、同じ方式で代替のキーワードキューを提供し得る。
ここで図8Aに移って示すように、検出された制御ダイアログの例示的なインスタンスを図示する、例示的な接触ベースのユーザインターフェースが提供される。言い換えると、1〜28は、接触ベースの制御ダイアログとして識別され得るインターフェース機能を示す。実施形態では、インターフェース分析器212は、ユーザインターフェースに関連付けられたソースコードを分析することによって、インターフェース機能1〜28を検出し得る。図示される例では、インターフェース分析器212は、接触ベースのユーザインターフェースによって現在提示されている接触ベースのオペレーティングシステム内で実行しているアプリケーションに関連付けられたソースコードを分析し得る。しかしながら、インターフェース分析器212はまた、接触ベースのオペレーティングシステム自体に関連付けられたソースコード、または存在する任意の他のコードを分析し得る。
実施形態では、インターフェース機能(インターフェース機能1〜28など)がインターフェース分析器212によって接触ベースの制御ダイアログとして識別されると、インターフェース分析器212は、制御ダイアログを分析し、キーワードキューを生成し、キーワードキューを制御ダイアログに関連付け得る。実施形態では、インターフェース分析器212は、関連するソースコードを再分析し得る。実施形態では、インターフェース分析器212は、関連するソースコードの少なくとも部分的な分析を、インターフェース分析器212に提供し得る。
ここで図8bに移って示すように、キーワードキューオーバレイを備えた例示的な接触ベースのユーザインターフェースが示される。言い換えれば、30〜38は、本開示の実施形態を用いたオーディオベースのハンズフリーナビゲーションの使用を支援するためにユーザに提示され得るディスプレイオーバレイを示す。実施形態では、オーバレイは、インターフェース分析器212による接触ベースのユーザインターフェースの分析に基づいて、ヘッドセットエンジン210によって自動的に表示され得る。実施形態では、オーバレイは、ヘッドセットエンジン210の複数の部分構成要素によって自動的に生成され得る。たとえば、インターフェース分析器212は、インターフェース機能(図8Aのインターフェース機能1〜28など)を検出し、インターフェース機能を制御ダイアログとして識別し、オーディオ検出構成要素252をアクティブ化し得、オーディオ検出構成要素252は、制御ダイアログを分析し、キーワードキューを生成し、キーワードキューを制御ダイアログに関連付け得、ヘッドセットエンジン210は、この関連付けを検出し、キーワードキューを含むオーバレイを生成し、接触ベースのユーザインターフェース(オーバレイ30〜38など)のディスプレイ上にオーバレイを重ね合わせ得る。上記は、本開示と整合するオーバレイを作成するための例示的な方法として単に使用されており、限定として意味されないことが理解されよう。
しかしながら、オーバレイの自動作成により、接触ベースのユーザインターフェースの所与のインスタンスでオーバレイに、必要であり、有用であり、または所望されるよりも多くの制御ダイアログが提示される場合がある。言い換えると、キーワードキューオーバレイの純粋な自動生成は、接触ベースのユーザインターフェースのハンズフリーナビゲーションを、不注意に妨げる場合がある。したがって、実施形態では、オーバレイは、カスタマイズされた好みに基づいて、ヘッドセットエンジン210によって自動的に表示され得る。そのような実施形態では、ヘッドセットエンジン210は、カスタムライブラリ内の接触ベースのユーザインターフェースのインスタンスに関連付けられた所定のオーバレイテンプレートを識別し得る。
実施形態では、制御ダイアログの機能は、ヘッドセットエンジン210、および/またはその部分構成要素によって判定され得、オーバレイは、ユーザに関連すると判定されたそれらの関連付けられたキーワードキューに対してのみ生成され得る。実施形態では、この判定は、コンテキストデータに基づいてコンテキスト分析器214によって行われ得る。実施形態では、この判定は、少なくとも部分的に、ユーザの好み(たとえば、ユーザデータ274に記憶されたユーザの好み)に基づいて行われ得る。
ここで図9に移って示すように、例示的なヘッドマウントコンピューティングデバイス900が、本開示のいくつかの実施形態と整合して図示される。ヘッドマウントコンピューティングデバイス900は、一般に、接触ベースのオペレーティングシステムの接触ベースのユーザインターフェースとのハンズフリーインタラクションを容易にする。例示的なヘッドマウントコンピューティングデバイス900が、様々なセンサとともに図示されているが、センサの位置および数は、本開示の範囲から逸脱することなく、実施形態において変わり得ることが理解されよう。実施形態では、ヘッドマウントコンピューティングデバイス900は、動きおよびオーディオを感知するための複数のセンサと、接触ベースのユーザインターフェースをユーザに表示するための構成要素とを備え得る。たとえば、模範的なディスプレイ902は、一般に、接触ベースのユーザインターフェースをユーザに表示することを容易にする。実施形態では、ディスプレイ902は、接触ベースのユーザインターフェースを表示するためにディスプレイ902が提示し得るように、ヘッドマウントコンピューティングデバイス900で構成され得る。実施形態では、ディスプレイ902は、上記のように、キーワードキューオーバレイを表示するようにさらに構成され得る。実施形態では、ディスプレイ902は、ユーザがディスプレイ902を介して見て、表示された接触ベースのユーザインターフェースと環境との両方を知覚できるように、少なくとも部分的に半透明であり得る。実施形態では、ディスプレイ902は、単眼ディスプレイであり得る。実施形態では、ディスプレイ902は、双眼ディスプレイであり得る。しかしながら、本開示の範囲から逸脱することなく、任意のディスプレイが、開示された本発明の実施形態において使用され得ることが理解されよう。実施形態では、ディスプレイ902は、少なくともヘッドセットデバイスI/O222と通信するように構成され得る。
例示的なセンサ904は、一般に、オーディオ入力のキャプチャを容易にする。実施形態では、センサ904は、指向性マイクロフォンであり得る。実施形態では、センサ904は、全方向性マイクロフォンであり得る。図示されていない実施形態では、センサ904は、周囲ノイズがキャプチャされ、最終的にユーザオーディオ入力の処理および分析を支援するために使用され得るように構成されたヘッドマウントコンピューティングデバイス900の様々なポイントに配置された複数のマイクロフォンをさらに備え得る。センサ904は、本開示の範囲から逸脱することなく、オーディオ入力を知覚し、オーディオ入力をオーディオフィードに変換できる任意のセンサまたはセンサのシステムであり得ることが理解されよう。実施形態では、例示的なセンサ904は、ハンズフリー入力判定器240およびそのサブシステムと通信するように構成され得る。
例示的な物理的入力センサ906は、一般に、様々なハンズフリーナビゲーション機能の再アクティブ化を一般に容易にする入力構成要素を提供する。実施形態では、物理的入力センサ906は、図7Aに関連して論じたように、パッシブコマンドが発行された後、オーディオベースのコマンドを再アクティブ化するようにハンズフリー入力判定器240にシグナルするように構成され得る。実施形態では、物理的入力906は、上記で論じたように、ヘッドセットの基準方位を再較正するようにハンズフリー入力判定器240にシグナルするように構成され得る。実施形態では、物理的入力センサ906は、第1のセンサが、オーディオベースのコマンドを再アクティブ化するように、ハンズフリー入力判定器240にシグナルするように構成され得、第2のセンサが、基準方位を再較正するように、ハンズフリー入力判定器240にシグナルするように構成され得るように、複数の物理的入力センサを備え得る。物理的入力センサ906は、本開示の範囲から逸脱することなく、物理的インタラクションを検出できる任意のセンサであり得ることが理解されよう。
例示的なオーディオ出力908は、一般に、ヘッドマウントコンピューティングデバイス900からのオーディオ出力をユーザに提供する。電気入力に応じてサウンドを生成できる任意の1つまたは複数のオーディオ出力構成要素(スピーカなど)は、本開示の範囲から逸脱することなく、実施形態で使用され得ることが理解されよう。実施形態では、オーディオ出力902は、少なくともヘッドセットデバイスI/O222と通信するように構成され得る。
例示的な動きセンサ910は、一般に、上記で論じた動き処理システムのための動き検出を容易にする。本明細書で使用される場合、動きセンサは、少なくとも1つの加速度計、多軸加速度計、磁力計、ジャイロスコープ、容量性トランスデューサ、ポテンショメータ、抵抗性トランスデューサ、シンクロ、または少なくとも1つの軸における動きを検出できる任意の同様のセンサを備え得る。実施形態では、動きセンサ910は、少なくとも1つの動きセンサを備え得る。実施形態では、動きセンサ910は、複数の動きセンサを備え得る。実施形態では、動きセンサ910は、ハンズフリー入力判定器240およびそのサブシステムと通信するように構成され得る。
実施形態では、例示的なセンサ912は、一般に、動きの判定を容易にする。実施形態では、センサ912は、画像を定期的に(たとえば、60フレーム/秒または任意の所定のレートで)キャプチャするように構成された光に敏感なデジタルセンサであり得る。実施形態では、画像キャプチャ構成要素912は、画像を連続的にキャプチャするように構成された光に敏感なデジタルセンサであり得る。実施形態では、センサ912は、ハンズフリー入力判定器240およびそのサブシステムと通信するように構成され得る。例示的なセンサ912は、本開示の範囲から逸脱することなく、実施形態において使用され得るデジタル画像をキャプチャできる任意のセンサ(カメラ、ビデオカメラなど)を含み得ることが理解されよう。
本明細書で称されるように、変位は、3軸に対する9つの自由度のヘッドセット(ヘッドマウントコンピューティングデバイス900など)の位置における任意の変化を称し得る。これには、3軸のいずれかにおける平行移動または回転を含み得るが、これらに限定されない。3次元空間における変位に関連して使用される用語は、分野(たとえば、航空、生体力学、コンピュータサイエンス)によって大きく異なり、一般的な使用法でも大きく異なる場合があることに注意されたい。そのために、移動、変位、回転、および/または角度変位を記載するこの記載の一部を明確にし、単純化するためにあらゆる試みがなされてきた。しかしながら、反対に、明示的に述べられていない限り、各例は、文脈を提供することが意図され、開示を限定することは意図されていない。
たとえば、x軸における平行移動は、右移動または左移動と称され得る。
しかしながら、これはまた、横軸において原点から(正(右)または負(左))に移動することと同等であると見なされ得ることが理解されよう。x軸を中心とした回転(角度変位)は、上下に回転すると称され得る。しかしながら、これは、ピッチアップまたはピッチダウンと同等と見なすこともできることが理解されよう。したがって、たとえば、上向きに回転しながら右に移動することは、ピッチアップしながら横軸において原点から正の値に向かって移動することとして理解されよう。
y軸における平行移動は、前方または後方への移動と称され得る。しかしながら、これはまた、縦軸において原点から(正(前方)または負(後方))に移動することと同等であると見なされ得ることが理解されよう。y軸を中心とした回転(角度変位)は、左または右への傾斜と称され得る。しかしながら、これはまた、左(反時計回り)または右(時計回り)に回転することと同等であると見なされ得ることが理解されよう。したがって、たとえば、左に傾きながら前方に移動することは、左に回転しながら原点から縦軸の正の値に向かって移動することとして理解されよう。
z軸における平行移動は、上下への移動と称される。しかしながら、これは、垂直軸において原点から(正(上)または負(下))へ移動することと同等と見なされ得る。z軸を中心とした回転(角度変位)は、左または右への回転と称され得る。しかしながら、これはまた、左または右へのヨーと同等であると見なされ得ることが理解されよう。したがって、たとえば、左に曲がりながら上に移動することは、左にヨーイングしながら、原点から垂直軸における正の値に向かって移動することとして理解されよう。
本開示の様々な実施形態が記載されたので、本開示の実施形態を実施するのに適した例示的なコンピューティング環境が次に記載される。図10を参照して示すように、例示的なコンピューティングデバイスが提供され、一般にコンピューティングデバイス1000と称される。コンピューティングデバイス1000は、適切なコンピューティング環境の一例に過ぎず、本開示の使用範囲または機能性に関するいかなる限定をも示唆することは意図されない。また、コンピューティングデバイス1000は、例示された構成要素のいずれか1つまたは組合せに関連する依存性または要件を有すると解釈されるべきではない。
本開示の実施形態は、コンピュータ、または、携帯情報端末、スマートフォン、タブレットPC、または他のハンドヘルドデバイスなどの他のマシンによって実行されるプログラムモジュールなどのコンピュータ使用可能な命令またはコンピュータ実行可能命令を含む、コンピュータコードまたはマシン使用可能命令の一般的な文脈で記載され得る。一般に、ルーチン、プログラム、オブジェクト、構成要素、データ構造などを含むプログラムモジュールは、特定のタスクを実行するか、特定の抽象データタイプを実施するコードを称する。
本開示の実施形態は、ハンドヘルドデバイス、家庭用電化製品、汎用コンピュータ、より特殊なコンピューティングデバイスなどを含む、様々なシステム構成で実現され得る。本開示の実施形態はまた、通信ネットワークを介してリンクされた遠隔処理デバイスによってタスクが実行される分散コンピューティング環境において実現され得る。分散コンピューティング環境では、プログラムモジュールは、メモリストレージデバイスを含むローカルおよびリモートの両方のコンピュータ記憶媒体に配置され得る。
図10を参照して示すように、コンピューティングデバイス1000は、以下のデバイス、すなわち、メモリ1012、1つまたは複数のプロセッサ1014、1つまたは複数の提示構成要素1016、1つまたは複数の入力/出力(I/O)ポート1018、1つまたは複数のI/O構成要素1020、および例示的な電源1022を直接的または間接的に結合するバス1010を含む。バス1010は、1つまたは複数のバス(アドレスバス、データバス、またはそれらの組合せなど)であり得るものを表す。図10の様々なブロックは、明確にするために線で示されているが、実際には、これらのブロックは、必ずしも実際ではない論理的な構成要素を表す。たとえば、ディスプレイデバイスなどの提示構成要素は、I/O構成要素と見なされ得る。また、プロセッサはメモリを有するので、メモリ1012および1つまたは複数のプロセッサ1014は、別個のまたは離散化した構成要素を備える場合と、備えていない場合とがある。本発明者らは、これが当技術分野の性質であることを認識し、図10の図が、本開示の1つまたは複数の実施形態に関連して使用できる例示的なコンピューティングデバイスの単なる例示であると繰り返す。「ワークステーション」、「サーバ」、「ラップトップ」、「ハンドヘルドデバイス」などのようなカテゴリは、すべて図10の範囲内で考慮され、「コンピューティングデバイス」を参照しており、区別されない。
コンピューティングデバイス1000は、通常、様々なコンピュータ可読媒体を含む。コンピュータ可読媒体は、コンピューティングデバイス1000によってアクセスできる任意の利用可能な媒体であり得、揮発性および不揮発性媒体、リムーバブルおよび非リムーバブル媒体の両方を含む。限定ではなく例として、コンピュータ可読媒体は、コンピュータ記憶媒体および通信媒体を備え得る。コンピュータ記憶媒体は、コンピュータ可読命令、データ構造、プログラムモジュール、または他のデータなどの情報の記憶のための任意の方法または技術で実施される揮発性および不揮発性、リムーバブルおよび非リムーバブルの両方の媒体を含む。コンピュータ記憶媒体は、RAM、ROM、EEPROM、フラッシュメモリまたは他のメモリ技術、CD−ROM、デジタル多用途ディスク(DVD)または他の光ディスクストレージ、磁気カセット、磁気テープ、磁気ディスクストレージまたは他の磁気記憶デバイス、または所望の情報を記憶するために使用することができ、コンピューティングデバイス1000によってアクセスできる他の任意の媒体を含むが、これらに限定されない。コンピュータ記憶媒体は、信号自体を備えていない。通信媒体は、通常、コンピュータ可読命令、データ構造、プログラムモジュール、または他のデータを、搬送波または他の輸送メカニズムなどの変調されたデータ信号に具体化し、任意の情報配信媒体を含む。「変調されたデータ信号」という用語は、信号内の情報を符号化するような方式で設定または変更されたその特性の1つまたは複数を有する信号を意味する。一例として、限定ではないが、通信媒体は、ワイヤネットワークまたはダイレクトワイヤ接続などのワイヤ媒体、および音響、RF、赤外線、および他のワイヤレス媒体などのワイヤレス媒体を含む。上記のいずれかの組合せも、コンピュータ可読媒体の範囲に含まれるべきである。
メモリ1012は、揮発性および/または不揮発性のメモリの形態のコンピュータ記憶媒体を含む。メモリは、リムーバブル、非リムーバブル、またはそれらの組合せであり得る。
例示的なハードウェアデバイスは、ソリッドステートメモリ、ハードドライブ、光ディスクドライブなどを含む。コンピューティングデバイス1000は、メモリ1012またはI/O構成要素1020などの様々なエンティティからデータを読み取る1つまたは複数のプロセッサ1014を含む。提示構成要素1016は、データ表示をユーザまたは他のデバイスに提示する。例示的な提示構成要素は、ディスプレイデバイス、スピーカ、印刷構成要素、振動構成要素などを含む。
I/Oポート1018は、コンピューティングデバイス1000が、I/O構成要素1020を含む他のデバイスに論理的に結合されることを可能にし、そのいくつかは組み込まれ得る。例示的な構成要素は、マイクロフォン、ジョイスティック、ゲームパッド、衛星放送受信アンテナ、スキャナ、プリンタ、ワイヤレスデバイスなどを含む。
I/O構成要素1020は、エアジェスチャ、音声、またはユーザによって生成された他の生理学的入力を処理するナチュラルユーザインターフェース(NUI)を提供し得る。いくつかの事例では、入力は、さらなる処理のために適切なネットワーク要素に送信され得る。NUIは、音声認識、接触およびスタイラス認識、顔認識、生体認証、画面上および画面隣接との両ジェスチャ認識、エアジェスチャ、頭と目の追跡、およびコンピューティングデバイス1000上のディスプレイに関連付けられた接触認識の任意の組合せを実施し得る。コンピューティングデバイス1000は、ジェスチャ検出および認識のために、ステレオスコピックカメラシステム、赤外線カメラシステム、RGBカメラシステム、およびこれらの組合せなどの深度カメラを装備され得る。さらに、コンピューティングデバイス1000は、動きの検出を可能にする加速度計またはジャイロスコープを装備され得る。加速度計またはジャイロスコープの出力は、没入型拡張現実または仮想現実をレンダリングするために、コンピューティングデバイス1000のディスプレイに提供され得る。
コンピューティングデバイス1000のいくつかの実施形態は、1つまたは複数の無線1024(または同様のワイヤレス通信構成要素)を含み得る。無線1024は、無線通信またはワイヤレス通信を送受信する。コンピューティングデバイス1000は、様々なワイヤレスネットワークを介して通信および媒体を受信するように適合されたワイヤレス端末であり得る。コンピューティングデバイス1000は、符号分割多元接続(「CDMA」)、モバイル用グローバルシステム(「GSM」)、または時分割多元接続(「TDMA」)のみならず、他のワイヤレスプロトコルを介して通信し、他のデバイスと通信し得る。無線通信は、短距離接続、長距離接続、または短距離と長距離との両方のワイヤレス通信接続の組合せであり得る。「短い」タイプと「長い」タイプの接続を称する場合、2つのデバイス間の空間的な関係を称することを意味しない。代わりに、一般に、短距離および長距離を、異なるカテゴリまたはタイプの接続(すなわち、プライマリ接続およびセカンダリ接続)と称する。短距離接続には、例として、限定されないが、802.11プロトコルを使用したWLAN接続のように、ワイヤレス通信ネットワークへのアクセスを提供するデバイス(たとえば、モバイルホットスポット)へのWi−Fi(登録商標)接続を含み得、別のコンピューティングデバイスへのBluetooth接続は、短距離接続または近距離通信接続の第2の例である。長距離接続は、限定ではなく例として、CDMA、GPRS、GSM、TDMA、および802.16プロトコルのうちの1つまたは複数を使用する接続を含み得る。
ここで図11に移って示すように、本開示のいくつかの実施形態と整合する、バイナリアプリケーションのユーザインターフェースをカスタマイズするための例示的な方法1100を例示するフロー図が提供される。この例示的な方法は、一般に、接触ベースのオペレーティングシステムにおいて実行している接触ベースのアプリケーションのハンズフリー操作を容易にする。ブロック1102において、接触ベースの入力を受信するように適合された接触ベースのアプリケーションは、接触ベースのオペレーティングシステムにおいて初期化される。そのような接触ベースのオペレーティングシステムは、セルラ電話、タブレット、PDA、接触対応PCなどのモバイルデバイス上に配置され得る。接触ベースの入力は、ここで論じるものを含み、接触ベースのオペレーティングシステムにおいて実行している接触ベースのアプリケーションのオペレータによって通常使用されるタップ、スワイプ、または他の任意のジェスチャを含むが、これらに限定されない。方法1100はまた、システムとして、または同様の方法を実行するための非一時的なコンピュータ記憶媒体上の命令によって実行され得ることが認識されるべきである。
実施形態では、ブロック1104において、初期化されたアプリケーションによって生成されたユーザインターフェースツリーが検出される。ユーザインターフェースツリーは、1つまたは複数のGUI要素基準を含み得る。各GUI要素基準は、GUI要素を表示するための接触ベースのオペレーティングシステムへの命令を提供する。GUI要素は、ボタン、チェックボックス、または他の任意の接触選択可能なオブジェクトであり得る。
ユーザインターフェースツリーは、複数のGUI要素基準を含み得、したがって、所与の時点で複数のGUI要素の表示のための命令を提供し得る。
ブロック1106において、GUI要素基準は、ユーザインターフェースツリーから抽出され得る。実施形態では、GUI要素基準は、接触ベースのオペレーティングシステムの接触ベースのユーザインターフェースに、接触ベースのオブジェクトを表示するためのソースコードによる命令について、ユーザインターフェースツリーに問い合わせることによって得られる。
いくつかの実施形態では、ブロック1108において、ユーザインターフェースラベルは、ユーザインターフェースツリーから抽出された少なくとも1つのGUI要素基準のおのおのについて生成され得る。ユーザインターフェースのラベルは、数字でもテキストでもあり得る。ユーザインターフェースラベルは、自動的に決定されるか、カスタマイズされたインデクスの結果であり得る。自動的に決定されたユーザインターフェースラベルは、図8Aおよび図13Cに見られるように、各GUI要素基準に順次増加する数値を割り当てることによって提供され得る。さらに、および/または代わりに、テキストベースのユーザインターフェースラベルは、図8Bおよび図13Bに見られるように、GUI要素基準から自動的に抽出され得る。
さらに、および/または代わりに、GUI要素基準に対応する各ユーザインターフェースラベルは、カスタムユーザインターフェースラベルのセットを含むカスタマイズされたインデクスに基づいて生成される。いくつかの実施形態では、カスタマイズされたインデクスは、XMLファイル、テキストファイル、またはデータベースであり得、ヘッドマウントデバイスなどのハンズフリーデバイスに記憶され得るか、または接触ベースのアプリケーションを実行する接触ベースのオペレーティングシステムに記憶され得る。
いくつかの実施形態では、カスタマイズされたインデクスは、接触ベースのオペレーティングシステムおよびハンズフリーオペレーティングシステムの外部のコンピューティングデバイスにおいて、従来のコーディングまたはスクリプト技術を使用して作成され得る。そのような場合、カスタマイズされたインデクスは、接触ベースのオペレーティングシステムとハンズフリーオペレーティングシステムとのうちの少なくとも1つにおいて、キャッシュ/ロード/実行/インストールされ得る。他の実施形態では、ハンズフリーデバイスのユーザは、前記ハンズフリーデバイスを使用して、カスタマイズされたインデクスを作成し得る。そのような実施形態は、カスタマイズされたインデクスの生成を容易にするために、ハンズフリーシステムまたは接触ベースのオペレーティングシステムのいずれか、または両方で、ユーザに1つまたは複数の抽出されたGUI要素を表示し得る。ユーザは、本明細書で論じられるハンズフリー制御のいずれかを使用して、ユーザインターフェースラベルを入力して、1つまたは複数の抽出されたGUI要素のおのおのと相関させ得る。その後、ユーザが作成したユーザインターフェースラベルを集約して記憶し、カスタマイズされたインデクスを生成できる。いくつかの実施形態では、カスタマイズされたインデクスは、ユーザ固有であり得、すなわち、ユーザインターフェースラベルは、カスタマイズされたインデクスを作成したユーザに対してのみ記憶され、呼び出される。他の実施形態では、カスタマイズされたインデクスは、すべてのユーザに対して使用可能またはデフォルトの表示オプションであり得る。
図11に戻って示すように、ブロック1110において、1つまたは複数のユーザインターフェースラベルが表示される。各ユーザインターフェースラベルは、1つのGUI要素基準に相関し得、各GUI要素基準は、1つのユーザインターフェースラベルに相関し得る。1つまたは複数のユーザインターフェースラベルは、GUI要素基準が対応する接触インタラクティブオブジェクトの近くのハンズフリーデバイスのディスプレイ上に表示され得る。いくつかの実施形態では、ユーザインターフェースラベルは、ハンズフリーデバイスのみに表示され得、他の実施形態では、ユーザインターフェースラベルは、接触ベースのオペレーティングシステムの接触ベースのユーザインターフェースに追加的および/または代替的に表示され得る。実施形態では、ユーザインターフェースラベルは、ハンズフリーデバイスの画面に表示されるオーバレイを介して表示され得、オーバレイは、接触ベースのオペレーティングシステムによって実行され、表示されたアプリケーションの上に配置され、表示されたアプリケーションは、本明細書に記載された様々な実施形態を適用することによって音声制御される。
ここで図12に移って示すように、GUI要素基準1202〜1206の例示的なインスタンスを示す、例示的なユーザインターフェースツリー1200が提供される。1つまたは複数のGUI要素基準のおのおのは、接触インタラクティブオブジェクト1214、1216、および1218を表示するための命令を含む。ユーザインターフェースツリーはまた、テキストベースのユーザインターフェースラベルを生成するために使用され得る情報1208〜1212を含み得る。
ここで図13Aに移って示すように、接触インタラクティブオブジェクト1302〜1310の例示的なインスタンスの表示を示す例示的な接触ベースのユーザインターフェース1300が提供される。従来の接触ベースの入力を使用することにより、ユーザは、接触ベースのオペレーティングシステムの接触ベースのユーザインターフェースとインタラクトして、接触ベースのアプリケーションを操作し得る。接触ベースのユーザインターフェース1300は、接触ベースのアプリケーションを操作するために非接触ベースの入力を利用する能力が制限されているか、またはまったくない場合がある。
ここで図13Bに移って示すように、テキストベースのユーザインターフェースラベル1132〜1336の表示の例示的なインスタンスを示す、第1の例示的なハンズフリーユーザインターフェース1330が提供される。図11に関連して論じたように、テキストベースのユーザインターフェースラベルは、自動的に生成され得るか、および/または、カスタムユーザインターフェースラベルのセットを含むカスタマイズされたインデクスに基づいて生成され得る。図13Aの接触インタラクティブオブジェクト1302〜1306とは異なり、ユーザは、たとえば、テキストベースのユーザインターフェースラベルに関連付けられたスピーチコマンドを利用することによって、接触ベースのアプリケーションとインタラクトし得る。例として、テキストベースのユーザインターフェースラベル1332は、図13Aの接触インタラクティブオブジェクト1302に相関する。
次に図13Cを参照して示すように、数字ベースのユーザインターフェースラベル1362〜1370の表示の例示的なインスタンスを図示する、第2の例示的なハンズフリーユーザインターフェース1360が提供される。上記で論じたように、数字ベースのユーザインターフェースラベルは、自動的に生成され得るか、および/または、カスタムユーザインターフェースラベルのセットを含むカスタマイズされたインデクスに基づいて生成され得る。図13Aの接触インタラクティブオブジェクト1302〜1306とは異なり、ユーザは、たとえば、数字ベースのユーザインターフェースラベルに関連付けられたスピーチコマンドを利用することによって、接触ベースのアプリケーションとインタラクトし得る。例として、数字ベースのユーザインターフェースラベル1362は、図13Aの接触ベースのインタラクティブオブジェクト1302に相関する。
実施形態では、複数のエミュレートされた接触入力を組み合わせて、単一のユーザインターフェースラベルを形成できる。そのような実施形態は、エミュレートされた接触入力の履歴を記憶することを備え得る。エミュレートされた接触入力は、本明細書に開示されるように、スピーチデータまたは他のハンズフリー入力を受信できる。2つ以上のエミュレートされた接触入力のシーケンスは、しきい反復値を超え、シーケンスが十分に頻繁に使用されていることを示すことができる。そのような事例では、ハンズフリーデバイスおよび/または接触ベースのオペレーティングシステムのいずれかが、生成されたカスタマイズされたインデクスを変更して、特定のシーケンスに対応するユーザインターフェースラベルを含めることができる。たとえば、ユーザインターフェースラベルに含まれる単語または句に対応する受信されたスピーチデータによる、特定のシーケンスに対応するユーザインターフェースラベルのハンズフリー選択は、接触ベースのアプリケーションに対して、2つ以上のエミュレートされた接触入力に関連付けられた操作を順に実行させ得る。
図示された様々な構成要素、ならびに図示されていない構成要素の多くの異なる構成が、以下の特許請求の範囲から逸脱することなく可能である。本開示の実施形態は、限定的ではなく例示的であることを意図して記載された。代替の実施形態は、本開示を読んだ後、それを読んだために、本開示の読者に明らかになるであろう。前述の実施の代替手段は、以下の特許請求の範囲から逸脱することなく完成できる。特定の機能および部分組合せが有用であり、他の機能および部分組合せを参照せずに適用され得、特許請求の範囲内で考慮される。