(57)【要約】  バーチャルパーソナルアシスタントを実施するための方法、コンピュータ装置およびコンピュータプログラムプロダクトが提供される。さまざまな実施態様において、バーチャルパーソナルアシスタントは、少なくとも二つの異なる種類の情報を含む感覚入力を受け取るように構成することができる。バーチャルパーソナルアシスタントはさらに、感覚入力から意味情報を判断するように、およびコンテキスト固有のフレームワークを識別するように構成することができる。バーチャルパーソナルアシスタントはさらに、現在の意図を判断するように構成することができる。現在の意図を判断することは、意味情報およびコンテキスト固有のフレームワークを用いることを含むことができる。バーチャルパーソナルアシスタントはさらに、現在の入力状態を判断するように構成することができる。現在の入力状態を判断することは、意味情報と、一つ以上の行動モデルとを用いることを含むことができる。行動モデルは、前に提供された意味情報の一つ以上の解釈を含むことができる。バーチャルパーソナルアシスタントはさらに、現在の意図および現在の入力状態を用いて動作を判断するように構成することができる。
2019505011.tif 000002
【特許請求の範囲】
【請求項１】
コンピュータ装置内の集積回路によって、感覚入力を受け取るステップであって、該感覚入力は、少なくとも二つの異なる種類の情報を含むステップと、
前記感覚入力から意味情報を判断するステップであって、前記意味情報は、前記感覚入力の解釈を提供するステップと、
コンテキスト固有のフレームワークを識別するステップであって、該コンテキスト固有のフレームワークは、一つ以上の前の意図から成る累積シーケンスを含むステップと、
現在の意図を判断するステップであって、前記意味情報および前記コンテキスト固有のフレームワークを用いることを含む、現在の意図を判断するステップと、
現在の入力状態を判断するステップであって、該現在の入力状態を判断するステップは、前記意味情報および一つ以上の行動モデルを用いることを含み、該行動モデルは、前に提供された意味情報の一つ以上の解釈を含む、現在の入力状態を判断するステップと、
動作を判断するステップであって、前記現在の意図および前記現在の入力状態を用いることを含む、動作を判断するステップと、
を含む方法。
【請求項２】
情報の種類は、音声情報、グラフィック情報、オーディオ入力、画像入力または触覚入力を含む、請求項１に記載の方法。
【請求項３】
声紋認証が、オーディオ入力から導き出すことが可能である、請求項１または２に記載の方法。
【請求項４】
感情状態が、オーディオ入力から導き出すことが可能である、請求項１または２に記載の方法。
【請求項５】
身振りが、画像入力から導き出すことが可能である、請求項１または２に記載の方法。
【請求項６】
虹彩認証が、画像入力から導き出すことが可能である、請求項１または２に記載の方法。
【請求項７】
感情状態は、画像入力から導き出すことが可能である、請求項１または２に記載の方法。
【請求項８】
行動モデルは、設定可能な選好モデルを含み、該設定可能な選好モデルは、一つ以上の前の入力状態と、該一つ以上の前の入力状態に関連する意味情報とを含む、請求項１に記載の方法。
【請求項９】
前記コンテキスト固有のフレームワークは、コンテキスト固有のオントロジーを含み、該コンテキスト固有のオントロジーは、一つ以上のコンテキスト固有の意図から成る累積シーケンスを含む、請求項１に記載の方法。
【請求項１０】
前記コンテキスト固有のフレームワークは、動的なオントロジーを含み、該動的なオントロジーは、コンテキスト固有のオントロジーから得られた一つ以上の前の意図から成る累積シーケンスを含む、請求項１に記載の方法。
【請求項１１】
前記判断された動作が正しいことを確認するための要求を生成するステップをさらに含む、請求項１に記載の方法。
【請求項１２】
追加的な感覚入力を用いて、前記判断された動作が正しくないことを判断するステップと、
追加的な情報の要求を生成するステップと、
をさらに含む、請求項１に記載の方法。
【請求項１３】
追加的な感覚入力を用いて、前記判断された動作が正しくないことを判断するステップと、
前記追加的な感覚入力を用いて、新たな動作を判断するステップと、
をさらに含む、請求項１に記載の方法。
【請求項１４】
動作は、音声応答を作成して出力することを含む、請求項１に記載の方法。
【請求項１５】
動作は、情報を検索することと、該検索の結果を表示することとを含む、請求項１に記載の方法。
【請求項１６】
動作は、制御信号を生成することを含む、請求項１に記載の方法。
【請求項１７】
請求項１、２、３または４に記載の方法。
【請求項１８】
請求項１、２、５、６または７に記載の方法。
【請求項１９】
請求項１、９または１０に記載の方法。
【請求項２０】
請求項１、１１、１２または１３に記載の方法。
【請求項２１】
請求項１、１４、１５または１６に記載の方法。
【請求項２２】
請求項８、１７、１８、２０または２１に記載の方法。
【請求項２３】
一つ以上のプロセッサと、
該一つ以上のプロセッサによって実行される場合、
感覚入力を受け取るステップであって、少なくとも二つの異なる種類の情報を含む該感覚入力を受け取るステップと、
前記感覚入力から意味情報を判断するステップであって、前記意味情報は、前記感覚入力の解釈を提供する、前記感覚入力から意味情報を判断するステップと、
コンテキスト固有のフレームワークを識別するステップであって、一つ以上の前の意図から成る累積シーケンスを含む該コンテキスト固有のフレームワークを識別するステップと、
現在の意図を判断するステップであって、前記意味情報および前記コンテキスト固有のフレームワークを用いることを含む、現在の意図を判断するステップと、
現在の入力状態を判断するステップであって、該現在の入力状態を判断するステップは、前記意味情報および一つ以上の行動モデルを用いることを含み、該行動モデルは、前に提供された意味情報の一つ以上の解釈を含む、現在の入力状態を判断するステップと、
動作を判断するステップであって、該動作を判断するステップは、前記現在の意図および前記現在の入力状態を用いることを含む、動作を判断するステップと、
を含む作業を前記一つ以上のプロセッサに実行させる命令を含む非一時的なコンピュータ可読媒体と、
を備えるバーチャルパーソナルアシスタント装置。
【請求項２４】
情報の種類は、音声情報、グラフィック情報、オーディオ入力、画像入力または触覚入力を含む、請求項２３に記載のバーチャルパーソナルアシスタント装置。
【請求項２５】
声紋認証は、オーディオ入力から導き出すことが可能である、請求項２３または２４に記載のバーチャルパーソナルアシスタント装置。
【請求項２６】
感情状態が、オーディオ入力から導き出すことが可能である、請求項２３または２４に記載のバーチャルパーソナルアシスタント装置。
【請求項２７】
身振りが、画像入力から導き出すことが可能である、請求項２３または２４に記載のバーチャルパーソナルアシスタント装置。
【請求項２８】
虹彩認証は、画像入力から導き出すことが可能である、請求項２３または２４に記載のバーチャルパーソナルアシスタント装置。
【請求項２９】
感情状態が、画像入力から導き出すことが可能である、請求項２３または２４に記載のバーチャルパーソナルアシスタント装置。
【請求項３０】
行動モデルは、設定可能な選好モデルを含み、該設定可能な選好モデルは、一つ以上の前の入力状態と、該一つ以上の前の入力状態に関連する意味情報とを含む、請求項２３に記載のバーチャルパーソナルアシスタント装置。
【請求項３１】
前記コンテキスト固有のフレームワークは、コンテキスト固有のオントロジーを含み、該コンテキスト固有のオントロジーは、一つ以上のコンテキスト固有の意図から成る累積シーケンスを含む、請求項２３に記載のバーチャルパーソナルアシスタント装置。
【請求項３２】
前記コンテキスト固有のフレームワークは、動的なオントロジーを含み、該動的なオントロジーは、コンテキスト固有のオントロジーから得られた一つ以上の前の意図から成る累積シーケンスを含む、請求項２３に記載のバーチャルパーソナルアシスタント装置。
【請求項３３】
前記非一時的なコンピュータ可読媒体は、前記一つ以上のプロセッサによって実行される場合に、該一つ以上のプロセッサに、
前記判断された動作が正しいことを確認するための要求を生成することを含む作業を実行させる命令をさらに備える、請求項２３に記載のバーチャルパーソナルアシスタント装置。
【請求項３４】
前記非一時的なコンピュータ可読媒体は、前記一つ以上のプロセッサによって実行される場合に、該一つ以上のプロセッサに、
追加的な感覚入力を用いて、前記判断された動作が正しくないことを判断することと、
追加的な情報の要求を生成することと、
を含む作業を実行させる命令をさらに備える、請求項２３に記載のバーチャルパーソナルアシスタント装置。
【請求項３５】
前記非一時的なコンピュータ可読媒体は、前記一つ以上のプロセッサによって実行される場合に、該一つ以上のプロセッサに、
追加的な感覚入力を用いて、前記判断された動作が正しくないことを判断することと、
前記追加的な感覚入力を用いて、新たな動作を判断することと、
を含む作業を実行させる命令をさらに備える、請求項２３に記載のバーチャルパーソナルアシスタント装置。
【請求項３６】
動作は、音声応答を作成して出力することを含む、請求項２３に記載のバーチャルパーソナルアシスタント装置。
【請求項３７】
動作は、情報を検索することと、該検索の結果を表示することとを含む、請求項２３に記載のバーチャルパーソナルアシスタント装置。
【請求項３８】
動作は、制御信号を生成することを含む、請求項２３に記載のバーチャルパーソナルアシスタント装置。
【請求項３９】
請求項２３、２４、２５または２６に記載のバーチャルパーソナルアシスタント装置。
【請求項４０】
請求項２３、２４、２７、２８または２９に記載のバーチャルパーソナルアシスタント装置。
【請求項４１】
請求項２３、３１または３２に記載のバーチャルパーソナルアシスタント装置。
【請求項４２】
請求項２３、３３、３４または３５に記載のバーチャルパーソナルアシスタント装置。
【請求項４３】
請求項２３、３６または３７に記載のバーチャルパーソナルアシスタント装置。
【請求項４４】
請求項３０、３９、４０、４１または４２に記載のバーチャルパーソナルアシスタント装置。
【請求項４５】
一つ以上のプロセッサによって実行される場合に、該一つ以上のプロセッサに、
コンピュータ装置内の集積回路によって、感覚入力を受け取らせ、この場合、該感覚入力は、少なくとも二つの異なる種類の情報を含み、
前記感覚入力から意味情報を判断させ、この場合、該意味情報は、前記感覚入力の解釈を提供し、
コンテキスト固有のフレームワークを識別させ、この場合、該コンテキスト固有のフレームワークは、一つ以上の前の意図から成る累積シーケンスを含み、
現在の意図を判断させ、この場合、該現在の意図を判断することは、前記意味情報および前記コンテキスト固有のフレームワークを用いることを含み、
現在の入力状態を判断させ、この場合、該現在の入力状態を判断することは、前記意味情報および一つ以上の行動モデルを用いることを含み、該行動モデルは、前に提供された意味情報の一つ以上の解釈を含み、および
動作を判断させ、この場合、該動作を判断することは、前記現在の意図および前記現在の入力状態を用いることを含む、命令を含む、
非一時的な機械可読記憶媒体に明確に具体化されたコンピュータプログラムプロダクト。
【請求項４６】
情報の種類は、音声情報、グラフィック情報、オーディオ入力、画像入力または触覚入力を含む、請求項４５に記載のコンピュータプログラムプロダクト。
【請求項４７】
声紋認識が、オーディオ入力から導き出すことが可能である、請求項４５または４６に記載のコンピュータプログラムプロダクト。
【請求項４８】
感情状態が、オーディオ入力から導き出すことが可能である、請求項４５または４６に記載のコンピュータプログラムプロダクト。
【請求項４９】
身振りが、画像入力から導き出すことが可能である、請求項４５または４６に記載のコンピュータプログラムプロダクト。
【請求項５０】
虹彩認証が、画像入力から導き出すことが可能である、請求項４５または４６に記載のコンピュータプログラムプロダクト。
【請求項５１】
感情状態が、画像入力から導き出すことが可能である、請求項４５または４６に記載のコンピュータプログラムプロダクト。
【請求項５２】
行動モデルは、設定可能な選好モデルを含み、該設定可能な選好モデルは、一つ以上の前の入力状態と、該一つ以上の前の入力状態に関連する意味情報とを含む、請求項４５に記載のコンピュータプログラムプロダクト。
【請求項５３】
前記コンテキスト固有のフレームワークは、コンテキスト固有のオントロジーを含み、該コンテキスト固有のオントロジーは、一つ以上のコンテキスト固有の意図から成る累積シーケンスを含む、請求項４５に記載のコンピュータプログラムプロダクト。
【請求項５４】
前記コンテキスト固有のフレームワークは、動的なオントロジーを含み、該動的なオントロジーは、コンテキスト固有のオントロジーから得られた一つ以上の前の意図から成る累積シーケンスを含む、請求項４５に記載のコンピュータプログラムプロダクト。
【請求項５５】
一つ以上のプロセッサによって実行される場合に、該一つ以上のプロセッサに、
前記判断された動作が正しいことを確認するための要求を生成させる命令をさらに含む、請求項４５に記載のコンピュータプログラムプロダクト。
【請求項５６】
一つ以上のプロセッサによって実行される場合に、該一つ以上のプロセッサに、
追加的な感覚入力を用いて、前記判断された動作が正しくないことを判断させ、および
追加的な情報の要求を生成させる命令をさらに含む、請求項４５に記載のコンピュータプログラムプロダクト。
【請求項５７】
一つ以上のプロセッサによって実行される場合に、該一つ以上のプロセッサに、
追加的な感覚入力を用いて、前記判断された動作が正しくないことを判断させ、および
前記追加的な感覚入力を用いて、新たな動作を判断させる命令をさらに含む、請求項４５に記載のコンピュータプログラムプロダクト。
【請求項５８】
動作は、音声応答を作成して出力することを含む、請求項４５に記載のコンピュータプログラムプロダクト。
【請求項５９】
動作は、情報を検索することと、該検索の結果を表示することとを含む、請求項４５に記載のコンピュータプログラムプロダクト。
【請求項６０】
動作は、制御信号を生成することを含む、請求項４５に記載のコンピュータプログラムプロダクト。
【請求項６１】
請求項４５、４６、４７または４８に記載のコンピュータプログラムプロダクト。
【請求項６２】
請求項４５、４６、４９、５０または５１に記載のコンピュータプログラムプロダクト。
【請求項６３】
請求項４５、５３、５４に記載のコンピュータプログラムプロダクト。
【請求項６４】
請求項４５、５５、５６、５７に記載のコンピュータプログラムプロダクト。
【請求項６５】
請求項４５、５８、５９または６０に記載のコンピュータプログラムプロダクト。
【請求項６６】
請求項５２、６１、６２、６３、６４または６５に記載のコンピュータプログラムプロダクト。
【発明の詳細な説明】
【関連出願の相互参照】
【０００１】
本特許出願は、２０１５年１２月７日に出願された米国特許仮出願第６２／２６４，２２８号、２０１６年４月２８日に出願された同第６２／３２９，０５５号、２０１６年５月２０日に出願された同第６２／３３９，５４７号および２０１６年１０月２４日に出願された米国特許出願第１５／３３２，４９４号の利益およびこれらに対する優先権を主張し、各出願は、参照によって、その全体が本願明細書に組み込まれるものとする。
【技術分野】
【０００２】
本開示は、統合化された物体認識および顔表情認識を伴うＶＰＡに関する。
【発明の概要】
【０００３】
システム、方法、例えば、コンピュータ実装方法、および統合化された物体認識および顔表情認識を伴うバーチャルパーソナルアシスタントのコンピュータプログラムプロダクトが提供される。バーチャルパーソナルアシスタント（ｖｉｒｔｕａｌ  ｐｅｒｓｏｎａｌ  ａｓｓｉｓｔａｎｔ：ＶＰＡ）は、マルチモーダル入力、例えば、話された、書かれたまたはタイプされた自然言語、言葉による合図、感情的合図および／または視覚的合図を利用するコンピュータ駆動装置と人が情報をやりとりすることを可能にする電子ツールである。バーチャルパーソナルアシスタントは、人の意図、ならびに人の感情的、心理的または認知的状態を判断することが可能である。この情報を用いて、バーチャルパーソナルアシスタントは、人と双方向対話的に関わることができ、そのことは、人によって操作または指示することができる。人と情報をやりとりし、および人に反応することにより、バーチャルパーソナルアシスタントは、その人のためのタスクを遂行することができる。
【０００４】
さまざまな実施態様においては、バーチャルパーソナルアシスタントを実施するための、方法、コンピュータ装置を含むシステム、およびコンピュータプログラムプロダクトが提供される。さまざまな実施態様において、バーチャルパーソナルアシスタントは、集積回路を用いて感覚入力を受け取るように構成することができる。その感覚入力は、少なくとも二つの異なる種類の情報を含むことができる。バーチャルパーソナルアシスタントはさらに、その感覚入力から意味情報を判断するように構成することができる。意味情報は、感覚入力の解釈を提供することができる。バーチャルパーソナルアシスタントはさらに、コンテキスト固有のフレームワークを識別するように構成することができる。コンテキスト固有のフレームワークは、一つ以上の前の意図から成る累積シーケンスを含むことができる。バーチャルパーソナルアシスタントはさらに、現在の意図を判断するように構成することができる。現在の意図を判断することは、意味情報およびコンテキスト固有のフレームワークを用いることを含むことができる。バーチャルパーソナルアシスタントはさらに、現在の入力状態を判断するように構成することができる。現在の入力状態を判断することは、意味情報および一つ以上の行動モデルを用いることを含むことができる。行動モデルは、前に提供された意味情報の一つ以上の解釈を含むことができる。バーチャルパーソナルアシスタントはさらに、動作を判断するように構成することができる。動作を判断することは、現在の意図および現在の入力状態を用いることを含むことができる。
【０００５】
いくつかの実施態様において、感覚入力に含まれる情報の種類は、音声情報、グラフィック情報、オーディオ入力、画像入力または触覚入力を含むことができる。いくつかの実施態様において、声紋認証は、オーディオ入力から導き出すことが可能である。いくつかの実施態様において、感情状態は、オーディオ入力から導き出すことが可能である。いくつかの実施態様において、身振りは、画像入力から導き出すことが可能である。いくつかの実施態様において、虹彩認証は、画像入力から導き出すことが可能である。いくつかの実施態様において、感情状態は、画像入力から導き出すことが可能である。
【０００６】
いくつかの実施態様において、行動モデルは、設定可能な選好モデルを含むことができる。設定可能な選好モデルは、一つ以上の前の入力状態と、それら一つ以上の前の入力状態に関連する意味情報とを含むことができる。
【０００７】
いくつかの実施態様において、コンテキスト固有のフレームワークは、コンテキスト固有のオントロジーを含むことができる。コンテキスト固有のオントロジーは、一つ以上のコンテキスト固有の意図から成る累積シーケンスを含むことができる。いくつかの実施態様において、コンテキスト固有のフレームワークは、動的なオントロジーを含むことができる。動的なオントロジーは、コンテキスト固有のオントロジーから得られた一つ以上の前の意図から成る累積シーケンスを含むことができる。
【０００８】
いくつかの実施態様において、バーチャルパーソナルアシスタントはさらに、判断された動作が正しいことを確認する要求を生成するように構成することができる。いくつかの実施態様において、バーチャルパーソナルアシスタントはさらに、追加的な感覚入力を用いて、判断された動作が正しくないことを判断するように構成することができる。これらの実施態様において、バーチャルパーソナルアシスタントはさらに、追加的な情報の要求を生成するように構成することができる。別法として、またはくわえて、いくつかの実施態様において、バーチャルパーソナルアシスタントは、追加的な感覚入力を用いて、新たな動作を判断するように構成することができる。
【０００９】
いくつかの実施態様において、動作は、音声応答を作成して出力することを含むことができる。いくつかの実施態様において、動作は、情報を検索することと、その検索の結果を表示することとを含むことができる。いくつかの実施態様において、動作は、制御信号を生成することを含むことができる。
【図面の簡単な説明】
【００１０】
例示的な実施形態が、以下の図面に関連して以下に詳細に記載されている。
【図１】図１は、マルチモーダルのバーチャルパーソナルアシスタントを含む装置またはシステムと情報をやりとりする人の実施例を示す。
【図２】図２は、人が有する可能性のある、バーチャルパーソナルアシスタントを含むシステムとの情報のやりとりの実施例を示す。
【図３】図３は、人と、バーチャルパーソナルアシスタントを含むシステムとの間の情報のやりとりの別の実施例を示す。
【図４】図４は、人のユーザとのマルチモーダルの対話をやりとりするように設計されているさまざまな装置およびシステムに組み込むことができるバーチャルパーソナルアシスタントシステムの実施例である。
【図５】図５は、バーチャルパーソナルアシスタントプラットフォームのオーディオ理解コンポーネントおよび画像理解コンポーネントの実施例を詳細に示す図である。
【図６】図６は、バーチャルパーソナルアシスタントプラットフォームの解釈コンポーネントを詳細に示す図である。
【図７】図７は、バーチャルパーソナルアシスタントプラットフォームの推論コンポーネントの実施例を詳細に示す図である。
【図８】図８は、バーチャルパーソナルアシスタントプラットフォームの出力生成コンポーネントの実施例を詳細に示す図である。
【図９】図９は、バーチャルパーソナルアシスタントシステムを迅速に開発し、サポートし、および／または維持するのに利用することができるバーチャルパーソナルアシスタント開発プラットフォームの実施例を示す。
【図１０】図１０は、図９の実施例のバーチャルパーソナルアシスタント開発プラットフォームを利用して構築されたバーチャルパーソナルアシスタントシステムの実施例を示す。
【図１１】図１１は、インテリジェントインタラクティブシステムの構造および動作の実施例を示す。
【図１２】図１２は、インテリジェントインタラクティブシステムまたはバーチャルパーソナルアシスタントが、オーディオ入力を処理するのに用いる可能性のあるオーディオ分析ツールの実施例を示す。
【図１３】図１３は、バーチャルパーソナルアシスタントが、画像入力を処理するのに用いる可能性のある画像分析ツールの実施例を示す。
【図１４】図１４は、バーチャルパーソナルシステムが、触覚入力を受け取るのに用いる可能性のある触覚入力フォーマットツールの実施例を示す。
【図１５】図１５は、選好モデルの実施例を示す。
【図１６】図１６は、適応音声認識システムの実施例を示す。
【図１７】図１７は、人から来ている場合に、検出されたオーディオ信号から人の特徴および／または感情状態を判断するシステムの実施例を示す。
【図１８】図１８は、音声コマンドアナライザの実施例を示す。
【図１９】図１９は、視覚情報を識別するように構成された視覚検出システムの実施例を示す。
【図２０】図２０は、人に関する視覚的合図から人の特徴および／または感情状態を判断するシステムの実施例を示す。
【図２１】図２１は、虹彩認証を判断するのに用いることができる虹彩プロセッサの実施例を示す。
【図２２】図２２は、インタラクションアシスタントの実施例を示す。
【図２３】図２３は、適応型または動的なオントロジーシステムの実施例を示す。
【図２４】図２４は、バーチャルパーソナルアシスタントがタブレット装置に組み込まれている場合の実施例を示す。
【図２５】図２５は、バーチャルパーソナルアシスタントが自動車に実装されている場合の実施例を示す。
【図２６】図２６は、バーチャルパーソナルアシスタントがサービスロボットに実装されている場合の実施例を示す。
【発明を実施するための形態】
【００１１】
バーチャルパーソナルアシスタント（ＶＰＡ）は、人が、自然言語を用いてコンピュータ駆動装置に話し掛けることによって、その装置と情報をやりとりすることを可能にする電子ツールである。「自然言語」とは、人間同士で互いに話されている日常の言語である。自然言語は、コンピュータプログラミング言語等の人工言語とは対照的に、時間と利用を経て発展してきた言語である。バーチャルパーソナルアシスタントは、典型的には、スマートフォン、自動車またはカスタマーサービスシステム等の他の装置に組み込まれる。一般的に、このような装置を使用する人は、「今日の天気は何ですか」または「レストランへの道を教えて」等の質問またはコマンドを話すかまたはタイプすることができる。バーチャルパーソナルアシスタントは、音声認識を用いて話し言葉を解釈することができ、および人工知能を用いて、話し手の意図、すなわち、話し手が、その装置に何をして欲しいかを判断することができる。バーチャルパーソナルアシスタントは、実行すべき装置にこの情報を送ることができる。
【００１２】
一般的に、バーチャルパーソナルアシスタントは、話し言葉および文字を入力として受け入れる。しかし、人のコミュニケーションは、言葉のみよりもはるかに複雑である。例えば、会話中、話している人は、声の抑揚、顔の表情、話し手の見る方向、ボディランゲージ、指さしまたはジェスチャー等に反応する可能性がある。すなわち、人は、言葉に加えて、感情的合図および／または身体的合図も介してコミュニケーションをとる。話されたかまたはタイプされた入力を受け入れるようにしか構成されていないバーチャルパーソナルアシスタントは、非言語の会話的合図を理解することができず、したがって、自然な形で人と情報をやりとりすることができない可能性がある。
【００１３】
また、バーチャルパーソナルアシスタントは、会話の経過を追う限定された能力も有していてもよい。シンプルな実例を説明するために、人は、自分のスマートフォンに、「Ｊｏｈｎの電話番号は何ですか」と尋ねる場合があり、それに対して、そのスマートフォンは、Ｊｏｈｎの電話番号で応答することになる。そして、その人は、「彼を呼び出して」と言う場合があるが、この時点で、そのスマートフォンは、「彼」が誰だか分かってはいない。話し手が、数分前または数日前に行った会話に戻って言及するという、より複雑な実例は、典型的なバーチャルパーソナルアシスタントが取り扱う能力を超えている可能性がある。
【００１４】
さまざまな実施態様において、マルチモーダルの会話型バーチャルパーソナルアシスタントが本願明細書に記載されている。それらの実施態様によるバーチャルパーソナルアシスタントは、可聴の、視覚的および／または触覚の入力を含むさまざまな感覚入力を受け取ることができる。そのバーチャルパーソナルアシスタントはさらに、異なる種類の入力から意味情報を得ることができ、この場合、その意味情報は、それらの入力の説明または解釈を与える。バーチャルパーソナルアシスタントは、さまざまな入力を組合せることができ、また、コンテキスト固有のフレームワークを用いて、それらの入力を提供した人の意図を判断することができる。コンテキスト固有のフレームワークは、特定のドメイン、または、特定の人または人のグループに関連する情報を提供することができる。バーチャルパーソナルアシスタントは、このようなフレームワークを用いて、人が、そのバーチャルパーソナルアシスタントの出力に望むことを、および／または人がどのようにそのバーチャルパーソナルアシスタントの出力に反応するかを判断することができる。バーチャルパーソナルアシスタントはさらに、人の心の状態を判断することができる。すなわち、バーチャルパーソナルアシスタントは、例えば、さまざまな行動モデルを用いて、人の現在の感情的、心理的または認知的状態を判断することができる。このようにして、バーチャルパーソナルアシスタントは、例えば、話し手が、単に「地図を見せてくれ」と言っているだけの場合でも、その話し手がいら立っているか、または混乱していることを判断することができる。その場合、さまざまな実施態様において、マルチモーダルのバーチャルパーソナルアシスタントは、状況に応じて、その行動を調整することができる。
【００１５】
マルチモダリティは、それぞれ「モード」と呼ぶことができる、テキストリソース、聴覚リソース、言語リソース、空間リソースおよび視覚リソースを用いるコミュニケーションの実施について説明する。マルチモーダルのバーチャルパーソナルアシスタントは、自然言語、およびうめき声や笑い声等の非言語音を含むオーディオ入力を受け入れることができる。バーチャルパーソナルアシスタントは、そのオーディオ入力から、（もしあれば）話された言葉を判断することができ、また、話し手の感情状態および声紋認識（例えば、声の特徴）を判断することもできる。また、マルチモーダルのバーチャルパーソナルアシスタントは、ビデオ映像または静止画像を含む視覚入力を受け入れることもでき、および顔の表情、ジェスチャーおよび虹彩認証（例えば、人の眼の特徴）等の情報を判断することができる。また、マルチモーダルのバーチャルパーソナルアシスタントは、触覚入力、例えば、キーボード、マウス、もしくはタッチスクリーン入力、または、計算システムによって実行できる他の機械的入力方法（例えば、ジョイスティック、キーパッド、スキャナ、バーコードまたはクイックレスポンス（ＱＲ）コードスキャナ等）を受け入れることもできる。
【００１６】
さまざまな実施態様において、マルチモーダルのバーチャルパーソナルアシスタントは、特定の集団に対しておよび／または１人以上の個人に対して調節することができる選好モデルも含むことができる。選好モデルは、人の個人情報および／または人の装置の利用、例えば、人の識別情報、パスワード、アカウント情報および／またはログイン情報、住所録等に関連する情報の経過を追うことができる。また、選好モデルは、人に関する履歴情報、例えば、頻繁に使うアプリケーション、頻繁にアクセスする問い合わせ先、頻繁に訪れる場所、ショッピング習慣、旅行の好み、または、クラシックカーへの興味等を蓄積することもできる。また、選好モデルは、不安であるときに早口になる傾向等の人に関する特徴および特性を記憶することもできる。バーチャルパーソナルアシスタントに入力することができるさまざまな可聴、視覚および触覚情報は、選好モデルにより、例えば、訛り、ジェスチャーの意味における文化的違い、地域特性、個人の特徴等を調整するように変更することができる。
【００１７】
また、さまざまな実施態様において、マルチモーダルのバーチャルパーソナルアシスタントは、バーチャルパーソナルアシスタントが会話の経過を追うのに役に立つフレームワークを含むさまざまなコンテキスト固有のフレームワークを含むこともできる。例えば、バーチャルパーソナルアシスタントは、動的なオントロジーを維持してもよい。オントロジーは、情報を整理するフレームワークである。オントロジーは、一般に、情報のクラス、それらのクラスまたはクラスのメンバーの属性、およびクラス間またはクラスのメンバー間の関係を含む。オントロジーは、知識を示す方法として、人工知能、意味ウェブデザイン、システムエンジニアリング、ソフトウェアエンジニアリング、情報アーキテクチャ、情報処理、知識工学、および一般的には、コンピュータ科学の分野でよく用いられる。
【００１８】
動的なオントロジーは、会話の過程を介して受取った入力に基づいて増大または縮小する情報の整理されたセットである。動的なオントロジーは、バーチャルパーソナルアシスタントにより、会話中に言われたことの関係を追跡するのに用いることができる。例えば、動的なオントロジーは、装置のユーザが「道を教えて下さい」と言った場合に、そのユーザが、「Ｍｅｎｌｏ  Ｐａｒｋのチャイニーズレストランを探して」というユーザの質問に対する答えである場所に言及していることを示すことができる。動的なオントロジーに付加された情報は、基本的なオントロジー、例えば、Ｍｅｎｌｏ  Ｐａｒｋ市街に関する情報のオントロジー等から得ることができる。
【００１９】
コンテキスト固有のフレームワークは、特定のドメインのためのフレームワークを含むこともできる。「ドメイン」は、バーチャルパーソナルアシスタントを適用できる、特定のアプリケーション、タスク、または環境である。ドメインの実例は、バーチャルパーソナルアシスタントがセルフ窓口のように動作することができるバンキングウェブサイト、バーチャルパーソナルアシスタントが現金出納機として作用することができる小売店のレジ、ならびにバーチャルパーソナルアシスタントが飛行機を予約することができ、および現在のフライト状況を報告することができる航空会社のカスタマーサービス電話システムを含む。
【００２０】
さまざまな実施態様において、バーチャルパーソナルアシスタントは、任意のドメインで用いることができるユニバーサルコンポーネントのセットを含むことができる。ユニバーサルコンポーネントは、任意のドメインに適用できる、マルチモーダルの理解エンジンおよび推論エンジン、行動モデル、幅広く適用可能なオントロジー、および出力生成ツールを含んでもよい。バーチャルパーソナルアシスタントのユニバーサル部は、インターネットにアクセスできてもよく、およびインターネットから得ることができる情報を有していてもよい。
【００２１】
ユニバーサルコンポーネントは、ドメイン固有のコンポーネントによって増加させることができる。ドメイン固有のコンポーネントは、特に、ドメイン固有のオントロジー、ワークフローおよび出力生成ツールを含むことができる。場合により、ドメイン固有のコンポーネントは、このようなバーチャルパーソナルアシスタントを含む装置を内蔵型にすることができるように（例えば、その装置は、インターネットへの接続を必要としない）、バーチャルパーソナルアシスタントが知る必要があることの範囲を縮めることができる。場合により、そのドメイン固有のコンポーネントが、要求された情報を有していない場合、その情報は、インターネット等のリソースから情報を探すことができるユニバーサルコンポーネントから要求することができる。
【００２２】
Ｉ．バーチャルパーソナルアシスタントプラットフォーム
図１は、マルチモーダルのバーチャルパーソナルアシスタント１５０を含む装置またはシステムと情報をやりとりする人１００の実施例を示す。図１はさらに、バーチャルパーソナルアシスタント１５０の動作の概念的実施例を示している。以下、実施態様例を議論する。上述のように、バーチャルパーソナルアシスタントは、通常、別の装置またはシステム、例えば、特にコンピュータ、携帯機器、ウェアラブル装置、装着型装置、家庭用電化製品、自動車、または、電話ベースの双方向音声応答（Ｉｎｔｅｒａｃｔｉｖｅ  Ｖｏｉｃｅ  Ｒｅｓｐｏｎｓｅ：ＩＶＲ）システム等に組み込まれている。図１に示す実施例において、バーチャルパーソナルアシスタント１５０は、既にスマートフォン１０２に組み込まれている。
【００２３】
ドメインを、スマートフォン１０２に対して指定してもよい。ドメインは、そのスマートフォンが通常、用いられているアクティビティの種類を含むことができる。このようなアクティビティは、例えば、電話をかけること、テキストメッセージを送信すること、（例えば、近所、または、特定の都市、州または国の）特定の場所で仕事を探すこと、車または徒歩での行き方を入手すること、アプリケーションの起動等を含んでもよい。また、スマートフォンは、スマートフォンのドメインに固有のものではないアクティビティ、例えば、オンラインショッピングやインターネット上で情報を見つけること等にも用いることができる。
【００２４】
バーチャルパーソナルアシスタント１５０を含むスマートフォン１０２を使用する人１００は、オーディオ入力１１０、画像入力１２０および／または触覚入力１３０等のさまざまな感覚入力を用いて、スマートフォン１０２と情報をやりとりすることができる。例えば、人１００は、スマートフォン１０２に話し掛けることにより、例えば、マイクロフォンによって捉えたオーディオ入力１１０を与えることができる。また、スマートフォン１０２は、非言語音、例えば、笑い声または唸り声を捉えることもできる。別の実施例として人１００は、例えば、カメラで捉えた画像入力１２０を与えることができる。例えば、スマートフォン１０２は、頷き、指差し、微笑み、または、ある物体もしくは興味がある光景をスマートフォン１０２の前方への配置を捉えることができる。別の実施例として、人１００は、文字をスマートフォン１０２のキーボードインタフェースにタイプ入力することにより、（特に）文字、ボタン、画像またはリンクを表すスマートフォン１０２のスクリーンの部分を触れることにより、および／または特に、スマートフォン１０２のタッチスクリーンインタフェースに触れながら、スワイプすることにより、タッピングすることにより、ピンチングすることにより、および／または他の何らかの動作を行うことにより、触覚入力１３０を与えることができる。
【００２５】
この実施例のスマートフォン１０２という装置は、人１００のさまざまなオーディオ入力１１０、画像入力１２０および／または触覚入力１３０を入力１０４としてバーチャルパーソナルアシスタント１５０に与えることができる。バーチャルパーソナルアシスタント１５０は、典型的には、理解システム１５２と、推論システム１５４と、出力システム１５６と、知識ベース１５８とを含む。理解システム１５２は、人１００の意図および／または感情状態を理解しようとする。場合により、理解システム１５２は、人１００がスマートフォン１０２に追加的なタスクをしてもらいたいために、または、バーチャルパーソナルアシスタント１５０が人１００からより多くの情報を必要とするために、人１００と対話することができる。推論システム１５４は、バーチャルパーソナルアシスタント１５０のための最善策に関して推論する。その最善策は、人１００が言ったことまたはタイプ入力したことだけではなく、人１００の明らかな感情的または認知的状態も考慮することを含んでもよい。推論システム１５４は、推論システム１５４が合理的な結論に達するのを支援するビジネスルール１６４と呼ぶことができる一連のインテリジェントルールおよび／またはインテリジェントモデルを備えていてもよい。ビジネスルール１６４は、ルール、モデル、テンプレート、ワークフロー、タスクフロー、または、バーチャルパーソナルアシスタント１５０が可能な表現可能動作の他の何らかの方法を含むことができる。ビジネスルール１６４は、必ずしも必要ではないが、ドメイン固有にすることができる。出力システム１５６は、人１００に対する出力１０６を作成することができ、この場合、出力１０６は、例えば、スマートフォン１０２が発声し（例えば、補足質問をする）、表示し、または行う（例えば、情報を調べる）何かを含むことができる。
【００２６】
理解システム１５２、推論システム１５４および出力システム１５６は、バーチャルパーソナルアシスタント１５０の知識ベース１５８によって補助することができる。知識ベース１５８は、アプリケーション固有のデータ１６０と、ドメインおよびユーザデータ１６２を含んでもよい。アプリケーション固有のデータ１６０は、人１００がバーチャルパーソナルアシスタント１５０とインタフェースを取っているときに用いることができる特定のアプリケーションに固有のデータを含んでもよい。例えば、人１００が電話番号を尋ねる場合、アプリケーション固有のデータ１６０は、住所録を含んでもよい。別の実施例として、人１００が道順を尋ねる場合、アプリケーション固有のデータ１６０は、地図を含んでもよい。ドメインおよびユーザデータ１６２は、ドメインおよび／またはスマートフォン１０２の特定のユーザに固有のデータを含むことができる。この実施例では、ドメインデータは、例えば、電話帳、住所録、地図、および典型的なスマートフォンアプリケーションによって用いることができる他のデータを含むことができる。ユーザデータは、例えば、人１００の識別情報（アドレス、電話番号、ログインユーザネーム等）、認証情報（例えば、パスワード、個人識別番号（ＰＩＮ）、指紋等）、および写真、電子メール等の人１００によって生成されたデータを含むことができる。また、ユーザデータは、人１００の個人的特徴、例えば、声の特徴（例えば、訛り、発話障害等）、視覚的特徴（例えば、人１００の外見、虹彩の特徴、人１００によって行われる特定のジェスチャーが意味すること等）、および特定の人１００を理解する際に、バーチャルパーソナルアシスタント１５０を支援することができる他の可聴データまたは視覚データも含むことができる。さまざまな実施態様において、バーチャルパーソナルアシスタント１５０は、複数の人のおよび／または人のグループのユーザデータを有していてもよい。
【００２７】
これらのシステムを用いて、バーチャルパーソナルアシスタント１５０は、人１００と情報をやりとりし、人１００の意図を判断し、および人１００の入力に応答して取る動作を判断する際に、スマートフォン１０２装置を支援することができる。バーチャルパーソナルアシスタント１５０はさらに、人１００の感情的、心理的または認知的状態を判断して、この判断に基づいてとる動作を調整することができる。スマートフォン１０２によってとられる動作は、例えば、要求された情報を探すこと、追加的な情報または確認を求めること、および／または他の何らかの動作（例えば、アプリケーションの起動、点灯、ドアを開くこと、車の始動等）を可能にする制御信号を生成することを含むことができる。
【００２８】
図２は、人が、バーチャルパーソナルアシスタントを含むシステムとすることができるやりとり２００の実施例を示す。この実施例では、人が、処方薬をリフィルするためのシステム、例えば、薬局の自動電話システムと、従来のユーザが指示する方法でやりとりしている。「ユーザが指示する」とは、（例えば、ユーザが応答する自動プロンプトの固定セットを提示するシステムと比較して）例えば、ユーザに会話の主題を指定させること、およびユーザに会話の流れを指示させることができることを意味する。この実施例では、人は、バーチャルパーソナルアシスタントとやりとりするのに苦労しておらず、および／またはそのシステムによって、または、他の何かによって混乱させられず、または迷わされず、または困惑されていない。したがって、その人は、何ら問題なく、自分のタスクを遂行することができる。
【００２９】
この実施例の左側のコラムは、システムへの人の入力を示す。この実施例では、人が、そのシステムに話し掛けており、したがって、その人の入力は、ユーザオーディオ入力である。右側のコラムは、システムオーディオ応答２０４、すなわち、そのシステムによる音声応答を示す。
【００３０】
まず、ステップ２１０において、人が「処方薬をリフィルしたい」と言う。そのシステムは、恐らく自然言語認識システムを用いて、その人が望むものを理解することができ、そしてステップ２１２において、「承知しました。そのことに関して、喜んでお手伝いします。それは、あなたのためですか、または、他の誰かのためですか」と返答する。このステップにおいて、そのシステムは、その人が要求したことを理解するという表示で、および追加的な情報の要求によっても応答するように構成されている。
【００３１】
ステップ２１４において、その人は、「自分のためです」と返答する。そのシステムは、「自分」が誰だか分からない可能性があるが、そのシステムは、その話し手が、その処方薬をリフィルすることが許可されているという結論を出すように構成してもよい。例えば、そのシステムは、発話入力信号から特徴を抽出し、自動話し手確認方法を用いて、その話し手の身元および／または権限を確認することができる。そのため、ステップ２１６において、そのシステムは、「結構です。瓶のラベルに載っている処方箋番号はありますか」と返答する。このステップでは、そのシステムは、会話の流れを妨げることなく（例えば、その話し手に、パスコードまたは他の何らかの認証情報を提供するように要求することによって）、話し手の身元を確認することができる。
【００３２】
ステップ２１８において、その人は、「はい、４６９−４２１−００３です」と返答して、処方箋番号を提供する。そのシステムは、ドメイン固有のワークフローを実行することにより、例えば、現時点では、続行する前に、より多くの情報が必要であると判断する。したがって、ステップ２２０において、そのシステムは、「ありがとうございます。次に、あなたの名前と住所を確認する必要があります」と言う。この応答において、そのシステムは、その人の答えを認識して、標準的な認証情報を要求する。
【００３３】
ステップ２２２において、その人は、「こちらは、２２２  Ｍａｉｎ  Ｓｔｒｅｅｔ，  Ｎｅｗ  Ｃａｓｔｌｅ，  Ｐｅｎｎｓｙｌｖａｎｉａ  １６１０１のＪｏｈｎ  Ｄｏｅです」と返答する。ステップ２２４において、そのシステムは、それが理解したことを認識して、いくつかの有用な情報をその人に提供し、追加的な情報を要求する、すなわち、「ありがとうございます。あなたには、３回分のリフィルが残っていることが分かっています。あなたが今提供した住所にリフィルを送ってもいいですか」と言う。そのシステムは、例えば、薬局のデータベースにアクセスして情報を読み出すドメイン固有のワークフローを実行することにより、この情報を獲得することができる。
【００３４】
ステップ２２６において、その人は、「はい、それで結構です」と返答する。ステップ２２８において、そのシステムは、再び、それが理解したことを認識して、いくつかの追加の役立つ情報を提供する。また、そのシステムは、その人が処方薬をすぐに必要な場合に備えて、「手続きが完了しました。あなたは、処方薬を３から５営業日で受け取るはずです。より速い配送に変更する必要がありますか」という提案も申し出る。
【００３５】
ステップ２３０において、その人は、「いいえ、３日から５日で大丈夫です」と返答する。そして、そのシステムは、その人の処方薬をリフィルするのに必要なすべての情報を有していると判断し、ステップ２３２において、「ありがとうございました。さようなら」という会話で終了する。
【００３６】
図３は、人と、バーチャルパーソナルアシスタントを含むシステムとの間のやりとり３００の別の実施例を示す。この実施例でも、人は、自動システムを利用してリフィルしているが、この実施例では、人は、いくつかの問題を抱えている。図３に示すように、バーチャルパーソナルアシスタントは、その人がいら立っていることを検出し、その人が自分のタスクを遂行する試みを助けて、システムの出力を調整する。この実施例において、最初の欄は、ユーザオーディオ入力３０２（すなわち、人によって話された言葉、または出された音）を示し、二番目の欄は、システムオーディオ応答３０４（すなわち、そのシステムからの言語出力）を示す。三番目の欄は、バーチャルパーソナルアシスタントによって検出されたマルチモーダルの合図３０６を示す。四番目の欄は、バーチャルパーソナルアシスタントによって判断されたユーザ状態３０８を示す。五番目の欄は、マルチモーダルの合図３０６およびユーザ状態に応じてバーチャルパーソナルアシスタントにより採用されたシステム適応３１０を示す。
【００３７】
ステップ３１０において、人は、そのシステムに「処方薬をリフィルしたい」と話す。そのシステムは、その人がゆっくりとためらいがちに話していることを検知する。そのシステムは、その話し手が、この会話の準備がちゃんとできておらず、もっと時間が必要であるという結論に達する可能性がある。そのシステムが、話し手の感情的または認知的状態に関して下した結論に基づいて、ステップ３１２において、イエスかノーで答えさせる直接的な質問をすることにより、その対話的アプローチを変更することを決定して、「承知しました。そのことに関して、喜んでお手伝いします。まず、あなたにいくつかの質問をします」と返答する。
【００３８】
ステップ３１４において、そのシステムは、その人から何らかのノイズを検出するが、発話を何ら感知することができない。ステップ３１６において、そのシステムは、前に進もうとして、「その処方箋はあなたのものですか」と尋ねる。
【００３９】
ステップ３１８において、その人は、「え、何ですか」と返答する。このことから、そのシステムは、たぶんその人は難聴であると判断する。この結論に基づいて、そのシステムは、ボリュームを適度に上げて、そのオーディオ出力の速度を遅くすることによって調節する。また、その人の返答は、その人が、そのシステムの最後の返答を理解していなかった可能性があることも示しているため、ステップ３２０において、そのシステムは、「その処方箋はあなたのものですか」と繰り返す。
【００４０】
ステップ３２２において、その人は、「はい、はい、えーと、それは私のものです。リフィルが必要なんです」と返答する。そのシステムは、その人の発声速度が速いことを、およびその人の声の調子が軽いいら立ちを示していることを検知する。そのシステムはさらに、その人は前に進む準備ができてはいるが、たぶん心構えができていないと結論付けることができる。したがって、そのシステムは、ステップ３２４において、「分かりました。結構ですよ。今、薬瓶はお持ちですか」と返答する。
【００４１】
ステップ３２６において、その人は、「はい、どこかこの辺に、えーと、ここにあります」と言う。そのシステムは、その人がやらなければならないことに関してはっきり分かっていないと判断することができる。したがって、そのシステムは、ステップ３２８において、寛大でより直接的に、「分かりました。その瓶にラベルがあると思いますが。＜一時中断＞そのラベルに薬剤番号があるでしょう。見付けられますか」と返答することができる。
【００４２】
ステップ３３０において、その人は、「ええ、多分、ここに何かあるけど。＜ため息＞」と返答する。この返答から、そのシステムは、可聴的ないら立ちを検出することができる。さらに、そのシステムは、画像データから、目に見える顔のゆがみを検出することができる。この情報から、そのシステムは、その人が、多分、いら立っており、および多分、異なるアプローチが必要であると結論付けることができる。ステップ３３２において、そのシステムは、情報を思い出すのがより簡単な方向へ、その質問を変えることによって適応し、すなわち、「分かりました。異なるアプローチをしてみましょう。代わりに、御自宅の電話番号を教えて下さい」と返答する。
【００４３】
上記のやりとりは、そこから、そのシステムが調整を続けて、その人の処方薬のリフィルを手伝おうとする状態で進行することができる。図示されているように、そのシステムは、その人が言うことだけではなく、そのシステムが検出して判断する非言語の合図がその人の感情状態を示すことについても調整することができる。そのシステムは、上記のやりとりの過程で得た視覚および可聴の両方の情報を用いて、そのシステムがどのように調整すべきかを判断することができる。
【００４４】
図４は、人のユーザとのマルチモーダルの会話のやりとりをするように設計されているさまざまな装置およびシステムに組み込むことができるバーチャルパーソナルアシスタントシステム４００の実施例である。さまざまな実施態様において、装置またはシステムに「組み込まれている」ということは、バーチャルパーソナルアシスタントシステム４００が、多くの他の機能を有している可能性のある装置またはシステムの構成要素であることを意味する。例えば、バーチャルパーソナルアシスタントシステム４００は、コンピュータ装置に追加することができるソフトウェアエンジンおよび／またはハードウェアエンジンを用いて実施することができる。コンピュータ装置は、例えば特に、デスクトップコンピュータ、ラップトップコンピュータ、携帯情報端末、スマートフォン、タブレットコンピュータ、ウェアラブルまたは装着型装置、または、家庭用電化製品とすることができる。コンピュータ装置の他の実例は、自動車用コンピュータ、自動カスタマーサービスシステム、店舗レジシステム、ウェブベースのインターネットサービス等を含む。
【００４５】
バーチャルパーソナルアシスタント４００は、さまざまな方法で装置またはシステムに組み込むことができる。例えば、バーチャルパーソナルアシスタントシステム４００は、独立したアプリケーションとして実施することができ、または、オペレーティングシステムに組み込むことができる。別の実施例として、バーチャルパーソナルアシスタントシステム４００は、ハードウェア装置、例えば、コンピュータ装置に付加することができ、およびそのコンピュータ装置が利用することができる特定用途向け集積回路（ＡＳＩＣ）として実施することができる。別の実施例として、バーチャルパーソナルアシスタントシステム４００は、別の装置に付加することができる装置として実施することができる。別の実施例として、バーチャルパーソナルアシスタントシステム４００は、装置が（例えば、ネットワークを通じて）、「クラウド内で」、すなわち、データセンターおよび／またはリモートサーバ内で作動するバーチャルパーソナルアシスタントシステム４００にアクセスできるようにするソフトウェアおよび／またはハードウェアインタフェースを含むことができる。
【００４６】
さまざまな実施態様において、バーチャルパーソナルアシスタントシステム４００が組み込まれている装置またはシステムは、ユーザ入力を捉え、または受け取るハードウェアを含むことができる。例えば、その装置またはシステムは、触覚入力を受け入れるキーボードまたはタッチスクリーン、オーディオ入力を捉えるマイクロフォン、および／または画像入力を捉えるカメラを含むことができる。さまざまな実施態様において、それらの装置またはシステムによって捉えられたユーザ入力は、以下でさらに議論するように、データを分析して解釈することができるバーチャルパーソナルアシスタントシステム４００に供給することができる。また、さまざまな実施態様において、その装置またはシステムは、インターネットを含む、バーチャルパーソナルアシスタントシステム４００が追加的な情報を得るのに用いることができるネットワークへの接続も実行できる。
【００４７】
さまざまな実施態様において、バーチャルパーソナルアシスタントシステム４００は、階層化アプローチを実施することができ、この場合、下位層は、基本的なまたはユニバーサル機能を提供し、また、上位層は、ドメインおよびアプリケーション固有の機能を提供する。実施例のバーチャルパーソナルアシスタントシステム４００において、ユニバーサル機能は、バーチャルパーソナルアシスタントプラットフォーム４１０によって提供される。バーチャルパーソナルアシスタントプラットフォーム４１０の上部において、実施例のバーチャルパーソナルアシスタントシステム４００は、ドメイン固有の動作のためのバーチャルパーソナルアシスタントプラットフォーム４１０の機能を用いることができるドメイン固有のアプリケーションリソース４３０を含む。ドメイン固有のアプリケーションリソース４３０の上部において、実施例のバーチャルパーソナルアシスタントシステム４００は、ドメイン固有のアプリケーションリソース４３０と、装置のユーザとの間のインタフェースを提供することができるユーザインタフェースおよびバーチャルパーソナルアシスタントクライアントアプリケーション４５０を含む。さまざまな実施態様において、バーチャルパーソナルアシスタントシステム４００は、バーチャルパーソナルアシスタントプラットフォーム４１０および／またはドメイン固有のアプリケーションリソース４３０の動作をサポートすることができるバックエンドシステム４５２も含むことができる。
【００４８】
バーチャルパーソナルアシスタントプラットフォーム４１０は、すべてのまたはほとんどのバーチャルパーソナルアシスタントの実施態様が利用するであろう基本的かつ共通の機能を提供することができる。この機能を提供するために、さまざまな実施態様において、バーチャルパーソナルアシスタントプラットフォーム４１０は、数あるコンポーネントの中でも特に、自動音声認識４１２、オーディオ理解４１４、画像理解４１６、解釈４１８、推論４２０、出力生成４２２およびテキスト読み上げ４２４を含むことができる。また、バーチャルパーソナルアシスタントプラットフォーム４１０は、他のコンポーネントのアクティビティを調整するためのコントローラ４２６も含むことができる。
【００４９】
自動音声認識４１２のコンポーネントは、オーディオ入力の自然言語を識別することができ、および識別した言葉を文字として、システム４００の残りの部分へ供給することができる。さまざまな実施態様において、バーチャルパーソナルアシスタントプラットフォーム４１０は、キーボード等の触覚入力を用いて入力された自然言語入力を受け取ることもできる。また、さまざまな実施態様において、バーチャルパーソナルアシスタントプラットフォーム４１０は、例えば、マウス、スタイラスまたはタッチスクリーンを用いて既に入力されている可能性があるコンピュータ命令の形式で入力を受け取ることもできる。
【００５０】
オーディオ理解４１４および画像理解４１６のコンポーネントは、可聴および視覚情報を処理して、その可聴または視覚情報を与えた人が意味することを判断しようとする。例えば、いくつかの実施態様において、オーディオ理解４１４のコンポーネントは、自動音声認識４１２によって識別された（または、触覚入力を介して入力された）言葉を、フレーズ、センテンスおよび／またはコンセプトにまとめる。また、さまざまな実施態様において、オーディオ理解４１４のコンポーネントは、擬音発話や声紋認証等のオーディオ入力から非言語情報を抽出することもできる。例えば、オーディオ理解４１４のコンポーネントは、特定の音を「笑い声」として、または場合により、「皮肉な笑い」としても識別することができる。声紋認証は、人の声の特徴、例えば、周波数範囲、階調範囲、ボリューム、訛り、抑揚等を類型化する。
【００５１】
画像理解４１６のコンポーネントは、画像内の情報を抽出して解釈することができる。例えば、画像理解４１６のコンポーネントは、物体、場面、顔、ジェスチャー、ボディランゲージおよび／または虹彩認証を識別することができる。いくつかの実施態様において、画像理解４１６のコンポーネントはさらに、画像、例えば、「ランプ」または「Ｊｏｈｎ」から抽出した何かを識別することができる。また、画像理解４１６のコンポーネントは、画像から抽出した情報、例えば、「指差し」、「手の振り」または「元気な頷き」をコンセプトと関連付けることもできる。
【００５２】
解釈４１８のコンポーネントは、オーディオ理解４１４のコンポーネントおよび画像理解４１６のコンポーネントによってオーディオおよび視覚情報から抽出された情報を用いて、人の現在の意図を判断しようと試みることができる。この文脈における「意図」とは、目的、目標、タスク、狙い、要求、または、言語および／または視覚的入力によって意図された意味を意味する。例えば、人は、「あれは何ですか」と言って、ある物体を指差す可能性がある。この実例では、解釈４１８のコンポーネントは、その言語入力から、その人の意図は、バーチャルパーソナルアシスタントシステム４００が何かを識別することであると判断することができる。さらに、解釈４１８のコンポーネントは、画像入力から、識別すべきものが、指差ししている物体であると判断することができる。解釈４１８のコンポーネントは、以下で論じるように、オントロジーおよびドメイン固有の知識によって支援することができる。また、解釈４１８のコンポーネントは、選好モデルによって支援することもできる。例えば、人が「野球のスコアを見せてくれ」といった場合、解釈４１８のコンポーネントは、まず、その話し手を識別して、その話し手を識別した後、その人の意図は、システム４００が、Ｂｏｓｔｏｎ  Ｒｅｄ  Ｓｏｘのその日のスコアを提供することであると判断することができる。さまざまな実施態様において、解釈４１８のコンポーネントは、対話履歴、例えば、「これ」、「あれ」、「彼」、「彼女」、「それ」等の言及を識別する際に解釈４１８のコンポーネントを支援することができる動的なオントロジーによって支援してもよい。
【００５３】
さまざまな実施態様において、解釈４１８のコンポーネントは、オーディオおよび視覚情報を分析して、人の現在の入力状態を判断することもできる。また、入力状態は、感情的、心理的または認知的状態と呼んでもよい。入力状態は、例えば、人が満足しているかまたは怒っているか、気が逸らされているかまたは興奮しているかを、または、人が、システム４００からの出力を理解しているかまたは理解していないかを示すことができる。解釈４１８のコンポーネントは、人の現在の入力状態を、例えば、調子または話し方等の口調、および／または特定のボディランゲージ、ジェスチャー等の視覚的合図、および／または顔の表情から判断することができる。例えば、人が「あれは何ですか」といった場合、解釈４１８のコンポーネントは、人の顔の表情から、その人が悩んでいると判断することができる。さまざまな実施態様において、解釈４１８のコンポーネントは、人の入力状態を説明する際に解釈４１８を支援することができる対話履歴によって支援することができる。
【００５４】
推論４２０のコンポーネントは、入力意図および入力状態を受け取って、推論したタスクまたは行動指針を判断することができる。例えば、「野球のスコアを見せてくれ」等の入力から、推論４２０は、そのタスクが情報を調べることであると判断することができる。さまざまな実施態様において、推論４２０のコンポーネントは、入力意図と入力状態を合成して、適切な行動指針に関してより良い結論になるようにすることができる。例えば、人は、「詳しく聞かせて下さい」と言って、その人が、バーチャルパーソナルアシスタントシステム４００が、現在の対話とともに継続することを意図することを示すことができるが、その人の表情は、退屈を示している可能性がある。したがって、この実施例では、推論４２０のコンポーネントは、バーチャルパーソナルアシスタントシステム４００は話題を変えるべきであると判断してもよい。推論４２０のコンポーネントは、ドメイン固有のワークフローならびにモデルおよびルールを含む、予め定義されたワークフローによって支援することができる。また、さまざまな実施態様において、推論４２０のコンポーネントは、対話履歴、例えば、動的なオントロジーによって支援してもよい。さまざまな実施態様において、推論４２０のコンポーネントは、タスクを完了するのに必要なステップを開始するか、または実行することもできる。
【００５５】
出力生成４２２のコンポーネントは、自然言語および／または視覚表示を用いて出力することができる応答を作成することができる。例えば、出力生成４２２は、文字の応答を作成して、その文字の応答をスクリーンに表示すべきか、または、発声すべきかを示すことができる。別の実施例として、出力生成４２２は、文字と視覚応答を合成したものをアセンブルすることができる。
【００５６】
テキスト読み上げ４２４のコンポーネントは、例えば、出力生成４２２のコンポーネントによって生成することができるテキスト出力をオーディオ出力に変換することができる。他の出力、例えば、表示すべきテキスト出力、または、スクリーンに表示すべきグラフィック出力は、ユーザインタフェースおよびバーチャルパーソナルアシスタントクライアントアプリケーションリソース４５０のユーザインタフェースに直接、供給することができる。
【００５７】
以下、理解４１４、４１６、解釈４１８、推論４２０および出力生成４２２のコンポーネントの各々について、さらに詳細に議論する。
【００５８】
ドメイン固有のアプリケーションリソース４３０は、特定のドメインに関連するさまざまなコンポーネントを含むことができる。一般に、ドメイン固有のアプリケーションリソース４３０は、自動音声認識および自然言語理解等の低レベルの機能がバーチャルパーソナルアシスタントプラットフォーム４１０によって提供されると仮定する。しかし、ドメイン固有のアプリケーションリソース４３０は、人の入力に関するより進化した理解を実行できるコンテキスト固有のフレームワークおよびコンポーネントを提供することができる。例えば、バーチャルパーソナルアシスタントプラットフォーム４１０は、人の言葉および感情状態を解釈することができるが、人の所望のタスクをどのように遂行するかを十分に理解するために、補足質問をする必要がある可能性がある。対照的に、ドメイン固有のアプリケーションリソース４３０は、例えば、ドメイン固有のオントロジー４３８および／またはドメイン固有のワークフローを用いてコンテキストを提供することができ、ならびにバーチャルパーソナルアシスタントプラットフォーム４１０によって供給された言葉および感情状態を用いて、人の所望のタスクをより迅速に判断することができる。
【００５９】
ドメイン固有のアプリケーションリソース４３０は、この実施例では、ドメイン固有のコンポーネント用のフレームワークと、バーチャルパーソナルアシスタントシステム４００のドメイン固有の実施において含めることができる機能を提供する。さまざまな実施態様において、ドメイン固有のアプリケーションリソース４３０は、特に、音響および言語モデル４３２と、統計学的言語モデル４３４と、物体およびジェスチャーモデル４３６と、ドメイン固有のオントロジー４３８と、ドメイン固有のワークフロー４４０と、ウェブサービス４４２と、出力テンプレート４４４とを含むことができる。さまざまな実施態様において、ドメイン固有のアプリケーションリソース４３０は、特定のドメインによって必要になる場合がある、より少ないまたは追加的なコンポーネントを含むことができる。
【００６０】
音響および言語モデル４３２は、ドメイン固有のデータを用いて、自動音声認識４１２をカスタマイズするのに用いることができる。例えば、音響および言語モデル４３２は、特定の音響環境におけるより高いパフォーマンスのためにトレーニングまたはプログラムすることができる。例えば、ドメインがレコーディングスタジオである場合、音響および言語モデル４３２は、音楽用語およびオーディオレコーディング用語に関するより高い認識のために、および音楽的な音を取り除くようにトレーニングまたはプログラムすることができる。また、別の実施例として、音響および言語モデル４３２は、言語変異に対して適応させることもできる。例えば、音響および言語モデル４３２は、地域的な訛りおよび用語に対応することができる。さまざまな実施態様において、ドメイン固有のアプリケーションリソース４３０は、複数の音響モデルおよび言語モデルを含むことができる。
【００６１】
統計的言語モデル４３４は、ドメイン固有の自然言語サンプルに関してトレーニングまたはプログラムされた統計的分類器を含むことができる。例えば、統計的言語モデル４３４は、あるドメインの典型的なユーザから集められた、そのドメインに固有の自然言語フレーズに関してトレーニングまたはプログラムすることができる。例えば、そのドメインが、銀行取引および金融である場合、統計的言語モデル４３４は、金融用語、典型的な略語および典型的な金融俗語に関してトレーニングまたはプログラムすることができる。さまざまな実施態様において、統計的言語モデル４３４は、デフォルトの統計的言語モデルおよび一般的なユーザ意図を利用することができる。さまざまな実施態様において、ドメイン固有の言語リソース４３０は、複数の統計的言語モデルを含むことができる。
【００６２】
物体およびジェスチャーモデル４３６は、ドメイン固有の物体サンプルおよびジェスチャーサンプルに関してトレーニングまたはプログラムすることもできる。例えば、物体およびジェスチャーモデル４３６は、ドメイン固有の物体の画像、およびドメイン固有のジェスチャーのビデオシーケンスに関してトレーニングまたはプログラムすることができる。例えば、そのドメインが野球に関連している場合、物体およびジェスチャーモデル４３６は、審判の判定を認識するように、および一つのチームのユニフォームを別のチームのものと区別するようにトレーニングまたはプログラムすることができる。
【００６３】
ドメイン固有のオントロジー４３８は、ドメインに固有のコンセプトおよび関係のための合理的に完全なデータモデルを含むことができる。さまざまな実施態様において、ドメイン固有のオントロジー４３８は、標準化フォーマット、例えば、ウェブオントロジー言語（Ｗｅｂ  Ｏｎｔｏｌｏｇｙ  Ｌａｎｇｕａｇｅ：ＯＷＬ）またはプロプライエタリフォーマットを用いて実施することができる。さまざまな実施態様において、ドメイン固有のオントロジー４３８は、バーチャルパーソナルアシスタントシステム４００が、そのドメインに関する新たな情報を得る際に、適応可能にすることができ、ならびに増大、圧縮および／または変更することができる。さまざまな実施態様において、ドメイン固有のアプリケーションリソース４３０は、関係のある可能性のある、または、関係のない可能性のある複数のオントロジーを含んでもよい。
【００６４】
ドメイン固有のワークフロー４４０は、ユーザの意図を解釈および実行するのに用いることができる。例えば、ドメイン固有のワークフロー４４０は、そのドメインの範囲内で実行される典型的なタスクと、人の入力をそれらのタスクと関連付けるためのルールとを含むことができる。ドメイン固有のワークフロー４４０はさらに、ドメイン固有の推論および出力生成ルールを含むことができる。
【００６５】
ウェブサービス４４２は、さまざまな実施態様において、ウェブサイトまたは他のネットワーク化されたリソースによって提供されるサービスを統合することができる。例えば、ウェブサービスは、リモートサーバによって提供されるサービスとインタフェースをとるためのクライアントサーバプロトコルを実施することができる。それらのサービスは、ユーザの意図を実行するのに用いることができる。例えば、ドメインが地図アプリケーションである場合、ウェブサービス４４２は、公的に利用可能な地図および住所録にアクセスするのに用いることができる。いくつかの実施態様において、ウェブサービス４４２は、情報検索に、および／または装置のユーザの代わりに取引を実行するのに用いることができる。例えば、ユーザは、バーチャルパーソナルアシスタントシステム４００が特定の製品を購入することを依頼することができ、そして、バーチャルパーソナルアシスタントシステム４００は、ウェブサービス４４２を用いて、その製品を見つけ出して発注することができる。
【００６６】
出力テンプレート４４４は、特定のドメインのためにバーチャルパーソナルアシスタントシステム４００の出力をカスタマイズするのに用いることができる。例えば、いくつかのドメインにおいて、特定の歓迎または挨拶文を慣例的にしてもよい。さまざまな実施態様において、出力テンプレート４４４は、マルチモーダル出力を含むことができる。例えば、出力テンプレート４４４は、視覚およびオーディオの合成出力を生成することができる。
【００６７】
さまざまな実施態様において、ユーザインタフェースおよびバーチャルパーソナルアシスタントクライアントアプリケーション４５０は、バーチャルパーソナルアシスタントシステム４００に入力を提供するための、およびバーチャルパーソナルアシスタントシステム４００から受け取るためのインフラストラクチャを提供することができる。例えば、ユーザインタフェースおよびバーチャルパーソナルアシスタントクライアントアプリケーション４５０は、そのシステムを用いる人が、それを介して感覚情報、例えば、オーディオ、画像および／または触覚入力を入力することができるユーザインタフェースを提供することができる。また、そのユーザインタフェースは、出力装置、例えば、出力を人に提供するためのスピーカーおよび／またはグラフィックディスプレイを含むこともできる。また、ユーザインタフェースは、能動的コンポーネント、例えば、（特に）人によって要求された動作を実行するためのアクチュエータ、電気信号および／またはリレーを含むこともできる。いくつかの実施態様において、ユーザインタフェースは、バーチャルパーソナルアシスタントシステム４００が既に組み込まれている装置によって提供することができる。また、ユーザインタフェースおよびバーチャルパーソナルアシスタントクライアントアプリケーション４５０は、バーチャルパーソナルアシスタントシステム４００が、その装置を用いてアクセスできるようにその装置に付加することができるクライアントアプリケーションを含むこともできる。いくつかの実施態様において、クライアントアプリケーション４５０は、各具体的な実施のために拡張または適応させることができるリファレンスアプリケーションを含むことができる。いくつかの実施態様において、リファレンスアプリケーションは、Ｊａｖａ（登録商標）ベースとすることができる。ｉＯＳまたはＡｎｄｒｏｉｄ等のいくつかのオペレーティングシステムの場合、クライアントアプリケーション４５０は、ＪａｖａＳｃｒｉｐｔ（登録商標）  Ｏｂｊｅｃｔ  Ｎｏｔａｔｉｏｎ（ＪＳＯＮ）およびＷｅｂ  Ｓｏｃｋｅｔベースのクライアントサーバプロトコルを用いて実施することができる。さまざまな実施態様においては、ユーザインタフェース、例えば、グラフィカルユーザインタフェース（ＧＵＩ）を、クライアントアプリケーションの一部とすることができる。
【００６８】
さまざまな実施態様において、バーチャルパーソナルアシスタントシステム４００は、種々のバックエンドシステム４５２も含むことができる。バックエンドシステム４５２は、バーチャルパーソナルアシスタントプラットフォーム４１０および／またはドメイン固有のアプリケーションリソース４３０の動作をサポートするハードウェアリソースおよび／またはソフトウェアリソースを提供することができる。バックエンドシステム４５２は、例えば、コンピューティングリソース、例えば、プロセッサ、サーバ、ストレージディスク、データベース等を含むことができる。また、バックエンドシステム４５２は、例えば、データセンターへのネットワークインタフェースおよび／または通信リンク等のネットワークリソースも含むことができる。いくつかの実施態様において、バックエンドシステム４５２は、ドメイン固有のバックエンドシステム、例えば、ドメイン固有のマシナリ、知識ベース、サービス等を含んでもよい。
【００６９】
図５は、バーチャルパーソナルアシスタントプラットフォーム４１０のオーディオ理解４１４および画像理解４１６のコンポーネントの実施例をより詳細に示す。上述したように、オーディオ理解４１４のコンポーネントは、オーディオ入力から情報を抽出して解釈することができ、一方、画像理解４１６のコンポーネントは、画像内の情報を抽出して解釈することができる。図５は、ユーザ入力をユーザの意図に変換することができる一般的な理解システム５００の実施例を示す。さまざまな実施態様において、理解システム５００は、オーディオ、ビデオおよび／または触覚入力５０２およびイベント５０４を受け取る。いくつかの実施態様において、オーディオ、ビデオおよび／または触覚入力５０２は、オーディオまたはビデオキャプチャ装置から、または、触覚入力装置から直接、供給してもよい。いくつかの実施態様において、オーディオ、ビデオおよび／または触覚入力５０２は、まず、生データをシステム５００が利用し易いように処理することができる。例えば、オーディオ、ビデオおよび／または触覚入力５０２は、ディジタル化することができる。さまざまな実施態様において、オーディオ、ビデオおよび／または触覚入力５０２は、イベント５０４と関連付けてもよい。イベントは、個別の入力、例えば、話し手からの単一の発話、画像の特定のシーケンス、または、単一の触覚コマンドであってもよい。したがって、イベント５０４は、オーディオ、ビデオおよび／または触覚入力５０２に構造を与えることができる。
【００７０】
さまざまな実施態様において、理解システム５００は、オーディオ、ビデオおよび／または触覚入力５０２およびイベント５０４を、マルチモーダル入力シンセサイザ５１０に供給する。マルチモーダル入力シンセサイザ５１０は、オーディオ、ビデオおよび／または触覚入力５０２を分析して、それらの入力の内容および／または意味を判断することができる。さまざまな実施態様において、マルチモーダル入力シンセサイザ５１０は、オーディオ、ビデオおよび／または触覚入力５０２を解釈するテキスト５２２を生成することができる。例えば、テキスト５２２は、オーディオ入力内で検出された言葉、または、画像入力内で見られるイベント５０４の記述、または、触覚入力を介して受取ったコマンドを含むことができる。いくつかの実施態様において、テキスト５２２は、マシンによってより容易に処理されるフォーマット、例えば、バイナリフォーマットであってもよい。
【００７１】
さまざまな実施態様において、理解システム５００は、テキスト５２２をノーマライザ５１２に供給する。ノーマライザ５１２は、例えば、パーサ、グラマー、および入力パターンを説明するモデルを用いて、テキスト５２２をリファインしてもよい。したがって、ノーマライザ５１２は、例えば、テキスト５２２をセンテンス、センテンス断片、品詞、目的語、目的語間の関係、および／または一種類の入力と他の種類の入力との関係に分解することができる。さまざまな実施態様において、ノーマライザ５１２は、テキスト５２２から身体的な合図および／または非言語合図を抽出することもでき、抽出したものは、人の入力状態を判断するのに利用することができる。さまざまな実施態様において、理解システム５００は、ドメイン固有の音響モデルおよび言語モデル、統計的言語モデル、および物体およびジェスチャーモデルを活用して、オーディオ、ビデオおよび／または触覚入力５０２のより良好な理解を得ることもできる。ノーマライザ５１２は、標準化されたテキスト５２４を出力することができる。
【００７２】
さまざまな実施態様において、理解システム５００は、標準化されたテキスト５２４を、センテンスアナライザ５１４および統計的分類器５１６に供給する。センテンスアナライザ５１４は、標準化されたテキスト５２４を分析して、単語体系５２６を生成することができる。単語体系５２６は、例えば、標準化されたテキスト５２４で表現されているアイデアを説明することができる。統計的分類器５１６は、標準化されたテキスト５２４を分析して、追加されていない意図５２８を生成することができる。統計的分類器５１６は、標準化されたテキスト５２４が一つのアイデアまたは別のアイデアを表現した可能性に基づいて、標準化されたテキスト５２４を分類してもよい。その結果として生じる追加されていない意図５２８は、オーディオ、ビデオおよび／または触覚入力５０２で表現された意図を高レベルで説明することができる。
【００７３】
さまざまな実施態様において、パラメータ抽出器５１８は、単語体系５２６と追加されていない意図５２８をまとめて、追加された意図５３０を決定することができる。さまざまな実施態様において、パラメータ抽出器５１８は、オーディオ、ビデオおよび／または触覚入力５０２で表現された意図をより明確にすることができるように、単語体系５２６を、一般化された追加されていない意図５２８と関連付けることができる。その結果が、追加された意図５３０である。
【００７４】
図５は、理解エンジン５００の一つの一般的な説明を示す。さまざまなオーディオおよび視覚理解エンジンの追加的な実施例を以下で説明する。
【００７５】
図６は、バーチャルパーソナルアシスタントプラットフォーム４１０の解釈４１８のコンポーネントをより詳細に示す。上述したように、解釈４１８のコンポーネントは、前の対話の文脈で、現在の意図および／または現在の入力状態を解釈することができる。解釈４１８のコンポーネントは、対話履歴および／またはドメインコンテキストを活用して、意図または状態をリファインすることができる解釈システム６００を用いて実施することができる。さまざまな実施態様において、解釈システム６００は、対話管理６０２およびサーバフレームワーク６１０を含むことができる。対話管理６０２は、インタプリタルール６０４と、インタプリタルールエンジン６０６と、インタプリタアプリケーションプログラミングインタフェース（ＡＰＩ）６０８とを含むことができる。インタプリタルール６０４は、対話を理解して対話を行うための構造およびモデルを提供することができる。インタプリタルールエンジン６０６は、インタプリタルール６０４を用いることができ、およびそのインタプリタルール６０４を適用することができる。インタプリタＡＰＩ６０８は、インタプリタルールエンジン６０６にインタフェースを提供することができる。インタプリタＡＰＩ６０８は、例えば、理解システムによって生成された、追加されていない意図６３０を受け取ることができる。
【００７６】
インタプリタＡＰＩ６０８はさらに、サーバフレームワーク６１０によって提供されるデータベースおよびそのデータベースへのＡＰＩを活用することができる。この実施例では、サーバフレームワーク６１０は、ドメインオントロジー６２２、ユーザ対話履歴６２４、およびさまざまなソース６２６またはエンティティを格納するのに用いることができるデータベース６２０を含む。サーバフレームワーク６１０はさらに、ＲＤＦグラフを生成および処理するリソースディスクリプションフレームワーク（Ｒｅｓｏｕｒｃｅ  Ｄｅｓｃｒｉｐｔｉｏｎ  Ｆｒａｍｅｗｏｒｋ：ＲＤＦ）ＡＰＩ６１２と、ドメインオントロジー６２２にアクセスしおよび／またはそのドメインオントロジー６２２を変更するオントロジーＡＰＩ６１４と、データベース６１０内のデータを検索および／または処理するＳＰＡＲＱＬ（Ｓｉｍｐｌｅ  Ｐｒｏｔｏｃｏｌ  ａｎｄ  ＲＤＦ  Ｑｕｅｒｙ  Ｌａｎｇｕａｇｅ）ＡＰＩ６１６とを含んでもよい。さまざまな実施態様において、サーバフレームワーク６１０は、Ａｐａｃｈｅ  Ｊｅｎａフレームワークを用いて実施することができる。サーバフレームワーク６１０および／またはインタプリタルール６０４を用いて、インタプリタＡＰＩ６０８は、最終的な意図６４０を生成することができる。
【００７７】
図７は、バーチャルパーソナルアシスタントプラットフォーム４１０の推論４２０のコンポーネントの実施例をより詳細に示す。上述したように、推論４２０のコンポーネントは、要求されたタスクを実行することができ、および／またはそのシステムを用いて、人からより多くの情報を要求することができる。図７は、タスクを実行するのに用いることができる推論システム７００の実施例を示し、この場合、そのタスクは、決定された意図に基づいている。推論システム７００は、別法としてまたは追加的に、システム７００が、より多くの情報が必要であると判断した場合に、より多くの情報を集めることができる。さまざまな実施態様において、推論システム７００は、対話管理７０２およびサーバフレームワーク７１０を含むことができる。対話管理７０２は、推論器ルール７０４と、推論器ルールエンジン７０６と、推論器ＡＰＩ７０８とを含むことができる。推論器ルール７０４は、タスクを判断して実行するための構造およびモデルを提供することができる。推論器ルールエンジン７０６は、推論器ルール７０４を利用することができ、および推論ルール７０４を適用することができる。推論器ＡＰＩ７０８は、推論器ルールエンジン７０６にインタフェースを提供することができる。推論器ＡＰＩ７０８は、例えば、解釈システムによって生成された最終的な意図７４０を受け取ることができる。
【００７８】
推論器ＡＰＩ７０８はさらに、サーバフレームワーク７１０によって提供されるデータベースおよびそのデータベースへのＡＰＩを活用することができる。この実施例では、サーバフレームワーク７１０は、ドメインオントロジー７２２、ユーザ対話履歴７２４およびさまざまなソース７２６またはエンティティを格納するのに用いることができるデータベース７２０を含む。サーバフレームワーク７１０はさらに、ＲＤＦグラフを生成および処理するＲＤＦ  ＡＰＩ７１２と、ドメインオントロジー７２２にアクセスしおよび／またはそのドメインオントロジー７２２を変更するオントロジーＡＰＩ７１４と、データベース６１０内のデータを検索および／または処理するＳＰＡＲＱＬ  ＡＰＩ７１６とを含んでもよい。さまざまな実施態様において、サーバフレームワーク７１０は、Ａｐａｃｈｅ  Ｊｅｎａフレームワークを用いて実施することができる。
【００７９】
サーバフレームワーク７１０および／または推論器ルール７０４を用いて、推論器ＡＰＩ７０８は、出力意図７５０を生成することができる。さまざまな実施態様において、出力意図７５０は、そのシステムのユーザおよび／または動作によって要求された情報とすることができ、その出力意図は、バーチャルパーソナルアシスタントを組み込んだ装置によって実行される。別法としてまたは追加的に、出力意図７５０は、より多くの情報を提供するための、ユーザに対する要求とすることができる。
【００８０】
図８は、バーチャルパーソナルアシスタントプラットフォーム４１０の出力生成４２２のコンポーネントの実施例をより詳細に示す。上述したように、出力生成４２２のコンポーネントは、その装置のユーザによって理解することができる出力を生成することができる。いくつかの実施態様において、その出力は、特定の人または人のグループに対してカスタマイズすることができる。図８は、オーディオ、ビデオおよび／または触覚入力に対するテキストおよび／またはグラフィックの応答を用意することができる出力生成システム８００の実施例を示す。さまざまな実施態様において、出力生成システム８００は、対話管理８０２およびサーバフレームワーク８１０を含むことができる。対話管理８０２は、出力ルールおよびテンプレート８０４と、出力ルールエンジン８０６と、出力生成ＡＰＩ８０８とを含むことができる。出力ルールおよびテンプレート８０４は、出力を生成するための構造およびフォーマットを提供することができる。出力ルールエンジン８０６は、出力ルールおよびテンプレート８０４を利用することができ、およびそれらのルールおよびテンプレート８０４を適用することができる。出力生成ＡＰＩ８０８は、出力ルールエンジン８０６にインタフェースを提供することができる。出力生成ＡＰＩ８０８は、例えば、推論システムによって生成された出力意図８５０を受け取ることができる。
【００８１】
出力生成ＡＰＩ８０８はさらに、サーバフレームワーク８１０によって提供されるデータベースおよびそのデータベースへのＡＰＩを活用することができる。この実施例では、サーバフレームワーク８１０は、ドメインオントロジー８２２、ユーザ対話履歴８２４およびさまざまなソース８２６またはエンティティを格納するのに用いることができるデータベース８２０を含む。サーバフレームワーク８１０はさらに、ＲＤＦグラフを生成および処理するＲＤＦ  ＡＰＩ８１２と、ドメインオントロジー８２２にアクセスしおよび／またはそのドメインオントロジー８２２を変更するオントロジーＡＰＩ８１４と、データベース８１０内のデータを検索および／または処理するＳＰＡＲＱＬ  ＡＰＩ８１６とを含んでもよい。さまざまな実施態様において、サーバフレームワーク８１０は、Ａｐａｃｈｅ  Ｊｅｎａフレームワークを用いて実施することができる。
【００８２】
サーバフレームワーク８１０および／または出力ルールおよびテンプレート８０４を用いて、出力生成ＡＰＩ８０８は、ユーザ出力８６０を生成することができる。ユーザ出力８６０は、スクリーン上に表示されるテキストとして、スピーカーを介して出力されるオーディオとして、および／またはスクリーン上に表示されるグラフィック画像としてフォーマット化することができる。
【００８３】
上述したように、バーチャルパーソナルアシスタントシステムは、階層化アプローチを用いて実施することができる。階層化アーキテクチャは、バーチャルパーソナルアシスタントシステムの迅速な開発を可能にすることができる。階層化アーキテクチャにおいて、バーチャルパーソナルアシスタントのコンポーネントは、特定の実施のために、ユニバーサルプラットフォームを再利用することができ、およびドメイン固有のコンポーネントのみを定義する必要があるようにモジュラー化することができる。ドメイン固有の層は、それ自体が、ドメイン固有のコンポーネントをその中で定義できるフレームワークを提供することができる。いくつかのドメインの場合、ドメイン固有のコンポーネントは、例えば、バーチャルパーソナルアシスタントが航空会社の予約システムに用いられる場合に、簡潔に定義することができる。他のドメインの場合、ドメイン固有のコンポーネントは、例えば、バーチャルパーソナルアシスタントがスマートフォンに組み込まれている場合には、幅広く定義することができる。
【００８４】
図９は、バーチャルパーソナルアシスタントシステムを迅速に作り出し、サポートしおよび／または維持するのに用いることができるバーチャルパーソナルアシスタント開発プラットフォーム９１０の実施例を示す。さまざまな実施態様において、バーチャルパーソナルアシスタント開発プラットフォーム９１０は、共用可能なオントロジー９１２と、複数の再利用可能なコンポーネント９１４と、ドメイン知識ベース９１６と、オントロジー追加エージェント９１８と、オントロジー視覚化モジュール９２０と、継承推論モジュール９２２とを含むことができる。バーチャルパーソナルアシスタント開発プラットフォーム９１０と、そのさまざまなコンポーネントは、コンピュータソフトウェア、ファームウェアおよび／またはハードウェアとして実施することができる。特定のドメインのためのバーチャルパーソナルアシスタントシステムを開発している開発者は、バーチャルパーソナルアシスタント開発プラットフォーム９１０を用いて、ドメイン固有のコンポーネントをより迅速に定義することができ、およびそのバーチャルパーソナルアシスタントシステムを装置またはシステムに一体化することができる。迅速な開発プラットフォームは、“Ｒａｐｉｄ  Ｄｅｖｅｌｏｐｍｅｎｔ  ｏｆ  Ｖｉｒｔｕａｌ  Ｐｅｒｓｏｎａｌ  Ａｓｓｉｓｔａｎｔ  Ａｐｐｌｉｃａｔｉｏｎｓ”と題する米国特許第９，０８１，４１１号明細書でも議論されており、参照によって、その明細書の全体を本願明細書に組み込むものとする。
【００８５】
「ドメイン」という用語は、本願明細書で用いる場合、関連してバーチャルパーソナルアシスタントシステムが人との対話を行う可能性のある情報のカテゴリーおよび／またはアクティビティを指すことができる。場合により、「ドメイン」は、特定のバーチャルパーソナルアシスタントシステムの範囲またはその一部を指す可能性がある。したがって、ドメインは、一つ以上のオントロジーコンセプト、および／または共用可能なオントロジー９１２で定義される特性に対応することができる。例えば、バーチャルパーソナルアシスタントシステムは、具体的に「オイルフィルタ」（単一のドメインまたはコンセプト）のための電子商取引ショッピングを目的としてもよいが、別のバーチャルパーソナルアシスタントシステムは、より幅広く、「自動車用品」（オイルフィルタ、スパークプラグおよび他の自動車用品を含み得る物品の幅広いカテゴリー）を目的としてもよい。さまざまな実施態様において、共用可能なオントロジー９１２は、ＯＷＬ等の知識表現言語および／またはＲＤＦ等のオントロジーオーサリングメカニズムを用いて作り出し、アップデートしおよび維持することができる。
【００８６】
上述したように、オントロジーは、コンピュータ化した知識表現フレームワークである。図９の実施例の共用可能なオントロジー９１２は、一つのドメインのための、または、多数の異なるドメインのためのバーチャルパーソナルアシスタントシステムを開発するのに用いることができる「汎用」または「共用」のオントロジーである。すなわち、共用可能なオントロジー９１２は、一つのドメインまたは複数のドメインに関連する知識を表現するためのコンピュータ化された構造を定義することができる。このような構造は、オントロジーコンセプト（または「オブジェクト」）と、それらのコンセプトと関連付けられているプロパティ（または「属性」）と、それらのオントロジーコンセプトとプロパティとの間のデータ関係とを含む。例えば、汎用の「小売」ドメインのためのオントロジーでは、「製品」は、オントロジーコンセプトとすることができ、「色」、「説明」および「サイズ」は、「製品」コンセプトのプロパティとすることができ、「ｈａｓ−ａ」関係は、それらのプロパティの各々と、「製品」コンセプトとの間に存在するデータ関係の種類とすることができ、また、「ｉｓ−ａ」関係は、「製品」というコンセプトと、「シャツ」というサブコンセプトとの間に存在するデータ関係の種類とすることができる。すなわち、この実施例では、シャツは、色、説明およびサイズを有する製品の種類である。したがって、さまざまな実施態様において、共用可能なオントロジー９１２は、人が、バーチャルパーソナルアシスタントシステムを用いて、それらに関して話す可能性の高い方法をモデル化するために、特定のオントロジーコンセプトおよびプロパティと、それらのコンセプトとプロパティとの間の関係とを定義することができる。別法としてまたは追加的に、共用可能なオントロジー９１２は、情報がオントロジー追加エージェント９１８に遭遇する方法と一致する可能性が高い方法で、特定のオントロジーコンセプト、プロパティおよび関係を定義することができ、そのことは、以下で説明する。
【００８７】
いくつかの実施態様において、共用可能なオントロジー９１２は、共用可能なオントロジー９１２が、現実世界の特定の部分に関する知識の「自然な」継承構造を活用するという点で階層的である。階層的オントロジーは、データおよび／またはバーチャルパーソナルアシスタントコンポーネントを、継承を介して共用および再利用できるようにする。
【００８８】
例えば、共用可能なオントロジー９１２は、すべてではないが、パンツのプロパティの多くはジーンズにも適用可能であるため、「ジーンズ」というオントロジーコンセプトおよび「パンツ」というコンセプトの間の継承関係を定義することができる。したがって、パンツのための電子商取引ショッピング用に設計されるバーチャルパーソナルアシスタントシステムの開発中に、プラットフォーム９１０は、共用可能なオントロジー９１２を用いて、開発者が、パンツに関する自然言語応答を作り出すのを援助することができる。共用可能なオントロジー９１２を介して、バーチャルパーソナルアシスタントプラットフォーム９１０は、パンツが「インシーム」を有していることを知り、およびインシームは、人のパンツサイズを決めるのに用いられる尺度であることを知ることができる。それに応じて、バーチャルパーソナルアシスタントプラットフォーム９１０は、バーチャルパーソナルアシスタントの開発者が、「あなたのインシーム測定値を教えて下さい。」等の自然言語応答を生成するのを提案するか、または、他の方法で援助することができ、およびその自然言語応答を、パンツのショッピング用のバーチャルパーソナルアシスタントシステムに組み込むことができる。さらに、バーチャルパーソナルアシスタントプラットフォーム９１０は、共用可能なオントロジー９１２を介して、ジーンズはパンツの一種であることを知っているため、バーチャルパーソナルアシスタントプラットフォーム９１０は、アプリケーション開発者が、「あなたのインシーム測定値を教えて下さい。」という既に作成されている自然言語応答と、「ジーンズ」というコンセプトを結び付けるのを提案するか、または、他の方法で援助することができる。バーチャルパーソナルアシスタントプラットフォーム９１０は、（共用可能なオントロジー９１２を介して）「インシーム」という自然言語応答と、ジーンズというコンセプトとの間の関連を「思い出す」ことができ、その結果、バーチャルパーソナルアシスタントシステムが、後に具体的にジーンズのための電子商取引ショッピング用に開発された場合、バーチャルパーソナルアシスタントプラットフォーム９１０は、バーチャルパーソナルアシスタントの開発者が、「インシーム」という自然言語応答を、ジーンズ専用の電子商取引バーチャルパーソナルアシスタントシステムに組み込むのを提案するか、または、別の方法で援助することができる。
【００８９】
いくつかの実施態様において、共用可能なオントロジー９１２は、再利用可能なコンポーネント９１４とドメイン知識ベース９１６の「合体」と見なしてもよい。いくつかの実施態様において、再利用可能なコンポーネント９１４および／またはドメイン知識ベース９１６の一部は、共用可能なオントロジー９１２またはその一部として、同じコンテナまたは複数のコンテナに格納してもよい（「コンテナ」は、一般的に、ある種のコンピュータ化されたデータ記憶メカニズムを指す）。例えば、パンツに関連する自然言語グラマー（例えば、「私は、ナチュラルフィットのカプリパンツが好きです」）である再利用可能なコンポーネントは、共用可能なオントロジー９１２を介して、ドメイン知識ベース９１６の「パンツ」というコンセプトに対応するコンテナと関連付けてもよく、または、そのコンテナに含めてもよい。いくつかの実施態様において、再利用可能なコンポーネント９１４は、再利用可能なコンポーネント９１４を格納し得る場所に関係なく、例えば、ポインタ、キー、リファレンスまたは他のプログラミングメカニズムを用いて、共用可能なオントロジー９１２を介して、ドメイン知識ベース９１６と関連付けることができる。
【００９０】
さまざまな実施態様において、再利用可能なコンポーネント９１４およびドメイン知識ベース９１６は、一旦、開発されると、特定のバーチャルパーソナルアシスタントシステムに用いることができる。再利用可能なコンポーネントは、バーチャルパーソナルアシスタントシステムのバーチャルパーソナルアシスタントプラットフォーム層に含めることができるユニバーサルコンポーネントを含むことができる。ユニバーサルコンポーネントは、一般的にはドメインに依存せず、およびすべてのバーチャルパーソナルアシスタントシステムに共通である可能性がある機能を提供する。したがって、これらのユニバーサルコンポーネントは、それらのコンポーネントをさまざまなバーチャルパーソナルアシスタントシステムにわたって再利用できるという意味において「再利用可能」である。再利用可能なコンポーネント９１４は、別法としてまたは追加的に、ドメイン固有のアプリケーションリソース層に含めることができるコンポーネントを含むことができ、この場合、これらのコンポーネントは、特定のドメインのために構成することができる。ドメイン固有のコンポーネントは、共用可能なオントロジー９１４に従って、および／またはオントロジー追加エージェント９１８により追加することができる、追加されていない構造、モデルおよび／またはデータベースを含むことができる。したがって、ドメイン固有のコンポーネントは、一つのバーチャルパーソナルアシスタントアプリケーションから別のバーチャルパーソナルアシスタントアプリケーションに再利用できるインフラストラクチャを提供することができるという点で「再利用可能」である。また、ドメイン知識ベース９１６は、ドメイン固有のアプリケーションリソース層にも含めることができ、または、例えば、ネットワークを通じて、バーチャルパーソナルアシスタントシステムと関連付けることができる。
【００９１】
再利用可能なコンポーネント９１４は、人のユーザと対話するのに、および／またはその対話に関するバーチャルパーソナルアシスタントの理解に基づいて、そのユーザのためにタスクまたはアクティビティを開始または実行するのに、そのバーチャルパーソナルアシスタントシステムが利用することができる、データ、ロジック、英数字テキスト要素、センテンスまたはフレーズ、変数、パラメータ、引数、関数呼び出し、ルーチンまたはプロシージャ等のソフトウェアコンポーネントおよび／または他のコンポーネントを含むことができる。再利用可能なコンポーネント９１４は、高レベルで次のように分類することができる。すなわち、ユーザの対話入力に関するユーザの意図した意味、目標または目的を理解する際にバーチャルパーソナルアシスタントシステムを援助するものと、バーチャルパーソナルアシスタントシステムが、ユーザの意図した意味、目標または目的に関して推論して、適切なシステム応答を決定するのを援助するものと、前にバーチャルパーソナルアシスタントシステムによって判断されたユーザの意図があれば、適切な方法で作成されたバーチャルパーソナルアシスタントシステム出力のために生成するものとである。
【００９２】
異なるオントロジーコンセプトと、プロパティとのデータ関係を定義することに加えて、共用可能なオントロジー９１２は、オントロジーコンセプトとプロパティと再利用可能なコンポーネント９１４との関係または「リンク」を定義することができる。すなわち、再利用可能なコンポーネント９１４は、共用可能なオントロジー９１２内のオントロジーコンセプトおよび／またはプロパティのうちの一つ以上とプログラムによって関連付けることができる。このようにして、共用可能なオントロジー９１２は、興味のある特定のドメインのためにバーチャルパーソナルアシスタントシステムを用いるために、再利用可能なコンポーネント９１４の選択を自動化するか、または、少なくとも部分的に自動化するのに用いることができる。共用可能なオントロジー９１２はさらに、興味のあるドメインのために選択したこれらのコンポーネントをインスタンス化するのに用いることができる。本願明細書で用いる場合、「関係」、「データ関係」、「リンケージ」および「リンク」等の用語は、専用のコンピュータプログラミング文またはコンストラクトを用いてソフトウェアで実施することができる論理関係または意味関係を指すことができる。例えば、人工知能ベースのシステムにおいて、このような文は、センテンスまたは公理と呼んでもよい（例えば、「パンツは衣料品である」、「ツールは小売用製品である」）。リンクメカニズムの他の形態、例えば、ポインタ、キー、リファレンスおよびその他も、共用可能なオントロジー９１２の要素間の、または、共用可能なオントロジー９１２と再利用可能なコンポーネント９１４との間の論理関係または意味関係を確立するのに用いてもよい。
【００９３】
ドメイン知識ベース９１６または「ドメインオントロジー」は、再利用可能なコンポーネント９１４間またはその中でのリンケージ／関係をガイドするために、共用可能なオントロジー９１２の構造全体またはその一部に含ませるか、またはそれらとリンクすることができる。すなわち、ドメイン知識ベース９１６で定義されたデータオブジェクトおよび属性は、共用可能なオントロジー９１２のコンセプト、プロパティおよびデータ関係に対応させることができ、その結果、共用可能なオントロジー９１２とリンクされている再利用可能なコンポーネント９１４は、（例えば、パラメータを実際のドメイン固有のデータ値と置き換えることにより）ドメインに適応させることができる。さまざまな実施態様において、ドメイン知識ベース９１６は、共用可能なオントロジー９１２のさまざまな要素に対応するデータレコードおよびデータ値をその中に記憶させることができる、一つのデータ構造または複数のデータ構造（例えば、データベース、テーブル、データファイル等）を含むことができる。一旦、（例えば、オントロジー追加エージェント９１８によって）追加されると、ドメイン知識ベース９１６は、「追加された」オントロジーまたはドメイン固有の「リーフ」、「ノード」、または、共用可能なオントロジーの「インスタンス」と呼んでもよい。
【００９４】
実施例として、ジーンズを販売する電子商取引ベンダーのためのバーチャルパーソナルアシスタントシステムを開発する際、共用可能なオントロジー９１２は、スタイル、色、サイズおよび取扱表示に関するプロパティを有するオントロジーコンセプトとして「ジーンズ」を含めるように定義することができる。対応するドメイン知識ベース９１６は、電子商取引ベンダーによって販売されるジーンズの各スタイルのデータ値をそれぞれ含む個別のデータレコード、各スタイルが利用可能な色およびサイズ、およびジーンズの各スタイルに適用可能な取扱表示を記憶することができる。ドメイン知識ベース９１６の追加されたバージョンは、そのオントロジーにおける「ジーンズ」というコンセプトの「スタイル」というプロパティに対応する「ブーツカット」および「スリム」等のデータ値を含むことができる。この実施例では、「スタイル」は、ドメイン知識ベース９１６内のデータ値をオントロジーと関連付ける「共通の特徴」と見なすことができる。ドメイン知識ベース９１６は、（例えば、アプリケーションプログラミングインタフェースまたはＡＰＩを介して）ベンダーのバックエンドシステムとインタフェースをとって、または、オントロジー追加エージェント９１８の助けを借りて、手動データ入力を含む多くの異なる方法でデータ値をインスタンス化し、または、データ値を追加することができる。一旦、データ値を追加すると、ドメイン知識ベース９１６は、再利用可能なコンポーネント９１４の新たなバージョンまたはカスタマイズされたバージョンをインスタンス化するのに用いることができる。このことは、再利用可能なコンポーネント９１４と共用可能なオントロジー９１２との間のリンケージ、およびドメイン知識ベース９１６の要素と、共用可能なオントロジー９１２との間のリンケージによって行うことができる。
【００９５】
さまざまな実施態様において、追加エージェント９１８は、共用可能なオントロジー９１２を、自動化された方法で追加することができる。追加エージェント９１８は、インターネットウェブページ（または、追加エージェント９１８がアクセスできる他の電子データソース）からデータを取出し、「収集し」または他の方法で取得し、収集したデータを共用可能なオントロジー９１２の構造に対応付けして、ドメイン知識ベース９１６に追加する、コンピュータ化されたサブシステムまたはモジュール（例えば、ソフトウェア、ファームウェア、ハードウェアまたはこれらの組合せ）として実施することができる。例えば、オントロジー追加エージェント９１８は、興味のあるドメイン、または、ドメインにおけるアイテムに関連する、消費者との電子取引（例えば、電子商取引、金融取引、医療関連取引および／またはその他）をサポートするウェブページまたはウェブサイトを含む取引ウェブサイトをサポートするバーチャルパーソナルアシスタントシステムを開発するのに利用することができる。この実施例では、オントロジー追加エージェント９１８は、特定の用途のために再利用可能なコンポーネント９１４に適用されるか、または、再利用可能なコンポーネント９１４に組み込まれる必要がある適用可能なドメイン固有の情報を、関連のあるウェブページまたは複数のウェブページから収集するのに用いることができる。
【００９６】
場合により、他の種類の公的に利用可能な電子データソースを、オントロジー追加エージェント９１８によって取り出して、特定のバーチャルパーソナルアシスタントシステムに「供給する」ことができる知識の深さおよび／または広さを強化してもよい。例えば、競合他社のウェブページまたはウェブサイト、公的に利用可能な製品レビューページ、公的に利用可能な辞書および知識ベース（例えば、ＤＩＣＴＩＯＮＡＲＹ．ＣＯＭ、ＷＩＫＩＰＥＤＩＡおよび／またはその他）、ソーシャルメディアサイトの公的エリア（例えば、ＦＡＣＥＢＯＯＫ（登録商標）、ＧＯＯＧＬＥ＋等）、公的に利用可能なブログおよび／または他のデータソースを取り出して、バーチャルパーソナルアシスタントシステムによる利用のために追加的な情報を提供してもよい。このような情報は、代替名、ニックネーム、類義語、略語等、ならびに現在のコンテキスト情報（例えば、電子商取引ドメインでは、競合他社の製品に関する情報、または、今、人気のある、または、会話でよくある話題になると思われる製品のアイテムまたはスタイル）を含んでもよい。
【００９７】
さまざまな実施態様において、オントロジー視覚化モジュール９２０は、共用可能なオントロジー９１２および／または再利用可能なコンポーネント９１４の双方向の説明を、人がアクセスできるフォーマットで提示するコンピュータ化されたサブシステムまたはモジュール（例えば、ソフトウェア、ファームウェア、ハードウェアまたはこれらの組合せ）として実施することができる。オントロジー視覚化モジュール９２０は、バーチャルパーソナルアシスタントの開発者または知識ベースのエンジニアが、共用可能なオントロジー９１２を視覚的にナビゲートおよび検討することを可能にすることができる。いくつかの実施態様において、視覚化モジュール９２０は、オントロジーのグラフィック表示を提示する。このような視覚化は、理解および利用するための高度なコンピュータプログラミングスキルを要することなく、エンドユーザまたは別の人にとって十分にシンプルにすることができる。オントロジー視覚化モジュール９２０はさらに、その開発者または他のユーザが、コンセプトおよびプロパティを、共用可能なオントロジー９１２のさまざまな要素およびレベルに割り当てて、それにより、それらのコンセプトとプロパティとの関係を定義することを可能にすることができる。オントロジー視覚化モジュール９２０は、例えば、ユーザが、例えば、コンピュータマウス、スタイラスまたは自分の指を利用して、共用可能なオントロジー９１２の一つの要素またはレベルから別の要素またはレベルへ、オントロジーコンセプトおよびプロパティのグラフィック表示を「ドラッグアンドドロップ」することを可能にすることにより、そのように行ってもよい。
【００９８】
さまざまな実施態様において、オントロジー視覚化モジュール９２０は、開発者または他のユーザが、同様の方法で、再利用可能なコンポーネント９１４と共用可能なオントロジー９１２を関連付けることを可能にすることもできる。例えば、図６から図８に示すように、ＶＰＡコンポーネント９１４と、それらの対応するオントロジーコンセプトとのリンクは、グラフィックでディスプレイスクリーン上に提示することができ、また、オントロジー視覚化モジュール９２０は、このようなリンクを「ポインティングおよびクリック」、「ドラッグおよびドロップ」またはユーザ入力の他のモードによって追加または変更できるようにすることが可能である。以下で説明する図１０は、開発者に提示することができるディスプレイスクリーンの単純化した実施例を示す。その実施例のディスプレイスクリーンは、バーチャルパーソナルアシスタントシステムに含めるための再利用可能なコンポーネント９１４の選択を可能にすることができる。
【００９９】
いくつかの実施態様において、図９のオントロジー視覚化モジュール９２０は、継承推論モジュール９２２を含むことができる。さまざまな実施態様において、継承推論モジュール９２２は、共用可能なオントロジー９１２の組織的構造を活用して、バーチャルパーソナルアシスタントシステムの開発に必要な場合に、データ関係およびリンケージをプログラムで検討して追従することができる。このことを行うために、継承推論モジュール９２２は、共用可能なオントロジー９１２内のコンセプトとプロパティとの間のデータ関係を定義する既存のプログラム文（例えば、センテンスおよび／または公理）を分析することができる。このような文は、例えば、包含関係を示すことができ、共用可能なオントロジー９１２内の他のコンセプトのサブクラスまたはサブカテゴリとして定義されるコンセプトは、それら各々の親コンセプトのプロパティおよび関係のすべてを継承する（例えば、「子供」コンセプトは、その親によって「包含」される）。
【０１００】
多くの場合、（例えば、分かりやすい階層関係が含まれている場合）、継承推論モジュール９２２は推論アルゴリズムを必要とせず、または、継承推論モジュール９２２を省いてもよい。しかし、共用可能なオントロジー９１２が、（例えば、一時的な）他の種類の関係を含む場合、継承推論モジュール９２２は、一つ以上の自動推論アルゴリズムを適用して、追加されたドメイン知識ベース９１６を介して推論し、共用可能なオントロジー９１２に含まれている既存のデータ関係および／またはリンケージに基づいて、新たなデータ関係および／またはリンケージを推測することができる。すなわち、継承推論モジュール９２２は、データ関係および／またはリンケージの特定の組合せが共用可能なオントロジー９１２内に存在することに気付き、その気付いたことに基づいて、推論した関係を共用可能なオントロジー９１２に追加することができる。それに従って、オントロジー視覚化モジュール９２０は、新たなドメインまたは新たな一つのデータに適している可能性のあるデータ関係またはリンケージに関して、バーチャルパーソナルアシスタントシステムの開発者に提案または推奨を行うことができる。
【０１０１】
実施例として、バーチャルパーソナルアシスタントの開発者が、ジーンズのショッピング用の新たなバーチャルパーソナルアシスタントシステムを設計している場合、その開発者は、「衣料品」を定義する「汎用」の電子商取引オントロジーを、「購入可能アイテム」というコンセプトのサブクラスまたはサブカテゴリとして利用することができる。その開発者は、バーチャルパーソナルアシスタントプラットフォーム９１０に、「ジーンズ」は、衣料品の一種であることを知らせることができ、または、バーチャルパーソナルアシスタントプラットフォーム９１０は、以下で説明するように、その関係を自動的に学習することができる。継承推論モジュール９２２はさらに、そのオントロジー内の「衣料品」コンセプトとリンクされている再利用可能なコンポーネント９１４のすべてまたは一部が、ジーンズ用の新たなバーチャルパーソナルアシスタントシステムに含まれることを開発者に提案することができる。場合により、モジュール９２２は、または、恐らく、オントロジー視覚化モジュール９２０のいくつかの他のメカニズム、または、より一般的には、バーチャルパーソナルアシスタントプラットホーム９１０は、その開発者からの入力を要することなく、新たなリンケージを自動的に確立するために続行することができる。そのような場合、オントロジー視覚化モジュール９２０は、例えば、開発者に新たな関係が既に作り出されていることを伝えるために、および／またはその開発者が、その関係を元に戻したり、変更したりする機会を可能にするために、その新たな関係の描写をディスプレイスクリーン上に提示してもよい。
【０１０２】
図１０は、図９の実施例のバーチャルパーソナルアシスタント開発プラットフォーム９１０を用いて構成したバーチャルパーソナルアシスタントシステム１０１０の実施例を示す。図１０の実施例のバーチャルパーソナルアシスタントシステム１０１０は、マルチモーダルのユーザインタフェース１０１２と、バーチャルパーソナルアシスタントプラットフォーム１０１４と、複数のドメイン適応の再利用可能なコンポーネント１０２２とを含む。
【０１０３】
さまざまな実施態様において、マルチモーダルのユーザインタフェース１０１２は、バーチャルパーソナルアシスタントシステム１０１０と情報をやりとりしている人によって提供された会話の自然言語入力を捉えることができる。さまざまな実施態様において、マルチモーダルのユーザインタフェース１０１２は、人からの視覚情報も、または、人によって提供された視覚情報も捉えることができる。また、さまざまな実施態様において、マルチモーダルのユーザインタフェース１０１２は、触覚入力装置を介して提供された触覚入力も捉えることができる。
【０１０４】
いくつかの実施態様において、マルチモーダルのユーザインタフェース１０１２は、マイクロフォンまたは他のオーディオ入力装置を用いて、人が話した自然言語対話入力を捉えることができる。別法としてまたは追加的に、マルチモーダルのユーザインタフェース１０１２は、例えば、タッチパッド、キーパッド、タッチスクリーンまたは他の触覚入力装置によって、テキストベースの自然言語対話入力を捉えることができる。また、他の非言語入力も、例えば、タッチパッド、キーパッド、タッチスクリーンまたは他の入力装置により、マルチモーダルのユーザインタフェース１０１２を介して捉えることができる。このような入力は、例えば、マウスクリック、タップ、スワイプ、ピンチおよび／または他の触覚入力を含んでもよい。
【０１０５】
いくつかの実施態様において、マルチモーダルのユーザインタフェース１０１２は、非言語の視覚情報を捉えることができる。例えば、マルチモーダルのユーザインタフェース１０１２は、顔の表情および／または虹彩画像を捉えることができる。場合により、マルチモーダルのユーザインタフェース１０１２は、例えば、カメラ、モーションセンサおよび／または運動センサを用いて、「装置から離れた」体の動きまたは他のジェスチャータイプの入力（例えば、手を振ること、頷き、目の動き等）を捉えることができる。
【０１０６】
多くの場合、人とバーチャルパーソナルアシスタントシステム１０１０との間で行われる会話による対話は人によって開始されるが、このことは、必ずしも必要なことではない。いくつかの実施態様において、バーチャルパーソナルアシスタントシステム１０１０は、先を見越して作動し、および人の非言語入力に応じて、または、例えば、温度センサ、ジャイロセンサ、モーションセンサ、位置ベースシステム（例えば、全地球無線測位システムすなわちＧＰＳ、セルラーシステムおよび／またはその他）およびその他から得たか、または導き出した感知情報に応じて、その人との対話を開始してもよい。したがって、人の入力は、どちらも人によって開始され、およびシステムが生成した出力に応じて人によって提供される、言語入力および非言語入力を含むことができる。例えば、対話入力は、質問、要求、情報探索対話を始めるために人によって実行される発言、バーチャルパーソナルアシスタントシステム１０１０に何らかの動作を開始させるか、または、実行させるために人によって発せられたコマンド、システムが実行する動作への応答、および／またはシステム１０１０によって提示された質問への返答を含んでもよい。マルチモーダルのユーザインタフェース１０１２の一部は、人の対話入力を機械可読フォーマットに変換することができ、または、このことは、バーチャルパーソナルアシスタントプラットフォーム１０１４のコンポーネントによって行ってもよい。上述したように、マルチモーダルのユーザインタフェース１０１２によって捉えられて処理された対話入力は、オーディオ、画像、テキスト、他の何らかの自然言語入力、または、これらの入力の組合せの形態とすることができる。
【０１０７】
マルチモーダルのユーザインタフェース１０１２によって捉えられた言語入力および非言語入力は、バーチャルパーソナルアシスタントプラットフォーム１０１４によって処理することができる。実施例のバーチャルパーソナルアシスタントプラットフォーム１０１４は、インタプリタ１０１６、推論器１０１８および出力生成器１０２０等の多くのコンポーネントを含む。さまざまな実施態様において、バーチャルパーソナルアシスタントプラットフォーム１０１４は、情報検索エンジン等の追加的なコンポーネントまたはモジュールを含んでもよい。いくつかの実施態様において、バーチャルパーソナルアシスタントプラットフォーム１０１４に含まれているような、以下で説明するいくつかのコンポーネントは、バーチャルパーソナルアシスタント１０１０の外部に配置してもよく、および通信リンク、例えば、ネットワーク接続によりバーチャルパーソナルアシスタント１０１０と情報をやりとりすることができる。
【０１０８】
さまざまな実施態様において、インタプリタ１０１６は、人のマルチモーダル入力の意味を判断することを試みることができる。インタプリタ１０１６は、統計的に高い信頼度で、人の実際の意図または人のやりとりの目的に最も良く一致した、インタプリタ１０１６が判断したことの出力を生成することができる。音声対話入力の場合、インタプリタ１０１６（または、外部の自動音声認識（ａｕｔｏｍａｔｅｄ  ｓｐｅｅｃｈ  ｒｅｃｏｇｎｉｔｉｏｎ：ＡＳＲ）システム）は、人の自然言語オーディオを、インタプリタ１０１６によって実行されるさらなる分析に用いることができる、テキストまたは他の何らかの機械可読フォーマットに変換することができる。インタプリタ１０１６は、入力を構文解析しおよび／または注釈付けして、人の意図した意味をより良く理解するために、および／または（例えば、冠詞または他の余分な言葉を取り除くことにより）自然言語入力を抽出して、意味のある言葉にするために、構文規則、文法規則および／または意味規則を自然言語対話入力に適用してもよい。非言語のオーディオおよび／または画像入力の場合、インタプリタ１０１６は、意味規則および／またはモデルを非言語入力に適用して、人によって意図されている意味を判断することができる。別法としてまたは追加的に、いくつかの実施態様では、インタプリタ１０１６は、行動規則および／または行動モデルを適用して、人の感情状態を識別しようと試みることができる。
【０１０９】
「目標」、「目的」または「意図」という用語は、本願明細書で用いる場合、人が自分の意図を伝えるのに用いる、言葉、ジェスチャー、顔の表情、および／または他の言語または非言語の合図に加えて、人の狙い、目標または目的に関するバーチャルパーソナルアシスタントシステム１０１０の試みた理解を表している。このことを行うために、バーチャルパーソナルアシスタントシステム１０１０は、対話コンテキストおよび／または人の現在のコンテキストの他の観点を考慮することができる。例えば、人は、「私は、それを買うだろう」または「それを発注してくれ」のようなことを言う可能性があるが、そのことは、実際には、人の目的が特定の製品を購入することであることを意味し、その製品は、前の対話の段階で既にその人によって識別されている可能性があり、または、他のマルチモーダル入力（例えば、オンスクリーングラフィックを選択するタップ）によってシステム１０１０により既に識別されている可能性がある。人が意図した対話の目標または目的の判断は、大抵、人工知能ベースの方法の適用を伴う。
【０１１０】
ユーザ意図インタプリタ１０１６のいくつかの実施態様は、自動音声認識（ＡＳＲ）システムおよび自然言語理解（ｎａｔｕｒａｌ  ｌａｎｇｕａｇｅ  ｕｎｄｅｒｓｔａｎｄｉｎｇ：ＮＬＵ）システムを含んでもよい。一般に、自動音声認識システムは、言葉から成る自然言語対話入力における話し言葉および／またはフレーズを識別して、それらを認識してテキスト形式（例えば、言葉、単語の列、フレーズ、「セグメント」、「チャンク」、「センテンス」または言語表現の他の形式）に変換することができる。一般に、自然言語理解システムは、自然言語入力に関する自動音声認識システムの文字による仮説を受け取る。場合により、自然言語入力は、（例えば、キーボードを使用してタイプ入力されることにより）テキスト形式で与えてもよく、この場合、自動音声認識処理は省いてもよい。
【０１１１】
さまざまな実施態様において、自然言語理解システムは、自動音声認識システムによって既に処理されている自然言語対話入力の言語内容を構文解析し、意味的に分析し、および解釈することができる。換言すると、自然言語理解システムは、自動音声認識システムによって生成された言葉および／またはフレーズを分析し、例えば、その対話中に提示された他の言葉またはフレーズを、および／またはドメイン適応の再利用可能なコンポーネント１０２２のうちの一つ以上を考慮して、最も可能性の高い意図された意味を判断することができる。例えば、自然言語理解システムは、ルールベースの構文解析器および／または統計的構文解析器を適用して、言語コンテキストに基づいて、複数の可能性のある定義を有する言葉またはフレーズの意図した可能性のある意味を判断することができる（例えば、「ポップ」という言葉は、現在の対話入力の周辺の言葉および／またはフレーズ、対話の前の段階、および／または他のマルチモーダル入力を含むコンテキストに依存して、何かが破裂したことを意味する可能性があり、炭酸飲料を指す可能性があり、または、人のニックネームである可能性がある）。ハイブリッド構文解析器は、ルールベースの構文解析器の出力と、統計的構文解析器の出力との間の仲裁をして、それらの出力のうちのどれが、より良い信頼値を有しているかを判断することができる。
【０１１２】
インタプリタ１０１６は、任意のマルチモーダル入力を用いて自然言語コンポーネントによって分析する際に、対話入力から導かれた、意図した可能性のある意味、目標および／または目的を結合することができる。インタプリタ１０１６は、この情報を、「ユーザ意図」の形で推論器１０１８に伝えることができる。いくつかの実施態様において、ユーザ意図は、人がバーチャルパーソナルアシスタントシステム１０１によって実行したい行動と、その行動の主題である対象（例えば、人、場所または物）を指定する、名詞と動詞の組合せとして、または、動作と目的語の組合せとして表され、例えば、「製品を買う」または「製品カテゴリーを検索する」と表される。
【０１１３】
さまざまな実施態様において、インタプリタ１０１６は、マルチモーダル入力からの入力状態を判断することができる。例えば、インタプリタ１０１６は、言語的合図、例えば、言葉が話された方法、および／または言葉ではなかったものの言語化（例えば、笑い声、うめき声等）から感情状態を識別することができる。別の実施例として、インタプリタ１０１６は、視覚的合図、例えば、顔の表情、ボディランゲージおよび／またはジェスチャー等から感情状態を識別することができる。さまざまな実施態様において、そのインタプリタは、一つ以上の言語的合図および／または視覚的合図を合成して、その人の場合の入力状態を作成することができる。
【０１１４】
一般的に言うと、推論器１０１８は、（ドメイン適応の再利用可能なコンポーネント１０２２のうちの一つ以上によって供給することができる）適用可能な対話モデル、ビジネス論理、ルール等を考慮して、ユーザ意図、入力状態および／または任意の他の利用可能な入力を合成することができる。推論器１０１８は、この分析から、人のために関して実行する可能性のある適切なタスクを、および／または入力の意味から導き出された、およびユーザ意図において反映された人の意図した目標または目的に対する可能性のある適切なシステム応答を決定することができる（この場合、「可能性のある適切な」とは、推論器１０１８によって判断されおよび／または評価された信頼性に関するコンピュータ化された統計的尺度を指すことができる）。場合により、可能性のある適切なシステムタスクまたは応答は、追加的な情報を人に要求することである可能性があるが、別の場合では、可能性のある適切なシステムタスクまたは応答は、入力に基づいて検索クエリを構成することを伴い、および情報検索プロセスを実行することができ、または、（例えば、外部のソフトウェアアプリケーションを起動するために、または、リンクをウェブサイトに追従させるために、または、マシンを制御するために）コンピュータプログラム論理の別の断片を実行してもよい。さらに他の場合には、適切なシステムタスクまたは応答は、バーチャルパーソナルアシスタントプラットフォーム１０１４が、ユーザ意図を明らかにするのを補助することができる追加的な入力をユーザから引き出すために、その人に情報を提示することであってもよい。
【０１１５】
いくつかの実施態様、すなわち、推論器１０１８は、各会話の現在の状態およびフロー、または、人と、バーチャルパーソナルアシスタントシステム１０１０との間で行われる対話の経過を追う対話マネージャモジュールを含んでもよい。対話マネージャモジュールは、対話管理ルール、テンプレートまたはタスクフローを、例えば、人の現在のコンテキストに適している対話入力に適用してもよい。例えば、対話マネージャは、現在または最近得たマルチモーダル入力のうちの一つ以上に基づいて、会話が始まるか、または終了する場合を判断するためのルール、または、現在の入力が他の入力に関連しているか否かを判断するためのルールを適用してもよい。
【０１１６】
一旦、推論器１０１８が、それによって人の入力に応答する動作の適切な行動指針を判断すると、推論器１０１８は、「出力意図」を出力生成器１０２０に伝えることができる。出力意図は、既に実行されている任意のワークフローの結果を考慮して、人の意図に対する最も可能性のある適切な応答である、推論器１０１８が高い統計的信頼度で判断した出力の種類を指定する。例えば、ユーザ意図が「製品を買う」であるが、推論器１０１８が、「在庫チェック」タスクフローを実行することにより、そのユーザが買いたい製品は購入可能ではないことを判断した場合、出力意図は、「代替製品を提案する」とすることができる。
【０１１７】
場合により、推論器１０１８は、その出力を、（システムが生成した）自然言語フォーマットで提示すべきであることを指定してもよい。これらの場合、自然言語生成器は、出力意図の自然言語バージョンを生成するのに用いることができる。場合により、推論器１０１８はさらに、話された自然言語が、出力を提示するのに適切な形式であることを判断してもよい。これらの場合、スピーチシンセサイザまたはテキスト読み上げ（ｔｅｘｔ−ｔｏ−ｓｐｅｅｃｈ：ＴＴＳ）モジュールを、自然言語生成器によって生成された自然言語テキスト（または、未処理の出力でも）を会話（例えば、人または人のような声を用いてマシンが生成した会話）に変換するのに用いることができる。別法としてまたは追加的に、そのシステム出力は、ディスプレイスクリーンに、および／または他の形式の出力で表示することができる視覚的に提示する資料（例えば、テキスト、グラフィックスまたはビデオ）を含んでもよい。
【０１１８】
インタプリタ１０１６、推論器１０１８および／または出力生成器１０２０は、ドメイン適応の再利用可能なコンポーネント１０２２のうちの一つ以上にアクセスして利用することができる。ドメイン適応の再利用可能なコンポーネント１０２２は、図９に関連して上述した、特定のドメインに関連した用途に既に適応されている、再利用可能なコンポーネントのバージョンである。したがって、図１０に示すドメイン適応の再利用可能なコンポーネント１０２２は、それらの再利用可能なコンポーネントの中で見付けることができるコンポーネントの実施例を示している。
【０１１９】
ドメイン適応の再利用可能なコンポーネント１０２２は、ドメイン知識ベースの追加されたインスタンスからのデータを、再利用可能なコンポーネントに適用することによって作り出すことができる。具体的には、バーチャルパーソナルアシスタントプラットフォームは、再利用可能なコンポーネントと、共用可能なオントロジーとの間のリンケージ、およびドメイン知識ベースと、共用可能なオントロジーとの間のリンケージを利用して、ドメイン知識ベースからの情報を、適切な再利用可能なコンポーネントに接続することができる。例えば、ドメイン知識ベースの追加されたインスタンスにおけるデータ値は、再利用可能なコンポーネントにおけるそれらの対応するパラメータに対応付けて、ドメイン適応の再利用可能なコンポーネント１０２２を形成することができる。
【０１２０】
実施例として、バーチャルパーソナルアシスタントの開発者が、電子商取引の具体的なドメイン、例えば、ジーンズショッピング用の新たなバーチャルパーソナルアシスタントシステムを開発しているときに、その開発者は、「製品を買う」という意図２２６である再利用可能なコンポーネントを選択することができる。継承推論モジュールは、共用可能なオントロジーにおける「製品」コンセプトと関連付けられている他の再利用可能なコンポーネントも、ジーンズに、および共用可能なオントロジーにおいて定義されている製品コンセプト（例えば、「小売店」等）の任意の「親」コンセプトと関連付けられているものにも適用可能である可能性が高いことを推測することができる。したがって、継承推論モジュールは、新たなバーチャルパーソナルアシスタントシステム１０１０に包含するための（そのオントロジーの「製品」コンセプトを介した）「製品を買う」という意図に結び付けられている他の再利用可能なコンポーネントのすべてを、その開発者に勧めることができる。このようにして、継承推論モジュールは、特定のドメインための再利用可能なコンポーネントの選択およびインスタンス化の自動化を支援することができ、その結果、バーチャルパーソナルアシスタントの開発者が手で、新たなコンセプトを作り出す必要性、または、コンポーネントの新たなバージョンを作り出す必要性はない。
【０１２１】
ドメイン適応の再利用可能なコンポーネント１０２２は、入力、構造、ルールおよび／またはモデルを、バーチャルパーソナルアシスタントプラットフォーム１０１４のコンポーネントに供給する複数の異なるコンポーネントを含む。図示されている実施例において、ドメイン適応の再利用可能なコンポーネント１０２２は、自然言語グラマー１０２４と、意図１０２６と、インタプリタフロー１０２８と、タスクフロー１０３０と、ルール１０３２と、自然言語応答１０３４と、出力テンプレート１０３６と、音響モデル１０３８と、言語モデル１０４０と、統計的モデル１０４２とを含む。
【０１２２】
自然言語グラマー１０２４は、例えば、テキストフレーズおよびテキストフレーズの組合せならびに変数またはパラメータを含み、これらは、バーチャルパーソナルアシスタントシステム１０１０が、人から受け取ることを予測できる自然言語対話入力のさまざまな代替的形式を表す。したがって、自然言語グラマー１０２４は、バーチャルパーソナルアシスタントプラットフォーム１０１４を支援することができ、または、より具体的には、インタプリタ１０１６は、人の実際の自然言語対話入力をユーザ意図に対応付けることができる。場合により、インタプリタ１０１６は、自然言語グラマー１０２４を用いて、ユーザ意図を判断することができるルールベースの構文解析器を含んでもよい。統計的構文解析器は、それによってインタプリタ１０１６がユーザ意図を判断することができる別のメカニズムである。ルールベースの構文解析器が自然言語グラマー１０２４を用いるのに対して、統計的構文解析器は、異なるユーザ発言をモデル化して、統計的に最も可能性のある適切なユーザ意図を判断する統計的モデル１０４２を用いることができる。
【０１２３】
意図１０２６は、上述したように、インタプリタ１０１６によって解釈される際の人の入力の意図した目的に関する、コンピュータが理解できるフォームである。したがって、意図１０２６は、他のドメイン適応の再利用可能なコンポーネント１０２２（例えば、グラマー１０２４および統計的モデル１０４２）からの助けによって導き出すことができる。意図１０２６は、バーチャルパーソナルアシスタントプラットフォーム１０１４、または、具体的には、推論器１０１８が、人の入力に応答して、適切な行動指針を判断するのを支援する。上述したように、ユーザ意図は、「製品を買う」等の名詞と動詞／動作の組合せとして表すことができる。
【０１２４】
インタプリタフロー１０２８は、バーチャルパーソナルアシスタントプラットフォーム１０１４、または、より具体的にはインタプリタ１０１６が、人の意図の意図した意味または目的を判断するのを支援する、装置、構造、ルール、リストおよび／またはモデルとすることができる。例えば、インタプリタフロー１０２８は、対話入力の組合せまたはシーケンスが、時間的に近接して行われた場合に、特定のユーザ意図を示すことができるそれらの組合せまたはシーケンスを含んでもよい。
【０１２５】
（「ワークフロー」と呼んでもよい）タスクフロー１０３０は、バーチャルパーソナルアシスタント１０１０が、人の入力に応答して、または、別のタスクフローの完了に応答して実行することができる動作を定義することができる。したがって、タスクフローは、動作とパラメータまたは引数の組合せまたはシーケンスを含んでもよい。
【０１２６】
ルール１０３２は、バーチャルパーソナルアシスタントプラットフォーム１０１４が適用できる多くの異なるルール（例えば、ｉｆ−ｔｈｅｎ論理）を含んでもよい。例えば、ルール１０３２は、出力生成器１０２０のためのルールを含んでもよく、この場合、そのルールは、一日の一定時間後、出力生成器１０２０が、オーディオ応答を低めのボリュームで出力しなければならないこと、または、オーディオではなく、テキストのみで出力しなければならないことを規定する。
【０１２７】
自然言語応答１０３４は、それらが、例えば、バーチャルパーソナルアシスタント１０１０が人に提示することができる、可能性のあるシステム生成自然言語対話出力のさまざまな代替的フォームを表す、テキストフレーズ、およびテキストフレーズと変数またはパラメータの組合せを含むという点で、自然言語グラマー１０２４と同様である。したがって、自然言語応答１０３４は、バーチャルパーソナルアシスタントプラットフォーム１０１４、または、より具体的には、出力生成器１０２０が、推論器１０１８によって作成された出力意図を、適切な対話出力に対応付けるのを支援することができる。
【０１２８】
音響モデル１０３８、言語モデル１０４０および統計的モデル１０４２は、汎用レベルで定義して、共用可能なオントロジーを介して、特定のドメインに適応させることができる、追加的な再利用可能なコンポーネントである。バーチャルパーソナルアシスタントプラットフォーム１０１４、または、より具体的には、インタプリタ１０１６および／または推論器１０１８は、モデル１０３８、１０４０、１０４２のうちの一つ以上に照会して、最も可能性のあるユーザ意図を判断することができる。例えば、インタプリタ１０１６の一部において、または、より具体的には、自動音声認識コンポーネントは、音響モデル１０３８を用いて、口で発音された言葉またはフレーズを、それらのテキストの上で同等のものに対応付けることができる。いくつかの実施態様において、標準的な高帯域音響モデルは、あるドメインに固有である可能性のある特定の言葉遣いまたは語彙を説明するように適応させることができる。例えば、「ブーツカット」や「アシッドウォッシュ」等の用語は、婦人用ジーンズの販売を対象とするバーチャルパーソナルアシスタントシステムに対しては重要である可能性があるが、他のコンテキストにおいては無意味である可能性がある。したがって、バーチャルパーソナルアシスタントの開発者に、共用可能なオントロジーにリンクされているドメイン知識ベース（および音響モデル１０３８もそれにリンクされている）におけるそれらの用語の包含によって、音響モデル１０３８におけるそれらの用語のオーディオ発話に関する数学的表現を含めるように促してもよい。同様に、（例えば、自動音声認識モジュールによって認識された一連の言葉が、質問または発言を表しているのか否かを判断することができる）言語モデル１０４０および統計的モデル１０４２は、再利用可能なコンポーネントとしてバーチャルパーソナルアシスタント開発プラットフォームに設けて、特定のドメインに関連する用途のために適応させることができる。
【０１２９】
ＩＩ．マルチモーダル入力処理
バーチャルパーソナルアシスタントシステムは、一般的に、ある種のインテリジェントインタラクティブシステム（Ｉｎｔｅｌｌｉｇｅｎｔ  Ｉｎｔｅｒａｃｔｉｖｅ  Ｓｙｓｔｅｍ：ＩＩＳ）として説明することができる。図１１は、インテリジェントインタラクティブシステム１１００の構造および動作の実施例を示す。インテリジェントインタラクティブシステムは、タスクを完了し、人と対話を行うのに必要な場合に、前後の一連のやりとりに関わることが可能な会話システムであり、この場合、そのシステムの応答は、人が言ったか、または行った最後のことだけでなく、場合によっては、その会話の前の時点で、もしくは過去何日あるいは何週間も前に、言ったかまたは行ったことにも基づいている。また、インテリジェントインタラクティブシステムは、話された言葉またはタイプされた言葉として入力された自然言語入力だけではなく、オーディオ、視覚的および／または触覚入力に由来する非言語の合図にも応答することができる。すなわち、そのシステムは、行動合図、例えば、ジェスチャー、顔の感情、声のボリュームまたはペース等を用いて、人の感情的状態および／または認知的状態を理解することができる。したがって、そのシステムは、行動合図を活用して、人のコミュニケーションの流儀に適応させることができる。また、インテリジェントインタラクティブシステムは、明確な合図および行動合図の両方を含むモダリティを組合せて、人のコンテキストを十分に理解することもできる。また、インテリジェントインタラクティブシステムは、人の能力を理解して、それに適応することもできる。
【０１３０】
図１１に示すように、インテリジェントインタラクティブシステム１１００は、オーディオ入力１１１０、画像入力１１２０、および触覚入力１１３０を取り込むことができる。システム１１００はさらに、声で返答し、ポジティブ音およびネガティブ音を生成し、音楽を再生する等を含むオーディオ応答１１１２を出力することができる。システム１１００はさらに、画像またはウェブサイトの表示、ビデオの再生、指示を与えること等を含む視覚的応答１１２２を与えてもよい。また、システム１１００は、例えば、特に、ドアを開ける、機械を作動させる、または、取引を開始する等の動作１１３２を行うこともできる。
【０１３１】
インテリジェントインタラクティブシステム１１００は、人と情報をやりとりするために、観察システム１１５２、理解および明確な入力システム１１５６、および動作または適応システム１１５８を含んでもよい。観察システム１１５２は、人の明確な合図および環境を観察することができる。この情報を利用して、観察システム１１５２は、人の状態およびタスクの進行のより深い理解を進展させることができる。観察システム１１５２は、連続的なオーディオ入力および／または視覚的入力を活用することができ、および入力データの意味を理解することによって、人に関することを予測することができる。観察システム１１５２は、特にピッチダイナミクス、ボイスエネルギおよび発声速度等のオーディオ情報を測定することができる。また、観察システム１１５２は、顔の表情、ボディランゲージ、視線の方向、およびシーンまたは環境等の視覚情報を測定することもできる。観察システム１１５２は、視覚的合図および可聴合図のためのモデルを含んでもよいデータモデル１１５４にアクセスして、怒り、不安、当惑、悲しみ等を含んでもよい人の状態を判断することができる。
【０１３２】
理解および明確な入力システム１１５６は、人からの明確なマルチモーダル入力を理解することができる。これらの明確な入力は、例えば、ジェスチャー、ヘッドトラッキング、発話、ならびに接触、タップおよびタイピング等の触覚入力を含むことができる。理解および明確な入力システム１１５６は、この情報から、人の明確な意図を判断することができる。
【０１３３】
観察システム１１５２によって実施される観察は継続される可能性があるが、理解および明確な入力システム１１５６によって判断される人の意図は、対話ベースである可能性があることを留意すべきである。具体的には、インテリジェントインタラクティブシステム１１００は、人によって提供された最も直近の入力から人の意図を判断することができる。対照的に、インテリジェントインタラクティブシステム１１００は、明確な入力および観測した入力の両方から、連続フローで観察結果を導き出すことができる。
【０１３４】
動作または適応システム１１５８は、人の入力に対するインテリジェントインタラクティブシステム１１００の応答を作成することができる。動作または適応システム１１５８は、例えば、理解および明確な入力システム１１５６によって導き出された人の意図に合う（または、合うように試みる）明確な動作を行うことができる。動作または適応システム１１５８は、別法としてまたは追加的に、観察システム１１５２によって提供された人の状態の観察結果を用いて、その行動を適応させることができる。
【０１３５】
理解および明確な入力システム１１５６と、動作または適応システム１１５８はともに、判断を行う際に、これらのシステムを援助するデータモデル１１６０にアクセスすることができる。データモデル１１６０は、時間データモデルおよび／またはドメインモデルを含んでもよい。時間モデルは、インテリジェントインタラクティブシステム１１００との人のやりとりの時間的性質を記憶することを試みる。例えば、時間モデルは、観察結果と、それらの観察結果につながる特徴とを記憶してもよい。また、時間モデルは、意図と、システムの関連する応答および適応とを記憶してもよい。ドメインモデルは、観察と特徴の関連、および特定のドメインの場合の意図と応答の関連を記憶してもよい。ドメインモデルは、一般に、時間要素を必要とせず、その代わりに、特定のドメインに関して知っていることおよび／または予想していることに依存する。
【０１３６】
上述したように、バーチャルパーソナルアシスタント等のインテリジェントインタラクティブシステムは、人のマルチモーダル入力を理解するコンポーネントを有することができ、そのマルチモーダル入力を意図および／または入力状態として解釈することができ、ならびにその意図および／または入力状態に対処する最良の応答または行動指針に関して推論することができる。理解、解釈および推論を実施するために、バーチャルパーソナルアシスタントは、複数のオーディオ分析ツールおよび画像分析ツールを有している。これらのオーディオ分析ツールおよび画像分析ツールは、オーディオ入力および視覚入力をそれぞれ分析して、その入力の特定のアスペクトを理解し、および解釈することが（および、場合により、推論することも）できる。さまざまな実施態様において、バーチャルパーソナルアシスタントは、オーディオ分析ツールおよび画像分析ツールによって実施された理解ならびに触覚入力によって提供された情報を組合せて、人の入力に関するマルチモーダル分析に基づいている、意図および／または入力状態を生成することもできる。その結果、さまざまな実施態様において、バーチャルパーソナルアシスタントは、マルチモーダル意図および／または入力状態を用いて推論することができる。
【０１３７】
図１２は、インテリジェントインタラクティブシステムまたはバーチャルパーソナルアシスタントが、オーディオ入力１２１０を処理するのに用いることができるオーディオ分析１２６０のツールの実施例を示す。オーディオ入力１２１０は、ハミング、笑い、咳払い等の言葉と音の両方を含んでもよい。オーディオ分析１２６０のツールは、オーディオ入力１２１０を処理して、オーディオ入力１２１０の意味解釈を与えることができる。例えば、オーディオ分析１２６０のツールは、一連の音を、「Ｊｏｈｎに電話をかけて下さい。」という言葉として解釈することができる。別の実施例として、オーディオ分析１２６０のツールは、特定の音を笑いとして解釈して、「笑い」という言葉をその音と関連付けることができる。別の実施例として、オーディオ分析１２６０のツールは、特定の音を、話し手にはイギリス訛りがあることを示しているとして解釈することができる。いくつかの実施態様において、オーディオ分析１２６０のツールは、バーチャルパーソナルアシスタントの他の部分が用いることができ、および処理することができるフォーマットで、意味情報を出力することができる。
【０１３８】
図示されている実施例において、オーディオ分析１２６０のツールは、音声認識エンジン１２１２と、発話感情検出エンジン１２１４と、声紋認証検出エンジン１２１６とを含んでいる。これらのオーディオ分析１２６０のツールは、バーチャルパーソナルアシスタントが、オーディオ入力１２１０を分析するために有してもよいツールの実施例として記載されている。さまざまな実施態様において、バーチャルパーソナルアシスタントは、追加的または代替的なツールを含んでもよく、および／または複合分析（例えば、音声認識と発話感情検出）を実行することが可能なツールを有していてもよい。音声認識エンジン１２１２は、オーディオ入力１２１０内の言葉を認識することができ、および識別した言葉をテキスト１２６２として生成することができる。発話感情検出エンジン１２１４は、オーディオ入力１２１０内の感情内容を識別して、識別した感情の言葉による記述１２６４を生成することができる。声紋認証検出エンジン１２１６は、人の声の特徴を識別して、身体的特徴および／または行動的特徴１２６６の記述を生成することができる。オーディオ分析１２６０のツールの各々の実施態様例を以下に記載する。
【０１３９】
図１３は、バーチャルパーソナルアシスタントが、画像入力１３２０を処理するのに用いることができる画像分析１３７０のツールの実施例を示す。画像入力１３２０は、静止画像、動画（例えば、ビデオ）、および可視スペクトル内で利用可能なもの以外の静止画像および／または動画取得データ（例えば、暗視画像、熱検知画像、赤外線画像等）を含んでもよい。画像分析１３７０のツールは、画像入力１３２０を処理して、画像入力１３２０の意味解釈を生成することができる。例えば、画像分析１３７０のツールは、ランプまたは特定の人の顔である特定の画像を解釈して、「ランプ」または「Ｊｏｈｎ」を出力することができる。別の実施例として、画像分析１３７０のツールは、ビデオが、人が退屈しているか、または興奮していることを示すものとして解釈し、「退屈」または「興奮」を出力することができる。別の実施例として、画像分析１３７０のツールは、虹彩を含む画像を解釈して、その虹彩が「Ｊｏｈｎ」のものであることを出力する。いくつかの実施態様において、画像分析１３７０のツールは、バーチャルパーソナルアシスタントの他の部分が用いることができ、および処理することができるフォーマットで意味情報を出力することができる。
【０１４０】
この実施例で示す画像分析１３７０のツールは、物体／顔認識エンジン１３２２と、視覚感情検出エンジン１３２４と、虹彩認証エンジン１３２６とを含んでいる。これらの画像分析１３７０のツールは、バーチャルパーソナルアシスタントが、画像入力１３２０を分析するために有してもよいツールの実施例として記載されている。さまざまな実施態様において、バーチャルパーソナルアシスタントは、追加的または代替的なツールを含んでもよく、および／または複合分析（例えば、顔認識と感情検出）を実行することが可能なツールを有していてもよい。物体／顔認識エンジン１３２２は、画像またはビデオ内の物体を識別して、その物体の言葉による記述を生成することができる。また、物体／顔認識エンジン１３２２は、顔を認識して、その顔に関連する識別、例えば、名前および／またはカテゴリ（例えば、「子供」または「大人」）を生成することもできる。視覚感情検出エンジン１３２４は、人の顔および／または体を捉えた画像またはビデオから人の感情を判断することができる。視覚感情検出エンジン１３２４は、検出した感情の言葉による記述を生成することができる。虹彩認証エンジン１３２６は、画像入力１３２０内で取得した眼を検査して、その虹彩の身体的特徴および／または行動的特徴１３７６を生成することができる。画像分析１３７０のツールの各々の実施態様例を以下に記載する。
【０１４１】
図１４は、バーチャルパーソナルシステムが、触覚入力１４３０を受け取るのに用いることができる触覚入力フォーマット１４８０のツールの実施例を示す。触覚入力１４３０は、人が、自分の指、手、または、他の体のある部分を用いてそのシステムに入力する入力、または、キーパッド、タッチスクリーン、スタイラスまたはペン、ジョイスティック、虹彩スキャナ、指紋スキャナ、バーコードスキャナ等の機械的または電子装置を用いてそのシステムに入力する入力を含んでもよい。触覚入力フォーマット１４８０のツールは、触覚入力１４３０をそのシステムに入力することができるいくつかの方法で記述する。触覚入力フォーマット１４８０のツールはさらに、触覚入力１４３０の解釈を提供する。いくつかの実施態様において、触覚入力フォーマット１４８０のツールは、バーチャルパーソナルアシスタントの他の部分が用いることができ、および処理することができる解釈を出力することができる。
【０１４２】
図１４に示す実施例の触覚入力フォーマット１４８０のツールは、タイプ入力されたテキスト１４３２のツールと、オンスクリーン選択１４３４のツールと、タッチスクリーンジェスチャー１４３６のツールとを含んでいる。これらの触覚入力フォーマット１４８０のツールは、バーチャルパーソナルアシスタントが、触覚入力を受け入れるために有してもよいツールの実施例として記載されている。さまざまな実施態様において、バーチャルパーソナルアシスタントは、追加的または代替的なツールを含んでもよく、および／または複数の種類の触覚入力（例えば、タッチスクリーンジェスチャーおよびタッチ選択）を受け入れることが可能なツールを有していてもよい。タイプ入力されたテキスト１４３２のツールは、機械的キーボード、または、オンスクリーンのタッチベースのキーボード等のキーボードを用いて、テキスト１４８２の入力を生成する。オンスクリーン選択１４３４のツールは、マウス、ジョイスティック、スタイラス、指または他の何らかの選択ツールを用いて、人によって行われた選択１４８４を実行できる。選択１４８４は、例えば、チェックボックス、ラジオボタン、ドロップダウンメニュー、動作を開始するボタン、テキスト入力のフィールド、メニュー、アイコン、ハイパーテキストリンク等を含む。タッチスクリーンジェスチャー１４３６のツールは、タッチスクリーンへの入力、例えば、タップ、スワイプ、パンニング、スクロールおよびマルチタッチ入力を解釈し、この場合、タッチスクリーンは、２つ以上の箇所で同時に接触される。タッチスクリーンジェスチャー１４３６のツールは、タッチ入力を解釈して、その入力から解釈したコマンド１４８６を生成する。
【０１４３】
いくつかの実施態様において、バーチャルパーソナルアシスタントは、上述したように、オーディオ分析、画像分析および触覚入力ツールによって提供される情報に関して作動することができる。また、いくつかの実施態様において、バーチャルパーソナルアシスタントは、オーディオ入力、視覚入力および触覚入力をさらに解釈するのに用いることができる一つ以上の選好モデルも含む。
【０１４４】
図１５は、選好モデル１５４０の実施例を示す。ある場合には、選好モデルは、ユーザが、装置またはシステムをカスタマイズすることを可能にする「設定」または「オプション」と呼ぶこともできる。例えば、スマートフォン用の選好モデルは、スマートフォンユーザの好ましい着信音、背景画像、および装置をロック解除するためのユーザの親指の指紋等の情報を用いてプログラムすることができる。また、スマートフォンの選好モデルは、ユーザの電話アカウント情報、電子メールアドレス、パスワード等の情報を記憶することもできる。人が選好モデル１５４０に入力または設定することができる情報を記憶するために、選好モデル１５４０は、プログラムされた好み１５４２のセットを含んでもよい。プログラムされた好みは、時間とともに変化してもよいが、一般的には、装置のユーザが変更を開始した場合にのみ変更することができる。
【０１４５】
また、選好モデル１５４０は、学習した好み１５４４のセットを含むこともできる。プログラムされた好み１５４２とは違って、学習した好み１５４４は、バーチャルパーソナルアシスタントを使用可能な装置に関する人の利用を介して得られる。例えば、学習した好み１５４４は、過去にその装置に入力された、オーディオベースの入力１５１０、画像ベースの入力１５２０および触覚ベースの入力１５３０を保持することができる。学習した好み１５４４はさらに、特定の入力によって作られた関係を保持してもよい。例えば、学習した好み１５４４は、（例えば、テキスト入力または音声コマンドを介して入力された）アンティークショップに対する繰り返し検索を、骨董品の趣味と関連付けてもよい。別の実施例として、学習した好み１５４４は、特定の言葉またはフレーズに関する人の使用を、その人が所属する特定の文化的または社会的グループと関連付けてもよい。別の実施例として、学習した好み１５４４は、人との対話で尋ねた質問に応答して生成された情報、例えば、その人の子供の名前や年齢等を記憶してもよい。
【０１４６】
選好モデル１５４０は、記憶した、プログラムされた好み１５４２と、学習した好み１５４４を用いて、バーチャルパーソナルアシスタントを使用可能な装置との人のやりとりをカスタマイズすることができる。この実施例に示す選好モデル１５４０は、オーディオベースの入力１５１０、画像ベースの入力１５２０および／または触覚ベースの入力１５３０を入力として受け取ることができる。これらのさまざまな入力は、例えば、図１２から図１４に示すツールによって提供することができる。図１５のプログラムされた好み１５４２および／または学習した好み１５４４は、好み１５４２、１５４４に従って入力をフィルタリングおよび／または調節するために、入力１５１０、１５２０、１５３０に適用することができる。したがって、選好モデル１５４０は、バーチャルパーソナルアシスタントの他の部分による利用のために、カスタマイズされたオーディオベースの入力、カスタマイズされた画像ベースの入力１５２２および／またはカスタマイズされた触覚ベースの入力１５３２を提供することができる。例えば、触覚ベースの入力１５３０は、選好モデル１５４０が、プログラムされた好み１５４２をそれに適用して、人を認証することができる、親指指紋スキャナを用いて入力されたその人の親指の指紋を含んでもよい。別の実施例として、オーディオベースの入力１５１０は、話し手が近くのコーヒーショップを探していることを示していてもよい。この実施例では、選好モデル１５４０は、そのエリアを検索する際に学習した好み１５４４を適用し、またそのエリア内のアンティークショップを見付けることもできる。学習した好み１５４４から、その人が骨董好きであることが分かると、バーチャルパーソナルアシスタントは、近くのコーヒーショップの位置を提供し、およびそのコーヒーショップの近くにアンティークショップがあること、およびそれがどこで見つかるかを話し手に知らせてもよい。
【０１４７】
上述したように、バーチャルパーソナルアシスタントは、オーディオおよび画像データから理解し、解釈しおよび／または推論して、人の意図および／または入力状態を判断することができる可能性があるさまざまなオーディオ分析ツールおよび画像分析ツールを含んでもよい。図１６から図１８は、オーディオ分析ツールの実施態様例を説明し、また、図１９から図２１は、画像分析ツールの実施態様例を説明している。図１６から図２１の実施例は、バーチャルパーソナルアシスタントが、与えられたオーディオ入力または画像入力を理解し、解釈しおよび／または推論するのに用いてもよい、可能性のあるツールの理解の際に支援するために記載されている。バーチャルパーソナルアシスタントには、他のツール、または、ここで議論したツールに関する変形例を設けてもよい。いくつかのツールが、理解、解釈および推論が可能であるとして以下で説明されているが、いくつかの実施態様において、バーチャルパーソナルアシスタントは、理解態様のみを用いてもよく、および理解の出力を用いて、マルチモデルの解釈および推論を実施してもよい。別法として、いくつかの実施態様において、バーチャルパーソナルアシスタントは、理解および解釈の態様を用いてもよく、および解釈の出力を用いて、マルチモーダルの推論を実施してもよい。
【０１４８】
図１６は、オーディオ分析ツール、具体的には、適応音声認識システム１６００の実施例を示す。適応音声認識システム１６００は、バーチャルパーソナルアシスタントを使用可能な装置が受取ったオーディオ入力の意味解釈を提供するのに用いることができる。実施例の音声認識システム１６００は、記憶された発話モデルを用い、および条件付きの最大尤度変換アプローチを用いて、個々の話し手に適応させる。このアプローチの下で、記憶された発話モデルは、それらのモデルが、個々の話し手の特定の発話パターン（例えば、訛り、抑揚、言葉の癖等）により良く一致することができるように、次第に変換される。くわえて、条件付きの最大尤度変換アプローチを適用することにより、そのシステムが、個々の話し手に対して調節するのに必要な時間を減らすことができる。条件付き線型変換は、比較的少量の話し手依存のトレーニングデータから導き出すことができる。話し手依存のモデルへの変換を適用することは、話し手適応モデルのセットを生成する。話し手適応モデルは、個々の話し手に対する音声認識システムのパフォーマンスを大幅に向上させることができる。さまざまな実施態様において、実施例の音声認識システム１６００は、オーディオ入力から導き出した意味情報を、テキスト１６２５の形式で出力する。このアプローチを用いる音声認識システムは、“Ｍｅｔｈｏｄ  ａｎｄ  Ａｐｐａｒａｔｕｓ  ｆｏｒ  Ｓｐｅｅｃｈ  Ｒｅｃｏｇｎｉｔｉｏｎ  Ａｄａｐｔｅｄ  ｔｏ  ａｎ  Ｉｎｄｉｖｉｄｕａｌ  Ｓｐｅａｋｅｒ”と題する米国特許第５，８６４，８１０号明細書にも記載されており、参照によって、その明細書の全体を本願明細書に組み込むものとする。
【０１４９】
図１６は、話し手適応音声認識システム１６００に含めることができるコンポーネントの一つの実施例を示す。この実施例のシステム１６００は、オーディオ捕捉装置１６０２と、特徴抽出モジュール１６０３と、トレーニングエンジン１６０７と、認識エンジン１６１０と、適応エンジン１６１３と、記憶した話し手の影響を受けないモデルのセット１６１７と、クラスタリングエンジン１６２０と、記憶した話し手適応モデルのセット１６２３と、出力レシーバ１６２５とを含んでいる。いくつかの実施態様において、システム１６００は、記憶した話し手依存モデルのセット１６３０を含んでもよい。図１６のシステム１６００は、適応音声認識システムの単に一つの実施例として示されており、より多くのコンポーネント、より少ないコンポーネント、または異なるコンポーネントを含む変形例も可能である。
【０１５０】
オーディオ捕捉装置１６０２は、オーディオ信号を検出し、記録しおよび送信することができる装置である。オーディオ捕捉装置１６０２は、例えば、マイクロフォンを含んでもよい。いくつかの実施態様において、オーディオ捕捉装置１６０２は、変換エンジン、例えば、アナログ信号をディジタル信号に変換することができるエンジン、または、オーディオ入力信号を、特定のフォーマットで（例えば、磁気テープに）捕捉することができるエンジンを含んでもよい。
【０１５１】
さまざまな実施態様において、オーディオ捕捉装置１６０２は、特徴抽出１６０３のモジュールとともに作動することができる。特徴を抽出することは、オーディオ入力信号を、必ずしもそうではないが、一般的に、同じ期間の複数の時間ウィンドウに分割することを含んでもよい。また、それらの時間ウィンドウは、フレームと呼んでもよい。そして、周波数、ピッチ、トーン等の音響特性を、各時間ウィンドウに対して測定して、各時間ウィンドウ内に存在する特定の言語的特徴を識別することができる。
【０１５２】
さまざまな実施態様において、抽出した特徴は、トレーニングエンジン１６０７に提供することができる。トレーニングエンジン１６０７は、トレーニング段階中に、適応音声認識システム１６００が利用することができる。トレーニング段階中には、典型的には、所定のまたは予め用意されたテキストの形式のトレーニングデータがシステム１６００に入力される。例えば、人のグループは、集団の代表として選択してもよく、また、トレーニング集団と呼んでもよい。その場合、グループ内の各人は、所定の同じテキストをシステム１６００に読み出すことができる。また、トレーニングエンジン１６０７にも、所定のテキストが設けられ、およびオーディオ入力信号から抽出された特徴を、そのテキストで識別された音（ｐｈｏｎｅ）および／または音素と関連付けることができる。
【０１５３】
音素は、言語の意味を区別する最小の構成単位であるが、音は、実際の発話における音素のインスタンスである。音素は、それ自体は物理的セグメントではないが、物理的セグメントの認識抽出またはそれらのカテゴリー化である。「音」は、本願明細書で用いる場合、特に、単一の固有の言語音を表すアルファニューメリックまたは記号表記法を指す場合がある。例えば、“ｓｔｉｃｋ”、“ｂｉｔｔｌｅ”、“ｂｉｔ”および“ｔｉｃｋ”における“ｔ”の発音は、その言葉におけるそれらの位置により、物理的に異なるサウンド（音）を表しているが、英語では同じ音素である。音は、他の音と組合せて、人が話す言語における一つの言葉、または他の言語表現を形成することができる。音は、母音または子音の発音における単一の通常の変形例に対応している場合がある。場合により、文字の組合せが、単一の音（例えば、“ｔｈ”および“ｎｇ”）を生み出す可能性がある。くわえて、アルファベットのうちのいくつかの文字は、異なるコンテキストにおいて異なる音を生み出す（例えば、“ｒａｔ”における短い“ａ”に対して“ｒａｔｅ”における長い“ａ”）。「音素」は、特に、特定の言語の話し手に関して個別の意味を有する音の最小単位を指す場合がある。例えば、“ｓｔｉｃｋ”および“ｔｉｃｋ”における“ｔ”の発音は、この発音が同じ音素と見なされている英語では十分に似ているが、別の言語における“ｔ”の２つの発音は著しい違いがある可能性があり、そのため、２つの異なる音素を構成している可能性がある。したがって、同じ音は、例えば、話し手の母語により、異なる音素特徴を有している可能性がある。音は、音標文字、例えば、アメリカ英語のためのＡｒｐａｂｅｔ、または、その他の言語のための国際音標文字（Ｉｎｔｅｒｎａｔｉｏｎａｌ  Ｐｈｏｎｅｔｉｃ  Ａｌｐｈａｂｅｔ：ＩＰＡ）を用いて表すことができる。
【０１５４】
トレーニングエンジン１６０７によって形成された関連性は、話し手の影響を受けないモデル１６１７に記憶させることができる。話し手の影響を受けないモデル１６１７は、例えば、揮発性メモリに格納されたソフトウェアモジュールおよび／または不揮発性のハードウェア記憶システム内に具体化されたソフトウェアモジュールを含むデータベース型構造に格納することができる。いくつかの実施態様において、話し手の影響を受けないモデル１６１７は、クラスタリングエンジン１６２０により、条件付きモデルのセットにグループ分けすることができる。さまざまな実施態様において、適応音声認識システム１６００等の音声認識システムは、多次元ガウス混合密度を用いて、記憶された認識モデル、例えば、話し手の影響を受けないモデル１６１７において、さまざまな発話状態の確率関数をモデル化することができる。すなわち、そのシステムは、数学的モデルを用いて、入力が特定の発話状態と関連している確率を判断することができる。さまざまな実施態様において、ガウス混合密度は、システムのトレーニング段階中に導き出すことができる。
【０１５５】
ガウス混合密度は、単純なガウス曲線の加重和として記憶されることができる。特定の状態をモデル化するのに用いられる単純なガウス曲線のセットは、「コードブック」と呼ばれる場合が多い。完全条件付き音声認識システムでは、単純なガウス曲線の一つのコードブックは、音声認識システムにおけるすべての発話状態の確率密度関数をモデル化するのに用いられる。さらに、各確率密度関数は、コードブックのガウス曲線に適用できる加重係数のセット関連付けられている可能性がある。完全条件付きでないシステムでは、単純なガウス曲線の独立したコードブックは、そのシステムにおける各独立した発話段階の確率密度関数をモデル化するのに用いられる。部分条件付きシステムは、複数のコードブックを利用し、各コードブックは、関連する発話段階のグループまたは「クラスタ」の確率密度関数をモデル化するのに用いられる。このようなシステムにおいては、同じ変換を、特定のコードブックにおけるすべてのガウス曲線に対して用いることができると仮定する。したがって、このようなシステムは、少量の話し手依存データを用いて、記憶されたガウス曲線のすべてに対しての変換を計算する。さらに、場合により、線型変換を、異なる関連コードブックによって共用することができる。
【０１５６】
さまざまな実施態様において、クラスタリングエンジン１６２０は、同様のガウス曲線を共用する発話状態を識別し、および各クラスタのための個々のコードブックまたは「ジェノン（ｇｅｎｏｎｅ）」を作り出してもよい。それらのコードブックは、関連するクラスタにおける発話状態を推定するのに用いることができるガウス曲線のセットを含むことができる。
【０１５７】
一旦、トレーニング段階が完了すると、適応音声認識システム１６００を作動段階に変えることができる。作動段階中に、（本明細書中では未知の入力信号とも呼ばれる）意図されていないまたは任意のオーディオ入力信号が特徴抽出１６０３のモジュールに供給され、および抽出された特徴は、認識エンジン１６１０および適応エンジン１６１３に供給される。認識エンジン１６１０は、話し手の影響を受けないモデル１６１７を用いて、未知の入力信号を認識する。例えば、認識エンジン１６１０は、発話の影響を受けないモデル１６１７を用いて、特徴データの所定のセットの場合の発話状態に関する最も可能性のある経路を判断することができる。この最も可能性のある経路は、特定の言葉と関連付けてもよい。認識エンジン１６１０は、認識した言葉を、他のシステムがバーチャルパーソナルアシスタントで用いることができるテキスト１６２５として出力することができる。
【０１５８】
システム１６００に入力を供給する話し手は、かなりの頻度で、トレーニング集団の特徴から変化する声の特徴を有している可能性がある。例えば、話し手は、訛りまたは発話の障害を有している可能性がある。したがって、適応音声認識システム１６００は、適応エンジン１６１３を含んでいる。適応エンジン１６１３は、特徴抽出器１６０３によって抽出された特徴と、認識エンジン１６１０によって判断された発話状態とを受け取る。次いで、適応エンジン１６１３は、抽出した特徴と発話状態を比較する。この比較に基づいて、適応エンジン１６１３は、これらの発話状態の場合の確率モデルのための変換のセットを判断する。それらの変換のセットは、特定の話し手の言葉遣いによくフィットすることができる。この人から受取った後、適応エンジン１６１３は、その変換のセットを、話し手の影響を受けないモデルに記憶された発話状態の一部またはすべてに適用して、その結果を話し手適応モデル１６２３として記憶することができる。その後、認識エンジン１６１０は、話し手適応モデル１６２３を用いて、この特定の人の場合の発話状態を判断することができる。
【０１５９】
いくつかの実施態様において、適応エンジン１６１３は、判断を続行して、新たなオーディオ入力が、特定の話し手から受取られた際に変換を適用する。これらの実施態様において、話し手適応モデル１６２３は、特定の話し手の言葉遣いにぴったり一致するモデルに徐々に進化する可能性がある。
【０１６０】
いくつかの実施態様において、適応音声認識システム１６００は、特定の人の言葉遣いに対してトレーニングすることができる。例えば、トレーニング集団の発話特徴と似ていない可能性がある、明確に異なる発話特徴を有する人は、システム１６００に対して所定のテキストを読み取ってもよい。このトレーニングデータから、トレーニングエンジン１６０７は、トレーニングエンジン１６０７が、話し手の影響を受けないモデルを導き出すのと同じ方法で、話し手依存モデルを導き出すことができる。これらの実施態様において、そのシステムは、システム１６００が作動モードになっているときに、話し手依存モデルと、話し手適応モデルを組合せることができる結合エンジン１６３２を含んでいる。このように、話し手依存モデル１６３０は、話し手適応モデル１６２３の認識能力を向上させることができる。
【０１６１】
いくつかの実施態様において、適応音声認識システム１６００は、ここでは図示されていない話し手識別システムと組合せることができる。話し手識別システムは、話し手の影響を受けないモデル１６１７または話し手適応モデル１６２３を適用すべきか否かを、または、話し手適応モデル１６２３の特定のセットを適用すべきか否かをシステム１６００に示すことができる。例えば、話し手識別システムが、言葉遣いがトレーニング集団に近いことが分かっている特定の話し手を認識する場合、その識別システムは、話し手の影響を受けないモデル１６１７をイネーブルにすることができる。別の実施例として、話し手識別システムは、話し手適応モデル１６２３が以前に生成されている話し手を認識することができる。この実施例では、その識別システムは、この識別された話し手に対して、話し手適応モデル１６２３をイネーブルにすることができる。別の実施例として、話し手識別システムは、話している人が新しくかつ未知であることを判断してもよい。この実施例では、その識別システムは、話し手適応をイネーブルにして、新たな話し手適応モデル１６２３を生成させることができる。別法として、この実施例では、その識別システムは、話し手適応をイネーブルにすべきか否かに関して確認を求めてもよい。
【０１６２】
図１７は、ここでは、人の特徴および／または感情状態を、その人から検出されたオーディオ信号から判断するシステム１７００として具体化されている、オーディオ分析ツールの実施例を示す。人の特徴および／または感情状態は、人に応答するシステム、例えば、バーチャルパーソナルアシスタントの「個性」を調節するのに用いることができる。例えば、出力が作成されて、人に提示される方法ならびにその出力のタイミングを調節することができる。くわえて、特徴および／または感情状態は、人の意図を判断する際の要因として用いることができる。例えば、憤慨した口調は、ポジティブまたは嬉しいとさえ解釈できるであろう言葉に変更してもよい。人の特徴および感情状態を判断するシステムは、“Ｍｅｔｈｏｄ  ａｎｄ  Ａｐｐａｒａｔｕｓ  ｆｏｒ  Ｔａｉｌｏｒｉｎｇ  ｔｈｅ  Ｏｕｔｐｕｔ  ｏｆ  ａｎ  Ｉｎｔｅｌｌｉｇｅｎｔ  Ａｕｔｏｍａｔｅｄ  Ａｓｓｉｓｔａｎｔ  ｔｏ  ａ  Ｕｓｅｒ”と題する米国特許第９，２１３，５５８号明細書にも記載されており、参照によって、その明細書の全体を本願明細書に組み込むものとする。
【０１６３】
実施例のシステム１７００は、一般に、一つ以上の特徴抽出器１７０６と、特徴組合せおよび調整モジュール１７１０と、一つ以上の分類器１７１２とを含んでいる。特徴抽出器１７０６は、オーディオ捕捉装置１７０２からオーディオ入力を受け取ることができる。分類器１７１２は、さまざまな特徴１７１４を、他の装置またはシステムが利用できるフォーマットで出力することができる。図１７のシステム１７００は、人の特徴および／または感情状態をオーディオ入力から判断するように構成されたシステムの一つの実施例として示されており、同様のコンポーネント、より少ないコンポーネント、より多いコンポーネント、または、異なるコンポーネントを用いる他のシステムも可能である。
【０１６４】
オーディオ捕捉装置１７０２は、例えば、話し、うめき声、笑い声、および他の人の発声ならびに拍手、手でたたく音、指を鳴らす音等の音、および人が作り出すことができるその他の音を感知して記録することが可能なマイクロフォン等の装置とすることができる。オーディオ捕捉装置１７０２は、捕捉したオーディオ信号を、システム１７００が使用できるフォーマットに変換するように構成することができる。例えば、オーディオ捕捉装置１７０２は、オーディオ信号のアナログ波形またはディジタル表示を生成することができる。
【０１６５】
特徴抽出器１７０６は、オーディオ入力信号から特徴を抽出するように構成された処理装置を用いて実施することができる。自動音声認識および自然言語理解プロセッサ１７０６ａ、持続時間特徴抽出器１７０６ｂ、ピッチ特徴抽出器１７０６ｃ、エネルギ特徴抽出器１７０６ｄおよびケプストラム特徴抽出器１７０６ｎを含む特徴抽出器１７０６のさまざまな実施例が、この実施例において記載されている。さまざまな実施態様において、システム１７００は、ここでは図示されていない他のオーディオ特徴抽出器を含んでいてもよい。さまざまな実施態様において、ここに図示されている実施例の抽出器１７０６は、組合せることができ、複数のモジュールに分けることができ、および／または他のオーディオ関連特徴を抽出することができる。
【０１６６】
自動音声認識および自然言語理解プロセッサ１７０６ａによって抽出される特徴は、自動音声認識結果から抽出することができる。それらの特徴は、例えば、語彙的内容および言語的内容を含んでいる。ｎグラム分類器を語彙的内容に適用して、複数の特徴および感情状態に関する確率分布を生成することができる。ｎグラムは、テキストまたは発話の所定のシーケンスからのｎ個のアイテムから成る連続シーケンスである。それらのアイテムは、音素、音節、文字、言葉または語幹のペアとすることができる。したがって、ｎグラム分類器は、いくつかの言葉が、特定の特徴および／または感情状態に関連している確率を判断することができる。言語的内容は、人の心理状態を大まかに示すことができる。例えば、特定の言葉をポジティブまたはネガティブな感情と関連付けることができる。「意味密度」等の言語的尺度、および特定の話し手の場合のインタラクションセッションでの語長も抽出することができる。
【０１６７】
持続時間特徴抽出器１７０６ｂによって抽出される特徴は、イベントの持続時間に関連し、および言葉と音の時間的整合から抽出することができる。これらの特徴は、例えば、言葉内での中断、予め計算された平均値に対する音の持続時間における増分、システムプロンプトに関する応答を生成する際の待ち時間、特定の単位持続時間（例えば、音持続時間）の確率分布、およびシステム出力を中断する人に関連するタイミング情報を含む。
【０１６８】
ピッチ特徴抽出器１７０６ｃによって抽出される特徴は、人のピッチ偏位を特徴付けている。それらの特徴は、基本周波数（Ｆ０）、または、発話と、関連する自動音声認識との間の人の発話およびアライメントにおけるピッチ輪郭から抽出することができる。これらの特徴は、例えば、発話および言葉内の基本周波数の範囲と、フレーズおよび言葉に沿った基本周波数勾配と、それらの勾配の確率分布と、正規化された基本周波数値の確率分布（この場合、正規化は、平均基本周波数除去の形をとることができる）とを含む。
【０１６９】
エネルギ特徴抽出器１７０６ｄによって抽出される特徴は、ゼロ番目のケプストラム係数等の発話波形のエネルギ関連特性と、短時間エネルギの対数（本願明細書において、以後、単純に「エネルギ」と呼ぶ）と、（例えば、自動音声認識結果からの）時間的整合情報とを含む。これらの特徴は、例えば、言葉およびセンテンス内のエネルギ偏位の範囲と、言葉およびセンテンス内のエネルギの勾配と、正規化されたエネルギの確率分布（この場合、正規化は、特に正規化の形式の中で、すべてのエネルギ値を、センテンス当たりの、または、インタラクション当たりの最大値と呼ぶことを含んでもよい）と、エネルギ勾配の確率分布とを含む。
【０１７０】
ケプストラム特徴抽出器１７０６ｎによって抽出される特徴は、音響モデルを構築するのに用いることができる。それらのモデルは、さまざまな特徴および感情状態を表す発話データをトレーニングすることができ、または、発話データに適応させることができる。それらのモデルは、さまざまなユーザ特徴および状態に関する確率分布を得るのに用いることができる。
【０１７１】
特徴組合せおよび調整モジュール１７１０は、特徴抽出器１７０６によって抽出された特徴を組合せおよび調整するように構成された処理装置として実施することができる。いくつかの実施態様において、複数の特徴は、異なるレベルで組み合わされ、および統計的モデルが、依存性および相関性を説明することを可能にするｊｏｉｎｔ特徴としてモデル化することができる。例えば、特徴の第１のグループは、特定のイベントにおいて、特徴の第２のグループに対して調整することができる。例えば、フラストレーションの場合の良好な韻律的特徴は、発話における（その内在時間長に対して）最長の母音領域から具体的に解釈したピッチ（すなわち、至る所のピッチではなく、むしろユーザが言葉を伸ばしたときのピッチ）である。
【０１７２】
分類器１７１２は、特徴組合せおよび調整モジュール１７１０によって供給された組合せおよび調整済みの特徴に基づいて、人に関する結論を生成するように構成された処理装置を用いて実施することができる。図１７は、年齢分類器１７１２ａ、性別分類器１７１２ｂ、社会経済的分類器１７１２ｃおよび感情分類器１７１２ｎを含むさまざまな分類器１７１２の実施例を示す。年齢分類器１７１２ａは、人の年齢的特徴に関しての結論を出すことができる。その結論は、概略的（例えば、その人は子供である、または、その人は大人である）、または、比較的具体的に（例えば、その人は、２５才から３０才の間である）することができる。性別分類器１７１２ｂは、人の性別に関して結論を出すことができる。社会経済的分類器１７１２ｃは、人の社会経済的グループに関して結論を出すことができる。感情分類器１７１２ｎは、人の現在の感情または情緒的状態に関して結論を出すことができる。
【０１７３】
各分類器１７１２は、年齢特徴１７１４ａ、性別特徴１７１４ｂ、社会経済的特徴１７１４ｃおよび／または感情特徴１７１４ｎ等のそれぞれの特徴を出力する。これらの特徴１７１４は、別のシステムが利用することができるフォーマットで出力してもよい。例えば、特徴１７１４は、プログラムコードによって表すことができ、およびバイナリコードデータとして出力することができる。
【０１７４】
さまざまな実施態様において、特定の種類の分類器を、分類器１７１２内で実施してもよい。例えば、（ユーザ特徴およびユーザ状態に関して確率分布を生成すること等により）特徴および感情状態の分類を実行するために、統計的分類器を実施してトレーニングすることができる。統計的分類器は、持続期間イベント、周波数ならびにピッチ、エネルギ、および視覚的特徴に基づいて分類を実行する際に有用である可能性がある。さまざまな特徴に対する統計的分類器によって生成された確率分布は、特徴および感情状態に関する最終的な推定を得るために組合せることができる。別の実施例として、トレーニングベースの分類器は、主要コンポーネント分析および／または物体もしくはパターン認識結果を、トレーニングしたモデルに一致させるように試みてもよく、この場合、それらのモデルは、所定の特徴および感情状態に対応している。
【０１７５】
図１８は、オーディオ分析ツール、具体的には、音声コマンドアナライザ１８００の実施例を示す。この実施例の音声コマンドアナライザ１８００は、声紋認証システムおよび音声認識システムを含んでいる。さまざまな実施態様において、音声コマンドアナライザ１８００は、声紋認証システムのみを、または、声紋認識システムのみを含んでもよい。図示した実施例の音声コマンドアナライザ１８００は、声紋認証を判断するように構成されたシステムおよび／または音声認識用システムの一つの実施例として設けられ、また、同様のまたは異なるコンポーネントを用いる他の実施例も可能である。音声コマンドアナライザは、２０１６年２月２日に出願された“Ｊｏｉｎｔ  Ｓｐｅａｋｅｒ  Ａｕｔｈｅｎｔｉｃａｔｉｏｎ  ａｎｄ  Ｋｅｙ  Ｐｈｒａｓｅ  Ｉｄｅｎｔｉｆｉｃａｔｉｏｎ”と題する米国特許出願第１５／０１３，５８０号明細書でも議論されており、参照によって、その明細書の全体を本願明細書に組み込むものとする。
【０１７６】
さまざまな実施態様において、音声コマンドアナライザ１８００は、音声認識コンポーネントおよび声紋認証コンポーネントを含むことができる。音声認識コンポーネントは、人の発話のサンプルを考慮して、そのサンプルを分析して、そのサンプルの内容を判断するのに用いることができる。例えば、音声認識コンポーネントは、人が質問をしたか、または、コマンドを出したか否かを判断することができる。声紋認証コンポーネントは、周波数または周波数範囲、ピッチまたはピッチ範囲、調子または音域、持続時間、ボリュームまたはボリューム範囲、音色、ソニックテクスチャー、および／またはそのサンプルが捕捉された箇所に対するそのサンプルの空間的位置等のサンプルの音響特性を得るのに用いることができる。実施例の音声コマンドアナライザ１８００は、同じ入力発話サンプルの内容と、同じ入力発話サンプルのための生態認証データの両方を判断するように構成することができる。
【０１７７】
さまざまな実施態様において、声紋認証情報は、特定の話し手を識別するのに用いることができる。例えば、音声コマンドアナライザ１８００は、声紋認証情報を用いて、入力されたフレーズが、Ｓａｍではなく、Ｊｏｈｎによって話されたことを判断することができる。いくつかの実施態様において、話し手のアイデンティティは、その話し手を確認するのに用いることができる。例えば、話し手のアイデンティティは、その話し手が、特定の命令を出すことを許可されたか否かを判断するのに用いることができる。場合により、声で駆動されるシステムは、特定の人のみが、いくつかの命令（例えば、「マイカーのドアを開錠して」）を出すことを可能にするように構成してもよい。他の場合では、そのシステムは、幅広いカテゴリーの人（例えば、大人のみ）が、いくつかの命令を出すことを可能にするように構成してもよいが、他の命令は、誰かによって出すことができる。大抵の場合、音声コマンドアナライザ１８００は、その命令を含む同じ発話サンプルから、その話し手を識別して確認することができる。音声コマンドアナライザ１８００は、話し手の識別情報とその話し手の入力の内容とを、話し手を確認するように、および／またはその話し手の命令を実行するように構成することができる、他の装置またはシステムに提供することができる。
【０１７８】
さまざまな実施態様において、発話サンプルからの声紋認証情報は、他の目的のために利用することができる。例えば、声紋認証情報は、話し手に関する特徴（例えば、年齢、性別、民族、国籍等）および／または話し手の感情（例えば、怒り、イライラ、夢中、幸せ等）を判断するシステムに供給することができる。話し手の特徴および／または感情状態を判断するシステムは、上述されている。
【０１７９】
さまざまな実施態様において、音声コマンドアナライザ１８００は、単一のモデルを用いて、話し手を識別するとともに、その話し手が何を言ったかを判断することができる。話し手と内容モデルの「ジョイント」または「組合せ」は、人の発話に関して、人固有およびコマンド固有の両方の音響特性をモデル化する。ジョイントの話し手および内容モデルは、例えば、音声モデルまたは特徴ベクトル（ｉ−ｖｅｃｔｏｒ）を用いて実施することができる。ｉ−ｖｅｃｔｏｒは、話し手の発話のコンパクトな表現である。さまざまな実施態様において、短いフレーズ（例えば、２秒から５秒、または、２秒から３秒持続するもの）用のｉ−ｖｅｃｔｏｒは、音声コマンドアナライザ１８００を含む装置が作動している間に、人が話す際に、明確な記録処理中に取得されたか、または、受動的に集められたトレーニングデータから抽出することができる。ｉ−ｖｅｃｔｏｒ抽出は、ｉ−ｖｅｃｔｏｒに含まれているテキスト識別および話し手識別情報の両方をもたらすことができる。ｉ−ｖｅｃｔｏｒは、後に入力された発話入力から抽出された、同様に構成されたｉ−ｖｅｃｔｏｒ間の比較を可能にする。
【０１８０】
発話サンプルの（持続時間に関する）短い性質と、内容および話し手識別のジョイント分析は、リモート話し手モデルへのアクセスを要することなく、本質的にリアルタイム（または、インタラクティブタイム）の内容および話し手判断を可能にする。例えば、装置のユーザは、コマンドを話す前に、（例えば、特定のフレーズを話すことにより）最初に、自分のアイデンティティを確認する必要はない。その代わりに、ユーザは、単に、話し手がコマンドを入力するのを許可されているか否かを確認するのにその装置が利用するであろうコマンドを与えることができる。
【０１８１】
さまざまな実施態様において、音声コマンドアナライザ１８００は、特定の音声入力を、いくつかの動作と関連付けるように構成することもできる。例えば、装置のユーザは、「Ｓｈａｚａｍ！」と言った場合、その装置は自分の車のドアを開錠するが、同じ発話がその人の家の正面玄関は開錠しないことを指定してもよい。別の実施例として、人は、本人が「開けゴマ」と言った場合に、装置が自分の自宅内の酒棚を開錠することを指定してもよい。これらの実施例では、その人の１１才の子供が同じコマンドを話した場合、その装置は、その子供がそれらのコマンドを入力することが許可されていないことを認識するであろう。その装置はさらに、本人以外の誰かが車または酒棚にアクセスしようとしたことをその人に知らせるように構成することができる。
【０１８２】
図１８は、音声コマンドアナライザ１８００の実施態様例を示す。音声コマンドアナライザシステム１８００およびそのコンポーネントは、特定のデザインまたは実施のために要望通りに、ソフトウェアおよび／またはハードウェアのコンピュータ可読モジュール、コンポーネントおよび／またはデータ構造を用いて実施することができる。実施例の音声コマンドアナライザ１８００は、オーディオ捕捉装置１８０２から入力サンプル１８３０を受け取る。オーディオ捕捉装置１８０２は、例えば、音を検出して記録するように構成されているマイクロフォン等の装置とすることができる。さまざまな実施態様において、入力サンプルは、自然言語の形、すなわち、人によって他の人に対して話されるような通常の言語とすることができる。自然言語を含む入力サンプル１８３０は、「音声信号」と呼んでもよい。「自然言語」とは、本願明細書で用いる場合、例えば、キャプチャ（Ｃｏｍｐｌｅｔｅｌｙ  Ａｕｔｏｍａｔｅｄ  Ｐｕｂｌｉｃ  Ｔｕｒｉｎｇ  ｔｅｓｔｓ  ｔｏ  ｔｅｌｌ  Ｃｏｍｐｕｔｅｒｓ  ａｎｄ  Ｈｕｍａｎｓ  Ａｐａｒｔ：ＣＡＰＴＣＨＡ）等のコンピュータ生成コードと区別される人間の話し言葉における、特に、言葉、フレーズ、言語表現および／またはこれらの組合せを指す。
【０１８３】
さまざまな実施態様において、音声コマンドアナライザ１８００は、フロントエンドモジュール１８１２およびバックエンドモジュール１８２０を含んでもよい。この実施例におけるフロントエンドモジュール１８１２は、音声認識器１８１４サブシステムを含む。音声認識器１８１４は、入力サンプル１８３０からの音声セグメントを、音声内容、例えば、音素、音、トライフォンまたは言葉等の音素単位、音声単位または字句単位等と関連付けることができる。「音声セグメント」は、特定の言葉または音を構成する現在の入力サンプル１８３０のすべてまたは一部である。音声セグメントは、オーディオ（音声）信号の「タイムスライス」または「フレーム」と呼んでもよい。
【０１８４】
さまざまな実施態様において、音声コマンドアナライザ１８００は、入力セグメント１８３０からの個々の音声セグメントを、音素または音声の内容と関連付ける。そうする際に、音声コマンドアナライザ１８００は、字句単位（例えば、音素、音、トライフォン、トライフォンシーケンスまたは他の発声）の話し手固有の特徴（例えば、話し手の発音）を捉えることができる。例えば、二人の話し手が、各々、他の非マッチング音声内容内で、「車」という言葉を言った場合で、および一方の話し手にはイギリス訛りがあり、他方の話し手には南部アメリカ訛りがある場合、音声コマンドアナライザ１８００は、両話し手の「車」（トライフォン）という言葉の場合のオーディオ信号を本質的に比較することができる。このようにして、音声コマンドアナライザ１８００は、同様の音声単位に対応するオーディオ信号の一部を比較することにより、二人の話し手を区別し、それにより、より正確にユーザを確認することができる。対照的に、混合ガウスモデル−ユニバーサルバックグラウンドモデルアプローチ等の従来のテキスト依存声紋認証システムは、話し手の比較における音声または音素情報を活用していない。
【０１８５】
したがって、さまざまな実施態様において、フロントエンドモジュール１８１２は、音声サンプルの音声内容または音素内容（例えば、「発話内容」）を、話し手認識分析と統合するように構成してもよい。換言すると、話し手の発話の内容およびアイデンティティは、同時に判断される。他のシステムは、代わりに、発話内容を別々に判断し、その後、話し手識別を判断してもよい。さらに他のシステムは、発話内容と話し手識別を同時に判断するが、別々のプロセスを用いて、後にそれらの結果が組み合わされてもよい。
【０１８６】
さまざまな実施態様において、音声認識器１８１４は、音および／または音素内容を入力サンプル１８３０から抽出する。その場合、その音声認識器は、各音声セグメントの音素または音声内容を、時間的に先行するおよび／または後の音素または音声内容のコンテキストで判断することができるように、入力サンプル１８３０の音声レベル内容を時間的に合わせることができる。これらの実施態様において、音声認識器１８１４は、例えば、言語モデルまたはグラマーを必要としないという点で、部分音声認識器として機能してもよい。さまざまな実施態様において、言語モデルおよびグラマーを含む完全自動音声認識システムは、実施例の音声アナライザ１８１４の代わりに、または、その音声アナライザとともに用いることができる。
【０１８７】
さまざまな実施態様において、その音声認識器は、ニューラルネットワークベースの音響モデル１８１６を含んでもよい。音響モデル１８１６は、入力音声サンプル１８３０から導き出された音響特性を用いて、自動音声認識のためにトレーニングすることができるディープニューラルネットワークを含んでもよい。一旦トレーニングされると、そのディープニューラルネットワークは、入力サンプル１８３０を音声内容と関連付けるのに用いることができる。ディープニューラルネットワークは、ボトルネック特徴１８１７を生成することができる。ボトルネック特徴は、一般に、コンテキスト依存のモノフォン状態を予測するように、既にトレーニングされている多層パーセプトロンによって生成される。ボトルネック特徴は、自動音声認識システムの精度を向上させることができる。
【０１８８】
この実施例における音声認識器１８１４は、ボトルネック特徴１８１７を、入力サンプル１８３０から別々に導き出されるケプストラム特徴１８１８と組合せる。組合されたボトルネック特徴１８１７およびケプストラム特徴１８１８は、バックエンドモジュール１８２０へ供給される、現在の発話１８２４のジョイント話し手および内容モデルを作り出すのに用いることができる。ボトルネック特徴１８１７とケプストラム特徴１８１８の組合せは、話し手識別、および音声またはテキスト識別の両方に用いることができる音声モデル（例えば、ｉ−ｖｅｃｔｏｒ）を生成するのに用いることができる。
【０１８９】
ボトルネック特徴１８１７およびケプストラム特徴１８１８は、統計的発生器１８１９に供給してもよい。統計的発生器１８１９は、検出した特徴の周波数に関連する話し手固有の統計１８３６を生成してもよい。統計的発生器１８１９は、ユニバーサルバックグラウンドモデル（ＵＢＭ）に依存して統計１８３６を生成してもよい。
【０１９０】
現在の音声のモデル１８２４と、入力サンプル１８３０の場合の統計１８３６は、バックエンドモジュール１８２０に供給される。さまざまな実施態様において、バックエンドモジュール１８２０は、ジョイントコマンド／話し手認識器１８２２を含む。コマンド／話し手認識器１８２２は、現在の音声のモデル１８２４と、記憶されたジョイントモデル１８２６とをアナライザ１８２８に入力してもよい。以下でさらに議論するように、アナライザ１８２８は、入力サンプル１８３０の内容を判断し、かつその話し手を識別するように構成してもよい。アナライザ１８２８は、後に、コマンドおよび話し手判断１８３８を出力してもよい。
【０１９１】
記憶されたジョイントモデル１８２６は、トレーニングデータから生成してもよい。さまざまな実施態様において、音声コマンドアナライザ１８００は、音声コマンドアナライザ１８００が、その間にトレーニングデータを収集するトレーニング段階を入力するように構成してもよい。音声コマンドアナライザ１８００は、例えば、未知の話し手を認識するとき、音声コマンドアナライザ１８００をトレーニングすべきであると自動的に判断する別のシステムからのコマンドを受け取るとき、および／または装置のユーザによって起動されるコマンドを受け取るときに、自動的にこの段階を入力してもよい。
【０１９２】
トレーニング段階中、トレーニングデータから導き出された現在の発話のモデル１８２４は、記憶されたジョイントモデル１８２６に記憶させてもよい。トレーニングデータは、人が、その間に、特定のフレーズを話すように要求することができる記録プロセス中に、音声コマンドアナライザ１８００に入力することができる。次いで、トレーニングデータは、その話されたフレーズから生成された入力サンプル１８３０から導き出すことができる。別法として、または追加的に、トレーニングデータは、人が、音声コマンドアナライザ１８００を含む装置を使用している間に、受動的に取得することができる。記憶したジョイントモデル１８２６は、人のトレーニングデータから抽出した内容固有の特徴および話し手固有の特徴（例えば、音響特性）の両方をモデル化することができる。記憶されたジョイントモデル１８２６は、音声モデルと呼んでもよい。
【０１９３】
通常の動作中（すなわち、トレーニングデータを取得していないとき）、バックエンドモジュール１８２０は、記憶されたジョイントモデル１８２６を用いて、入力サンプル１８３０の内容を判断し、および／または話し手のアイデンティティを判断することができる。バックエンドモジュール１８２０は、後に、コマンドおよび話し手判断１８３８を出力してもよい。コマンドおよび話し手判断１８３８は、入力サンプル１８３０の内容、例えば、コマンドまたは質問を含んでもよい。コマンドおよび話し手判断１８３８は、その話し手が未知であるか否かを含む、その話し手のアイデンティティも含んでもよい。コマンドおよび話し手識別１８３８は、この情報を用いるように構成されている他の装置またはシステムに供給してもよい。
【０１９４】
ジョイントコマンドおよび話し手判断１８３８を生成するために、バックエンドモジュール１８２０は、ジョイントコマンドおよび話し手アナライザ１８２８を含んでもよい。アナライザ１８２８は、現在の音声モデル（すなわち、現在の発話１８２４のモデル）と、記憶された音声モデル（例えば、記憶されたジョイントモデル１８２６）との間の類似性を探すことができる。具体的には、アナライザ１８２８は、特定の話し手によって生成される、（例えば、音声またはトライフォンレベルでの）音素内容、音声内容および／または語彙的内容を比較することができる。このことにおいて、アナライザ１８２８は、従来の音響特性のみに依存しない。例えば、コマンド／話し手認識器１８２２は、確率的線形判別分析（ｐｒｏｂａｂｉｌｉｓｔｉｃ  ｌｉｎｅａｒ  ｄｉｓｃｒｉｍｉｎａｎｔ  ａｎａｌｙｓｉｓ：ＰＬＤＡ）を用いて、現在の音声モデルの一つ以上の音声特性または音素特性を、記憶された音声モデルの一つ以上の類似の音声特性または音素特性と比較することができる。
【０１９５】
別の任意のアプローチでは、登録中に、登録すべきコマンドの複数のサンプルを、話し手から集めてもよい。それらのサンプルは、記憶された音声モデルに追加してもよいコマンドモデルを生み出すのに用いることができる。このコマンドモデルのための検出閾値は、各サンプルに対して比較スコアが生成されるように、それらのサンプルの各々を、残りのサンプルから作られたモデルに対して比較することによって決定することができる。その場合、そのコマンドのための閾値は、それら３つのスコアの平均を用いて決定することができる。その閾値は、バイアスによって偏位させてもよく、およびそれらのサンプルに基づいているパラメータのセットによって増減させてもよい。閾値を決めるためのこの実施例のプロセスは、そのシステムが、登録されているコマンドの異なる音声内容により、スコアの変動を考慮することを可能にする。
【０１９６】
図１９は、ビデオ分析ツール、具体的には、視覚情報、例えば、特に顔の表情、ボディランゲージおよびジェスチャーを識別するように構成された視覚検出システム１９００の実施例を示す。さまざまな実施態様において、視覚検出システム１９００は、ビデオ分類システム１９１２と、ビデオイベントモデル１９１４と、ビデオキャプチャ装置１９０２とを含む、複数のコンピュータ化されたモジュールおよびデータ構造を含んでいる。以下でさらに論議するように、ビデオ分類システム１９１２は、ビデオイベントモデル１９１４を展開しおよび用いて、ビデオキャプチャ装置１９０２によって供給された静止画像および動画（例えば、ビデオ）内に描写されている可能性があるシンプルなイベントおよび複雑イベントを識別することができる。場合により、ビデオキャプチャ装置１９０２によって供給される画像はリアルタイムであり、すなわち、それらの画像が捉えられているときに送られる。他の事例では、ビデオキャプチャ装置１９０２によって供給される画像は、予め記録されている。一旦、画像内のイベントまたは複数のイベントが識別されると、ビデオ分類システム１９１２は、バーチャルパーソナルアシスタント内の他のシステムによる利用のためにフォーマット化することができる、識別された複雑イベントの言語記述１９７２を生成することができる。視覚検出システムは、“Ｃｌａｓｓｉｆｉｃａｔｉｏｎ，Ｓｅａｒｃｈ，ａｎｄ  Ｒｅｔｒｉｅｖａｌ  ｏｆ  Ｃｏｍｐｌｅｘ  Ｖｉｄｅｏ  Ｅｖｅｎｔｓ”と題する米国特許第９，２４４，９２４号明細書でも議論されており、参照によって、その明細書の全体を本願明細書に組み込むものとする。
【０１９７】
一般的に、シンプルなイベントは、少数のアトミックなイベント、および／または他の検出した要素、例えば、場面、当事者（例えば、人または他の生き物）、物体、オーディオおよび／またはテキストによって特徴付けることができる。アトミックなイベントは、時間的に局在する傾向があり、および短い記述と関連付けることができる。アトミックなイベントの実例は、顔の表情、例えば、笑顔、しかめっ面、呆れた眼差し等をふくむ。アトミックなイベントの他の実例は、身振り、例えば、指差し、手の振り、肩をすくめること等を含む。
【０１９８】
複雑イベントは、典型的には、関連する数の何らかの方法で既に組合されている異なるアトミックな要素またはコンセプトを含む。例えば、複雑イベントは、複数の画像にわたって時系列的に生じる、または、特に、ビデオの異なる時間的セグメント内で生じる、並列される要素（例えば、それらのイベントは、一緒に、同じフレーム内か、または、ビデオの一連のフレーム内で生じる可能性がある）を含む。複雑イベントのいくつかの実例は、他の人、物体または生き物と関わり合っている一人の当事者または複数の異なる当事者を含むイベント（例えば、コンサート、野球の試合、ドッグショー、動物園へ出かけること、バースデーパーティーまたはダンスリサイタル）を含む。一つの実施例として、「結婚式」は、さまざまなアトミックな動作、例えば、ビデオの最中に、一緒にまたは異なる時刻に行われる可能性がある「ハグ」や「キス」から成る可能性がある。与えられたビデオにおいて、教会風の背景または庭園の場面内で行われている「ハグ」が検出され、「指輪」や「ろうそく」等の物体が検出され、およびオーディオトラック内で、伝統的な結婚式用の音楽が検出された場合、そのビデオは、結婚式を描写している可能性がある。しかし、「人々が跳ねている」のと一緒に行われている「ハグ」が検出され、「ボール」等の物体が検出され、および大きな歓声がオーディオトラック内で検出された場合には、そのビデオは、結婚式ではなく、スポーツイベントに勝利するチームを描写している可能性がある。インテリジェントで自動化された、複雑イベントの検出および分類方法を用いることにより、視覚検出システム１９００は、異なる種類の複雑イベントが、同じアトミックなイベントまたは要素を含み、およびその中に描写されている可能性が最も高い複雑イベントを識別する場合であっても、それらの異なる種類の複雑イベントを区別することができる。
【０１９９】
さまざまな実施態様において、実施例のビデオ分類システム１９１２は、入力された画像内で既に検出されている低次元特徴に基づいて、シンプルなイベントおよび複雑イベントを認識することができる複雑イベント認識エンジン１９５０と、低次元特徴認識を実行することなく、新たな複雑イベント（例えば、以前のビデオイベントモデル１９１４では定義されていなかった複雑イベント）を認識することができるイベントハンドラー１９５８とを含むことができる。
【０２００】
さまざまな実施態様において、複雑イベント認識エンジン１９５０は、特徴認識モジュール１９５２と、意味表現モジュール１９５４と、複雑イベント分類モジュール１９５６とを含む。特徴認識モジュール１９５２は、複数の自動特徴認識アルゴリズムを採用して、入力された画像内の興味のある低次元特徴を検出することができ、および特徴語彙１９６０を働かせて、低次元特徴を認識することができる。「低次元特徴」は、異なるインスタンスの特徴間での著しい空間的変動または時間的変動なしで、特徴的形状および動作を捉えた視覚的特徴を意味する場合がある。いくつかの実施態様においては、静止的な低次元の視覚的特徴および動的な低次元の視覚的特徴の両方が用いられる。静止的な視覚的特徴は、所定の抽出速度（例えば、１画像／秒）で、個別のキー画像から抽出される特徴を含む。静止的な視覚的特徴検出器のいくつかの実例は、ＧＩＳＴ、ＳＩＦＴ（Ｓｃａｌｅ−Ｉｎｖａｒｉａｎｔ  Ｆｅａｔｕｒｅ  Ｔｒａｎｓｆｏｒｍ）およびカラーＳＩＦＴを含む。Ｇｉｓt特徴検出器は、自然性、開放性、粗さ等の知覚的次元を含む、抽象的場面およびレイアウト情報を検出するのに用いることができる。ＳＩＦＴ特徴検出器は、画像スケール、回転、照明のレベル、ノイズ、および視点のわずかな変化を考慮せずに、特定の関心点での画像の状況を検出するのに用いることができる。カラーＳＩＦＴ特徴検出器は、強度、陰影およびシェーディング効果等のカラーキーポイントおよびカラー記述子を含むように、ＳＩＦＴ特徴検出器を拡張させる。
【０２０１】
動的な視覚的特徴は、入力された画像の水平方向、垂直方向および時間（ｘ−ｙ−ｔ）セグメントまたはウィンドウに関して計算される特徴を含む。動的特徴検出器は、当事者の外観、物体、および場面ならびにそれらの動作情報を検出することができる。動的な特徴検出器のいくつかの実例は、ＭｏＳＩＦＴ、ＳＴＩＰ（Ｓｐａｔｉｏ−Ｔｅｍｐｏｒａｌ  Ｉｎｔｅｒｅｓｔ  Ｐｏｉｎｔ）、ＤＦＴ−ＨＯＧ（Ｄｅｎｓｅ  Ｔｒａｊｅｃｔｏｒｙ  ｂａｓｅｄ  Ｈｉｓｔｏｇｒａｍｓ  ｏｆ  Ｏｒｉｅｎｔｅｄ  Ｇｒａｄｉｅｎｔｓ）およびＤＴＦ−ＭＢＨ（Ｄｅｎｓｅ−Ｔｒａｊｅｃｔｏｒｙ  ｂａｓｅｄ  Ｍｏｔｉｏｎ  Ｂｏｕｎｄａｒｙ  Ｈｉｓｔｏｇｒａｍ）を含む。ＭｏＳＩＦＴ特徴検出器は、ＳＩＦＴ特徴検出器を時間次元まで拡張し、および局所的外観および局所的動作情報の両方集めて、少なくとも最小量の動作を含む、入力された画像内の関心点を識別することができる。ＳＴＩＰ特徴検出器は、独立した空間的および時間的尺度値、分離可能なガウス平滑化関数、および空間時間勾配を用いて、各画像点における時空間的二次モーメント行列を算出する。ＤＴＦ−ＨＯＧ特徴検出器は、密なグリッド上の特徴点をサンプリングおよび追跡して、密な軌跡を抽出することにより、ｘ−ｙ−ｔドメイン内の三次元関心点ではなく、経時的な二次元関心点を追跡する。ＨｏＧ（Ｈｉｓｔｏｇｒａｍ  ｏｆ  Ｇｒａｄｉｅｎｔｓ）は、カメラの動きの影響をなくすために、密な軌跡に沿って計算される。ＤＴＦ−ＭＢＨ特徴検出器は、ＭＢＨ記述子を密な軌跡に適用して、物体運動情報を捉える。ＭＢＨ記述子は、オプティカルフローそのものではなく、オプティカルフローの勾配を表す。したがって、ＭＢＨ記述子は、カメラの動きの影響も抑えることができる。しかし、別法としてまたは追加的に、いくつかの実施態様においては、ＨＯＦ（Ｈｉｓｔｏｇｒａｍｓ  ｏｆ  Ｏｐｔｉｃａｌ  Ｆｌｏｗ）を用いてもよい。
【０２０２】
特徴認識モジュール１９５２は、特徴固有語彙１９６０を用いて、特徴種別により、抽出された低レベル特徴を量子化する。いくつかの実施態様において、特徴語彙１９６０またはその一部は、例えば、ｋ−ｍｅａｎｓクラスタリング法を用いて機械学習される。場合により、特徴語彙１９６０は、静的特徴のためのより小さな語彙サイズ（例えば、１０００語）と、動的特徴（例えば、運動）のためのより大きな語彙（例えば、１０，０００語）とを含んでもよい。特徴認識モジュール１９６０は、例えば、ビジュアルワードの頻度ヒストグラムが、複数の入力された画像に関して計算されるＢｏＷ（Ｂａｇ−ｏｆ−Ｗｏｒｄｓ）モデルを用いて、特徴種別により量子化された低レベル特徴を集めてもよい。
【０２０３】
いくつかの実施態様において、意味表現モジュール１９５４は、サポートベクターマシン（Ｓｕｐｐｏｒｔ  Ｖｅｃｔｏｒ  Ｍａｃｈｉｎｅ：ＳＶＭ）分類器等のイベント分類器１９６４を、直接、ＢｏＷ特徴に適用することができ、および複雑イベント分類モジュール１９５４は、さまざまなデータフュージョンストラテジー（例えば、アーリーおよびレイトフュージョン）を用いて、フュージョンした低レベル特徴に基づいて、複雑イベント１９２６を識別する。いくつかの実施態様において、意味表現モジュール１９５４は、低レベル特徴に基づいてコンセプト検出を実行することができ、および複雑イベント分類モジュール１９５６は、検出したコンセプトに基づいて複雑イベントを判断する。より具体的には、意味表現モジュール１９５４は、一つ以上のコンセプト分類器１９６２を用いて低レベル特徴を分析し、およびそこから、上述したように、場面、動作、当事者および物体を含むより高いレベルのコンセプトまたはアトミック要素を表す意味要素１９２８を導き出す。複雑イベント分類モジュール１９５６は、一つ以上のイベント分類器１９６４を意味要素１９２８に適用して、検出された意味要素１９２８と関連がありそうな複雑イベント１９２６を判断することができる。さまざまな実施態様において、コンセプト分類器１９６２および／またはイベント分類器１９６４は、手動で指定してもよくおよび／または機械学習法を用いて導き出してもよい。
【０２０４】
いくつかの実施態様において、ビデオ分類システム１９１２は、より典型的な視覚的特徴（例えば、当事者、物体、場面、動作）に加えて、オーディオ、テキストおよび地理的位置を含む、入力された画像内のさまざまな異なる種類のアトミックなイベントの存在を検出することができる。こうするために、複雑イベント認識エンジン１９５０は、自動音声認識（ＡＳＲ）システム１９６６および／または光学文字認識（ＯＣＲ）システム１９６８とインタフェースをとることができる。例えば、ＡＳＲシステム１９６６は、ビデオのオーディオトラック内に存在する話し言葉を識別して、その話し言葉のテキスト翻訳を複雑イベント認識エンジン１９５０に供給することができる。ＯＣＲシステム１９６８は、ビデオの情景内に存在するテキストを認識して、認識したテキストを複雑イベント認識エンジン１９５０に供給することができる。例えば、ＯＣＲシステム１９６８は、入力された画像内に描写されている服、道路標識または建物に表示された言葉またはフレーズを検出するのに用いることができる。また、複雑イベント認識エンジン１９５０には、入力された画像からは直接的には導き出されない可能性がある非視覚的特徴を与えてもよい。例えば、いくつかの装置は、統合ジオロケーションシステム（例えば、ＧＰＳ（Ｇｌｏｂａｌ  Ｐｏｓｉｔｉｏｎｉｎｇ  Ｓｙｓｔｅｍ）センサ等）および／または地理的位置、動作および／または他のリアルタイムで感知した情報を検出することができるその他のセンサが備えられる。このような装置のためのビデオカメラアプリケーションは、ＧＰＳデータ（または、他のリアルタイムデータ）にアクセスして、それを、画像が形成されたときにその画像と自動的に関連付けることができる。複雑イベント認識エンジン１９５０は、データフュージョン法を用いて、それらの代替的な視覚的特徴および非視覚的特徴を、特徴認識モジュール１９５２によって生成されたより伝統的な視覚的特徴と組合せることができる。このようにして、複雑イベント認識エンジン１９５０は、さまざまな視覚的特徴および非視覚的特徴を利用して、複雑なビデオイベントを識別することができる。
【０２０５】
実施例のビデオイベントモデル１９１４は、まず、特定のイベントを描写することが分かっている画像であるトレーニング画像を用いて展開することができる。新たな画像が、複雑イベント認識エンジン１９５０によって分類される際、ビデオイベントモデル１９１４は、手動または機械学習法のいずれかを介して更新することができる。いくつかの入力された画像は、ビデオイベントモデル１９１４がまだ熟知してはいないイベント（例えば、ビデオイベントモデル１９１４で認識されたトレーニング実例がないイベント）を描写している可能性がある。それらのイベントは、「新規のイベント」と呼んでもよい。イベントハンドラー１９５８は、複雑イベント認識エンジン１９５０によって処理すべき入力画像を要求するのではなく、そのイベントの意味記述に基づいて新規のイベントを分類するか、または、別の方法で明確に定義することができる。このような記述は、注記またはタグ、および／または手動で定義したコンセプトベクターの形式で、人が供給してもよい。シンプルな実施例として、意味概念空間は、各々が、異なる種類の複雑イベントのインジケータになる傾向がある所定の概念を表す複数の次元を含んでもよい。例えば、意味概念空間は、［屋内イベント、屋外イベント、台所、キスする人、動く自動車、目に入る手、フィリングをパンに載せること、クリームを塗ること、障害物を飛び越えること、指差す人］として定義することができる。「サンドイッチを作ること」を描写している入力画像のビューイングに基づいて、上記の実施例を用いて、対応するコンセプトベクターを、［１，０，１，０，０，１，１，１，０，０］として推定することができ、この場合、各二進値は、ビデオ内の概念次元の有無を示す（１＝有り、０＝無し）。いくつかの実施態様において、これらの二進値は、一組の概念の間の意味類似性を計算することによって強化してもよい。例えば、「踊ること」というアトミックな動作は、（例えば、セレモニーの種類により）「結婚式」のインジケータであってもよく、インジケータでなくてもよい。そのため、いくつかの実施態様においては、二進インジケータではなく、多値インジケータを用いてもよい。多値インジケータは、「踊ること」と他の同時に起きているコンセプトの意味類似性に基づいて判断することができる。
【０２０６】
新規のイベントのためのコンセプトベクターは、人によって定義してもよく、または、人によって与えられた情報により、または、記憶データソース１９７０から得られた情報に基づいて、イベントハンドラー１９５８によって生成してもよい。実施例として、人は、釣り旅行に関するビデオを作って、それに「釣り旅行」というタイトルを付けることができる。この情報を用いて、新規イベントハンドラー１９５８は、記憶データソース１９７０に照会して、一般的に釣り旅行と関連のあるコンセプトを識別し、その後、その情報に基づいて、そのビデオの場合のコンセプトベクターを生成することができる。意味概念空間におけるコンセプトベクターとして表される新規イベントの意味記述を用いて、イベントハンドラー１９５８は、その概念空間での意味要素に対する、そのビデオのコンセプトベクターの次元の意味類似性または意味親和性を計算することにより、入力された画像が、特定の複雑イベントを描写しているか否かを判断することができる。これをするために、例えば、ＷＯＲＤＮＥＴまたはＷＩＫＩＰＥＤＩＡ等の記憶データソース１９７０から導き出された、または、ビデオトレーニング実例から計算された、コンセプトの意味親和性マトリクスを用いてもよい。
【０２０７】
実施例のビデオイベントモデル１９１４は、一つ以上のコンピュータがアクセス可能なデータおよび／またはプログラミング構造（例えば、ベクトル、行列、データベース、ルックアップテーブル等）を含むことができ、および一つ以上のインデックス付きのまたは別の方法で検索可能な情報の記憶装置を含んでもよい。ビデオイベントモデル１９１４は、データ、引数、パラメータ、および／またはビデオ分類システム１９１２によって分類される入力画像に適用できるマシンが実行可能なアルゴリズムを含むことができ、または参照することができる。
【０２０８】
実施例のビデオイベントモデル１９１４は、グローバルモデル１９２２およびビデオ固有モデル１９２４を含む。グローバルモデル１９２２は、さまざまな異なる種類の入力画像に適用できる一般的なレベルで、さまざまな種類の複雑イベント１９２６に関する意味情報、およびそれらに関連するアトミックな要素または「コンセプト」１９２８を含むことができる。例えば、意味要素１９２８は、当事者（例えば、人または他の生き物）、場面、動作、物体、オーディオ、テキストおよび地理的位置に関する意味記述を含む。グローバルモデル１９２２は、さまざまな種類の複雑イベント１９２６に対する、意味要素１９２８の各々の判断された証拠的意味のインジケータも維持することができる。いくつかの実施態様において、それらのインジケータは、さまざまな種類の複雑イベント１９２６を描写する複数のトレーニングビデオに適用される機械学習法を用いて、ビデオ分類システム１９１２によって収集される。例えば、「サンドイッチを作っている人」（複雑イベント）を描写しているトレーニングビデオは、「台所」（場面）、「目に入る手」（当事者）、「フィリングをパンに載せること」（動作）および「クリーム状の材料を塗ること」（動作）等の意味要素が、サンドイッチを作る人と関連している可能性が高く、一方、「屋外イベント」（場面）、「動く自動車」（動作）または「ジャンプする人」（動作）等の他のアトミックな要素は、その特定の複雑イベントと関連がない可能性があることを示すことができる。別法として、または追加的に、これらのインジケータのうちの一つ以上を、手動で供給される情報に基づいて展開してもよい。例えば、サンドイッチを作っている誰かのビデオを視ている人は、「パンをスライスすること」（動作）が、サンドイッチを作っている人を示す可能性が高いアトミックな要素であると結論付けることができ、そして、そのインジケータを、手動で、ビデオイベントモデル１９１４に追加することができる。
【０２０９】
ビデオ固有モデル１９２４は、さまざまな複雑イベント１９２６およびそれらの複雑イベントに関連する意味要素１９２８に関する実際のインスタンスまたは発生に関連する情報を含む。すなわち、入力された画像のセットの場合、ビデオ固有モデル１９２４は、種類（例えば、当事者、場面、動作、物体、オーディオ、テキストまたは地理的位置）により入力画像で検出された意味要素１９２８のインスタンスに関する情報と、入力画像で検出された各複雑イベント１９２６に関する情報とを含んでもよい。さらに、ビデオ固有モデル１９２４は、複雑イベントおよび意味要素情報を、そこで画像が発生したそれらの画像の位置と対応付けることができる（例えば、フレーム番号）。いくつかの実施態様において、ビデオ固有モデル１９２４は、意味要素が、入力された画像内に離散的に存在するか、または、存在しないかを示すことができる（例えば、１＝有り、０＝無し）が、他の実施態様においては、可能性のある値の範囲を参照して定義された証拠値（例えば、確率的または統計的可能性または信頼性）を割り当ててもよい。
【０２１０】
いくつかの実施態様において、ビデオイベントモデル１９１４は、さまざまな複雑イベント１９２６および意味要素１９２８を説明するために、人によって一般的に用いられる言葉とフレーズとの関係を示すことができるオントロジー情報を含むことができ、または、オントロジー情報を参照することができる。例えば、ビデオ分類システム１９１２は、ある動作を「パンをスライスすること」と認識するようにプログラムすることができるが、同じビデオを手動でタグ付けする人は、「一切れのパンをスライスすること」というフレーズを用いてもよい。それに応じて、ビデオイベントモデル１９１４は、これらの２つのフレーズが意味の上で類似しているという表示を含んでもよい。同様に、ビデオイベントモデル１９１４は、複雑イベント１９２６および／または意味要素１９２８、それらの特性、およびモデル内での異なる複雑イベント１９２６と意味要素１９２８との関係とに関連する可能性がある異なる言葉およびフレーズの意味を説明する意味情報を含んでもよい。いくつかの実施態様において、ビデオイベントモデル１９１４は、新たな画像が分析される際、新たな複雑イベントが学習される際、および／または新たなユーザフィードバックを受け取った際に、連続的に更新することができる。
【０２１１】
図２０は、人の特徴および／または感情状態を、その人に関する視覚的合図から判断するシステム２０００としてここでは具体化されているビデオ分析ツールの実施例を示す。人の特徴および／または感情状態は、システムの「個性」、例えば、人に応答するバーチャルパーソナルアシスタントを調節するのに用いることができる。例えば、出力が策定されて、人に提示される方法、ならびにその出力のタイミングを調節することができる。また、その特徴および／または感情状態は、人の意図を判断する際の要因として用いることができる。例えば、怒った声の調子は、ポジティブまたは幸せとして別なふうに解釈できるように言葉を変更してもよい。人の特徴および感情状態を判断するシステムは、米国特許第９，２１３，５５８号明細書にも記載されており、その明細書の全体を、参照によって本願明細書に組み込むものとする。
【０２１２】
実施例のシステム２０００は、一般的に、一つ以上の特徴抽出器２００６と、特徴組合せおよび調節モジュール２０１０と、一つ以上の分類器２０１２とを含んでいる。特徴抽出器２００６は、画像捕捉装置２００２から視覚的入力を受け取ることができる。分類器２０１２は、さまざまな特徴２０１４を、他の装置またはシステムが利用できるフォーマットで出力することができる。図２０のシステム２０００は、人の特徴および／または感情状態を視覚的入力から判断するように構成されたシステムの一つの実施例として提示されており、また、同様のコンポーネント、より少ないコンポーネント、より多いコンポーネント、または、異なるコンポーネントを用いる他のシステムも可能である。
【０２１３】
画像捕捉装置２００２は、視覚映像を感知して記録することが可能なカメラ等の装置である。画像捕捉装置２００２は、静止画像（例えば、写真）および／または動画（例えば、ビデオ）を記録することができる。さらに、画像捕捉装置２００２は、捕捉した画像を、システム２０００の残りの部分が利用できるフォーマットに変換することができる。例えば、画像捕捉装置２００２は、静止画像を、ディジタル画像ファイル（例えば、ＴＩＦＦ（Ｔａｇｇｅｄ  Ｉｍａｇｅ  Ｆｉｌｅ  Ｆｏｒｍａｔ）、ＪＰＥＧ（Ｊｏｉｎｔ  Ｐｈｏｔｏｇｒａｐｈｉｃ  Ｅｘｐｅｒｔｓ  Ｇｒｏｕｐ）、ＧＩＦ（Ｇｒａｐｈｉｃ  Ｉｎｔｅｒｃｈａｎｇｅ  Ｆｏｒｍａｔ）、ＰＮＧ（Ｐｏｒｔａｂｌｅ  Ｎｅｔｗｏｒｋ  Ｇｒａｐｈｉｃｓ）ファイル、または、他の何らかの方法を用いてフォーマット化されたファイル）に変換するように構成してもよい。別の実施例として、画像捕捉装置２００２は、ディジタルビデオ、例えば、ＭＰＥＧ（Ｍｏｖｉｎｇ  Ｐｉｃｔｕｒｅ  Ｅｘｐｅｒｔｓ）ビデオまたはＡＶＣ（Ａｄｖａｎｃｅｄ  Ｖｉｄｅｏ  Ｃｏｄｉｎｇ）ビデオを出力するように構成してもよい。
【０２１４】
さまざまな実施態様において、画像捕捉装置２００２は、人および／または人の環境のいくつかの側面を捉えるように構成することができる。例えば、画像捕捉装置２００２は、人の顔、体および／または足の画像を捉えるように構成することができる。別法として、または追加的に、画像捕捉装置２００２は、人の視界内および／または人の背後にある可能性がある領域の画像を捉えるように構成することができる。捉えた画像は、画像データとして特徴抽出器２００６に供給することができる。
【０２１５】
特徴抽出器２００６は、オーディオ入力信号から特徴を抽出するように構成された処理装置を用いて実施することができる。顔検出および特徴抽出器２００６ａ、視線検出および特徴抽出器２００６ｂ、外観特徴抽出器２００６ｃおよび体の動きの特徴抽出器２００６ｎを含む、特徴抽出器２００６のさまざまな実施例が、この実施例において記載されている。さまざまな実施態様において、システム２０００は、ここに図示されていない他の視覚的特徴抽出器を含んでいてもよい。さまざまな実施態様において、ここに図示されている実施例の抽出器２００６は、組合せることができ、複数のモジュールに分けることができ、および／または他のオーディオ関連の特徴を抽出することができる。
【０２１６】
顔検出および特徴抽出器２００６ａにより抽出された特徴は、人の顔の外観ならびに人によって作られた任意の顔の表情を判断するのに用いることができる。これらの特徴は、例えば、顔および／または顔の要素（例えば、口、眉毛、眼、頭等）の特徴、例えば、色、形状、肌合い、位置、方向、動き等を含む。また、これらの特徴は、例えば、色、形状、および人の髪の質感（または、その不足）、人が着用する頭部用衣装（例えば、帽子、スカーフ等）、顔用衣装（例えば、眼鏡、サングラス、マスク、ヒジャブ）およびフェイシャルジュエリー（例えば、イヤリング、鼻用リング等）を含んでもよい。いくつかの実施態様において、この情報は、人の顔を検出して、その顔領域に対して主成分分析（ｐｒｉｎｃｉｐａｌ  ｃｏｍｐｏｎｅｎｔ  ａｎａｌｙｓｉｓ：ＰＣＡ）を実行することによって抽出することができる。いくつかの実施態様においては、それらの特徴のうちのいくつかに関する時間成分を抽出してもよい。
【０２１７】
注視検出および特徴検出器２００６ｂにより抽出された特徴は、人が見ている場所を判断するのに用いることができる。この情報は、人がどのくらいシステムまたはシステムの出力に対して注意しているかを判断するのに用いることができる。別法として、または追加的に、この情報は、人が見ている物体を識別するのに用いることができる。抽出された特徴は、例えば、その人は、システムのディスプレイを見ているか否か、その人がディスプレイを見るのに費やす時間の割合はどれくらいか、その人が注目しているのはディスプレイのどの部分か、所望の注目領域に人がどのくらい注目しているか、およびその人が所望の注目領域を見るのに費やす時間の割合はどれくらいかを含む。また、抽出された特徴は、例えば、特定の言葉を話しているとき（例えば、「あれは何ですか」）に、人が見ている方向と、その人の視界内にある可能性があるとして検出された物体を含むことができる。
【０２１８】
外観特徴検出器２００６ｃによって抽出された特徴は、背景、職業、現在の活動（例えば、水泳中、睡眠中）または感情状態（例えば、混乱）の判断を実行するのに用いることができる。抽出された特徴は、例えば、人の顔の下の領域（例えば、首や胸の領域、下部胴体または足）に関するデータを含む。服の選択、その服が着用されるスタイル、および特定のジュエリー（例えば、宗教的なジュエリー）の存在を含むこの領域の外観は、その人を特徴付けるのを支援するのに用いることができる。この領域での外観パターンは、形状、色および肌合いの特徴を集めて、統計的パターン認識法を適用することによって抽出することができる。外観特徴抽出器２００６ｃによって抽出された特徴は、（ユーザの社会経済学的グループと強く関連がある可能性がある）ユーザの履物のスタイルおよびコンディションをさらに含むことができる。この領域での外観パターンは、形状、色および肌合いの特徴を集めて、統計的パターン認識法を適用することによって抽出することができる。
【０２１９】
体の動きの特徴抽出器２００６ｎによって抽出される特徴は、例えば、時間の関数としての、人の頭、腕、手、脚および足のポーズまたは動作を含む。この情報は、例えば、特に、人が動揺しているか、または、落ち着いているか、人が同意または相違を示しているか、人が指差ししているか否か、および場合により、人が指差ししているものも、および人の現在の活動（例えば、ウォーキング中、座っている）を判断するのに用いることができる。
【０２２０】
特徴組合せおよび調節モジュール２０１０は、特徴抽出器２００６によって抽出される特徴を組合せて調節するように構成された処理装置として実施することができる。いくつかの実施態様においては、複数の特徴が、異なるレベルで組み合わされ、および統計的モデルが依存性および相関性を説明することを可能にするジョイント特徴としてモデル化することができる。例えば、特徴の第１のグループは、特定のイベントにおいて、特徴の第２のグループに対して調節することができる。例えば、イライラの場合の良好な韻律的特徴は、発話における（その内在時間長に対する）最長の母音領域から具体的に測定したピッチ（すなわち、至る所のピッチではなく、ユーザが言葉を伸ばしたときのピッチ）である。
【０２２１】
分類器２０１２は、特徴組合せおよび調節モジュール２０１０によって与えられた組合せで調節した特徴に基づいて、人に関する結論を生成するように構成された処理装置を用いて実施することができる。図２０は、年齢分類器２０１２ａと、性別分類器２０１２ｂと、社会経済学的分類器２０１２ｃと、感情分類器２０１２ｎとを含む分類器２０１２のさまざまな実施例を示す。年齢分類器２０１２ａは、人の年齢的特徴に関する結論を出すことができる。その結論は、概略的（例えば、その人は子供である、または、その人は大人である）、または、比較的具体的（その人は、年齢が２５才から３０才の間である）にすることができる。性別分類器２０１２ｂは、人の性別に関して結論を出すことができる。その結論は、「男性」または「女性」のように単純でなくてもよく、また、一部の子供の場合にも当てはまるように、「トランスジェンダー」または「不明」を含んでもよい。社会経済学的分類器２０１２ｃは、人の社会経済学的グループに関する結論を出すことができる。感情分類器２０１２ｎは、人の現在の感情的または情緒的状態に関して結論を出すことができる。
【０２２２】
各分類器２０１２は、それぞれの特徴、例えば、年齢特徴２０１４ａ、性別特徴２０１４ｂ、社会経済学的特徴２０１４ｃおよび／または感情特徴２０１４ｎを出力する。特徴２０１４は、別のシステムが利用できるフォーマットで出力することができる。例えば、特徴２０１４は、プログラムコードで表すことができ、およびバイナリコードデータとして出力することができる。
【０２２３】
さまざまな実施態様において、特定の種類の分類器は、分類器２０１２内で実施することができる。例えば、統計的分類器を実施して、（例えば、ユーザ特徴およびユーザ状態に関して確率分布を生成することにより）特徴および感情状態の分類を実行するようにトレーニングすることができる。統計的分類器は、イベントの持続時間、周波数およびピッチ、エネルギ、ならびに視覚的特徴に基づいて分類を実行する際に有用である可能性がある。さまざまな特徴の場合の統計的分類器によって生成された確率分布は、組合せて、特徴および感情状態に関する最終的な推定を得ることができる。別の実施例として、トレーニングベースの分類器は、主成分分析および／または物体またはパターン認識結果を、トレーニングしたモデルに対応付けようとすることができ、この場合、それらのモデルは、定義された特徴および感情状態に対応している。
【０２２４】
図２１は、ビデオ分析ツール、具体的には、虹彩認証を判断するのに用いることができる虹彩プロセッサ２１００の実施例を示す。さまざまな実施態様において、虹彩プロセッサ２１００は、プリプロセッサ２１１０と、符号化プロセッサ２１３０と、マッチングプロセッサ２１４０とを含む。虹彩プロセッサ２１００は、場合により、より大きな画像から抽出された虹彩画像２１０４を受け取ることができる。虹彩画像２１０４（または、より大きな画像）は、ビデオキャプチャ装置２１０２によって生成することができる。虹彩プロセッサ２１００は、リモートまたはローカルのデータベースから判断された、一致した虹彩２１６０を出力することができる。
【０２２５】
さまざまな実施態様において、虹彩画像２１０４は、虹彩と瞳孔が少なくとも部分的に見える状態の少なくとも一方の眼を含む。さまざまな実施態様において、虹彩プロセッサ２１００は、虹彩画像２１０４内で捉えられた眼と、ローカルまたはリモートのデータベースに格納された画像を一致させようと試みることができる。さまざまな実施態様において、虹彩画像２１０４は、虹彩画像２１０４と、格納されている画像との間のハミング距離を用いて、格納されている画像と比較される。いくつかの実施態様において、虹彩画像２１０４は、赤外線画像である。いくつかの実施態様において、虹彩画像２１０４は、通常の可視光スペクトルで、すなわち、赤・緑・青（ＲＧＢ）画像として生成される。
【０２２６】
虹彩画像２１０４は、虹彩の完全な画像でなくてもよく、また、虹彩／瞳孔および虹彩／強膜の可変コントラスト、小さな瞼開口、および／または非正面の虹彩提示を有してもよい。プリプロセッサ２１１０は、虹彩画像２１０４内の虹彩をセグメント化して一般化し、そして、明確に輪郭が描かれた虹彩境界および合成されたある程度正面の提示を有する修正した虹彩画像を出力することができる。例えば、虹彩画像２１０４内の虹彩が、左、右、上方または下方に向かって回転された場合、プリプロセッサ２１１０は、虹彩が、直接、前面に位置していたかのように、虹彩画像２１０４上にその虹彩を合成することができる。同様に、前面に位置している瞳孔は、虹彩画像２１０４の傾斜したまたは回転された瞳孔上に合成することができる。
【０２２７】
符号化プロセッサ２１３０は、プリプロセッサ２１１０によって生成された虹彩画像からの虹彩情報を分析して符号化することができる。虹彩画像２１０４は、解像度、品質および／または焦点の状態が変化する可能性がある。そのため、符号化プロセッサ２１３０は、虹彩画像２１０４に含まれている構造的虹彩情報を確実に表示できるように、一定の空間規模で虹彩情報を符号化することができる。その結果生じる符号の情報内容は、虹彩画像２１０４の特性により変化するであろう。符号化プロセッサ２１３０によって生成される虹彩画像２１０４の符号は、マッチングプロセッサ２１４０による虹彩コードアライメントを容易にするために、空間的補間を実行することができる。
【０２２８】
マッチングプロセッサ２１４０は、符号化プロセッサ２１３０によって生成されたコードを、記憶されている虹彩コードテンプレートに整合させることができる。マッチングプロセッサ２１４０は、符号化プロセッサ２１３０によって生成されたコードの推定残留歪みを用いて、このアライメントを実行することができる。いくつかの実施態様においては、「バレルシフト」アルゴリズムを採用して、そのアライメントを実行してもよい。場合により、プリプロセッサ２１１０による正規化は不十分である可能性がある。これらの場合、マッチングプロセッサ２１０４は、アライメントプロセスに制約を適用することによって補正してもよい。すべての場合において、マッチングプロセス２１０４は、構造的一致を登録することができ、および整列コードを比較して、一致が存在するか否かを判断することができる。一致が見付かった場合、マッチングプロセッサは、一致した虹彩データ２１６０を返す。さまざまな実施態様において、虹彩データ２１６０は、バーチャルパーソナルアシスタント内の他のシステムが利用してもよい。
【０２２９】
図２１に示すように、さまざまな実施態様において、プリプロセッサ２１１０は、虹彩画像２１０４を受け取って、修正した虹彩画像２１０６を出力する。修正した虹彩画像２１０６は、制御されていない捕捉シナリオ、例えば、周囲照明状況、変化した照明配置、縮小した瞼開口領域、提示角度（傾斜度）、または、理想画像からの他の変動を補正することができる。さまざまな実施態様において、プリプロセッサ２１１０は、マッチングプロセッサ２１４０によって用いられるマッチングアルゴリズムに適合するように、修正した虹彩２１０６を調整することができる。さまざまな実施態様において、プリプロセッサ２１１０は、区分モジュール２１１２および補正モジュール２１２０を含む。
【０２３０】
区分モジュール２１１２は、瞳孔と虹彩の低コントラストの境界に対して、入力された虹彩画像２１０４を補正することができる。区分モジュール２１１２によって生成された画像は、さらなる補正のために、補正モジュール２１２０に供給することができる。さまざまな実施態様において、区分モジュール２１１２は、エッジ検出モジュール２１１４と、瞳孔区分モジュール２１１６と、虹彩区分モジュール２１１８とを含む。エッジ検出モジュール２１１４は、瞳孔と虹彩の境界を検出するのに用いることができる。瞳孔区分モジュール２１１６は、瞳孔境界領域を計算することができ、および瞳孔境界領域内に黒色の人工瞳孔を挿入することができる。また、瞳孔区分モジュール２１１６は、斜めの虹彩および瞳孔を円形になるように歪めてもよい。虹彩区分モジュール２１１８は、虹彩境界を計算することができる。虹彩区分モジュール２１１８はさらに、例えば、虹彩画像２１０４を生成するカメラのオートフォーカス設定値から導き出された幅広い推定値を用いて、虹彩の直径を正規化することができる。
【０２３１】
さまざまな実施態様において、補正モジュール２１２０は、チルト補正モジュール２１２２および角膜補正モジュール２１２４を含むことができる。チルト補正モジュール２１２２は、虹彩画像２１０４が斜角で捕捉された画像（例えば、人が下または横を見ている）を修正することができる。チルト補正モジュール２１２２は、カメラ方向に対する虹彩の傾斜角を推定することにより、チルト補正画像を生成することができる。角膜補正モジュール２１２４は、角膜、および虹彩がそれを介して撮像される前眼房の光学的影響によって引き起こされた虹彩画像２１０４内の歪みを補正することができる。２つの構造にはともに、虹彩と接触する水で満たされた単一の平凸レンズの光学的影響がある。斜角から見ると、このようなレンズは、虹彩画像２１０４内に非対称歪みを生成し、いくつかの領域内の画像を圧縮して、他の領域では画像を拡張するであろう。角膜補正モジュール２１２４は、この歪みを補正することができる。
【０２３２】
さまざまな実施態様において、符号化プロセッサ２１３０は、調整モジュール２１３２を含む。調整モジュール２１３２は、修正した虹彩画像２１０６を、極性虹彩画像２１３４に変換することができる。極性虹彩画像２１３４は、瞳孔境界が上部に現れ、虹彩と強膜の境界領域が底部に現れるように方向付けすることができる。場合により、上方の瞼および／またはまつ毛が、極性虹彩画像２１３４内に見える可能性があり、場合により、虹彩を部分的に遮る可能性もある。
【０２３３】
修正した虹彩画像２１０６を極性虹彩画像２１３４に変換した後、極性虹彩画像２１３４は、抽出モジュール２１３６に供給される。その抽出モジュールは、極性虹彩画像２１３４をフィルタリングおよびサブサンプリングして、虹彩の多重解像度虹彩コード２１０８表現を生成することができる。さまざまな実施態様において、抽出モジュール２１３６は、一連のバンドパスフィルタを介して虹彩画像を流して、フィルタリングされた画像のセットを生成することができる。
【０２３４】
さまざまな実施態様において、マッチングプロセッサ２１４０は、アライメントモジュール２１４２およびフロー推定モジュール２１４４を備えている。符号化プロセッサ２１３０によって生成された虹彩コード２１０８は、アライメントモジュール２１４２に供給される。アライメントモジュール２１４２は、以下で説明するマッチングアルゴリズムに基づいて、虹彩コード２１０８に対するさまざまなアライメントを実行することができる。アライメントモジュール２１４２はさらに、虹彩コード２１０８をフロー推定モジュール２１４４へ供給して、推定されたフローベクトルを生成し、マッチングの際に援助することができる。アライメントモジュール２１４２は、虹彩コード２１０８を、データベース２１４８からの格納されている虹彩コード２１４６と比較して、一致が存在するか否かを判断する。一致が存在しない場合には、データベース２１４８からのより多くの虹彩コードが虹彩コード２１０８と比較される。一致スコアが判断され、および一致スコアが、所定の閾値を満たすか、または、所定の閾値以下である場合、一致は存在する。いくつかの実施態様においては、ハミング距離が一致スコアとして用いられる。一致した虹彩データ２１６０は、マッチングプロセッサ２１４０によって戻される。いくつかの実施態様において、フロー推定は、未知の虹彩コード２１０８および格納されている虹彩コード２１４６から導き出された情報に適用される。この情報は、それ自体が虹彩コード２１０８の一部であってもよく、そうでなくてもよい。結果として生じる、フロー推定モジュール２１４４からのフローフィールドは、マッチングプロセッサ２１４０が、一致スコア２１５０を生成するために、参照虹彩コードに対して照合される修正済みの虹彩コードを生成するのに用いられる。
【０２３５】
二進法のコンテキストでは、例えば、虹彩コードを比較する場合、ハミング距離は、２つの二値画像間で異なるビット数を計算するための排他的論理和（ＸＯＲ）演算に基づいてバイナリ距離を表す。いくつかの実施態様において、アライメントモジュール２１４２は、虹彩コードに対してＤａｕｇｍａｎバレルシフトを実行する、すなわち、比較される虹彩コード間の最良の一致をもたらす虹彩コード回転を見つけ出す。いくつかの実施態様において、マッチングプロセッサ２１４０によって採用されたマッチングアルゴリズムは、バレルシフト位置の各セットの場合のハミング距離を用い、および最低のハミング距離を、それらのコードのペアのためのスコアとして利用する修正アルゴリズムである。スコアが（コードによって表された、推定された数の統計的自由度に基づいて調整することができる）ある閾値未満である場合、その未知のコードは、一致であると見なされる。ハミング距離がその閾値を超える場合は、その未知のコードは、インポスターの標識が付けられる。いくつかの実施態様において、閾値は、虹彩コード構造の詳細に、およびマッチングシナリオの統計的要件に依存する。
【０２３６】
アライメントモジュール２１４２によって採用された修正アルゴリズムは、比較されている虹彩コードをバレルシフトし、また、虹彩コードを互いに局所的に整合させて、非補正光学歪みまたは虹彩の膨張および収縮の複雑性による虹彩画像正規化における不正確さを補正する。アライメントモジュール２１４２によって実行されるローカルアライメント機能は、虹彩の全域で均一ではない、入力された虹彩画像における歪みを補正することを可能にしている。このことは、コードのローカル領域をシフトして、それらのローカル領域を、参照コードの対応する領域とのより正確なアライメント状態にすることによって実現される。このプロセスが、非常に小さな推定領域を用いて実行される場合、実質的には、どの虹彩コードも、他のどの虹彩コードとも一致させられる可能性があり、このことは、結果的に間違った一致を生じるであろう。
【０２３７】
この間違ったマッチング問題は、推定フローフィールドに対して、適切な滑らかさの条件を課すことによって回避することができる。例えば、フローフィールドが、比較的大きな推定領域を用いて局所変換推定を実行することによって推定される場合には、ローカルフロー推定が、この比較的大きな領域に関する平均運動を表すであろう。このような領域が重なって、その結果、隣接する位置の場合のフローベクトルを計算するのに用いられる領域が、かなりの同じ内容を含む場合には、変位推定値が位置とともに徐々に変化し、および間違ったマッチングが防止されるであろう。別法として、小さな推定領域を用いて行われた局所変位推定値は、空間フィルタリングによって平滑化して、局所変位の急激な変化を推定することができる。さらなる代替例として、低次多項式または打切りフーリエ級数等のグローバルパラメトリック表現を用いることができ、このパラメトリック表現のパラメータは、局所推定値を直接推定し、または、局所推定にフィットする。このようなパラメトリック表現は、ローカルシフトの速すぎる変化が起きることを抑止する固有の平滑特性を有している。アライメントモジュール２１４２はさらに、例えば、各虹彩コードが、複数の周波数帯域を含んでいるため、虹彩コード２１０４と、格納されている虹彩コード２１４６との各比較の場合の複数の一致スコアを生成する。
【０２３８】
上記の図１６から図２１は、オーディオおよび画像入力をさまざまな方法で分析するシステムの実施例を提供している。これらのシステムは、言葉、感情、生体認証、ジェスチャー等を含む、オーディオおよび画像内の可能性のある異なる意味を判断することができる。人の会話は、この方法で、個別の成分に変換することができるが、実際には、人は、互いに理解し合うために、情報の組合せに依存している。例えば、人は、ある話題に興味を示す言葉を話す可能性があるが、その人の顔の表情は、無関心を示している可能性がある。また、人の会話は動的である可能性もあり、また、人の意図および感情状態は、会話の最中に変化する可能性がある。例えば、ある会話者は、別の会話者が言うことやすることに基づいて動揺する可能性があり、または、冷静になる可能性がある。
【０２３９】
さまざまな実施態様において、バーチャルパーソナルアシスタントは、人のやりとりに関する動的性質を考慮することができるマルチモーダルの多時期システムを含むことができる。マルチモーダルシステムは、行動合図または「マーカー」のやりとりの時系列を認識することができ、および言語および非言語のコミュニケーションの相対的有意性を考慮することができる動的モデルを含むことができる。動的モデルは、行動合図の本質および／または強度を検出する際の言語入力（例えば、発話）に加えて、さまざまな異なる非言語入力、例えば、視線、ジェスチャー、発話の速度、話しの調子および音の大きさ、顔の表情、頭部の姿勢、身体の姿勢、パラ言語および／またはその他を考慮することができる。さらに、そのモデルは、複数の時間粒度にわたって行動合図を考慮することができる。例えば、そのモデルは、短期間の時間尺度にわたるやりとりに含まれるさまざまな個人の言語および／または非言語行動（例えば、瞬間的に行われる個人の行動またはイベント）、中期間の時間尺度にわたるやりとりに含まれるさまざまな個人の言語および／または非言語行動（例えば、数秒またはそれ以上続く挨拶の儀式）および／または長期間の時間尺度にわたるやりとりに含まれるさまざまな個人の言語および／または非言語行動（例えば、数分またはそれ以上続く、やりとりのより長いセグメントまたはやりとり全体）を考慮することができる。
【０２４０】
図２２は、やりとりアシスタント２２１０の実施例を示す。やりとりアシスタント２２１０は、言語入力２２３０および非言語入力２２２８の両方を分析して解釈するように構成することができ、およびそれらの入力から、その入力を与えた人によって表現される可能性があるさまざまな種類の言語および／または非言語の行動合図２２３２を識別するように構成することができる。さまざまな実施態様において、言語入力２２３０および非言語入力２２２８は、上述したさまざまな分析ツールおよび入力フォーマットツールによって与えることができる。したがって、言語入力２２３０および非言語入力２２２８は、例えば、特に、自動音声認識システムによって供給されたテキスト、発話から検出された感情の描写、音声生態認証の描写、画像内で認識された物体および／または顔の描写、画像内で検出された感情および／またはボディランゲージの描写、虹彩認証の記述、タイプ入力されたテキスト、グラフィックユーザインタフェースを介して入力されたコマンド、および／またはタッチスクリーンジェスチャーを含むことができる。これらの入力の各々は、モード、または、モードの組合せとして説明することができる。やりとりアシスタントを含むマルチモーダルシステムは、“Ｍｕｌｔｉ−Ｍｏｄａｌ  Ｍｏｄｅｌｉｎｇ  ｏｆ  Ｔｅｍｐｏｒａｌ  Ｉｎｔｅｒａｃｔｉｏｎ  Ｓｅｑｕｅｎｃｅｓ”と題する米国特許出願公開第２０１４／０２１２８５４号明細書でも議論されており、参照によって、その明細書の全体を本願明細書に組み込むものとする。
【０２４１】
「合図」と言う用語は、本願明細書で用いる場合、一般的には、内的刺激および／または外的刺激に対する人の反応、例えば、人の行動的、感情的または認知的状態に関する表現的または伝達的インジケータ、および／またはバーチャルパーソナルアシスタントとの人のやりとりの間に生じる異なる段階、セグメントまたは推移に関するインジケータを意味する。例えば、人がアイコンタクトを行ったことを暗示することは、友好的なやりとりを示す可能性があるが、人が視線をそらしていることを暗示することは、そのやりとりの一部の間での退屈または注意散漫を示している可能性がある。同様に、握手の後のアイコンタクトを伴う一連の合図は、挨拶の儀式がちょうど行われたこと、または、そのやりとりが、そのひと続きのことが起きる時間間隔（例えば、最初の数秒または数分後）により、完結しそうであることを示している可能性がある。
【０２４２】
実施例のやりとりアシスタント２２１０は、一つ以上の異なる時間尺度にわたるその行動合図２２３２の分析に基づいて、そのやりとりの間、やりとりにおいておよび／またはやりとりの後に、多くの異なる方法で、バーチャルパーソナルアシスタントの人とのやりとりの本質および／または有効性を評価することができる。別法として、または追加的に、やりとりアシスタント２２１０は、行動合図２２３２を用いて、やりとりの間の人の認知的および／または感情的状態、ならびに、人の状態が時間とともに変化したか否か、およびどのように変化したかを評価することができる。やりとりアシスタント２２１０は、複数の異なる時間尺度を用いて、異なる行動合図２２３２の相対的有意性を、やりとりの異なるセグメントという観点で、すなわち、（他の関係者によって表現された行動合図を含む）他の行動合図と比較して、および／またはそのやりとりの全持続時間に対する、合図が行われた時間間隔の観点で評価することができる。これらおよびその他の分析および評価は、やりとりアシスタント２２１０により、「同時進行で」（例えば、やりとりが起きている間に、または、「リアルタイム」で）および／またはそのやりとりが終わった後に実行することができる。
【０２４３】
一般的に、人とバーチャルパーソナルアシスタントを可能にする装置とのやりとりは、言語および非言語の伝達のやりとりの形態で行うことができる。場合により、そのやりとりは、互いにやりとりする複数の人と、バーチャルパーソナルアシスタントが関係してもよい。そのやりとりは、関係者のすべてが同じ地理的位置にいるか否かに関係なく行われる可能性がある。例えば、関係者のうちの１人以上は、テレビ会議、ウェブカメラ、ソフトウェアアプリケーションを介しておよび／または他の何らかの方法で、そのやりとりに関わってもよい。
【０２４４】
さまざまな実施態様において、やりとりアシスタント２２１０は、マルチモーダル特徴アナライザ２２１２、やりとりモデラー２２１４、やりとりモデル２２１６、一つ以上のアプリケーションモジュール２２１８および一つ以上の特徴分類器２２５２を含む、複数のコンピュータ化されたモジュールおよびデータ構造として実施することができる。マルチモーダル特徴アナライザ２２１２は、特徴分類器２２５２を、非言語入力２２２８および言語入力２２３０に適用して、それから、やりとりの間に人が表現した行動合図２２３２を識別することができる。いくつかの実施態様において、特徴分類器２２５２は、例えば、入力“ｘ”を取得して、複数の既知のサンプルを用いて分類器上で実行される「トレーニング」に基づいて、ｘが既知の特徴と似ている数学的可能性を判断する統計的アルゴリズムまたは確率的アルゴリズムを含む。十分に高い信頼度で、入力ｘの場合の一致が見付かると、そのデータストリームに、一致したデータに対応する記述によって注釈または標識が付けられる。いくつかの実施態様において、分類器２２５２のうちの一つ以上は、以下でさらに説明するように、多くの時間尺度にわたって、行動合図２２３２を検出するように構成することができる。同様の種類の分類器および／または他の分類器を、顔の表情および／または他の行動合図２２３２を認識するのに用いてもよい。
【０２４５】
実施例のマルチモーダル特徴アナライザ２２１２は、特に、ポーズ認識装置２２４０、ジェスチャー認識装置２２４２、音声特徴認識装置２２４４、注視アナライザ２２４６、顔特徴認識装置２２４８および自動音声認識システム２２５０を含む複数のサブモジュールまたはサブシステムを含むことができる。これらのサブモジュールは、異なる種類のマルチモーダルデータのストリームを処理して、その中で描写されているか、または、それによって表現されている低レベル特徴を認識することができる。このような処理は、さまざまなサブモジュールまたはサブシステムによって並行して（例えば、複数の様式にわたって同時に）または連続的に、および他とは無関係に、または一体的に行ってもよい。例えば、マルチモーダルデータの分析に、アーリーおよび／またはレイトフュージョン法を用いてもよい。一般的に、アーリーフュージョン法は、まず、データのマルチモーダルストリームを一緒にフュージョンした後、フュージョンしたストリームに注釈または標識を適用するが、レイトフュージョン法は、まず、注釈または標識を、別々のデータのストリーム（例えば、発話、身体の姿勢）に適用した後、注釈が付けられたストリームを一緒にフュージョンする。
【０２４６】
人の身体の姿勢、頭部の姿勢および／またはジェスチャーが分析される実施態様において、ポーズ認識装置２２４０およびジェスチャー認識装置２２４２は、深度、骨格トレースおよび／または画像分析ツールによって生成された他の入力（例えば、頭部、腕、肩、足等のｘ−ｙ−ｚ座標）を処理し、それから低レベル特徴を抽出し、およびポーズおよびジェスチャー分類器（例えば、サポートベクターマシン（ＳＶＭ）分類器）およびそれに対するマッチングアルゴリズム（例えば、正規化相関、動的時間伸縮法等）を適用して、入力２２２８、入力２２３０が表している可能性が高いポーズまたはジェスチャーを判断することができる。このようなポーズまたはジェスチャーのいくつかの実例は、前方に傾けた頭部、横に傾けた頭部、折り畳んだ腕、突き出した手、立っている姿勢、顔に手を当てること、手を振ること、腕を振ること等を含む。いくつかの実施態様において、ポーズ認識装置２２４０は、これらおよび他の方法を同様に用いて、体の姿勢がどのように見えるか、例えば、「ポジティブ」、「ネガティブ」または「中立」に見えるか否かに関して、それらの体の姿勢を分類することができる。
【０２４７】
一つ以上の関係者の声の特徴（例えば、非音声特徴、および／または声のピッチ、発話の調子、エネルギレベル等のパラ言語、およびＯｐｅｎＥａｒｓ特徴）が分析される実施態様において、音声特徴認識装置２２４４は、入力２２２８、入力２２３０からの音、言語および／または音響特徴を抽出して分類することができる。いくつかの実施態様において、音声認識アルゴリズムは、メル周波数ケプストラム係数を用いて、特定の声の特徴の話し手を識別することができる。言語認識アルゴリズムは、シフト型デルタケプストラム係数および／または他の種類の変換（例えば、ケプストラムプラスデルタ、ＰｒｏＰｏｌ５次多項式変換、次元削減、ベクトル量子化等）を用いて、声の特徴を分析することができる。声の特徴を分類するために、ＳＶＭおよび／または他のモデリング法（例えば、ＧＭＭ−ＵＢＭ固有チャネル、ユークリッド距離メトリック等）を用いてもよい。いくつかの実施態様において、複数のモデリングアプローチの組合せを用いてもよく、その結果は、例えば、ロジスティック回帰較正を用いて、組合せてフュージョンされる。このようにして、音声特徴認識装置２２４４は、例えば、興奮、混乱、フラストレーション、幸せ、冷静、動揺等の暗示を含む声の合図を認識することができる。
【０２４８】
１人以上の関係者の視線が分析される実施態様において、注視アナライザ２２４６は、例えば、目の焦点、視線の持続時間、視線の位置、および／または瞳孔散大に関連する非言語入力２２２８を考慮することができる。このような入力は、例えば、人のビデオクリップから入手することができ、または、人のビデオクリップから導き出すことができる。いくつかの実施態様においては、人の視線の対象の意味内容を分析してもよい。一般に、視線追跡システムは、例えば、眼を照らして、瞳孔の位置から反射させる赤外線を用いて、人の眼の動きおよびその人の視線の焦点をモニタして記録する。注視アナライザ２２４６は、これらおよびその他の方法を用いて、例えば、退屈、混乱、対象との関わり、注意散漫、理解等を示す合図２２３２を判断することができる。
【０２４９】
人の顔の表情、頭部または顔の姿勢、および／または顔の特徴が分析される実施態様において、顔の特徴認識装置２２４８は、画像データから得られた非言語入力２２２８を、単独で、または、ジャイロスコープおよび／または加速度計または同様のシステムを含むシステムから得られるような動作および／または運動入力と組み合わせて分析することができる。いくつかの実施態様において、低および中レベルの顔の特徴が、入力２２２８、入力２２３０から抽出されて、顔の特徴分類器２２５２を用いて分類される。このことから、顔の特徴認識装置２２４８は、例えば、笑顔、つり上げた眉毛、しかめっ面等を検出することができる。以下でさらに説明するように、いくつかの実施態様において、顔の表情の情報は、顔の姿勢、体の姿勢、発話の調子、および／または関係者の感情状態、例えば、怒り、混乱、嫌悪、恐怖、幸福、悲しみまたは驚きのしるしを導き出すための他の入力とともにまとめることができる。
【０２５０】
ＡＳＲシステム２２５０は、言語入力２２３０における話し言葉および／またはフレーズを識別することができ、また、いくつかの実施態様においては、言語入力２２３０をテキスト形式に変換することができる。やりとりアシスタント２２１０とともに使用する場合、ＡＳＲシステム２２５０は、以下で説明する自然言語理解（ｎａｔｕｒａｌ  ｌａｎｇｕａｇｅ  ｕｎｄｅｒｓｔａｎｄ：ＮＬＵ）システム２２６２による処理の後に、やりとりの本質または有効性を示す可能性がある言語合図を生成することができる。例えば、「すみません」のような言葉は、やりとりが上手くいっていないこと、または、話し手が、そのやりとりをポジティブな状態に戻そうとしていることを示すことができ、一方、「素晴らしい」のような言葉は、そのやりとりが上手くいっていることを示すことができる。
【０２５１】
やりとりモデラー２２１４は、やりとりの過程で捉えられた言語入力２２３０および／または非言語入力２２２８から集められた行動合図２２３２に基づいて、やりとりの動的モデル、すなわち、やりとりモデル２２１６を展開することができる。そのモデルは、やりとりが時間とともに進展する際に、人のやりとりの非静的本質を説明できるという点で「動的」である。さらに、実施例のやりとりモデラー２２１４は、やりとりの間に表現された合図の特徴または顕著なパターンが明言されているか否かに関わらず、「データ駆動型」アプローチを適用して、それらの合図の特徴または顕著なパターンを「学習」または「見つけ出す」ことができる。実施例のやりとりモデラー２２１４の「ボトムアップ」アプローチは、そのやりとりに参加している特定の人に対してコンテキスト化およびカスタマイズすることができるように、やりとりモデル２２１６を展開できるようになっている。例えば、発見的ルールベースのシステムは、視線をそらすことを注意力散漫のインジケータとして常に特徴付けるであろうが、このような行動は、少なくとも特定のやりとりの文脈において、ある人においては熟慮を示し、または、他の人では注意散漫を示している可能性がある。人の行動の解釈におけるこれらの種類のより微細な区別は、やりとりモデル２２１６を用いて、やりとりモデラー２２１４によって明らかにすることができる。
【０２５２】
やりとりモデラー２２１４は、やりとりが時間とともに進展する際に、一連のスナップショット的観察としてではなく、そのやりとりの文脈内で、そのやりとりのモデリングを可能にすることができる。こうするために、実施例のやりとりモデラー２２１４は、バーチャルパーソナルアシスタントによって捉えたマルチモーダルデータの時間的ダイナミクスをモデル化することができる方法を適用することができる。さまざまな実施態様においては、条件付き確率場（Ｃｏｎｄｉｔｉｏｎａｌ  Ｒａｎｄｏｍ  Ｆｉｅｌｄｓ：ＣＲＦ）等の識別モデリング法を用いることができる。いくつかの実施態様においては、（隠れマルコフモデル（Ｈｉｄｄｅｎ  Ｍａｒｋｏｖ  Ｍｏｄｅｌ：ＨＭＭ）等の）生成モデル、または、識別モデルと生成モデルの組合せを、やりとりの特定の態様をモデル化するのに用いてもよい。例えば、いくつかの実施態様において、ＨＭＭは、やりとりの変化点（例えば、対話の変化、または、やりとりの段階の始まりまたは終わり）を識別するのに用いることができ、一方、ＣＲＦは、ＨＭＭによって識別されたやりとりのセグメント中の非静止的な行動合図を捉えて分析するのに用いることができる。
【０２５３】
やりとりモデラー２２１４は、ＣＲＦおよび／または他の方法を適用して、一つ以上のやりとりの時系列を認識することができ、それらの時系列の各々は、やりとりの間に行われる行動合図２２３２のパターンを含むことができる。「やりとりの時系列」は、やりとりの間のある時間間隔にわたって、人によって表現された行動合図２２３２の任意のパターンまたはシーケンスを指し、それは、やりとりアシスタント２２１０によって捉えられて認識される。換言すると、やりとりの時系列は、やりとりの過程で、バーチャルパーソナルアシスタントによって捉えられた低レベル特徴のパターンまたはシーケンスの「写し」として考えることができる。一つのやりとりの時系列が、一人の関係者の行動合図を含み、および別の時系列が、同時に行われる別の関係者の行動合図を含む可能性があるように、異なるやりとりの時系列が、同時にまたは重なって生じる可能性がある。
【０２５４】
いくつかの実施態様において、やりとりモデラー２２１４は、複数の時間尺度にわたって、やりとりの時系列を認識し、および注釈または標識を付けることができ、この場合、時間尺度は、そのサイズを、そのやりとりの他の時間間隔のサイズと比較することができる時間間隔によって定義される。さらに、いくつかの実施態様において、やりとりモデラー２２１４は、複数のモダリティにわたる行動合図２２３２間の関連、相関性および／または関係と、行動合図２２３２の時間的ダイナミクスとを、各モダリティを別々に分析するのではなく、まとめて学習することができる。したがって、やりとりモデラー２２１４は、さまざまな時点で、およびやりとりの異なる時系列にわたって、異なるマルチモーダルデータの組合せに基づいて、人の行動状態の評価を導き出すことができる。
【０２５５】
実施例のやりとりモデラー２２１４は、行動合図２２３２のやりとりの時系列を分析することができる、影響アナライザ２２６０、自然言語理解（ＮＬＵ）システム２２６２、時間的ダイナミクスアナライザ２２６４、人間相互間のダイナミクスアナライザ２２６６およびコンテキストアナライザ２２６８を含む、複数の異なる行動モデリングサブモジュールまたはサブシステムを含むことができる。これらのアナライザは、ＣＲＦおよび／または他のモデリング法によって明らかにすることができる、さまざまな行動合図２２３２間の関係および依存性を、さまざまな異なる方法で評価することができる。それらの分析の結果として、やりとりの時系列の各々は、やりとりの時系列を説明するか、または、解釈する一つ以上のラベルで注釈を付けることができる。例えば、特徴分類器２２５２は、「笑顔」、「しかめっ面」、「握手」等の低レベルまたは中レベルのラベルを生成することができるのに対して、やりとりモデラー２２１４は、「挨拶の儀式」、「修復段階」、「閉会の行事」、「友好的」、「動揺」、「退屈」、「混乱」等の高レベルの分類ラベルまたは解釈ラベルをマルチモーダルデータに適用することができ、および／または「成功」、「失敗」、「ポジティブ」、「ネガティブ」等の評価ラベルまたは評価を評価することができる。このような注釈は、やりとりモデル２２１６に格納することができ、および／または別の方法で、入力２２２８、入力２２３０から導き出された対応する行動合図２２３２およびやりとりの時系列と、例えばメタタグとして関連付けてもよい。
【０２５６】
影響アナライザ２２６０は、やりとりの時系列中に生じる行動合図２２３２のさまざまな組合せを分析することができる。例えば、影響アナライザ２２６０は、一緒に行われる行動合図２２３２のさまざまな組合せ、例えば、頭部の姿勢、顔の表情、言語内容、ならびにそれらの相互関係を考慮して、関係者の可能性の高い行動的、感情的または認知的状態を判断することができる。さまざまな実施態様において、このような判断は、別々に行われた個々の合図ではなく、合図のまとめた組合せに基づかせることができる。実施例の影響アナライザ２２６０は、異なる種類の行動合図２２３２の各々における時間変動を経時的に分析することもできる。場合により、影響アナライザ２２６０は、行動合図２２３２を、「中立の」リファレンス（例えば、重心）と比較する。このようにして、影響アナライザ２２６０は、自発的な行動を説明することができ、および行動合図２２３２の強度の変化を検出することができる。
【０２５７】
ＮＬＵシステム２２６２は、ＡＳＲシステム２２５０によって既に処理されている言語入力２２３０の言語内容を構文解析し、意味的に分析し、および解釈することができる。換言すると、ＮＬＵシステム２２６２は、ＡＳＲシステム２２５０によって生成された言葉および／またはフレーズを分析し、やりとりに関係している関係者またはその他の者によって話された前の言葉またはフレーズを考慮して、その話し手が意図している可能性が最も高い意味を判断することができる。例えば、ＮＬＵシステム２２６２は、言語コンテキストに基づいて、複数の考えられる定義を有する言葉（例えば、「ポップ」という言葉は、その文脈により、何かが破裂したことを意味する可能性があり、または、炭酸飲料を指す可能性があり、あるいは、人のニックネームである可能性もある）の意図された意味を判断することができる。
【０２５８】
影響アナライザ２２６０および／またはＮＬＵシステム２２６２は、マルチモーダルデータに注釈を付けることができ、そのような注釈は、一つ以上のやりとりの時系列の文脈における分析のために、時間アナライザ２２６４、人間相互間アナライザ２２６６およびコンテキストアナライザ２２６８が利用することができる。すなわち、アナライザ２２６４、２２６６、２２６８の各々またはいずれかは、非言語の合図および言語内容の時間的パターンを分析することができる。例えば、一人の関係者の言語内容が、やりとりの始めにおいて、「すみません」という言葉を含み、および「素晴らしい」という言葉を、そのやりとりの終わりに含んでいる場合、アナライザ２２６４によって実行された時間的分析の結果は、「素晴らしい」が、やりとり初期に生じ、「すみません」が後に生じた場合とは異なる可能性がある。同様に、しかめっ面が後に続く初期の笑顔は、アナライザ２２６４により、笑顔が後に続く初期のしかめっ面とは異なって解釈される可能性がある。
【０２５９】
時間的ダイナミクスアナライザ２２６４は、行動合図２２３２のパターンを分析して、人の行動または「状態」（例えば、ある時点で捉えられた行動合図の組合せ）が、時間とともにどのように変化したかを判断することができる。このようにするために、時間的ダイナミクスアナライザ２２６４は、やりとりの時系列を検査して、時系列の後の方で生じる行動合図２２３２を、以前に生じた行動合図と比較することができる。時間的ダイナミクスアナライザ２２６４は、行動合図が、他の時間間隔と関連して生じる時間間隔を考慮することもできる。したがって、時間的ダイナミクスアナライザ２２６４は、例えば、関係者が、時間とともに、イライラしてきているように見えるか否か、または、次第にやりとりに関与しだしているか否かを明らかにすることができる。
【０２６０】
人間相互間のダイナミクスアナライザ２２６６は、行動合図２２３２のパターンを分析して、人の行動または「状態」が、バーチャルパーソナルアシスタントの挙動に応答してどのように変化するかを判断することができる。このようにするために、人間相互間のダイナミクスアナライザ２２６６は、行動合図２２３２の時系列を考慮することができる。例えば、やりとりの時系列は、バーチャルパーソナルアシスタントによる冷静な応答が後に続き、人による笑顔が後に続く、しかめっ面および緊張した身体姿勢を含んでもよい。行動合図のこのパターンから、人間相互間のダイナミクスアナライザ２２６６は、例えば、バーチャルパーソナルアシスタントの応答を、やりとり全体としての本質または有効性への影響に関して重要であると識別することができる。
【０２６１】
コンテキストアナライザ２２６８は、行動合図２２３２のパターンを分析して、やりとりの全体の文脈が、人の行動にどのように影響を与えるかを判断することができる。換言すると、コンテキストアナライザ２２６８は、異なる時間尺度にわたって、例えば、短期間および長期間の時間的セグメントの両方にわたって生じるやりとりの時系列を考慮することができる。「時間間隔」が、一般的に、イベントまたは状態間の任意の時間の長さ、または、その間に何かが存在する時間間隔、またはその間に何かが続く時間間隔を指すのに対して、時間尺度または時間粒度は、少なくとも一つの他の時間尺度と関連する、イベントまたは出来事の構成によって定義することができる、持続時間のある相対的な尺度を含意する。例えば、時間尺度が「秒」である場合、時間間隔は、１秒、５秒、３０秒等になるであろう。同様に、時間尺度が「分」である場合、時間間隔は、１分、１０分等になる。その結果として、コンテキストアナライザ２２６８は、１分または２分しか続かないやりとりに対しては、しかめっ面をより重要であると考えるが、１０分以上続くやりとりに対しては、それほど重要ではないと考えることができる。
【０２６２】
いくつかの実施態様において、コンテキストアナライザ２２６８によって用いられる時間尺度は、予め定義しなくてもよく、または固定しなくてもよいが（例えば、分または秒）、動的にしてもよく、および行動合図２２３２自体から導き出してもよい。すなわち、時間尺度は、必然的に、感知したデータに由来してもよい。場合により、時間尺度は、やりとりの時系列のうちの一つ以上に対応してもよい。例えば、やりとりの始めにおけるやりとりの時系列は、一人の関係者による笑顔と握手であって、別の関係者による笑顔と頷きが後に続き、両関係者が座っている笑顔と握手とを含んでもよい。やりとりの別の時系列は、最初の時系列の行動合図と、一つ以上の後の行動合図によって示される、やりとりの変化点まで続く他の行動合図とを含んでもよい（例えば、関係者は、しばらくの間座っていた後に、立ち上がる）。これらの実施例においては、笑顔は、やりとりの最初の時系列に対しては、重要性を有している可能性があるが、やりとりの第２の時系列の行動合図と合わせて考えた場合、やりとり全体に対しては、あまり重要性がない可能性がある。実施例として、やりとりモデラー２２１４は、やりとりの最初の時系列から、これは、二人の人の好意的なミーティングであるように見えるということを検出することができる。しかし、やりとりの最初の時系列の時間尺度を、やりとりの第２の時系列の時間尺度と比較して考慮した場合、やりとりモデラー２２１４は、そのやりとりは楽しいが、本質的には専門的であり、友人同士のざっくばらんなミーティングとは対照的なビジネスのミーティングを示していると判断することができる。
【０２６３】
いくつかの実施態様においては、やりとりのコンテキストに関する他のインジケータを、コンテキストアナライザ２２６８によって考慮してもよい。例えば、バーチャルパーソナルアシスタントは、やりとりが屋内または屋外で行われているかを示すデータ、または、そのやりとりの地理的位置を識別するデータを提供してもよい。このようなインジケータは、ビデオクリップから導き出すことができ、または、コンピュータ制御の位置測定システム（例えば、セルラーシステムまたは全地球測位システム（ＧＰＳ））および／またはその他の装置から得ることができる。コンテキストアナライザ２２６８は、これらの入力を考慮することができ、およびそれらの入力を行動合図２２３２の解釈に分解することができる。例えば、真面目な顔の表情は、やりとりが、屋外のパーティーでではなく、重役会議室で行われる場合、やりとりモデラー２２１４により異なって解釈される可能性がある。別の実施例として、そのシステムが話している間に、行動合図２２３２のいくつかが、人が視線をそらしていることを示している場合、コンテキストアナライザ２２６８は、他の行動合図２２３２および／または他のデータを分析して、その人が退屈により視線をそらした可能性があるのか（例えば、そのシステムが、数分間、同じ話題に関して話し続けている場合）、または、注意散漫で視線をそらした可能性があるのか（例えば、別の人がその部屋に入ってきた等の、カメラから離れた所で何かが起きた）否かを判断することができる。
【０２６４】
実施例のやりとりモデル２２１６は、やりとりおよびそのコンテキストに関する空間時間ダイナミクスを表し、およびモデル化するグラフィカルモデルを含むことができる。やりとりモデル２２１６は、隠れ状態を用いて、やりとりの非定常状態をモデル化することができる。やりとりモデル２２１６は、一つ以上のコンピュータがアクセス可能なデータ構造、引数、パラメータおよび／またはプログラミング構造（例えば、ベクトル、行列、データベース、ルックアップテーブル等）を用いて実施することができ、また、情報に関する一つ以上のインデックス付きの、または、他の検索可能な記憶装置を含むことができる。実施例のやりとりモデル２２１６は、行動合図２２３２、やりとりの時系列、およびやりとりモデラー２２１４によってモデル化されるやりとりに関連するデータ、ならびにイベント、評価、および合図２２３２から導き出される意味構造、やりとりの時系列および以下でさらに説明するようなやりとりに関連するデータを格納するためのデータストア２２７０、２２７２、２２７４、２２７６、２２７８、２２８０を含む。やりとりモデル２２１６は、さまざまな合図２２３２と、シーケンス２２７２と、やりとりとの間の関係および／または依存性を示すデータを維持することもできる。
【０２６５】
イベントデータ２２７６は、さまざまな行動合図およびやりとりの時系列に関する人が理解可能な特徴または解釈（例えば、意味論的意味）を含むことができる。例えば、笑顔や握手を含むやりとりの時系列は、「挨拶の儀式」のイベントを示すことができるが、大声や腕を振ることを含むやりとりの時系列は、「興奮している人」のイベントを示すことができる。同様に、イベントデータは、いくつかの行動合図を「本物の笑顔」として、およびその他を「神経質な笑み」として特徴付けることができる。イベントデータ２２７６は、短期のやりとりの時系列（「マーカー」ともいう）および長期の時系列の識別子を含むことができる。例えば、マーカーは、「アイコンタクト」であってもよいが、長期イベントは、「友好的な遭遇」としてもよいであろう。
【０２６６】
評価データ２２７８は、やりとりの時系列から導き出される、やりとり全体のおよび／またはその一部の本質または有効性の暗示を含むことができる。例えば、やりとりの本質は、「ビジネスライク」または「ざっくばらん」であってもよいが、その有効性は、「成功」または「失敗」、「ポジティブ」または「ネガティブ」、「十分」または「不十分」とすることができる。意味構造２２８０は、パターン、関係、および／または異なるイベントと、やりとりの時系列から導き出される評価との関連を含む。したがって、意味構造２２８０は、「楽しい会話は、笑顔と頷きを含む」または「手を脇に付けているのは、リラックスした状態を示している」等の文を作成するのに用いてもよい。実際には、意味構造２２８０は、以下でさらに説明するように、やりとりのための学習ルールを展開するのに用いてもよい。
【０２６７】
やりとりモデル２２１６は、その中に格納された評価、意味構造および／またはその他の情報を、さまざまな用途のために、一つ以上のアプリケーションモジュール２２１８に対してアクセス可能にすることができる。アプリケーションモジュール２２１８のいくつかの実施例は、提案モジュール２２９０、対話モジュール２２９２、予測モジュール２２９４、説明モジュール２２９６および学習ルールモジュール２２９８を含む。いくつかの実施態様において、モジュール２２１８は、（例えば、同じ「アプリ」の一部として）やりとりアシスタント２２１０と一体化してもよい。他の実施形態では、アプリケーションモジュール２２１８のうちの一つ以上を、一つ以上の電子通信ネットワークを介してやりとりアシスタント２２１０とインタフェースをとる独立したアプリケーション（例えば、第三者のアプリケーション）として具体化してもよい。
【０２６８】
実施例の提案モジュール２２９０は、やりとりモデル２２１６から得られたデータを評価することができ、およびやりとりの最中および／または後に、バーチャルパーソナルアシスタントおよび／またはその他（例えば、リサーチャーおよび他の人の観察者）を用いて、人に提示することができる提案を生成する。こうするために、提案モジュール２２９０は、合図、イベントおよび／または評価のパターンを、格納されているテンプレートおよび／またはルールと比較することができる。実施例として、提案モジュール２２９０は、一連の行動合図をテンプレートと比較し、それに基づいて、人が、自分の眼鏡を外すこと、または、より好意的に見えるように、自分のボディランゲージを調整することを提案してもよい。提案モジュール２２９０によって生成された提案は、さまざまな異なる方法で、例えば、テキストメッセージ、非テキストの電子信号（警告音またはブザー等）、および／または（マシンが生成した自然言語または予め記録された人の声のメッセージを含んでもよい）音声対話等で、関係者および／または他者に伝えることができる。
【０２６９】
実施例の対話モジュール２２９２は、やりとりモデル２２１６から得られたデータを、人と、バーチャルパーソナルアシスタントが使用可能な装置との間の対話の文脈で評価することができる。バーチャルパーソナルアシスタントにおいては、以下でさらに議論するように、ユーザの対話入力は、ＡＳＲシステムおよびＮＬＵシステムによって処理されて解釈され、そして、推論モジュールは、現在の状態およびその対話の流れをモニタして、自動推論法を適用して、ユーザの入力に対してどのように応答するかを判断する。推論モジュールは、情報探索および検索エンジンとインタフェースをとって、その対話内でユーザが要求した情報を得ることができる。自然言語発生器は、自然言語応答を生成し、それは、その後、ユーザに（例えば、テキストまたはオーディオ形式で）提示される。
【０２７０】
実施例の対話モジュール２２９２は、やりとりデータ（例えば、合図、イベント、評価等）を用いて、人の関係者によって、そのモジュールに提示される対話の部分をどのように解釈し、および／または対話の部分に対してどのように応答するかを判断することができる。例えば、対話モジュール２２９２は、やりとりの評価を用いて、人の発言が、真剣な情報要求としてではなく、ユーモアとして意図されていること、およびそのため、返答に含むための確かな情報の探索は必要ないことを判断することができる。別の実施例として、対話モジュール２２９２は、非言語合図から集められたイベントまたは評価データを用いて、その応答を調整することができる。例えば、データに基づいて、その人が混乱しているか、またはイライラしていると思われる場合、対話モジュール２２９２は、異なる言葉を選択して、その返答で用いてもよく、または、その対話出力を、よりゆっくりと提示してもよく、または、その情報のグラフィック表示を、その返答に含んでもよい。いくつかの実施態様において、対話モジュール２２９２は、複数の時間尺度からの情報を利用して、より建設的な方法で、対話を進めることを試みてもよい。例えば、シーケンス２２７２が、ユーザが対話の最初の方で提示された情報には満足している様子だったが、今は、イライラして来ているようである場合、対話モジュール２２９２は、場合により、ユーザが、対話セッションを小休止することを可能にすることにより、または、最初の方でユーザからポジティブな反応を生じさせたと思われる、その最初の方でユーザに提示された情報を再提示することによって、その対話を快適な状態に戻すことを試みてもよい。
【０２７１】
実施例の予測モジュール２２９４は、提案モジュール２２９０と同様の方法で作動することができる。例えば、予測モジュール２２９４は、イベントデータ２２７６のパターン、評価データ２２７８等を、格納されているテンプレートおよび／またはルールと比較することができる。しかし、予測モジュール２２９４は、このことを行って、やりとりの後の方で起きる可能性の高い合図またはイベントを判断する。例えば、予測モジュール２２９４は、そのシステムが、数分以上、特定の一連の合図を続けた場合、その人が起き上って部屋から出て行く可能性が高いと判断することができる。予測モジュール２２９４によって生成されたこのような予測は、やりとりの最中および／またはやりとりの後に、何らかの適切な形式（例えば、テキスト、オーディオ等）で、その人および／または他者に提示することができる。
【０２７２】
実施例の説明モジュール２２９６は、やりとりと関連している一つ以上の評価の人が理解できる説明を生成することができる。すなわち、ある評価は、やりとりアシスタント２２１０によって出された、あるやりとりまたはそのセグメントに関する何らかの結論を示しているが、その説明は、一般に、その結論が出された理由の説明を含んでいる。換言すると、その説明は、典型的には、評価に関する人が理解できるバージョンと、その裏付けとなる根拠とを含む。例えば、あるやりとりの評価が「ポジティブ」である場合、その説明は、「どちらのユーザもアイコンタクトを行い、笑顔を作り、頷いたため、これは、ポジティブなやりとりだ」等のフレーズを含んでもよい。いくつかの実施態様において、説明モジュール２２９６によって生成された説明は、詳述を含み、または、詳述と呼んでもよい。
【０２７３】
実施例の学習ルールモジュール２２９８は、意味構造２２８０に基づいて、ルールを生成することができる。このようなルールは、ヒューリスティックに基づくのではなく、やりとりの間に集められた実際のデータから導き出すことができる。このような学習ルールのいくつかの実例は、「この人の興奮状態に応答して冷静に話すことは、その人をさらに興奮させる（または、興奮を鎮める）であろう」または「握手の後にハグすることは、この人の挨拶の儀式の一部である」を含む。このような学習ルールは、例えば、やりとりモデル２２１６を更新するのに用いてもよい。学習ルールの他の用途は、（例えば、何種類かのやりとりのための、または、特定の話題または人のタイプを含むやりとりのためのフィールドガイドまたはマニュアルを開発するための）トレーニングおよびコーチング用途を含む。
【０２７４】
一般に、やりとりモデラー２２１４およびアプリケーションモジュール２２１８をやりとりモデル２２１６に接続している双方向矢印は、それらの間の動的な関係を示すことが意図されている。例えば、やりとりモデル２２１６は、アプリケーションモジュール２２１８のうちの一つ以上から得られたユーザフィードバックに基づいて更新することができる。同様に、やりとりモデル２２１６に対するアップデートは、やりとりモデラー２２１４によって用いられるアルゴリズム、パラメータ、引数等を変更するのに用いることができる。さらに、アプリケーションモジュール２２１８によって生成することができる何らかの情報または出力に関して、このようなデータは、後の使用のためであってもよく、または、別法として、または、バーチャルパーソナルアシスタントが使用可能な装置を用いる人に提示されるのに加えて、（例えば、ネットワークを通じて）他のアプリケーションに伝達してもよい。
【０２７５】
ＩＩＩ．  会話システム
上述したようなやりとりアシスタントは、一つ以上のオントロジーにより、対話の過程でどのように反応するかを判断するのを支援されてもよい。例えば、やりとりアシスタントは、オントロジーを用いて、提案を判断し、対話を作成し、および／またはやりとりがどのように進む可能性があるかを予測するのを助けることができる。上述したように、オントロジーは、情報を整理してまとめるフレームワークである。さまざまな実施態様において、バーチャルパーソナルアシスタントは、コンテキスト固有のフレームワーク、例えば、ドメイン固有のオントロジーを含んでもよい。
【０２７６】
さまざまな実施態様において、バーチャルパーソナルアシスタントは、動的なオントロジーおよび適応オントロジーも含んでもよい。適応オントロジーは、バーチャルパーソナルアシスタントが、使用中に、新たな情報を取得する際に、新たなコンセプトおよび関係に適応させることができる。例えば、適応オントロジーは、機械学習を用いて成長させることができる。動的なオントロジーは、バーチャルパーソナルアシスタントが新たな情報を取得する際に、動的なオントロジーが成長できるという点で、適応オントロジーと同様の原理で作動することができる。しかし、動的なオントロジーは、すべての有用な知識の保存場所であることにはあまり重点を置かず、人または人のグループとの会話の履歴またはコンテキスト固有のフレームワークとして、より大きく重点を置くことができる。例えば、動的なオントロジーは、人の入力から解釈された意図と、それらの意図に関連するコンセプトとを記録することができる。さまざまな実施態様において、動的なオントロジーは、必要な場合に情報を有するように、静的オントロジーまたは適応オントロジーの使用に追加することができる。さまざまな実施態様において、動的なオントロジーは、情報が関連するのをやめる際に、縮小させることもできる。
【０２７７】
図２３は、適応または動的なオントロジーシステム２３１０の実施例を示す。一般に、適応または動的なオントロジーシステム２３１０は、特定の人の好みを用いて、バーチャルパーソナルアシスタントの現在の知識を適応させることができる。適応または動的なオントロジーシステム２３１０は、装置のユーザからの明示的および／または暗黙的なフィードバック、ユーザプロファイル等のユーザデータを考慮して、および人の好みを学習することによって、バーチャルパーソナルアシスタントの一般的なオントロジーおよびドメイン固有のオントロジーを改善し、変化させおよび／または修正することもできる。適応または動的なオントロジーシステム２３１０は、新たなコンセプトおよび関係を、機械学習に基づいて展開または強化できるように、バーチャルパーソナルアシスタントが、機械学習を用いて、オントロジーを適応させることを可能にすることができる。適応または動的なオントロジーシステム２３１０は、機械学習を用いて、コンセプトの除去、または、複数のコンセプトの中での関係強度を弱めることも可能にすることができる。
【０２７８】
さまざまな実施態様において、適応または動的なオントロジーシステム２３１０は、知識抽出器および学習エンジン２３２３を含むことができる。さまざまな実施態様において、知識抽出器および学習エンジン２３２３は、バーチャルパーソナルアシスタントが、特に、個人の用語、使用パターン、好みおよび優先性に対してオントロジーを適応させることを可能にするソフトウェア論理モジュールを含んでもよい。知識抽出器および学習エンジン２３２３は、クリックストリームデータ等の種々の観察、暗黙的なユーザ行動パターンおよび明示的なユーザ暗示を介して、新たな用語、使用、意味、好みおよび優先性を集めることができる。さまざまな実施態様において、知識抽出器および学習エンジン２３２３は、所定の特徴のセットに従って、これらの観察にインデックスを付けることができ、この場合、それらの特徴は、バーチャルパーソナルアシスタントにとって関心のある観察データの特徴を定義する。知識抽出器および学習エンジン２３２３は、このような入力を処理し、幅広いデータソースから導き出されたインデックス付き、タグ付けされた、およびクラスタ化されたデータに、そのデータを重ね合わせることができる。その結果として生じるプロセスは、バーチャルパーソナルアシスタントに組み込むことができるインジケータを生成する。このようにして、バーチャルパーソナルアシスタントは、ユーザのニーズ、好み、言葉遣い等に適応する能力を有することができる。
【０２７９】
図２３に図示されているように、知識抽出器および学習エンジン２３２３は、いくつかのモジュール、特にオントロジーコントローラ２３３０を有してもよい。オントロジーコントローラ２３３０は、識別モジュール２３１８、コンセプト拡張モジュール２３２０、学習モジュール２３２２および深層分析および推論モジュール２３２４を含む、知識抽出器および学習エンジン２３２３内の他のモジュールと情報をやりとりすることができる。また、知識抽出器および学習エンジン２３２３は、クラウドソーシングモジュール２３２６も含んでもよく、および知識ベース２３２８と情報をやりとりすることができる。
【０２８０】
さまざまな実施態様において、適応オントロジーシステム２３１０は、５つの段階、すなわち、コンセプト識別、関係識別、コンセプト包含、コンセプト除外、ならびにコンセプトおよび関係のパーソナライゼーションを含む。
【０２８１】
さまざまな実施態様において、コンセプト識別プロセスは、オントロジーマップに追加すべき新たなコンセプトを指定する。オントロジーマップは、あるオントロジーにおける対象の、およびそれらが互いにどのように関係しているかの位相的表現である。さまざまな実施態様において、コンセプト識別は、識別モジュール２３１８が、例えば、バーチャルパーソナルアシスタントの解釈コンポーネントによって作成された、意図２３１４を受け取ったときに始まる。識別モジュール２３１４は、その意図の範囲内で表される人、場所または物事等のコンセプトを識別することができる。オントロジーコントローラ２３３０は、例えば、識別モジュール２３１４によって識別されたコンセプトについて、知識ベース２３２８に問い合わせを行うことによって、新たなコンセプトを識別することができる。さまざまな実施態様において、識別モジュール２３１４は、特定の人に関して固有である可能性がある特定の用語を識別することもできる。例えば、意図２３１４は、特定の人または人の個性と意図とを関連付けることができる選好モデルを介して通過している可能性がある。
【０２８２】
オントロジーコントローラ２３３０はさらに、コンセプト拡張モジュール２３２０および学習モジュール２３２２を用いて、関係識別を実行することができる。さまざまな実施態様において、関係識別を実行するために、コンセプト拡張モジュール２３２０は、インデックス付け、クラスタ化、分類および頻度カウントを用いて、新たに見付かったコンセプトと、既存のコンセプトとの関係を識別することができる。学習モジュール２３２２は、この情報を用いて、新たに見付かったコンセプトと、現在のオントロジーとの可能性のある関係を判断することができる。類似性インデックスは、コンセプト発生頻度と、共通のコンセプトの発生頻度とを用いて、その関係の強さを定量化することができる。
【０２８３】
新たに見付かったコンセプトと、オントロジーマップにおけるノードとの間の類似性インデックスを決定した後、オントロジーコントローラ２３３０は、コンセプト包含を実行することができる。すなわち、オントロジーコントローラ２３３０は、最大の類似性インデックスで関係を捉えることができる。その場合、オントロジーコントローラ２３３０および学習エンジン２３２３は、コンセプト包含プロセスを用いて、新たなコンセプトを含むようにオントロジーを更新することができる。知識抽出器および学習エンジン２３２３は、クエリ要求およびクリックストリームデータ等のユーザ入力に基づいて、新たに含まれるコンセプトの場合の類似性インデックスを強めるかまたは弱めることに関する進行中のプロセスを続行することができる。
【０２８４】
対照的に、オントロジーコントローラ２３３０が、新たに生み出されたコンセプトおよびその関係が、ユーザによって利用されていないことを、ユーザの入力から発見した場合、オントロジーコントローラ２３３０は、類似性インデックスを減らすことによって、コンセプト除外を実行することができる。そのプロセスが、類似性インデックスが特定の閾値未満に低下する時点まで続くと、オントロジーマップにおけるコンセプトノードは孤立することになり、そして、そのマップから取り除くか、または除外することができる。
【０２８５】
さまざまな実施態様において、コンセプト包含およびコンセプト除外は、深層分析および推論モジュール２３２４によって支援することができる。深層分析および推論モジュール２３２４は、コーパスでは頻繁に参照されるが、オントロジーでは現れない重要な用語を識別することができ、また、コーパスで見付かった当該の重要な用語を識別することができる。それらの用語は、それらの用語がその中に現れるコンテキストとともに収集される。その頻度が特定の閾値に達するこれらの用語は、オントロジーコントローラ２３３０上に伝送され、そのコントローラは、特に、コンテキストおよびユーザフィードバックを用いて、その用語がオントロジーにおける既存のコンセプトに関連しているか否かを識別しようとすることが可能である。
【０２８６】
残っている段階は、コンセプト関係およびパーソナライゼーションである。オントロジーにおけるコンセプトノードは、関連するパラメータを有している可能性がある。ユーザ入力およびデータをモニタリングしながら、およびユーザフィードバックに基づいて、知識抽出器および学習エンジン２３２３は、いくつかのパラメータの許容可能値および範囲を学習して、それらを経時的に調整することができる。
【０２８７】
ＩＶ．実施例の用途
マルチモーダルの対話形式のバーチャルパーソナルアシスタントと、バーチャルパーソナルアシスタントがそれを用いて理解し、解釈しおよび推論することができるコンポーネントとが上述されている。図２４から図２６には、異なるコンテキストで使用されるバーチャルパーソナルアシスタントを説明するために、バーチャルパーソナルアシスタントの実施例の用途が記載されている。これらの実施例は、バーチャルパーソナルアシスタントの会話能力と、言語合図および非言語合図を認識するための能力と、言語化された応答および非言語化された応答の両方に従って応答を調整するための能力とを例示している。
【０２８８】
図２４は、バーチャルパーソナルアシスタントがタブレット装置２４５０に既に組み込まれている実施例を示す。図２４はさらに、人２４００がタブレット装置２４５０を用いて行うことができるやりとりの実施例を示す。この実施例では、ドメインは、タブレット装置ドメインとして定義することができる。タブレット装置は、ある種の汎用コンピュータ装置とすることができ、そのため、ドメインは、かなり幅広くなる可能性がある。しかし、タブレット装置は、エンターテイメント（例えば、ゲームをする、映画を見る等）、コミュニケーション（例えば、電話をかける、テキストメッセージまたは電子メールまたはインスタントメッセージを送信する、ソーシャルメディアに携わる、テレビ会議等）および情報の検索（例えば、ウェブ検索を行う）等の典型的な用途を有していてもよい。したがって、タブレットドメインは、幅広いが、これらの典型的なユースケースに重点を置くこともできる。
【０２８９】
人２４００とのやりとりを可能にするために、タブレット装置２４５０は、さまざまな入力インタフェースを含むことができる。それらの入力インタフェースは、例えば、人２４００が、テキストをタイプ入力し、ボタンを選択し、アプリケーションを起動し、アプリケーションを制御し、および他の触覚入力を与えるのに用いることができるタッチスクリーンを含んでもよい。また、入力インタフェースは、人２４００が発した言葉および／またはノイズを捉えることができるマイクロフォンも含むことができる。また、入力インタフェースは、人２４００の画像、人２４００のジェスチャーまたはボディランゲージ、および／または人の環境を捉えることができるカメラも含むことができる。タブレット装置２４５０はさらに、バーチャルパーソナルアシスタントが、人２４００に応答するのに用いることができるさまざまな出力インタフェースを含んでもよい。出力インタフェースは、視覚情報を提供するディスプレイスクリーンと、可聴情報を提供するスピーカーとを含むことができる。
【０２９０】
この実施例は、人２４００の意図を解釈し、提案を実行し、確認を求め、および会話の筋を維持するバーチャルパーソナルアシスタントを示している。この実施例では、バーチャルパーソナルアシスタントは、人２４００に会話形式で返答するために、および人２４００に、その人が求める情報を提供するために、自動音声認識、自然言語理解、ドメイン固有のオントロジーおよび一般的なオントロジー、動的なオントロジー、ローカル情報およびインターネット上で見付けた情報を利用することができる。
【０２９１】
やりとりは、ステップ２４０２において、タブレット装置２４５０が、人２４００に「どうしましたか」と尋ねることによって始めることができる。さまざまな実施態様において、やりとりは、人２４００が、スクリーン上のアイコンを選択し、ボタンを押し、および／またはあるフレーズを話すことによって、タブレット装置２４５０上のアプリケーションを作動させたときに開始されている可能性がある。別法として、または追加的に、タブレット装置２４５０は、人２４００が情報を必要としたことを、人２４００の表現または非言語音から認識することができる。
【０２９２】
ステップ２４０４において、人２４００が「Ｍｅｎｌｏ  Ｐａｒｋのチャイニーズレストランを探して」と尋ねる。バーチャルパーソナルアシスタントは、自動音声認識および自然言語理解を用いて、人２４００の意図が、特定の都市（Ｍｅｎｌｏ  Ｐａｒｋ）内で、特定の種類（チャイニーズ）のレストランを探すことであることを判断することができる。バーチャルパーソナルアシスタントはさらに、オントロジー、例えば、Ｍｅｎｌｏ  Ｐａｒｋという都市に関する情報のためのオントロジーを用いて、要求された情報を見付けることができる。人２４００が尋ねたものを見付けられない場合、バーチャルパーソナルアシスタントは、他の何らかの種類のレストランが、人２４００の要求を満たす可能性があるという結論を出してもよい。バーチャルパーソナルアシスタントは、オントロジーを用いて、「チャイニーズレストラン」を「アジアンレストラン」と関連付けて、Ｍｅｎｌｏ  Ｐａｒｋに和食レストランがあるということをさらに判断することができる。その結果、バーチャルパーソナルアシスタントは、ステップ２４０６において、「Ｍｅｎｌｏ  Ｐａｒｋではチャイニーズレストランは見つかりませんでした。和食レストランはいかがですか」と提案してもよい。
【０２９３】
ステップ２４０８において、人２４００は、バーチャルパーソナルアシスタントの提案に満足する可能性があるが、一見無関係な質問、すなわち、「分かった。地図で本屋を見せて」とさらに尋ねる場合がある。この返答から、バーチャルパーソナルアシスタントは、人２４００が、Ｍｅｎｌｏ  Ｐａｒｋ内の和食レストランに関する情報を欲しがってはいるが、この情報が本屋または地図に関係があるということは不確かである可能性があると結論付けることができる。したがって、ステップ２４１０では、バーチャルパーソナルアシスタントは、「すみません、本屋についてお話ししていたでしょうか」と説明を求めることができる。
【０２９４】
ステップ２４１２において、人２４００は、「そのレストランに近いとこ」と返答する。この発言は、人２４００の意図を理解するために、「とこ」および「そのレストラン」が何であるかを解釈することを必要としている。バーチャルパーソナルアシスタントは、記憶されている以前の対話を利用して、「そのレストラン」とは、そのバーチャルパーソナルアシスタントが、先程、提案した和食レストランであると判断することができる。バーチャルパーソナルアシスタントはさらに、「とこ」とは、人２４００が尋ねた本屋であることを判断することができる。会話のこの時点で、バーチャルパーソナルアシスタントは、和食レストランがＭｅｎｌｏ  Ｐａｒｋ市内に２つ以上ある場合、人２４００が尋ねているのはどの和食レストランかを聞くことができる。しかし、この実施例では、バーチャルパーソナルアシスタントは、利用可能な情報、例えば、地図および住所録等を利用して、近くに本屋があるＭｅｎｌｏ  Ｐａｒｋ内の和食レストランは一つしかないと判断することができる。したがって、ステップ２４１４において、バーチャルパーソナルアシスタントは、「分かりました。こちらになります。」と返答することができる。バーチャルパーソナルアシスタントはさらに、人２４００に要求された通りに、タブレット装置２４５０に地図を表示させることができる。
【０２９５】
図２５は、バーチャルパーソナルアシスタントが、自動車２５１２内に実装されている実施例を示す。この実施例では、ドメインは、主に車両および関連する旅行として定義することができる。したがって、そのドメインは、特に、自動車２５１２の機能、車両のメンテナンスおよび運転に関する情報を含んでもよい。また、そのドメインは、地図、住所録、ルート等の情報も含んでもよい。自動車２５１２が、（例えば、セルラー接続、無線信号を介して、および／または自動車２５１２に既に接続されているモバイル装置２５３４を介して）ネットワークと通信できる実施態様において、ドメイン情報は、例えば、天気、道路状況、交通およびその他のリアルタイム情報も含むことができる。さまざまな実施態様において、ドライバー２５００が、何らかの情報を求める可能性があると、または、運転に関係ないタスクを実行したい可能性があると仮定すると、そのドメインは、幅広くなる可能性がある。例えば、そのドメインは、タブレット装置ドメイン内にあるのと同様の情報を包含してもよい。自動車のパーソナルアシスタントは、“Ｖｅｈｉｃｌｅ  Ｐｅｒｓｏｎａｌ  Ａｓｓｉｓｔａｎｔ”と題する米国特許第９，０８５，３０３号明細書でも議論されており、参照によって、その明細書の全体を本願明細書に組み込むものとする。
【０２９６】
この実施例では、バーチャルパーソナルアシスタントは、自動車のダッシュボード２５１０に典型的に設けられているコンポーネント、例えば、スピーカー２５２０、ディスプレイスクリーン２５２４およびさまざまなボタン２５３０を利用することができる。バーチャルパーソナルアシスタントは、ドライバー２５００に、スピーカー２５２０を用いて可聴情報を提供することができ、およびディスプレイスクリーン２５２４を用いて視覚情報２５２２を提供することができる。ダッシュボード２５１０上のボタン２５３０は、例えば、バーチャルパーソナルアシスタントからの視覚情報２５２２を無効にすることができ、および／またはバーチャルパーソナルアシスタントを作動させることができる。また、バーチャルパーソナルアシスタントは、自動車２５１２内の他のハードウェア、例えば、ハンドル２５１４または他のどこかに取り付けることができるマイクロフォン２５２６、およびハンドル２５１４上に配置されたボタン２５２８等を利用することもできる。バーチャルパーソナルアシスタントは、マイクロフォン２５２６を用いて、可聴入力を捉えることができる。ハンドル２５１４上のボタン２５２８は、視覚情報２５２２を無効にするのに、バーチャルパーソナルアシスタントを作動または停止させるのに、または、パーソナルアシスタントとの他の何らかのやりとり（例えば、ボリュームの上げ下げ等）のために用いることもできる。
【０２９７】
さまざまな実施態様において、自動車２５１２は、モバイル装置２５３２用のドック２５３４を含んでもよい。さまざまな実施態様において、ドック２５３４は、モバイル装置２５３２用の物理的コネクタを備えていてもよく、およびモバイル装置２５３２を自動車２５１２の機能に一体化する能力をさらに備えていてもよい。例えば、モバイル装置２５３２がドック２５３４に接続されている場合、ドライバー２５００は、自動車２５１２が備えている入力インタフェースを用いて電話をかけることができ、この場合、その発呼は、モバイル装置２５３２によって行われる。いくつかの実施態様において、バーチャルパーソナルアシスタントは、モバイル装置２５３２に一体化され、また、モバイル装置２５３２がドック２５３４内にある場合、自動車２５１２は、モバイル装置２５３２の拡張部として処理される。例えば、モバイル装置２５３２がドック２５３４内にある場合、モバイル装置２５３２内のバーチャルパーソナルアシスタントは、自動車２５１２に関する情報を取得することができ、および／または自動車２５１２の何らかのシステム（例えば、オーディオシステム）を制御することができる。モバイル装置２５３２がドック２５３４から切り離されると、モバイル装置２５３２は、もはや自動車２５１２の情報またはシステムにアクセスすることができない。いくつかの実施態様において、ドック２５３４は、（例えば、Ｂｌｕｅｔｏｏｔｈ（登録商標）を用いて）自動車２５１２とモバイル装置２５３２との間の無線接続を提供することができる。
【０２９８】
さまざまな実施態様において、ドライバー２５００は、ボタン（例えば、ダッシュボード２５１０上のボタン２５３０、または、ハンドル２５１４上のボタン２５２８）を押すことにより、バーチャルパーソナルアシスタントを始動させることができる。別法として、または追加的に、ドライバー２５００は、あるフレーズを話すか、または、ディスプレイスクリーン２５２４の方向を見ることによって、バーチャルパーソナルアシスタントを始動させることができる。別法として、または追加的に、ドライバー２５００は、単に話し始めて、そしてバーチャルパーソナルアシスタントは、ドライバー２５００が、自動車２５１２内に一人でいることを認識し、ドライバー２５００がバーチャルパーソナルアシスタントに返答してほしいという意図があると推測することができる。
【０２９９】
この実施例では、ステップ２５３６において、ドライバー２５００は、ダッシュボード２５１０上のライト２５１８に気付いて、「なぜ、そのライトが点いているのか」と聞く。ドライバー２５００は、同時に、そのライトを指差す場合がある。バーチャルパーソナルアシスタントは、自動音声認識および自然言語理解を用いて、ドライバー２５００の意図は、「そのライト」は何のために点いているのかを、そのバーチャルパーソナルアシスタントがそのドライバー２５００に教えることであると判断することができる。「そのライト」が何を指しているのかを判断するために、この実施例におけるバーチャルパーソナルアシスタントは、参照する以前の対話を有していないが、画像情報、具体的には、ドライバー２５００が指差している方向を有している。別法として、または、追加的に、バーチャルパーソナルアシスタントは、ドライバー２５００の視線内の可能性のあるすべてのライトのうち、ドライバー２５００が指している可能性のあるものがどれかを評価することができる。正しい結論を出したことを確認するために、バーチャルパーソナルアシスタントは、ステップ２５３８において、「スピードメーターの隣の黄色のライトのことですか」と尋ねることができる。
【０３００】
ドライバー２５００は、ステップ２５４０において、「そうです」と返答する場合がある。バーチャルパーソナルアシスタントは、ドライバー２５００の声の調子に何らかの不安を検出し、または、そのドライバー２５００の返答の仕方に緊急性を検出することができる。別法として、または、追加的に、バーチャルパーソナルアシスタントは、画像データから、ドライバー２５００がしかめっ面をしていると判断することができる。したがって、ステップ２５４２において、バーチャルパーソナルアシスタントは、安心させるように、「心配ありません、それは、次の２０マイルで、給油のために停車する必要があることを知らせるただの合図ですよ」とドライバー２５００の質問に返答することができる。
【０３０１】
図２６は、バーチャルパーソナルアシスタントが、サービスロボット２６５０に実装された実施例を示す。この実施例では、サービスロボット２６５０は、小売客用サービスロボットとしての用途のために構成されている。この用途では、サービスロボット２６５０は、客の商品をスキャンし、総額を表示し、店内の販売用製品に関する質問に答え、および一般的な顧客サービスを提供することができる。また、サービスロボットは、他の用途、例えば、教育、ヘルスケアおよび／またはセラピーにも利用することができる。例えば、サービスロボットは、ティーチングアシスタント、質問への返答、レクチャーの提供および／または双方向のティーチングセッションとして利用することができる。別の実施例として、サービスロボットは、医療診断およびアドバイスを支援するのに利用することができ、または、場合により医者用のリモートアシスタントとして利用することができる。別の実施例として、サービスロボット２６５０は、店舗、オフィスビル、病院、警察署、または、人が、その会場に関する情報を求める可能性がある他の何らかの会場用の受付で利用することができる。
【０３０２】
図示されている実施例において、サービスロボット２６５０は、店内、例えば、食料雑貨店内に既に配置されている。この実施例では、ドメインは、その店が販売する製品を含んでもよく、この場合、それらの製品は、店内に配置され、その店の経常在庫である。ドメインはさらに、買い物客が尋ねる可能性のある種類の質問に答えるためのワークフローを有することができる。
【０３０３】
この実施例において、やりとりは、買い物客２６００がサービスロボット２６５０に近付いてきたときに始まる可能性がある。サービスロボット２６５０は、カメラを備えることができる。そのカメラが捉えた画像に対して、コンピュータビジョン法を実行することにより、サービスロボット２６５０は、例えば、買い物客２６００がサービスロボット２６５０に近づくという直接的方法から、買い物客２６００が、サービスロボット２６５０に質問したいということを認識することができる。別法として、または、追加的に、買い物客２６００は、ボタンを押すか、または、サービスロボット２６５０に組み込まれているバーコードスキャナを用いて、製品をスキャンすることにより、サービスロボット２６５０を作動させることができる。一旦、作動されると、サービスロボット２６５０は、ステップ２６０２において、「こんにちは、あなたが今日必要なものはすべて見付かりましたか」と聞くことができる。
【０３０４】
買い物客２６００は、ステップ２６０４において、「えーと、いいえ、アニーのマカロニ＆チーズが全然見付からないんです」と返答する。バーチャルパーソナルアシスタントは、買い物客２６００の言語応答および／またはサービスロボット２６５０のカメラによって捉えられた画像から、買い物客２６００が、アニーのマカロニ＆チーズをいくつか購入したいと思っていると判断することができ、さらに、軽いフラストレーションを検出することもできる。例えば、ドメイン固有のオントロジーを介してその店のレイアウトおよび在庫目録にアクセスできるバーチャルパーソナルアシスタントは、アニーのマカロニ＆チーズがどこにあるかを知っており、単にその答えを与えるのではなく、買い物客２６００のフラストレーションを和らげようとすることができる。したがって、バーチャルパーソナルアシスタントは、ステップ２６０６において、「すみません。通路６を見ましたか」と返答する。
【０３０５】
ステップ２６０８において、買い物客２６００は、「いいえ。それはいくらですか」と返答する。この返答において、バーチャルパーソナルアシスタントは、「それ」が何を指しているのかを判断しなければならない。バーチャルパーソナルアシスタントは、（例えば、動的なオントロジーに記憶されている）過去の対話を参照して、「それ」が、アニーのマカロニ＆チーズを指していると判断することができる。バーチャルパーソナルアシスタントは、買い物客２６００の声の調子および／または顔の表情から、フラストレーションの高まりを感知することができる。したがって、バーチャルパーソナルアシスタントは、買い物客２６００のフラストレーションを和らげることができる、利用可能なリソースを利用することができる。具体的には、バーチャルパーソナルアシスタントは、買い物客２６００の質問に答えるのに加えて、ステップ２６１０において、「アニーのマカロニ＆チーズは１２．９９ドルです。購入されるのでしたら、誰か呼びましょうか」と支援を提案してもよい。
【０３０６】
買い物客２６００は、ステップ２６１２において、「はい、そうしてもらえるとありがたいです。」とポジティブに返答する。しかし、バーチャルパーソナルアシスタントは、より多くの情報を必要とし、そのため、ステップ２６１４において、「分かりました。三種類あります。どれが欲しいか分かりますか。」と尋ねる。例えば、動的なオントロジーを介してユーザ状態情報を保持することにより、そのシステムは、その買い物客が、アニーのマカロニ＆チーズを店内で見付けられないことに関して、それまではフラストレーションを感じていたことを思い出すことができる。買い物客２６００のフラストレーションのレベルが潜在的に上がるのを避けるために、バーチャルパーソナルアシスタントは、返答を短くかつ正確に維持する。このようにして、サービスロボット２６５０に実装されたバーチャルパーソナルアシスタントは、ユーザ状態（例えば、感情的状態、認知的状態または心理的状態）を、対話から抽出した意味情報と関連付けることができる。バーチャルパーソナルアシスタントはさらに、それらの関連付けを、将来のために（例えば、オントロジーを用いて）記憶装置内で保持することができる。換言すると、そのシステムは、「フラストレーション」という感情を、「アニーのマカロニ＆チーズを見付けられない」という意味論的概念と関連付けて、後の利用のための意味情報に関するこの具体的な関連付けを覚えておく。
【０３０７】
ステップ２６１６では、買い物客２６００は、「はい、ホワイトチェダーです。」と返答する。バーチャルパーソナルアシスタントは、この時点で、この種類が入手可能であることを確認することができる。次に、バーチャルパーソナルアシスタントは、ステップ２６１８において、人（または、ロボット）が、その製品を取りに行っていることを確認して、「分かりました。店員が今、取ってきます。」と買い物客２６００に返答することができる。
【０３０８】
バーチャルパーソナルアシスタント用のシステムおよびコンポーネントのさまざまな実施態様の完全な理解を実現できるように、具体的な詳細を先の説明で伝えた。しかし、上述した実施態様は、それらの具体的な詳細を要することなく実施できることは理解されるであろう。例えば、回路、システム、ネットワーク、プロセスおよびその他のコンポーネントは、不必要な詳細で本実施形態をあいまいにしないように、ブロック図の形式で構成要素として示されている可能性がある。他の事例では、本実施形態をあいまいにすることを避けるために、周知の回路、プロセス、アルゴリズム、構成および方法は、不必要な詳細がない状態で示されている可能性がある。
【０３０９】
また、個別の実施態様は、フローチャート、フロー図、データフロー図、構成図またはブロック図として描かれているプロセスとして記載されている可能性があることに留意すべきである。フローチャートは、動作を、一連のプロセスとして説明している場合があるが、動作の多くは、並行してまたは同時に実行することができる。さらに、それらの動作の順序は替えてもよい。一つのプロセスは、その動作が完了したときに終了するが、図面には含まれていない追加的なステップを有することができる。プロセスは、方法、機能、手順、サブルーチン、サブプログラム等に対応させることができる。プロセスが機能に対応する場合、その終了は、その機能の、呼び出し機能またはメイン機能へのリターンに対応させることができる。
【０３１０】
「コンピュータ可読媒体」または「コンピュータプログラムプロダクト」という用語は、限定するものではないが、ポータブルまたは非ポータブルのストレージ装置、光学記憶装置、および命令および／またはデータを格納し、収容しまたは担持することが可能な他のさまざまな媒体を含む。コンピュータ可読媒体およびコンピュータプログラムプロダクトは、データを格納することができ、搬送波を含まない非一時的な媒体、および／または無線で、または有線接続を通じて伝播する一時的な電子信号を含んでもよい。非一時的な媒体の実例は、限定するものではないが、磁気ディスクまたはテープ、コンパクトディスク（ＣＤ）またはディジタル多用途ディスク（ＤＶＤ）等の光学記憶媒体、フラッシュメモリ、メモリまたは記憶装置を含んでもよい。コンピュータ可読媒体およびコンピュータプログラムプロダクトには、手順、機能、サブプログラム、プログラム、ルーチン、サブルーチン、モジュール、ソフトウェアパッケージ、クラス、または、命令、データ構造もしくはプログラム文の任意の組合せを表すことができるコードおよび／またはマシンが実行可能な命令を記憶させることができる。コードセグメントは、情報、データ、引数、パラメータまたはメモリ内容を送りおよび／または受け取ることにより、別のコードセグメントまたはハードウェア回路に結合することができる。情報、引数、パラメータ、データ等は、メモリの共有、メッセージの受渡し、トークンパッシング、ネットワーク伝送等を含む任意の適当な手段を介して、送り、転送しまたは送信することができる。
【０３１１】
上述したさまざまな実施例はさらに、ハードウェア、ソフトウェア、ファームウェア、ミドルウェア、マイクロコード、ハードウェア記述言語、または、これらの任意の組合せによって実施することができる。ソフトウェア、ファームウェア、ミドルウェアまたはマイクロコードで実施した場合、必要なタスクを実行するためのプログラムコードまたはコードセグメント（例えば、コンピュータプログラムプロダクト）は、コンピュータ可読媒体または機械可読媒体に格納することができる。集積回路で実施することができるプロセッサは、必要なタスクを実行することができる。
【０３１２】
コンポーネントは、特定の動作を実行「するように構成されている」と記載されているが、そのような構成は、例えば、その動作を実行するように、電子回路または他のハードウェアを設計することにより、その動作を実行するように、プログラム可能な電子回路（例えば、マイクロプロセッサ、または、他の適当な電子回路）をプログラミングすることにより、または、これらの任意の組合せで実現することができる。
【０３１３】
本願明細書で開示されている実施態様とともに記載されているさまざまな例示的論理ブロック、モジュール、回路およびアルゴリズムステップは、電子的ハードウェア、コンピュータソフトウェア、ファームウェア、または、これらの組合せとして実施してもよい。このハードウェアおよびソフトウェアの互換性を明確に説明するために、さまざまな例示的コンポーネント、ブロック、モジュール、回路およびステップは、概してそれらの機能に関して上述されている。そのような機能がハードウェアとして実施されているか、または、ソフトウェアとして実施されているかは、システム全体に課せられた特定の用途および設計上の制約に依存する。当業者は、具体的な各用途のために、記載されている機能を、さまざまな方法で実施することができるが、そのような実施の判断は、本開示の範囲からの逸脱を引き起こすものと解釈すべきではない。
【０３１４】
また、本願明細書に記載されている技術的方法は、電子的ハードウェア、コンピュータソフトウェア、ファームウェア、または、これらの組合せで実施してもよい。このような技術的方法は、汎用コンピュータ、無線通信装置のハンドセット、または、無線通信装置のハンドセットおよび他の装置での用途を含む複数の用途を有する集積回路装置等のさまざまな装置のうちのいずれかにおいて実施することができる。モジュールまたはコンポーネントとして記載されている機能は、どれも、集積論理素子内に一緒に実装してもよく、または、個別の相互利用可能な論理素子として別々に実装してもよい。ソフトウェアで実施した場合、技術的方法は、実行される際に、上述した方法のうちの一つ以上を実行する命令を含むプログラムコードを備えているコンピュータ可読データ記憶媒体によって、少なくとも部分的に実現することができる。コンピュータ可読データ記憶媒体は、パッケージング材料を含んでもよい、コンピュータプログラムプロダクトの一部を構成してもよい。コンピュータ可読媒体は、シンクロナスＤＲＡＭ（ＳＤＲＡＭ）等のランダムアクセスメモリ（ＲＡＭ）、読出し専用メモリ（ＲＯＭ）、不揮発性ランダムアクセスメモリ（ＮＶＲＡＭ）、電気的消去可能なプログラマブルＲＯＭ（ＥＥＰＲＯＭ）、フラッシュメモリ、磁気または光学データ記憶媒体等のメモリまたはデータ記憶媒体から成っている。追加的に、または、別法として、技術的方法は、プログラムコードを命令またはデータ構造の形態で担持し、または伝達する、およびコンピュータがアクセスし、読出しおよび／または実行することができるコンピュータ可読通信媒体、例えば、伝播信号または波長によって、少なくとも部分的に実現することができる。
【０３１５】
プログラムコードは、一つ以上のプロセッサ、例えば、一つ以上のディジタル信号プロセッサ（ＤＳＰ）、汎用マイクロプロセッサ、特定用途向け集積回路（ＡＳＩＣ）、フィールドプログラマブル論理アレイ（ＦＰＧＡ）、または、他の等価な集積または個別の論理回路を含んでもよいプロセッサによって実行してもよい。このようなプロセッサは、この開示に記載されているいずれかの技術的方法を実行するように構成することができる。汎用プロセッサは、マイクロプロセッサであってもよいが、代替例では、プロセッサは、何らかの従来のプロセッサ、コントローラ、マイクロコントローラまたは状態機械とすることができる。また、プロセッサは、コンピュータ装置の組合せ、例えば、ＤＳＰとマイクロプロセッサの組合せ、複数のマイクロプロセッサ、ＤＳＰコアと併用の一つ以上のマイクロプロセッサ、または、他のいずれかのこのような構成として実装してもよい。したがって、「プロセッサ」という用語は、本願明細書で用いる場合、上記の構造のいずれか、上記の構造のいずれかの組合せ、または、本願明細書に記載されている技術的方法の実施に適している他の何らかの構造または装置を指すことができる。さらに、いくつかの態様において、本願明細書に記載されている機能は、ネットワークの脅威の検出および解析のために構成された、専用ソフトウェアモジュールまたはハードウェアモジュール内に設けてもよい。
【０３１６】
以下で用いる場合、一連の実施例に対する参照は、いずれもそれらの実施例の各々に対する選言的な参照として理解すべきである（例えば、「実施例１から実施例４」は、「実施例１、実施例２、実施例３または実施例４」として理解すべきである）。
【０３１７】
実施例１は、コンピュータ装置内の集積回路によって、感覚入力を受け取るステップを含む方法である。その該感覚入力は、少なくとも二つの異なる種類の情報を含む。その方法は、感覚入力から意味情報を判断するステップをさらに含む。意味情報は、感覚入力の解釈を提供する。その方法は、コンテキスト固有のフレームワークを識別するステップをさらに含む。コンテキスト固有のフレームワークは、一つ以上の前の意図から成る累積シーケンスを含む。その方法は、現在の意図を判断するステップをさらに含む。現在の意図を判断するステップは、意味情報およびコンテキスト固有のフレームワークを用いることを含む。その方法は、現在の入力状態を判断するステップをさらに含む。現在の入力状態を判断するステップは、意味情報および一つ以上の行動モデルを用いることを含む。行動モデルは、前に提供された意味情報の一つ以上の解釈を含む。その方法は、動作を判断するステップをさらに含む。動作を判断するステップは、現在の意図および現在の入力状態を用いることを含む。
【０３１８】
実施例２は、実施例１の方法であり、情報の種類は、音声情報、グラフィック情報、オーディオ入力、画像入力または触覚入力を含む。
【０３１９】
実施例３は、実施例１、実施例２の方法であり、声紋認証は、オーディオ入力から導き出すことが可能である。
【０３２０】
実施例４は、実施例１から実施例３の方法であり、感情状態は、オーディオ入力から導き出すことが可能である。
【０３２１】
実施例５は、実施例１から実施例４の方法であり、身振りは、画像入力から導き出すことが可能である。
【０３２２】
実施例６は、実施例１から実施例５の方法であり、虹彩認証は、画像入力から導き出すことが可能である。
【０３２３】
実施例７は、実施例１から実施例６の方法であり、感情状態は、画像入力から導き出すことが可能である。
【０３２４】
実施例８は、実施例１から実施例７の方法であり、行動モデルは、設定可能な選好モデルを含む。設定可能な選好モデルは、一つ以上の前の入力状態と、その一つ以上の前の入力状態に関連する意味情報とを含む。
【０３２５】
実施例９は、実施例１から実施例８の方法であり、コンテキスト固有のフレームワークは、コンテキスト固有のオントロジーを含む。コンテキスト固有のオントロジーは、一つ以上のコンテキスト固有の意図から成る累積シーケンスを含む。
【０３２６】
実施例１０は、実施例１から実施例９の方法であり、コンテキスト固有のフレームワークは、動的なオントロジーを含む。動的なオントロジーは、コンテキスト固有のオントロジーから導き出された一つ以上の前の意図から成る累積シーケンスを含む。
【０３２７】
実施例１１は、判断された動作が正しいことを確認するための要求を生成するステップを含む、実施例１から実施例１０の方法である。
【０３２８】
実施例１２は、追加的な感覚入力を用いて、判断された動作が正しくないことを判断するステップを含む、実施例１から実施例１１の方法である。この実施例は、追加情報の要求を生成するステップをさらに含む。
【０３２９】
実施例１３は、追加的な感覚入力を用いて、判断された動作が正しくないことを判断するステップを含む、実施例１から実施例１２の方法である。この実施例はさらに、追加的な感覚入力を用いて、新たな動作を決定するステップを含む。
【０３３０】
実施例１４は、実施例１から実施例１３の方法であり、動作は、言語応答を策定して出力することを含む。
【０３３１】
実施例１５は、実施例１から実施例１４の方法であり、動作は、情報を検索することと、その検索の結果を提供することとを含む。
【０３３２】
実施例１６は、実施例１から実施例１５の方法であり、動作は、制御信号を生成することを含む。
【０３３３】
実施例１７は、一つ以上のプロセッサと、非一時的なコンピュータ可読媒体とを含むバーチャルパーソナルアシスタント装置である。その非一時的なコンピュータ可読媒体は、一つ以上のプロセッサによって実行される場合、その一つ以上のプロセッサに、感覚入力を受け取ることを含む動作を実行させる命令を含む。感覚入力は、少なくとも二つの異なる種類の情報を含む。それらの命令は、感覚入力から意味情報を判断することをさらに含む。意味情報は、感覚入力の解釈を提供する。それらの命令は、コンテキスト固有のフレームワークを識別することをさらに含む。コンテキスト固有のフレームワークは、一つ以上の前の意図から成る累積シーケンスを含む。それらの命令は、現在の意図を判断することをさらに含む。現在の意図を判断することは、意味情報およびコンテキスト固有のフレームワークを用いることを含む。それらの命令は、現在の入力状態を判断することをさらに含む。現在の入力状態を判断することは、意味情報および一つ以上の行動モデルを用いることを含む。行動モデルは、前に提供された意味情報の一つ以上の解釈を含む。それらの命令は、動作を判断することをさらに含む。動作を判断することは、現在の意図および現在の入力状態を用いることを含む。
【０３３４】
実施例１８は、実施例１７のバーチャルパーソナルアシスタント装置であり、情報の種類は、音声情報、グラフィック情報、オーディオ入力、画像入力または触覚入力を含む。
【０３３５】
実施例１９は、実施例１７、実施例１８のバーチャルパーソナルアシスタント装置であり、声紋認証は、オーディオ入力から導き出すことが可能である。
【０３３６】
実施例２０は、実施例１７から実施例１９のバーチャルパーソナルアシスタント装置であり、感情状態は、オーディオ入力から導き出すことが可能である。
【０３３７】
実施例２１は、実施例１７から実施例２０のバーチャルパーソナルアシスタント装置であり、身振りは、画像入力から導き出すことが可能である。
【０３３８】
実施例２２は、実施例１７から実施例２１のバーチャルパーソナルアシスタント装置であり、虹彩認証は、画像入力から導き出すことが可能である。
【０３３９】
実施例２３は、実施例１７から実施例２２のバーチャルパーソナルアシスタント装置であり、感情状態は、画像入力から導き出すことが可能である。
【０３４０】
実施例２４は、実施例１７から実施例２３のバーチャルパーソナルアシスタント装置であり、行動モデルは、設定可能な選好モデルを含む。設定可能な選好モデルは、一つ以上の前の入力状態と、その一つ以上の前の入力状態に関連する意味情報とを含む。
【０３４１】
実施例２５は、実施例１７から実施例２４のバーチャルパーソナルアシスタント装置であり、コンテキスト固有のフレームワークは、コンテキスト固有のオントロジーを含む。コンテキスト固有のオントロジーは、一つ以上のコンテキスト固有の意図から成る累積シーケンスを含む。
【０３４２】
実施例２６は、実施例１７から実施例２５のバーチャルパーソナルアシスタント装置であり、コンテキスト固有のフレームワークは、動的なオントロジーを含む。動的なオントロジーは、コンテキスト固有のオントロジーから導き出された一つ以上の前の意図から成る累積シーケンスを含む。
【０３４３】
実施例２７は、判断された動作が正しいことを確認するための要求を生成する命令をさらに含む、実施例１７から実施例２６のバーチャルパーソナルアシスタント装置である。
【０３４４】
実施例２８は、追加的な感覚入力を用いて、判断された動作が正しくないことを判断する命令をさらに含む、実施例１７から実施例２７のバーチャルパーソナルアシスタント装置である。この実施例は、追加的な情報の要求を生成することをさらに含む。
【０３４５】
実施例２９は、追加的な感覚入力を用いて、判断された動作が正しくないことを判断することを含む命令をさらに含む、実施例１７から実施例２８のバーチャルパーソナルアシスタント装置である。この実施例は、追加的な感覚入力を用いて、新たな動作を判断する命令をさらに含む。
【０３４６】
実施例３０は、実施例１７から実施例２９のバーチャルパーソナルアシスタント装置であり、動作は、言語応答を作成して出力することを含む。
【０３４７】
実施例３１は、実施例１７から実施例３０のバーチャルパーソナルアシスタント装置であり、動作は、情報を検索することと、その検索の結果を提供することとを含む。
【０３４８】
実施例３２は、実施例１７から実施例３１のバーチャルパーソナルアシスタント装置であり、動作は、制御信号を生成することを含む。
【０３４９】
実施例３３は、非一時的なコンピュータ可読記憶媒体に明確に具体化されたコンピュータプログラムプロダクトである。その記憶媒体は、一つ以上のプロセッサによって実行される場合に、その一つ以上のプロセッサに、感覚入力を受け取らせる命令を含む。その感覚入力は、少なくとも二つの異なる種類の情報を含む。それらの命令は、感覚入力から意味情報を判断することをさらに含む。意味情報は、感覚入力の解釈を提供する。それらの命令は、コンテキスト固有のフレームワークを識別することをさらに含む。コンテキスト固有のフレームワークは、一つ以上の前の意図から成る累積シーケンスを含む。それらの命令は、現在の意図を判断することをさらに含む。現在の意図を判断することは、意味情報およびコンテキスト固有のフレームワークを用いることを含む。それらの命令は、現在の入力状態を判断することをさらに含む。現在の入力状態を判断することは、意味情報および一つ以上の行動モデルを用いることを含む。行動モデルは、前に提供された意味情報の一つ以上の解釈を含む。それらの命令は、動作を判断することをさらに含む。動作を判断することは、現在の意図および現在の入力状態を用いることを含む。
【０３５０】
実施例３４は、実施例３３のコンピュータプログラムプロダクトであり、情報の種類は、音声情報、グラフィック情報、オーディオ入力、画像入力または触覚入力を含む。
【０３５１】
実施例３５は、実施例３３、実施例３４のコンピュータプログラムプロダクトであり、声紋認証は、オーディオ入力から導き出すことが可能である。
【０３５２】
実施例３６は、実施例３３から実施例３５のコンピュータプログラムプロダクトであり、感情状態は、オーディオ入力から導き出すことが可能である。
【０３５３】
実施例３７は、実施例３３から実施例３６のコンピュータプログラムプロダクトであり、身振りは、画像入力から導き出すことが可能である。
【０３５４】
実施例３８は、実施例３３から実施例３７のコンピュータプログラムプロダクトであり、虹彩認証は、画像入力から導き出すことが可能である。
【０３５５】
実施例３９は、実施例３３から実施例３８のコンピュータプログラムプロダクトであり、感情状態は、画像入力から導き出すことが可能である。
【０３５６】
実施例４０は、実施例３３から実施例３９のコンピュータプログラムプロダクトであり、行動モデルは、設定可能な選好モデルを含む。設定可能な選好モデルは、一つ以上の前の入力状態と、その一つ以上の前の入力状態に関連する意味情報とを含む。
【０３５７】
実施例４１は、実施例３３から実施例４０のコンピュータプログラムプロダクトであり、コンテキスト固有のフレームワークは、コンテキスト固有のオントロジーを含む。コンテキスト固有のオントロジーは、一つ以上のコンテキスト固有の意図から成る累積シーケンスを含む。
【０３５８】
実施例４２は、実施例３３から実施例４１のコンピュータプログラムプロダクトであり、コンテキスト固有のフレームワークは、動的なオントロジーを含む。動的なオントロジーは、コンテキスト固有のオントロジーから導き出された一つ以上の前の意図から成る累積シーケンスを含む。
【０３５９】
実施例４３は、判断された動作が正しいことを確認するための要求を生成する命令をさらに含む、実施例３３から実施例４２のコンピュータプログラムプロダクトである。
【０３６０】
実施例４４は、追加的な感覚入力を用いて、判断された動作が正しくないことを判断する命令をさらに含む、実施例３３から実施例４３のコンピュータプログラムプロダクトである。この実施例は、追加的な情報の要求を生成することをさらに含む。
【０３６１】
実施例４５は、追加的な感覚入力を用いて、判断された動作が正しくないことを判断することを含む命令をさらに含む、実施例３３から実施例４４のコンピュータプログラムプロダクトである。この実施例は、追加的な感覚入力を用いて、新たな動作を決定する命令をさらに含む。
【０３６２】
実施例４６は、実施例３３から実施例４５のコンピュータプログラムプロダクトであり、動作は、言語応答を作成して出力することを含む。
【０３６３】
実施例４７は、実施例３３から実施例４６のコンピュータプログラムプロダクトであり、動作は、情報を検索することと、その検索の結果を提供することとを含む。
【０３６４】
実施例４８は、実施例３３から実施例４７のコンピュータプログラムプロダクトであり、動作は、制御信号を生成することを含む。
【符号の説明】
【０３６５】
１００    人
１０２    スマートフォン
１０４    入力
１０６    出力
１１０    オーディオ入力
１２０    画像入力
１３０    触覚入力
１５０    バーチャルパーソナルアシスタント
１５２    理解システム
１５４    推論システム
１５６    出力システム
１５８    知識ベース
１６０    アプリケーション固有のデータ
１６２    ドメインおよびユーザデータ
１６４    ビジネスルール
【図１】
2019505011.tif 000003
【図２】
2019505011.tif 000004
【図３】
2019505011.tif 000005
【図４】
2019505011.tif 000006
【図５】
2019505011.tif 000007
【図６】
2019505011.tif 000008
【図７】
2019505011.tif 000009
【図８】
2019505011.tif 000010
【図９】
2019505011.tif 000011
【図１０】
2019505011.tif 000012
【図１１】
2019505011.tif 000013
【図１２】
2019505011.tif 000014
【図１３】
2019505011.tif 000015
【図１４】
2019505011.tif 000016
【図１５】
2019505011.tif 000017
【図１６】
2019505011.tif 000018
【図１７】
2019505011.tif 000019
【図１８】
2019505011.tif 000020
【図１９】
2019505011.tif 000021
【図２０】
2019505011.tif 000022
【図２１】
2019505011.tif 000023
【図２２】
2019505011.tif 000024
【図２３】
2019505011.tif 000025
【図２４】
2019505011.tif 000026
【図２５】
2019505011.tif 000027
【図２６】
2019505011.tif 000028
【国際調査報告】
2019505011.tif 000029
2019505011.tif 000030
2019505011.tif 000031
2019505011.tif 000032
2019505011.tif 000033