本願は、2013年1月4日付出願の米国特許出願第61/749,240号の優先権を主張する、2013年3月13日付出願の米国特許出願第13/799,790号の継続出願である。なお、米国特許出願第13/799,790号は、2010年9月20日付出願の米国特許出願第61/384,586号の優先権を主張する、2011年9月16日付出願の米国特許出願第13/234,916号の一部継続出願である。これら米国特許出願の全内容は、参照をもって本明細書に取り入れたものとする。
図1A及び図1Bに、無線コンピューティングヘッドセットデバイス100(本明細書ではヘッドセットコンピュータ(HSC)と称することもある)の例示的な一実施形態を示す。HSC100は、高解像度(VGAまたはそれを超える解像度)のマイクロディスプレイ要素1010を組み込んでいると共に、下記のその他の構成要素も組み込んでいる。具体的に述べると、HSC100は:音声入力および/または音声出力装置(少なくとも1つのマイクロホン、少なくとも1つの入力スピーカ、および少なくとも1つの出力スピーカが含まれ得る);および/または地理位置センサ(GPS);および/または3軸〜9軸の自由度の方位センサ;および/または気圧センサ;および/または健康状態センサ;および/またはデジタルコンパス;および/または圧力センサ;および/または環境センサ;および/またはエネルギーセンサ;および/または加速度センサ;および/または位置センサ;および/または姿勢センサ;および/または動きセンサ;および/または速度センサ;および/または光センサ;および/またはカメラ(可視光カメラ、赤外線カメラなど);および/または複数のワイヤレス無線機;および/または補助照明;および/または距離計;および/またはその他;を備え得る。HSC100は:ヘッドセットに埋め込まれたセンサのアレイ;および/またはヘッドセットに組み込まれたセンサのアレイ;および/または少なくとも1つのペリフェラル(周辺機器)ポート(図1Bに詳細には示されていない)を介してデバイスに取り付けられるセンサのアレイ;を備え得る。典型的に、ヘッドセットコンピューティングデバイス100のハウジング内部には、様々な電子回路が配置されている。そのような電子回路には:マイクロコンピュータ(シングルコアまたはマルチコアのプロセッサ);1つ以上の有線および/または無線の通信インターフェース;メモリまたは記憶装置;各種センサ;ならびにペリフェラルマウント(装着部)または「ホットシュー」等のマウント;が含まれ得る。
HSC100の例示的な実施形態は、音声コマンド、頭の動き110,111,112、手のジェスチャ113、またはこれらの組合せを検出することにより、ユーザの入力を受け取り得る。具体的に述べると、HSC100に動作可能に接続された、または、好ましくは、HSC100に組み込まれた少なくとも1つのマイクロホンを用いて、発話コマンドまたは音声コマンドを捉え得る。捉えられた音声コマンドは、自動発話認識技術または自動音声認識技術を用いてデジタル化されて処理される。また、HSC100には、ジャイロスコープ、加速度計、および微小電気機械システムに基づくその他のセンサが組み込まれ得る。これらのセンサ等は、ユーザの頭の動きを追跡してユーザに入力コマンドを提供する。また、カメラまたはその他の動き追跡センサを用いて、ユーザの手のジェスチャを監視してユーザに入力コマンドを提供し得る。これらのようなユーザインターフェースにより、他のモバイルデバイスのようなヒトの手に依存する様式を不要にすることができる。
HSC100は、様々な方法で使用することができる。具体的に述べると、HSC100は、リモートホストコンピューティングデバイス200(図1Aに示されている)から受け取った映像信号をストリーミング再生する遠隔ディスプレイとして使用可能である。ホスト200の例として、ノートブックPC、スマートフォン、タブレット型端末など、または、無線コンピューティングヘッドセットデバイス100よりも演算複雑度が高いまたは低い、その他のコンピューティングデバイス(例えば、クラウドベースのネットワークリソースなど)が挙げられる。ホストは、他のネットワーク210(例えば、インターネットなど)にさらに接続され得る。ヘッドセットコンピューティングデバイス100とホスト200とは、1つ以上の無線プロトコル(例えば、Bluetooth(登録商標)、Wi−Fi(登録商標)、WiMAX(登録商標)、4G LTE、その他のワイヤレス無線リンクなど)150で、ワイヤレスに相互に通信し得る(Bluetoothは、5209 Lake Washington Boulevard, Kirkland, Washington 98033に居所を有するBluetooth Sig, Inc.社の登録商標である)。例示的な一実施形態において、ホスト200は、無線リレーとして機能可能なように、他のネットワークにさらに接続され得る(例えば、無線接続で、インターネットまたはその他のクラウドベースのネットワークリソースにさらに接続される)。いくつかの変形例として、HSC100の例示的な実施形態は、インターネットやクラウドベースのネットワークリソースに対し、ホストを無線リレーとして使用することなく無線接続され得る。
図1Bは、ヘッドセットコンピュータ100の例示的な一実施形態について、その詳細の一部を示す斜視図である。この例示的な実施形態のHSC100は、概して、フレーム1000、ストラップ1002、後部ハウジング1004、スピーカ1006、マイクロホンが組み込まれたカンチレバー(片持ち支持部材)(アームまたはブームとも称される)1008、およびマイクロディスプレイサブアセンブリ1010を備える。
頭部に装着されるフレーム1000およびストラップ1002は、一般的に、ユーザがヘッドセットコンピュータデバイス100を自身の頭部に装着することを可能とするように構成されている。ハウジング1004は、一般的に、電子部品(例えば、マイクロプロセッサ、メモリ、その他の記憶装置など)をその他の関連回路と共に収容する、背の低いユニットとなっている。スピーカ1006は、ユーザに音声出力を提供することにより、ユーザが情報を聞くことを可能にする。マイクロディスプレイサブアセンブリ1010は、ユーザに視覚的情報または表示情報(visual information)を表示する。マイクロディスプレイサブアセンブリ1010は、アーム1008に連結している。アーム1008は、概して、マイクロディスプレイサブアセンブリをユーザの視野300(図1A)内、好ましくは、ユーザの眼の前方、あるいは、ユーザの周辺視野内(好ましくは、ユーザの眼よりも若干下または若干上)に配置できるように物理的な支持を行う。アーム1008は、さらに、マイクロディスプレイサブアセンブリ1010とハウジングユニット1004内に収容された制御回路との、電気的なまたは光学的な接続を行う。
後で詳述する側面によると、HSCディスプレイデバイス100は、ユーザが視野300を、仮想的なディスプレイ400によって形成される、当該視野300よりも遥かに広い領域内から選択することを可能にする。ユーザは、典型的に、視野300の位置および/または範囲(例えば、X−Y範囲、3D範囲など)、および/または倍率を操作することができる。
なお、図1Aに示されているのは単眼式のマイクロディスプレイであり、ユーザの顔に対してカンチレバー型のブームによって片持ち支持固定される単一のディスプレイ要素が図示されているが、遠隔制御ディスプレイデバイス100の機械的構成として、その他の構成を採用することも可能であることを理解されたい。
図2は、HSCデバイス100の詳細、ホスト200の詳細、およびこれらの間を行き交うデータの詳細を示すブロック図である。HSCデバイス100は、ユーザからの音声入力を、マイクロホンを介して受け取り、手の動きまたは体のジェスチャを位置センサ及び方位センサ、カメラまたは少なくとも1つの光センサを介して受け取り、頭の動きによる入力を3軸〜9軸の自由度の方位センシング等の頭追跡回路を介して受け取る。これらは、HSCデバイス100のソフトウェアによってキーボードコマンドおよび/またはマウスコマンドに翻訳された後、Bluetoothまたはその他のワイヤレスインターフェース150を介してホスト200に送信される。ホスト200は、これら翻訳されたコマンドを、自身のオペレーティングシステム/アプリケーションソフトウェアに従って解釈し、様々な機能を実行する。このようなコマンドの一つとして、視野300を仮想的なディスプレイ400内から選択し、選択された画面データをHSCデバイス100に返すコマンドが挙げられる。すなわち、ホスト200で動作するアプリケーションソフトウェアまたはオペレーティングシステムに、極めて大型のフォーマットの仮想的なディスプレイ領域が関連付けられ得ると理解されたい。ただし、その大型の仮想的なディスプレイ領域400のうち、前記視野300内の一部のみが返されて、HSCデバイス100のマイクロディスプレイ1010で実際に表示される。
一実施形態において、HSC100は、同時係属中の米国特許出願公開公報第2011/0187640号に記載されたHSCの形態を取りうる。なお、この米国特許出願公開公報の全内容は、参照をもって本明細書に取り入れたものとする。
他の実施形態において、本発明は、ヘッドマウントディスプレイ(HMD)1010を、外部の「スマート」デバイス200(例えば、スマートフォン、タブレットなど)と協働で使用することにより、ユーザに対してハンズフリーで情報及び制御機能を提供するという技術思想に関する。本発明は、少量のデータ送信で済み、高い信頼性のデータ転送方法をリアルタイムで実行することを可能にする。
つまり、この意味では、接続150を介して送信されるデータ量により、画面をどのようにレイアウトするかについて、どのようなテキストを表示するのかについて、およびその他のスタイル情報(例えば、描画矢印、背景カラー、含まれるイメージなど)についての短い単純な命令で済む。
ホスト200の要求があれば、さらなるデータ(例えば、映像ストリームなど)が、同じ接続150またはその他の接続を介してストリーミングされて画面1010上に表示され得る。
本発明は、さらに、音声によって制御されるHSC100で、アプリケーション内において、コンテキストに敏感なまたはコンテキストを認識したオーバーレイを視ることを可能にする技術に関する。
具体的に述べると、データを画面表示で(over a visual)、コンテキストに依存しつつ、オンデマンドで提示するというのが、その考えである。ユーザは、音声コマンド(典型的には、「Show(表示)コマンド」)により、オーバーレイを呼び出すことができる。この音声コマンドは、システム100の標準コマンドであり、常に利用可能である。このコマンドは、HSC100に、適用可能な音声コマンドおよびその他の情報を、コンテキストに敏感に且つ直感的に表示させる。
それら適用可能な音声コマンドは、ディスプレイユニット1010の、その時点での画面ビューにおいて、半透明のオーバーレイ上に示される。この構成により、ユーザは、そのオーバーレイを呼び出すための画面について、当該画面のコンテキストを維持することができる。
これらオーバーレイおよび表示された適用可能なコマンドは、短時間後にフェードアウトする。これは、画面ビューをリフレッシュするタイミングメカニズムによって実現される。
それら適用可能な音声コマンドは、関連性の順番で表示される。具体的に述べると、最も関連性の高いコマンドが、関連性の低いコマンドよりも目立って配置される。HSC100は、ディスプレイ1010のコンテンツの、その時点でのコンテキストに基づいて、関連性の程度(relevancy)を決定する。
関連するシステムの各画面は、ユーザインターフェース(UI)の各種コンポーネントで構成される。これらコンポーネントの一部は「コントロール」である。コントロールとは、ユーザに情報を提供したり何らかの機能を可能にしたりする、UIのコンポーネントである。コントロールの例として、ボタン、ラジオボタン、テキストボックス、チェックボックス、ドロップダウンメニュー、ファイルメニュー、リボンメニュー、ライブタイルなどが挙げられる。これらは、ソフトウェアデベロッパーのコンポーネントライブラリ内に、利用可能なかたちで様々な形態で存在しており、所与の機能をカスタマイズすることを可能にする。このようなコントロールの一例として、「ボタン」は単純に、このボタン上に存在する音声コマンドをユーザが利用することで、当該ボタンを押すことを可能にする。この「ボタン」コントロールのような各種コントロールは、デベロッパーにとって利用可能なものであり、例えば、デベロッパーのコンポーネントライブラリの一部またはその他のライブラリの一部として利用可能である。具体的に述べると、デベロッパーは、始めから自らコントロールをコード化せずとも、予めコード化されたコントロールを挿入し、これを自分の趣向に合わせてカスタマイズすることができる。
「Showコマンド」機能は、デベロッパーのライブラリ内のコントロールに組み込まれている。一例を挙げて説明するならば、デベロッパーが例えばボタンを作成して当該ボタン上に書き込むべきテキスト列を指定すると、そのテキスト列は、デベロッパー(またはユーザ)が音声コマンドを無効にしない限り、そのボタンをアクティベート(起動または活性化)するデフォルトの音声コマンドとなる。コントロール(例えば、上記ボタンなど)は、「Showコマンド」の音声コマンドに対し、当該コントロール上または当該コントロール近傍に、当該コントロールをアクティベートする語(word)のテキスト列をオーバーレイ表示することによって応答するように構成される。
HSC100で利用可能な各ユーザインターフェース画面は、いずれも、「Showコマンド」の音声コマンド(例えば、デフォルトで利用可能なシステムコマンドなど)を受け付けることができる。すなわち、画面がUIのライブラリからのコントロールを用いて構築されるとき、どのような音声コマンドがユーザにとって利用可能なのかを案内するShowコマンド機能が組み込まれている。これらユーザにとって利用可能な音声コマンドは、(デフォルトで)その時点で表示されているコンテンツ(スクリーンビュー)のコンテキストで示される。
「Showコマンド」のオーバーレイ内には、表示されているまたは視覚可能なコントロールに関連付けられていない、その他の利用可能な音声コマンドも配置され得る。これらの音声コマンドはデベロッパーによって前記オーバーレイ内に配置され、音声コマンドオンリーのコントロールや隠れているコントロール(通常は非表示のコントロール)を追加するのに用いられ、具体的に述べると、ボタンまたはその他のコントロールに関連付けられていない音声コマンドの表示されているまたは視覚可能なキュー(cue:合図、指示等)を提供する。
図3は、HSCで用いられるユーザインターフェース202の例示的な一実施形態を示す図表250である。この実施形態において、ユーザインターフェース202は、ユーザのインボックスを表示する電子メールアプリケーションである。各電子メールがリスト化され、第1〜第6の電子メールコントロール204a〜204fが示されている。ユーザは、各コントロールを選択することにより、各電子メールを開くことができる。各電子メールコントロール204a〜204fは、少なくともそれに対応する音声コマンドによって選択されるようにプログラムされている。
図4は、「Showコマンド」の音声コマンドを受け付けた後のユーザインターフェース302の例示的な一実施形態を示す図表300である。ユーザインターフェースは、図3の各電子メールコントロール204a〜204fにそれぞれ対応する音声コマンドを表示する。具体的に述べると、図4における第1〜第6の音声コマンド304a〜304fは、第1〜第6の電子メールコントロール204a〜204fにそれぞれ対応している。一例として、第1の音声コマンド304aを発話する(すなわち、「第1の電子メールを開く」等といった内容の発話をする)ことにより、HSC100に、リスト内の第1の電子メールを開かせることができる。
「Showコマンド」モードのユーザインターフェース302には、さらに、第1〜第9の暗示的なまたは対応付けなどの条件のない(implicit)音声コマンド306a〜306iが複数示されている。これら第1〜第9の暗示的な音声コマンド306a〜306iは、ユーザインターフェースで表示されているまたは視覚可能な、どの特定のコントロールにも対応していない(例えば、前記電子メールコントロールに対応していない)ものの、ユーザにとって利用可能な音声コマンドである。幾つかの例を挙げるならば、ユーザは、第1の暗示的な音声コマンド306aを発話することによって前のページに移動することができ、第2の暗示的な音声コマンド306bを発話することによって次のページに移動することができる。また、ユーザは、第3の暗示的なコマンド306cを発話することによって電子メールを作成することができる。また、ユーザは、第4の暗示的なコマンド306dを発話することによって自身の電子メールアカウントを管理することができる。また、ユーザは、第5の暗示的なコマンド306eを発話することによって自身のアカウントを閲覧することができる。また、ユーザは、第6の暗示的な音声コマンド306fを発話することによってフォルダを切り替えることができる。また、ユーザは、第7の暗示的な音声コマンド306gを発話することによってインボックスをリフレッシュすることができる。
また、ユーザは、第8の暗示的な音声コマンド306hを発話することによって前の画面に戻ることができる。また、ユーザは、第9の暗示的な音声コマンド306iを発話することによってホーム画面に戻ることができる。第8および第9の暗示的な音声コマンドは、HSC100のどの画面においてもユニバーサル(汎用的)なまたはアプリケーションに依存しないコマンドである。その一方で、第1〜第6の音声コマンド304a〜304fおよび第1〜第7の暗示的な音声コマンド306a〜306gは、この特定のアプリケーション(ここではメールアプリケーション)内でのローカル(局所的)なコマンドである。しかし、他の実施形態では、第1および第2の暗示的な音声コマンド306a,306bが、アプリケーション内での、前のページおよび次のページに移動するためのグローバル(広域的)なコマンドとされ得る。
このような音声コマンドによるオーバーレイは、画面上のオプションやボタンを整理することになるので、ユーザを支援することができる。さらに、音声コマンドにより、ユーザにシステムをどのように使用するのかの把握を促す一助とできる。このことは、デバイスおよび音声コマンドの利用方法をユーザが覚える際に特に有用である。
図5は、本発明で用いられる方法の例示的な一実施形態を示すフロー図500である。まず、この方法は、ヘッドセットコンピュータにユーザインターフェースを提供する(過程502)。次に、この方法は、前出のキューとなるトグルコマンドを、例えばユーザの発話から音声手段を介して受け取ったか否かを判断する(過程504)。この方法は、その判断結果が否定である場合、引き続きキュー・トグルコマンドの入力を待つ(過程504)。この方法は、その判断結果が肯定である場合には、少なくとも1つのキューを前記ユーザインターフェースに表示する(過程506)。各キューには、それぞれ対応する音声コマンドが関連付けられている。この音声コマンドは、発話されると、システムにコードまたはプログラム(code)を実行させる。
次に、システムは、音声コマンド(例えば、前記キューのうちの一つにより示された音声コマンドなど)を受け取ったか否かを判断する(過程508)。システムは、その判断結果が否定である場合、引き続き音声コマンドの入力を待つ(過程508)。システムは、その判断結果が肯定である場合には、受け取った音声コマンドに関連付けられたコードまたはプログラムを実行する(過程510)。
図6に、本発明を実現し得るコンピュータネットワークまたは同様のデジタル処理環境を示す。
少なくとも1つのクライアント側コンピュータ/端末50および少なくとも1つのサーバコンピュータが、アプリケーションプログラム等を実行する処理装置、記憶装置および入出力装置などを実現し得る。少なくとも1つのクライアント側コンピュータ/端末50は、通信ネットワーク70を介して別のコンピューティングデバイス(別のクライアント側端末/処理装置50および少なくとも1つの別のサーバコンピュータ60が含まれ得る)に接続可能である。通信ネットワーク70は、リモートアクセスネットワークの一部、グローバルネットワーク(例えば、インターネットなど)の一部、世界規模のコンピュータの集合の一部、ローカルエリアネットワークの一部、ワイドエリアネットワークの一部、あるいは、一般に各種プロトコル(TCP/IP、Bluetoothなど)を用いて相互通信するゲートウェイの一部であり得る。それ以外の電子デバイス/コンピュータネットワークアーキテクチャも使用可能である。
図7は、図6のコンピュータシステムに含まれるコンピュータ(例えば、クライアント側処理装置/端末50、サーバコンピュータ60など)の内部構造を示す図である。各コンピュータ50,60は、システムバス79を備える。バスは、コンピュータ(または処理システム)の構成要素間のデータ転送に用いられるハードウェアラインのセットからなる。また、バス79は、本質的には、コンピュータシステムにおける相異なる構成要素(例えば、プロセッサ、ディスクストレージ、メモリ、入力/出力ポート、ネットワークポートなど)同士を接続する共有の配管のようなものであり、それら構成要素間の情報のやり取りを可能にする。システムバス79には、様々な入出力装置(例えば、キーボード、マウス、ディスプレイ、プリンタ、スピーカなど)をコンピュータ50,60に接続するためのI/O装置インターフェース82が取り付けられている。ネットワークインターフェース86は、コンピュータがネットワーク(例えば、図6のネットワーク70など)に取り付けられた他の様々な装置/端末/デバイスに接続することを可能にする。メモリ90は、本発明の一実施形態(例えば、前述したユーザインターフェースコード内の、コンテキストに敏感なまたはコンテキストを認識したオーバーレイなど)を実現するのに用いられるコンピュータソフトウェア命令92およびデータ94を記憶する揮発性メモリである。ディスクストレージ95は、本発明の一実施形態を実施するのに用いられるコンピュータソフトウェア命令92およびデータ94を記憶する不揮発性ストレージである。システムバス79には、さらに、コンピュータ命令を実行する中央演算処理装置84も取り付けられている。
一実施形態において、プロセッサのルーチン92およびデータ94は、本発明にかかるシステムに対するソフトウェア命令の少なくとも一部を提供するコンピュータプログラムプロダクト(概して符号92で示す)である。コンピュータプログラムプロダクト92には、コンピュータ読み取り可能な媒体(例えば、少なくとも1つのDVD−ROM、少なくとも1つのCD−ROM、少なくとも1つのディスク、少なくとも1つのテープ等といった取外し可能な記憶媒体など)が含まれる。コンピュータプログラムプロダクト92は、当該技術分野において周知である任意の適切なソフトウェアインストール方法によってインストール可能なものであり得る。他の実施形態において、前記ソフトウェア命令の少なくとも一部は、ケーブル接続および/または通信接続、および/または無線接続を介してダウンロード可能なものであり得る。さらなる他の実施形態において、本発明にかかるプログラムは、伝播媒体上の伝播信号(例えば、無線波、赤外線波、レーザ波、音波、インターネット等といったグローバルネットワークやその他の少なくとも1つのネットワークによって伝播される電気波動など)によって実現される、伝播信号によるコンピュータプログラムプロダクト107である。このような搬送媒体または搬送信号が、本発明にかかるルーチン/プログラム92用のソフトウェア命令の少なくとも一部を提供する。
さらなる他の実施形態において、前記伝播信号は、伝播媒体上を搬送されるアナログ搬送波またはデジタル信号である。例えば、前記伝播信号は、グローバルネットワーク(例えば、インターネットなど)、電気通信ネットワークまたはその他のネットワーク上を搬送されるデジタル信号であり得る。一実施形態において、前記伝播信号は、所与の期間のあいだ伝播媒体上を送信される信号であり、例えば、数ミリ秒、数秒、数分またはそれ以上の期間のあいだネットワーク上をパケットで送信される、ソフトウェアアプリケーション用の命令などであり得る。他の実施形態において、コンピュータプログラムプロダクト92の前記コンピュータ読み取り可能な媒体は、コンピュータシステム50が受け取って読み取り可能な伝播媒体である。例えば、コンピュータシステム50は、前述した伝播信号によるコンピュータプログラムプロダクトの場合のように、伝播媒体を受け取ってその伝播媒体内に組み込まれた伝播信号を特定する。
一般的に言って、「搬送媒体」や過渡的または一時的なキャリアという用語は、前述したような過渡的なまたは一時的な信号、伝播信号、伝播媒体、記憶媒体、およびその他を包含する用語である。
本発明を例示的な実施形態を参照しながら具体的に図示・説明したが、当業者であれば、添付の特許請求の範囲に包含される本発明の範囲から逸脱することなく、形態および細部の詳細な変更が可能であることを理解するであろう。