IP Force 特許公報掲載プロジェクト 2022.1.31 β版

知財求人 - 知財ポータルサイト「IP Force」

▶ オラクル・インターナショナル・コーポレイションの特許一覧

特表2024-502588仮想アシスタントが開始したリストおよびリマインダでの元の音声クリップへのドリルバック
<>
  • 特表-仮想アシスタントが開始したリストおよびリマインダでの元の音声クリップへのドリルバック 図1
  • 特表-仮想アシスタントが開始したリストおよびリマインダでの元の音声クリップへのドリルバック 図2
  • 特表-仮想アシスタントが開始したリストおよびリマインダでの元の音声クリップへのドリルバック 図3
  • 特表-仮想アシスタントが開始したリストおよびリマインダでの元の音声クリップへのドリルバック 図4
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公表特許公報(A)
(11)【公表番号】
(43)【公表日】2024-01-22
(54)【発明の名称】仮想アシスタントが開始したリストおよびリマインダでの元の音声クリップへのドリルバック
(51)【国際特許分類】
   G06F 16/38 20190101AFI20240115BHJP
   G06F 3/16 20060101ALI20240115BHJP
   G06F 3/01 20060101ALI20240115BHJP
【FI】
G06F16/38
G06F3/16 650
G06F3/16 690
G06F3/01 510
【審査請求】未請求
【予備審査請求】有
(21)【出願番号】P 2023540788
(86)(22)【出願日】2021-09-08
(85)【翻訳文提出日】2023-08-30
(86)【国際出願番号】 US2021049507
(87)【国際公開番号】W WO2022146502
(87)【国際公開日】2022-07-07
(31)【優先権主張番号】17/140,783
(32)【優先日】2021-01-04
(33)【優先権主張国・地域又は機関】US
(81)【指定国・地域】
(71)【出願人】
【識別番号】502303739
【氏名又は名称】オラクル・インターナショナル・コーポレイション
(74)【代理人】
【識別番号】110001195
【氏名又は名称】弁理士法人深見特許事務所
(72)【発明者】
【氏名】ロジャース,マイケル・パトリック
【テーマコード(参考)】
5B175
5E555
【Fターム(参考)】
5B175DA01
5B175DA05
5B175FB03
5E555AA46
5E555BA04
5E555BB04
5E555BC01
5E555CA45
5E555CA47
5E555CB64
5E555CB82
5E555CC01
5E555DA23
5E555DB05
5E555DB18
5E555DB41
5E555DC13
5E555DC63
5E555DC84
5E555DD07
5E555DD08
5E555EA08
5E555EA23
5E555FA00
(57)【要約】
仮想アシスタントが開始したリストおよびリマインダにおいて元の音声クリップにドリルバックするための技術を開示する。システムは、第1の要求を含む音声入力を受信し得る。第1の要求に基づいて、システムは、仮想アシスタントプラットフォームが実行すべきアクションをスケジューリングし得る。システムは、音声入力の少なくとも一部分、および、アクションと音声入力の少なくとも一部分との間のマッピングを記憶する。システムはアクションを実行する。アクションの実行後、システムは、アクションに対応する第1の要求の音声再生のための第2の要求を受信する。システムは、アクションと音声入力の少なくとも一部分との間のマッピングに基づいて音声入力の少なくとも一部分を検索し、第1の要求を含む音声入力の少なくとも一部分を再生する。
【特許請求の範囲】
【請求項1】
命令を含む非一時的なコンピュータ可読媒体であって、前記命令は、1つ以上のハードウェアプロセッサによって実行されると動作を実行させ、前記動作は、
仮想アシスタントプラットフォームが、第1の要求を含む音声入力を受信する動作と、
前記第1の要求に基づいて、前記仮想アシスタントプラットフォームによって実行されるべきアクションをスケジューリングする動作と、
(a)前記音声入力の少なくとも一部分、および、(b)前記アクションと前記音声入力の少なくとも一部分との間のマッピングを記憶する動作と、
前記仮想アシスタントプラットフォームが、前記アクションを実行する動作と、
前記アクションを実行する動作の後、前記仮想アシスタントプラットフォームが、前記仮想アシスタントプラットフォームによって実行された前記アクションに対応する前記第1の要求の音声再生のための第2の要求を受信する動作と、
前記アクションと前記音声入力の少なくとも一部分との間の前記マッピングに基づいて前記音声入力の少なくとも一部分を検索する動作と、
前記仮想アシスタントプラットフォームが、前記第1の要求を含む前記音声入力の少なくとも一部分を再生する動作とを含む、非一時的なコンピュータ可読媒体。
【請求項2】
前記動作はさらに、
(a)前記第1の要求が受信された時刻におけるコンテキスト情報と、(b)前記アクションとユーザロケーションとの間のマッピングとを記憶する動作を含み、前記コンテキスト情報は、(i)前記第1の要求が受信されたときのユーザロケーション、(ii)前記第1の要求が受信された時刻、または、(iii)前記第1の要求が受信された時刻に動作しているアプリケーションのリスト、のうちの1つ以上を含み、前記動作はさらに、
前記アクションと前記第1の要求が受信された時刻における前記コンテキスト情報との間の前記マッピングに基づいて、前記第1の要求が受信された時刻における前記コンテキスト情報を検索する動作と、
前記仮想アシスタントプラットフォームが、前記第1の要求が受信された時刻における前記コンテキスト情報の少なくとも一部分を提示する動作とを含む、請求項1に記載の媒体。
【請求項3】
前記音声入力の少なくとも一部分、および、前記アクションと前記音声入力の少なくとも一部分との間のマッピングを記憶する動作は、前記音声入力の1つ以上の特徴を評価することに応答して実行され、
前記動作はさらに、
前記仮想アシスタントプラットフォームが、第2の要求を含む第2の音声入力を受信する動作と、
前記第2の要求に基づいて、前記仮想アシスタントプラットフォームによって実行されるべき第2のアクションをスケジューリングする動作と、
前記第2の音声入力の1つ以上の特徴を評価する動作と、
前記第2の音声入力の任意の部分を記憶することを控える動作とを含む、請求項1に記載の媒体。
【請求項4】
前記動作はさらに、
前記第1の要求に基づいて実行されるべき前記アクションのスケジューリングに関連付けられた信頼度レベルを決定する動作と、
前記決定された信頼度レベルが信頼度閾値を下回っていることに応答して、前記アクションを確認するようにユーザに促す動作とを含む、請求項1に記載の媒体。
【請求項5】
前記音声入力の少なくとも一部分を記憶する動作は、前記音声入力の全てを記憶する動作を含む、請求項1に記載の媒体。
【請求項6】
前記音声入力の少なくとも一部分を再生する動作は、前記音声入力の全てを再生する動作を含む、請求項1に記載の媒体。
【請求項7】
前記動作はさらに、
前記音声入力をパースして、入力を複数のセクションに分割する動作と、
前記音声入力の前記複数のセクションのうち、前記第1の要求を含む特定のセクションを決定する動作とを含み、
前記音声入力の少なくとも一部分を記憶する動作は、前記特定のセクションを記憶する動作を含む、請求項1に記載の媒体。
【請求項8】
前記動作はさらに、
前記音声入力をパースして、入力を複数のセクションに分割する動作と、
前記音声入力の前記複数のセクションのセクションごとに、前記セクションに含まれる音声のトランスクリプトを生成する動作と、
前記音声入力の前記複数のセクションのセクションごとに、前記セクションのトランスクリプトがトランスクリプションエラーを含む尤度を決定する動作とを含み、
前記音声入力の少なくとも一部分を記憶する動作は、前記セクションの前記トランスクリプトがトランスクリプションエラーを含む尤度が最も高いセクションを少なくとも記憶する動作を含む、請求項1に記載の媒体。
【請求項9】
前記動作はさらに、
仮想アシスタントプラットフォームによって実行される前記アクションに対応する前記第1の要求の音声再生のための前記第2の要求を受信する動作に応じて、トレーニングデータセットに含めるべき前記音声入力の少なくとも一部分をマーク付けする動作を含む、請求項1に記載の媒体。
【請求項10】
請求項1から9のいずれか1項に記載の動作を含む方法。
【請求項11】
請求項1から9のいずれか1項に記載の動作を実行するための手段を含むシステム。
【請求項12】
システムであって、
ハードウェアプロセッサを含む少なくとも1つのデバイスを含み、
前記システムは、請求項1から9のいずれか1項に記載の動作を実行するように構成される、システム。
【発明の詳細な説明】
【技術分野】
【0001】
本開示は仮想アシスタントに関する。特に、本開示は、将来レビューされることが意図されているコンテンツを仮想アシスタントに作成させた音声入力の元の音声記録を提供することに関する。
【背景技術】
【0002】
背景
仮想アシスタントは、タスクを実行するために用いられるソフトウェアエージェントである。仮想アシスタントは、ボイスコマンドおよび/またはテキストコマンドを介してユーザからの命令を受付け得る。ボイスコマンドはスマートスピーカによって受信され得る。代替的には、仮想アシスタントは、チャットインターフェイスにタイプされたテキストコマンドを介してユーザからコマンドを受信してもよい。概して、仮想アシスタントは、要求に応答して単純なタスクを実行する。例えば、仮想アシスタントは、「今日はどんな天気ですか?」といったボイスコマンドに応答して今日の天気予報を読出す。
【0003】
仮想アシスタントはまた、ユーザが将来レビューすることを意図しているリストおよびリマインダ等のコンテンツを作成するために用いられてもよい。例えば、ユーザは、スーパーマーケットでリストコンテンツを見直すつもりでショッピングリストにアイテムを追加する可能性がある。別の例として、ユーザは、翌日正午のリマインダ提示時にそのリマインダを見直すつもりで、「明日の正午にジョンに電話するよう私にリマインドして下さい」というボイスコマンドを与える可能性がある。
【0004】
仮想アシスタントは、特定のタスクを実行するために特定のアプリケーションまたはモジュールを用いてもよい。例として、仮想アシスタントは、独立型のアプリケーションを呼出して、指示を見つけ、天気をチェックし、カレンダを更新する。仮想アシスタントは、実行すべきタスクを識別するためにユーザの意図を判断し得る。仮想アシスタントは、サンプル発話を用いてこの意図を判断し得る。一例として、「私の預金口座の残高はどうなっていますか?」といったサンプル発話に基づいてlookupBalanceと呼ばれるアプリケーションが呼出される。
【0005】
この段落に記載するアプローチは、追求され得たアプローチであるが、必ずしもこれまでに想到または追求されたアプローチではない。従って、別段の指示がない限り、この段落に記載するアプローチはいずれも、単にこの段落に包含されているというだけで従来技術としてみなされるものと想定されるべきではない。
【0006】
実施形態は、添付図面の図における限定を目的としたものではなく例として示されるものである。本開示において「ある」または「1つの」実施形態について言及する場合、必ずしも同じ実施形態を指すものではなく、少なくとも1つを意味することに留意されたい。
【図面の簡単な説明】
【0007】
図1】1つ以上の実施形態に従ったシステムを示す図である。
図2】1つ以上の実施形態に従った、仮想アシスタントを用いて音声記録にドリルバックするための例示的な動作のセットを示す図である。
図3】1つ以上の実施形態に従った、仮想アシスタントプラットフォームを用いる例示的なデバイスを示す図である。
図4】1つ以上の実施形態に従ったコンピュータシステムを示すブロック図である。
【発明を実施するための形態】
【0008】
詳細な説明
以下の記載では、説明を目的として、完全な理解を提供するために多数の具体的な詳細が述べられる。1つ以上の実施形態は、これらの具体的な詳細なしに実施され得る。一実施形態に記載される特徴は別の実施形態において記載される特徴と組合わされてもよい。いくつかの例では、本発明を不必要に不明瞭にするのを避けるために周知の構造およびデバイスはブロック図の形態で説明する。
【0009】
1.概要
2.仮想アシスタントシステム
3.仮想アシスタントにおける音声記録へのドリルバック
4.例示的な実施形態
5.その他:拡張例
6.ハードウェア概要
1.概要
1つ以上の実施形態は、タスクを構成するかまたはスケジューリングするために用いられた予め受信済みの音声入力を再生する。ある例では、仮想アシスタントは、タスクを実行するために、音声入力を介してユーザから初期コマンドを受信する。タスクは、例えば、特定の時刻に何かを行なうようにリマインダを設定することを含み得る。仮想アシスタントは、音声入力を当該タスクに対応する情報に関連付けて記憶する。タスクを実行した後、仮想アシスタントは、初期コマンドに対応する追加情報を提供するための要求を受信する。仮想アシスタントは、タスクに対応する情報と音声入力との間の記憶済みマッピングに基づいて、記憶済み音声入力を識別する。次いで、仮想アシスタントは、ユーザから受信した音声入力をユーザに対して再生する。
【0010】
音声入力の記憶および再生は、仮想アシスタントによって実行されるタスクが不十分および/または不正確である場合には有用であり得る。ある例では、ユーザが声により発した初期コマンドは、「午後5時にジョー(Joe)に電話するよう私にリマインドして下さい」を含む。仮想アシスタントは、初期コマンドを誤って解釈し、代わりに、「これはモー(Mo)に電話するためのリマインダです」と述べるリマインダを午後5時に再生する。ユーザは、このリマインダを認識し得ないので、初期コマンドの再生を要求する可能性がある。ユーザから受信された初期コマンドが当該ユーザに対して再生されると、ユーザは、リマインダが「モー」(Mo)ではなく「ジョー」(Joe)に電話するためのものであることを理解することができる。初期コマンドはまた、仮想アシスタントによって再生されたリマインダに含まれていなかった詳細を指定し得る。ある例では、初期コマンドは、「住宅の販売について話をするためにラリー(Larry)に電話するよう私にリマインドして下さい」と述べていた可能性があるが、仮想アシスタントによって再生されるリマインダは、「これはラリー(Larry)に電話するためのリマインダです」と述べるだけであった可能性もある。従って、仮想アシスタントによって初期コマンドを記憶および再生することは、ユーザがリマインダタスクに関連する追加情報を得るのに役立つ。
【0011】
別の例では、ユーザが声により発した初期コマンドは、「私の食料品リストにおやつ(treat)を追加して下さい」を含む。仮想アシスタントは、この初期コマンドを誤って解釈し、ユーザの食料品リストに「小麦」(wheat)を追加してしまう。後になって、ユーザが食料品リストを見直して、食料品リスト上に「小麦」(wheat)を見付けると、ユーザは、食料品リスト内の「小麦」(wheat)エントリに関する追加情報を要求する。仮想アシスタントは、「小麦」(wheat)エントリと記憶済みの初期コマンドとの間の記憶済みマッピングに基づいて、再生に関する初期コマンドを識別する。システムは、「私の食料品リストにおやつ(treat)を追加して下さい」というユーザの初期コマンドを再生する。このことは、購入すべき正しいアイテムをユーザが識別するのに役立つ。
【0012】
1つ以上の実施形態は、ユーザからの初期コマンドの受信に関連付けられた任意のコンテキスト関連情報を再生または提示する。初期コマンドを再生する代わりに、または初期コマンドを再生することに加えて、仮想アシスタントは、(a)初期コマンドが受信されたときのユーザおよび/または仮想アシスタントのジオロケーション、または(b)初期コマンドが受信された時刻、を提示し得る。仮想アシスタントは、初期コマンドが受信された時刻に対応するデバイス情報を提示し得る。デバイス情報は、例えば、初期コマンドが受信されたときに実行されているアプリケーションのセット、初期コマンドの受信前にユーザがアクセスした最後のアプリケーション、または、初期コマンドが受信されたときのデバイスの構成、を含み得る。
【0013】
本明細書および/または特許請求の範囲に記載される1つ以上の実施形態は、この概要の項に含まれない可能性もある。
【0014】
2.仮想アシスタントシステム
図1は、1つ以上の実施形態に従ったシステム100を示す。図1に示すように、システム100は、クエリシステム102、ユーザ通信デバイス118、およびデータリポジトリ126を含む。1つ以上の実施形態では、システム100は、図1に示すコンポーネントよりも多い数または少ない数のコンポーネントを含み得る。図1に示すコンポーネントは、互いにローカルであってもよく、または互いからリモートであってもよい。図1に示すコンポーネントはソフトウェアおよび/またはハードウェアにおいて実装され得る。各コンポーネントは複数のアプリケーションおよび/またはマシンにわたって分散され得る。複数のコンポーネントは1つのアプリケーションおよび/またはマシンに組合わされてもよい。1つのコンポーネントに関して説明される動作が別のコンポーネントによって代わりに実行されてもよい。
【0015】
1つ以上の実施形態では、システム100は、ユーザ124からの入力に基づいてタスクを実行する。例示的なタスクは、旅行手配を行なうタスク、指示を与えるタスク、要求された画像を表示するタスク、リマインダを設定するタスク、ショッピングリストを作成するタスク、およびそれらのリストにアイテムを追加するタスクを含む。あるタスク内の1つ以上のステップは、ユーザ124との対話に基づいて実行されてもよい。対話は、ユーザ124から受信される入力と、システム100によって生成される出力とを含み得る。対話はユーザ124からの初期要求を含み得る。対話は、ユーザ要求を解決するシステム100からの応答を含み得る。対話は、ユーザ124からの追加情報を求めるためにシステム100によって生成される要求を含み得る。
【0016】
1つ以上の実施形態では、ユーザ通信デバイス118は、ユーザ124との通信を容易にするように構成されたハードウェアおよび/またはソフトウェアを含む。ユーザ通信デバイス118はユーザ124から情報を受信し得る。ユーザ通信デバイス118は、情報をユーザ124に送信し得る。ユーザ通信デバイスは、音声インターフェイス120および/または視覚インターフェイス122を介するユーザ124との通信を容易にし得る。ユーザ通信デバイス118は、クエリシステム102に通信可能に結合される。
【0017】
ある実施形態では、ユーザ通信デバイス118は1つ以上のデジタルデバイス上に実装される。「デジタルデバイス」という語は、一般に、プロセッサを含む任意のハードウェアデバイスを指す。デジタルデバイスは、アプリケーションまたは仮想マシンを実行する物理デバイスを指し得る。デジタルデバイスの例として、コンピュータ、タブレット、ラップトップ、デスクトップ、ネットブック、サーバ、ウェブサーバ、ネットワークポリシーサーバ、プロキシサーバ、汎用マシン、特定機能のハードウェアデバイス、ハードウェアルータ、ハードウェアスイッチ、ハードウェアファイアウォール、ハードウェアファイアウォール、ハードウェアネットワークアドレストランスレータ(network address translator:NAT)、ハードウェアロードバランサ、メインフレーム、テレビジョン、コンテンツ受信機、セットトップボックス、プリンタ、携帯電話機、スマートフォン、携帯情報端末(personal digital assistant:PDA)、無線受信機および/または送信機、基地局、通信管理デバイス、ルータ、スイッチ、コントローラ、アクセスポイント、および/またはクライアントデバイスが含まれる。
【0018】
ある実施形態では、ユーザ通信デバイス118はスマートスピーカである。スマートスピーカはユーザ124から音声データを受信する。スマートスピーカは音声を再生する。スマートスピーカは、クエリシステム102との間で情報をやり取りする。スマートスピーカは、独立型のデバイスとして、またはスマートフォン、タブレットもしくはコンピュータ等のスマートデバイスの一部として、実装され得る。
【0019】
1つ以上の実施形態では、音声インターフェイス120は、ユーザ124とユーザ通信デバイス118との間の音声通信を容易にするように構成されたハードウェアおよび/またはソフトウェアを指す。音声インターフェイス120は、音声を再生するためのスピーカを含み得る。再生された音声は、会話を含む口頭での質問および回答を含み得る。音声インターフェイスは、音声を受信するためのマイクロフォンを含み得る。受信された音声は、ユーザ124から受信した要求および他の情報を含み得る。
【0020】
1つ以上の実施形態では、視覚インターフェイス122は、ユーザとユーザ通信デバイス118との間の視覚通信を容易にするように構成されたハードウェアおよび/またはソフトウェアを指す。視覚インターフェイス122は、ユーザインターフェイス要素をレンダリングし、当該ユーザインターフェイス要素を介して入力を受信する。視覚インターフェイスの例は、グラフィカルユーザインターフェイス(graphical user interface:GUI)およびコマンドラインインターフェイス(command line interface:CLI)を含む。ユーザインターフェイス要素の例として、チェックボックス、ラジオボタン、ドロップダウンリスト、リストボックス、ボタン、トグル、テキストフィールド、日付および時刻セレクタ、コマンドライン、スライダ、ページ、およびフォームが含まれる。
【0021】
視覚インターフェイス122はメッセージングインターフェイスを提示し得る。メッセージングインターフェイスは、(例えば、ユーザ通信デバイス118に結合されたキーボードおよび/または視覚インターフェイスを介して表示されるソフトキーボードを介して)ユーザからのタイプ入力を受付けるために用いられ得る。メッセージングインターフェイスは、ユーザ124に対してテキストを表示するために用いられてもよい。視覚インターフェイス122は、地図および写真等の画像を表示するための機能を含み得る。視覚インターフェイス122は、画像をアップロードするための機能を含み得る。ある例として、ユーザ124は、動物の写真を「これは何ですか?」というテキストともにアップロードする。
【0022】
ある実施形態では、クエリシステム102は、ユーザ通信デバイス118を介したユーザ124からの入力に応答して1つ以上のタスクを実行するためのシステムである。クエリシステム102は、ユーザ通信デバイス118からボイス入力、テキスト入力、および/または画像を受信し得る。
【0023】
クエリシステム102は、スピーチ認識技術を用いてボイス入力をテキストに変換するためのスピーチ認識コンポーネント108を含み得る。スピーチ認識コンポーネント108は、受信したボイス入力をデジタル化および/またはフィルタリングし得る。スピーチ認識コンポーネント108は、ボイス入力を記憶済みテンプレートサウンドサンプルと比較して、単語または句を識別し得る。スピーチ認識コンポーネント108は、ボイス入力を、特定の言語で用いられるサウンドと比較するためのコンポーネントに分離し得る。
【0024】
ある実施形態では、スピーチ認識コンポーネント108のうち1つ以上のコンポーネントは機械学習エンジン110を用いる。特に、機械学習エンジン110は、スピーチを認識し、それに関連する意味を判断するために用いられてもよい。機械学習は、変動する入力を含む問題を解決するための、コンピュータにより実装されたユーザ独立型プロセスに対処する人工知能の分野における様々な技術を含む。
【0025】
いくつかの実施形態では、機械学習エンジン110は、1つ以上の動作を実行するように機械学習モデル112をトレーニングする。機械学習モデル112をトレーニングする場合、機械学習モデル112への1つ以上の入力を前提として、対応する出力を計算する関数を生成するために、トレーニングデータを用いる。出力は、従来の機械学習に基づく予測に対応し得る。ある実施形態では、出力は、提供された入力に割当てられたラベル、分類、および/またはカテゴリ化を含む。機械学習モデル112は、所望の動作(例えば、入力のラベル付け、分類、および/またはカテゴリ化)を実行するための学習済みモデルに対応する。特定の例として、トレーニングは、特定のテキストまたは分離した語彙をシステムに読込ませることを個々の話者に実行させることを含み得る。システムは、話者の特定のボイスを分析し、それを用いて、その人のスピーチの認識を微調整する。
【0026】
ある実施形態では、機械学習エンジン110は、教師あり学習、半教師あり学習、教師なし学習、強化学習、および/もしくは別のトレーニング方法、またはそれらの組合せを用いてもよい。教師あり学習では、ラベル付きトレーニングデータは入力/出力の対を含み、この入力/出力の対では、各入力が、監視信号とも称される所望の出力(例えば、ラベル、分類、および/またはカテゴリ化)でラベル付けされている。半教師あり学習では、いくつかの入力は監視信号に関連付けられており、他の入力は監視信号に関連付けられていない。教師なし学習では、トレーニングデータは監視信号を含まない。強化学習はフィードバックシステムを用いる。このフィードバックシステムでは、機械学習エンジン110が(例えば、1つ以上の予め定義された性能基準に従って特定のシナリオにおける性能を最適化するために)特定の問題を解決しようと試みるプロセスにおいて正および/または負の強化を受取る。ある実施形態では、機械学習エンジン110は、最初に教師あり学習を用いて機械学習モデル112をトレーニングし、次いで、教師なし学習を用いて機械学習モデル112を継続的に更新する。
【0027】
ある実施形態では、機械学習エンジン110は、多くの様々な技術を用いて、入力をラベル付け、分類、および/またはカテゴリ化し得る。機械学習エンジン110は、入力を、当該入力の1つ以上の特性(「特徴」)を記述する特徴ベクトルに変換し得る。機械学習エンジン110は、特徴ベクトルに基づいて当該入力をラベル付け、分類、および/またはカテゴリ化し得る。代替的または付加的には、機械学習エンジン110は、入力における共通性を識別するためにクラスタリング(クラスタ分析とも称される)を用いてもよい。機械学習エンジン110は、それらの共通性に基づいて入力をグループ化(すなわち、クラスタリング)し得る。機械学習エンジン110は、階層クラスタリング、k平均クラスタリング、および/もしくは別のクラスタリング方法またはそれらの組合せを用いてもよい。例えば、機械学習エンジン110は、1つ以上のパースされたクエリ語を入力として受信し得るとともに、受信されたパース済みのクエリ語間の共通性に基づいて、サーチに含めるべき1つ以上の追加のパース済みクエリ語を識別し得る。ある実施形態では、機械学習エンジン110は人工ニューラルネットワークを含む。人工ニューラルネットワークは、(人工ニューロンとも称される)複数のノードとノード間のエッジとを含む。エッジは、機械学習が進行するのに応じて機械学習エンジン110が調整する、ノード間の接続の強度を表わす対応する重みに関連付けられ得る。代替的または付加的には、機械学習エンジン110はサポートベクトルマシンを含み得る。サポートベクトルマシンは、入力をベクトルとして表わす。機械学習エンジン110は、ベクトルに基づいて入力をラベル付け、分類、および/またはカテゴリ化し得る。代替的または付加的には、機械学習エンジン110は、入力をラベル付け、分類、および/またはカテゴリ化するためにナイーブベイズ分類器を用いてもよい。代替的または付加的には、特定の入力を前提として、機械学習モデルは、決定木を適用して所与の入力についての出力を予測してもよい。代替的または付加的には、機械学習エンジン110は、相互排他的なオプションの固定セットの間で入力をラベル付け、分類、および/またはカテゴリ化することが不可能であるかまたは非実用的である状況においてファジー理論を適用してもよい。上述の機械学習モデル112および技術は、例示のみを目的として説明したものであって、1つ以上の実施形態を限定するものとして解釈されるべきではない。
【0028】
特定の例として、機械学習エンジン110は、隠れマルコフモデル(Hidden Markov Model:HMM)に基づき得る。HMMは一連のシンボルまたは量を出力し得る。スピーチ信号を区分的な定常信号または短期間の定常信号と見なすことができるので、HMMはスピーチ認識において用いられ得る。短い時間スケール(例えば、10ミリ秒)では、スピーチは定常プロセスとして近似させることができる。スピーチは、多くの確率的目的のためのマルコフモデルと考えることができる。
【0029】
HMMは、自動的にトレーニングされ得るとともに、使用するのが簡単でかつ計算的に実行可能である。スピーチ認識では、HMMは、多次元の実数値ベクトルのシーケンスを出力し得る。この場合、ベクトル出力は周期的(例えば、10ミリ秒毎)である。各ベクトルは、アルゴリズム(例えば、フーリエ変換)をスピーチの短時間ウィンドウに適用して最上位係数を用いることによって得られる係数を含み得る。各々の単語または音素は、異なる出力分布を有し得る。一連の単語または音素についての隠れマルコフモデルは、別個の単語または音素のための個々のトレーニング済み隠れマルコフモデルを連結することによって作成される。スピーチの復号は、最良の経路を見出すためにアルゴリズム(例えば、ビタビ(Viterbi)アルゴリズム)を用いてもよい。
【0030】
ニューラルネットワークはスピーチ認識において用いられてもよい。特に、ニューラルネットワークは、音素分類、多目的進化アルゴリズムによる音素分類、および孤立語認識等のスピーチ認識の多くの局面において用いられてきた。
【0031】
ニューラルネットワークは、スピーチ特徴セグメントの確率を推定するとともに自然かつ効率的な態様で判別トレーニングを可能にするために用いられ得る。特に、ニューラルネットワークは、前処理、特徴変換または次元削減、HMMベースの認識よりも前の工程において用いられ得る。代替的には、リカレントニューラルネットワーク(recurrent neural network:RNN)および/または時間遅延ニューラルネットワーク(Time Delay Neural Network:TDNN)が用いられてもよい。
【0032】
ある実施形態では、機械学習エンジン110が機械学習モデル112に様々な入力を適用するので、対応する出力は常に正確であるとは限らない。一例として、機械学習エンジン110は、教師あり学習を用いて機械学習モデル112をトレーニングし得る。機械学習モデル112をトレーニングした後、後続の入力がラベル付きトレーニングデータに含まれていた入力と同じであり、出力がトレーニングデータ内の監視信号と同じである場合、出力が正確であることは確実である。入力が、ラベル付きトレーニングデータに含まれていた入力とは異なる場合、機械学習エンジン110は、不正確であるかまたは精度が不確実である対応する出力を生成する可能性がある。所与の入力に関する特定の出力を生成することに加えて、機械学習エンジン110は、出力の精度に関する信頼度(またはその欠如)を表わす指標を生成するように構成され得る。信頼度指標は、数値スコア、ブール値、および/または、出力の精度に関する信頼度(またはその欠如)に対応する他の任意の種類の指標を含み得る。
【0033】
スピーチ認識コンポーネント108は、自然言語処理を用いて、音声入力から生成されたテキストに基づいて、1つ以上の実行可能コマンドを識別し得る。クエリシステム102は、テキストをパースして、当該テキストのうち1つ以上の関連部分を判断し得る。
【0034】
特に、スピーチ認識コンポーネントは、テキストをパースして、ウェイクワードまたはフレーズ(例えば、ユーザが仮想アシスタントにコマンドを発行するつもりであることを示すために用いられる単語)と、当該ウェイクワードの後に続くコマンドワードまたはフレーズの位置を特定し得る。クエリシステム102はコマンド内のキーワードを識別し得る。クエリシステム102は、コマンドを、クエリシステム102によって実行可能なタスクに関連付けられたテンプレート言語と比較し得る。
【0035】
ある実施形態では、クエリシステム102は、ユーザ通信デバイス118からリモートで実装される。クエリシステム102はクラウドネットワーク上で実行され得る。代替的には、クエリシステム102は、ユーザ通信デバイス118に対してローカルに実行され得る。クエリシステム102は、タスクを実行し得るか、または1つ以上の外部サーバから情報を検索し得る。一例として、クエリシステム102は、サードパーティのマップアプリケーションからトラフィックデータを検索し得る。
【0036】
ある実施形態では、クエリシステム102は、ユーザ通信デバイス118に関連付けられたコンテキスト情報を判断するコンテキスト情報コレクタ104を含む。コンテキスト情報コレクタ104は、ユーザ通信デバイス118からデータを受信し得る。一例として、クエリシステムは、全地球測位システム(Global Positioning System:GPS)機能または他のジオロケーションサービスを介してユーザ通信デバイスのロケーションを判断するためにユーザ通信デバイス118に対して問合せを行ない得る。別の例として、クエリシステム102は、ユーザ通信デバイス118の状態に関する情報を判断するためにユーザ通信デバイス102に対して問合せを行なってもよい。特に、クエリシステムは、初期コマンドが受信されたときに実行されているアプリケーションのセット、初期コマンドの受信前にユーザがアクセスした最後のアプリケーション、および/または、初期コマンドが受信されたときのデバイスの構成、を要求し得る。付加的または代替的には、クエリシステム102は、初期コマンドが受信された時刻を判断するためにユーザ通信デバイス118に対して問合せを行なってもよい。
【0037】
クエリシステムは、実行すべき動作を決定する際にユーザ入力履歴106に少なくとも部分的に依拠し得る。ある実施形態では、ユーザ入力履歴106は、1つ以上の対話の過程にわたるユーザ入力の記録である。ユーザ入力履歴106は、一連のボイス入力のシーケンスに関する情報を含み得る。ユーザ入力履歴106は、タイプ別にユーザ入力をカテゴリ化し得る。例えば、ユーザは木曜日の午後6時にショッピングリストを作成する。
【0038】
クエリシステム102は、受信した音声入力に基づいてコマンドを実行するためのコマンド実行コンポーネント116を含み得る。コマンド実行コンポーネント115は、コマンドを実行すること、および/または将来実行すべきコマンドをスケジューリングすることを含み得る。
【0039】
クエリシステム102は、音声入力記憶および検索コンポーネント114を含み得る。音声入力記憶および検索コンポーネント114は、音声入力の少なくとも一部分を音声記録データとして記憶する目的でデータリポジトリ126と通信してもよい。いくつかの実施形態では、音声入力記憶および検索コンポーネント114は、受信した音声入力の各々に関連付けられた音声記録データを記憶する。他の実施形態では、音声入力記憶および検索コンポーネント114は、受信した音声入力の特性に基づいて、音声入力に関連付けられた音声記録データを記憶する。例えば、音声入力記憶および検索コンポーネント114は、スピーチ認識コンポーネント108が音声入力の1つ以上の音素を決定することができなかったという判断、または、1つ以上の音素の決定に関連付けられた信頼度レベルが信頼度閾値を下回るという判断に応答して、音声記録データを記憶してもよい。別の例として、音声入力記憶および検索コンポーネント114は、当該コマンドが将来の実行(例えば、リマインダ)および/またはリストへのアイテムの追加のためにスケジューリングされるべきアクションに対応しているという判断に応答して、音声記録データを記憶してもよい。
【0040】
1つ以上の実施形態では、データリポジトリ126は、データを記憶するための任意のタイプの記憶ユニットおよび/またはデバイス(例えば、ファイルシステム、データベース、表の集まり、または他の任意の記憶機構)である。さらに、データリポジトリ126は複数の異なる記憶ユニットおよび/またはデバイスを含み得る。複数の異なる記憶ユニットおよび/またはデバイスは、同じタイプであってもなくてもよく、または、同じ物理的サイトに位置していても位置していなくてもよい。さらに、データリポジトリ126は、クエリシステム102および/またはユーザ通信デバイス118と同じコンピューティングシステム上で実装され得るかまたは実行され得る。代替的にはまたは付加的には、データリポジトリ126は、クエリシステム102および/またはユーザ通信デバイス118とは別個の記憶システムおよび/またはコンピューティングシステム上で実装または実行されてもよい。データリポジトリ126は、直接接続により、またはネットワークを介して、クエリシステム102および/またはユーザ通信デバイス118に通信可能に結合され得る。
【0041】
音声記録データ128は、ユーザ通信デバイスからユーザコマンドとして受信された音声記録の少なくとも一部分を含む。例えば、音声記録データは、受信された音声データの全体(例えば、ウェイクワードおよびコマンド)を含み得る。別の例として、音声記録データは、受信された音声データ全体を含まない可能性もある(例えば、ウェイクワードなしのコマンドを含み得る)。音声記録データは、ユーザ通信デバイスにおいて再生可能な任意のフォーマットで記憶され得る。
【0042】
コンテキスト情報130は、ユーザがコマンドを発行した時刻(例えば、音声記録がユーザ通信デバイス118からクエリシステム102に送信される時刻)における、ユーザ通信デバイス118および/またはユーザ124に関連するコンテキスト情報を含む。例として、コンテキスト情報は、コマンドが発行された時刻におけるユーザ通信デバイスのロケーションを示す位置データ、コマンドが発行された時刻に実行される他のアプリケーションおよび/もしくはコマンドの受信前に最後にアクセスされたアプリケーション、を示すアプリケーション情報、初期コマンドが受信されたときのデバイスの構成を示す構成情報、コマンドが受信された時刻および/もしくは日付を示すタイミング情報、ならびに/または、コマンドが受信された時刻におけるユーザ通信デバイスの状態を示す他の情報、を含み得る。
【0043】
スケジューリングされたアクション情報132は、受信された音声入力に基づいて将来の時刻に行なわれるようにスケジューリングされたアクションに関連付けられた情報を含み得る。例えば、スケジューリングされたアクション情報は、スケジューリングされたアクションに関連付けられたコマンド識別子、アクションが行われるべき時刻、または、スケジューリングされたアクションに関連付けられた他の情報を含み得る。
【0044】
マッピング情報134は、音声記録データおよび/またはコンテキスト情報を、ユーザが発行した特定のコマンドに関連付ける情報を含み得る。いくつかの実施形態では、マッピング情報は、特定の音声記録データおよび/または特定のコンテキストデータを特定のスケジューリングされたアクション情報に関連付ける。このデータは、特定のアクションの実行および/または特定のコマンドに関連付けられた情報についての要求に応答して、記憶済みの音声記録データおよび/またはコンテキスト情報を検索するために用いられ得る。
【0045】
3.仮想アシスタントにおける音声記録へのドリルバック
図2は、1つ以上の実施形態に従った、仮想アシスタントを用いて元の音声記録にドリルバックするための動作の例示的なセットを示す。図2に示す1つ以上の動作は、すべて一緒に修正、再配置または省略され得る。従って、図2に示す動作の特定のシーケンスは、1つ以上の実施形態の範囲を限定するものとして解釈されるべきではない。
【0046】
ある実施形態では、クエリシステムは、アクションを実行するための要求を含む音声入力を受信し得る(動作202)。音声入力は、(例えば、上述したようなユーザ通信デバイスを介する)マイクロフォンシステム入力を介して受信される。いくつかの実施形態では、音声入力は、コマンド(システムにアクションを実行させる1つ以上の単語)に加えてウェイクワード(コマンドを受信するようシステムを準備する単語)を含む。いくつかの実施形態では、コマンドは、システムにアクションを実行させるが特定の即時フィードバックをユーザに提供しないタイプのコマンドであってもよい。
【0047】
システムは、音声入力をパースして、当該音声入力を複数のセクションに分割し得る。例えば、システムは、音声入力をウェイクワードセクションとコマンドセクションとに分割してもよい。いくつかの実施形態では、システムは、受信した音声入力をテキストに変換し得る。システムは、自然言語処理を用いて音声入力の1つ以上の(例えば、各々の)セクションを処理して、セクションのトランスクリプトを生成し得る。いくつかの実施形態では、システムは、トランスクライブされたセクションごとに、当該セクションのトランスクリプトに関連付けられた信頼度スコアを決定し得る。
【0048】
ある実施形態では、システムは、実行すべきアクションをスケジューリングする(動作204)。いくつかの実施形態では、実行すべきアクションをスケジューリングする動作は、受信した音声入力に基づいて実行すべきアクションを決定する動作を含み得る。いくつかの実施形態では、コマンドは、将来のある時刻においてシステムにアクションを実行させるタイプのコマンドであってもよい。特に、システムは、「次の木曜日の正午にジョン(John)に電話するよう私にリマインドして下さい」というコマンドを受信し得る。システムは、当該コマンドに応答して、次の木曜日の午後12時に「ジョンに電話する」というフレーズでユーザに促すことをシステムに行なわせるリマインダをスケジューリングし得る。いくつかの実施形態では、システムは、「リマインダがセットされました」または「了解です。リマインドします」等のフィードバックをユーザに提供し得るが、リマインダテキストがどんな形式になるかについての特定のフィードバックは提供しない可能性がある。
【0049】
別の例として、コマンドは、リストにエントリを追加するタイプのコマンドであり得る。特に、システムは、「牛乳を私の食料品リストに追加して下さい」というコマンドを受信し得る。これに応答して、システムは、リストアイテム「牛乳」をリストに追加し得る。いくつかの実施形態では、システムは、リストアイテムが何であるかを特定することなく、「了解です。それをあなたのリストに追加します」等のフィードバックをユーザに提供し得る。
【0050】
システムは、情報(例えば、ユーザおよび/またはユーザデバイスに関連付けられた音声入力および/またはコンテキスト情報のうち少なくとも一部分)をスケジューリングされたアクションに関連付けて記憶し得る(動作206)。システムは音声入力の少なくとも一部分を記憶し得る。例えば、システムは、音声入力の全体、音声入力のうちコマンドに対応する部分、音声入力のうちシステム上で動作するスピーチ・テキスト変換処理によって翻訳できない部分、および/または、音声入力の他の任意の部分を記憶し得る。代替的または付加的には、システムはコンテキスト情報を記憶してもよい。例えば、コンテキスト情報は、コマンドが発行された時刻におけるユーザ通信デバイスのロケーションを示す位置データ、コマンドが発行された時刻に実行される他のアプリケーション、および/もしくは、コマンドの受信前に最後にアクセスされたアプリケーション、を示すアプリケーション情報、初期コマンドが受信されたときのデバイスの構成を示す構成情報、コマンドが受信された時刻および/もしくは日付を示すタイミング情報、ならびに/または、コマンドにコンテキストを与えるのに有用な他の情報、を含み得る。
【0051】
いくつかの実施形態では、システムは、コマンドと、記憶された音声入力および/または記憶されたコンテキスト情報との間のマッピングを記憶する。例えば、各コマンドは、特定の識別子に関連付けられてもよく、識別子は、音声入力および/またはコンテキスト情報と組合わせて記憶されてもよい。
【0052】
いくつかの実施形態では、システムは、音声入力の1つ以上の特性に基づいて音声入力および/またはコンテキスト情報を記憶し得る。例えば、システムは、音声入力に関連付けられたコマンドタイプを判断し得る。システムは、コマンドタイプに基づいて音声入力および/またはコンテキスト情報を記憶すべきか否かを判断し得る。
【0053】
いくつかの実施形態では、システムは、音声入力のトランスクリプトの信頼度スコアに基づいて音声入力および/またはコンテキスト情報を記憶し得る。例えば、システムは、音声入力の少なくとも1つのセクションに関連付けられた信頼度スコアが特定の閾値を超えないという判断に基づいて、音声入力および/またはコンテキスト情報を記憶してもよい。
【0054】
いくつかの実施形態では、音声入力の少なくとも一部分を記憶することは、音声入力の全体を記憶することを含む。いくつかの実施形態では、音声入力の少なくとも一部分を記憶することは、コマンドに関連付けられた音声入力の特定の部分を決定するために音声入力をパースすることと、当該コマンドに関連付けられた音声入力の当該一部分のみを記憶することとを含む。
【0055】
システムは、ユーザが要求したアクションを実行し得る(動作208)。すなわち、システムは、音声入力のコマンド部分に従ってアクションを実行し得る。いくつかの実施形態では、システムは、音声入力を受信するのとほぼ同時にアクションを実行してもよい。例えば、「牛乳を私の食料品リストに追加して下さい」というコマンドを含む音声入力の受信に応答して、システムは、アイテム「牛乳」を食料品リストに追加してもよい。いくつかの実施形態では、システムは、音声入力を受信した後の時刻にアクションを実行してもよい。例えば、システムは、「次に木曜日の正午にジョンに電話をするよう私にリマインドして下さい」というコマンドを含む音声入力を受信し得る。システムは、コマンドに指定されている時刻(例えば、木曜日の正午)までアクションを実行する(例えば、リマインダを与える)のを控えてもよい。指定された時刻に、システムは、ジョンに電話することをユーザにリマインドするアクションを実行する。例えば、システムは、画像によるリマインダおよび/または音声によるリマインダをユーザに提示し得る。
【0056】
いくつかの実施形態では、アクションを実行する動作は、アクションに関連付けられた音声入力またはコンテキスト情報のうち1つ以上が記憶されることを示す動作を含む。例えば、システムは、アクションに関連付けられたコンテキスト情報および/または音声入力データが記憶されていることを示すアイコンを表示してもよい。
【0057】
アクションの実行に応答して、システムは、記憶されたコンテキスト情報および/または音声入力データを提示するための要求を受信し得る(動作210)。いくつかの実施形態では、要求は、表示されたアイコンをクリックするかまたは作動させることを含み得る。代替的または付加的には、要求は、記憶された情報を提示するために次に行なわれる音声による要求を含み得る。一例として、システムがアクションを実行した後、ユーザは、「私の元の音声を再生して下さい」というボイスコマンドを発行してもよい。
【0058】
いくつかの実施形態では、システムは、記憶されたコンテキスト情報および/または音声入力データを提示するための要求を受信すると、当該システムのためのトレーニングデータで用いるために、音声入力のうち少なくとも記憶済み部分にマーク付けし得る。すなわち、システムは、要求に基づいて、トランスクリプションにエラーがあると判断し得る。音声入力は、将来のトランスクリプションの精度を高めるのを助けるためにトレーニングで用いられてもよい。
【0059】
記憶されたコンテキスト情報および/または音声入力データを提示するための要求に応答して、システムは、記憶されたコンテキスト情報および/または音声入力データを検索し得る(動作212)。システムは、それより以前に行なわれた直近アクションとそのアクションに関連付けられた識別子とを判定し得る。システムは、記憶されたマッピング情報に基づいて、アクションに関連付けられたコンテキスト情報および/または音声入力データを判定し得る。この関連付けに基づいて、システムは、コンテキスト情報および/または音声入力データをデータリポジトリから読取ること等により、既知の手段によってコンテキスト情報および/または音声入力データを検索し得る。
【0060】
システムは、検索されたコンテキスト情報および/または音声入力データを提示し得る(動作214)。コンテキスト情報および/または音声入力データを提示することは、検索された音声データの少なくとも一部分を再生することを含む。いくつかの実施形態では、システムは、検索された音声データの全体を再生し得る。代替的には、システムは、コマンドに対応する検索された音声データの一部分を再生してもよい。付加的または代替的には、コンテキスト情報および/または音声入力データを提示することは、検索されたコンテキスト情報を提示することを含む。検索されたコンテキスト情報は、ディスプレイ上に視覚的に提示され、(例えば、テキスト・スピーチ変換アルゴリズムを用いて)聴覚的に再生され、および/または、メッセージ(例えば、電子メール、テキストメッセージ、ログファイルまたは他のメッセージ)を介して提供され得る。
【0061】
4.例示的な実施形態
明確にする目的で詳細な例を以下に記載する。以下に記載するコンポーネントおよび/または動作は、特定の実施形態に適用可能でない可能性のある1つの具体例として理解されるべきである。従って、以下に記載するコンポーネントおよび/または動作は、特許請求のいずれの範囲をも限定するものとして解釈されるべきではない。
【0062】
図3は、仮想アシスタントプラットフォームを用いる例示的なデバイス300を示す。ユーザは、「次の木曜日の正午にジョン(John)に電話するように私にリマインドして下さい」というコマンドを含む音声入力を事前に提供していた。
【0063】
仮想アシスタントプラットフォーム304は、音声入力に対してスピーチ・テキスト分析を実行する。スピーチ・テキスト変換プロセスにおけるトランスクリプションエラーにより、仮想アシスタントプラットフォームは、ユーザが受信したコマンドを「次の木曜日の正午にポール・フォーン(Paul Fawn)するように私にリマインドして下さい」とトランスクライブすることとなる。従って、仮想アシスタントプラットフォームは、木曜日の正午についてのリマインダを「ポール・フォーン(Paul Fawn)」というテキストを含めてスケジューリングする。システムはまた、音声入力と、当該音声入力が受信された時刻におけるデバイスに関連付けられたコンテキスト情報とを記憶する。
【0064】
木曜日の正午に、仮想アシスタントプラットフォーム304は、スケジューリングされたリマインダ306をディスプレイ302上に提示することをデバイス300に実行させる。リマインダ306は、誤まってトランスクライブされたテキスト「ポール・フォーン(Paul Fawn)」を含む。リマインダ306はアイコン308を含む。アイコン308は、仮想アシスタントプラットフォームが当該リマインダをスケジューリングする原因となった音声入力を当該仮想アシスタントプラットフォームが記憶したことを示すものである。リマインダ306はアイコン310を含む。アイコン310は、音声入力が受信された時刻に、仮想アシスタントプラットフォームが、デバイスに関連付けられたコンテキスト情報を記憶したことを示すものである。
【0065】
ユーザは、アイコン308をクリックするかもしくは作動させることによって、および/または、「元の音声を再生する」等のボイスコマンドを発行することによって、プラットフォームがリマインダをスケジューリングする原因となった音声入力を再生することを要求してもよい。このようなコマンドに応答して、仮想アシスタント304は、記憶された音声入力を検索して再生し得る。
【0066】
ユーザは、アイコン310をクリックするかもしくは作動させることによって、および/または、「コンテキスト情報を示して下さい」等のボイスコマンドを発行することによって、音声入力が受信された時刻に、デバイスに関連付けられたコンテキスト情報を提示することを要求し得る。仮想アシスタント304は、そのようなコマンドに応答して、記憶済みのコンテキスト情報を検索して表示してもよい。
【0067】
5.その他:拡張例
いくつかの実施形態は、ハードウェアプロセッサを含む1つ以上のデバイスを有するシステムを対象としており、当該1つ以上のデバイスは、本明細書に記載および/または添付の特許請求の範囲のいずれかに記載の動作のいずれかを実行するように構成されている。
【0068】
ある実施形態では、非一時的なコンピュータ可読記憶媒体は、1つ以上のハードウェアプロセッサによって実行されると、本明細書に記載および/または添付の特許請求の範囲のいずれかに記載の動作のいずれかを実行させる命令を含む。
【0069】
本明細書に記載の特徴および機能のいずれかの組合わせが、1つ以上の実施形態に従って用いられ得る。上述の明細書では、実施形態は、実装例ごとに異なり得る多数の具体的な詳細を参照して説明されてきた。従って、明細書および添付の図面は、限定的な意味ではなく例示的なものと見なされるべきである。本発明の範囲の唯一の排他的な指標、および本発明の範囲であることが出願人によって意図されるものは、後に任意に行なわれる補正を含めて、そのような特許請求の範囲が生じる特定の形態での、本出願から生じる特許請求の範囲のセットの文字通りかつ同等の範囲である。
【0070】
6.ハードウェア概要
一実施形態に従うと、ここに記載する技術は、1つ以上の専用コンピューティングデバイスによって実現される。これらの専用コンピューティングデバイスは、これらの技術を実行するためにハードワイヤードされてもよく、または、これらの技術を実行するように永続的にプログラムされた1つ以上の特定用途向け集積回路(application-specific integrated circuit:ASIC)、フィールドプログラマブルゲートアレイ(field programmable gate array:FPGA)、もしくはネットワーク処理ユニット(network processing unit:NPU)等のデジタル電子デバイスを含んでいてもよく、または、ファームウェア、メモリ、他のストレージ、もしくはそれらの組合せにおいてプログラム命令に従ってこれらの技術を実行するようにプログラムされた1つ以上の汎用ハードウェアプロセッサを含んでいてもよい。このような専用コンピューティングデバイスはまた、これらの技術を達成するために、カスタムハードワイヤードロジック、ASIC、FPGA、またはNPUをカスタムプログラミングと組合わせてもよい。当該専用コンピューティングデバイスは、デスクトップコンピュータシステム、ポータブルコンピュータシステム、手持ち型デバイス、ネットワーキングデバイス、または、これらの技術を実現するためにハードワイヤードロジックおよび/もしくはプログラムロジックを組込んだ他の任意のデバイスであってもよい。
【0071】
例えば、図4は、本発明の一実施形態が実現され得るコンピュータシステム400を示すブロック図である。コンピュータシステム400は、情報を通信するためのバス402または他の通信機構と、情報を処理するためにバス402と結合されるハードウェアプロセッサ404とを含む。ハードウェアプロセッサ404は、例えば、汎用マイクロプロセッサであってもよい。
【0072】
コンピュータシステム400はまた、プロセッサ404によって実行されるべき命令および情報を格納するためにバス402に結合された、ランダムアクセスメモリ(random access memory:RAM)または他の動的ストレージデバイス等のメインメモリ406を含む。メインメモリ406はまた、プロセッサ404によって実行されるべき命令の実行中に一時的な変数または他の中間情報を格納するために使用されてもよい。このような命令は、プロセッサ404にアクセス可能な非一時的記憶媒体に格納されると、コンピュータシステム400を、命令で特定された動作を実行するようにカスタマイズされた専用マシンにする。
【0073】
コンピュータシステム400はさらに、プロセッサ404のための静的情報および命令を格納するためにバス402に結合された読出専用メモリ(read only memory:ROM)408または他の静的ストレージデバイスを含む。磁気ディスクまたは光ディスク等のストレージデバイス410が設けられ、情報および命令を格納するためにバス402に結合される。
【0074】
コンピュータシステム400は、情報をコンピュータユーザへ表示するための陰極線管(cathode ray tube:CRT)等のディスプレイ412に、バス402を介して結合され得る。英数字キーおよび他のキーを含む入力デバイス414が、情報およびコマンド選択をプロセッサ404へ通信するためにバス402に結合される。別のタイプのユーザ入力デバイスは、方向情報およびコマンド選択をプロセッサ404へ通信するための、ならびに、ディスプレイ412上のカーソル移動を制御するための、マウス、トラックボール、またはカーソル方向キー等のカーソル制御装置416である。この入力デバイスは典型的には、第1の軸(例えばx)および第2の軸(例えばy)という2つの軸において2つの自由度を有しており、これにより、当該デバイスが平面における位置を特定することを可能にする。
【0075】
コンピュータシステム400は、コンピュータシステムと組合されることでコンピュータシステム400を専用マシンにするかまたは専用マシンになるようプログラムする、カスタマイズされたハードワイヤードロジック、1つ以上のASICまたはFPGA、ファームウェアおよび/またはプログラムロジックを用いて、ここに説明された技術を実現し得る。一実施形態に従うと、本明細書中の技術は、メインメモリ406に含まれる1つ以上の命令の1つ以上のシーケンスをプロセッサ404が実行することに応答して、コンピュータシステム400によって実行される。このような命令はストレージデバイス410等の別の記憶媒体からメインメモリ406に読込まれてもよい。メインメモリ406に含まれる命令のシーケンスを実行することにより、ここに説明されたプロセスステップをプロセッサ404に実行させる。代替的な実施形態では、ハードワイヤード回路が、ソフトウェア命令の代わりに、またはソフトウェア命令と組合わせて用いられてもよい。
【0076】
本明細書中において用いられる「記憶媒体」という語は、マシンを特定の態様で動作させるデータおよび/または命令を格納する任意の非一時的媒体を指す。そのような記憶媒体は不揮発性媒体および/または揮発性媒体を含み得る。不揮発性媒体は、例えば、ストレージデバイス410等の光ディスクまたは磁気ディスクを含む。揮発性媒体はメインメモリ406等のダイナミックメモリを含む。記憶媒体の一般的な形態は、例えば、フロッピー(登録商標)ディスク、フレキシブルディスク、ハードディスク、ソリッドステートドライブ、磁気テープ、または他の任意の磁気データ記憶媒体、CD-ROM、他の任意の光学データ記憶媒体、穴のパターンを有する任意の物理的媒体、RAM、PROM、EPROM、FLASH-EPROM、NVRAM、他の任意のメモリチップまたはカートリッジ、連想メモリ(content-addressable memory:CAM)、および3値連想メモリ(ternary content-addressable memory:TCAM)を含む。
【0077】
記憶媒体は伝送媒体とは異なるが、伝送媒体とともに用いられてもよい。伝送媒体は、記憶媒体間の情報の転送に関与する。例えば、伝送媒体は、バス402を含むワイヤを含む、同軸ケーブル、銅線、および光ファイバを含む。伝送媒体はまた、電波通信および赤外線データ通信時に生成されるような音波または光波の形態を取ることもできる。
【0078】
さまざまな形態の媒体が、1つ以上の命令の1つ以上のシーケンスを実行のためにプロセッサ404へ搬送することに関与し得る。例えば、命令は最初、リモートコンピュータの磁気ディスクまたはソリッドステートドライブ上で搬送され得る。リモートコンピュータは、そのダイナミックメモリに命令をロードし、モデムを用いて電話回線を介して命令を送信し得る。コンピュータシステム400に対してローカルなモデムが、電話回線を介してデータを受信し、赤外線送信機を用いてデータを赤外線信号に変換し得る。赤外線検出器が、赤外線信号で搬送されたデータを受信し得るとともに、適切な回路がデータをバス402上に配置し得る。バス402はデータをメインメモリ406へ搬送し、そこから、プロセッサ404が命令を取出して実行する。メインメモリ406が受信した命令は、任意には、プロセッサ404による実行の前または後にストレージデバイス410上に格納されてもよい。
【0079】
コンピュータシステム400はまた、バス402に結合された通信インターフェイス418を含む。通信インターフェイス418は、ローカルネットワーク422に接続されたネットワークリンク420への双方向データ通信結合を提供する。例えば、通信インターフェイス418は、総合サービスデジタル網(integrated services digital network:ISDN)カード、ケーブルモデム、衛星モデム、または、対応するタイプの電話回線へのデータ通信接続を提供するためのモデムであってもよい。別の例として、通信インターフェイス418は、互換性のあるLANへのデータ通信接続を提供するためのローカルエリアネットワーク(local area network:LAN)カードであってもよい。無線リンクが実現されてもよい。このような如何なる実現例でも、通信インターフェイス418は、さまざまなタイプの情報を表わすデジタルデータストリームを搬送する電気信号、電磁信号、または光信号を送受信する。
【0080】
ネットワークリンク420は典型的には、1つ以上のネットワークを通して他のデータデバイスにデータ通信を提供する。例えば、ネットワークリンク420は、ローカルネットワーク422を介して、ホストコンピュータ424に、またはインターネットサービスプロバイダ(Internet Service Provider:ISP)426によって操作されるデータ機器に接続し得る。ISP426は次に、現在一般的に「インターネット」428と称されている全世界的パケットデータ通信ネットワークを通してデータ通信サービスを提供する。ローカルネットワーク422およびインターネット428はともに、デジタルデータストリームを搬送する電気信号、電磁信号または光信号を用いる。さまざまなネットワークを通る信号、および、通信インターフェイス418を通るネットワークリンク420上の信号はコンピュータシステム400との間でデジタルデータを搬送するものであって、伝送媒体の例示的な形態である。
【0081】
コンピュータシステム400は、ネットワーク、ネットワークリンク420および通信インターフェイス418を通してメッセージの送信とプログラムコードを含むデータの受信とを行ない得る。インターネットの例では、サーバ430が、インターネット428、ISP426、ローカルネットワーク422、および通信インターフェイス418を通して、アプリケーションプログラムのための要求されたコードを送信し得る。
【0082】
受信されたコードは、受信時にプロセッサ404によって実行されてもよく、および/または、後で実行するためにストレージデバイス410または他の不揮発性ストレージに格納されてもよい。
【0083】
上述の明細書では、本発明の実施形態は、実現例によって異なり得る多くの具体的詳細を参照して説明されてきた。従って、明細書および添付の図面は、限定的な意味ではなく例示的な意味で考慮されるべきである。本発明の範囲の唯一かつ排他的な指標、および、出願人によって本発明の範囲となるよう意図されるものは、後で任意に行なわれる補正を含めて、そのような特許請求の範囲が生じる特定の形態での、本願から生じる特許請求の範囲のセットの文字通りかつ同等の範囲である。
図1
図2
図3
図4
【国際調査報告】