本特許出願は、2015年12月7日に出願された米国特許仮出願第62/264,228号、2016年4月28日に出願された同第62/329,055号、2016年5月20日に出願された同第62/339,547号および2016年10月24日に出願された米国特許出願第15/332,494号の利益およびこれらに対する優先権を主張し、各出願は、参照によって、その全体が本願明細書に組み込まれるものとする。
バーチャルパーソナルアシスタント(VPA)は、人が、自然言語を用いてコンピュータ駆動装置に話し掛けることによって、その装置と情報をやりとりすることを可能にする電子ツールである。「自然言語」とは、人間同士で互いに話されている日常の言語である。自然言語は、コンピュータプログラミング言語等の人工言語とは対照的に、時間と利用を経て発展してきた言語である。バーチャルパーソナルアシスタントは、典型的には、スマートフォン、自動車またはカスタマーサービスシステム等の他の装置に組み込まれる。一般的に、このような装置を使用する人は、「今日の天気は何ですか」または「レストランへの道を教えて」等の質問またはコマンドを話すかまたはタイプすることができる。バーチャルパーソナルアシスタントは、音声認識を用いて話し言葉を解釈することができ、および人工知能を用いて、話し手の意図、すなわち、話し手が、その装置に何をして欲しいかを判断することができる。バーチャルパーソナルアシスタントは、実行すべき装置にこの情報を送ることができる。
一般的に、バーチャルパーソナルアシスタントは、話し言葉および文字を入力として受け入れる。しかし、人のコミュニケーションは、言葉のみよりもはるかに複雑である。例えば、会話中、話している人は、声の抑揚、顔の表情、話し手の見る方向、ボディランゲージ、指さしまたはジェスチャー等に反応する可能性がある。すなわち、人は、言葉に加えて、感情的合図および/または身体的合図も介してコミュニケーションをとる。話されたかまたはタイプされた入力を受け入れるようにしか構成されていないバーチャルパーソナルアシスタントは、非言語の会話的合図を理解することができず、したがって、自然な形で人と情報をやりとりすることができない可能性がある。
また、バーチャルパーソナルアシスタントは、会話の経過を追う限定された能力も有していてもよい。シンプルな実例を説明するために、人は、自分のスマートフォンに、「Johnの電話番号は何ですか」と尋ねる場合があり、それに対して、そのスマートフォンは、Johnの電話番号で応答することになる。そして、その人は、「彼を呼び出して」と言う場合があるが、この時点で、そのスマートフォンは、「彼」が誰だか分かってはいない。話し手が、数分前または数日前に行った会話に戻って言及するという、より複雑な実例は、典型的なバーチャルパーソナルアシスタントが取り扱う能力を超えている可能性がある。
さまざまな実施態様において、マルチモーダルの会話型バーチャルパーソナルアシスタントが本願明細書に記載されている。それらの実施態様によるバーチャルパーソナルアシスタントは、可聴の、視覚的および/または触覚の入力を含むさまざまな感覚入力を受け取ることができる。そのバーチャルパーソナルアシスタントはさらに、異なる種類の入力から意味情報を得ることができ、この場合、その意味情報は、それらの入力の説明または解釈を与える。バーチャルパーソナルアシスタントは、さまざまな入力を組合せることができ、また、コンテキスト固有のフレームワークを用いて、それらの入力を提供した人の意図を判断することができる。コンテキスト固有のフレームワークは、特定のドメイン、または、特定の人または人のグループに関連する情報を提供することができる。バーチャルパーソナルアシスタントは、このようなフレームワークを用いて、人が、そのバーチャルパーソナルアシスタントの出力に望むことを、および/または人がどのようにそのバーチャルパーソナルアシスタントの出力に反応するかを判断することができる。バーチャルパーソナルアシスタントはさらに、人の心の状態を判断することができる。すなわち、バーチャルパーソナルアシスタントは、例えば、さまざまな行動モデルを用いて、人の現在の感情的、心理的または認知的状態を判断することができる。このようにして、バーチャルパーソナルアシスタントは、例えば、話し手が、単に「地図を見せてくれ」と言っているだけの場合でも、その話し手がいら立っているか、または混乱していることを判断することができる。その場合、さまざまな実施態様において、マルチモーダルのバーチャルパーソナルアシスタントは、状況に応じて、その行動を調整することができる。
マルチモダリティは、それぞれ「モード」と呼ぶことができる、テキストリソース、聴覚リソース、言語リソース、空間リソースおよび視覚リソースを用いるコミュニケーションの実施について説明する。マルチモーダルのバーチャルパーソナルアシスタントは、自然言語、およびうめき声や笑い声等の非言語音を含むオーディオ入力を受け入れることができる。バーチャルパーソナルアシスタントは、そのオーディオ入力から、(もしあれば)話された言葉を判断することができ、また、話し手の感情状態および声紋認識(例えば、声の特徴)を判断することもできる。また、マルチモーダルのバーチャルパーソナルアシスタントは、ビデオ映像または静止画像を含む視覚入力を受け入れることもでき、および顔の表情、ジェスチャーおよび虹彩認証(例えば、人の眼の特徴)等の情報を判断することができる。また、マルチモーダルのバーチャルパーソナルアシスタントは、触覚入力、例えば、キーボード、マウス、もしくはタッチスクリーン入力、または、計算システムによって実行できる他の機械的入力方法(例えば、ジョイスティック、キーパッド、スキャナ、バーコードまたはクイックレスポンス(QR)コードスキャナ等)を受け入れることもできる。
さまざまな実施態様において、マルチモーダルのバーチャルパーソナルアシスタントは、特定の集団に対しておよび/または1人以上の個人に対して調節することができる選好モデルも含むことができる。選好モデルは、人の個人情報および/または人の装置の利用、例えば、人の識別情報、パスワード、アカウント情報および/またはログイン情報、住所録等に関連する情報の経過を追うことができる。また、選好モデルは、人に関する履歴情報、例えば、頻繁に使うアプリケーション、頻繁にアクセスする問い合わせ先、頻繁に訪れる場所、ショッピング習慣、旅行の好み、または、クラシックカーへの興味等を蓄積することもできる。また、選好モデルは、不安であるときに早口になる傾向等の人に関する特徴および特性を記憶することもできる。バーチャルパーソナルアシスタントに入力することができるさまざまな可聴、視覚および触覚情報は、選好モデルにより、例えば、訛り、ジェスチャーの意味における文化的違い、地域特性、個人の特徴等を調整するように変更することができる。
また、さまざまな実施態様において、マルチモーダルのバーチャルパーソナルアシスタントは、バーチャルパーソナルアシスタントが会話の経過を追うのに役に立つフレームワークを含むさまざまなコンテキスト固有のフレームワークを含むこともできる。例えば、バーチャルパーソナルアシスタントは、動的なオントロジーを維持してもよい。オントロジーは、情報を整理するフレームワークである。オントロジーは、一般に、情報のクラス、それらのクラスまたはクラスのメンバーの属性、およびクラス間またはクラスのメンバー間の関係を含む。オントロジーは、知識を示す方法として、人工知能、意味ウェブデザイン、システムエンジニアリング、ソフトウェアエンジニアリング、情報アーキテクチャ、情報処理、知識工学、および一般的には、コンピュータ科学の分野でよく用いられる。
動的なオントロジーは、会話の過程を介して受取った入力に基づいて増大または縮小する情報の整理されたセットである。動的なオントロジーは、バーチャルパーソナルアシスタントにより、会話中に言われたことの関係を追跡するのに用いることができる。例えば、動的なオントロジーは、装置のユーザが「道を教えて下さい」と言った場合に、そのユーザが、「Menlo Parkのチャイニーズレストランを探して」というユーザの質問に対する答えである場所に言及していることを示すことができる。動的なオントロジーに付加された情報は、基本的なオントロジー、例えば、Menlo Park市街に関する情報のオントロジー等から得ることができる。
コンテキスト固有のフレームワークは、特定のドメインのためのフレームワークを含むこともできる。「ドメイン」は、バーチャルパーソナルアシスタントを適用できる、特定のアプリケーション、タスク、または環境である。ドメインの実例は、バーチャルパーソナルアシスタントがセルフ窓口のように動作することができるバンキングウェブサイト、バーチャルパーソナルアシスタントが現金出納機として作用することができる小売店のレジ、ならびにバーチャルパーソナルアシスタントが飛行機を予約することができ、および現在のフライト状況を報告することができる航空会社のカスタマーサービス電話システムを含む。
さまざまな実施態様において、バーチャルパーソナルアシスタントは、任意のドメインで用いることができるユニバーサルコンポーネントのセットを含むことができる。ユニバーサルコンポーネントは、任意のドメインに適用できる、マルチモーダルの理解エンジンおよび推論エンジン、行動モデル、幅広く適用可能なオントロジー、および出力生成ツールを含んでもよい。バーチャルパーソナルアシスタントのユニバーサル部は、インターネットにアクセスできてもよく、およびインターネットから得ることができる情報を有していてもよい。
ユニバーサルコンポーネントは、ドメイン固有のコンポーネントによって増加させることができる。ドメイン固有のコンポーネントは、特に、ドメイン固有のオントロジー、ワークフローおよび出力生成ツールを含むことができる。場合により、ドメイン固有のコンポーネントは、このようなバーチャルパーソナルアシスタントを含む装置を内蔵型にすることができるように(例えば、その装置は、インターネットへの接続を必要としない)、バーチャルパーソナルアシスタントが知る必要があることの範囲を縮めることができる。場合により、そのドメイン固有のコンポーネントが、要求された情報を有していない場合、その情報は、インターネット等のリソースから情報を探すことができるユニバーサルコンポーネントから要求することができる。
I.バーチャルパーソナルアシスタントプラットフォーム
図1は、マルチモーダルのバーチャルパーソナルアシスタント150を含む装置またはシステムと情報をやりとりする人100の実施例を示す。図1はさらに、バーチャルパーソナルアシスタント150の動作の概念的実施例を示している。以下、実施態様例を議論する。上述のように、バーチャルパーソナルアシスタントは、通常、別の装置またはシステム、例えば、特にコンピュータ、携帯機器、ウェアラブル装置、装着型装置、家庭用電化製品、自動車、または、電話ベースの双方向音声応答(Interactive Voice Response:IVR)システム等に組み込まれている。図1に示す実施例において、バーチャルパーソナルアシスタント150は、既にスマートフォン102に組み込まれている。
ドメインを、スマートフォン102に対して指定してもよい。ドメインは、そのスマートフォンが通常、用いられているアクティビティの種類を含むことができる。このようなアクティビティは、例えば、電話をかけること、テキストメッセージを送信すること、(例えば、近所、または、特定の都市、州または国の)特定の場所で仕事を探すこと、車または徒歩での行き方を入手すること、アプリケーションの起動等を含んでもよい。また、スマートフォンは、スマートフォンのドメインに固有のものではないアクティビティ、例えば、オンラインショッピングやインターネット上で情報を見つけること等にも用いることができる。
バーチャルパーソナルアシスタント150を含むスマートフォン102を使用する人100は、オーディオ入力110、画像入力120および/または触覚入力130等のさまざまな感覚入力を用いて、スマートフォン102と情報をやりとりすることができる。例えば、人100は、スマートフォン102に話し掛けることにより、例えば、マイクロフォンによって捉えたオーディオ入力110を与えることができる。また、スマートフォン102は、非言語音、例えば、笑い声または唸り声を捉えることもできる。別の実施例として人100は、例えば、カメラで捉えた画像入力120を与えることができる。例えば、スマートフォン102は、頷き、指差し、微笑み、または、ある物体もしくは興味がある光景をスマートフォン102の前方への配置を捉えることができる。別の実施例として、人100は、文字をスマートフォン102のキーボードインタフェースにタイプ入力することにより、(特に)文字、ボタン、画像またはリンクを表すスマートフォン102のスクリーンの部分を触れることにより、および/または特に、スマートフォン102のタッチスクリーンインタフェースに触れながら、スワイプすることにより、タッピングすることにより、ピンチングすることにより、および/または他の何らかの動作を行うことにより、触覚入力130を与えることができる。
この実施例のスマートフォン102という装置は、人100のさまざまなオーディオ入力110、画像入力120および/または触覚入力130を入力104としてバーチャルパーソナルアシスタント150に与えることができる。バーチャルパーソナルアシスタント150は、典型的には、理解システム152と、推論システム154と、出力システム156と、知識ベース158とを含む。理解システム152は、人100の意図および/または感情状態を理解しようとする。場合により、理解システム152は、人100がスマートフォン102に追加的なタスクをしてもらいたいために、または、バーチャルパーソナルアシスタント150が人100からより多くの情報を必要とするために、人100と対話することができる。推論システム154は、バーチャルパーソナルアシスタント150のための最善策に関して推論する。その最善策は、人100が言ったことまたはタイプ入力したことだけではなく、人100の明らかな感情的または認知的状態も考慮することを含んでもよい。推論システム154は、推論システム154が合理的な結論に達するのを支援するビジネスルール164と呼ぶことができる一連のインテリジェントルールおよび/またはインテリジェントモデルを備えていてもよい。ビジネスルール164は、ルール、モデル、テンプレート、ワークフロー、タスクフロー、または、バーチャルパーソナルアシスタント150が可能な表現可能動作の他の何らかの方法を含むことができる。ビジネスルール164は、必ずしも必要ではないが、ドメイン固有にすることができる。出力システム156は、人100に対する出力106を作成することができ、この場合、出力106は、例えば、スマートフォン102が発声し(例えば、補足質問をする)、表示し、または行う(例えば、情報を調べる)何かを含むことができる。
理解システム152、推論システム154および出力システム156は、バーチャルパーソナルアシスタント150の知識ベース158によって補助することができる。知識ベース158は、アプリケーション固有のデータ160と、ドメインおよびユーザデータ162を含んでもよい。アプリケーション固有のデータ160は、人100がバーチャルパーソナルアシスタント150とインタフェースを取っているときに用いることができる特定のアプリケーションに固有のデータを含んでもよい。例えば、人100が電話番号を尋ねる場合、アプリケーション固有のデータ160は、住所録を含んでもよい。別の実施例として、人100が道順を尋ねる場合、アプリケーション固有のデータ160は、地図を含んでもよい。ドメインおよびユーザデータ162は、ドメインおよび/またはスマートフォン102の特定のユーザに固有のデータを含むことができる。この実施例では、ドメインデータは、例えば、電話帳、住所録、地図、および典型的なスマートフォンアプリケーションによって用いることができる他のデータを含むことができる。ユーザデータは、例えば、人100の識別情報(アドレス、電話番号、ログインユーザネーム等)、認証情報(例えば、パスワード、個人識別番号(PIN)、指紋等)、および写真、電子メール等の人100によって生成されたデータを含むことができる。また、ユーザデータは、人100の個人的特徴、例えば、声の特徴(例えば、訛り、発話障害等)、視覚的特徴(例えば、人100の外見、虹彩の特徴、人100によって行われる特定のジェスチャーが意味すること等)、および特定の人100を理解する際に、バーチャルパーソナルアシスタント150を支援することができる他の可聴データまたは視覚データも含むことができる。さまざまな実施態様において、バーチャルパーソナルアシスタント150は、複数の人のおよび/または人のグループのユーザデータを有していてもよい。
これらのシステムを用いて、バーチャルパーソナルアシスタント150は、人100と情報をやりとりし、人100の意図を判断し、および人100の入力に応答して取る動作を判断する際に、スマートフォン102装置を支援することができる。バーチャルパーソナルアシスタント150はさらに、人100の感情的、心理的または認知的状態を判断して、この判断に基づいてとる動作を調整することができる。スマートフォン102によってとられる動作は、例えば、要求された情報を探すこと、追加的な情報または確認を求めること、および/または他の何らかの動作(例えば、アプリケーションの起動、点灯、ドアを開くこと、車の始動等)を可能にする制御信号を生成することを含むことができる。
図2は、人が、バーチャルパーソナルアシスタントを含むシステムとすることができるやりとり200の実施例を示す。この実施例では、人が、処方薬をリフィルするためのシステム、例えば、薬局の自動電話システムと、従来のユーザが指示する方法でやりとりしている。「ユーザが指示する」とは、(例えば、ユーザが応答する自動プロンプトの固定セットを提示するシステムと比較して)例えば、ユーザに会話の主題を指定させること、およびユーザに会話の流れを指示させることができることを意味する。この実施例では、人は、バーチャルパーソナルアシスタントとやりとりするのに苦労しておらず、および/またはそのシステムによって、または、他の何かによって混乱させられず、または迷わされず、または困惑されていない。したがって、その人は、何ら問題なく、自分のタスクを遂行することができる。
この実施例の左側のコラムは、システムへの人の入力を示す。この実施例では、人が、そのシステムに話し掛けており、したがって、その人の入力は、ユーザオーディオ入力である。右側のコラムは、システムオーディオ応答204、すなわち、そのシステムによる音声応答を示す。
まず、ステップ210において、人が「処方薬をリフィルしたい」と言う。そのシステムは、恐らく自然言語認識システムを用いて、その人が望むものを理解することができ、そしてステップ212において、「承知しました。そのことに関して、喜んでお手伝いします。それは、あなたのためですか、または、他の誰かのためですか」と返答する。このステップにおいて、そのシステムは、その人が要求したことを理解するという表示で、および追加的な情報の要求によっても応答するように構成されている。
ステップ214において、その人は、「自分のためです」と返答する。そのシステムは、「自分」が誰だか分からない可能性があるが、そのシステムは、その話し手が、その処方薬をリフィルすることが許可されているという結論を出すように構成してもよい。例えば、そのシステムは、発話入力信号から特徴を抽出し、自動話し手確認方法を用いて、その話し手の身元および/または権限を確認することができる。そのため、ステップ216において、そのシステムは、「結構です。瓶のラベルに載っている処方箋番号はありますか」と返答する。このステップでは、そのシステムは、会話の流れを妨げることなく(例えば、その話し手に、パスコードまたは他の何らかの認証情報を提供するように要求することによって)、話し手の身元を確認することができる。
ステップ218において、その人は、「はい、469-421-003です」と返答して、処方箋番号を提供する。そのシステムは、ドメイン固有のワークフローを実行することにより、例えば、現時点では、続行する前に、より多くの情報が必要であると判断する。したがって、ステップ220において、そのシステムは、「ありがとうございます。次に、あなたの名前と住所を確認する必要があります」と言う。この応答において、そのシステムは、その人の答えを認識して、標準的な認証情報を要求する。
ステップ222において、その人は、「こちらは、222 Main Street, New Castle, Pennsylvania 16101のJohn Doeです」と返答する。ステップ224において、そのシステムは、それが理解したことを認識して、いくつかの有用な情報をその人に提供し、追加的な情報を要求する、すなわち、「ありがとうございます。あなたには、3回分のリフィルが残っていることが分かっています。あなたが今提供した住所にリフィルを送ってもいいですか」と言う。そのシステムは、例えば、薬局のデータベースにアクセスして情報を読み出すドメイン固有のワークフローを実行することにより、この情報を獲得することができる。
ステップ226において、その人は、「はい、それで結構です」と返答する。ステップ228において、そのシステムは、再び、それが理解したことを認識して、いくつかの追加の役立つ情報を提供する。また、そのシステムは、その人が処方薬をすぐに必要な場合に備えて、「手続きが完了しました。あなたは、処方薬を3から5営業日で受け取るはずです。より速い配送に変更する必要がありますか」という提案も申し出る。
ステップ230において、その人は、「いいえ、3日から5日で大丈夫です」と返答する。そして、そのシステムは、その人の処方薬をリフィルするのに必要なすべての情報を有していると判断し、ステップ232において、「ありがとうございました。さようなら」という会話で終了する。
図3は、人と、バーチャルパーソナルアシスタントを含むシステムとの間のやりとり300の別の実施例を示す。この実施例でも、人は、自動システムを利用してリフィルしているが、この実施例では、人は、いくつかの問題を抱えている。図3に示すように、バーチャルパーソナルアシスタントは、その人がいら立っていることを検出し、その人が自分のタスクを遂行する試みを助けて、システムの出力を調整する。この実施例において、最初の欄は、ユーザオーディオ入力302(すなわち、人によって話された言葉、または出された音)を示し、二番目の欄は、システムオーディオ応答304(すなわち、そのシステムからの言語出力)を示す。三番目の欄は、バーチャルパーソナルアシスタントによって検出されたマルチモーダルの合図306を示す。四番目の欄は、バーチャルパーソナルアシスタントによって判断されたユーザ状態308を示す。五番目の欄は、マルチモーダルの合図306およびユーザ状態に応じてバーチャルパーソナルアシスタントにより採用されたシステム適応310を示す。
ステップ310において、人は、そのシステムに「処方薬をリフィルしたい」と話す。そのシステムは、その人がゆっくりとためらいがちに話していることを検知する。そのシステムは、その話し手が、この会話の準備がちゃんとできておらず、もっと時間が必要であるという結論に達する可能性がある。そのシステムが、話し手の感情的または認知的状態に関して下した結論に基づいて、ステップ312において、イエスかノーで答えさせる直接的な質問をすることにより、その対話的アプローチを変更することを決定して、「承知しました。そのことに関して、喜んでお手伝いします。まず、あなたにいくつかの質問をします」と返答する。
ステップ314において、そのシステムは、その人から何らかのノイズを検出するが、発話を何ら感知することができない。ステップ316において、そのシステムは、前に進もうとして、「その処方箋はあなたのものですか」と尋ねる。
ステップ318において、その人は、「え、何ですか」と返答する。このことから、そのシステムは、たぶんその人は難聴であると判断する。この結論に基づいて、そのシステムは、ボリュームを適度に上げて、そのオーディオ出力の速度を遅くすることによって調節する。また、その人の返答は、その人が、そのシステムの最後の返答を理解していなかった可能性があることも示しているため、ステップ320において、そのシステムは、「その処方箋はあなたのものですか」と繰り返す。
ステップ322において、その人は、「はい、はい、えーと、それは私のものです。リフィルが必要なんです」と返答する。そのシステムは、その人の発声速度が速いことを、およびその人の声の調子が軽いいら立ちを示していることを検知する。そのシステムはさらに、その人は前に進む準備ができてはいるが、たぶん心構えができていないと結論付けることができる。したがって、そのシステムは、ステップ324において、「分かりました。結構ですよ。今、薬瓶はお持ちですか」と返答する。
ステップ326において、その人は、「はい、どこかこの辺に、えーと、ここにあります」と言う。そのシステムは、その人がやらなければならないことに関してはっきり分かっていないと判断することができる。したがって、そのシステムは、ステップ328において、寛大でより直接的に、「分かりました。その瓶にラベルがあると思いますが。<一時中断>そのラベルに薬剤番号があるでしょう。見付けられますか」と返答することができる。
ステップ330において、その人は、「ええ、多分、ここに何かあるけど。<ため息>」と返答する。この返答から、そのシステムは、可聴的ないら立ちを検出することができる。さらに、そのシステムは、画像データから、目に見える顔のゆがみを検出することができる。この情報から、そのシステムは、その人が、多分、いら立っており、および多分、異なるアプローチが必要であると結論付けることができる。ステップ332において、そのシステムは、情報を思い出すのがより簡単な方向へ、その質問を変えることによって適応し、すなわち、「分かりました。異なるアプローチをしてみましょう。代わりに、御自宅の電話番号を教えて下さい」と返答する。
上記のやりとりは、そこから、そのシステムが調整を続けて、その人の処方薬のリフィルを手伝おうとする状態で進行することができる。図示されているように、そのシステムは、その人が言うことだけではなく、そのシステムが検出して判断する非言語の合図がその人の感情状態を示すことについても調整することができる。そのシステムは、上記のやりとりの過程で得た視覚および可聴の両方の情報を用いて、そのシステムがどのように調整すべきかを判断することができる。
図4は、人のユーザとのマルチモーダルの会話のやりとりをするように設計されているさまざまな装置およびシステムに組み込むことができるバーチャルパーソナルアシスタントシステム400の実施例である。さまざまな実施態様において、装置またはシステムに「組み込まれている」ということは、バーチャルパーソナルアシスタントシステム400が、多くの他の機能を有している可能性のある装置またはシステムの構成要素であることを意味する。例えば、バーチャルパーソナルアシスタントシステム400は、コンピュータ装置に追加することができるソフトウェアエンジンおよび/またはハードウェアエンジンを用いて実施することができる。コンピュータ装置は、例えば特に、デスクトップコンピュータ、ラップトップコンピュータ、携帯情報端末、スマートフォン、タブレットコンピュータ、ウェアラブルまたは装着型装置、または、家庭用電化製品とすることができる。コンピュータ装置の他の実例は、自動車用コンピュータ、自動カスタマーサービスシステム、店舗レジシステム、ウェブベースのインターネットサービス等を含む。
バーチャルパーソナルアシスタント400は、さまざまな方法で装置またはシステムに組み込むことができる。例えば、バーチャルパーソナルアシスタントシステム400は、独立したアプリケーションとして実施することができ、または、オペレーティングシステムに組み込むことができる。別の実施例として、バーチャルパーソナルアシスタントシステム400は、ハードウェア装置、例えば、コンピュータ装置に付加することができ、およびそのコンピュータ装置が利用することができる特定用途向け集積回路(ASIC)として実施することができる。別の実施例として、バーチャルパーソナルアシスタントシステム400は、別の装置に付加することができる装置として実施することができる。別の実施例として、バーチャルパーソナルアシスタントシステム400は、装置が(例えば、ネットワークを通じて)、「クラウド内で」、すなわち、データセンターおよび/またはリモートサーバ内で作動するバーチャルパーソナルアシスタントシステム400にアクセスできるようにするソフトウェアおよび/またはハードウェアインタフェースを含むことができる。
さまざまな実施態様において、バーチャルパーソナルアシスタントシステム400が組み込まれている装置またはシステムは、ユーザ入力を捉え、または受け取るハードウェアを含むことができる。例えば、その装置またはシステムは、触覚入力を受け入れるキーボードまたはタッチスクリーン、オーディオ入力を捉えるマイクロフォン、および/または画像入力を捉えるカメラを含むことができる。さまざまな実施態様において、それらの装置またはシステムによって捉えられたユーザ入力は、以下でさらに議論するように、データを分析して解釈することができるバーチャルパーソナルアシスタントシステム400に供給することができる。また、さまざまな実施態様において、その装置またはシステムは、インターネットを含む、バーチャルパーソナルアシスタントシステム400が追加的な情報を得るのに用いることができるネットワークへの接続も実行できる。
さまざまな実施態様において、バーチャルパーソナルアシスタントシステム400は、階層化アプローチを実施することができ、この場合、下位層は、基本的なまたはユニバーサル機能を提供し、また、上位層は、ドメインおよびアプリケーション固有の機能を提供する。実施例のバーチャルパーソナルアシスタントシステム400において、ユニバーサル機能は、バーチャルパーソナルアシスタントプラットフォーム410によって提供される。バーチャルパーソナルアシスタントプラットフォーム410の上部において、実施例のバーチャルパーソナルアシスタントシステム400は、ドメイン固有の動作のためのバーチャルパーソナルアシスタントプラットフォーム410の機能を用いることができるドメイン固有のアプリケーションリソース430を含む。ドメイン固有のアプリケーションリソース430の上部において、実施例のバーチャルパーソナルアシスタントシステム400は、ドメイン固有のアプリケーションリソース430と、装置のユーザとの間のインタフェースを提供することができるユーザインタフェースおよびバーチャルパーソナルアシスタントクライアントアプリケーション450を含む。さまざまな実施態様において、バーチャルパーソナルアシスタントシステム400は、バーチャルパーソナルアシスタントプラットフォーム410および/またはドメイン固有のアプリケーションリソース430の動作をサポートすることができるバックエンドシステム452も含むことができる。
バーチャルパーソナルアシスタントプラットフォーム410は、すべてのまたはほとんどのバーチャルパーソナルアシスタントの実施態様が利用するであろう基本的かつ共通の機能を提供することができる。この機能を提供するために、さまざまな実施態様において、バーチャルパーソナルアシスタントプラットフォーム410は、数あるコンポーネントの中でも特に、自動音声認識412、オーディオ理解414、画像理解416、解釈418、推論420、出力生成422およびテキスト読み上げ424を含むことができる。また、バーチャルパーソナルアシスタントプラットフォーム410は、他のコンポーネントのアクティビティを調整するためのコントローラ426も含むことができる。
自動音声認識412のコンポーネントは、オーディオ入力の自然言語を識別することができ、および識別した言葉を文字として、システム400の残りの部分へ供給することができる。さまざまな実施態様において、バーチャルパーソナルアシスタントプラットフォーム410は、キーボード等の触覚入力を用いて入力された自然言語入力を受け取ることもできる。また、さまざまな実施態様において、バーチャルパーソナルアシスタントプラットフォーム410は、例えば、マウス、スタイラスまたはタッチスクリーンを用いて既に入力されている可能性があるコンピュータ命令の形式で入力を受け取ることもできる。
オーディオ理解414および画像理解416のコンポーネントは、可聴および視覚情報を処理して、その可聴または視覚情報を与えた人が意味することを判断しようとする。例えば、いくつかの実施態様において、オーディオ理解414のコンポーネントは、自動音声認識412によって識別された(または、触覚入力を介して入力された)言葉を、フレーズ、センテンスおよび/またはコンセプトにまとめる。また、さまざまな実施態様において、オーディオ理解414のコンポーネントは、擬音発話や声紋認証等のオーディオ入力から非言語情報を抽出することもできる。例えば、オーディオ理解414のコンポーネントは、特定の音を「笑い声」として、または場合により、「皮肉な笑い」としても識別することができる。声紋認証は、人の声の特徴、例えば、周波数範囲、階調範囲、ボリューム、訛り、抑揚等を類型化する。
画像理解416のコンポーネントは、画像内の情報を抽出して解釈することができる。例えば、画像理解416のコンポーネントは、物体、場面、顔、ジェスチャー、ボディランゲージおよび/または虹彩認証を識別することができる。いくつかの実施態様において、画像理解416のコンポーネントはさらに、画像、例えば、「ランプ」または「John」から抽出した何かを識別することができる。また、画像理解416のコンポーネントは、画像から抽出した情報、例えば、「指差し」、「手の振り」または「元気な頷き」をコンセプトと関連付けることもできる。
解釈418のコンポーネントは、オーディオ理解414のコンポーネントおよび画像理解416のコンポーネントによってオーディオおよび視覚情報から抽出された情報を用いて、人の現在の意図を判断しようと試みることができる。この文脈における「意図」とは、目的、目標、タスク、狙い、要求、または、言語および/または視覚的入力によって意図された意味を意味する。例えば、人は、「あれは何ですか」と言って、ある物体を指差す可能性がある。この実例では、解釈418のコンポーネントは、その言語入力から、その人の意図は、バーチャルパーソナルアシスタントシステム400が何かを識別することであると判断することができる。さらに、解釈418のコンポーネントは、画像入力から、識別すべきものが、指差ししている物体であると判断することができる。解釈418のコンポーネントは、以下で論じるように、オントロジーおよびドメイン固有の知識によって支援することができる。また、解釈418のコンポーネントは、選好モデルによって支援することもできる。例えば、人が「野球のスコアを見せてくれ」といった場合、解釈418のコンポーネントは、まず、その話し手を識別して、その話し手を識別した後、その人の意図は、システム400が、Boston Red Soxのその日のスコアを提供することであると判断することができる。さまざまな実施態様において、解釈418のコンポーネントは、対話履歴、例えば、「これ」、「あれ」、「彼」、「彼女」、「それ」等の言及を識別する際に解釈418のコンポーネントを支援することができる動的なオントロジーによって支援してもよい。
さまざまな実施態様において、解釈418のコンポーネントは、オーディオおよび視覚情報を分析して、人の現在の入力状態を判断することもできる。また、入力状態は、感情的、心理的または認知的状態と呼んでもよい。入力状態は、例えば、人が満足しているかまたは怒っているか、気が逸らされているかまたは興奮しているかを、または、人が、システム400からの出力を理解しているかまたは理解していないかを示すことができる。解釈418のコンポーネントは、人の現在の入力状態を、例えば、調子または話し方等の口調、および/または特定のボディランゲージ、ジェスチャー等の視覚的合図、および/または顔の表情から判断することができる。例えば、人が「あれは何ですか」といった場合、解釈418のコンポーネントは、人の顔の表情から、その人が悩んでいると判断することができる。さまざまな実施態様において、解釈418のコンポーネントは、人の入力状態を説明する際に解釈418を支援することができる対話履歴によって支援することができる。
推論420のコンポーネントは、入力意図および入力状態を受け取って、推論したタスクまたは行動指針を判断することができる。例えば、「野球のスコアを見せてくれ」等の入力から、推論420は、そのタスクが情報を調べることであると判断することができる。さまざまな実施態様において、推論420のコンポーネントは、入力意図と入力状態を合成して、適切な行動指針に関してより良い結論になるようにすることができる。例えば、人は、「詳しく聞かせて下さい」と言って、その人が、バーチャルパーソナルアシスタントシステム400が、現在の対話とともに継続することを意図することを示すことができるが、その人の表情は、退屈を示している可能性がある。したがって、この実施例では、推論420のコンポーネントは、バーチャルパーソナルアシスタントシステム400は話題を変えるべきであると判断してもよい。推論420のコンポーネントは、ドメイン固有のワークフローならびにモデルおよびルールを含む、予め定義されたワークフローによって支援することができる。また、さまざまな実施態様において、推論420のコンポーネントは、対話履歴、例えば、動的なオントロジーによって支援してもよい。さまざまな実施態様において、推論420のコンポーネントは、タスクを完了するのに必要なステップを開始するか、または実行することもできる。
出力生成422のコンポーネントは、自然言語および/または視覚表示を用いて出力することができる応答を作成することができる。例えば、出力生成422は、文字の応答を作成して、その文字の応答をスクリーンに表示すべきか、または、発声すべきかを示すことができる。別の実施例として、出力生成422は、文字と視覚応答を合成したものをアセンブルすることができる。
テキスト読み上げ424のコンポーネントは、例えば、出力生成422のコンポーネントによって生成することができるテキスト出力をオーディオ出力に変換することができる。他の出力、例えば、表示すべきテキスト出力、または、スクリーンに表示すべきグラフィック出力は、ユーザインタフェースおよびバーチャルパーソナルアシスタントクライアントアプリケーションリソース450のユーザインタフェースに直接、供給することができる。
以下、理解414、416、解釈418、推論420および出力生成422のコンポーネントの各々について、さらに詳細に議論する。
ドメイン固有のアプリケーションリソース430は、特定のドメインに関連するさまざまなコンポーネントを含むことができる。一般に、ドメイン固有のアプリケーションリソース430は、自動音声認識および自然言語理解等の低レベルの機能がバーチャルパーソナルアシスタントプラットフォーム410によって提供されると仮定する。しかし、ドメイン固有のアプリケーションリソース430は、人の入力に関するより進化した理解を実行できるコンテキスト固有のフレームワークおよびコンポーネントを提供することができる。例えば、バーチャルパーソナルアシスタントプラットフォーム410は、人の言葉および感情状態を解釈することができるが、人の所望のタスクをどのように遂行するかを十分に理解するために、補足質問をする必要がある可能性がある。対照的に、ドメイン固有のアプリケーションリソース430は、例えば、ドメイン固有のオントロジー438および/またはドメイン固有のワークフローを用いてコンテキストを提供することができ、ならびにバーチャルパーソナルアシスタントプラットフォーム410によって供給された言葉および感情状態を用いて、人の所望のタスクをより迅速に判断することができる。
ドメイン固有のアプリケーションリソース430は、この実施例では、ドメイン固有のコンポーネント用のフレームワークと、バーチャルパーソナルアシスタントシステム400のドメイン固有の実施において含めることができる機能を提供する。さまざまな実施態様において、ドメイン固有のアプリケーションリソース430は、特に、音響および言語モデル432と、統計学的言語モデル434と、物体およびジェスチャーモデル436と、ドメイン固有のオントロジー438と、ドメイン固有のワークフロー440と、ウェブサービス442と、出力テンプレート444とを含むことができる。さまざまな実施態様において、ドメイン固有のアプリケーションリソース430は、特定のドメインによって必要になる場合がある、より少ないまたは追加的なコンポーネントを含むことができる。
音響および言語モデル432は、ドメイン固有のデータを用いて、自動音声認識412をカスタマイズするのに用いることができる。例えば、音響および言語モデル432は、特定の音響環境におけるより高いパフォーマンスのためにトレーニングまたはプログラムすることができる。例えば、ドメインがレコーディングスタジオである場合、音響および言語モデル432は、音楽用語およびオーディオレコーディング用語に関するより高い認識のために、および音楽的な音を取り除くようにトレーニングまたはプログラムすることができる。また、別の実施例として、音響および言語モデル432は、言語変異に対して適応させることもできる。例えば、音響および言語モデル432は、地域的な訛りおよび用語に対応することができる。さまざまな実施態様において、ドメイン固有のアプリケーションリソース430は、複数の音響モデルおよび言語モデルを含むことができる。
統計的言語モデル434は、ドメイン固有の自然言語サンプルに関してトレーニングまたはプログラムされた統計的分類器を含むことができる。例えば、統計的言語モデル434は、あるドメインの典型的なユーザから集められた、そのドメインに固有の自然言語フレーズに関してトレーニングまたはプログラムすることができる。例えば、そのドメインが、銀行取引および金融である場合、統計的言語モデル434は、金融用語、典型的な略語および典型的な金融俗語に関してトレーニングまたはプログラムすることができる。さまざまな実施態様において、統計的言語モデル434は、デフォルトの統計的言語モデルおよび一般的なユーザ意図を利用することができる。さまざまな実施態様において、ドメイン固有の言語リソース430は、複数の統計的言語モデルを含むことができる。
物体およびジェスチャーモデル436は、ドメイン固有の物体サンプルおよびジェスチャーサンプルに関してトレーニングまたはプログラムすることもできる。例えば、物体およびジェスチャーモデル436は、ドメイン固有の物体の画像、およびドメイン固有のジェスチャーのビデオシーケンスに関してトレーニングまたはプログラムすることができる。例えば、そのドメインが野球に関連している場合、物体およびジェスチャーモデル436は、審判の判定を認識するように、および一つのチームのユニフォームを別のチームのものと区別するようにトレーニングまたはプログラムすることができる。
ドメイン固有のオントロジー438は、ドメインに固有のコンセプトおよび関係のための合理的に完全なデータモデルを含むことができる。さまざまな実施態様において、ドメイン固有のオントロジー438は、標準化フォーマット、例えば、ウェブオントロジー言語(Web Ontology Language:OWL)またはプロプライエタリフォーマットを用いて実施することができる。さまざまな実施態様において、ドメイン固有のオントロジー438は、バーチャルパーソナルアシスタントシステム400が、そのドメインに関する新たな情報を得る際に、適応可能にすることができ、ならびに増大、圧縮および/または変更することができる。さまざまな実施態様において、ドメイン固有のアプリケーションリソース430は、関係のある可能性のある、または、関係のない可能性のある複数のオントロジーを含んでもよい。
ドメイン固有のワークフロー440は、ユーザの意図を解釈および実行するのに用いることができる。例えば、ドメイン固有のワークフロー440は、そのドメインの範囲内で実行される典型的なタスクと、人の入力をそれらのタスクと関連付けるためのルールとを含むことができる。ドメイン固有のワークフロー440はさらに、ドメイン固有の推論および出力生成ルールを含むことができる。
ウェブサービス442は、さまざまな実施態様において、ウェブサイトまたは他のネットワーク化されたリソースによって提供されるサービスを統合することができる。例えば、ウェブサービスは、リモートサーバによって提供されるサービスとインタフェースをとるためのクライアントサーバプロトコルを実施することができる。それらのサービスは、ユーザの意図を実行するのに用いることができる。例えば、ドメインが地図アプリケーションである場合、ウェブサービス442は、公的に利用可能な地図および住所録にアクセスするのに用いることができる。いくつかの実施態様において、ウェブサービス442は、情報検索に、および/または装置のユーザの代わりに取引を実行するのに用いることができる。例えば、ユーザは、バーチャルパーソナルアシスタントシステム400が特定の製品を購入することを依頼することができ、そして、バーチャルパーソナルアシスタントシステム400は、ウェブサービス442を用いて、その製品を見つけ出して発注することができる。
出力テンプレート444は、特定のドメインのためにバーチャルパーソナルアシスタントシステム400の出力をカスタマイズするのに用いることができる。例えば、いくつかのドメインにおいて、特定の歓迎または挨拶文を慣例的にしてもよい。さまざまな実施態様において、出力テンプレート444は、マルチモーダル出力を含むことができる。例えば、出力テンプレート444は、視覚およびオーディオの合成出力を生成することができる。
さまざまな実施態様において、ユーザインタフェースおよびバーチャルパーソナルアシスタントクライアントアプリケーション450は、バーチャルパーソナルアシスタントシステム400に入力を提供するための、およびバーチャルパーソナルアシスタントシステム400から受け取るためのインフラストラクチャを提供することができる。例えば、ユーザインタフェースおよびバーチャルパーソナルアシスタントクライアントアプリケーション450は、そのシステムを用いる人が、それを介して感覚情報、例えば、オーディオ、画像および/または触覚入力を入力することができるユーザインタフェースを提供することができる。また、そのユーザインタフェースは、出力装置、例えば、出力を人に提供するためのスピーカーおよび/またはグラフィックディスプレイを含むこともできる。また、ユーザインタフェースは、能動的コンポーネント、例えば、(特に)人によって要求された動作を実行するためのアクチュエータ、電気信号および/またはリレーを含むこともできる。いくつかの実施態様において、ユーザインタフェースは、バーチャルパーソナルアシスタントシステム400が既に組み込まれている装置によって提供することができる。また、ユーザインタフェースおよびバーチャルパーソナルアシスタントクライアントアプリケーション450は、バーチャルパーソナルアシスタントシステム400が、その装置を用いてアクセスできるようにその装置に付加することができるクライアントアプリケーションを含むこともできる。いくつかの実施態様において、クライアントアプリケーション450は、各具体的な実施のために拡張または適応させることができるリファレンスアプリケーションを含むことができる。いくつかの実施態様において、リファレンスアプリケーションは、Java(登録商標)ベースとすることができる。iOSまたはAndroid等のいくつかのオペレーティングシステムの場合、クライアントアプリケーション450は、JavaScript(登録商標) Object Notation(JSON)およびWeb Socketベースのクライアントサーバプロトコルを用いて実施することができる。さまざまな実施態様においては、ユーザインタフェース、例えば、グラフィカルユーザインタフェース(GUI)を、クライアントアプリケーションの一部とすることができる。
さまざまな実施態様において、バーチャルパーソナルアシスタントシステム400は、種々のバックエンドシステム452も含むことができる。バックエンドシステム452は、バーチャルパーソナルアシスタントプラットフォーム410および/またはドメイン固有のアプリケーションリソース430の動作をサポートするハードウェアリソースおよび/またはソフトウェアリソースを提供することができる。バックエンドシステム452は、例えば、コンピューティングリソース、例えば、プロセッサ、サーバ、ストレージディスク、データベース等を含むことができる。また、バックエンドシステム452は、例えば、データセンターへのネットワークインタフェースおよび/または通信リンク等のネットワークリソースも含むことができる。いくつかの実施態様において、バックエンドシステム452は、ドメイン固有のバックエンドシステム、例えば、ドメイン固有のマシナリ、知識ベース、サービス等を含んでもよい。
図5は、バーチャルパーソナルアシスタントプラットフォーム410のオーディオ理解414および画像理解416のコンポーネントの実施例をより詳細に示す。上述したように、オーディオ理解414のコンポーネントは、オーディオ入力から情報を抽出して解釈することができ、一方、画像理解416のコンポーネントは、画像内の情報を抽出して解釈することができる。図5は、ユーザ入力をユーザの意図に変換することができる一般的な理解システム500の実施例を示す。さまざまな実施態様において、理解システム500は、オーディオ、ビデオおよび/または触覚入力502およびイベント504を受け取る。いくつかの実施態様において、オーディオ、ビデオおよび/または触覚入力502は、オーディオまたはビデオキャプチャ装置から、または、触覚入力装置から直接、供給してもよい。いくつかの実施態様において、オーディオ、ビデオおよび/または触覚入力502は、まず、生データをシステム500が利用し易いように処理することができる。例えば、オーディオ、ビデオおよび/または触覚入力502は、ディジタル化することができる。さまざまな実施態様において、オーディオ、ビデオおよび/または触覚入力502は、イベント504と関連付けてもよい。イベントは、個別の入力、例えば、話し手からの単一の発話、画像の特定のシーケンス、または、単一の触覚コマンドであってもよい。したがって、イベント504は、オーディオ、ビデオおよび/または触覚入力502に構造を与えることができる。
さまざまな実施態様において、理解システム500は、オーディオ、ビデオおよび/または触覚入力502およびイベント504を、マルチモーダル入力シンセサイザ510に供給する。マルチモーダル入力シンセサイザ510は、オーディオ、ビデオおよび/または触覚入力502を分析して、それらの入力の内容および/または意味を判断することができる。さまざまな実施態様において、マルチモーダル入力シンセサイザ510は、オーディオ、ビデオおよび/または触覚入力502を解釈するテキスト522を生成することができる。例えば、テキスト522は、オーディオ入力内で検出された言葉、または、画像入力内で見られるイベント504の記述、または、触覚入力を介して受取ったコマンドを含むことができる。いくつかの実施態様において、テキスト522は、マシンによってより容易に処理されるフォーマット、例えば、バイナリフォーマットであってもよい。
さまざまな実施態様において、理解システム500は、テキスト522をノーマライザ512に供給する。ノーマライザ512は、例えば、パーサ、グラマー、および入力パターンを説明するモデルを用いて、テキスト522をリファインしてもよい。したがって、ノーマライザ512は、例えば、テキスト522をセンテンス、センテンス断片、品詞、目的語、目的語間の関係、および/または一種類の入力と他の種類の入力との関係に分解することができる。さまざまな実施態様において、ノーマライザ512は、テキスト522から身体的な合図および/または非言語合図を抽出することもでき、抽出したものは、人の入力状態を判断するのに利用することができる。さまざまな実施態様において、理解システム500は、ドメイン固有の音響モデルおよび言語モデル、統計的言語モデル、および物体およびジェスチャーモデルを活用して、オーディオ、ビデオおよび/または触覚入力502のより良好な理解を得ることもできる。ノーマライザ512は、標準化されたテキスト524を出力することができる。
さまざまな実施態様において、理解システム500は、標準化されたテキスト524を、センテンスアナライザ514および統計的分類器516に供給する。センテンスアナライザ514は、標準化されたテキスト524を分析して、単語体系526を生成することができる。単語体系526は、例えば、標準化されたテキスト524で表現されているアイデアを説明することができる。統計的分類器516は、標準化されたテキスト524を分析して、追加されていない意図528を生成することができる。統計的分類器516は、標準化されたテキスト524が一つのアイデアまたは別のアイデアを表現した可能性に基づいて、標準化されたテキスト524を分類してもよい。その結果として生じる追加されていない意図528は、オーディオ、ビデオおよび/または触覚入力502で表現された意図を高レベルで説明することができる。
さまざまな実施態様において、パラメータ抽出器518は、単語体系526と追加されていない意図528をまとめて、追加された意図530を決定することができる。さまざまな実施態様において、パラメータ抽出器518は、オーディオ、ビデオおよび/または触覚入力502で表現された意図をより明確にすることができるように、単語体系526を、一般化された追加されていない意図528と関連付けることができる。その結果が、追加された意図530である。
図5は、理解エンジン500の一つの一般的な説明を示す。さまざまなオーディオおよび視覚理解エンジンの追加的な実施例を以下で説明する。
図6は、バーチャルパーソナルアシスタントプラットフォーム410の解釈418のコンポーネントをより詳細に示す。上述したように、解釈418のコンポーネントは、前の対話の文脈で、現在の意図および/または現在の入力状態を解釈することができる。解釈418のコンポーネントは、対話履歴および/またはドメインコンテキストを活用して、意図または状態をリファインすることができる解釈システム600を用いて実施することができる。さまざまな実施態様において、解釈システム600は、対話管理602およびサーバフレームワーク610を含むことができる。対話管理602は、インタプリタルール604と、インタプリタルールエンジン606と、インタプリタアプリケーションプログラミングインタフェース(API)608とを含むことができる。インタプリタルール604は、対話を理解して対話を行うための構造およびモデルを提供することができる。インタプリタルールエンジン606は、インタプリタルール604を用いることができ、およびそのインタプリタルール604を適用することができる。インタプリタAPI608は、インタプリタルールエンジン606にインタフェースを提供することができる。インタプリタAPI608は、例えば、理解システムによって生成された、追加されていない意図630を受け取ることができる。
インタプリタAPI608はさらに、サーバフレームワーク610によって提供されるデータベースおよびそのデータベースへのAPIを活用することができる。この実施例では、サーバフレームワーク610は、ドメインオントロジー622、ユーザ対話履歴624、およびさまざまなソース626またはエンティティを格納するのに用いることができるデータベース620を含む。サーバフレームワーク610はさらに、RDFグラフを生成および処理するリソースディスクリプションフレームワーク(Resource Description Framework:RDF)API612と、ドメインオントロジー622にアクセスしおよび/またはそのドメインオントロジー622を変更するオントロジーAPI614と、データベース610内のデータを検索および/または処理するSPARQL(Simple Protocol and RDF Query Language)API616とを含んでもよい。さまざまな実施態様において、サーバフレームワーク610は、Apache Jenaフレームワークを用いて実施することができる。サーバフレームワーク610および/またはインタプリタルール604を用いて、インタプリタAPI608は、最終的な意図640を生成することができる。
図7は、バーチャルパーソナルアシスタントプラットフォーム410の推論420のコンポーネントの実施例をより詳細に示す。上述したように、推論420のコンポーネントは、要求されたタスクを実行することができ、および/またはそのシステムを用いて、人からより多くの情報を要求することができる。図7は、タスクを実行するのに用いることができる推論システム700の実施例を示し、この場合、そのタスクは、決定された意図に基づいている。推論システム700は、別法としてまたは追加的に、システム700が、より多くの情報が必要であると判断した場合に、より多くの情報を集めることができる。さまざまな実施態様において、推論システム700は、対話管理702およびサーバフレームワーク710を含むことができる。対話管理702は、推論器ルール704と、推論器ルールエンジン706と、推論器API708とを含むことができる。推論器ルール704は、タスクを判断して実行するための構造およびモデルを提供することができる。推論器ルールエンジン706は、推論器ルール704を利用することができ、および推論ルール704を適用することができる。推論器API708は、推論器ルールエンジン706にインタフェースを提供することができる。推論器API708は、例えば、解釈システムによって生成された最終的な意図740を受け取ることができる。
推論器API708はさらに、サーバフレームワーク710によって提供されるデータベースおよびそのデータベースへのAPIを活用することができる。この実施例では、サーバフレームワーク710は、ドメインオントロジー722、ユーザ対話履歴724およびさまざまなソース726またはエンティティを格納するのに用いることができるデータベース720を含む。サーバフレームワーク710はさらに、RDFグラフを生成および処理するRDF API712と、ドメインオントロジー722にアクセスしおよび/またはそのドメインオントロジー722を変更するオントロジーAPI714と、データベース610内のデータを検索および/または処理するSPARQL API716とを含んでもよい。さまざまな実施態様において、サーバフレームワーク710は、Apache Jenaフレームワークを用いて実施することができる。
サーバフレームワーク710および/または推論器ルール704を用いて、推論器API708は、出力意図750を生成することができる。さまざまな実施態様において、出力意図750は、そのシステムのユーザおよび/または動作によって要求された情報とすることができ、その出力意図は、バーチャルパーソナルアシスタントを組み込んだ装置によって実行される。別法としてまたは追加的に、出力意図750は、より多くの情報を提供するための、ユーザに対する要求とすることができる。
図8は、バーチャルパーソナルアシスタントプラットフォーム410の出力生成422のコンポーネントの実施例をより詳細に示す。上述したように、出力生成422のコンポーネントは、その装置のユーザによって理解することができる出力を生成することができる。いくつかの実施態様において、その出力は、特定の人または人のグループに対してカスタマイズすることができる。図8は、オーディオ、ビデオおよび/または触覚入力に対するテキストおよび/またはグラフィックの応答を用意することができる出力生成システム800の実施例を示す。さまざまな実施態様において、出力生成システム800は、対話管理802およびサーバフレームワーク810を含むことができる。対話管理802は、出力ルールおよびテンプレート804と、出力ルールエンジン806と、出力生成API808とを含むことができる。出力ルールおよびテンプレート804は、出力を生成するための構造およびフォーマットを提供することができる。出力ルールエンジン806は、出力ルールおよびテンプレート804を利用することができ、およびそれらのルールおよびテンプレート804を適用することができる。出力生成API808は、出力ルールエンジン806にインタフェースを提供することができる。出力生成API808は、例えば、推論システムによって生成された出力意図850を受け取ることができる。
出力生成API808はさらに、サーバフレームワーク810によって提供されるデータベースおよびそのデータベースへのAPIを活用することができる。この実施例では、サーバフレームワーク810は、ドメインオントロジー822、ユーザ対話履歴824およびさまざまなソース826またはエンティティを格納するのに用いることができるデータベース820を含む。サーバフレームワーク810はさらに、RDFグラフを生成および処理するRDF API812と、ドメインオントロジー822にアクセスしおよび/またはそのドメインオントロジー822を変更するオントロジーAPI814と、データベース810内のデータを検索および/または処理するSPARQL API816とを含んでもよい。さまざまな実施態様において、サーバフレームワーク810は、Apache Jenaフレームワークを用いて実施することができる。
サーバフレームワーク810および/または出力ルールおよびテンプレート804を用いて、出力生成API808は、ユーザ出力860を生成することができる。ユーザ出力860は、スクリーン上に表示されるテキストとして、スピーカーを介して出力されるオーディオとして、および/またはスクリーン上に表示されるグラフィック画像としてフォーマット化することができる。
上述したように、バーチャルパーソナルアシスタントシステムは、階層化アプローチを用いて実施することができる。階層化アーキテクチャは、バーチャルパーソナルアシスタントシステムの迅速な開発を可能にすることができる。階層化アーキテクチャにおいて、バーチャルパーソナルアシスタントのコンポーネントは、特定の実施のために、ユニバーサルプラットフォームを再利用することができ、およびドメイン固有のコンポーネントのみを定義する必要があるようにモジュラー化することができる。ドメイン固有の層は、それ自体が、ドメイン固有のコンポーネントをその中で定義できるフレームワークを提供することができる。いくつかのドメインの場合、ドメイン固有のコンポーネントは、例えば、バーチャルパーソナルアシスタントが航空会社の予約システムに用いられる場合に、簡潔に定義することができる。他のドメインの場合、ドメイン固有のコンポーネントは、例えば、バーチャルパーソナルアシスタントがスマートフォンに組み込まれている場合には、幅広く定義することができる。
図9は、バーチャルパーソナルアシスタントシステムを迅速に作り出し、サポートしおよび/または維持するのに用いることができるバーチャルパーソナルアシスタント開発プラットフォーム910の実施例を示す。さまざまな実施態様において、バーチャルパーソナルアシスタント開発プラットフォーム910は、共用可能なオントロジー912と、複数の再利用可能なコンポーネント914と、ドメイン知識ベース916と、オントロジー追加エージェント918と、オントロジー視覚化モジュール920と、継承推論モジュール922とを含むことができる。バーチャルパーソナルアシスタント開発プラットフォーム910と、そのさまざまなコンポーネントは、コンピュータソフトウェア、ファームウェアおよび/またはハードウェアとして実施することができる。特定のドメインのためのバーチャルパーソナルアシスタントシステムを開発している開発者は、バーチャルパーソナルアシスタント開発プラットフォーム910を用いて、ドメイン固有のコンポーネントをより迅速に定義することができ、およびそのバーチャルパーソナルアシスタントシステムを装置またはシステムに一体化することができる。迅速な開発プラットフォームは、“Rapid Development of Virtual Personal Assistant Applications”と題する米国特許第9,081,411号明細書でも議論されており、参照によって、その明細書の全体を本願明細書に組み込むものとする。
「ドメイン」という用語は、本願明細書で用いる場合、関連してバーチャルパーソナルアシスタントシステムが人との対話を行う可能性のある情報のカテゴリーおよび/またはアクティビティを指すことができる。場合により、「ドメイン」は、特定のバーチャルパーソナルアシスタントシステムの範囲またはその一部を指す可能性がある。したがって、ドメインは、一つ以上のオントロジーコンセプト、および/または共用可能なオントロジー912で定義される特性に対応することができる。例えば、バーチャルパーソナルアシスタントシステムは、具体的に「オイルフィルタ」(単一のドメインまたはコンセプト)のための電子商取引ショッピングを目的としてもよいが、別のバーチャルパーソナルアシスタントシステムは、より幅広く、「自動車用品」(オイルフィルタ、スパークプラグおよび他の自動車用品を含み得る物品の幅広いカテゴリー)を目的としてもよい。さまざまな実施態様において、共用可能なオントロジー912は、OWL等の知識表現言語および/またはRDF等のオントロジーオーサリングメカニズムを用いて作り出し、アップデートしおよび維持することができる。
上述したように、オントロジーは、コンピュータ化した知識表現フレームワークである。図9の実施例の共用可能なオントロジー912は、一つのドメインのための、または、多数の異なるドメインのためのバーチャルパーソナルアシスタントシステムを開発するのに用いることができる「汎用」または「共用」のオントロジーである。すなわち、共用可能なオントロジー912は、一つのドメインまたは複数のドメインに関連する知識を表現するためのコンピュータ化された構造を定義することができる。このような構造は、オントロジーコンセプト(または「オブジェクト」)と、それらのコンセプトと関連付けられているプロパティ(または「属性」)と、それらのオントロジーコンセプトとプロパティとの間のデータ関係とを含む。例えば、汎用の「小売」ドメインのためのオントロジーでは、「製品」は、オントロジーコンセプトとすることができ、「色」、「説明」および「サイズ」は、「製品」コンセプトのプロパティとすることができ、「has-a」関係は、それらのプロパティの各々と、「製品」コンセプトとの間に存在するデータ関係の種類とすることができ、また、「is-a」関係は、「製品」というコンセプトと、「シャツ」というサブコンセプトとの間に存在するデータ関係の種類とすることができる。すなわち、この実施例では、シャツは、色、説明およびサイズを有する製品の種類である。したがって、さまざまな実施態様において、共用可能なオントロジー912は、人が、バーチャルパーソナルアシスタントシステムを用いて、それらに関して話す可能性の高い方法をモデル化するために、特定のオントロジーコンセプトおよびプロパティと、それらのコンセプトとプロパティとの間の関係とを定義することができる。別法としてまたは追加的に、共用可能なオントロジー912は、情報がオントロジー追加エージェント918に遭遇する方法と一致する可能性が高い方法で、特定のオントロジーコンセプト、プロパティおよび関係を定義することができ、そのことは、以下で説明する。
いくつかの実施態様において、共用可能なオントロジー912は、共用可能なオントロジー912が、現実世界の特定の部分に関する知識の「自然な」継承構造を活用するという点で階層的である。階層的オントロジーは、データおよび/またはバーチャルパーソナルアシスタントコンポーネントを、継承を介して共用および再利用できるようにする。
例えば、共用可能なオントロジー912は、すべてではないが、パンツのプロパティの多くはジーンズにも適用可能であるため、「ジーンズ」というオントロジーコンセプトおよび「パンツ」というコンセプトの間の継承関係を定義することができる。したがって、パンツのための電子商取引ショッピング用に設計されるバーチャルパーソナルアシスタントシステムの開発中に、プラットフォーム910は、共用可能なオントロジー912を用いて、開発者が、パンツに関する自然言語応答を作り出すのを援助することができる。共用可能なオントロジー912を介して、バーチャルパーソナルアシスタントプラットフォーム910は、パンツが「インシーム」を有していることを知り、およびインシームは、人のパンツサイズを決めるのに用いられる尺度であることを知ることができる。それに応じて、バーチャルパーソナルアシスタントプラットフォーム910は、バーチャルパーソナルアシスタントの開発者が、「あなたのインシーム測定値を教えて下さい。」等の自然言語応答を生成するのを提案するか、または、他の方法で援助することができ、およびその自然言語応答を、パンツのショッピング用のバーチャルパーソナルアシスタントシステムに組み込むことができる。さらに、バーチャルパーソナルアシスタントプラットフォーム910は、共用可能なオントロジー912を介して、ジーンズはパンツの一種であることを知っているため、バーチャルパーソナルアシスタントプラットフォーム910は、アプリケーション開発者が、「あなたのインシーム測定値を教えて下さい。」という既に作成されている自然言語応答と、「ジーンズ」というコンセプトを結び付けるのを提案するか、または、他の方法で援助することができる。バーチャルパーソナルアシスタントプラットフォーム910は、(共用可能なオントロジー912を介して)「インシーム」という自然言語応答と、ジーンズというコンセプトとの間の関連を「思い出す」ことができ、その結果、バーチャルパーソナルアシスタントシステムが、後に具体的にジーンズのための電子商取引ショッピング用に開発された場合、バーチャルパーソナルアシスタントプラットフォーム910は、バーチャルパーソナルアシスタントの開発者が、「インシーム」という自然言語応答を、ジーンズ専用の電子商取引バーチャルパーソナルアシスタントシステムに組み込むのを提案するか、または、別の方法で援助することができる。
いくつかの実施態様において、共用可能なオントロジー912は、再利用可能なコンポーネント914とドメイン知識ベース916の「合体」と見なしてもよい。いくつかの実施態様において、再利用可能なコンポーネント914および/またはドメイン知識ベース916の一部は、共用可能なオントロジー912またはその一部として、同じコンテナまたは複数のコンテナに格納してもよい(「コンテナ」は、一般的に、ある種のコンピュータ化されたデータ記憶メカニズムを指す)。例えば、パンツに関連する自然言語グラマー(例えば、「私は、ナチュラルフィットのカプリパンツが好きです」)である再利用可能なコンポーネントは、共用可能なオントロジー912を介して、ドメイン知識ベース916の「パンツ」というコンセプトに対応するコンテナと関連付けてもよく、または、そのコンテナに含めてもよい。いくつかの実施態様において、再利用可能なコンポーネント914は、再利用可能なコンポーネント914を格納し得る場所に関係なく、例えば、ポインタ、キー、リファレンスまたは他のプログラミングメカニズムを用いて、共用可能なオントロジー912を介して、ドメイン知識ベース916と関連付けることができる。
さまざまな実施態様において、再利用可能なコンポーネント914およびドメイン知識ベース916は、一旦、開発されると、特定のバーチャルパーソナルアシスタントシステムに用いることができる。再利用可能なコンポーネントは、バーチャルパーソナルアシスタントシステムのバーチャルパーソナルアシスタントプラットフォーム層に含めることができるユニバーサルコンポーネントを含むことができる。ユニバーサルコンポーネントは、一般的にはドメインに依存せず、およびすべてのバーチャルパーソナルアシスタントシステムに共通である可能性がある機能を提供する。したがって、これらのユニバーサルコンポーネントは、それらのコンポーネントをさまざまなバーチャルパーソナルアシスタントシステムにわたって再利用できるという意味において「再利用可能」である。再利用可能なコンポーネント914は、別法としてまたは追加的に、ドメイン固有のアプリケーションリソース層に含めることができるコンポーネントを含むことができ、この場合、これらのコンポーネントは、特定のドメインのために構成することができる。ドメイン固有のコンポーネントは、共用可能なオントロジー914に従って、および/またはオントロジー追加エージェント918により追加することができる、追加されていない構造、モデルおよび/またはデータベースを含むことができる。したがって、ドメイン固有のコンポーネントは、一つのバーチャルパーソナルアシスタントアプリケーションから別のバーチャルパーソナルアシスタントアプリケーションに再利用できるインフラストラクチャを提供することができるという点で「再利用可能」である。また、ドメイン知識ベース916は、ドメイン固有のアプリケーションリソース層にも含めることができ、または、例えば、ネットワークを通じて、バーチャルパーソナルアシスタントシステムと関連付けることができる。
再利用可能なコンポーネント914は、人のユーザと対話するのに、および/またはその対話に関するバーチャルパーソナルアシスタントの理解に基づいて、そのユーザのためにタスクまたはアクティビティを開始または実行するのに、そのバーチャルパーソナルアシスタントシステムが利用することができる、データ、ロジック、英数字テキスト要素、センテンスまたはフレーズ、変数、パラメータ、引数、関数呼び出し、ルーチンまたはプロシージャ等のソフトウェアコンポーネントおよび/または他のコンポーネントを含むことができる。再利用可能なコンポーネント914は、高レベルで次のように分類することができる。すなわち、ユーザの対話入力に関するユーザの意図した意味、目標または目的を理解する際にバーチャルパーソナルアシスタントシステムを援助するものと、バーチャルパーソナルアシスタントシステムが、ユーザの意図した意味、目標または目的に関して推論して、適切なシステム応答を決定するのを援助するものと、前にバーチャルパーソナルアシスタントシステムによって判断されたユーザの意図があれば、適切な方法で作成されたバーチャルパーソナルアシスタントシステム出力のために生成するものとである。
異なるオントロジーコンセプトと、プロパティとのデータ関係を定義することに加えて、共用可能なオントロジー912は、オントロジーコンセプトとプロパティと再利用可能なコンポーネント914との関係または「リンク」を定義することができる。すなわち、再利用可能なコンポーネント914は、共用可能なオントロジー912内のオントロジーコンセプトおよび/またはプロパティのうちの一つ以上とプログラムによって関連付けることができる。このようにして、共用可能なオントロジー912は、興味のある特定のドメインのためにバーチャルパーソナルアシスタントシステムを用いるために、再利用可能なコンポーネント914の選択を自動化するか、または、少なくとも部分的に自動化するのに用いることができる。共用可能なオントロジー912はさらに、興味のあるドメインのために選択したこれらのコンポーネントをインスタンス化するのに用いることができる。本願明細書で用いる場合、「関係」、「データ関係」、「リンケージ」および「リンク」等の用語は、専用のコンピュータプログラミング文またはコンストラクトを用いてソフトウェアで実施することができる論理関係または意味関係を指すことができる。例えば、人工知能ベースのシステムにおいて、このような文は、センテンスまたは公理と呼んでもよい(例えば、「パンツは衣料品である」、「ツールは小売用製品である」)。リンクメカニズムの他の形態、例えば、ポインタ、キー、リファレンスおよびその他も、共用可能なオントロジー912の要素間の、または、共用可能なオントロジー912と再利用可能なコンポーネント914との間の論理関係または意味関係を確立するのに用いてもよい。
ドメイン知識ベース916または「ドメインオントロジー」は、再利用可能なコンポーネント914間またはその中でのリンケージ/関係をガイドするために、共用可能なオントロジー912の構造全体またはその一部に含ませるか、またはそれらとリンクすることができる。すなわち、ドメイン知識ベース916で定義されたデータオブジェクトおよび属性は、共用可能なオントロジー912のコンセプト、プロパティおよびデータ関係に対応させることができ、その結果、共用可能なオントロジー912とリンクされている再利用可能なコンポーネント914は、(例えば、パラメータを実際のドメイン固有のデータ値と置き換えることにより)ドメインに適応させることができる。さまざまな実施態様において、ドメイン知識ベース916は、共用可能なオントロジー912のさまざまな要素に対応するデータレコードおよびデータ値をその中に記憶させることができる、一つのデータ構造または複数のデータ構造(例えば、データベース、テーブル、データファイル等)を含むことができる。一旦、(例えば、オントロジー追加エージェント918によって)追加されると、ドメイン知識ベース916は、「追加された」オントロジーまたはドメイン固有の「リーフ」、「ノード」、または、共用可能なオントロジーの「インスタンス」と呼んでもよい。
実施例として、ジーンズを販売する電子商取引ベンダーのためのバーチャルパーソナルアシスタントシステムを開発する際、共用可能なオントロジー912は、スタイル、色、サイズおよび取扱表示に関するプロパティを有するオントロジーコンセプトとして「ジーンズ」を含めるように定義することができる。対応するドメイン知識ベース916は、電子商取引ベンダーによって販売されるジーンズの各スタイルのデータ値をそれぞれ含む個別のデータレコード、各スタイルが利用可能な色およびサイズ、およびジーンズの各スタイルに適用可能な取扱表示を記憶することができる。ドメイン知識ベース916の追加されたバージョンは、そのオントロジーにおける「ジーンズ」というコンセプトの「スタイル」というプロパティに対応する「ブーツカット」および「スリム」等のデータ値を含むことができる。この実施例では、「スタイル」は、ドメイン知識ベース916内のデータ値をオントロジーと関連付ける「共通の特徴」と見なすことができる。ドメイン知識ベース916は、(例えば、アプリケーションプログラミングインタフェースまたはAPIを介して)ベンダーのバックエンドシステムとインタフェースをとって、または、オントロジー追加エージェント918の助けを借りて、手動データ入力を含む多くの異なる方法でデータ値をインスタンス化し、または、データ値を追加することができる。一旦、データ値を追加すると、ドメイン知識ベース916は、再利用可能なコンポーネント914の新たなバージョンまたはカスタマイズされたバージョンをインスタンス化するのに用いることができる。このことは、再利用可能なコンポーネント914と共用可能なオントロジー912との間のリンケージ、およびドメイン知識ベース916の要素と、共用可能なオントロジー912との間のリンケージによって行うことができる。
さまざまな実施態様において、追加エージェント918は、共用可能なオントロジー912を、自動化された方法で追加することができる。追加エージェント918は、インターネットウェブページ(または、追加エージェント918がアクセスできる他の電子データソース)からデータを取出し、「収集し」または他の方法で取得し、収集したデータを共用可能なオントロジー912の構造に対応付けして、ドメイン知識ベース916に追加する、コンピュータ化されたサブシステムまたはモジュール(例えば、ソフトウェア、ファームウェア、ハードウェアまたはこれらの組合せ)として実施することができる。例えば、オントロジー追加エージェント918は、興味のあるドメイン、または、ドメインにおけるアイテムに関連する、消費者との電子取引(例えば、電子商取引、金融取引、医療関連取引および/またはその他)をサポートするウェブページまたはウェブサイトを含む取引ウェブサイトをサポートするバーチャルパーソナルアシスタントシステムを開発するのに利用することができる。この実施例では、オントロジー追加エージェント918は、特定の用途のために再利用可能なコンポーネント914に適用されるか、または、再利用可能なコンポーネント914に組み込まれる必要がある適用可能なドメイン固有の情報を、関連のあるウェブページまたは複数のウェブページから収集するのに用いることができる。
場合により、他の種類の公的に利用可能な電子データソースを、オントロジー追加エージェント918によって取り出して、特定のバーチャルパーソナルアシスタントシステムに「供給する」ことができる知識の深さおよび/または広さを強化してもよい。例えば、競合他社のウェブページまたはウェブサイト、公的に利用可能な製品レビューページ、公的に利用可能な辞書および知識ベース(例えば、DICTIONARY.COM、WIKIPEDIAおよび/またはその他)、ソーシャルメディアサイトの公的エリア(例えば、FACEBOOK(登録商標)、GOOGLE+等)、公的に利用可能なブログおよび/または他のデータソースを取り出して、バーチャルパーソナルアシスタントシステムによる利用のために追加的な情報を提供してもよい。このような情報は、代替名、ニックネーム、類義語、略語等、ならびに現在のコンテキスト情報(例えば、電子商取引ドメインでは、競合他社の製品に関する情報、または、今、人気のある、または、会話でよくある話題になると思われる製品のアイテムまたはスタイル)を含んでもよい。
さまざまな実施態様において、オントロジー視覚化モジュール920は、共用可能なオントロジー912および/または再利用可能なコンポーネント914の双方向の説明を、人がアクセスできるフォーマットで提示するコンピュータ化されたサブシステムまたはモジュール(例えば、ソフトウェア、ファームウェア、ハードウェアまたはこれらの組合せ)として実施することができる。オントロジー視覚化モジュール920は、バーチャルパーソナルアシスタントの開発者または知識ベースのエンジニアが、共用可能なオントロジー912を視覚的にナビゲートおよび検討することを可能にすることができる。いくつかの実施態様において、視覚化モジュール920は、オントロジーのグラフィック表示を提示する。このような視覚化は、理解および利用するための高度なコンピュータプログラミングスキルを要することなく、エンドユーザまたは別の人にとって十分にシンプルにすることができる。オントロジー視覚化モジュール920はさらに、その開発者または他のユーザが、コンセプトおよびプロパティを、共用可能なオントロジー912のさまざまな要素およびレベルに割り当てて、それにより、それらのコンセプトとプロパティとの関係を定義することを可能にすることができる。オントロジー視覚化モジュール920は、例えば、ユーザが、例えば、コンピュータマウス、スタイラスまたは自分の指を利用して、共用可能なオントロジー912の一つの要素またはレベルから別の要素またはレベルへ、オントロジーコンセプトおよびプロパティのグラフィック表示を「ドラッグアンドドロップ」することを可能にすることにより、そのように行ってもよい。
さまざまな実施態様において、オントロジー視覚化モジュール920は、開発者または他のユーザが、同様の方法で、再利用可能なコンポーネント914と共用可能なオントロジー912を関連付けることを可能にすることもできる。例えば、図6から図8に示すように、VPAコンポーネント914と、それらの対応するオントロジーコンセプトとのリンクは、グラフィックでディスプレイスクリーン上に提示することができ、また、オントロジー視覚化モジュール920は、このようなリンクを「ポインティングおよびクリック」、「ドラッグおよびドロップ」またはユーザ入力の他のモードによって追加または変更できるようにすることが可能である。以下で説明する図10は、開発者に提示することができるディスプレイスクリーンの単純化した実施例を示す。その実施例のディスプレイスクリーンは、バーチャルパーソナルアシスタントシステムに含めるための再利用可能なコンポーネント914の選択を可能にすることができる。
いくつかの実施態様において、図9のオントロジー視覚化モジュール920は、継承推論モジュール922を含むことができる。さまざまな実施態様において、継承推論モジュール922は、共用可能なオントロジー912の組織的構造を活用して、バーチャルパーソナルアシスタントシステムの開発に必要な場合に、データ関係およびリンケージをプログラムで検討して追従することができる。このことを行うために、継承推論モジュール922は、共用可能なオントロジー912内のコンセプトとプロパティとの間のデータ関係を定義する既存のプログラム文(例えば、センテンスおよび/または公理)を分析することができる。このような文は、例えば、包含関係を示すことができ、共用可能なオントロジー912内の他のコンセプトのサブクラスまたはサブカテゴリとして定義されるコンセプトは、それら各々の親コンセプトのプロパティおよび関係のすべてを継承する(例えば、「子供」コンセプトは、その親によって「包含」される)。
多くの場合、(例えば、分かりやすい階層関係が含まれている場合)、継承推論モジュール922は推論アルゴリズムを必要とせず、または、継承推論モジュール922を省いてもよい。しかし、共用可能なオントロジー912が、(例えば、一時的な)他の種類の関係を含む場合、継承推論モジュール922は、一つ以上の自動推論アルゴリズムを適用して、追加されたドメイン知識ベース916を介して推論し、共用可能なオントロジー912に含まれている既存のデータ関係および/またはリンケージに基づいて、新たなデータ関係および/またはリンケージを推測することができる。すなわち、継承推論モジュール922は、データ関係および/またはリンケージの特定の組合せが共用可能なオントロジー912内に存在することに気付き、その気付いたことに基づいて、推論した関係を共用可能なオントロジー912に追加することができる。それに従って、オントロジー視覚化モジュール920は、新たなドメインまたは新たな一つのデータに適している可能性のあるデータ関係またはリンケージに関して、バーチャルパーソナルアシスタントシステムの開発者に提案または推奨を行うことができる。
実施例として、バーチャルパーソナルアシスタントの開発者が、ジーンズのショッピング用の新たなバーチャルパーソナルアシスタントシステムを設計している場合、その開発者は、「衣料品」を定義する「汎用」の電子商取引オントロジーを、「購入可能アイテム」というコンセプトのサブクラスまたはサブカテゴリとして利用することができる。その開発者は、バーチャルパーソナルアシスタントプラットフォーム910に、「ジーンズ」は、衣料品の一種であることを知らせることができ、または、バーチャルパーソナルアシスタントプラットフォーム910は、以下で説明するように、その関係を自動的に学習することができる。継承推論モジュール922はさらに、そのオントロジー内の「衣料品」コンセプトとリンクされている再利用可能なコンポーネント914のすべてまたは一部が、ジーンズ用の新たなバーチャルパーソナルアシスタントシステムに含まれることを開発者に提案することができる。場合により、モジュール922は、または、恐らく、オントロジー視覚化モジュール920のいくつかの他のメカニズム、または、より一般的には、バーチャルパーソナルアシスタントプラットホーム910は、その開発者からの入力を要することなく、新たなリンケージを自動的に確立するために続行することができる。そのような場合、オントロジー視覚化モジュール920は、例えば、開発者に新たな関係が既に作り出されていることを伝えるために、および/またはその開発者が、その関係を元に戻したり、変更したりする機会を可能にするために、その新たな関係の描写をディスプレイスクリーン上に提示してもよい。
図10は、図9の実施例のバーチャルパーソナルアシスタント開発プラットフォーム910を用いて構成したバーチャルパーソナルアシスタントシステム1010の実施例を示す。図10の実施例のバーチャルパーソナルアシスタントシステム1010は、マルチモーダルのユーザインタフェース1012と、バーチャルパーソナルアシスタントプラットフォーム1014と、複数のドメイン適応の再利用可能なコンポーネント1022とを含む。
さまざまな実施態様において、マルチモーダルのユーザインタフェース1012は、バーチャルパーソナルアシスタントシステム1010と情報をやりとりしている人によって提供された会話の自然言語入力を捉えることができる。さまざまな実施態様において、マルチモーダルのユーザインタフェース1012は、人からの視覚情報も、または、人によって提供された視覚情報も捉えることができる。また、さまざまな実施態様において、マルチモーダルのユーザインタフェース1012は、触覚入力装置を介して提供された触覚入力も捉えることができる。
いくつかの実施態様において、マルチモーダルのユーザインタフェース1012は、マイクロフォンまたは他のオーディオ入力装置を用いて、人が話した自然言語対話入力を捉えることができる。別法としてまたは追加的に、マルチモーダルのユーザインタフェース1012は、例えば、タッチパッド、キーパッド、タッチスクリーンまたは他の触覚入力装置によって、テキストベースの自然言語対話入力を捉えることができる。また、他の非言語入力も、例えば、タッチパッド、キーパッド、タッチスクリーンまたは他の入力装置により、マルチモーダルのユーザインタフェース1012を介して捉えることができる。このような入力は、例えば、マウスクリック、タップ、スワイプ、ピンチおよび/または他の触覚入力を含んでもよい。
いくつかの実施態様において、マルチモーダルのユーザインタフェース1012は、非言語の視覚情報を捉えることができる。例えば、マルチモーダルのユーザインタフェース1012は、顔の表情および/または虹彩画像を捉えることができる。場合により、マルチモーダルのユーザインタフェース1012は、例えば、カメラ、モーションセンサおよび/または運動センサを用いて、「装置から離れた」体の動きまたは他のジェスチャータイプの入力(例えば、手を振ること、頷き、目の動き等)を捉えることができる。
多くの場合、人とバーチャルパーソナルアシスタントシステム1010との間で行われる会話による対話は人によって開始されるが、このことは、必ずしも必要なことではない。いくつかの実施態様において、バーチャルパーソナルアシスタントシステム1010は、先を見越して作動し、および人の非言語入力に応じて、または、例えば、温度センサ、ジャイロセンサ、モーションセンサ、位置ベースシステム(例えば、全地球無線測位システムすなわちGPS、セルラーシステムおよび/またはその他)およびその他から得たか、または導き出した感知情報に応じて、その人との対話を開始してもよい。したがって、人の入力は、どちらも人によって開始され、およびシステムが生成した出力に応じて人によって提供される、言語入力および非言語入力を含むことができる。例えば、対話入力は、質問、要求、情報探索対話を始めるために人によって実行される発言、バーチャルパーソナルアシスタントシステム1010に何らかの動作を開始させるか、または、実行させるために人によって発せられたコマンド、システムが実行する動作への応答、および/またはシステム1010によって提示された質問への返答を含んでもよい。マルチモーダルのユーザインタフェース1012の一部は、人の対話入力を機械可読フォーマットに変換することができ、または、このことは、バーチャルパーソナルアシスタントプラットフォーム1014のコンポーネントによって行ってもよい。上述したように、マルチモーダルのユーザインタフェース1012によって捉えられて処理された対話入力は、オーディオ、画像、テキスト、他の何らかの自然言語入力、または、これらの入力の組合せの形態とすることができる。
マルチモーダルのユーザインタフェース1012によって捉えられた言語入力および非言語入力は、バーチャルパーソナルアシスタントプラットフォーム1014によって処理することができる。実施例のバーチャルパーソナルアシスタントプラットフォーム1014は、インタプリタ1016、推論器1018および出力生成器1020等の多くのコンポーネントを含む。さまざまな実施態様において、バーチャルパーソナルアシスタントプラットフォーム1014は、情報検索エンジン等の追加的なコンポーネントまたはモジュールを含んでもよい。いくつかの実施態様において、バーチャルパーソナルアシスタントプラットフォーム1014に含まれているような、以下で説明するいくつかのコンポーネントは、バーチャルパーソナルアシスタント1010の外部に配置してもよく、および通信リンク、例えば、ネットワーク接続によりバーチャルパーソナルアシスタント1010と情報をやりとりすることができる。
さまざまな実施態様において、インタプリタ1016は、人のマルチモーダル入力の意味を判断することを試みることができる。インタプリタ1016は、統計的に高い信頼度で、人の実際の意図または人のやりとりの目的に最も良く一致した、インタプリタ1016が判断したことの出力を生成することができる。音声対話入力の場合、インタプリタ1016(または、外部の自動音声認識(automated speech recognition:ASR)システム)は、人の自然言語オーディオを、インタプリタ1016によって実行されるさらなる分析に用いることができる、テキストまたは他の何らかの機械可読フォーマットに変換することができる。インタプリタ1016は、入力を構文解析しおよび/または注釈付けして、人の意図した意味をより良く理解するために、および/または(例えば、冠詞または他の余分な言葉を取り除くことにより)自然言語入力を抽出して、意味のある言葉にするために、構文規則、文法規則および/または意味規則を自然言語対話入力に適用してもよい。非言語のオーディオおよび/または画像入力の場合、インタプリタ1016は、意味規則および/またはモデルを非言語入力に適用して、人によって意図されている意味を判断することができる。別法としてまたは追加的に、いくつかの実施態様では、インタプリタ1016は、行動規則および/または行動モデルを適用して、人の感情状態を識別しようと試みることができる。
「目標」、「目的」または「意図」という用語は、本願明細書で用いる場合、人が自分の意図を伝えるのに用いる、言葉、ジェスチャー、顔の表情、および/または他の言語または非言語の合図に加えて、人の狙い、目標または目的に関するバーチャルパーソナルアシスタントシステム1010の試みた理解を表している。このことを行うために、バーチャルパーソナルアシスタントシステム1010は、対話コンテキストおよび/または人の現在のコンテキストの他の観点を考慮することができる。例えば、人は、「私は、それを買うだろう」または「それを発注してくれ」のようなことを言う可能性があるが、そのことは、実際には、人の目的が特定の製品を購入することであることを意味し、その製品は、前の対話の段階で既にその人によって識別されている可能性があり、または、他のマルチモーダル入力(例えば、オンスクリーングラフィックを選択するタップ)によってシステム1010により既に識別されている可能性がある。人が意図した対話の目標または目的の判断は、大抵、人工知能ベースの方法の適用を伴う。
ユーザ意図インタプリタ1016のいくつかの実施態様は、自動音声認識(ASR)システムおよび自然言語理解(natural language understanding:NLU)システムを含んでもよい。一般に、自動音声認識システムは、言葉から成る自然言語対話入力における話し言葉および/またはフレーズを識別して、それらを認識してテキスト形式(例えば、言葉、単語の列、フレーズ、「セグメント」、「チャンク」、「センテンス」または言語表現の他の形式)に変換することができる。一般に、自然言語理解システムは、自然言語入力に関する自動音声認識システムの文字による仮説を受け取る。場合により、自然言語入力は、(例えば、キーボードを使用してタイプ入力されることにより)テキスト形式で与えてもよく、この場合、自動音声認識処理は省いてもよい。
さまざまな実施態様において、自然言語理解システムは、自動音声認識システムによって既に処理されている自然言語対話入力の言語内容を構文解析し、意味的に分析し、および解釈することができる。換言すると、自然言語理解システムは、自動音声認識システムによって生成された言葉および/またはフレーズを分析し、例えば、その対話中に提示された他の言葉またはフレーズを、および/またはドメイン適応の再利用可能なコンポーネント1022のうちの一つ以上を考慮して、最も可能性の高い意図された意味を判断することができる。例えば、自然言語理解システムは、ルールベースの構文解析器および/または統計的構文解析器を適用して、言語コンテキストに基づいて、複数の可能性のある定義を有する言葉またはフレーズの意図した可能性のある意味を判断することができる(例えば、「ポップ」という言葉は、現在の対話入力の周辺の言葉および/またはフレーズ、対話の前の段階、および/または他のマルチモーダル入力を含むコンテキストに依存して、何かが破裂したことを意味する可能性があり、炭酸飲料を指す可能性があり、または、人のニックネームである可能性がある)。ハイブリッド構文解析器は、ルールベースの構文解析器の出力と、統計的構文解析器の出力との間の仲裁をして、それらの出力のうちのどれが、より良い信頼値を有しているかを判断することができる。
インタプリタ1016は、任意のマルチモーダル入力を用いて自然言語コンポーネントによって分析する際に、対話入力から導かれた、意図した可能性のある意味、目標および/または目的を結合することができる。インタプリタ1016は、この情報を、「ユーザ意図」の形で推論器1018に伝えることができる。いくつかの実施態様において、ユーザ意図は、人がバーチャルパーソナルアシスタントシステム101によって実行したい行動と、その行動の主題である対象(例えば、人、場所または物)を指定する、名詞と動詞の組合せとして、または、動作と目的語の組合せとして表され、例えば、「製品を買う」または「製品カテゴリーを検索する」と表される。
さまざまな実施態様において、インタプリタ1016は、マルチモーダル入力からの入力状態を判断することができる。例えば、インタプリタ1016は、言語的合図、例えば、言葉が話された方法、および/または言葉ではなかったものの言語化(例えば、笑い声、うめき声等)から感情状態を識別することができる。別の実施例として、インタプリタ1016は、視覚的合図、例えば、顔の表情、ボディランゲージおよび/またはジェスチャー等から感情状態を識別することができる。さまざまな実施態様において、そのインタプリタは、一つ以上の言語的合図および/または視覚的合図を合成して、その人の場合の入力状態を作成することができる。
一般的に言うと、推論器1018は、(ドメイン適応の再利用可能なコンポーネント1022のうちの一つ以上によって供給することができる)適用可能な対話モデル、ビジネス論理、ルール等を考慮して、ユーザ意図、入力状態および/または任意の他の利用可能な入力を合成することができる。推論器1018は、この分析から、人のために関して実行する可能性のある適切なタスクを、および/または入力の意味から導き出された、およびユーザ意図において反映された人の意図した目標または目的に対する可能性のある適切なシステム応答を決定することができる(この場合、「可能性のある適切な」とは、推論器1018によって判断されおよび/または評価された信頼性に関するコンピュータ化された統計的尺度を指すことができる)。場合により、可能性のある適切なシステムタスクまたは応答は、追加的な情報を人に要求することである可能性があるが、別の場合では、可能性のある適切なシステムタスクまたは応答は、入力に基づいて検索クエリを構成することを伴い、および情報検索プロセスを実行することができ、または、(例えば、外部のソフトウェアアプリケーションを起動するために、または、リンクをウェブサイトに追従させるために、または、マシンを制御するために)コンピュータプログラム論理の別の断片を実行してもよい。さらに他の場合には、適切なシステムタスクまたは応答は、バーチャルパーソナルアシスタントプラットフォーム1014が、ユーザ意図を明らかにするのを補助することができる追加的な入力をユーザから引き出すために、その人に情報を提示することであってもよい。
いくつかの実施態様、すなわち、推論器1018は、各会話の現在の状態およびフロー、または、人と、バーチャルパーソナルアシスタントシステム1010との間で行われる対話の経過を追う対話マネージャモジュールを含んでもよい。対話マネージャモジュールは、対話管理ルール、テンプレートまたはタスクフローを、例えば、人の現在のコンテキストに適している対話入力に適用してもよい。例えば、対話マネージャは、現在または最近得たマルチモーダル入力のうちの一つ以上に基づいて、会話が始まるか、または終了する場合を判断するためのルール、または、現在の入力が他の入力に関連しているか否かを判断するためのルールを適用してもよい。
一旦、推論器1018が、それによって人の入力に応答する動作の適切な行動指針を判断すると、推論器1018は、「出力意図」を出力生成器1020に伝えることができる。出力意図は、既に実行されている任意のワークフローの結果を考慮して、人の意図に対する最も可能性のある適切な応答である、推論器1018が高い統計的信頼度で判断した出力の種類を指定する。例えば、ユーザ意図が「製品を買う」であるが、推論器1018が、「在庫チェック」タスクフローを実行することにより、そのユーザが買いたい製品は購入可能ではないことを判断した場合、出力意図は、「代替製品を提案する」とすることができる。
場合により、推論器1018は、その出力を、(システムが生成した)自然言語フォーマットで提示すべきであることを指定してもよい。これらの場合、自然言語生成器は、出力意図の自然言語バージョンを生成するのに用いることができる。場合により、推論器1018はさらに、話された自然言語が、出力を提示するのに適切な形式であることを判断してもよい。これらの場合、スピーチシンセサイザまたはテキスト読み上げ(text-to-speech:TTS)モジュールを、自然言語生成器によって生成された自然言語テキスト(または、未処理の出力でも)を会話(例えば、人または人のような声を用いてマシンが生成した会話)に変換するのに用いることができる。別法としてまたは追加的に、そのシステム出力は、ディスプレイスクリーンに、および/または他の形式の出力で表示することができる視覚的に提示する資料(例えば、テキスト、グラフィックスまたはビデオ)を含んでもよい。
インタプリタ1016、推論器1018および/または出力生成器1020は、ドメイン適応の再利用可能なコンポーネント1022のうちの一つ以上にアクセスして利用することができる。ドメイン適応の再利用可能なコンポーネント1022は、図9に関連して上述した、特定のドメインに関連した用途に既に適応されている、再利用可能なコンポーネントのバージョンである。したがって、図10に示すドメイン適応の再利用可能なコンポーネント1022は、それらの再利用可能なコンポーネントの中で見付けることができるコンポーネントの実施例を示している。
ドメイン適応の再利用可能なコンポーネント1022は、ドメイン知識ベースの追加されたインスタンスからのデータを、再利用可能なコンポーネントに適用することによって作り出すことができる。具体的には、バーチャルパーソナルアシスタントプラットフォームは、再利用可能なコンポーネントと、共用可能なオントロジーとの間のリンケージ、およびドメイン知識ベースと、共用可能なオントロジーとの間のリンケージを利用して、ドメイン知識ベースからの情報を、適切な再利用可能なコンポーネントに接続することができる。例えば、ドメイン知識ベースの追加されたインスタンスにおけるデータ値は、再利用可能なコンポーネントにおけるそれらの対応するパラメータに対応付けて、ドメイン適応の再利用可能なコンポーネント1022を形成することができる。
実施例として、バーチャルパーソナルアシスタントの開発者が、電子商取引の具体的なドメイン、例えば、ジーンズショッピング用の新たなバーチャルパーソナルアシスタントシステムを開発しているときに、その開発者は、「製品を買う」という意図226である再利用可能なコンポーネントを選択することができる。継承推論モジュールは、共用可能なオントロジーにおける「製品」コンセプトと関連付けられている他の再利用可能なコンポーネントも、ジーンズに、および共用可能なオントロジーにおいて定義されている製品コンセプト(例えば、「小売店」等)の任意の「親」コンセプトと関連付けられているものにも適用可能である可能性が高いことを推測することができる。したがって、継承推論モジュールは、新たなバーチャルパーソナルアシスタントシステム1010に包含するための(そのオントロジーの「製品」コンセプトを介した)「製品を買う」という意図に結び付けられている他の再利用可能なコンポーネントのすべてを、その開発者に勧めることができる。このようにして、継承推論モジュールは、特定のドメインための再利用可能なコンポーネントの選択およびインスタンス化の自動化を支援することができ、その結果、バーチャルパーソナルアシスタントの開発者が手で、新たなコンセプトを作り出す必要性、または、コンポーネントの新たなバージョンを作り出す必要性はない。
ドメイン適応の再利用可能なコンポーネント1022は、入力、構造、ルールおよび/またはモデルを、バーチャルパーソナルアシスタントプラットフォーム1014のコンポーネントに供給する複数の異なるコンポーネントを含む。図示されている実施例において、ドメイン適応の再利用可能なコンポーネント1022は、自然言語グラマー1024と、意図1026と、インタプリタフロー1028と、タスクフロー1030と、ルール1032と、自然言語応答1034と、出力テンプレート1036と、音響モデル1038と、言語モデル1040と、統計的モデル1042とを含む。
自然言語グラマー1024は、例えば、テキストフレーズおよびテキストフレーズの組合せならびに変数またはパラメータを含み、これらは、バーチャルパーソナルアシスタントシステム1010が、人から受け取ることを予測できる自然言語対話入力のさまざまな代替的形式を表す。したがって、自然言語グラマー1024は、バーチャルパーソナルアシスタントプラットフォーム1014を支援することができ、または、より具体的には、インタプリタ1016は、人の実際の自然言語対話入力をユーザ意図に対応付けることができる。場合により、インタプリタ1016は、自然言語グラマー1024を用いて、ユーザ意図を判断することができるルールベースの構文解析器を含んでもよい。統計的構文解析器は、それによってインタプリタ1016がユーザ意図を判断することができる別のメカニズムである。ルールベースの構文解析器が自然言語グラマー1024を用いるのに対して、統計的構文解析器は、異なるユーザ発言をモデル化して、統計的に最も可能性のある適切なユーザ意図を判断する統計的モデル1042を用いることができる。
意図1026は、上述したように、インタプリタ1016によって解釈される際の人の入力の意図した目的に関する、コンピュータが理解できるフォームである。したがって、意図1026は、他のドメイン適応の再利用可能なコンポーネント1022(例えば、グラマー1024および統計的モデル1042)からの助けによって導き出すことができる。意図1026は、バーチャルパーソナルアシスタントプラットフォーム1014、または、具体的には、推論器1018が、人の入力に応答して、適切な行動指針を判断するのを支援する。上述したように、ユーザ意図は、「製品を買う」等の名詞と動詞/動作の組合せとして表すことができる。
インタプリタフロー1028は、バーチャルパーソナルアシスタントプラットフォーム1014、または、より具体的にはインタプリタ1016が、人の意図の意図した意味または目的を判断するのを支援する、装置、構造、ルール、リストおよび/またはモデルとすることができる。例えば、インタプリタフロー1028は、対話入力の組合せまたはシーケンスが、時間的に近接して行われた場合に、特定のユーザ意図を示すことができるそれらの組合せまたはシーケンスを含んでもよい。
(「ワークフロー」と呼んでもよい)タスクフロー1030は、バーチャルパーソナルアシスタント1010が、人の入力に応答して、または、別のタスクフローの完了に応答して実行することができる動作を定義することができる。したがって、タスクフローは、動作とパラメータまたは引数の組合せまたはシーケンスを含んでもよい。
ルール1032は、バーチャルパーソナルアシスタントプラットフォーム1014が適用できる多くの異なるルール(例えば、if-then論理)を含んでもよい。例えば、ルール1032は、出力生成器1020のためのルールを含んでもよく、この場合、そのルールは、一日の一定時間後、出力生成器1020が、オーディオ応答を低めのボリュームで出力しなければならないこと、または、オーディオではなく、テキストのみで出力しなければならないことを規定する。
自然言語応答1034は、それらが、例えば、バーチャルパーソナルアシスタント1010が人に提示することができる、可能性のあるシステム生成自然言語対話出力のさまざまな代替的フォームを表す、テキストフレーズ、およびテキストフレーズと変数またはパラメータの組合せを含むという点で、自然言語グラマー1024と同様である。したがって、自然言語応答1034は、バーチャルパーソナルアシスタントプラットフォーム1014、または、より具体的には、出力生成器1020が、推論器1018によって作成された出力意図を、適切な対話出力に対応付けるのを支援することができる。
音響モデル1038、言語モデル1040および統計的モデル1042は、汎用レベルで定義して、共用可能なオントロジーを介して、特定のドメインに適応させることができる、追加的な再利用可能なコンポーネントである。バーチャルパーソナルアシスタントプラットフォーム1014、または、より具体的には、インタプリタ1016および/または推論器1018は、モデル1038、1040、1042のうちの一つ以上に照会して、最も可能性のあるユーザ意図を判断することができる。例えば、インタプリタ1016の一部において、または、より具体的には、自動音声認識コンポーネントは、音響モデル1038を用いて、口で発音された言葉またはフレーズを、それらのテキストの上で同等のものに対応付けることができる。いくつかの実施態様において、標準的な高帯域音響モデルは、あるドメインに固有である可能性のある特定の言葉遣いまたは語彙を説明するように適応させることができる。例えば、「ブーツカット」や「アシッドウォッシュ」等の用語は、婦人用ジーンズの販売を対象とするバーチャルパーソナルアシスタントシステムに対しては重要である可能性があるが、他のコンテキストにおいては無意味である可能性がある。したがって、バーチャルパーソナルアシスタントの開発者に、共用可能なオントロジーにリンクされているドメイン知識ベース(および音響モデル1038もそれにリンクされている)におけるそれらの用語の包含によって、音響モデル1038におけるそれらの用語のオーディオ発話に関する数学的表現を含めるように促してもよい。同様に、(例えば、自動音声認識モジュールによって認識された一連の言葉が、質問または発言を表しているのか否かを判断することができる)言語モデル1040および統計的モデル1042は、再利用可能なコンポーネントとしてバーチャルパーソナルアシスタント開発プラットフォームに設けて、特定のドメインに関連する用途のために適応させることができる。
II.マルチモーダル入力処理
バーチャルパーソナルアシスタントシステムは、一般的に、ある種のインテリジェントインタラクティブシステム(Intelligent Interactive System:IIS)として説明することができる。図11は、インテリジェントインタラクティブシステム1100の構造および動作の実施例を示す。インテリジェントインタラクティブシステムは、タスクを完了し、人と対話を行うのに必要な場合に、前後の一連のやりとりに関わることが可能な会話システムであり、この場合、そのシステムの応答は、人が言ったか、または行った最後のことだけでなく、場合によっては、その会話の前の時点で、もしくは過去何日あるいは何週間も前に、言ったかまたは行ったことにも基づいている。また、インテリジェントインタラクティブシステムは、話された言葉またはタイプされた言葉として入力された自然言語入力だけではなく、オーディオ、視覚的および/または触覚入力に由来する非言語の合図にも応答することができる。すなわち、そのシステムは、行動合図、例えば、ジェスチャー、顔の感情、声のボリュームまたはペース等を用いて、人の感情的状態および/または認知的状態を理解することができる。したがって、そのシステムは、行動合図を活用して、人のコミュニケーションの流儀に適応させることができる。また、インテリジェントインタラクティブシステムは、明確な合図および行動合図の両方を含むモダリティを組合せて、人のコンテキストを十分に理解することもできる。また、インテリジェントインタラクティブシステムは、人の能力を理解して、それに適応することもできる。
図11に示すように、インテリジェントインタラクティブシステム1100は、オーディオ入力1110、画像入力1120、および触覚入力1130を取り込むことができる。システム1100はさらに、声で返答し、ポジティブ音およびネガティブ音を生成し、音楽を再生する等を含むオーディオ応答1112を出力することができる。システム1100はさらに、画像またはウェブサイトの表示、ビデオの再生、指示を与えること等を含む視覚的応答1122を与えてもよい。また、システム1100は、例えば、特に、ドアを開ける、機械を作動させる、または、取引を開始する等の動作1132を行うこともできる。
インテリジェントインタラクティブシステム1100は、人と情報をやりとりするために、観察システム1152、理解および明確な入力システム1156、および動作または適応システム1158を含んでもよい。観察システム1152は、人の明確な合図および環境を観察することができる。この情報を利用して、観察システム1152は、人の状態およびタスクの進行のより深い理解を進展させることができる。観察システム1152は、連続的なオーディオ入力および/または視覚的入力を活用することができ、および入力データの意味を理解することによって、人に関することを予測することができる。観察システム1152は、特にピッチダイナミクス、ボイスエネルギおよび発声速度等のオーディオ情報を測定することができる。また、観察システム1152は、顔の表情、ボディランゲージ、視線の方向、およびシーンまたは環境等の視覚情報を測定することもできる。観察システム1152は、視覚的合図および可聴合図のためのモデルを含んでもよいデータモデル1154にアクセスして、怒り、不安、当惑、悲しみ等を含んでもよい人の状態を判断することができる。
理解および明確な入力システム1156は、人からの明確なマルチモーダル入力を理解することができる。これらの明確な入力は、例えば、ジェスチャー、ヘッドトラッキング、発話、ならびに接触、タップおよびタイピング等の触覚入力を含むことができる。理解および明確な入力システム1156は、この情報から、人の明確な意図を判断することができる。
観察システム1152によって実施される観察は継続される可能性があるが、理解および明確な入力システム1156によって判断される人の意図は、対話ベースである可能性があることを留意すべきである。具体的には、インテリジェントインタラクティブシステム1100は、人によって提供された最も直近の入力から人の意図を判断することができる。対照的に、インテリジェントインタラクティブシステム1100は、明確な入力および観測した入力の両方から、連続フローで観察結果を導き出すことができる。
動作または適応システム1158は、人の入力に対するインテリジェントインタラクティブシステム1100の応答を作成することができる。動作または適応システム1158は、例えば、理解および明確な入力システム1156によって導き出された人の意図に合う(または、合うように試みる)明確な動作を行うことができる。動作または適応システム1158は、別法としてまたは追加的に、観察システム1152によって提供された人の状態の観察結果を用いて、その行動を適応させることができる。
理解および明確な入力システム1156と、動作または適応システム1158はともに、判断を行う際に、これらのシステムを援助するデータモデル1160にアクセスすることができる。データモデル1160は、時間データモデルおよび/またはドメインモデルを含んでもよい。時間モデルは、インテリジェントインタラクティブシステム1100との人のやりとりの時間的性質を記憶することを試みる。例えば、時間モデルは、観察結果と、それらの観察結果につながる特徴とを記憶してもよい。また、時間モデルは、意図と、システムの関連する応答および適応とを記憶してもよい。ドメインモデルは、観察と特徴の関連、および特定のドメインの場合の意図と応答の関連を記憶してもよい。ドメインモデルは、一般に、時間要素を必要とせず、その代わりに、特定のドメインに関して知っていることおよび/または予想していることに依存する。
上述したように、バーチャルパーソナルアシスタント等のインテリジェントインタラクティブシステムは、人のマルチモーダル入力を理解するコンポーネントを有することができ、そのマルチモーダル入力を意図および/または入力状態として解釈することができ、ならびにその意図および/または入力状態に対処する最良の応答または行動指針に関して推論することができる。理解、解釈および推論を実施するために、バーチャルパーソナルアシスタントは、複数のオーディオ分析ツールおよび画像分析ツールを有している。これらのオーディオ分析ツールおよび画像分析ツールは、オーディオ入力および視覚入力をそれぞれ分析して、その入力の特定のアスペクトを理解し、および解釈することが(および、場合により、推論することも)できる。さまざまな実施態様において、バーチャルパーソナルアシスタントは、オーディオ分析ツールおよび画像分析ツールによって実施された理解ならびに触覚入力によって提供された情報を組合せて、人の入力に関するマルチモーダル分析に基づいている、意図および/または入力状態を生成することもできる。その結果、さまざまな実施態様において、バーチャルパーソナルアシスタントは、マルチモーダル意図および/または入力状態を用いて推論することができる。
図12は、インテリジェントインタラクティブシステムまたはバーチャルパーソナルアシスタントが、オーディオ入力1210を処理するのに用いることができるオーディオ分析1260のツールの実施例を示す。オーディオ入力1210は、ハミング、笑い、咳払い等の言葉と音の両方を含んでもよい。オーディオ分析1260のツールは、オーディオ入力1210を処理して、オーディオ入力1210の意味解釈を与えることができる。例えば、オーディオ分析1260のツールは、一連の音を、「Johnに電話をかけて下さい。」という言葉として解釈することができる。別の実施例として、オーディオ分析1260のツールは、特定の音を笑いとして解釈して、「笑い」という言葉をその音と関連付けることができる。別の実施例として、オーディオ分析1260のツールは、特定の音を、話し手にはイギリス訛りがあることを示しているとして解釈することができる。いくつかの実施態様において、オーディオ分析1260のツールは、バーチャルパーソナルアシスタントの他の部分が用いることができ、および処理することができるフォーマットで、意味情報を出力することができる。
図示されている実施例において、オーディオ分析1260のツールは、音声認識エンジン1212と、発話感情検出エンジン1214と、声紋認証検出エンジン1216とを含んでいる。これらのオーディオ分析1260のツールは、バーチャルパーソナルアシスタントが、オーディオ入力1210を分析するために有してもよいツールの実施例として記載されている。さまざまな実施態様において、バーチャルパーソナルアシスタントは、追加的または代替的なツールを含んでもよく、および/または複合分析(例えば、音声認識と発話感情検出)を実行することが可能なツールを有していてもよい。音声認識エンジン1212は、オーディオ入力1210内の言葉を認識することができ、および識別した言葉をテキスト1262として生成することができる。発話感情検出エンジン1214は、オーディオ入力1210内の感情内容を識別して、識別した感情の言葉による記述1264を生成することができる。声紋認証検出エンジン1216は、人の声の特徴を識別して、身体的特徴および/または行動的特徴1266の記述を生成することができる。オーディオ分析1260のツールの各々の実施態様例を以下に記載する。
図13は、バーチャルパーソナルアシスタントが、画像入力1320を処理するのに用いることができる画像分析1370のツールの実施例を示す。画像入力1320は、静止画像、動画(例えば、ビデオ)、および可視スペクトル内で利用可能なもの以外の静止画像および/または動画取得データ(例えば、暗視画像、熱検知画像、赤外線画像等)を含んでもよい。画像分析1370のツールは、画像入力1320を処理して、画像入力1320の意味解釈を生成することができる。例えば、画像分析1370のツールは、ランプまたは特定の人の顔である特定の画像を解釈して、「ランプ」または「John」を出力することができる。別の実施例として、画像分析1370のツールは、ビデオが、人が退屈しているか、または興奮していることを示すものとして解釈し、「退屈」または「興奮」を出力することができる。別の実施例として、画像分析1370のツールは、虹彩を含む画像を解釈して、その虹彩が「John」のものであることを出力する。いくつかの実施態様において、画像分析1370のツールは、バーチャルパーソナルアシスタントの他の部分が用いることができ、および処理することができるフォーマットで意味情報を出力することができる。
この実施例で示す画像分析1370のツールは、物体/顔認識エンジン1322と、視覚感情検出エンジン1324と、虹彩認証エンジン1326とを含んでいる。これらの画像分析1370のツールは、バーチャルパーソナルアシスタントが、画像入力1320を分析するために有してもよいツールの実施例として記載されている。さまざまな実施態様において、バーチャルパーソナルアシスタントは、追加的または代替的なツールを含んでもよく、および/または複合分析(例えば、顔認識と感情検出)を実行することが可能なツールを有していてもよい。物体/顔認識エンジン1322は、画像またはビデオ内の物体を識別して、その物体の言葉による記述を生成することができる。また、物体/顔認識エンジン1322は、顔を認識して、その顔に関連する識別、例えば、名前および/またはカテゴリ(例えば、「子供」または「大人」)を生成することもできる。視覚感情検出エンジン1324は、人の顔および/または体を捉えた画像またはビデオから人の感情を判断することができる。視覚感情検出エンジン1324は、検出した感情の言葉による記述を生成することができる。虹彩認証エンジン1326は、画像入力1320内で取得した眼を検査して、その虹彩の身体的特徴および/または行動的特徴1376を生成することができる。画像分析1370のツールの各々の実施態様例を以下に記載する。
図14は、バーチャルパーソナルシステムが、触覚入力1430を受け取るのに用いることができる触覚入力フォーマット1480のツールの実施例を示す。触覚入力1430は、人が、自分の指、手、または、他の体のある部分を用いてそのシステムに入力する入力、または、キーパッド、タッチスクリーン、スタイラスまたはペン、ジョイスティック、虹彩スキャナ、指紋スキャナ、バーコードスキャナ等の機械的または電子装置を用いてそのシステムに入力する入力を含んでもよい。触覚入力フォーマット1480のツールは、触覚入力1430をそのシステムに入力することができるいくつかの方法で記述する。触覚入力フォーマット1480のツールはさらに、触覚入力1430の解釈を提供する。いくつかの実施態様において、触覚入力フォーマット1480のツールは、バーチャルパーソナルアシスタントの他の部分が用いることができ、および処理することができる解釈を出力することができる。
図14に示す実施例の触覚入力フォーマット1480のツールは、タイプ入力されたテキスト1432のツールと、オンスクリーン選択1434のツールと、タッチスクリーンジェスチャー1436のツールとを含んでいる。これらの触覚入力フォーマット1480のツールは、バーチャルパーソナルアシスタントが、触覚入力を受け入れるために有してもよいツールの実施例として記載されている。さまざまな実施態様において、バーチャルパーソナルアシスタントは、追加的または代替的なツールを含んでもよく、および/または複数の種類の触覚入力(例えば、タッチスクリーンジェスチャーおよびタッチ選択)を受け入れることが可能なツールを有していてもよい。タイプ入力されたテキスト1432のツールは、機械的キーボード、または、オンスクリーンのタッチベースのキーボード等のキーボードを用いて、テキスト1482の入力を生成する。オンスクリーン選択1434のツールは、マウス、ジョイスティック、スタイラス、指または他の何らかの選択ツールを用いて、人によって行われた選択1484を実行できる。選択1484は、例えば、チェックボックス、ラジオボタン、ドロップダウンメニュー、動作を開始するボタン、テキスト入力のフィールド、メニュー、アイコン、ハイパーテキストリンク等を含む。タッチスクリーンジェスチャー1436のツールは、タッチスクリーンへの入力、例えば、タップ、スワイプ、パンニング、スクロールおよびマルチタッチ入力を解釈し、この場合、タッチスクリーンは、2つ以上の箇所で同時に接触される。タッチスクリーンジェスチャー1436のツールは、タッチ入力を解釈して、その入力から解釈したコマンド1486を生成する。
いくつかの実施態様において、バーチャルパーソナルアシスタントは、上述したように、オーディオ分析、画像分析および触覚入力ツールによって提供される情報に関して作動することができる。また、いくつかの実施態様において、バーチャルパーソナルアシスタントは、オーディオ入力、視覚入力および触覚入力をさらに解釈するのに用いることができる一つ以上の選好モデルも含む。
図15は、選好モデル1540の実施例を示す。ある場合には、選好モデルは、ユーザが、装置またはシステムをカスタマイズすることを可能にする「設定」または「オプション」と呼ぶこともできる。例えば、スマートフォン用の選好モデルは、スマートフォンユーザの好ましい着信音、背景画像、および装置をロック解除するためのユーザの親指の指紋等の情報を用いてプログラムすることができる。また、スマートフォンの選好モデルは、ユーザの電話アカウント情報、電子メールアドレス、パスワード等の情報を記憶することもできる。人が選好モデル1540に入力または設定することができる情報を記憶するために、選好モデル1540は、プログラムされた好み1542のセットを含んでもよい。プログラムされた好みは、時間とともに変化してもよいが、一般的には、装置のユーザが変更を開始した場合にのみ変更することができる。
また、選好モデル1540は、学習した好み1544のセットを含むこともできる。プログラムされた好み1542とは違って、学習した好み1544は、バーチャルパーソナルアシスタントを使用可能な装置に関する人の利用を介して得られる。例えば、学習した好み1544は、過去にその装置に入力された、オーディオベースの入力1510、画像ベースの入力1520および触覚ベースの入力1530を保持することができる。学習した好み1544はさらに、特定の入力によって作られた関係を保持してもよい。例えば、学習した好み1544は、(例えば、テキスト入力または音声コマンドを介して入力された)アンティークショップに対する繰り返し検索を、骨董品の趣味と関連付けてもよい。別の実施例として、学習した好み1544は、特定の言葉またはフレーズに関する人の使用を、その人が所属する特定の文化的または社会的グループと関連付けてもよい。別の実施例として、学習した好み1544は、人との対話で尋ねた質問に応答して生成された情報、例えば、その人の子供の名前や年齢等を記憶してもよい。
選好モデル1540は、記憶した、プログラムされた好み1542と、学習した好み1544を用いて、バーチャルパーソナルアシスタントを使用可能な装置との人のやりとりをカスタマイズすることができる。この実施例に示す選好モデル1540は、オーディオベースの入力1510、画像ベースの入力1520および/または触覚ベースの入力1530を入力として受け取ることができる。これらのさまざまな入力は、例えば、図12から図14に示すツールによって提供することができる。図15のプログラムされた好み1542および/または学習した好み1544は、好み1542、1544に従って入力をフィルタリングおよび/または調節するために、入力1510、1520、1530に適用することができる。したがって、選好モデル1540は、バーチャルパーソナルアシスタントの他の部分による利用のために、カスタマイズされたオーディオベースの入力、カスタマイズされた画像ベースの入力1522および/またはカスタマイズされた触覚ベースの入力1532を提供することができる。例えば、触覚ベースの入力1530は、選好モデル1540が、プログラムされた好み1542をそれに適用して、人を認証することができる、親指指紋スキャナを用いて入力されたその人の親指の指紋を含んでもよい。別の実施例として、オーディオベースの入力1510は、話し手が近くのコーヒーショップを探していることを示していてもよい。この実施例では、選好モデル1540は、そのエリアを検索する際に学習した好み1544を適用し、またそのエリア内のアンティークショップを見付けることもできる。学習した好み1544から、その人が骨董好きであることが分かると、バーチャルパーソナルアシスタントは、近くのコーヒーショップの位置を提供し、およびそのコーヒーショップの近くにアンティークショップがあること、およびそれがどこで見つかるかを話し手に知らせてもよい。
上述したように、バーチャルパーソナルアシスタントは、オーディオおよび画像データから理解し、解釈しおよび/または推論して、人の意図および/または入力状態を判断することができる可能性があるさまざまなオーディオ分析ツールおよび画像分析ツールを含んでもよい。図16から図18は、オーディオ分析ツールの実施態様例を説明し、また、図19から図21は、画像分析ツールの実施態様例を説明している。図16から図21の実施例は、バーチャルパーソナルアシスタントが、与えられたオーディオ入力または画像入力を理解し、解釈しおよび/または推論するのに用いてもよい、可能性のあるツールの理解の際に支援するために記載されている。バーチャルパーソナルアシスタントには、他のツール、または、ここで議論したツールに関する変形例を設けてもよい。いくつかのツールが、理解、解釈および推論が可能であるとして以下で説明されているが、いくつかの実施態様において、バーチャルパーソナルアシスタントは、理解態様のみを用いてもよく、および理解の出力を用いて、マルチモデルの解釈および推論を実施してもよい。別法として、いくつかの実施態様において、バーチャルパーソナルアシスタントは、理解および解釈の態様を用いてもよく、および解釈の出力を用いて、マルチモーダルの推論を実施してもよい。
図16は、オーディオ分析ツール、具体的には、適応音声認識システム1600の実施例を示す。適応音声認識システム1600は、バーチャルパーソナルアシスタントを使用可能な装置が受取ったオーディオ入力の意味解釈を提供するのに用いることができる。実施例の音声認識システム1600は、記憶された発話モデルを用い、および条件付きの最大尤度変換アプローチを用いて、個々の話し手に適応させる。このアプローチの下で、記憶された発話モデルは、それらのモデルが、個々の話し手の特定の発話パターン(例えば、訛り、抑揚、言葉の癖等)により良く一致することができるように、次第に変換される。くわえて、条件付きの最大尤度変換アプローチを適用することにより、そのシステムが、個々の話し手に対して調節するのに必要な時間を減らすことができる。条件付き線型変換は、比較的少量の話し手依存のトレーニングデータから導き出すことができる。話し手依存のモデルへの変換を適用することは、話し手適応モデルのセットを生成する。話し手適応モデルは、個々の話し手に対する音声認識システムのパフォーマンスを大幅に向上させることができる。さまざまな実施態様において、実施例の音声認識システム1600は、オーディオ入力から導き出した意味情報を、テキスト1625の形式で出力する。このアプローチを用いる音声認識システムは、“Method and Apparatus for Speech Recognition Adapted to an Individual Speaker”と題する米国特許第5,864,810号明細書にも記載されており、参照によって、その明細書の全体を本願明細書に組み込むものとする。
図16は、話し手適応音声認識システム1600に含めることができるコンポーネントの一つの実施例を示す。この実施例のシステム1600は、オーディオ捕捉装置1602と、特徴抽出モジュール1603と、トレーニングエンジン1607と、認識エンジン1610と、適応エンジン1613と、記憶した話し手の影響を受けないモデルのセット1617と、クラスタリングエンジン1620と、記憶した話し手適応モデルのセット1623と、出力レシーバ1625とを含んでいる。いくつかの実施態様において、システム1600は、記憶した話し手依存モデルのセット1630を含んでもよい。図16のシステム1600は、適応音声認識システムの単に一つの実施例として示されており、より多くのコンポーネント、より少ないコンポーネント、または異なるコンポーネントを含む変形例も可能である。
オーディオ捕捉装置1602は、オーディオ信号を検出し、記録しおよび送信することができる装置である。オーディオ捕捉装置1602は、例えば、マイクロフォンを含んでもよい。いくつかの実施態様において、オーディオ捕捉装置1602は、変換エンジン、例えば、アナログ信号をディジタル信号に変換することができるエンジン、または、オーディオ入力信号を、特定のフォーマットで(例えば、磁気テープに)捕捉することができるエンジンを含んでもよい。
さまざまな実施態様において、オーディオ捕捉装置1602は、特徴抽出1603のモジュールとともに作動することができる。特徴を抽出することは、オーディオ入力信号を、必ずしもそうではないが、一般的に、同じ期間の複数の時間ウィンドウに分割することを含んでもよい。また、それらの時間ウィンドウは、フレームと呼んでもよい。そして、周波数、ピッチ、トーン等の音響特性を、各時間ウィンドウに対して測定して、各時間ウィンドウ内に存在する特定の言語的特徴を識別することができる。
さまざまな実施態様において、抽出した特徴は、トレーニングエンジン1607に提供することができる。トレーニングエンジン1607は、トレーニング段階中に、適応音声認識システム1600が利用することができる。トレーニング段階中には、典型的には、所定のまたは予め用意されたテキストの形式のトレーニングデータがシステム1600に入力される。例えば、人のグループは、集団の代表として選択してもよく、また、トレーニング集団と呼んでもよい。その場合、グループ内の各人は、所定の同じテキストをシステム1600に読み出すことができる。また、トレーニングエンジン1607にも、所定のテキストが設けられ、およびオーディオ入力信号から抽出された特徴を、そのテキストで識別された音(phone)および/または音素と関連付けることができる。
音素は、言語の意味を区別する最小の構成単位であるが、音は、実際の発話における音素のインスタンスである。音素は、それ自体は物理的セグメントではないが、物理的セグメントの認識抽出またはそれらのカテゴリー化である。「音」は、本願明細書で用いる場合、特に、単一の固有の言語音を表すアルファニューメリックまたは記号表記法を指す場合がある。例えば、“stick”、“bittle”、“bit”および“tick”における“t”の発音は、その言葉におけるそれらの位置により、物理的に異なるサウンド(音)を表しているが、英語では同じ音素である。音は、他の音と組合せて、人が話す言語における一つの言葉、または他の言語表現を形成することができる。音は、母音または子音の発音における単一の通常の変形例に対応している場合がある。場合により、文字の組合せが、単一の音(例えば、“th”および“ng”)を生み出す可能性がある。くわえて、アルファベットのうちのいくつかの文字は、異なるコンテキストにおいて異なる音を生み出す(例えば、“rat”における短い“a”に対して“rate”における長い“a”)。「音素」は、特に、特定の言語の話し手に関して個別の意味を有する音の最小単位を指す場合がある。例えば、“stick”および“tick”における“t”の発音は、この発音が同じ音素と見なされている英語では十分に似ているが、別の言語における“t”の2つの発音は著しい違いがある可能性があり、そのため、2つの異なる音素を構成している可能性がある。したがって、同じ音は、例えば、話し手の母語により、異なる音素特徴を有している可能性がある。音は、音標文字、例えば、アメリカ英語のためのArpabet、または、その他の言語のための国際音標文字(International Phonetic Alphabet:IPA)を用いて表すことができる。
トレーニングエンジン1607によって形成された関連性は、話し手の影響を受けないモデル1617に記憶させることができる。話し手の影響を受けないモデル1617は、例えば、揮発性メモリに格納されたソフトウェアモジュールおよび/または不揮発性のハードウェア記憶システム内に具体化されたソフトウェアモジュールを含むデータベース型構造に格納することができる。いくつかの実施態様において、話し手の影響を受けないモデル1617は、クラスタリングエンジン1620により、条件付きモデルのセットにグループ分けすることができる。さまざまな実施態様において、適応音声認識システム1600等の音声認識システムは、多次元ガウス混合密度を用いて、記憶された認識モデル、例えば、話し手の影響を受けないモデル1617において、さまざまな発話状態の確率関数をモデル化することができる。すなわち、そのシステムは、数学的モデルを用いて、入力が特定の発話状態と関連している確率を判断することができる。さまざまな実施態様において、ガウス混合密度は、システムのトレーニング段階中に導き出すことができる。
ガウス混合密度は、単純なガウス曲線の加重和として記憶されることができる。特定の状態をモデル化するのに用いられる単純なガウス曲線のセットは、「コードブック」と呼ばれる場合が多い。完全条件付き音声認識システムでは、単純なガウス曲線の一つのコードブックは、音声認識システムにおけるすべての発話状態の確率密度関数をモデル化するのに用いられる。さらに、各確率密度関数は、コードブックのガウス曲線に適用できる加重係数のセット関連付けられている可能性がある。完全条件付きでないシステムでは、単純なガウス曲線の独立したコードブックは、そのシステムにおける各独立した発話段階の確率密度関数をモデル化するのに用いられる。部分条件付きシステムは、複数のコードブックを利用し、各コードブックは、関連する発話段階のグループまたは「クラスタ」の確率密度関数をモデル化するのに用いられる。このようなシステムにおいては、同じ変換を、特定のコードブックにおけるすべてのガウス曲線に対して用いることができると仮定する。したがって、このようなシステムは、少量の話し手依存データを用いて、記憶されたガウス曲線のすべてに対しての変換を計算する。さらに、場合により、線型変換を、異なる関連コードブックによって共用することができる。
さまざまな実施態様において、クラスタリングエンジン1620は、同様のガウス曲線を共用する発話状態を識別し、および各クラスタのための個々のコードブックまたは「ジェノン(genone)」を作り出してもよい。それらのコードブックは、関連するクラスタにおける発話状態を推定するのに用いることができるガウス曲線のセットを含むことができる。
一旦、トレーニング段階が完了すると、適応音声認識システム1600を作動段階に変えることができる。作動段階中に、(本明細書中では未知の入力信号とも呼ばれる)意図されていないまたは任意のオーディオ入力信号が特徴抽出1603のモジュールに供給され、および抽出された特徴は、認識エンジン1610および適応エンジン1613に供給される。認識エンジン1610は、話し手の影響を受けないモデル1617を用いて、未知の入力信号を認識する。例えば、認識エンジン1610は、発話の影響を受けないモデル1617を用いて、特徴データの所定のセットの場合の発話状態に関する最も可能性のある経路を判断することができる。この最も可能性のある経路は、特定の言葉と関連付けてもよい。認識エンジン1610は、認識した言葉を、他のシステムがバーチャルパーソナルアシスタントで用いることができるテキスト1625として出力することができる。
システム1600に入力を供給する話し手は、かなりの頻度で、トレーニング集団の特徴から変化する声の特徴を有している可能性がある。例えば、話し手は、訛りまたは発話の障害を有している可能性がある。したがって、適応音声認識システム1600は、適応エンジン1613を含んでいる。適応エンジン1613は、特徴抽出器1603によって抽出された特徴と、認識エンジン1610によって判断された発話状態とを受け取る。次いで、適応エンジン1613は、抽出した特徴と発話状態を比較する。この比較に基づいて、適応エンジン1613は、これらの発話状態の場合の確率モデルのための変換のセットを判断する。それらの変換のセットは、特定の話し手の言葉遣いによくフィットすることができる。この人から受取った後、適応エンジン1613は、その変換のセットを、話し手の影響を受けないモデルに記憶された発話状態の一部またはすべてに適用して、その結果を話し手適応モデル1623として記憶することができる。その後、認識エンジン1610は、話し手適応モデル1623を用いて、この特定の人の場合の発話状態を判断することができる。
いくつかの実施態様において、適応エンジン1613は、判断を続行して、新たなオーディオ入力が、特定の話し手から受取られた際に変換を適用する。これらの実施態様において、話し手適応モデル1623は、特定の話し手の言葉遣いにぴったり一致するモデルに徐々に進化する可能性がある。
いくつかの実施態様において、適応音声認識システム1600は、特定の人の言葉遣いに対してトレーニングすることができる。例えば、トレーニング集団の発話特徴と似ていない可能性がある、明確に異なる発話特徴を有する人は、システム1600に対して所定のテキストを読み取ってもよい。このトレーニングデータから、トレーニングエンジン1607は、トレーニングエンジン1607が、話し手の影響を受けないモデルを導き出すのと同じ方法で、話し手依存モデルを導き出すことができる。これらの実施態様において、そのシステムは、システム1600が作動モードになっているときに、話し手依存モデルと、話し手適応モデルを組合せることができる結合エンジン1632を含んでいる。このように、話し手依存モデル1630は、話し手適応モデル1623の認識能力を向上させることができる。
いくつかの実施態様において、適応音声認識システム1600は、ここでは図示されていない話し手識別システムと組合せることができる。話し手識別システムは、話し手の影響を受けないモデル1617または話し手適応モデル1623を適用すべきか否かを、または、話し手適応モデル1623の特定のセットを適用すべきか否かをシステム1600に示すことができる。例えば、話し手識別システムが、言葉遣いがトレーニング集団に近いことが分かっている特定の話し手を認識する場合、その識別システムは、話し手の影響を受けないモデル1617をイネーブルにすることができる。別の実施例として、話し手識別システムは、話し手適応モデル1623が以前に生成されている話し手を認識することができる。この実施例では、その識別システムは、この識別された話し手に対して、話し手適応モデル1623をイネーブルにすることができる。別の実施例として、話し手識別システムは、話している人が新しくかつ未知であることを判断してもよい。この実施例では、その識別システムは、話し手適応をイネーブルにして、新たな話し手適応モデル1623を生成させることができる。別法として、この実施例では、その識別システムは、話し手適応をイネーブルにすべきか否かに関して確認を求めてもよい。
図17は、ここでは、人の特徴および/または感情状態を、その人から検出されたオーディオ信号から判断するシステム1700として具体化されている、オーディオ分析ツールの実施例を示す。人の特徴および/または感情状態は、人に応答するシステム、例えば、バーチャルパーソナルアシスタントの「個性」を調節するのに用いることができる。例えば、出力が作成されて、人に提示される方法ならびにその出力のタイミングを調節することができる。くわえて、特徴および/または感情状態は、人の意図を判断する際の要因として用いることができる。例えば、憤慨した口調は、ポジティブまたは嬉しいとさえ解釈できるであろう言葉に変更してもよい。人の特徴および感情状態を判断するシステムは、“Method and Apparatus for Tailoring the Output of an Intelligent Automated Assistant to a User”と題する米国特許第9,213,558号明細書にも記載されており、参照によって、その明細書の全体を本願明細書に組み込むものとする。
実施例のシステム1700は、一般に、一つ以上の特徴抽出器1706と、特徴組合せおよび調整モジュール1710と、一つ以上の分類器1712とを含んでいる。特徴抽出器1706は、オーディオ捕捉装置1702からオーディオ入力を受け取ることができる。分類器1712は、さまざまな特徴1714を、他の装置またはシステムが利用できるフォーマットで出力することができる。図17のシステム1700は、人の特徴および/または感情状態をオーディオ入力から判断するように構成されたシステムの一つの実施例として示されており、同様のコンポーネント、より少ないコンポーネント、より多いコンポーネント、または、異なるコンポーネントを用いる他のシステムも可能である。
オーディオ捕捉装置1702は、例えば、話し、うめき声、笑い声、および他の人の発声ならびに拍手、手でたたく音、指を鳴らす音等の音、および人が作り出すことができるその他の音を感知して記録することが可能なマイクロフォン等の装置とすることができる。オーディオ捕捉装置1702は、捕捉したオーディオ信号を、システム1700が使用できるフォーマットに変換するように構成することができる。例えば、オーディオ捕捉装置1702は、オーディオ信号のアナログ波形またはディジタル表示を生成することができる。
特徴抽出器1706は、オーディオ入力信号から特徴を抽出するように構成された処理装置を用いて実施することができる。自動音声認識および自然言語理解プロセッサ1706a、持続時間特徴抽出器1706b、ピッチ特徴抽出器1706c、エネルギ特徴抽出器1706dおよびケプストラム特徴抽出器1706nを含む特徴抽出器1706のさまざまな実施例が、この実施例において記載されている。さまざまな実施態様において、システム1700は、ここでは図示されていない他のオーディオ特徴抽出器を含んでいてもよい。さまざまな実施態様において、ここに図示されている実施例の抽出器1706は、組合せることができ、複数のモジュールに分けることができ、および/または他のオーディオ関連特徴を抽出することができる。
自動音声認識および自然言語理解プロセッサ1706aによって抽出される特徴は、自動音声認識結果から抽出することができる。それらの特徴は、例えば、語彙的内容および言語的内容を含んでいる。nグラム分類器を語彙的内容に適用して、複数の特徴および感情状態に関する確率分布を生成することができる。nグラムは、テキストまたは発話の所定のシーケンスからのn個のアイテムから成る連続シーケンスである。それらのアイテムは、音素、音節、文字、言葉または語幹のペアとすることができる。したがって、nグラム分類器は、いくつかの言葉が、特定の特徴および/または感情状態に関連している確率を判断することができる。言語的内容は、人の心理状態を大まかに示すことができる。例えば、特定の言葉をポジティブまたはネガティブな感情と関連付けることができる。「意味密度」等の言語的尺度、および特定の話し手の場合のインタラクションセッションでの語長も抽出することができる。
持続時間特徴抽出器1706bによって抽出される特徴は、イベントの持続時間に関連し、および言葉と音の時間的整合から抽出することができる。これらの特徴は、例えば、言葉内での中断、予め計算された平均値に対する音の持続時間における増分、システムプロンプトに関する応答を生成する際の待ち時間、特定の単位持続時間(例えば、音持続時間)の確率分布、およびシステム出力を中断する人に関連するタイミング情報を含む。
ピッチ特徴抽出器1706cによって抽出される特徴は、人のピッチ偏位を特徴付けている。それらの特徴は、基本周波数(F0)、または、発話と、関連する自動音声認識との間の人の発話およびアライメントにおけるピッチ輪郭から抽出することができる。これらの特徴は、例えば、発話および言葉内の基本周波数の範囲と、フレーズおよび言葉に沿った基本周波数勾配と、それらの勾配の確率分布と、正規化された基本周波数値の確率分布(この場合、正規化は、平均基本周波数除去の形をとることができる)とを含む。
エネルギ特徴抽出器1706dによって抽出される特徴は、ゼロ番目のケプストラム係数等の発話波形のエネルギ関連特性と、短時間エネルギの対数(本願明細書において、以後、単純に「エネルギ」と呼ぶ)と、(例えば、自動音声認識結果からの)時間的整合情報とを含む。これらの特徴は、例えば、言葉およびセンテンス内のエネルギ偏位の範囲と、言葉およびセンテンス内のエネルギの勾配と、正規化されたエネルギの確率分布(この場合、正規化は、特に正規化の形式の中で、すべてのエネルギ値を、センテンス当たりの、または、インタラクション当たりの最大値と呼ぶことを含んでもよい)と、エネルギ勾配の確率分布とを含む。
ケプストラム特徴抽出器1706nによって抽出される特徴は、音響モデルを構築するのに用いることができる。それらのモデルは、さまざまな特徴および感情状態を表す発話データをトレーニングすることができ、または、発話データに適応させることができる。それらのモデルは、さまざまなユーザ特徴および状態に関する確率分布を得るのに用いることができる。
特徴組合せおよび調整モジュール1710は、特徴抽出器1706によって抽出された特徴を組合せおよび調整するように構成された処理装置として実施することができる。いくつかの実施態様において、複数の特徴は、異なるレベルで組み合わされ、および統計的モデルが、依存性および相関性を説明することを可能にするjoint特徴としてモデル化することができる。例えば、特徴の第1のグループは、特定のイベントにおいて、特徴の第2のグループに対して調整することができる。例えば、フラストレーションの場合の良好な韻律的特徴は、発話における(その内在時間長に対して)最長の母音領域から具体的に解釈したピッチ(すなわち、至る所のピッチではなく、むしろユーザが言葉を伸ばしたときのピッチ)である。
分類器1712は、特徴組合せおよび調整モジュール1710によって供給された組合せおよび調整済みの特徴に基づいて、人に関する結論を生成するように構成された処理装置を用いて実施することができる。図17は、年齢分類器1712a、性別分類器1712b、社会経済的分類器1712cおよび感情分類器1712nを含むさまざまな分類器1712の実施例を示す。年齢分類器1712aは、人の年齢的特徴に関しての結論を出すことができる。その結論は、概略的(例えば、その人は子供である、または、その人は大人である)、または、比較的具体的に(例えば、その人は、25才から30才の間である)することができる。性別分類器1712bは、人の性別に関して結論を出すことができる。社会経済的分類器1712cは、人の社会経済的グループに関して結論を出すことができる。感情分類器1712nは、人の現在の感情または情緒的状態に関して結論を出すことができる。
各分類器1712は、年齢特徴1714a、性別特徴1714b、社会経済的特徴1714cおよび/または感情特徴1714n等のそれぞれの特徴を出力する。これらの特徴1714は、別のシステムが利用することができるフォーマットで出力してもよい。例えば、特徴1714は、プログラムコードによって表すことができ、およびバイナリコードデータとして出力することができる。
さまざまな実施態様において、特定の種類の分類器を、分類器1712内で実施してもよい。例えば、(ユーザ特徴およびユーザ状態に関して確率分布を生成すること等により)特徴および感情状態の分類を実行するために、統計的分類器を実施してトレーニングすることができる。統計的分類器は、持続期間イベント、周波数ならびにピッチ、エネルギ、および視覚的特徴に基づいて分類を実行する際に有用である可能性がある。さまざまな特徴に対する統計的分類器によって生成された確率分布は、特徴および感情状態に関する最終的な推定を得るために組合せることができる。別の実施例として、トレーニングベースの分類器は、主要コンポーネント分析および/または物体もしくはパターン認識結果を、トレーニングしたモデルに一致させるように試みてもよく、この場合、それらのモデルは、所定の特徴および感情状態に対応している。
図18は、オーディオ分析ツール、具体的には、音声コマンドアナライザ1800の実施例を示す。この実施例の音声コマンドアナライザ1800は、声紋認証システムおよび音声認識システムを含んでいる。さまざまな実施態様において、音声コマンドアナライザ1800は、声紋認証システムのみを、または、声紋認識システムのみを含んでもよい。図示した実施例の音声コマンドアナライザ1800は、声紋認証を判断するように構成されたシステムおよび/または音声認識用システムの一つの実施例として設けられ、また、同様のまたは異なるコンポーネントを用いる他の実施例も可能である。音声コマンドアナライザは、2016年2月2日に出願された“Joint Speaker Authentication and Key Phrase Identification”と題する米国特許出願第15/013,580号明細書でも議論されており、参照によって、その明細書の全体を本願明細書に組み込むものとする。
さまざまな実施態様において、音声コマンドアナライザ1800は、音声認識コンポーネントおよび声紋認証コンポーネントを含むことができる。音声認識コンポーネントは、人の発話のサンプルを考慮して、そのサンプルを分析して、そのサンプルの内容を判断するのに用いることができる。例えば、音声認識コンポーネントは、人が質問をしたか、または、コマンドを出したか否かを判断することができる。声紋認証コンポーネントは、周波数または周波数範囲、ピッチまたはピッチ範囲、調子または音域、持続時間、ボリュームまたはボリューム範囲、音色、ソニックテクスチャー、および/またはそのサンプルが捕捉された箇所に対するそのサンプルの空間的位置等のサンプルの音響特性を得るのに用いることができる。実施例の音声コマンドアナライザ1800は、同じ入力発話サンプルの内容と、同じ入力発話サンプルのための生態認証データの両方を判断するように構成することができる。
さまざまな実施態様において、声紋認証情報は、特定の話し手を識別するのに用いることができる。例えば、音声コマンドアナライザ1800は、声紋認証情報を用いて、入力されたフレーズが、Samではなく、Johnによって話されたことを判断することができる。いくつかの実施態様において、話し手のアイデンティティは、その話し手を確認するのに用いることができる。例えば、話し手のアイデンティティは、その話し手が、特定の命令を出すことを許可されたか否かを判断するのに用いることができる。場合により、声で駆動されるシステムは、特定の人のみが、いくつかの命令(例えば、「マイカーのドアを開錠して」)を出すことを可能にするように構成してもよい。他の場合では、そのシステムは、幅広いカテゴリーの人(例えば、大人のみ)が、いくつかの命令を出すことを可能にするように構成してもよいが、他の命令は、誰かによって出すことができる。大抵の場合、音声コマンドアナライザ1800は、その命令を含む同じ発話サンプルから、その話し手を識別して確認することができる。音声コマンドアナライザ1800は、話し手の識別情報とその話し手の入力の内容とを、話し手を確認するように、および/またはその話し手の命令を実行するように構成することができる、他の装置またはシステムに提供することができる。
さまざまな実施態様において、発話サンプルからの声紋認証情報は、他の目的のために利用することができる。例えば、声紋認証情報は、話し手に関する特徴(例えば、年齢、性別、民族、国籍等)および/または話し手の感情(例えば、怒り、イライラ、夢中、幸せ等)を判断するシステムに供給することができる。話し手の特徴および/または感情状態を判断するシステムは、上述されている。
さまざまな実施態様において、音声コマンドアナライザ1800は、単一のモデルを用いて、話し手を識別するとともに、その話し手が何を言ったかを判断することができる。話し手と内容モデルの「ジョイント」または「組合せ」は、人の発話に関して、人固有およびコマンド固有の両方の音響特性をモデル化する。ジョイントの話し手および内容モデルは、例えば、音声モデルまたは特徴ベクトル(i-vector)を用いて実施することができる。i-vectorは、話し手の発話のコンパクトな表現である。さまざまな実施態様において、短いフレーズ(例えば、2秒から5秒、または、2秒から3秒持続するもの)用のi-vectorは、音声コマンドアナライザ1800を含む装置が作動している間に、人が話す際に、明確な記録処理中に取得されたか、または、受動的に集められたトレーニングデータから抽出することができる。i-vector抽出は、i-vectorに含まれているテキスト識別および話し手識別情報の両方をもたらすことができる。i-vectorは、後に入力された発話入力から抽出された、同様に構成されたi-vector間の比較を可能にする。
発話サンプルの(持続時間に関する)短い性質と、内容および話し手識別のジョイント分析は、リモート話し手モデルへのアクセスを要することなく、本質的にリアルタイム(または、インタラクティブタイム)の内容および話し手判断を可能にする。例えば、装置のユーザは、コマンドを話す前に、(例えば、特定のフレーズを話すことにより)最初に、自分のアイデンティティを確認する必要はない。その代わりに、ユーザは、単に、話し手がコマンドを入力するのを許可されているか否かを確認するのにその装置が利用するであろうコマンドを与えることができる。
さまざまな実施態様において、音声コマンドアナライザ1800は、特定の音声入力を、いくつかの動作と関連付けるように構成することもできる。例えば、装置のユーザは、「Shazam!」と言った場合、その装置は自分の車のドアを開錠するが、同じ発話がその人の家の正面玄関は開錠しないことを指定してもよい。別の実施例として、人は、本人が「開けゴマ」と言った場合に、装置が自分の自宅内の酒棚を開錠することを指定してもよい。これらの実施例では、その人の11才の子供が同じコマンドを話した場合、その装置は、その子供がそれらのコマンドを入力することが許可されていないことを認識するであろう。その装置はさらに、本人以外の誰かが車または酒棚にアクセスしようとしたことをその人に知らせるように構成することができる。
図18は、音声コマンドアナライザ1800の実施態様例を示す。音声コマンドアナライザシステム1800およびそのコンポーネントは、特定のデザインまたは実施のために要望通りに、ソフトウェアおよび/またはハードウェアのコンピュータ可読モジュール、コンポーネントおよび/またはデータ構造を用いて実施することができる。実施例の音声コマンドアナライザ1800は、オーディオ捕捉装置1802から入力サンプル1830を受け取る。オーディオ捕捉装置1802は、例えば、音を検出して記録するように構成されているマイクロフォン等の装置とすることができる。さまざまな実施態様において、入力サンプルは、自然言語の形、すなわち、人によって他の人に対して話されるような通常の言語とすることができる。自然言語を含む入力サンプル1830は、「音声信号」と呼んでもよい。「自然言語」とは、本願明細書で用いる場合、例えば、キャプチャ(Completely Automated Public Turing tests to tell Computers and Humans Apart:CAPTCHA)等のコンピュータ生成コードと区別される人間の話し言葉における、特に、言葉、フレーズ、言語表現および/またはこれらの組合せを指す。
さまざまな実施態様において、音声コマンドアナライザ1800は、フロントエンドモジュール1812およびバックエンドモジュール1820を含んでもよい。この実施例におけるフロントエンドモジュール1812は、音声認識器1814サブシステムを含む。音声認識器1814は、入力サンプル1830からの音声セグメントを、音声内容、例えば、音素、音、トライフォンまたは言葉等の音素単位、音声単位または字句単位等と関連付けることができる。「音声セグメント」は、特定の言葉または音を構成する現在の入力サンプル1830のすべてまたは一部である。音声セグメントは、オーディオ(音声)信号の「タイムスライス」または「フレーム」と呼んでもよい。
さまざまな実施態様において、音声コマンドアナライザ1800は、入力セグメント1830からの個々の音声セグメントを、音素または音声の内容と関連付ける。そうする際に、音声コマンドアナライザ1800は、字句単位(例えば、音素、音、トライフォン、トライフォンシーケンスまたは他の発声)の話し手固有の特徴(例えば、話し手の発音)を捉えることができる。例えば、二人の話し手が、各々、他の非マッチング音声内容内で、「車」という言葉を言った場合で、および一方の話し手にはイギリス訛りがあり、他方の話し手には南部アメリカ訛りがある場合、音声コマンドアナライザ1800は、両話し手の「車」(トライフォン)という言葉の場合のオーディオ信号を本質的に比較することができる。このようにして、音声コマンドアナライザ1800は、同様の音声単位に対応するオーディオ信号の一部を比較することにより、二人の話し手を区別し、それにより、より正確にユーザを確認することができる。対照的に、混合ガウスモデル-ユニバーサルバックグラウンドモデルアプローチ等の従来のテキスト依存声紋認証システムは、話し手の比較における音声または音素情報を活用していない。
したがって、さまざまな実施態様において、フロントエンドモジュール1812は、音声サンプルの音声内容または音素内容(例えば、「発話内容」)を、話し手認識分析と統合するように構成してもよい。換言すると、話し手の発話の内容およびアイデンティティは、同時に判断される。他のシステムは、代わりに、発話内容を別々に判断し、その後、話し手識別を判断してもよい。さらに他のシステムは、発話内容と話し手識別を同時に判断するが、別々のプロセスを用いて、後にそれらの結果が組み合わされてもよい。
さまざまな実施態様において、音声認識器1814は、音および/または音素内容を入力サンプル1830から抽出する。その場合、その音声認識器は、各音声セグメントの音素または音声内容を、時間的に先行するおよび/または後の音素または音声内容のコンテキストで判断することができるように、入力サンプル1830の音声レベル内容を時間的に合わせることができる。これらの実施態様において、音声認識器1814は、例えば、言語モデルまたはグラマーを必要としないという点で、部分音声認識器として機能してもよい。さまざまな実施態様において、言語モデルおよびグラマーを含む完全自動音声認識システムは、実施例の音声アナライザ1814の代わりに、または、その音声アナライザとともに用いることができる。
さまざまな実施態様において、その音声認識器は、ニューラルネットワークベースの音響モデル1816を含んでもよい。音響モデル1816は、入力音声サンプル1830から導き出された音響特性を用いて、自動音声認識のためにトレーニングすることができるディープニューラルネットワークを含んでもよい。一旦トレーニングされると、そのディープニューラルネットワークは、入力サンプル1830を音声内容と関連付けるのに用いることができる。ディープニューラルネットワークは、ボトルネック特徴1817を生成することができる。ボトルネック特徴は、一般に、コンテキスト依存のモノフォン状態を予測するように、既にトレーニングされている多層パーセプトロンによって生成される。ボトルネック特徴は、自動音声認識システムの精度を向上させることができる。
この実施例における音声認識器1814は、ボトルネック特徴1817を、入力サンプル1830から別々に導き出されるケプストラム特徴1818と組合せる。組合されたボトルネック特徴1817およびケプストラム特徴1818は、バックエンドモジュール1820へ供給される、現在の発話1824のジョイント話し手および内容モデルを作り出すのに用いることができる。ボトルネック特徴1817とケプストラム特徴1818の組合せは、話し手識別、および音声またはテキスト識別の両方に用いることができる音声モデル(例えば、i-vector)を生成するのに用いることができる。
ボトルネック特徴1817およびケプストラム特徴1818は、統計的発生器1819に供給してもよい。統計的発生器1819は、検出した特徴の周波数に関連する話し手固有の統計1836を生成してもよい。統計的発生器1819は、ユニバーサルバックグラウンドモデル(UBM)に依存して統計1836を生成してもよい。
現在の音声のモデル1824と、入力サンプル1830の場合の統計1836は、バックエンドモジュール1820に供給される。さまざまな実施態様において、バックエンドモジュール1820は、ジョイントコマンド/話し手認識器1822を含む。コマンド/話し手認識器1822は、現在の音声のモデル1824と、記憶されたジョイントモデル1826とをアナライザ1828に入力してもよい。以下でさらに議論するように、アナライザ1828は、入力サンプル1830の内容を判断し、かつその話し手を識別するように構成してもよい。アナライザ1828は、後に、コマンドおよび話し手判断1838を出力してもよい。
記憶されたジョイントモデル1826は、トレーニングデータから生成してもよい。さまざまな実施態様において、音声コマンドアナライザ1800は、音声コマンドアナライザ1800が、その間にトレーニングデータを収集するトレーニング段階を入力するように構成してもよい。音声コマンドアナライザ1800は、例えば、未知の話し手を認識するとき、音声コマンドアナライザ1800をトレーニングすべきであると自動的に判断する別のシステムからのコマンドを受け取るとき、および/または装置のユーザによって起動されるコマンドを受け取るときに、自動的にこの段階を入力してもよい。
トレーニング段階中、トレーニングデータから導き出された現在の発話のモデル1824は、記憶されたジョイントモデル1826に記憶させてもよい。トレーニングデータは、人が、その間に、特定のフレーズを話すように要求することができる記録プロセス中に、音声コマンドアナライザ1800に入力することができる。次いで、トレーニングデータは、その話されたフレーズから生成された入力サンプル1830から導き出すことができる。別法として、または追加的に、トレーニングデータは、人が、音声コマンドアナライザ1800を含む装置を使用している間に、受動的に取得することができる。記憶したジョイントモデル1826は、人のトレーニングデータから抽出した内容固有の特徴および話し手固有の特徴(例えば、音響特性)の両方をモデル化することができる。記憶されたジョイントモデル1826は、音声モデルと呼んでもよい。
通常の動作中(すなわち、トレーニングデータを取得していないとき)、バックエンドモジュール1820は、記憶されたジョイントモデル1826を用いて、入力サンプル1830の内容を判断し、および/または話し手のアイデンティティを判断することができる。バックエンドモジュール1820は、後に、コマンドおよび話し手判断1838を出力してもよい。コマンドおよび話し手判断1838は、入力サンプル1830の内容、例えば、コマンドまたは質問を含んでもよい。コマンドおよび話し手判断1838は、その話し手が未知であるか否かを含む、その話し手のアイデンティティも含んでもよい。コマンドおよび話し手識別1838は、この情報を用いるように構成されている他の装置またはシステムに供給してもよい。
ジョイントコマンドおよび話し手判断1838を生成するために、バックエンドモジュール1820は、ジョイントコマンドおよび話し手アナライザ1828を含んでもよい。アナライザ1828は、現在の音声モデル(すなわち、現在の発話1824のモデル)と、記憶された音声モデル(例えば、記憶されたジョイントモデル1826)との間の類似性を探すことができる。具体的には、アナライザ1828は、特定の話し手によって生成される、(例えば、音声またはトライフォンレベルでの)音素内容、音声内容および/または語彙的内容を比較することができる。このことにおいて、アナライザ1828は、従来の音響特性のみに依存しない。例えば、コマンド/話し手認識器1822は、確率的線形判別分析(probabilistic linear discriminant analysis:PLDA)を用いて、現在の音声モデルの一つ以上の音声特性または音素特性を、記憶された音声モデルの一つ以上の類似の音声特性または音素特性と比較することができる。
別の任意のアプローチでは、登録中に、登録すべきコマンドの複数のサンプルを、話し手から集めてもよい。それらのサンプルは、記憶された音声モデルに追加してもよいコマンドモデルを生み出すのに用いることができる。このコマンドモデルのための検出閾値は、各サンプルに対して比較スコアが生成されるように、それらのサンプルの各々を、残りのサンプルから作られたモデルに対して比較することによって決定することができる。その場合、そのコマンドのための閾値は、それら3つのスコアの平均を用いて決定することができる。その閾値は、バイアスによって偏位させてもよく、およびそれらのサンプルに基づいているパラメータのセットによって増減させてもよい。閾値を決めるためのこの実施例のプロセスは、そのシステムが、登録されているコマンドの異なる音声内容により、スコアの変動を考慮することを可能にする。
図19は、ビデオ分析ツール、具体的には、視覚情報、例えば、特に顔の表情、ボディランゲージおよびジェスチャーを識別するように構成された視覚検出システム1900の実施例を示す。さまざまな実施態様において、視覚検出システム1900は、ビデオ分類システム1912と、ビデオイベントモデル1914と、ビデオキャプチャ装置1902とを含む、複数のコンピュータ化されたモジュールおよびデータ構造を含んでいる。以下でさらに論議するように、ビデオ分類システム1912は、ビデオイベントモデル1914を展開しおよび用いて、ビデオキャプチャ装置1902によって供給された静止画像および動画(例えば、ビデオ)内に描写されている可能性があるシンプルなイベントおよび複雑イベントを識別することができる。場合により、ビデオキャプチャ装置1902によって供給される画像はリアルタイムであり、すなわち、それらの画像が捉えられているときに送られる。他の事例では、ビデオキャプチャ装置1902によって供給される画像は、予め記録されている。一旦、画像内のイベントまたは複数のイベントが識別されると、ビデオ分類システム1912は、バーチャルパーソナルアシスタント内の他のシステムによる利用のためにフォーマット化することができる、識別された複雑イベントの言語記述1972を生成することができる。視覚検出システムは、“Classification,Search,and Retrieval of Complex Video Events”と題する米国特許第9,244,924号明細書でも議論されており、参照によって、その明細書の全体を本願明細書に組み込むものとする。
一般的に、シンプルなイベントは、少数のアトミックなイベント、および/または他の検出した要素、例えば、場面、当事者(例えば、人または他の生き物)、物体、オーディオおよび/またはテキストによって特徴付けることができる。アトミックなイベントは、時間的に局在する傾向があり、および短い記述と関連付けることができる。アトミックなイベントの実例は、顔の表情、例えば、笑顔、しかめっ面、呆れた眼差し等をふくむ。アトミックなイベントの他の実例は、身振り、例えば、指差し、手の振り、肩をすくめること等を含む。
複雑イベントは、典型的には、関連する数の何らかの方法で既に組合されている異なるアトミックな要素またはコンセプトを含む。例えば、複雑イベントは、複数の画像にわたって時系列的に生じる、または、特に、ビデオの異なる時間的セグメント内で生じる、並列される要素(例えば、それらのイベントは、一緒に、同じフレーム内か、または、ビデオの一連のフレーム内で生じる可能性がある)を含む。複雑イベントのいくつかの実例は、他の人、物体または生き物と関わり合っている一人の当事者または複数の異なる当事者を含むイベント(例えば、コンサート、野球の試合、ドッグショー、動物園へ出かけること、バースデーパーティーまたはダンスリサイタル)を含む。一つの実施例として、「結婚式」は、さまざまなアトミックな動作、例えば、ビデオの最中に、一緒にまたは異なる時刻に行われる可能性がある「ハグ」や「キス」から成る可能性がある。与えられたビデオにおいて、教会風の背景または庭園の場面内で行われている「ハグ」が検出され、「指輪」や「ろうそく」等の物体が検出され、およびオーディオトラック内で、伝統的な結婚式用の音楽が検出された場合、そのビデオは、結婚式を描写している可能性がある。しかし、「人々が跳ねている」のと一緒に行われている「ハグ」が検出され、「ボール」等の物体が検出され、および大きな歓声がオーディオトラック内で検出された場合には、そのビデオは、結婚式ではなく、スポーツイベントに勝利するチームを描写している可能性がある。インテリジェントで自動化された、複雑イベントの検出および分類方法を用いることにより、視覚検出システム1900は、異なる種類の複雑イベントが、同じアトミックなイベントまたは要素を含み、およびその中に描写されている可能性が最も高い複雑イベントを識別する場合であっても、それらの異なる種類の複雑イベントを区別することができる。
さまざまな実施態様において、実施例のビデオ分類システム1912は、入力された画像内で既に検出されている低次元特徴に基づいて、シンプルなイベントおよび複雑イベントを認識することができる複雑イベント認識エンジン1950と、低次元特徴認識を実行することなく、新たな複雑イベント(例えば、以前のビデオイベントモデル1914では定義されていなかった複雑イベント)を認識することができるイベントハンドラー1958とを含むことができる。
さまざまな実施態様において、複雑イベント認識エンジン1950は、特徴認識モジュール1952と、意味表現モジュール1954と、複雑イベント分類モジュール1956とを含む。特徴認識モジュール1952は、複数の自動特徴認識アルゴリズムを採用して、入力された画像内の興味のある低次元特徴を検出することができ、および特徴語彙1960を働かせて、低次元特徴を認識することができる。「低次元特徴」は、異なるインスタンスの特徴間での著しい空間的変動または時間的変動なしで、特徴的形状および動作を捉えた視覚的特徴を意味する場合がある。いくつかの実施態様においては、静止的な低次元の視覚的特徴および動的な低次元の視覚的特徴の両方が用いられる。静止的な視覚的特徴は、所定の抽出速度(例えば、1画像/秒)で、個別のキー画像から抽出される特徴を含む。静止的な視覚的特徴検出器のいくつかの実例は、GIST、SIFT(Scale-Invariant Feature Transform)およびカラーSIFTを含む。Gist特徴検出器は、自然性、開放性、粗さ等の知覚的次元を含む、抽象的場面およびレイアウト情報を検出するのに用いることができる。SIFT特徴検出器は、画像スケール、回転、照明のレベル、ノイズ、および視点のわずかな変化を考慮せずに、特定の関心点での画像の状況を検出するのに用いることができる。カラーSIFT特徴検出器は、強度、陰影およびシェーディング効果等のカラーキーポイントおよびカラー記述子を含むように、SIFT特徴検出器を拡張させる。
動的な視覚的特徴は、入力された画像の水平方向、垂直方向および時間(x-y-t)セグメントまたはウィンドウに関して計算される特徴を含む。動的特徴検出器は、当事者の外観、物体、および場面ならびにそれらの動作情報を検出することができる。動的な特徴検出器のいくつかの実例は、MoSIFT、STIP(Spatio-Temporal Interest Point)、DFT-HOG(Dense Trajectory based Histograms of Oriented Gradients)およびDTF-MBH(Dense-Trajectory based Motion Boundary Histogram)を含む。MoSIFT特徴検出器は、SIFT特徴検出器を時間次元まで拡張し、および局所的外観および局所的動作情報の両方集めて、少なくとも最小量の動作を含む、入力された画像内の関心点を識別することができる。STIP特徴検出器は、独立した空間的および時間的尺度値、分離可能なガウス平滑化関数、および空間時間勾配を用いて、各画像点における時空間的二次モーメント行列を算出する。DTF-HOG特徴検出器は、密なグリッド上の特徴点をサンプリングおよび追跡して、密な軌跡を抽出することにより、x-y-tドメイン内の三次元関心点ではなく、経時的な二次元関心点を追跡する。HoG(Histogram of Gradients)は、カメラの動きの影響をなくすために、密な軌跡に沿って計算される。DTF-MBH特徴検出器は、MBH記述子を密な軌跡に適用して、物体運動情報を捉える。MBH記述子は、オプティカルフローそのものではなく、オプティカルフローの勾配を表す。したがって、MBH記述子は、カメラの動きの影響も抑えることができる。しかし、別法としてまたは追加的に、いくつかの実施態様においては、HOF(Histograms of Optical Flow)を用いてもよい。
特徴認識モジュール1952は、特徴固有語彙1960を用いて、特徴種別により、抽出された低レベル特徴を量子化する。いくつかの実施態様において、特徴語彙1960またはその一部は、例えば、k-meansクラスタリング法を用いて機械学習される。場合により、特徴語彙1960は、静的特徴のためのより小さな語彙サイズ(例えば、1000語)と、動的特徴(例えば、運動)のためのより大きな語彙(例えば、10,000語)とを含んでもよい。特徴認識モジュール1960は、例えば、ビジュアルワードの頻度ヒストグラムが、複数の入力された画像に関して計算されるBoW(Bag-of-Words)モデルを用いて、特徴種別により量子化された低レベル特徴を集めてもよい。
いくつかの実施態様において、意味表現モジュール1954は、サポートベクターマシン(Support Vector Machine:SVM)分類器等のイベント分類器1964を、直接、BoW特徴に適用することができ、および複雑イベント分類モジュール1954は、さまざまなデータフュージョンストラテジー(例えば、アーリーおよびレイトフュージョン)を用いて、フュージョンした低レベル特徴に基づいて、複雑イベント1926を識別する。いくつかの実施態様において、意味表現モジュール1954は、低レベル特徴に基づいてコンセプト検出を実行することができ、および複雑イベント分類モジュール1956は、検出したコンセプトに基づいて複雑イベントを判断する。より具体的には、意味表現モジュール1954は、一つ以上のコンセプト分類器1962を用いて低レベル特徴を分析し、およびそこから、上述したように、場面、動作、当事者および物体を含むより高いレベルのコンセプトまたはアトミック要素を表す意味要素1928を導き出す。複雑イベント分類モジュール1956は、一つ以上のイベント分類器1964を意味要素1928に適用して、検出された意味要素1928と関連がありそうな複雑イベント1926を判断することができる。さまざまな実施態様において、コンセプト分類器1962および/またはイベント分類器1964は、手動で指定してもよくおよび/または機械学習法を用いて導き出してもよい。
いくつかの実施態様において、ビデオ分類システム1912は、より典型的な視覚的特徴(例えば、当事者、物体、場面、動作)に加えて、オーディオ、テキストおよび地理的位置を含む、入力された画像内のさまざまな異なる種類のアトミックなイベントの存在を検出することができる。こうするために、複雑イベント認識エンジン1950は、自動音声認識(ASR)システム1966および/または光学文字認識(OCR)システム1968とインタフェースをとることができる。例えば、ASRシステム1966は、ビデオのオーディオトラック内に存在する話し言葉を識別して、その話し言葉のテキスト翻訳を複雑イベント認識エンジン1950に供給することができる。OCRシステム1968は、ビデオの情景内に存在するテキストを認識して、認識したテキストを複雑イベント認識エンジン1950に供給することができる。例えば、OCRシステム1968は、入力された画像内に描写されている服、道路標識または建物に表示された言葉またはフレーズを検出するのに用いることができる。また、複雑イベント認識エンジン1950には、入力された画像からは直接的には導き出されない可能性がある非視覚的特徴を与えてもよい。例えば、いくつかの装置は、統合ジオロケーションシステム(例えば、GPS(Global Positioning System)センサ等)および/または地理的位置、動作および/または他のリアルタイムで感知した情報を検出することができるその他のセンサが備えられる。このような装置のためのビデオカメラアプリケーションは、GPSデータ(または、他のリアルタイムデータ)にアクセスして、それを、画像が形成されたときにその画像と自動的に関連付けることができる。複雑イベント認識エンジン1950は、データフュージョン法を用いて、それらの代替的な視覚的特徴および非視覚的特徴を、特徴認識モジュール1952によって生成されたより伝統的な視覚的特徴と組合せることができる。このようにして、複雑イベント認識エンジン1950は、さまざまな視覚的特徴および非視覚的特徴を利用して、複雑なビデオイベントを識別することができる。
実施例のビデオイベントモデル1914は、まず、特定のイベントを描写することが分かっている画像であるトレーニング画像を用いて展開することができる。新たな画像が、複雑イベント認識エンジン1950によって分類される際、ビデオイベントモデル1914は、手動または機械学習法のいずれかを介して更新することができる。いくつかの入力された画像は、ビデオイベントモデル1914がまだ熟知してはいないイベント(例えば、ビデオイベントモデル1914で認識されたトレーニング実例がないイベント)を描写している可能性がある。それらのイベントは、「新規のイベント」と呼んでもよい。イベントハンドラー1958は、複雑イベント認識エンジン1950によって処理すべき入力画像を要求するのではなく、そのイベントの意味記述に基づいて新規のイベントを分類するか、または、別の方法で明確に定義することができる。このような記述は、注記またはタグ、および/または手動で定義したコンセプトベクターの形式で、人が供給してもよい。シンプルな実施例として、意味概念空間は、各々が、異なる種類の複雑イベントのインジケータになる傾向がある所定の概念を表す複数の次元を含んでもよい。例えば、意味概念空間は、[屋内イベント、屋外イベント、台所、キスする人、動く自動車、目に入る手、フィリングをパンに載せること、クリームを塗ること、障害物を飛び越えること、指差す人]として定義することができる。「サンドイッチを作ること」を描写している入力画像のビューイングに基づいて、上記の実施例を用いて、対応するコンセプトベクターを、[1,0,1,0,0,1,1,1,0,0]として推定することができ、この場合、各二進値は、ビデオ内の概念次元の有無を示す(1=有り、0=無し)。いくつかの実施態様において、これらの二進値は、一組の概念の間の意味類似性を計算することによって強化してもよい。例えば、「踊ること」というアトミックな動作は、(例えば、セレモニーの種類により)「結婚式」のインジケータであってもよく、インジケータでなくてもよい。そのため、いくつかの実施態様においては、二進インジケータではなく、多値インジケータを用いてもよい。多値インジケータは、「踊ること」と他の同時に起きているコンセプトの意味類似性に基づいて判断することができる。
新規のイベントのためのコンセプトベクターは、人によって定義してもよく、または、人によって与えられた情報により、または、記憶データソース1970から得られた情報に基づいて、イベントハンドラー1958によって生成してもよい。実施例として、人は、釣り旅行に関するビデオを作って、それに「釣り旅行」というタイトルを付けることができる。この情報を用いて、新規イベントハンドラー1958は、記憶データソース1970に照会して、一般的に釣り旅行と関連のあるコンセプトを識別し、その後、その情報に基づいて、そのビデオの場合のコンセプトベクターを生成することができる。意味概念空間におけるコンセプトベクターとして表される新規イベントの意味記述を用いて、イベントハンドラー1958は、その概念空間での意味要素に対する、そのビデオのコンセプトベクターの次元の意味類似性または意味親和性を計算することにより、入力された画像が、特定の複雑イベントを描写しているか否かを判断することができる。これをするために、例えば、WORDNETまたはWIKIPEDIA等の記憶データソース1970から導き出された、または、ビデオトレーニング実例から計算された、コンセプトの意味親和性マトリクスを用いてもよい。
実施例のビデオイベントモデル1914は、一つ以上のコンピュータがアクセス可能なデータおよび/またはプログラミング構造(例えば、ベクトル、行列、データベース、ルックアップテーブル等)を含むことができ、および一つ以上のインデックス付きのまたは別の方法で検索可能な情報の記憶装置を含んでもよい。ビデオイベントモデル1914は、データ、引数、パラメータ、および/またはビデオ分類システム1912によって分類される入力画像に適用できるマシンが実行可能なアルゴリズムを含むことができ、または参照することができる。
実施例のビデオイベントモデル1914は、グローバルモデル1922およびビデオ固有モデル1924を含む。グローバルモデル1922は、さまざまな異なる種類の入力画像に適用できる一般的なレベルで、さまざまな種類の複雑イベント1926に関する意味情報、およびそれらに関連するアトミックな要素または「コンセプト」1928を含むことができる。例えば、意味要素1928は、当事者(例えば、人または他の生き物)、場面、動作、物体、オーディオ、テキストおよび地理的位置に関する意味記述を含む。グローバルモデル1922は、さまざまな種類の複雑イベント1926に対する、意味要素1928の各々の判断された証拠的意味のインジケータも維持することができる。いくつかの実施態様において、それらのインジケータは、さまざまな種類の複雑イベント1926を描写する複数のトレーニングビデオに適用される機械学習法を用いて、ビデオ分類システム1912によって収集される。例えば、「サンドイッチを作っている人」(複雑イベント)を描写しているトレーニングビデオは、「台所」(場面)、「目に入る手」(当事者)、「フィリングをパンに載せること」(動作)および「クリーム状の材料を塗ること」(動作)等の意味要素が、サンドイッチを作る人と関連している可能性が高く、一方、「屋外イベント」(場面)、「動く自動車」(動作)または「ジャンプする人」(動作)等の他のアトミックな要素は、その特定の複雑イベントと関連がない可能性があることを示すことができる。別法として、または追加的に、これらのインジケータのうちの一つ以上を、手動で供給される情報に基づいて展開してもよい。例えば、サンドイッチを作っている誰かのビデオを視ている人は、「パンをスライスすること」(動作)が、サンドイッチを作っている人を示す可能性が高いアトミックな要素であると結論付けることができ、そして、そのインジケータを、手動で、ビデオイベントモデル1914に追加することができる。
ビデオ固有モデル1924は、さまざまな複雑イベント1926およびそれらの複雑イベントに関連する意味要素1928に関する実際のインスタンスまたは発生に関連する情報を含む。すなわち、入力された画像のセットの場合、ビデオ固有モデル1924は、種類(例えば、当事者、場面、動作、物体、オーディオ、テキストまたは地理的位置)により入力画像で検出された意味要素1928のインスタンスに関する情報と、入力画像で検出された各複雑イベント1926に関する情報とを含んでもよい。さらに、ビデオ固有モデル1924は、複雑イベントおよび意味要素情報を、そこで画像が発生したそれらの画像の位置と対応付けることができる(例えば、フレーム番号)。いくつかの実施態様において、ビデオ固有モデル1924は、意味要素が、入力された画像内に離散的に存在するか、または、存在しないかを示すことができる(例えば、1=有り、0=無し)が、他の実施態様においては、可能性のある値の範囲を参照して定義された証拠値(例えば、確率的または統計的可能性または信頼性)を割り当ててもよい。
いくつかの実施態様において、ビデオイベントモデル1914は、さまざまな複雑イベント1926および意味要素1928を説明するために、人によって一般的に用いられる言葉とフレーズとの関係を示すことができるオントロジー情報を含むことができ、または、オントロジー情報を参照することができる。例えば、ビデオ分類システム1912は、ある動作を「パンをスライスすること」と認識するようにプログラムすることができるが、同じビデオを手動でタグ付けする人は、「一切れのパンをスライスすること」というフレーズを用いてもよい。それに応じて、ビデオイベントモデル1914は、これらの2つのフレーズが意味の上で類似しているという表示を含んでもよい。同様に、ビデオイベントモデル1914は、複雑イベント1926および/または意味要素1928、それらの特性、およびモデル内での異なる複雑イベント1926と意味要素1928との関係とに関連する可能性がある異なる言葉およびフレーズの意味を説明する意味情報を含んでもよい。いくつかの実施態様において、ビデオイベントモデル1914は、新たな画像が分析される際、新たな複雑イベントが学習される際、および/または新たなユーザフィードバックを受け取った際に、連続的に更新することができる。
図20は、人の特徴および/または感情状態を、その人に関する視覚的合図から判断するシステム2000としてここでは具体化されているビデオ分析ツールの実施例を示す。人の特徴および/または感情状態は、システムの「個性」、例えば、人に応答するバーチャルパーソナルアシスタントを調節するのに用いることができる。例えば、出力が策定されて、人に提示される方法、ならびにその出力のタイミングを調節することができる。また、その特徴および/または感情状態は、人の意図を判断する際の要因として用いることができる。例えば、怒った声の調子は、ポジティブまたは幸せとして別なふうに解釈できるように言葉を変更してもよい。人の特徴および感情状態を判断するシステムは、米国特許第9,213,558号明細書にも記載されており、その明細書の全体を、参照によって本願明細書に組み込むものとする。
実施例のシステム2000は、一般的に、一つ以上の特徴抽出器2006と、特徴組合せおよび調節モジュール2010と、一つ以上の分類器2012とを含んでいる。特徴抽出器2006は、画像捕捉装置2002から視覚的入力を受け取ることができる。分類器2012は、さまざまな特徴2014を、他の装置またはシステムが利用できるフォーマットで出力することができる。図20のシステム2000は、人の特徴および/または感情状態を視覚的入力から判断するように構成されたシステムの一つの実施例として提示されており、また、同様のコンポーネント、より少ないコンポーネント、より多いコンポーネント、または、異なるコンポーネントを用いる他のシステムも可能である。
画像捕捉装置2002は、視覚映像を感知して記録することが可能なカメラ等の装置である。画像捕捉装置2002は、静止画像(例えば、写真)および/または動画(例えば、ビデオ)を記録することができる。さらに、画像捕捉装置2002は、捕捉した画像を、システム2000の残りの部分が利用できるフォーマットに変換することができる。例えば、画像捕捉装置2002は、静止画像を、ディジタル画像ファイル(例えば、TIFF(Tagged Image File Format)、JPEG(Joint Photographic Experts Group)、GIF(Graphic Interchange Format)、PNG(Portable Network Graphics)ファイル、または、他の何らかの方法を用いてフォーマット化されたファイル)に変換するように構成してもよい。別の実施例として、画像捕捉装置2002は、ディジタルビデオ、例えば、MPEG(Moving Picture Experts)ビデオまたはAVC(Advanced Video Coding)ビデオを出力するように構成してもよい。
さまざまな実施態様において、画像捕捉装置2002は、人および/または人の環境のいくつかの側面を捉えるように構成することができる。例えば、画像捕捉装置2002は、人の顔、体および/または足の画像を捉えるように構成することができる。別法として、または追加的に、画像捕捉装置2002は、人の視界内および/または人の背後にある可能性がある領域の画像を捉えるように構成することができる。捉えた画像は、画像データとして特徴抽出器2006に供給することができる。
特徴抽出器2006は、オーディオ入力信号から特徴を抽出するように構成された処理装置を用いて実施することができる。顔検出および特徴抽出器2006a、視線検出および特徴抽出器2006b、外観特徴抽出器2006cおよび体の動きの特徴抽出器2006nを含む、特徴抽出器2006のさまざまな実施例が、この実施例において記載されている。さまざまな実施態様において、システム2000は、ここに図示されていない他の視覚的特徴抽出器を含んでいてもよい。さまざまな実施態様において、ここに図示されている実施例の抽出器2006は、組合せることができ、複数のモジュールに分けることができ、および/または他のオーディオ関連の特徴を抽出することができる。
顔検出および特徴抽出器2006aにより抽出された特徴は、人の顔の外観ならびに人によって作られた任意の顔の表情を判断するのに用いることができる。これらの特徴は、例えば、顔および/または顔の要素(例えば、口、眉毛、眼、頭等)の特徴、例えば、色、形状、肌合い、位置、方向、動き等を含む。また、これらの特徴は、例えば、色、形状、および人の髪の質感(または、その不足)、人が着用する頭部用衣装(例えば、帽子、スカーフ等)、顔用衣装(例えば、眼鏡、サングラス、マスク、ヒジャブ)およびフェイシャルジュエリー(例えば、イヤリング、鼻用リング等)を含んでもよい。いくつかの実施態様において、この情報は、人の顔を検出して、その顔領域に対して主成分分析(principal component analysis:PCA)を実行することによって抽出することができる。いくつかの実施態様においては、それらの特徴のうちのいくつかに関する時間成分を抽出してもよい。
注視検出および特徴検出器2006bにより抽出された特徴は、人が見ている場所を判断するのに用いることができる。この情報は、人がどのくらいシステムまたはシステムの出力に対して注意しているかを判断するのに用いることができる。別法として、または追加的に、この情報は、人が見ている物体を識別するのに用いることができる。抽出された特徴は、例えば、その人は、システムのディスプレイを見ているか否か、その人がディスプレイを見るのに費やす時間の割合はどれくらいか、その人が注目しているのはディスプレイのどの部分か、所望の注目領域に人がどのくらい注目しているか、およびその人が所望の注目領域を見るのに費やす時間の割合はどれくらいかを含む。また、抽出された特徴は、例えば、特定の言葉を話しているとき(例えば、「あれは何ですか」)に、人が見ている方向と、その人の視界内にある可能性があるとして検出された物体を含むことができる。
外観特徴検出器2006cによって抽出された特徴は、背景、職業、現在の活動(例えば、水泳中、睡眠中)または感情状態(例えば、混乱)の判断を実行するのに用いることができる。抽出された特徴は、例えば、人の顔の下の領域(例えば、首や胸の領域、下部胴体または足)に関するデータを含む。服の選択、その服が着用されるスタイル、および特定のジュエリー(例えば、宗教的なジュエリー)の存在を含むこの領域の外観は、その人を特徴付けるのを支援するのに用いることができる。この領域での外観パターンは、形状、色および肌合いの特徴を集めて、統計的パターン認識法を適用することによって抽出することができる。外観特徴抽出器2006cによって抽出された特徴は、(ユーザの社会経済学的グループと強く関連がある可能性がある)ユーザの履物のスタイルおよびコンディションをさらに含むことができる。この領域での外観パターンは、形状、色および肌合いの特徴を集めて、統計的パターン認識法を適用することによって抽出することができる。
体の動きの特徴抽出器2006nによって抽出される特徴は、例えば、時間の関数としての、人の頭、腕、手、脚および足のポーズまたは動作を含む。この情報は、例えば、特に、人が動揺しているか、または、落ち着いているか、人が同意または相違を示しているか、人が指差ししているか否か、および場合により、人が指差ししているものも、および人の現在の活動(例えば、ウォーキング中、座っている)を判断するのに用いることができる。
特徴組合せおよび調節モジュール2010は、特徴抽出器2006によって抽出される特徴を組合せて調節するように構成された処理装置として実施することができる。いくつかの実施態様においては、複数の特徴が、異なるレベルで組み合わされ、および統計的モデルが依存性および相関性を説明することを可能にするジョイント特徴としてモデル化することができる。例えば、特徴の第1のグループは、特定のイベントにおいて、特徴の第2のグループに対して調節することができる。例えば、イライラの場合の良好な韻律的特徴は、発話における(その内在時間長に対する)最長の母音領域から具体的に測定したピッチ(すなわち、至る所のピッチではなく、ユーザが言葉を伸ばしたときのピッチ)である。
分類器2012は、特徴組合せおよび調節モジュール2010によって与えられた組合せで調節した特徴に基づいて、人に関する結論を生成するように構成された処理装置を用いて実施することができる。図20は、年齢分類器2012aと、性別分類器2012bと、社会経済学的分類器2012cと、感情分類器2012nとを含む分類器2012のさまざまな実施例を示す。年齢分類器2012aは、人の年齢的特徴に関する結論を出すことができる。その結論は、概略的(例えば、その人は子供である、または、その人は大人である)、または、比較的具体的(その人は、年齢が25才から30才の間である)にすることができる。性別分類器2012bは、人の性別に関して結論を出すことができる。その結論は、「男性」または「女性」のように単純でなくてもよく、また、一部の子供の場合にも当てはまるように、「トランスジェンダー」または「不明」を含んでもよい。社会経済学的分類器2012cは、人の社会経済学的グループに関する結論を出すことができる。感情分類器2012nは、人の現在の感情的または情緒的状態に関して結論を出すことができる。
各分類器2012は、それぞれの特徴、例えば、年齢特徴2014a、性別特徴2014b、社会経済学的特徴2014cおよび/または感情特徴2014nを出力する。特徴2014は、別のシステムが利用できるフォーマットで出力することができる。例えば、特徴2014は、プログラムコードで表すことができ、およびバイナリコードデータとして出力することができる。
さまざまな実施態様において、特定の種類の分類器は、分類器2012内で実施することができる。例えば、統計的分類器を実施して、(例えば、ユーザ特徴およびユーザ状態に関して確率分布を生成することにより)特徴および感情状態の分類を実行するようにトレーニングすることができる。統計的分類器は、イベントの持続時間、周波数およびピッチ、エネルギ、ならびに視覚的特徴に基づいて分類を実行する際に有用である可能性がある。さまざまな特徴の場合の統計的分類器によって生成された確率分布は、組合せて、特徴および感情状態に関する最終的な推定を得ることができる。別の実施例として、トレーニングベースの分類器は、主成分分析および/または物体またはパターン認識結果を、トレーニングしたモデルに対応付けようとすることができ、この場合、それらのモデルは、定義された特徴および感情状態に対応している。
図21は、ビデオ分析ツール、具体的には、虹彩認証を判断するのに用いることができる虹彩プロセッサ2100の実施例を示す。さまざまな実施態様において、虹彩プロセッサ2100は、プリプロセッサ2110と、符号化プロセッサ2130と、マッチングプロセッサ2140とを含む。虹彩プロセッサ2100は、場合により、より大きな画像から抽出された虹彩画像2104を受け取ることができる。虹彩画像2104(または、より大きな画像)は、ビデオキャプチャ装置2102によって生成することができる。虹彩プロセッサ2100は、リモートまたはローカルのデータベースから判断された、一致した虹彩2160を出力することができる。
さまざまな実施態様において、虹彩画像2104は、虹彩と瞳孔が少なくとも部分的に見える状態の少なくとも一方の眼を含む。さまざまな実施態様において、虹彩プロセッサ2100は、虹彩画像2104内で捉えられた眼と、ローカルまたはリモートのデータベースに格納された画像を一致させようと試みることができる。さまざまな実施態様において、虹彩画像2104は、虹彩画像2104と、格納されている画像との間のハミング距離を用いて、格納されている画像と比較される。いくつかの実施態様において、虹彩画像2104は、赤外線画像である。いくつかの実施態様において、虹彩画像2104は、通常の可視光スペクトルで、すなわち、赤・緑・青(RGB)画像として生成される。
虹彩画像2104は、虹彩の完全な画像でなくてもよく、また、虹彩/瞳孔および虹彩/強膜の可変コントラスト、小さな瞼開口、および/または非正面の虹彩提示を有してもよい。プリプロセッサ2110は、虹彩画像2104内の虹彩をセグメント化して一般化し、そして、明確に輪郭が描かれた虹彩境界および合成されたある程度正面の提示を有する修正した虹彩画像を出力することができる。例えば、虹彩画像2104内の虹彩が、左、右、上方または下方に向かって回転された場合、プリプロセッサ2110は、虹彩が、直接、前面に位置していたかのように、虹彩画像2104上にその虹彩を合成することができる。同様に、前面に位置している瞳孔は、虹彩画像2104の傾斜したまたは回転された瞳孔上に合成することができる。
符号化プロセッサ2130は、プリプロセッサ2110によって生成された虹彩画像からの虹彩情報を分析して符号化することができる。虹彩画像2104は、解像度、品質および/または焦点の状態が変化する可能性がある。そのため、符号化プロセッサ2130は、虹彩画像2104に含まれている構造的虹彩情報を確実に表示できるように、一定の空間規模で虹彩情報を符号化することができる。その結果生じる符号の情報内容は、虹彩画像2104の特性により変化するであろう。符号化プロセッサ2130によって生成される虹彩画像2104の符号は、マッチングプロセッサ2140による虹彩コードアライメントを容易にするために、空間的補間を実行することができる。
マッチングプロセッサ2140は、符号化プロセッサ2130によって生成されたコードを、記憶されている虹彩コードテンプレートに整合させることができる。マッチングプロセッサ2140は、符号化プロセッサ2130によって生成されたコードの推定残留歪みを用いて、このアライメントを実行することができる。いくつかの実施態様においては、「バレルシフト」アルゴリズムを採用して、そのアライメントを実行してもよい。場合により、プリプロセッサ2110による正規化は不十分である可能性がある。これらの場合、マッチングプロセッサ2104は、アライメントプロセスに制約を適用することによって補正してもよい。すべての場合において、マッチングプロセス2104は、構造的一致を登録することができ、および整列コードを比較して、一致が存在するか否かを判断することができる。一致が見付かった場合、マッチングプロセッサは、一致した虹彩データ2160を返す。さまざまな実施態様において、虹彩データ2160は、バーチャルパーソナルアシスタント内の他のシステムが利用してもよい。
図21に示すように、さまざまな実施態様において、プリプロセッサ2110は、虹彩画像2104を受け取って、修正した虹彩画像2106を出力する。修正した虹彩画像2106は、制御されていない捕捉シナリオ、例えば、周囲照明状況、変化した照明配置、縮小した瞼開口領域、提示角度(傾斜度)、または、理想画像からの他の変動を補正することができる。さまざまな実施態様において、プリプロセッサ2110は、マッチングプロセッサ2140によって用いられるマッチングアルゴリズムに適合するように、修正した虹彩2106を調整することができる。さまざまな実施態様において、プリプロセッサ2110は、区分モジュール2112および補正モジュール2120を含む。
区分モジュール2112は、瞳孔と虹彩の低コントラストの境界に対して、入力された虹彩画像2104を補正することができる。区分モジュール2112によって生成された画像は、さらなる補正のために、補正モジュール2120に供給することができる。さまざまな実施態様において、区分モジュール2112は、エッジ検出モジュール2114と、瞳孔区分モジュール2116と、虹彩区分モジュール2118とを含む。エッジ検出モジュール2114は、瞳孔と虹彩の境界を検出するのに用いることができる。瞳孔区分モジュール2116は、瞳孔境界領域を計算することができ、および瞳孔境界領域内に黒色の人工瞳孔を挿入することができる。また、瞳孔区分モジュール2116は、斜めの虹彩および瞳孔を円形になるように歪めてもよい。虹彩区分モジュール2118は、虹彩境界を計算することができる。虹彩区分モジュール2118はさらに、例えば、虹彩画像2104を生成するカメラのオートフォーカス設定値から導き出された幅広い推定値を用いて、虹彩の直径を正規化することができる。
さまざまな実施態様において、補正モジュール2120は、チルト補正モジュール2122および角膜補正モジュール2124を含むことができる。チルト補正モジュール2122は、虹彩画像2104が斜角で捕捉された画像(例えば、人が下または横を見ている)を修正することができる。チルト補正モジュール2122は、カメラ方向に対する虹彩の傾斜角を推定することにより、チルト補正画像を生成することができる。角膜補正モジュール2124は、角膜、および虹彩がそれを介して撮像される前眼房の光学的影響によって引き起こされた虹彩画像2104内の歪みを補正することができる。2つの構造にはともに、虹彩と接触する水で満たされた単一の平凸レンズの光学的影響がある。斜角から見ると、このようなレンズは、虹彩画像2104内に非対称歪みを生成し、いくつかの領域内の画像を圧縮して、他の領域では画像を拡張するであろう。角膜補正モジュール2124は、この歪みを補正することができる。
さまざまな実施態様において、符号化プロセッサ2130は、調整モジュール2132を含む。調整モジュール2132は、修正した虹彩画像2106を、極性虹彩画像2134に変換することができる。極性虹彩画像2134は、瞳孔境界が上部に現れ、虹彩と強膜の境界領域が底部に現れるように方向付けすることができる。場合により、上方の瞼および/またはまつ毛が、極性虹彩画像2134内に見える可能性があり、場合により、虹彩を部分的に遮る可能性もある。
修正した虹彩画像2106を極性虹彩画像2134に変換した後、極性虹彩画像2134は、抽出モジュール2136に供給される。その抽出モジュールは、極性虹彩画像2134をフィルタリングおよびサブサンプリングして、虹彩の多重解像度虹彩コード2108表現を生成することができる。さまざまな実施態様において、抽出モジュール2136は、一連のバンドパスフィルタを介して虹彩画像を流して、フィルタリングされた画像のセットを生成することができる。
さまざまな実施態様において、マッチングプロセッサ2140は、アライメントモジュール2142およびフロー推定モジュール2144を備えている。符号化プロセッサ2130によって生成された虹彩コード2108は、アライメントモジュール2142に供給される。アライメントモジュール2142は、以下で説明するマッチングアルゴリズムに基づいて、虹彩コード2108に対するさまざまなアライメントを実行することができる。アライメントモジュール2142はさらに、虹彩コード2108をフロー推定モジュール2144へ供給して、推定されたフローベクトルを生成し、マッチングの際に援助することができる。アライメントモジュール2142は、虹彩コード2108を、データベース2148からの格納されている虹彩コード2146と比較して、一致が存在するか否かを判断する。一致が存在しない場合には、データベース2148からのより多くの虹彩コードが虹彩コード2108と比較される。一致スコアが判断され、および一致スコアが、所定の閾値を満たすか、または、所定の閾値以下である場合、一致は存在する。いくつかの実施態様においては、ハミング距離が一致スコアとして用いられる。一致した虹彩データ2160は、マッチングプロセッサ2140によって戻される。いくつかの実施態様において、フロー推定は、未知の虹彩コード2108および格納されている虹彩コード2146から導き出された情報に適用される。この情報は、それ自体が虹彩コード2108の一部であってもよく、そうでなくてもよい。結果として生じる、フロー推定モジュール2144からのフローフィールドは、マッチングプロセッサ2140が、一致スコア2150を生成するために、参照虹彩コードに対して照合される修正済みの虹彩コードを生成するのに用いられる。
二進法のコンテキストでは、例えば、虹彩コードを比較する場合、ハミング距離は、2つの二値画像間で異なるビット数を計算するための排他的論理和(XOR)演算に基づいてバイナリ距離を表す。いくつかの実施態様において、アライメントモジュール2142は、虹彩コードに対してDaugmanバレルシフトを実行する、すなわち、比較される虹彩コード間の最良の一致をもたらす虹彩コード回転を見つけ出す。いくつかの実施態様において、マッチングプロセッサ2140によって採用されたマッチングアルゴリズムは、バレルシフト位置の各セットの場合のハミング距離を用い、および最低のハミング距離を、それらのコードのペアのためのスコアとして利用する修正アルゴリズムである。スコアが(コードによって表された、推定された数の統計的自由度に基づいて調整することができる)ある閾値未満である場合、その未知のコードは、一致であると見なされる。ハミング距離がその閾値を超える場合は、その未知のコードは、インポスターの標識が付けられる。いくつかの実施態様において、閾値は、虹彩コード構造の詳細に、およびマッチングシナリオの統計的要件に依存する。
アライメントモジュール2142によって採用された修正アルゴリズムは、比較されている虹彩コードをバレルシフトし、また、虹彩コードを互いに局所的に整合させて、非補正光学歪みまたは虹彩の膨張および収縮の複雑性による虹彩画像正規化における不正確さを補正する。アライメントモジュール2142によって実行されるローカルアライメント機能は、虹彩の全域で均一ではない、入力された虹彩画像における歪みを補正することを可能にしている。このことは、コードのローカル領域をシフトして、それらのローカル領域を、参照コードの対応する領域とのより正確なアライメント状態にすることによって実現される。このプロセスが、非常に小さな推定領域を用いて実行される場合、実質的には、どの虹彩コードも、他のどの虹彩コードとも一致させられる可能性があり、このことは、結果的に間違った一致を生じるであろう。
この間違ったマッチング問題は、推定フローフィールドに対して、適切な滑らかさの条件を課すことによって回避することができる。例えば、フローフィールドが、比較的大きな推定領域を用いて局所変換推定を実行することによって推定される場合には、ローカルフロー推定が、この比較的大きな領域に関する平均運動を表すであろう。このような領域が重なって、その結果、隣接する位置の場合のフローベクトルを計算するのに用いられる領域が、かなりの同じ内容を含む場合には、変位推定値が位置とともに徐々に変化し、および間違ったマッチングが防止されるであろう。別法として、小さな推定領域を用いて行われた局所変位推定値は、空間フィルタリングによって平滑化して、局所変位の急激な変化を推定することができる。さらなる代替例として、低次多項式または打切りフーリエ級数等のグローバルパラメトリック表現を用いることができ、このパラメトリック表現のパラメータは、局所推定値を直接推定し、または、局所推定にフィットする。このようなパラメトリック表現は、ローカルシフトの速すぎる変化が起きることを抑止する固有の平滑特性を有している。アライメントモジュール2142はさらに、例えば、各虹彩コードが、複数の周波数帯域を含んでいるため、虹彩コード2104と、格納されている虹彩コード2146との各比較の場合の複数の一致スコアを生成する。
上記の図16から図21は、オーディオおよび画像入力をさまざまな方法で分析するシステムの実施例を提供している。これらのシステムは、言葉、感情、生体認証、ジェスチャー等を含む、オーディオおよび画像内の可能性のある異なる意味を判断することができる。人の会話は、この方法で、個別の成分に変換することができるが、実際には、人は、互いに理解し合うために、情報の組合せに依存している。例えば、人は、ある話題に興味を示す言葉を話す可能性があるが、その人の顔の表情は、無関心を示している可能性がある。また、人の会話は動的である可能性もあり、また、人の意図および感情状態は、会話の最中に変化する可能性がある。例えば、ある会話者は、別の会話者が言うことやすることに基づいて動揺する可能性があり、または、冷静になる可能性がある。
さまざまな実施態様において、バーチャルパーソナルアシスタントは、人のやりとりに関する動的性質を考慮することができるマルチモーダルの多時期システムを含むことができる。マルチモーダルシステムは、行動合図または「マーカー」のやりとりの時系列を認識することができ、および言語および非言語のコミュニケーションの相対的有意性を考慮することができる動的モデルを含むことができる。動的モデルは、行動合図の本質および/または強度を検出する際の言語入力(例えば、発話)に加えて、さまざまな異なる非言語入力、例えば、視線、ジェスチャー、発話の速度、話しの調子および音の大きさ、顔の表情、頭部の姿勢、身体の姿勢、パラ言語および/またはその他を考慮することができる。さらに、そのモデルは、複数の時間粒度にわたって行動合図を考慮することができる。例えば、そのモデルは、短期間の時間尺度にわたるやりとりに含まれるさまざまな個人の言語および/または非言語行動(例えば、瞬間的に行われる個人の行動またはイベント)、中期間の時間尺度にわたるやりとりに含まれるさまざまな個人の言語および/または非言語行動(例えば、数秒またはそれ以上続く挨拶の儀式)および/または長期間の時間尺度にわたるやりとりに含まれるさまざまな個人の言語および/または非言語行動(例えば、数分またはそれ以上続く、やりとりのより長いセグメントまたはやりとり全体)を考慮することができる。
図22は、やりとりアシスタント2210の実施例を示す。やりとりアシスタント2210は、言語入力2230および非言語入力2228の両方を分析して解釈するように構成することができ、およびそれらの入力から、その入力を与えた人によって表現される可能性があるさまざまな種類の言語および/または非言語の行動合図2232を識別するように構成することができる。さまざまな実施態様において、言語入力2230および非言語入力2228は、上述したさまざまな分析ツールおよび入力フォーマットツールによって与えることができる。したがって、言語入力2230および非言語入力2228は、例えば、特に、自動音声認識システムによって供給されたテキスト、発話から検出された感情の描写、音声生態認証の描写、画像内で認識された物体および/または顔の描写、画像内で検出された感情および/またはボディランゲージの描写、虹彩認証の記述、タイプ入力されたテキスト、グラフィックユーザインタフェースを介して入力されたコマンド、および/またはタッチスクリーンジェスチャーを含むことができる。これらの入力の各々は、モード、または、モードの組合せとして説明することができる。やりとりアシスタントを含むマルチモーダルシステムは、“Multi-Modal Modeling of Temporal Interaction Sequences”と題する米国特許出願公開第2014/0212854号明細書でも議論されており、参照によって、その明細書の全体を本願明細書に組み込むものとする。
「合図」と言う用語は、本願明細書で用いる場合、一般的には、内的刺激および/または外的刺激に対する人の反応、例えば、人の行動的、感情的または認知的状態に関する表現的または伝達的インジケータ、および/またはバーチャルパーソナルアシスタントとの人のやりとりの間に生じる異なる段階、セグメントまたは推移に関するインジケータを意味する。例えば、人がアイコンタクトを行ったことを暗示することは、友好的なやりとりを示す可能性があるが、人が視線をそらしていることを暗示することは、そのやりとりの一部の間での退屈または注意散漫を示している可能性がある。同様に、握手の後のアイコンタクトを伴う一連の合図は、挨拶の儀式がちょうど行われたこと、または、そのやりとりが、そのひと続きのことが起きる時間間隔(例えば、最初の数秒または数分後)により、完結しそうであることを示している可能性がある。
実施例のやりとりアシスタント2210は、一つ以上の異なる時間尺度にわたるその行動合図2232の分析に基づいて、そのやりとりの間、やりとりにおいておよび/またはやりとりの後に、多くの異なる方法で、バーチャルパーソナルアシスタントの人とのやりとりの本質および/または有効性を評価することができる。別法として、または追加的に、やりとりアシスタント2210は、行動合図2232を用いて、やりとりの間の人の認知的および/または感情的状態、ならびに、人の状態が時間とともに変化したか否か、およびどのように変化したかを評価することができる。やりとりアシスタント2210は、複数の異なる時間尺度を用いて、異なる行動合図2232の相対的有意性を、やりとりの異なるセグメントという観点で、すなわち、(他の関係者によって表現された行動合図を含む)他の行動合図と比較して、および/またはそのやりとりの全持続時間に対する、合図が行われた時間間隔の観点で評価することができる。これらおよびその他の分析および評価は、やりとりアシスタント2210により、「同時進行で」(例えば、やりとりが起きている間に、または、「リアルタイム」で)および/またはそのやりとりが終わった後に実行することができる。
一般的に、人とバーチャルパーソナルアシスタントを可能にする装置とのやりとりは、言語および非言語の伝達のやりとりの形態で行うことができる。場合により、そのやりとりは、互いにやりとりする複数の人と、バーチャルパーソナルアシスタントが関係してもよい。そのやりとりは、関係者のすべてが同じ地理的位置にいるか否かに関係なく行われる可能性がある。例えば、関係者のうちの1人以上は、テレビ会議、ウェブカメラ、ソフトウェアアプリケーションを介しておよび/または他の何らかの方法で、そのやりとりに関わってもよい。
さまざまな実施態様において、やりとりアシスタント2210は、マルチモーダル特徴アナライザ2212、やりとりモデラー2214、やりとりモデル2216、一つ以上のアプリケーションモジュール2218および一つ以上の特徴分類器2252を含む、複数のコンピュータ化されたモジュールおよびデータ構造として実施することができる。マルチモーダル特徴アナライザ2212は、特徴分類器2252を、非言語入力2228および言語入力2230に適用して、それから、やりとりの間に人が表現した行動合図2232を識別することができる。いくつかの実施態様において、特徴分類器2252は、例えば、入力“x”を取得して、複数の既知のサンプルを用いて分類器上で実行される「トレーニング」に基づいて、xが既知の特徴と似ている数学的可能性を判断する統計的アルゴリズムまたは確率的アルゴリズムを含む。十分に高い信頼度で、入力xの場合の一致が見付かると、そのデータストリームに、一致したデータに対応する記述によって注釈または標識が付けられる。いくつかの実施態様において、分類器2252のうちの一つ以上は、以下でさらに説明するように、多くの時間尺度にわたって、行動合図2232を検出するように構成することができる。同様の種類の分類器および/または他の分類器を、顔の表情および/または他の行動合図2232を認識するのに用いてもよい。
実施例のマルチモーダル特徴アナライザ2212は、特に、ポーズ認識装置2240、ジェスチャー認識装置2242、音声特徴認識装置2244、注視アナライザ2246、顔特徴認識装置2248および自動音声認識システム2250を含む複数のサブモジュールまたはサブシステムを含むことができる。これらのサブモジュールは、異なる種類のマルチモーダルデータのストリームを処理して、その中で描写されているか、または、それによって表現されている低レベル特徴を認識することができる。このような処理は、さまざまなサブモジュールまたはサブシステムによって並行して(例えば、複数の様式にわたって同時に)または連続的に、および他とは無関係に、または一体的に行ってもよい。例えば、マルチモーダルデータの分析に、アーリーおよび/またはレイトフュージョン法を用いてもよい。一般的に、アーリーフュージョン法は、まず、データのマルチモーダルストリームを一緒にフュージョンした後、フュージョンしたストリームに注釈または標識を適用するが、レイトフュージョン法は、まず、注釈または標識を、別々のデータのストリーム(例えば、発話、身体の姿勢)に適用した後、注釈が付けられたストリームを一緒にフュージョンする。
人の身体の姿勢、頭部の姿勢および/またはジェスチャーが分析される実施態様において、ポーズ認識装置2240およびジェスチャー認識装置2242は、深度、骨格トレースおよび/または画像分析ツールによって生成された他の入力(例えば、頭部、腕、肩、足等のx-y-z座標)を処理し、それから低レベル特徴を抽出し、およびポーズおよびジェスチャー分類器(例えば、サポートベクターマシン(SVM)分類器)およびそれに対するマッチングアルゴリズム(例えば、正規化相関、動的時間伸縮法等)を適用して、入力2228、入力2230が表している可能性が高いポーズまたはジェスチャーを判断することができる。このようなポーズまたはジェスチャーのいくつかの実例は、前方に傾けた頭部、横に傾けた頭部、折り畳んだ腕、突き出した手、立っている姿勢、顔に手を当てること、手を振ること、腕を振ること等を含む。いくつかの実施態様において、ポーズ認識装置2240は、これらおよび他の方法を同様に用いて、体の姿勢がどのように見えるか、例えば、「ポジティブ」、「ネガティブ」または「中立」に見えるか否かに関して、それらの体の姿勢を分類することができる。
一つ以上の関係者の声の特徴(例えば、非音声特徴、および/または声のピッチ、発話の調子、エネルギレベル等のパラ言語、およびOpenEars特徴)が分析される実施態様において、音声特徴認識装置2244は、入力2228、入力2230からの音、言語および/または音響特徴を抽出して分類することができる。いくつかの実施態様において、音声認識アルゴリズムは、メル周波数ケプストラム係数を用いて、特定の声の特徴の話し手を識別することができる。言語認識アルゴリズムは、シフト型デルタケプストラム係数および/または他の種類の変換(例えば、ケプストラムプラスデルタ、ProPol5次多項式変換、次元削減、ベクトル量子化等)を用いて、声の特徴を分析することができる。声の特徴を分類するために、SVMおよび/または他のモデリング法(例えば、GMM-UBM固有チャネル、ユークリッド距離メトリック等)を用いてもよい。いくつかの実施態様において、複数のモデリングアプローチの組合せを用いてもよく、その結果は、例えば、ロジスティック回帰較正を用いて、組合せてフュージョンされる。このようにして、音声特徴認識装置2244は、例えば、興奮、混乱、フラストレーション、幸せ、冷静、動揺等の暗示を含む声の合図を認識することができる。
1人以上の関係者の視線が分析される実施態様において、注視アナライザ2246は、例えば、目の焦点、視線の持続時間、視線の位置、および/または瞳孔散大に関連する非言語入力2228を考慮することができる。このような入力は、例えば、人のビデオクリップから入手することができ、または、人のビデオクリップから導き出すことができる。いくつかの実施態様においては、人の視線の対象の意味内容を分析してもよい。一般に、視線追跡システムは、例えば、眼を照らして、瞳孔の位置から反射させる赤外線を用いて、人の眼の動きおよびその人の視線の焦点をモニタして記録する。注視アナライザ2246は、これらおよびその他の方法を用いて、例えば、退屈、混乱、対象との関わり、注意散漫、理解等を示す合図2232を判断することができる。
人の顔の表情、頭部または顔の姿勢、および/または顔の特徴が分析される実施態様において、顔の特徴認識装置2248は、画像データから得られた非言語入力2228を、単独で、または、ジャイロスコープおよび/または加速度計または同様のシステムを含むシステムから得られるような動作および/または運動入力と組み合わせて分析することができる。いくつかの実施態様において、低および中レベルの顔の特徴が、入力2228、入力2230から抽出されて、顔の特徴分類器2252を用いて分類される。このことから、顔の特徴認識装置2248は、例えば、笑顔、つり上げた眉毛、しかめっ面等を検出することができる。以下でさらに説明するように、いくつかの実施態様において、顔の表情の情報は、顔の姿勢、体の姿勢、発話の調子、および/または関係者の感情状態、例えば、怒り、混乱、嫌悪、恐怖、幸福、悲しみまたは驚きのしるしを導き出すための他の入力とともにまとめることができる。
ASRシステム2250は、言語入力2230における話し言葉および/またはフレーズを識別することができ、また、いくつかの実施態様においては、言語入力2230をテキスト形式に変換することができる。やりとりアシスタント2210とともに使用する場合、ASRシステム2250は、以下で説明する自然言語理解(natural language understand:NLU)システム2262による処理の後に、やりとりの本質または有効性を示す可能性がある言語合図を生成することができる。例えば、「すみません」のような言葉は、やりとりが上手くいっていないこと、または、話し手が、そのやりとりをポジティブな状態に戻そうとしていることを示すことができ、一方、「素晴らしい」のような言葉は、そのやりとりが上手くいっていることを示すことができる。
やりとりモデラー2214は、やりとりの過程で捉えられた言語入力2230および/または非言語入力2228から集められた行動合図2232に基づいて、やりとりの動的モデル、すなわち、やりとりモデル2216を展開することができる。そのモデルは、やりとりが時間とともに進展する際に、人のやりとりの非静的本質を説明できるという点で「動的」である。さらに、実施例のやりとりモデラー2214は、やりとりの間に表現された合図の特徴または顕著なパターンが明言されているか否かに関わらず、「データ駆動型」アプローチを適用して、それらの合図の特徴または顕著なパターンを「学習」または「見つけ出す」ことができる。実施例のやりとりモデラー2214の「ボトムアップ」アプローチは、そのやりとりに参加している特定の人に対してコンテキスト化およびカスタマイズすることができるように、やりとりモデル2216を展開できるようになっている。例えば、発見的ルールベースのシステムは、視線をそらすことを注意力散漫のインジケータとして常に特徴付けるであろうが、このような行動は、少なくとも特定のやりとりの文脈において、ある人においては熟慮を示し、または、他の人では注意散漫を示している可能性がある。人の行動の解釈におけるこれらの種類のより微細な区別は、やりとりモデル2216を用いて、やりとりモデラー2214によって明らかにすることができる。
やりとりモデラー2214は、やりとりが時間とともに進展する際に、一連のスナップショット的観察としてではなく、そのやりとりの文脈内で、そのやりとりのモデリングを可能にすることができる。こうするために、実施例のやりとりモデラー2214は、バーチャルパーソナルアシスタントによって捉えたマルチモーダルデータの時間的ダイナミクスをモデル化することができる方法を適用することができる。さまざまな実施態様においては、条件付き確率場(Conditional Random Fields:CRF)等の識別モデリング法を用いることができる。いくつかの実施態様においては、(隠れマルコフモデル(Hidden Markov Model:HMM)等の)生成モデル、または、識別モデルと生成モデルの組合せを、やりとりの特定の態様をモデル化するのに用いてもよい。例えば、いくつかの実施態様において、HMMは、やりとりの変化点(例えば、対話の変化、または、やりとりの段階の始まりまたは終わり)を識別するのに用いることができ、一方、CRFは、HMMによって識別されたやりとりのセグメント中の非静止的な行動合図を捉えて分析するのに用いることができる。
やりとりモデラー2214は、CRFおよび/または他の方法を適用して、一つ以上のやりとりの時系列を認識することができ、それらの時系列の各々は、やりとりの間に行われる行動合図2232のパターンを含むことができる。「やりとりの時系列」は、やりとりの間のある時間間隔にわたって、人によって表現された行動合図2232の任意のパターンまたはシーケンスを指し、それは、やりとりアシスタント2210によって捉えられて認識される。換言すると、やりとりの時系列は、やりとりの過程で、バーチャルパーソナルアシスタントによって捉えられた低レベル特徴のパターンまたはシーケンスの「写し」として考えることができる。一つのやりとりの時系列が、一人の関係者の行動合図を含み、および別の時系列が、同時に行われる別の関係者の行動合図を含む可能性があるように、異なるやりとりの時系列が、同時にまたは重なって生じる可能性がある。
いくつかの実施態様において、やりとりモデラー2214は、複数の時間尺度にわたって、やりとりの時系列を認識し、および注釈または標識を付けることができ、この場合、時間尺度は、そのサイズを、そのやりとりの他の時間間隔のサイズと比較することができる時間間隔によって定義される。さらに、いくつかの実施態様において、やりとりモデラー2214は、複数のモダリティにわたる行動合図2232間の関連、相関性および/または関係と、行動合図2232の時間的ダイナミクスとを、各モダリティを別々に分析するのではなく、まとめて学習することができる。したがって、やりとりモデラー2214は、さまざまな時点で、およびやりとりの異なる時系列にわたって、異なるマルチモーダルデータの組合せに基づいて、人の行動状態の評価を導き出すことができる。
実施例のやりとりモデラー2214は、行動合図2232のやりとりの時系列を分析することができる、影響アナライザ2260、自然言語理解(NLU)システム2262、時間的ダイナミクスアナライザ2264、人間相互間のダイナミクスアナライザ2266およびコンテキストアナライザ2268を含む、複数の異なる行動モデリングサブモジュールまたはサブシステムを含むことができる。これらのアナライザは、CRFおよび/または他のモデリング法によって明らかにすることができる、さまざまな行動合図2232間の関係および依存性を、さまざまな異なる方法で評価することができる。それらの分析の結果として、やりとりの時系列の各々は、やりとりの時系列を説明するか、または、解釈する一つ以上のラベルで注釈を付けることができる。例えば、特徴分類器2252は、「笑顔」、「しかめっ面」、「握手」等の低レベルまたは中レベルのラベルを生成することができるのに対して、やりとりモデラー2214は、「挨拶の儀式」、「修復段階」、「閉会の行事」、「友好的」、「動揺」、「退屈」、「混乱」等の高レベルの分類ラベルまたは解釈ラベルをマルチモーダルデータに適用することができ、および/または「成功」、「失敗」、「ポジティブ」、「ネガティブ」等の評価ラベルまたは評価を評価することができる。このような注釈は、やりとりモデル2216に格納することができ、および/または別の方法で、入力2228、入力2230から導き出された対応する行動合図2232およびやりとりの時系列と、例えばメタタグとして関連付けてもよい。
影響アナライザ2260は、やりとりの時系列中に生じる行動合図2232のさまざまな組合せを分析することができる。例えば、影響アナライザ2260は、一緒に行われる行動合図2232のさまざまな組合せ、例えば、頭部の姿勢、顔の表情、言語内容、ならびにそれらの相互関係を考慮して、関係者の可能性の高い行動的、感情的または認知的状態を判断することができる。さまざまな実施態様において、このような判断は、別々に行われた個々の合図ではなく、合図のまとめた組合せに基づかせることができる。実施例の影響アナライザ2260は、異なる種類の行動合図2232の各々における時間変動を経時的に分析することもできる。場合により、影響アナライザ2260は、行動合図2232を、「中立の」リファレンス(例えば、重心)と比較する。このようにして、影響アナライザ2260は、自発的な行動を説明することができ、および行動合図2232の強度の変化を検出することができる。
NLUシステム2262は、ASRシステム2250によって既に処理されている言語入力2230の言語内容を構文解析し、意味的に分析し、および解釈することができる。換言すると、NLUシステム2262は、ASRシステム2250によって生成された言葉および/またはフレーズを分析し、やりとりに関係している関係者またはその他の者によって話された前の言葉またはフレーズを考慮して、その話し手が意図している可能性が最も高い意味を判断することができる。例えば、NLUシステム2262は、言語コンテキストに基づいて、複数の考えられる定義を有する言葉(例えば、「ポップ」という言葉は、その文脈により、何かが破裂したことを意味する可能性があり、または、炭酸飲料を指す可能性があり、あるいは、人のニックネームである可能性もある)の意図された意味を判断することができる。
影響アナライザ2260および/またはNLUシステム2262は、マルチモーダルデータに注釈を付けることができ、そのような注釈は、一つ以上のやりとりの時系列の文脈における分析のために、時間アナライザ2264、人間相互間アナライザ2266およびコンテキストアナライザ2268が利用することができる。すなわち、アナライザ2264、2266、2268の各々またはいずれかは、非言語の合図および言語内容の時間的パターンを分析することができる。例えば、一人の関係者の言語内容が、やりとりの始めにおいて、「すみません」という言葉を含み、および「素晴らしい」という言葉を、そのやりとりの終わりに含んでいる場合、アナライザ2264によって実行された時間的分析の結果は、「素晴らしい」が、やりとり初期に生じ、「すみません」が後に生じた場合とは異なる可能性がある。同様に、しかめっ面が後に続く初期の笑顔は、アナライザ2264により、笑顔が後に続く初期のしかめっ面とは異なって解釈される可能性がある。
時間的ダイナミクスアナライザ2264は、行動合図2232のパターンを分析して、人の行動または「状態」(例えば、ある時点で捉えられた行動合図の組合せ)が、時間とともにどのように変化したかを判断することができる。このようにするために、時間的ダイナミクスアナライザ2264は、やりとりの時系列を検査して、時系列の後の方で生じる行動合図2232を、以前に生じた行動合図と比較することができる。時間的ダイナミクスアナライザ2264は、行動合図が、他の時間間隔と関連して生じる時間間隔を考慮することもできる。したがって、時間的ダイナミクスアナライザ2264は、例えば、関係者が、時間とともに、イライラしてきているように見えるか否か、または、次第にやりとりに関与しだしているか否かを明らかにすることができる。
人間相互間のダイナミクスアナライザ2266は、行動合図2232のパターンを分析して、人の行動または「状態」が、バーチャルパーソナルアシスタントの挙動に応答してどのように変化するかを判断することができる。このようにするために、人間相互間のダイナミクスアナライザ2266は、行動合図2232の時系列を考慮することができる。例えば、やりとりの時系列は、バーチャルパーソナルアシスタントによる冷静な応答が後に続き、人による笑顔が後に続く、しかめっ面および緊張した身体姿勢を含んでもよい。行動合図のこのパターンから、人間相互間のダイナミクスアナライザ2266は、例えば、バーチャルパーソナルアシスタントの応答を、やりとり全体としての本質または有効性への影響に関して重要であると識別することができる。
コンテキストアナライザ2268は、行動合図2232のパターンを分析して、やりとりの全体の文脈が、人の行動にどのように影響を与えるかを判断することができる。換言すると、コンテキストアナライザ2268は、異なる時間尺度にわたって、例えば、短期間および長期間の時間的セグメントの両方にわたって生じるやりとりの時系列を考慮することができる。「時間間隔」が、一般的に、イベントまたは状態間の任意の時間の長さ、または、その間に何かが存在する時間間隔、またはその間に何かが続く時間間隔を指すのに対して、時間尺度または時間粒度は、少なくとも一つの他の時間尺度と関連する、イベントまたは出来事の構成によって定義することができる、持続時間のある相対的な尺度を含意する。例えば、時間尺度が「秒」である場合、時間間隔は、1秒、5秒、30秒等になるであろう。同様に、時間尺度が「分」である場合、時間間隔は、1分、10分等になる。その結果として、コンテキストアナライザ2268は、1分または2分しか続かないやりとりに対しては、しかめっ面をより重要であると考えるが、10分以上続くやりとりに対しては、それほど重要ではないと考えることができる。
いくつかの実施態様において、コンテキストアナライザ2268によって用いられる時間尺度は、予め定義しなくてもよく、または固定しなくてもよいが(例えば、分または秒)、動的にしてもよく、および行動合図2232自体から導き出してもよい。すなわち、時間尺度は、必然的に、感知したデータに由来してもよい。場合により、時間尺度は、やりとりの時系列のうちの一つ以上に対応してもよい。例えば、やりとりの始めにおけるやりとりの時系列は、一人の関係者による笑顔と握手であって、別の関係者による笑顔と頷きが後に続き、両関係者が座っている笑顔と握手とを含んでもよい。やりとりの別の時系列は、最初の時系列の行動合図と、一つ以上の後の行動合図によって示される、やりとりの変化点まで続く他の行動合図とを含んでもよい(例えば、関係者は、しばらくの間座っていた後に、立ち上がる)。これらの実施例においては、笑顔は、やりとりの最初の時系列に対しては、重要性を有している可能性があるが、やりとりの第2の時系列の行動合図と合わせて考えた場合、やりとり全体に対しては、あまり重要性がない可能性がある。実施例として、やりとりモデラー2214は、やりとりの最初の時系列から、これは、二人の人の好意的なミーティングであるように見えるということを検出することができる。しかし、やりとりの最初の時系列の時間尺度を、やりとりの第2の時系列の時間尺度と比較して考慮した場合、やりとりモデラー2214は、そのやりとりは楽しいが、本質的には専門的であり、友人同士のざっくばらんなミーティングとは対照的なビジネスのミーティングを示していると判断することができる。
いくつかの実施態様においては、やりとりのコンテキストに関する他のインジケータを、コンテキストアナライザ2268によって考慮してもよい。例えば、バーチャルパーソナルアシスタントは、やりとりが屋内または屋外で行われているかを示すデータ、または、そのやりとりの地理的位置を識別するデータを提供してもよい。このようなインジケータは、ビデオクリップから導き出すことができ、または、コンピュータ制御の位置測定システム(例えば、セルラーシステムまたは全地球測位システム(GPS))および/またはその他の装置から得ることができる。コンテキストアナライザ2268は、これらの入力を考慮することができ、およびそれらの入力を行動合図2232の解釈に分解することができる。例えば、真面目な顔の表情は、やりとりが、屋外のパーティーでではなく、重役会議室で行われる場合、やりとりモデラー2214により異なって解釈される可能性がある。別の実施例として、そのシステムが話している間に、行動合図2232のいくつかが、人が視線をそらしていることを示している場合、コンテキストアナライザ2268は、他の行動合図2232および/または他のデータを分析して、その人が退屈により視線をそらした可能性があるのか(例えば、そのシステムが、数分間、同じ話題に関して話し続けている場合)、または、注意散漫で視線をそらした可能性があるのか(例えば、別の人がその部屋に入ってきた等の、カメラから離れた所で何かが起きた)否かを判断することができる。
実施例のやりとりモデル2216は、やりとりおよびそのコンテキストに関する空間時間ダイナミクスを表し、およびモデル化するグラフィカルモデルを含むことができる。やりとりモデル2216は、隠れ状態を用いて、やりとりの非定常状態をモデル化することができる。やりとりモデル2216は、一つ以上のコンピュータがアクセス可能なデータ構造、引数、パラメータおよび/またはプログラミング構造(例えば、ベクトル、行列、データベース、ルックアップテーブル等)を用いて実施することができ、また、情報に関する一つ以上のインデックス付きの、または、他の検索可能な記憶装置を含むことができる。実施例のやりとりモデル2216は、行動合図2232、やりとりの時系列、およびやりとりモデラー2214によってモデル化されるやりとりに関連するデータ、ならびにイベント、評価、および合図2232から導き出される意味構造、やりとりの時系列および以下でさらに説明するようなやりとりに関連するデータを格納するためのデータストア2270、2272、2274、2276、2278、2280を含む。やりとりモデル2216は、さまざまな合図2232と、シーケンス2272と、やりとりとの間の関係および/または依存性を示すデータを維持することもできる。
イベントデータ2276は、さまざまな行動合図およびやりとりの時系列に関する人が理解可能な特徴または解釈(例えば、意味論的意味)を含むことができる。例えば、笑顔や握手を含むやりとりの時系列は、「挨拶の儀式」のイベントを示すことができるが、大声や腕を振ることを含むやりとりの時系列は、「興奮している人」のイベントを示すことができる。同様に、イベントデータは、いくつかの行動合図を「本物の笑顔」として、およびその他を「神経質な笑み」として特徴付けることができる。イベントデータ2276は、短期のやりとりの時系列(「マーカー」ともいう)および長期の時系列の識別子を含むことができる。例えば、マーカーは、「アイコンタクト」であってもよいが、長期イベントは、「友好的な遭遇」としてもよいであろう。
評価データ2278は、やりとりの時系列から導き出される、やりとり全体のおよび/またはその一部の本質または有効性の暗示を含むことができる。例えば、やりとりの本質は、「ビジネスライク」または「ざっくばらん」であってもよいが、その有効性は、「成功」または「失敗」、「ポジティブ」または「ネガティブ」、「十分」または「不十分」とすることができる。意味構造2280は、パターン、関係、および/または異なるイベントと、やりとりの時系列から導き出される評価との関連を含む。したがって、意味構造2280は、「楽しい会話は、笑顔と頷きを含む」または「手を脇に付けているのは、リラックスした状態を示している」等の文を作成するのに用いてもよい。実際には、意味構造2280は、以下でさらに説明するように、やりとりのための学習ルールを展開するのに用いてもよい。
やりとりモデル2216は、その中に格納された評価、意味構造および/またはその他の情報を、さまざまな用途のために、一つ以上のアプリケーションモジュール2218に対してアクセス可能にすることができる。アプリケーションモジュール2218のいくつかの実施例は、提案モジュール2290、対話モジュール2292、予測モジュール2294、説明モジュール2296および学習ルールモジュール2298を含む。いくつかの実施態様において、モジュール2218は、(例えば、同じ「アプリ」の一部として)やりとりアシスタント2210と一体化してもよい。他の実施形態では、アプリケーションモジュール2218のうちの一つ以上を、一つ以上の電子通信ネットワークを介してやりとりアシスタント2210とインタフェースをとる独立したアプリケーション(例えば、第三者のアプリケーション)として具体化してもよい。
実施例の提案モジュール2290は、やりとりモデル2216から得られたデータを評価することができ、およびやりとりの最中および/または後に、バーチャルパーソナルアシスタントおよび/またはその他(例えば、リサーチャーおよび他の人の観察者)を用いて、人に提示することができる提案を生成する。こうするために、提案モジュール2290は、合図、イベントおよび/または評価のパターンを、格納されているテンプレートおよび/またはルールと比較することができる。実施例として、提案モジュール2290は、一連の行動合図をテンプレートと比較し、それに基づいて、人が、自分の眼鏡を外すこと、または、より好意的に見えるように、自分のボディランゲージを調整することを提案してもよい。提案モジュール2290によって生成された提案は、さまざまな異なる方法で、例えば、テキストメッセージ、非テキストの電子信号(警告音またはブザー等)、および/または(マシンが生成した自然言語または予め記録された人の声のメッセージを含んでもよい)音声対話等で、関係者および/または他者に伝えることができる。
実施例の対話モジュール2292は、やりとりモデル2216から得られたデータを、人と、バーチャルパーソナルアシスタントが使用可能な装置との間の対話の文脈で評価することができる。バーチャルパーソナルアシスタントにおいては、以下でさらに議論するように、ユーザの対話入力は、ASRシステムおよびNLUシステムによって処理されて解釈され、そして、推論モジュールは、現在の状態およびその対話の流れをモニタして、自動推論法を適用して、ユーザの入力に対してどのように応答するかを判断する。推論モジュールは、情報探索および検索エンジンとインタフェースをとって、その対話内でユーザが要求した情報を得ることができる。自然言語発生器は、自然言語応答を生成し、それは、その後、ユーザに(例えば、テキストまたはオーディオ形式で)提示される。
実施例の対話モジュール2292は、やりとりデータ(例えば、合図、イベント、評価等)を用いて、人の関係者によって、そのモジュールに提示される対話の部分をどのように解釈し、および/または対話の部分に対してどのように応答するかを判断することができる。例えば、対話モジュール2292は、やりとりの評価を用いて、人の発言が、真剣な情報要求としてではなく、ユーモアとして意図されていること、およびそのため、返答に含むための確かな情報の探索は必要ないことを判断することができる。別の実施例として、対話モジュール2292は、非言語合図から集められたイベントまたは評価データを用いて、その応答を調整することができる。例えば、データに基づいて、その人が混乱しているか、またはイライラしていると思われる場合、対話モジュール2292は、異なる言葉を選択して、その返答で用いてもよく、または、その対話出力を、よりゆっくりと提示してもよく、または、その情報のグラフィック表示を、その返答に含んでもよい。いくつかの実施態様において、対話モジュール2292は、複数の時間尺度からの情報を利用して、より建設的な方法で、対話を進めることを試みてもよい。例えば、シーケンス2272が、ユーザが対話の最初の方で提示された情報には満足している様子だったが、今は、イライラして来ているようである場合、対話モジュール2292は、場合により、ユーザが、対話セッションを小休止することを可能にすることにより、または、最初の方でユーザからポジティブな反応を生じさせたと思われる、その最初の方でユーザに提示された情報を再提示することによって、その対話を快適な状態に戻すことを試みてもよい。
実施例の予測モジュール2294は、提案モジュール2290と同様の方法で作動することができる。例えば、予測モジュール2294は、イベントデータ2276のパターン、評価データ2278等を、格納されているテンプレートおよび/またはルールと比較することができる。しかし、予測モジュール2294は、このことを行って、やりとりの後の方で起きる可能性の高い合図またはイベントを判断する。例えば、予測モジュール2294は、そのシステムが、数分以上、特定の一連の合図を続けた場合、その人が起き上って部屋から出て行く可能性が高いと判断することができる。予測モジュール2294によって生成されたこのような予測は、やりとりの最中および/またはやりとりの後に、何らかの適切な形式(例えば、テキスト、オーディオ等)で、その人および/または他者に提示することができる。
実施例の説明モジュール2296は、やりとりと関連している一つ以上の評価の人が理解できる説明を生成することができる。すなわち、ある評価は、やりとりアシスタント2210によって出された、あるやりとりまたはそのセグメントに関する何らかの結論を示しているが、その説明は、一般に、その結論が出された理由の説明を含んでいる。換言すると、その説明は、典型的には、評価に関する人が理解できるバージョンと、その裏付けとなる根拠とを含む。例えば、あるやりとりの評価が「ポジティブ」である場合、その説明は、「どちらのユーザもアイコンタクトを行い、笑顔を作り、頷いたため、これは、ポジティブなやりとりだ」等のフレーズを含んでもよい。いくつかの実施態様において、説明モジュール2296によって生成された説明は、詳述を含み、または、詳述と呼んでもよい。
実施例の学習ルールモジュール2298は、意味構造2280に基づいて、ルールを生成することができる。このようなルールは、ヒューリスティックに基づくのではなく、やりとりの間に集められた実際のデータから導き出すことができる。このような学習ルールのいくつかの実例は、「この人の興奮状態に応答して冷静に話すことは、その人をさらに興奮させる(または、興奮を鎮める)であろう」または「握手の後にハグすることは、この人の挨拶の儀式の一部である」を含む。このような学習ルールは、例えば、やりとりモデル2216を更新するのに用いてもよい。学習ルールの他の用途は、(例えば、何種類かのやりとりのための、または、特定の話題または人のタイプを含むやりとりのためのフィールドガイドまたはマニュアルを開発するための)トレーニングおよびコーチング用途を含む。
一般に、やりとりモデラー2214およびアプリケーションモジュール2218をやりとりモデル2216に接続している双方向矢印は、それらの間の動的な関係を示すことが意図されている。例えば、やりとりモデル2216は、アプリケーションモジュール2218のうちの一つ以上から得られたユーザフィードバックに基づいて更新することができる。同様に、やりとりモデル2216に対するアップデートは、やりとりモデラー2214によって用いられるアルゴリズム、パラメータ、引数等を変更するのに用いることができる。さらに、アプリケーションモジュール2218によって生成することができる何らかの情報または出力に関して、このようなデータは、後の使用のためであってもよく、または、別法として、または、バーチャルパーソナルアシスタントが使用可能な装置を用いる人に提示されるのに加えて、(例えば、ネットワークを通じて)他のアプリケーションに伝達してもよい。
III. 会話システム
上述したようなやりとりアシスタントは、一つ以上のオントロジーにより、対話の過程でどのように反応するかを判断するのを支援されてもよい。例えば、やりとりアシスタントは、オントロジーを用いて、提案を判断し、対話を作成し、および/またはやりとりがどのように進む可能性があるかを予測するのを助けることができる。上述したように、オントロジーは、情報を整理してまとめるフレームワークである。さまざまな実施態様において、バーチャルパーソナルアシスタントは、コンテキスト固有のフレームワーク、例えば、ドメイン固有のオントロジーを含んでもよい。
さまざまな実施態様において、バーチャルパーソナルアシスタントは、動的なオントロジーおよび適応オントロジーも含んでもよい。適応オントロジーは、バーチャルパーソナルアシスタントが、使用中に、新たな情報を取得する際に、新たなコンセプトおよび関係に適応させることができる。例えば、適応オントロジーは、機械学習を用いて成長させることができる。動的なオントロジーは、バーチャルパーソナルアシスタントが新たな情報を取得する際に、動的なオントロジーが成長できるという点で、適応オントロジーと同様の原理で作動することができる。しかし、動的なオントロジーは、すべての有用な知識の保存場所であることにはあまり重点を置かず、人または人のグループとの会話の履歴またはコンテキスト固有のフレームワークとして、より大きく重点を置くことができる。例えば、動的なオントロジーは、人の入力から解釈された意図と、それらの意図に関連するコンセプトとを記録することができる。さまざまな実施態様において、動的なオントロジーは、必要な場合に情報を有するように、静的オントロジーまたは適応オントロジーの使用に追加することができる。さまざまな実施態様において、動的なオントロジーは、情報が関連するのをやめる際に、縮小させることもできる。
図23は、適応または動的なオントロジーシステム2310の実施例を示す。一般に、適応または動的なオントロジーシステム2310は、特定の人の好みを用いて、バーチャルパーソナルアシスタントの現在の知識を適応させることができる。適応または動的なオントロジーシステム2310は、装置のユーザからの明示的および/または暗黙的なフィードバック、ユーザプロファイル等のユーザデータを考慮して、および人の好みを学習することによって、バーチャルパーソナルアシスタントの一般的なオントロジーおよびドメイン固有のオントロジーを改善し、変化させおよび/または修正することもできる。適応または動的なオントロジーシステム2310は、新たなコンセプトおよび関係を、機械学習に基づいて展開または強化できるように、バーチャルパーソナルアシスタントが、機械学習を用いて、オントロジーを適応させることを可能にすることができる。適応または動的なオントロジーシステム2310は、機械学習を用いて、コンセプトの除去、または、複数のコンセプトの中での関係強度を弱めることも可能にすることができる。
さまざまな実施態様において、適応または動的なオントロジーシステム2310は、知識抽出器および学習エンジン2323を含むことができる。さまざまな実施態様において、知識抽出器および学習エンジン2323は、バーチャルパーソナルアシスタントが、特に、個人の用語、使用パターン、好みおよび優先性に対してオントロジーを適応させることを可能にするソフトウェア論理モジュールを含んでもよい。知識抽出器および学習エンジン2323は、クリックストリームデータ等の種々の観察、暗黙的なユーザ行動パターンおよび明示的なユーザ暗示を介して、新たな用語、使用、意味、好みおよび優先性を集めることができる。さまざまな実施態様において、知識抽出器および学習エンジン2323は、所定の特徴のセットに従って、これらの観察にインデックスを付けることができ、この場合、それらの特徴は、バーチャルパーソナルアシスタントにとって関心のある観察データの特徴を定義する。知識抽出器および学習エンジン2323は、このような入力を処理し、幅広いデータソースから導き出されたインデックス付き、タグ付けされた、およびクラスタ化されたデータに、そのデータを重ね合わせることができる。その結果として生じるプロセスは、バーチャルパーソナルアシスタントに組み込むことができるインジケータを生成する。このようにして、バーチャルパーソナルアシスタントは、ユーザのニーズ、好み、言葉遣い等に適応する能力を有することができる。
図23に図示されているように、知識抽出器および学習エンジン2323は、いくつかのモジュール、特にオントロジーコントローラ2330を有してもよい。オントロジーコントローラ2330は、識別モジュール2318、コンセプト拡張モジュール2320、学習モジュール2322および深層分析および推論モジュール2324を含む、知識抽出器および学習エンジン2323内の他のモジュールと情報をやりとりすることができる。また、知識抽出器および学習エンジン2323は、クラウドソーシングモジュール2326も含んでもよく、および知識ベース2328と情報をやりとりすることができる。
さまざまな実施態様において、適応オントロジーシステム2310は、5つの段階、すなわち、コンセプト識別、関係識別、コンセプト包含、コンセプト除外、ならびにコンセプトおよび関係のパーソナライゼーションを含む。
さまざまな実施態様において、コンセプト識別プロセスは、オントロジーマップに追加すべき新たなコンセプトを指定する。オントロジーマップは、あるオントロジーにおける対象の、およびそれらが互いにどのように関係しているかの位相的表現である。さまざまな実施態様において、コンセプト識別は、識別モジュール2318が、例えば、バーチャルパーソナルアシスタントの解釈コンポーネントによって作成された、意図2314を受け取ったときに始まる。識別モジュール2314は、その意図の範囲内で表される人、場所または物事等のコンセプトを識別することができる。オントロジーコントローラ2330は、例えば、識別モジュール2314によって識別されたコンセプトについて、知識ベース2328に問い合わせを行うことによって、新たなコンセプトを識別することができる。さまざまな実施態様において、識別モジュール2314は、特定の人に関して固有である可能性がある特定の用語を識別することもできる。例えば、意図2314は、特定の人または人の個性と意図とを関連付けることができる選好モデルを介して通過している可能性がある。
オントロジーコントローラ2330はさらに、コンセプト拡張モジュール2320および学習モジュール2322を用いて、関係識別を実行することができる。さまざまな実施態様において、関係識別を実行するために、コンセプト拡張モジュール2320は、インデックス付け、クラスタ化、分類および頻度カウントを用いて、新たに見付かったコンセプトと、既存のコンセプトとの関係を識別することができる。学習モジュール2322は、この情報を用いて、新たに見付かったコンセプトと、現在のオントロジーとの可能性のある関係を判断することができる。類似性インデックスは、コンセプト発生頻度と、共通のコンセプトの発生頻度とを用いて、その関係の強さを定量化することができる。
新たに見付かったコンセプトと、オントロジーマップにおけるノードとの間の類似性インデックスを決定した後、オントロジーコントローラ2330は、コンセプト包含を実行することができる。すなわち、オントロジーコントローラ2330は、最大の類似性インデックスで関係を捉えることができる。その場合、オントロジーコントローラ2330および学習エンジン2323は、コンセプト包含プロセスを用いて、新たなコンセプトを含むようにオントロジーを更新することができる。知識抽出器および学習エンジン2323は、クエリ要求およびクリックストリームデータ等のユーザ入力に基づいて、新たに含まれるコンセプトの場合の類似性インデックスを強めるかまたは弱めることに関する進行中のプロセスを続行することができる。
対照的に、オントロジーコントローラ2330が、新たに生み出されたコンセプトおよびその関係が、ユーザによって利用されていないことを、ユーザの入力から発見した場合、オントロジーコントローラ2330は、類似性インデックスを減らすことによって、コンセプト除外を実行することができる。そのプロセスが、類似性インデックスが特定の閾値未満に低下する時点まで続くと、オントロジーマップにおけるコンセプトノードは孤立することになり、そして、そのマップから取り除くか、または除外することができる。
さまざまな実施態様において、コンセプト包含およびコンセプト除外は、深層分析および推論モジュール2324によって支援することができる。深層分析および推論モジュール2324は、コーパスでは頻繁に参照されるが、オントロジーでは現れない重要な用語を識別することができ、また、コーパスで見付かった当該の重要な用語を識別することができる。それらの用語は、それらの用語がその中に現れるコンテキストとともに収集される。その頻度が特定の閾値に達するこれらの用語は、オントロジーコントローラ2330上に伝送され、そのコントローラは、特に、コンテキストおよびユーザフィードバックを用いて、その用語がオントロジーにおける既存のコンセプトに関連しているか否かを識別しようとすることが可能である。
残っている段階は、コンセプト関係およびパーソナライゼーションである。オントロジーにおけるコンセプトノードは、関連するパラメータを有している可能性がある。ユーザ入力およびデータをモニタリングしながら、およびユーザフィードバックに基づいて、知識抽出器および学習エンジン2323は、いくつかのパラメータの許容可能値および範囲を学習して、それらを経時的に調整することができる。
IV.実施例の用途
マルチモーダルの対話形式のバーチャルパーソナルアシスタントと、バーチャルパーソナルアシスタントがそれを用いて理解し、解釈しおよび推論することができるコンポーネントとが上述されている。図24から図26には、異なるコンテキストで使用されるバーチャルパーソナルアシスタントを説明するために、バーチャルパーソナルアシスタントの実施例の用途が記載されている。これらの実施例は、バーチャルパーソナルアシスタントの会話能力と、言語合図および非言語合図を認識するための能力と、言語化された応答および非言語化された応答の両方に従って応答を調整するための能力とを例示している。
図24は、バーチャルパーソナルアシスタントがタブレット装置2450に既に組み込まれている実施例を示す。図24はさらに、人2400がタブレット装置2450を用いて行うことができるやりとりの実施例を示す。この実施例では、ドメインは、タブレット装置ドメインとして定義することができる。タブレット装置は、ある種の汎用コンピュータ装置とすることができ、そのため、ドメインは、かなり幅広くなる可能性がある。しかし、タブレット装置は、エンターテイメント(例えば、ゲームをする、映画を見る等)、コミュニケーション(例えば、電話をかける、テキストメッセージまたは電子メールまたはインスタントメッセージを送信する、ソーシャルメディアに携わる、テレビ会議等)および情報の検索(例えば、ウェブ検索を行う)等の典型的な用途を有していてもよい。したがって、タブレットドメインは、幅広いが、これらの典型的なユースケースに重点を置くこともできる。
人2400とのやりとりを可能にするために、タブレット装置2450は、さまざまな入力インタフェースを含むことができる。それらの入力インタフェースは、例えば、人2400が、テキストをタイプ入力し、ボタンを選択し、アプリケーションを起動し、アプリケーションを制御し、および他の触覚入力を与えるのに用いることができるタッチスクリーンを含んでもよい。また、入力インタフェースは、人2400が発した言葉および/またはノイズを捉えることができるマイクロフォンも含むことができる。また、入力インタフェースは、人2400の画像、人2400のジェスチャーまたはボディランゲージ、および/または人の環境を捉えることができるカメラも含むことができる。タブレット装置2450はさらに、バーチャルパーソナルアシスタントが、人2400に応答するのに用いることができるさまざまな出力インタフェースを含んでもよい。出力インタフェースは、視覚情報を提供するディスプレイスクリーンと、可聴情報を提供するスピーカーとを含むことができる。
この実施例は、人2400の意図を解釈し、提案を実行し、確認を求め、および会話の筋を維持するバーチャルパーソナルアシスタントを示している。この実施例では、バーチャルパーソナルアシスタントは、人2400に会話形式で返答するために、および人2400に、その人が求める情報を提供するために、自動音声認識、自然言語理解、ドメイン固有のオントロジーおよび一般的なオントロジー、動的なオントロジー、ローカル情報およびインターネット上で見付けた情報を利用することができる。
やりとりは、ステップ2402において、タブレット装置2450が、人2400に「どうしましたか」と尋ねることによって始めることができる。さまざまな実施態様において、やりとりは、人2400が、スクリーン上のアイコンを選択し、ボタンを押し、および/またはあるフレーズを話すことによって、タブレット装置2450上のアプリケーションを作動させたときに開始されている可能性がある。別法として、または追加的に、タブレット装置2450は、人2400が情報を必要としたことを、人2400の表現または非言語音から認識することができる。
ステップ2404において、人2400が「Menlo Parkのチャイニーズレストランを探して」と尋ねる。バーチャルパーソナルアシスタントは、自動音声認識および自然言語理解を用いて、人2400の意図が、特定の都市(Menlo Park)内で、特定の種類(チャイニーズ)のレストランを探すことであることを判断することができる。バーチャルパーソナルアシスタントはさらに、オントロジー、例えば、Menlo Parkという都市に関する情報のためのオントロジーを用いて、要求された情報を見付けることができる。人2400が尋ねたものを見付けられない場合、バーチャルパーソナルアシスタントは、他の何らかの種類のレストランが、人2400の要求を満たす可能性があるという結論を出してもよい。バーチャルパーソナルアシスタントは、オントロジーを用いて、「チャイニーズレストラン」を「アジアンレストラン」と関連付けて、Menlo Parkに和食レストランがあるということをさらに判断することができる。その結果、バーチャルパーソナルアシスタントは、ステップ2406において、「Menlo Parkではチャイニーズレストランは見つかりませんでした。和食レストランはいかがですか」と提案してもよい。
ステップ2408において、人2400は、バーチャルパーソナルアシスタントの提案に満足する可能性があるが、一見無関係な質問、すなわち、「分かった。地図で本屋を見せて」とさらに尋ねる場合がある。この返答から、バーチャルパーソナルアシスタントは、人2400が、Menlo Park内の和食レストランに関する情報を欲しがってはいるが、この情報が本屋または地図に関係があるということは不確かである可能性があると結論付けることができる。したがって、ステップ2410では、バーチャルパーソナルアシスタントは、「すみません、本屋についてお話ししていたでしょうか」と説明を求めることができる。
ステップ2412において、人2400は、「そのレストランに近いとこ」と返答する。この発言は、人2400の意図を理解するために、「とこ」および「そのレストラン」が何であるかを解釈することを必要としている。バーチャルパーソナルアシスタントは、記憶されている以前の対話を利用して、「そのレストラン」とは、そのバーチャルパーソナルアシスタントが、先程、提案した和食レストランであると判断することができる。バーチャルパーソナルアシスタントはさらに、「とこ」とは、人2400が尋ねた本屋であることを判断することができる。会話のこの時点で、バーチャルパーソナルアシスタントは、和食レストランがMenlo Park市内に2つ以上ある場合、人2400が尋ねているのはどの和食レストランかを聞くことができる。しかし、この実施例では、バーチャルパーソナルアシスタントは、利用可能な情報、例えば、地図および住所録等を利用して、近くに本屋があるMenlo Park内の和食レストランは一つしかないと判断することができる。したがって、ステップ2414において、バーチャルパーソナルアシスタントは、「分かりました。こちらになります。」と返答することができる。バーチャルパーソナルアシスタントはさらに、人2400に要求された通りに、タブレット装置2450に地図を表示させることができる。
図25は、バーチャルパーソナルアシスタントが、自動車2512内に実装されている実施例を示す。この実施例では、ドメインは、主に車両および関連する旅行として定義することができる。したがって、そのドメインは、特に、自動車2512の機能、車両のメンテナンスおよび運転に関する情報を含んでもよい。また、そのドメインは、地図、住所録、ルート等の情報も含んでもよい。自動車2512が、(例えば、セルラー接続、無線信号を介して、および/または自動車2512に既に接続されているモバイル装置2534を介して)ネットワークと通信できる実施態様において、ドメイン情報は、例えば、天気、道路状況、交通およびその他のリアルタイム情報も含むことができる。さまざまな実施態様において、ドライバー2500が、何らかの情報を求める可能性があると、または、運転に関係ないタスクを実行したい可能性があると仮定すると、そのドメインは、幅広くなる可能性がある。例えば、そのドメインは、タブレット装置ドメイン内にあるのと同様の情報を包含してもよい。自動車のパーソナルアシスタントは、“Vehicle Personal Assistant”と題する米国特許第9,085,303号明細書でも議論されており、参照によって、その明細書の全体を本願明細書に組み込むものとする。
この実施例では、バーチャルパーソナルアシスタントは、自動車のダッシュボード2510に典型的に設けられているコンポーネント、例えば、スピーカー2520、ディスプレイスクリーン2524およびさまざまなボタン2530を利用することができる。バーチャルパーソナルアシスタントは、ドライバー2500に、スピーカー2520を用いて可聴情報を提供することができ、およびディスプレイスクリーン2524を用いて視覚情報2522を提供することができる。ダッシュボード2510上のボタン2530は、例えば、バーチャルパーソナルアシスタントからの視覚情報2522を無効にすることができ、および/またはバーチャルパーソナルアシスタントを作動させることができる。また、バーチャルパーソナルアシスタントは、自動車2512内の他のハードウェア、例えば、ハンドル2514または他のどこかに取り付けることができるマイクロフォン2526、およびハンドル2514上に配置されたボタン2528等を利用することもできる。バーチャルパーソナルアシスタントは、マイクロフォン2526を用いて、可聴入力を捉えることができる。ハンドル2514上のボタン2528は、視覚情報2522を無効にするのに、バーチャルパーソナルアシスタントを作動または停止させるのに、または、パーソナルアシスタントとの他の何らかのやりとり(例えば、ボリュームの上げ下げ等)のために用いることもできる。
さまざまな実施態様において、自動車2512は、モバイル装置2532用のドック2534を含んでもよい。さまざまな実施態様において、ドック2534は、モバイル装置2532用の物理的コネクタを備えていてもよく、およびモバイル装置2532を自動車2512の機能に一体化する能力をさらに備えていてもよい。例えば、モバイル装置2532がドック2534に接続されている場合、ドライバー2500は、自動車2512が備えている入力インタフェースを用いて電話をかけることができ、この場合、その発呼は、モバイル装置2532によって行われる。いくつかの実施態様において、バーチャルパーソナルアシスタントは、モバイル装置2532に一体化され、また、モバイル装置2532がドック2534内にある場合、自動車2512は、モバイル装置2532の拡張部として処理される。例えば、モバイル装置2532がドック2534内にある場合、モバイル装置2532内のバーチャルパーソナルアシスタントは、自動車2512に関する情報を取得することができ、および/または自動車2512の何らかのシステム(例えば、オーディオシステム)を制御することができる。モバイル装置2532がドック2534から切り離されると、モバイル装置2532は、もはや自動車2512の情報またはシステムにアクセスすることができない。いくつかの実施態様において、ドック2534は、(例えば、Bluetooth(登録商標)を用いて)自動車2512とモバイル装置2532との間の無線接続を提供することができる。
さまざまな実施態様において、ドライバー2500は、ボタン(例えば、ダッシュボード2510上のボタン2530、または、ハンドル2514上のボタン2528)を押すことにより、バーチャルパーソナルアシスタントを始動させることができる。別法として、または追加的に、ドライバー2500は、あるフレーズを話すか、または、ディスプレイスクリーン2524の方向を見ることによって、バーチャルパーソナルアシスタントを始動させることができる。別法として、または追加的に、ドライバー2500は、単に話し始めて、そしてバーチャルパーソナルアシスタントは、ドライバー2500が、自動車2512内に一人でいることを認識し、ドライバー2500がバーチャルパーソナルアシスタントに返答してほしいという意図があると推測することができる。
この実施例では、ステップ2536において、ドライバー2500は、ダッシュボード2510上のライト2518に気付いて、「なぜ、そのライトが点いているのか」と聞く。ドライバー2500は、同時に、そのライトを指差す場合がある。バーチャルパーソナルアシスタントは、自動音声認識および自然言語理解を用いて、ドライバー2500の意図は、「そのライト」は何のために点いているのかを、そのバーチャルパーソナルアシスタントがそのドライバー2500に教えることであると判断することができる。「そのライト」が何を指しているのかを判断するために、この実施例におけるバーチャルパーソナルアシスタントは、参照する以前の対話を有していないが、画像情報、具体的には、ドライバー2500が指差している方向を有している。別法として、または、追加的に、バーチャルパーソナルアシスタントは、ドライバー2500の視線内の可能性のあるすべてのライトのうち、ドライバー2500が指している可能性のあるものがどれかを評価することができる。正しい結論を出したことを確認するために、バーチャルパーソナルアシスタントは、ステップ2538において、「スピードメーターの隣の黄色のライトのことですか」と尋ねることができる。
ドライバー2500は、ステップ2540において、「そうです」と返答する場合がある。バーチャルパーソナルアシスタントは、ドライバー2500の声の調子に何らかの不安を検出し、または、そのドライバー2500の返答の仕方に緊急性を検出することができる。別法として、または、追加的に、バーチャルパーソナルアシスタントは、画像データから、ドライバー2500がしかめっ面をしていると判断することができる。したがって、ステップ2542において、バーチャルパーソナルアシスタントは、安心させるように、「心配ありません、それは、次の20マイルで、給油のために停車する必要があることを知らせるただの合図ですよ」とドライバー2500の質問に返答することができる。
図26は、バーチャルパーソナルアシスタントが、サービスロボット2650に実装された実施例を示す。この実施例では、サービスロボット2650は、小売客用サービスロボットとしての用途のために構成されている。この用途では、サービスロボット2650は、客の商品をスキャンし、総額を表示し、店内の販売用製品に関する質問に答え、および一般的な顧客サービスを提供することができる。また、サービスロボットは、他の用途、例えば、教育、ヘルスケアおよび/またはセラピーにも利用することができる。例えば、サービスロボットは、ティーチングアシスタント、質問への返答、レクチャーの提供および/または双方向のティーチングセッションとして利用することができる。別の実施例として、サービスロボットは、医療診断およびアドバイスを支援するのに利用することができ、または、場合により医者用のリモートアシスタントとして利用することができる。別の実施例として、サービスロボット2650は、店舗、オフィスビル、病院、警察署、または、人が、その会場に関する情報を求める可能性がある他の何らかの会場用の受付で利用することができる。
図示されている実施例において、サービスロボット2650は、店内、例えば、食料雑貨店内に既に配置されている。この実施例では、ドメインは、その店が販売する製品を含んでもよく、この場合、それらの製品は、店内に配置され、その店の経常在庫である。ドメインはさらに、買い物客が尋ねる可能性のある種類の質問に答えるためのワークフローを有することができる。
この実施例において、やりとりは、買い物客2600がサービスロボット2650に近付いてきたときに始まる可能性がある。サービスロボット2650は、カメラを備えることができる。そのカメラが捉えた画像に対して、コンピュータビジョン法を実行することにより、サービスロボット2650は、例えば、買い物客2600がサービスロボット2650に近づくという直接的方法から、買い物客2600が、サービスロボット2650に質問したいということを認識することができる。別法として、または、追加的に、買い物客2600は、ボタンを押すか、または、サービスロボット2650に組み込まれているバーコードスキャナを用いて、製品をスキャンすることにより、サービスロボット2650を作動させることができる。一旦、作動されると、サービスロボット2650は、ステップ2602において、「こんにちは、あなたが今日必要なものはすべて見付かりましたか」と聞くことができる。
買い物客2600は、ステップ2604において、「えーと、いいえ、アニーのマカロニ&チーズが全然見付からないんです」と返答する。バーチャルパーソナルアシスタントは、買い物客2600の言語応答および/またはサービスロボット2650のカメラによって捉えられた画像から、買い物客2600が、アニーのマカロニ&チーズをいくつか購入したいと思っていると判断することができ、さらに、軽いフラストレーションを検出することもできる。例えば、ドメイン固有のオントロジーを介してその店のレイアウトおよび在庫目録にアクセスできるバーチャルパーソナルアシスタントは、アニーのマカロニ&チーズがどこにあるかを知っており、単にその答えを与えるのではなく、買い物客2600のフラストレーションを和らげようとすることができる。したがって、バーチャルパーソナルアシスタントは、ステップ2606において、「すみません。通路6を見ましたか」と返答する。
ステップ2608において、買い物客2600は、「いいえ。それはいくらですか」と返答する。この返答において、バーチャルパーソナルアシスタントは、「それ」が何を指しているのかを判断しなければならない。バーチャルパーソナルアシスタントは、(例えば、動的なオントロジーに記憶されている)過去の対話を参照して、「それ」が、アニーのマカロニ&チーズを指していると判断することができる。バーチャルパーソナルアシスタントは、買い物客2600の声の調子および/または顔の表情から、フラストレーションの高まりを感知することができる。したがって、バーチャルパーソナルアシスタントは、買い物客2600のフラストレーションを和らげることができる、利用可能なリソースを利用することができる。具体的には、バーチャルパーソナルアシスタントは、買い物客2600の質問に答えるのに加えて、ステップ2610において、「アニーのマカロニ&チーズは12.99ドルです。購入されるのでしたら、誰か呼びましょうか」と支援を提案してもよい。
買い物客2600は、ステップ2612において、「はい、そうしてもらえるとありがたいです。」とポジティブに返答する。しかし、バーチャルパーソナルアシスタントは、より多くの情報を必要とし、そのため、ステップ2614において、「分かりました。三種類あります。どれが欲しいか分かりますか。」と尋ねる。例えば、動的なオントロジーを介してユーザ状態情報を保持することにより、そのシステムは、その買い物客が、アニーのマカロニ&チーズを店内で見付けられないことに関して、それまではフラストレーションを感じていたことを思い出すことができる。買い物客2600のフラストレーションのレベルが潜在的に上がるのを避けるために、バーチャルパーソナルアシスタントは、返答を短くかつ正確に維持する。このようにして、サービスロボット2650に実装されたバーチャルパーソナルアシスタントは、ユーザ状態(例えば、感情的状態、認知的状態または心理的状態)を、対話から抽出した意味情報と関連付けることができる。バーチャルパーソナルアシスタントはさらに、それらの関連付けを、将来のために(例えば、オントロジーを用いて)記憶装置内で保持することができる。換言すると、そのシステムは、「フラストレーション」という感情を、「アニーのマカロニ&チーズを見付けられない」という意味論的概念と関連付けて、後の利用のための意味情報に関するこの具体的な関連付けを覚えておく。
ステップ2616では、買い物客2600は、「はい、ホワイトチェダーです。」と返答する。バーチャルパーソナルアシスタントは、この時点で、この種類が入手可能であることを確認することができる。次に、バーチャルパーソナルアシスタントは、ステップ2618において、人(または、ロボット)が、その製品を取りに行っていることを確認して、「分かりました。店員が今、取ってきます。」と買い物客2600に返答することができる。
バーチャルパーソナルアシスタント用のシステムおよびコンポーネントのさまざまな実施態様の完全な理解を実現できるように、具体的な詳細を先の説明で伝えた。しかし、上述した実施態様は、それらの具体的な詳細を要することなく実施できることは理解されるであろう。例えば、回路、システム、ネットワーク、プロセスおよびその他のコンポーネントは、不必要な詳細で本実施形態をあいまいにしないように、ブロック図の形式で構成要素として示されている可能性がある。他の事例では、本実施形態をあいまいにすることを避けるために、周知の回路、プロセス、アルゴリズム、構成および方法は、不必要な詳細がない状態で示されている可能性がある。
また、個別の実施態様は、フローチャート、フロー図、データフロー図、構成図またはブロック図として描かれているプロセスとして記載されている可能性があることに留意すべきである。フローチャートは、動作を、一連のプロセスとして説明している場合があるが、動作の多くは、並行してまたは同時に実行することができる。さらに、それらの動作の順序は替えてもよい。一つのプロセスは、その動作が完了したときに終了するが、図面には含まれていない追加的なステップを有することができる。プロセスは、方法、機能、手順、サブルーチン、サブプログラム等に対応させることができる。プロセスが機能に対応する場合、その終了は、その機能の、呼び出し機能またはメイン機能へのリターンに対応させることができる。
「コンピュータ可読媒体」または「コンピュータプログラムプロダクト」という用語は、限定するものではないが、ポータブルまたは非ポータブルのストレージ装置、光学記憶装置、および命令および/またはデータを格納し、収容しまたは担持することが可能な他のさまざまな媒体を含む。コンピュータ可読媒体およびコンピュータプログラムプロダクトは、データを格納することができ、搬送波を含まない非一時的な媒体、および/または無線で、または有線接続を通じて伝播する一時的な電子信号を含んでもよい。非一時的な媒体の実例は、限定するものではないが、磁気ディスクまたはテープ、コンパクトディスク(CD)またはディジタル多用途ディスク(DVD)等の光学記憶媒体、フラッシュメモリ、メモリまたは記憶装置を含んでもよい。コンピュータ可読媒体およびコンピュータプログラムプロダクトには、手順、機能、サブプログラム、プログラム、ルーチン、サブルーチン、モジュール、ソフトウェアパッケージ、クラス、または、命令、データ構造もしくはプログラム文の任意の組合せを表すことができるコードおよび/またはマシンが実行可能な命令を記憶させることができる。コードセグメントは、情報、データ、引数、パラメータまたはメモリ内容を送りおよび/または受け取ることにより、別のコードセグメントまたはハードウェア回路に結合することができる。情報、引数、パラメータ、データ等は、メモリの共有、メッセージの受渡し、トークンパッシング、ネットワーク伝送等を含む任意の適当な手段を介して、送り、転送しまたは送信することができる。
上述したさまざまな実施例はさらに、ハードウェア、ソフトウェア、ファームウェア、ミドルウェア、マイクロコード、ハードウェア記述言語、または、これらの任意の組合せによって実施することができる。ソフトウェア、ファームウェア、ミドルウェアまたはマイクロコードで実施した場合、必要なタスクを実行するためのプログラムコードまたはコードセグメント(例えば、コンピュータプログラムプロダクト)は、コンピュータ可読媒体または機械可読媒体に格納することができる。集積回路で実施することができるプロセッサは、必要なタスクを実行することができる。
コンポーネントは、特定の動作を実行「するように構成されている」と記載されているが、そのような構成は、例えば、その動作を実行するように、電子回路または他のハードウェアを設計することにより、その動作を実行するように、プログラム可能な電子回路(例えば、マイクロプロセッサ、または、他の適当な電子回路)をプログラミングすることにより、または、これらの任意の組合せで実現することができる。
本願明細書で開示されている実施態様とともに記載されているさまざまな例示的論理ブロック、モジュール、回路およびアルゴリズムステップは、電子的ハードウェア、コンピュータソフトウェア、ファームウェア、または、これらの組合せとして実施してもよい。このハードウェアおよびソフトウェアの互換性を明確に説明するために、さまざまな例示的コンポーネント、ブロック、モジュール、回路およびステップは、概してそれらの機能に関して上述されている。そのような機能がハードウェアとして実施されているか、または、ソフトウェアとして実施されているかは、システム全体に課せられた特定の用途および設計上の制約に依存する。当業者は、具体的な各用途のために、記載されている機能を、さまざまな方法で実施することができるが、そのような実施の判断は、本開示の範囲からの逸脱を引き起こすものと解釈すべきではない。
また、本願明細書に記載されている技術的方法は、電子的ハードウェア、コンピュータソフトウェア、ファームウェア、または、これらの組合せで実施してもよい。このような技術的方法は、汎用コンピュータ、無線通信装置のハンドセット、または、無線通信装置のハンドセットおよび他の装置での用途を含む複数の用途を有する集積回路装置等のさまざまな装置のうちのいずれかにおいて実施することができる。モジュールまたはコンポーネントとして記載されている機能は、どれも、集積論理素子内に一緒に実装してもよく、または、個別の相互利用可能な論理素子として別々に実装してもよい。ソフトウェアで実施した場合、技術的方法は、実行される際に、上述した方法のうちの一つ以上を実行する命令を含むプログラムコードを備えているコンピュータ可読データ記憶媒体によって、少なくとも部分的に実現することができる。コンピュータ可読データ記憶媒体は、パッケージング材料を含んでもよい、コンピュータプログラムプロダクトの一部を構成してもよい。コンピュータ可読媒体は、シンクロナスDRAM(SDRAM)等のランダムアクセスメモリ(RAM)、読出し専用メモリ(ROM)、不揮発性ランダムアクセスメモリ(NVRAM)、電気的消去可能なプログラマブルROM(EEPROM)、フラッシュメモリ、磁気または光学データ記憶媒体等のメモリまたはデータ記憶媒体から成っている。追加的に、または、別法として、技術的方法は、プログラムコードを命令またはデータ構造の形態で担持し、または伝達する、およびコンピュータがアクセスし、読出しおよび/または実行することができるコンピュータ可読通信媒体、例えば、伝播信号または波長によって、少なくとも部分的に実現することができる。
プログラムコードは、一つ以上のプロセッサ、例えば、一つ以上のディジタル信号プロセッサ(DSP)、汎用マイクロプロセッサ、特定用途向け集積回路(ASIC)、フィールドプログラマブル論理アレイ(FPGA)、または、他の等価な集積または個別の論理回路を含んでもよいプロセッサによって実行してもよい。このようなプロセッサは、この開示に記載されているいずれかの技術的方法を実行するように構成することができる。汎用プロセッサは、マイクロプロセッサであってもよいが、代替例では、プロセッサは、何らかの従来のプロセッサ、コントローラ、マイクロコントローラまたは状態機械とすることができる。また、プロセッサは、コンピュータ装置の組合せ、例えば、DSPとマイクロプロセッサの組合せ、複数のマイクロプロセッサ、DSPコアと併用の一つ以上のマイクロプロセッサ、または、他のいずれかのこのような構成として実装してもよい。したがって、「プロセッサ」という用語は、本願明細書で用いる場合、上記の構造のいずれか、上記の構造のいずれかの組合せ、または、本願明細書に記載されている技術的方法の実施に適している他の何らかの構造または装置を指すことができる。さらに、いくつかの態様において、本願明細書に記載されている機能は、ネットワークの脅威の検出および解析のために構成された、専用ソフトウェアモジュールまたはハードウェアモジュール内に設けてもよい。
以下で用いる場合、一連の実施例に対する参照は、いずれもそれらの実施例の各々に対する選言的な参照として理解すべきである(例えば、「実施例1から実施例4」は、「実施例1、実施例2、実施例3または実施例4」として理解すべきである)。
実施例1は、コンピュータ装置内の集積回路によって、感覚入力を受け取るステップを含む方法である。その該感覚入力は、少なくとも二つの異なる種類の情報を含む。その方法は、感覚入力から意味情報を判断するステップをさらに含む。意味情報は、感覚入力の解釈を提供する。その方法は、コンテキスト固有のフレームワークを識別するステップをさらに含む。コンテキスト固有のフレームワークは、一つ以上の前の意図から成る累積シーケンスを含む。その方法は、現在の意図を判断するステップをさらに含む。現在の意図を判断するステップは、意味情報およびコンテキスト固有のフレームワークを用いることを含む。その方法は、現在の入力状態を判断するステップをさらに含む。現在の入力状態を判断するステップは、意味情報および一つ以上の行動モデルを用いることを含む。行動モデルは、前に提供された意味情報の一つ以上の解釈を含む。その方法は、動作を判断するステップをさらに含む。動作を判断するステップは、現在の意図および現在の入力状態を用いることを含む。
実施例2は、実施例1の方法であり、情報の種類は、音声情報、グラフィック情報、オーディオ入力、画像入力または触覚入力を含む。
実施例3は、実施例1、実施例2の方法であり、声紋認証は、オーディオ入力から導き出すことが可能である。
実施例4は、実施例1から実施例3の方法であり、感情状態は、オーディオ入力から導き出すことが可能である。
実施例5は、実施例1から実施例4の方法であり、身振りは、画像入力から導き出すことが可能である。
実施例6は、実施例1から実施例5の方法であり、虹彩認証は、画像入力から導き出すことが可能である。
実施例7は、実施例1から実施例6の方法であり、感情状態は、画像入力から導き出すことが可能である。
実施例8は、実施例1から実施例7の方法であり、行動モデルは、設定可能な選好モデルを含む。設定可能な選好モデルは、一つ以上の前の入力状態と、その一つ以上の前の入力状態に関連する意味情報とを含む。
実施例9は、実施例1から実施例8の方法であり、コンテキスト固有のフレームワークは、コンテキスト固有のオントロジーを含む。コンテキスト固有のオントロジーは、一つ以上のコンテキスト固有の意図から成る累積シーケンスを含む。
実施例10は、実施例1から実施例9の方法であり、コンテキスト固有のフレームワークは、動的なオントロジーを含む。動的なオントロジーは、コンテキスト固有のオントロジーから導き出された一つ以上の前の意図から成る累積シーケンスを含む。
実施例11は、判断された動作が正しいことを確認するための要求を生成するステップを含む、実施例1から実施例10の方法である。
実施例12は、追加的な感覚入力を用いて、判断された動作が正しくないことを判断するステップを含む、実施例1から実施例11の方法である。この実施例は、追加情報の要求を生成するステップをさらに含む。
実施例13は、追加的な感覚入力を用いて、判断された動作が正しくないことを判断するステップを含む、実施例1から実施例12の方法である。この実施例はさらに、追加的な感覚入力を用いて、新たな動作を決定するステップを含む。
実施例14は、実施例1から実施例13の方法であり、動作は、言語応答を策定して出力することを含む。
実施例15は、実施例1から実施例14の方法であり、動作は、情報を検索することと、その検索の結果を提供することとを含む。
実施例16は、実施例1から実施例15の方法であり、動作は、制御信号を生成することを含む。
実施例17は、一つ以上のプロセッサと、非一時的なコンピュータ可読媒体とを含むバーチャルパーソナルアシスタント装置である。その非一時的なコンピュータ可読媒体は、一つ以上のプロセッサによって実行される場合、その一つ以上のプロセッサに、感覚入力を受け取ることを含む動作を実行させる命令を含む。感覚入力は、少なくとも二つの異なる種類の情報を含む。それらの命令は、感覚入力から意味情報を判断することをさらに含む。意味情報は、感覚入力の解釈を提供する。それらの命令は、コンテキスト固有のフレームワークを識別することをさらに含む。コンテキスト固有のフレームワークは、一つ以上の前の意図から成る累積シーケンスを含む。それらの命令は、現在の意図を判断することをさらに含む。現在の意図を判断することは、意味情報およびコンテキスト固有のフレームワークを用いることを含む。それらの命令は、現在の入力状態を判断することをさらに含む。現在の入力状態を判断することは、意味情報および一つ以上の行動モデルを用いることを含む。行動モデルは、前に提供された意味情報の一つ以上の解釈を含む。それらの命令は、動作を判断することをさらに含む。動作を判断することは、現在の意図および現在の入力状態を用いることを含む。
実施例18は、実施例17のバーチャルパーソナルアシスタント装置であり、情報の種類は、音声情報、グラフィック情報、オーディオ入力、画像入力または触覚入力を含む。
実施例19は、実施例17、実施例18のバーチャルパーソナルアシスタント装置であり、声紋認証は、オーディオ入力から導き出すことが可能である。
実施例20は、実施例17から実施例19のバーチャルパーソナルアシスタント装置であり、感情状態は、オーディオ入力から導き出すことが可能である。
実施例21は、実施例17から実施例20のバーチャルパーソナルアシスタント装置であり、身振りは、画像入力から導き出すことが可能である。
実施例22は、実施例17から実施例21のバーチャルパーソナルアシスタント装置であり、虹彩認証は、画像入力から導き出すことが可能である。
実施例23は、実施例17から実施例22のバーチャルパーソナルアシスタント装置であり、感情状態は、画像入力から導き出すことが可能である。
実施例24は、実施例17から実施例23のバーチャルパーソナルアシスタント装置であり、行動モデルは、設定可能な選好モデルを含む。設定可能な選好モデルは、一つ以上の前の入力状態と、その一つ以上の前の入力状態に関連する意味情報とを含む。
実施例25は、実施例17から実施例24のバーチャルパーソナルアシスタント装置であり、コンテキスト固有のフレームワークは、コンテキスト固有のオントロジーを含む。コンテキスト固有のオントロジーは、一つ以上のコンテキスト固有の意図から成る累積シーケンスを含む。
実施例26は、実施例17から実施例25のバーチャルパーソナルアシスタント装置であり、コンテキスト固有のフレームワークは、動的なオントロジーを含む。動的なオントロジーは、コンテキスト固有のオントロジーから導き出された一つ以上の前の意図から成る累積シーケンスを含む。
実施例27は、判断された動作が正しいことを確認するための要求を生成する命令をさらに含む、実施例17から実施例26のバーチャルパーソナルアシスタント装置である。
実施例28は、追加的な感覚入力を用いて、判断された動作が正しくないことを判断する命令をさらに含む、実施例17から実施例27のバーチャルパーソナルアシスタント装置である。この実施例は、追加的な情報の要求を生成することをさらに含む。
実施例29は、追加的な感覚入力を用いて、判断された動作が正しくないことを判断することを含む命令をさらに含む、実施例17から実施例28のバーチャルパーソナルアシスタント装置である。この実施例は、追加的な感覚入力を用いて、新たな動作を判断する命令をさらに含む。
実施例30は、実施例17から実施例29のバーチャルパーソナルアシスタント装置であり、動作は、言語応答を作成して出力することを含む。
実施例31は、実施例17から実施例30のバーチャルパーソナルアシスタント装置であり、動作は、情報を検索することと、その検索の結果を提供することとを含む。
実施例32は、実施例17から実施例31のバーチャルパーソナルアシスタント装置であり、動作は、制御信号を生成することを含む。
実施例33は、非一時的なコンピュータ可読記憶媒体に明確に具体化されたコンピュータプログラムプロダクトである。その記憶媒体は、一つ以上のプロセッサによって実行される場合に、その一つ以上のプロセッサに、感覚入力を受け取らせる命令を含む。その感覚入力は、少なくとも二つの異なる種類の情報を含む。それらの命令は、感覚入力から意味情報を判断することをさらに含む。意味情報は、感覚入力の解釈を提供する。それらの命令は、コンテキスト固有のフレームワークを識別することをさらに含む。コンテキスト固有のフレームワークは、一つ以上の前の意図から成る累積シーケンスを含む。それらの命令は、現在の意図を判断することをさらに含む。現在の意図を判断することは、意味情報およびコンテキスト固有のフレームワークを用いることを含む。それらの命令は、現在の入力状態を判断することをさらに含む。現在の入力状態を判断することは、意味情報および一つ以上の行動モデルを用いることを含む。行動モデルは、前に提供された意味情報の一つ以上の解釈を含む。それらの命令は、動作を判断することをさらに含む。動作を判断することは、現在の意図および現在の入力状態を用いることを含む。
実施例34は、実施例33のコンピュータプログラムプロダクトであり、情報の種類は、音声情報、グラフィック情報、オーディオ入力、画像入力または触覚入力を含む。
実施例35は、実施例33、実施例34のコンピュータプログラムプロダクトであり、声紋認証は、オーディオ入力から導き出すことが可能である。
実施例36は、実施例33から実施例35のコンピュータプログラムプロダクトであり、感情状態は、オーディオ入力から導き出すことが可能である。
実施例37は、実施例33から実施例36のコンピュータプログラムプロダクトであり、身振りは、画像入力から導き出すことが可能である。
実施例38は、実施例33から実施例37のコンピュータプログラムプロダクトであり、虹彩認証は、画像入力から導き出すことが可能である。
実施例39は、実施例33から実施例38のコンピュータプログラムプロダクトであり、感情状態は、画像入力から導き出すことが可能である。
実施例40は、実施例33から実施例39のコンピュータプログラムプロダクトであり、行動モデルは、設定可能な選好モデルを含む。設定可能な選好モデルは、一つ以上の前の入力状態と、その一つ以上の前の入力状態に関連する意味情報とを含む。
実施例41は、実施例33から実施例40のコンピュータプログラムプロダクトであり、コンテキスト固有のフレームワークは、コンテキスト固有のオントロジーを含む。コンテキスト固有のオントロジーは、一つ以上のコンテキスト固有の意図から成る累積シーケンスを含む。
実施例42は、実施例33から実施例41のコンピュータプログラムプロダクトであり、コンテキスト固有のフレームワークは、動的なオントロジーを含む。動的なオントロジーは、コンテキスト固有のオントロジーから導き出された一つ以上の前の意図から成る累積シーケンスを含む。
実施例43は、判断された動作が正しいことを確認するための要求を生成する命令をさらに含む、実施例33から実施例42のコンピュータプログラムプロダクトである。
実施例44は、追加的な感覚入力を用いて、判断された動作が正しくないことを判断する命令をさらに含む、実施例33から実施例43のコンピュータプログラムプロダクトである。この実施例は、追加的な情報の要求を生成することをさらに含む。
実施例45は、追加的な感覚入力を用いて、判断された動作が正しくないことを判断することを含む命令をさらに含む、実施例33から実施例44のコンピュータプログラムプロダクトである。この実施例は、追加的な感覚入力を用いて、新たな動作を決定する命令をさらに含む。
実施例46は、実施例33から実施例45のコンピュータプログラムプロダクトであり、動作は、言語応答を作成して出力することを含む。
実施例47は、実施例33から実施例46のコンピュータプログラムプロダクトであり、動作は、情報を検索することと、その検索の結果を提供することとを含む。
実施例48は、実施例33から実施例47のコンピュータプログラムプロダクトであり、動作は、制御信号を生成することを含む。