【文献】
河合航平,外3名,相対位置関係を利用したモバイルデバイスによる家電機器操作システム,マルチメディア,分散,協調とモバイル(DICOMO2013)シンポジウム論文集,2013年07月,p.1671-1678
(58)【調査した分野】(Int.Cl.,DB名)
前記デバイストポロジー表現が、複数の部屋を定義し、前記複数のデバイスの各々の位置が、前記複数の部屋のうちの各1つである、請求項1に記載のコンピュータ実装方法。
前記1つまたは複数のコンピューティングデバイスが、前記第1の制御デバイスにより構成される、請求項1から3のうちのいずれか一項に記載のコンピュータ実装方法。
前記音声発声を示すデータに少なくとも部分的に基づき、前記1つまたは複数の選択されたスマートデバイスに対する1つまたは複数の制御コマンドを生成するステップが、
前記音声発声の転写に少なくとも部分的に基づき、前記1つまたは複数の選択されたスマートデバイスにより実行されるべき1つまたは複数のアクションを決定するステップと、
前記1つまたは複数の選択されたスマートデバイスと、前記1つまたは複数のアクションとに少なくとも部分的に基づき、前記1つまたは複数の制御コマンドを生成するステップとを含む、請求項1から4のうちのいずれか一項に記載のコンピュータ実装方法。
コンピュータ可読命令を記録する1つまたは複数のコンピュータ可読有形記録媒体であって、前記コンピュータ可読命令は、1つまたは複数のプロセッサにより実行されたときに、前記1つまたは複数のプロセッサに動作を実行させ、前記動作が、
音声発声を示すデータを受信する動作と、
デバイストポロジー表現にアクセスする動作であって、前記デバイストポロジー表現は、1つまたは複数の構造物に関連付けられた複数のデバイスを定義するとともに、前記関連付けられた構造物内の前記複数のデバイスの各々の位置を定義する、動作と、
前記複数のデバイスの中で、ユーザにより前記音声発声が提供された第1の制御デバイスを識別する動作と、
前記複数のデバイスから1つまたは複数の選択されたスマートデバイスを決定する動作であって、
前記音声発声が提供された前記第1の制御デバイスと同じ部屋を前記デバイストポロジー表現が指定する前記複数のデバイスのサブセットを識別する動作と、
前記音声発声を示すデータに少なくとも部分的に基づき、前記複数のデバイスの前記サブセットから前記1つまたは複数の選択されたスマートデバイスを決定する動作と、を含む、動作と、
前記音声発声を示すデータに少なくとも部分的に基づき、前記1つまたは複数の選択されたスマートデバイスに対する1つまたは複数の制御コマンドを生成する動作と、
前記1つまたは複数の制御コマンドを前記選択されたスマートデバイスに提供する動作と、を含む、1つまたは複数のコンピュータ可読有形記録媒体。
【発明を実施するための形態】
【0010】
次に、実施形態を詳細に参照し、その1つまたは複数の例が図面に示されている。各例は、本開示を限定するものではなく、実施形態の説明によって提供される。実際、本開示の範囲または意図から逸脱することなく、実施形態に様々な修正および変形を加えることができることが当業者には明らかであろう。たとえば、一実施形態の一部として図示または説明されている特徴を、別の実施形態とともに使用して、またさらなる実施形態を得ることができる。したがって、本開示の態様は、そのような修正および変形をカバーするものとする。
【0011】
本開示の例示的な態様は、ユーザからの音声コマンドに基づいてスマートデバイスを制御することを対象とする。たとえば、音声発声は、制御デバイスのユーザから受信することができる。音声発声は、1つまたは複数のスマートデバイスを制御するように構成されたユーザデバイスの近くのユーザによって話されるコマンドとすることができる。スマートデバイスは、中央サーバ、クラウドコンピューティングシステム、および/または1つまたは複数の追加のスマートデバイスと通信して、任意の様々な有用なスマートホームサービスを提供するように構成されたインテリジェント、マルチセンシング、ネットワーク接続デバイスとすることができる。たとえば、スマートデバイスは、空調システム、照明デバイス、ホームシアターおよびエンターテインメントシステム、セキュリティシステム、自動ドアロッキングシステム、サーモスタットデバイス、ホームオートメーションシステム、サウンドスピーカー、カメラデバイス、トレッドミル、体重計、スマートベッド、灌漑システム、ガレージドアオープナー、アプライアンス、ベビーモニタ、火災警報器、および/または他の適切なデバイスもしくはシステムであり得る、またはそうでなければそれらに関連し得る。
【0012】
1つまたは複数のスマートデバイスを制御することを望むユーザは、デバイストポロジー表現を構築することができる。デバイストポロジー表現は、様々な適切な技法を使用して構築することができ、1つまたは複数の構造物内の1つまたは複数のスマートデバイスのトポロジーおよび編成を表すことができる任意の適切なフォーマットおよび/または構造とすることができる。デバイストポロジー表現は、ユーザに関連付けられた1つまたは複数の構造物を定義および/または編成することができる。たとえば、ユーザに関連付けられた構造物は、家、会社、自動車、オフィス、および/またはユーザに関連付けられた他の任意の適切な構造物とすることができる。ユーザは、各構造物を1つまたは複数の部屋(たとえばベッドルーム、リビングルーム、キッチン)に編成することができ、1つまたは複数のスマートデバイスを1つまたは複数の部屋に割り当てることができる。たとえば、ユーザは、1つまたは複数のスマートライトを、特定の構造物の第1の部屋に割り当て、1つまたは複数のドアロッキングシステムを、構造物の第2の部屋に割り当てることができる。次いで、ユーザは、第2の構造物内の1つまたは複数の部屋に、1つまたは複数の異なるスマートデバイスを割り当てることができる。
【0013】
ユーザは、デバイストポロジー表現内のスマートデバイスに、1つまたは複数の識別子を割り当てることができる。識別子は、ユーザによって選択され、デバイストポロジー表現内のそれぞれのスマートデバイスに関連付けられ得る。識別子は、ユーザによってスマートデバイスのために選択されたニックネームおよび/またはエイリアス(たとえば、カウチランプ、フロントドアロック、ベッドルームスピーカーなど)を含むことができる。このように、識別子は、スマートデバイスを制御するための音声発声を提供するときにユーザが使用する可能性があるそれぞれのスマートデバイスの名前またはエイリアスとすることができる。
【0014】
デバイストポロジー表現は、それぞれのデバイスに関連付けられた1つまたは複数のデバイス属性をさらに指定することができる。デバイス属性は、スマートデバイスが実行するように構成された1つまたは複数のアクションに関連付けることができる。たとえば、照明デバイスに関連付けられたデバイス属性は、点灯機能、消灯機能、減光機能、および/または照明デバイスに関連付けられた他の適切な属性を含むことができる。別の例として、自動ドアロッキングデバイスは、ロック機能、ロック解除機能、および/または他の適切な機能を含むことができる。
【0015】
ユーザは、音声発声を制御デバイスに提供することができる。音声発声は、1つまたは複数のスマートデバイスを制御する意図を指定する任意の適切な音声発声とすることができる。たとえば、ユーザは、スマートデバイスの状態を変更すること(たとえば、スマートデバイスをオンまたはオフにすること、スマートデバイスの音量を上げることなど)を意図して、またはスマートデバイスに関連付けられた情報(たとえば、現在の気温に関連付けられた情報など)を受信することを意図して音声発声を提供し得る。制御デバイスは、ユーザから音声発声を受信し、たとえばネットワークを介して1つまたは複数のスマートデバイスまたは中央サーバと通信することができる任意の適切なデバイスとすることができる。制御デバイスは、音声発声を提供する際にユーザが話すデバイスとすることができる。いくつかの実装形態では、制御デバイスは、スマートフォン、タブレット、ラップトップコンピュータ、デスクトップコンピュータ、ウェアラブルコンピューティングデバイス、および/または他の適切なユーザデバイスなど、ユーザに関連付けられたユーザデバイスとすることができる。いくつかの実装形態では、制御デバイスは、音声発声を受信するように構成されたスマートデバイスとすることができる。たとえば、制御デバイスは、デバイストポロジー表現において指定されたスマートデバイスとすることができる。
【0016】
音声発声は、1つまたは複数のスマートデバイスに対してユーザが意図した制御コマンドを決定するように解釈することができる。この点について、音声認識は、デバイストポロジー表現に少なくとも部分的に基づいて音声発声に対して実行することができる。たとえば、音声発声を示すデータは、音声発声の転写(Transcription)を決定するために、1つまたは複数の言語モデルに提供され得る。いくつかの実装形態では、音声発声のテキスト転写を決定するために、デバイストポロジー表現の方に、一般的な言語モデルにバイアスをかけることができる。一般的な言語モデルは、複数の一般的なフレーズを含むことができ、確率推定値を各フレーズと相関させることができる。各フレーズは、1つまたは複数の単語のシーケンスを含むことができる。確率推定値は、それぞれのフレーズの予測された出現を特定することができる。本開示の範囲から逸脱することなく、様々な適切な一般的な言語モデルを使用できることが諒解されよう。
【0017】
個人別の言語モデルを生成するために、デバイストポロジー表現の方に、一般的な言語モデルにバイアスをかけることができる。特に、デバイストポロジー表現に関連付けられた1つまたは複数の単語またはフレーズに関連付けられた確率推定値を増加させることによって、一般的な言語モデルにバイアスをかけることができる。たとえば、1つまたは複数の単語またはフレーズは、デバイストポロジー表現において指定された部屋名、構造物名、デバイス識別子、デバイス属性に関連付けられた用語などを含むことができる。このようにして、個人別の言語モデルは、デバイストポロジー表現に含まれる単語またはフレーズのより高い出現確率を推定することができる。
【0018】
個人別の言語モデルに基づいて、音声発声のテキスト転写を決定するために、音声発声を示すデータを個人別の言語モデルに提供することができる。いくつかの実装形態では、一般的な言語モデルに基づいて、音声発声の第1の転写を決定するために、音声発声を示すデータを一般的な言語モデルに提供することができる。第1の転写の精度の信頼度を示す第1の転写について、第1の信頼度スコアを決定することができる。次いで、個人別の言語モデルに基づいて、音声発声の第2の転写を決定するために、音声発声を示すデータを個人別の言語モデルに提供することができる。第2の転写の精度の信頼度を示す第2の転写について、第2の信頼度スコアを決定することができる。いくつかの実装形態では、より高い信頼度スコアを有する転写を使用することができる。いくつかの実装形態では、音声発声を示すデータを、様々な適切なアプリケーションに関連付けられた1つまたは複数の特殊な言語モデルなど、1つまたは複数の追加の言語モデルにさらに提供することができる。このようにして、追加の言語モデルを使用して、1つまたは複数の追加の転写を決定することができ、各転写は関連する信頼度スコアを有する。最も高い信頼度スコアを有する転写を使用することができる。
【0019】
ひとたび音声発声の転写が決定されると、制御すべき1つまたは複数のデバイス(たとえば選択されたデバイス)、および選択されたデバイスによって実行されるべき1つまたは複数のアクションを決定することができる。たとえば、転写の意味解釈は、1つまたは複数の意味解釈技法を使用して決定することができる。意味解釈は、転写の概念的な意味の表現を提供することができる。このように、転写の解釈は、音声発声を実行する際のユーザの意図の解釈を提供することができる。一例として、ユーザからの音声発声の転写が「照明をオンにする」ように述べた場合、転写の意味解釈は、実行されるべきアクション(たとえば、1つまたは複数の照明デバイスの起動)、およびアクションを実行するための1つまたは複数の選択されたデバイス(たとえば、ユーザによって制御されることを意図された1つまたは複数の適切な照明デバイス)を決定しようと試みることができる。
【0020】
解釈は、デバイストポロジー表現に少なくとも部分的に基づいて決定することができる。たとえば、デバイストポロジー表現は、1つまたは複数の選択されたデバイスおよび/または実行されるべきアクションを決定するためにアクセスされ得る。このようにして、デバイストポロジー表現にアクセスし、転写と比較して、転写に関連付けられた1つまたは複数の用語とデバイストポロジー表現に関連付けられた1つまたは複数の用語との間の一致を判定することができる。たとえば、転写が「カウチランプをオンにする」と読む場合、デバイストポロジー表現にアクセスして、デバイストポロジー表現において指定された、「カウチランプ」のデバイス識別子を有するデバイスがあるかどうかを判定することができる。
【0021】
示されるように、選択されたデバイスによって実行されるべき1つまたは複数のアクションも決定され得る。たとえば、アクションは、転写の解釈に基づいて決定することができる。いくつかの実装形態では、デバイストポロジー表現において指定された、選択されたデバイスに関連付けられたデバイス属性に少なくとも部分的に基づいて、アクションを決定することができる。このようにして、識別されたアクションは、選択されたデバイスが実行することができるアクションとすることができる。
【0022】
いくつかの事例では、デバイストポロジーにおいて指定されたデバイス識別子と転写の用語との間の直接一致は、決定できない可能性がある。たとえば、ユーザは、音声発声を実行するときにデバイス識別子を指定するのではなく、より非公式の命令を与える可能性がある。別の例として、デバイストポロジー表現において指定された複数の構造物は、同じまたは類似の名前または識別子を有する1つまたは複数の部屋および/またはデバイスを含む可能性がある。一例として、「ベッドルームの照明をオンにする」と読む転写は、特定のデバイス識別子への言及を含まず、したがって、直接一致を決定することができない場合がある。そのような場合、1つまたは複数の選択されたデバイスを推論するために、デバイストポロジー表現にアクセスされ得る。たとえば、デバイストポロジー表現にアクセスして、デバイストポロジー表現において指定された構造物内の「ベッドルーム」とラベル付けされた部屋を識別することができる。そのような「ベッドルーム」が識別された場合、ベッドルーム内にある1つまたは複数の適切なデバイスを識別することができる。たとえば、デバイストポロジー表現がベッドルーム内の1つまたは複数の照明デバイスを指定する場合、1つまたは複数の照明デバイスのうちの少なくとも1つを、選択されたデバイスと推論することができる。
【0023】
転写においてデバイス識別子が指定されていない場合、デバイストポロジー表現において指定されたデバイス属性に少なくとも部分的に基づいて、1つまたは複数の選択されたデバイスおよび/または実行されるべきアクションを決定することができる。たとえば、デバイストポロジー表現において指定されたデバイス属性を転写と比較して、転写において指定されたアクションを実行することができる1つまたは複数のデバイスを決定することができる。このようにして、それぞれのデバイス属性に少なくとも部分的に基づいて、選択されたデバイスを推論することができる。
【0024】
いくつかの実装形態では、ユーザの位置などのコンテキストデータに少なくとも部分的に基づいて、選択されたデバイスおよび/または実行されるべきアクションを決定することができる。たとえば、ユーザからの音声発声の受信に応答して、ユーザの位置を決定することができる。位置は、様々な適切な位置決定技法を使用して決定することができる。位置決定技法は、ユーザが音声発声を提供する制御デバイスに少なくとも部分的に基づいて決定することができる。たとえば、制御デバイスは、デバイストポロジー表現において指定されたスマートデバイスであり、ユーザ位置は、デバイストポロジー表現において制御デバイスが割り当てられている構造物および/または部屋にマッピングすることができる。制御デバイスがデバイストポロジー表現において指定されていないユーザデバイスである場合、ユーザ位置は、1つもしくは複数のスマートデバイスに関連付けられたワイヤレスアクセスポイントまたは短距離ビーコンデバイスを使用する技法、および/あるいは他の適切な位置決定技法など、1つもしくは複数の位置決定技法を使用して決定できる。次いで、ユーザ位置を、デバイストポロジー表現において指定された1つまたは複数の構造物および/または部屋にマッピングすることができる。
【0025】
このようにして、ユーザ位置は、1つまたは複数の選択されたデバイスを決定する際にコンテキストデータとして使用することができる。たとえば、ユーザ位置は、「照明をつける」と読む転写の受信に応答して決定され、デバイストポロジー表現において指定された1つもしくは複数の部屋および/または構造物にマッピングされて、ユーザが位置する構造物および部屋を決定することができる。そのような構造物および部屋内で1つまたは複数の照明デバイスを識別して、ユーザによって制御されることを意図した選択されたデバイスを決定することができる。このようにして、そのような場合には、ユーザが制御したい照明は、ユーザが現在位置している部屋の中の照明であると推論することができる。
【0026】
制御されるべき1つまたは複数の選択されたデバイス、および選択されたデバイスによって実行されるべき1つまたは複数のアクションが決定されると、1つまたは複数の制御コマンドが生成され、選択されたデバイスにそれぞれ提供され得る。1つまたは複数の制御コマンドは、選択されたデバイスが指定されたアクションを実行するための命令を含むことができる。適切な制御コマンドを受信すると、選択されたデバイスは、受信された制御コマンドに従って適切なアクションを実行することができる。いくつかの実装形態では、受信された音声発声に基づいて、1つまたは複数の選択されたデバイスおよび/または実行されるべきアクションを決定することができない場合、ユーザが音声発声を明確にし、および/または1つもしくは複数のスマートデバイスによって実行されるべき1つまたは複数のアクションを手動で選択することを要求するプロンプトを、ユーザに提供する(たとえば、制御デバイスまたは他の適切なデバイスによって表示されるユーザインターフェース内に)ことができる。
【0027】
このようにして、本開示の例示的な態様は、スマートホームおよび/またはモノのインターネット環境において使用するための音声コマンド処理の効率および精度を向上させるために使用することができる。特に、スマートデバイスが配置されている1つまたは複数の構造物のトポロジーに対してスマートデバイスを編成することは、音声発声のよりロバストな解釈を可能にし、ユーザと制御デバイスとの間の自然な「会話のような」通信経験を可能にすることができる。ユーザ位置などのコンテキストデータを、デバイストポロジーと併せて考慮することによって、ユーザによって提供された音声発声の意味を推論するためのより大きい能力を提供することができる。さらに、そのような音声コマンド処理技法は、より広い範囲の音声発声を正確に、およびより迅速に解釈する能力を容易にすることによって、ユーザとシステムとの間のより少ない通信ラウンドを可能にすることができる。したがって、たとえば、繰り返される音声発声の受信および処理など、スマートデバイスによって実行されるアクションの数を低減することができ、またはより多くの情報の要求の出力、および応答の処理を回避することができ、したがって、スマートデバイスの電力消費を低減することができる。本開示はスマートホームおよび/またはモノのインターネット環境において音声コマンドを処理することを対象としているが、本開示の例示的な態様は、本開示の範囲から逸脱することなく、様々な他の適切なアプリケーションおよび環境に拡張できることが諒解されよう。たとえば、本開示の例示的な態様は、様々な他の適切な非モノのインターネットデバイスを制御するために使用される音声コマンドを処理し、解釈するために使用することができる。
【0028】
ここで図面を参照して、本開示の例示的な態様について、さらに詳細に説明する。たとえば、
図1は、本開示の例示的な実施形態による、音声コマンドを処理するための例示的なシステム100の概要を示す。システム100は、制御デバイス102とサーバ104とを含む。制御デバイス102とサーバ104は、たとえばネットワークを介して通信することができる。制御デバイス102は、ユーザからの音声発声を監視し、受信するように構成された任意の適切なデバイスとすることができる。示されるように、音声発声は、1つまたは複数のスマートデバイスを制御することを意図して、ユーザによって話されるセンテンスまたはフレーズとすることができる。制御デバイス102は、ユーザに関連付けられたユーザデバイスとすることができる。いくつかの実装形態では、制御デバイス102は、スマートデバイスとすることができる。スマートデバイスは、中央サーバ、クラウドコンピューティングシステム、および/または1つもしくは複数の追加のスマートデバイスと通信して、任意の様々な有用なスマートホームおよび/またはモノのインターネットサービスを提供するように構成されたネットワーク接続デバイスとすることができる。制御デバイスは、ユーザによる音声発声の提供に基づいて動的に構成することができる。たとえば、制御デバイスは、ユーザからの音声発声を受信するデバイス(たとえば、ユーザデバイス、スマートデバイス、または他のデバイス)とすることができる。
【0029】
ユーザからの音声発声を受信すると、制御デバイス102は、音声発声を示すデータをサーバ104に提供することができる。サーバ104は、バイアサー(biaser)106、転写部(transcriber)108、インタープリタ110、およびコマンド生成器112を含む。音声発声を示すデータを転写部108に提供することができる。転写部108は、言語モデルデータ114に少なくとも部分的に基づいて、音声発声の1つまたは複数のテキスト転写を決定するように構成することができる。言語モデルデータ114は、音声発声を転写するための1つまたは複数の言語モデルを含むことができる。特に、言語モデルデータ114は、複数の一般的なフレーズについての確率推定値を指定する一般的な言語モデルを含むことができる。言語モデルデータ114は、たとえば個人別の言語モデルなど、1つまたは複数の特殊な言語モデルをさらに含むことができる。個人別の言語モデルは、バイアサー106によって生成することができる。特に、個人別の言語モデルは、デバイストポロジー表現116の方に、一般的な言語モデルにバイアスをかけることによって生成することができる。
【0030】
デバイストポロジー表現116は、ユーザに関連付けられた1つまたは複数のスマートデバイスの組織的トポロジーを定義するためにユーザによって構築することができる。たとえば、
図2は、デバイストポロジー表現を定義するための例示的なユーザインターフェース120を示す。特に、
図2は、ユーザインターフェース120を表示するように構成されたユーザデバイス122を示す。
図2に示されるユーザインターフェース120は、説明のためのものにすぎず、本開示の範囲から逸脱することなく、様々な他の適切なユーザインターフェースを使用して、デバイストポロジー表現を実装することができることが諒解されよう。ユーザデバイス122は、スマートフォン、タブレット、ラップトップコンピュータ、デスクトップコンピュータ、ウェアラブルコンピューティングデバイスなど、任意の適切なユーザデバイスとすることができる。いくつかの実装形態では、ユーザデバイス122は、スマートデバイスまたは他のデバイスとすることができる。いくつかの実装形態では、ユーザは、その位置のデバイストポロジー表現を定義するためにその位置にいる必要がある場合がある。たとえば、そのような実装形態では、特定の構造物についてデバイストポロジー表現を定義することを望むユーザは、そのデバイストポロジー表現を実装するためにその構造物にいる必要がある。このようにして、ユーザの位置は、様々な適切な位置決定技法を使用して決定することができ、ユーザは、ユーザ位置にある、またはユーザ位置の近くにある構造物についてのデバイストポロジー表現を定義することを許可され得る。
【0031】
ユーザインターフェース120は、ユーザによるデバイストポロジー表現126の実装を容易にするための1つまたは複数のユーザインターフェース要素124を含むことができる。デバイストポロジー表現126は、
図1および
図3に示すデバイストポロジー表現116に対応することができる。示されるように、1つまたは複数のユーザインターフェース要素124は、ユーザが構造物を追加し、部屋を追加し、デバイストポロジー表現126にデバイスを追加することを可能にするインターフェース要素を含む。このようにして、ユーザは、必要に応じてユーザインターフェース要素124と対話して、デバイストポロジー表現126を定義し、編成することができる。たとえば、ユーザは、「デバイスの追加」インターフェース要素を選択して、新しいスマートデバイスをデバイストポロジー表現126に追加することができる。このようにして、ユーザは、新しいデバイスを追加し、そのデバイスに関連付けるための1つまたは複数のデバイス識別子を追加し、そのデバイスに関連付けるための1つまたは複数のデバイス属性を追加することなどができ得る。同様に、ユーザが「部屋の追加」インターフェース要素を選択しようとした場合、ユーザは、新しい部屋を特定の構造物に追加したり、部屋に関連付けるための部屋識別子を追加したりすることができ得る。
【0032】
いくつかの実装形態では、デバイストポロジー表現126は、ユーザがユーザインターフェース120内に表示されるデバイストポロジー表現126と対話することができるように、対話型ユーザインターフェース要素とすることができる。たとえば、ユーザは、(たとえばタッチ入力または他の適切な入力を介して)デバイストポロジー表現126の特定の構造物、部屋、またはデバイスを選択して、選択された構造物、部屋、またはデバイスに関連付けられたより多くの情報の提示を容易にすることができる。
【0033】
図3は、本開示の例示的な実施形態による、例示的なデバイストポロジー表現116のブロック図を示す。デバイストポロジー表現116は、ユーザに関連付けられた複数の構造物内の複数のスマートデバイスのトポロジーを定義する。特に、構造物は、メインホーム152、ビーチハウス154、およびユーザに関連付けられたオフィス156を含む。各構造物を、構造物内の1つまたは複数の部屋に編成することができる。たとえば、
図3は、メインホーム152に関連付けられたリビングルーム158、ベッドルーム160、およびゲストルーム162を示す。各部屋は、ユーザに関連付けられたスマートホームおよび/またはモノのインターネットネットワーク内の1つまたは複数のスマートデバイスに関連付けることができる。特に、リビングルーム158は、「カウチランプ」のデバイス識別子を有する照明デバイス、「階下のサーモスタット」のデバイス識別子を有するサーモスタットデバイス、および「リビングルームのスピーカー」のデバイス識別子を有するスピーカーデバイスに関連付けられる。ベッドルーム160は、「天井ファン」のデバイス識別子を有する天井ファンデバイス、「オーバーヘッドライト」のデバイス識別子を有する1つまたは複数の照明デバイス、および「スピーカー」のデバイス識別子を有するスピーカーデバイスに関連付けられる。ゲストルーム162は、「階上のサーモスタット」のデバイス識別子を有するサーモスタットデバイス、「テーブルランプ」のデバイス識別子を有する照明デバイス、および「スピーカー」のデバイス識別子を有するスピーカーデバイスに関連付けられる。指定されたデバイスは、単一のデバイスまたはデバイスのグループとすることができる。たとえば、デバイス識別子「オーバーヘッドライト」は、ベッドルームのオーバーヘッド天井ライトを構成する単一の照明デバイスまたは照明デバイスのグループに対応することができる。
【0034】
示されるように、ユーザは、デバイストポロジー表現内に1つまたは複数の構造物および1つまたは複数の部屋を定義することができる。ユーザは、各部屋および構造物に識別子を割り当てることができる。ユーザは、各部屋に1つまたは複数のスマートデバイスを割り当てて、実際の構造物の部屋内のデバイスのトポロジーを表すことができる。ユーザはさらに、1つまたは複数のスマートデバイスの各々に1つまたは複数のデバイス識別子を割り当てることができる。いくつかの実装形態では、ユーザがデバイスにデバイス識別子を割り当てない場合、そのデバイスに、デフォルトのデバイス識別子を自動的に割り当てることができる。デバイストポロジー表現116はさらに、デバイスごとに1つまたは複数のデバイス属性を指定することができる。デバイス属性は、デバイスが実行できる1つまたは複数のアクションに関連付けることができる。たとえば、照明デバイスは、「オンにする」属性、「オフにする」属性、「減光」属性などを有することができる。天井ファンデバイスは、「オンにする」属性、「オフにする」属性、「速度を上げる」属性、「速度を下げる」属性などを有することができる。いくつかの実装形態では、デバイス属性は、ユーザによってデバイストポロジー表現116に入力され得る。いくつかの実装形態では、デバイス属性は、デバイストポロジー表現116に自動的に追加され得る。
【0035】
ユーザがたとえばデバイストポロジーに対する1つまたは複数の変更を反映することを望むと、デバイストポロジー表現をユーザが更新または修正することができる。たとえば、ユーザは、ユーザが望むように、デバイスの追加、デバイスの削除、部屋および/または構造物間でのデバイスの移動、構造物の追加、構造物の削除、部屋の追加、部屋の削除などを行うことができる。このようにして、ユーザは、実際の構造物内のデバイスの正確で動的なトポロジーを提供するために、デバイストポロジーを編成することができる。
【0036】
デバイストポロジー表現116は、一般的な言語モデルにバイアスをかけるために使用することができる。再び
図1を参照すると、バイアサー106は、デバイストポロジー表現116および一般的な言語モデルにアクセスして、デバイストポロジー表現116の方に、一般的な言語モデルにバイアスをかけるように構成することができる。たとえば、バイアサーは、デバイストポロジー表現116において指定された1つまたは複数の用語またはフレーズ(たとえば、デバイス識別子、部屋名、構造物名、デバイスタイプ(たとえば、照明デバイス、スピーカーデバイス)、デバイス属性など)を識別することができる。バイアサー106は、一般的な言語モデルによって指定される用語の確率推定値を増加させることができ、識別された用語またはフレーズに増加された確率推定値が割り当てられるように、個人別の言語モデルを生成することができる。このようにして、ユーザによって提供された音声発声がデバイストポロジー表現116に関連付けられた用語またはフレーズを含む可能性が高くなることを反映するように、個人別の言語モデルを生成することができる。
【0037】
示されるように、転写部108は、言語モデルデータ114に少なくとも部分的に基づいて、音声発声の1つまたは複数のテキスト転写を決定することができる。転写部108は、様々な適切な音声認識技法を使用して音声発声のテキスト転写を判定することができることが諒解されよう。いくつかの実装形態では、転写部108は、バイアサー106によって生成された個人別の言語モデルに基づいて、音声発声の転写を決定することができる。いくつかの実装形態では、転写部108は、1つまたは複数の追加の言語モデル(たとえば、一般的な言語モデルおよび/または言語モデルデータ114に関連付けられた1つまたは複数の他の適切な言語モデル)を使用して、音声発声の1つまたは複数の追加の転写を決定できる。そのような実装形態では、それぞれの転写が音声発声の正確な転写である転写部108の信頼度を特定する信頼度スコアを、転写ごとに決定することができる。次いで、信頼度スコアに少なくとも部分的に基づいて、複数の転写から1つの転写を選択することができる。いくつかの実装形態では、選択された転写が、個人別の言語モデルを使用して決定された転写である場合、選択された転写をインタープリタ110に提供することができる。
【0038】
いくつかの実装形態では、デバイストポロジー表現は、ユーザの位置に少なくとも部分的に基づいて使用するために選択され得る。たとえば、ユーザがデバイストポロジー表現内で指定された特定の構造物内にいると判定することができる。次いで、ユーザによって提供された音声発声を処理する際に使用するために、その構造物を指定するデバイストポロジー表現にアクセスされ得る。そのような実装形態では、次いで、アクセスされたデバイストポロジー表現を使用して、ユーザによって提供された音声発声の転写を決定することができる。このようにして、次いで、ユーザの位置に少なくとも部分的に基づいて、転写が決定され得る。たとえば、ユーザの位置が決定されると、対応するデバイストポロジー表現にアクセスすることができ、デバイストポロジー表現に関連付けられた1つまたは複数の用語を使用して、一般的な言語モデルにバイアスをかけることができる。いくつかの実装形態では、構造物および/またはデバイストポロジー表現のための個人別の言語モデルが以前に生成されていることがあり、その場合、ユーザ位置の決定および/またはユーザからの音声発声の受信に応答して、適切な個人別の言語モデルにアクセスし、それを使用して、音声発声の転写を決定し得る。次いで、本開示の例示的な態様に従って、ユーザ位置に対応するそのようなデバイストポロジー表現を使用して、音声発声を解釈することができる。
【0039】
決定された転写は、インタープリタ110に提供することができる。インタープリタ110は、音声発声を制御デバイス102に提供する際のユーザの意図を決定するように構成することができる。特に、インタープリタ110は、転写に少なくとも部分的に基づいて、1つまたは複数の選択されたデバイス118、および選択されたデバイス118によって実行されるべき1つまたは複数のアクションを決定するように構成され得る。たとえば、いくつかの実装形態では、インタープリタ110は、転写に対して意味解釈技法を実行して、転写の概念的意味の論理表現を決定することができる。このようにして、インタープリタ110は、単語間の意味関係を認識することによって、転写における各単語の役割を決定することができる。
【0040】
インタープリタ110は、デバイストポロジー表現116に少なくとも部分的に基づいて、1つまたは複数の選択されたデバイス118および/または実行されるべきアクションを決定することができる。たとえば、インタープリタ110は、転写をデバイストポロジー表現116と比較して、選択されたデバイス118および/または実行されるべきアクションを決定することができる。特に、インタープリタ110は、転写をデバイストポロジー表現116において指定されたデバイス識別子と比較して、転写の1つまたは複数の用語と1つまたは複数のデバイス識別子との間の相関関係を決定することができる。たとえば、転写が「リビングルームのスピーカーの音量を上げる」と読む場合、リビングルームのスピーカーという用語を、デバイストポロジー表現116のデバイス識別子「リビングルームのスピーカー」に相関付けることができる。このようにして、相関関係に基づいて、デバイス識別子「リビングルームのスピーカー」を有するスピーカーデバイスを、選択されたデバイスとして選択することができる。
【0041】
いくつかの実装形態では、インタープリタ110は、1つまたは複数の選択されたデバイスを推論するように構成することができる。たとえば、デバイス識別子と転写との間の完全な一致を見つけられない場合、インタープリタは、1つまたは複数の選択されたデバイスを推論するように構成することができる。別の例として、デバイストポロジー表現において指定された2つ以上のデバイスが同じまたは類似のデバイス識別子を有する場合、インタープリタ110は、どのデバイスをユーザが制御しようとしているのかを判定できない可能性がある。たとえば、デバイストポロジー表現116は、ベッドルーム160とゲストルーム162の両方に「スピーカー」の同じデバイス識別子を有するスピーカーデバイスを含む。そのような場合、インタープリタ110は、どのスピーカーデバイスをユーザが制御したいのかを区別することができない場合がある。次いで、インタープリタ110は、デバイストポロジー表現116および/またはユーザに関連付けられた他の情報に少なくとも部分的に基づいて、選択されたデバイスを推論するように構成され得る。
【0042】
一例として、インタープリタ110は、転写とデバイス識別子との間に直接一致はなく、転写が、デバイストポロジー表現116において指定されたデバイス識別子とかなり似ている1つまたは複数の用語を含む場合、選択されたデバイスを推論するように構成され得る。そのような場合、インタープリタ110は、かなり似ている用語とデバイス識別子とを相関させることができ、類似性に基づいて選択されたデバイスを推論することができる。たとえば、転写が「ソファーランプをオンにする」と読む場合、インタープリタ110は、デバイス識別子「カウチランプ」を識別でき、フレーズ「ソファーランプ」がデバイス識別子「カウチランプ」とかなり似ていると決定することができる。次いで、インタープリタ110は、識別子「カウチランプ」を有する照明デバイスを、選択されたデバイスとして選択することができる。
【0043】
いくつかの実装形態では、インタープリタ110は、デバイストポロジー表現116において指定されたデバイス属性に少なくとも部分的に基づいて、選択されたデバイスを推論することができる。デバイス属性は、各デバイスのタイプ(たとえば、照明デバイス、スピーカーデバイスなど)、各デバイスの1つもしくは複数の機能、または各デバイスによって実行可能なアクション(たとえば、オンにする、オフにする、音量を上げる、音量を下げる、速度を上げる、速度を下げるなど)、および/またはデバイスに関連付けられた他の適切な属性もしくは特徴を指定することができる。このようにして、転写をデバイストポロジー表現において指定されたデバイス属性と比較して、1つまたは複数の選択されたデバイスを決定することができる。たとえば、インタープリタ110は、相関関係を判定するために、転写内の1つまたは複数の用語を、デバイスについての1つまたは複数のデバイス属性と比較することができる。たとえば、転写が「温度を上げる」と読む場合、インタープリタ110は、温度を上げるアクションに関連付けられた適切な属性を有する1つまたは複数のデバイスを識別しようと試みることができる。このようにして、インタープリタ110は、適切なデバイスを「階上のサーモスタット」および「階下のサーモスタット」に絞り込むことができ得る。
【0044】
いくつかの実装形態では、インタープリタ110は、ユーザが音声発声を制御デバイス102に提供するときに、ユーザの位置に少なくとも部分的に基づいて、1つまたは複数の選択されたデバイスを決定することができる。示されるように、制御デバイス102は、音声発声が提供されるスマートデバイスまたはユーザデバイスとすることができる。インタープリタ110は、制御デバイス102の位置を決定し、制御デバイス102の位置をユーザの位置に相関させ得る。たとえば、制御デバイス102がデバイストポロジー表現116において指定されたスマートデバイスである場合、インタープリタ110は、デバイストポロジー表現にアクセスして、位置(たとえばデバイストポロジー表現116において指定された構造物および部屋)を決定することができる。次いで、インタープリタ110は、ユーザ位置を、ユーザが音声コマンドを提供した制御デバイス102の位置と相関させることができる。
【0045】
制御デバイス102がデバイストポロジー表現116内で指定されていない場合(たとえば、制御デバイス102がユーザデバイスまたは他の適切な制御デバイスであるとき)、1つまたは複数の代替位置決定技法を使用することができる。たとえば、いくつかの実装形態では、1つまたは複数のワイヤレス(たとえばWi-Fi)アクセスポイントを使用して、制御デバイス102の位置を突き止めることができる。制御デバイス102の位置は、1つまたは複数のアクセスポイントの既知の位置、および制御デバイス102と1つまたは複数のアクセスポイントとの間で通信される1つまたは複数の信号に少なくとも部分的に基づいて決定することができる。より詳細には、いくつかの実装形態では、ユーザデバイスの位置は、ユーザデバイスと1つまたは複数のアクセスポイントとの間で通信される1つまたは複数の信号に関連付けられた往復時間(RTT)の計算に少なくとも部分的に基づいて決定することができる。たとえば、ユーザデバイスは、信号を複数のアクセスポイントに送信することによって、位置探査プロセスを開始することができる。アクセスポイントは、1つまたは複数の応答信号をユーザデバイスに送信することができる。応答信号は、それぞれのアクセスポイントが開始信号を受信してから応答信号を送信したときまでの間の時間遅延(たとえば、処理遅延)を示すデータを含むことができる。ユーザデバイスは、ユーザデバイスが開始信号を送信した時刻、ユーザデバイスが応答信号を受信した時刻、および/またはアクセスポイントに関連付けられた時間遅延に少なくとも部分的に基づいて、開始信号および/または応答信号に関連付けられた飛行時間を計算することができる。ユーザデバイスが3つ以上のアクセスポイントから応答信号を受信した場合、ユーザデバイスは、決定された距離および位置に三辺測量技法を適用して、アクセスポイントに対するそれ自体の位置を突き止めることができる。たとえば、ユーザデバイスは、それがあるエリア内(たとえば特定の部屋内)の特定の位置にあると決定することができる。
【0046】
同様に、いくつかの実装形態では、制御デバイス102の位置は、1つまたは複数のビーコンデバイス(たとえばBluetooth(登録商標)ビーコンデバイス)を使用して決定することができる。たとえば、制御デバイスの位置は、ビーコンデバイスの既知の位置、およびビーコンデバイスと制御デバイス102との間で通信される1つまたは複数の信号に少なくとも部分的に基づいて決定することができる。本開示の範囲から逸脱することなく、様々な他の適切な位置決定技法を使用することができることが諒解されよう。より詳細には、ユーザデバイスの位置を決定する際に、ユーザデバイスは、ユーザが位置する構造物内にある2つ以上のビーコンデバイスによって受信され得る1つまたは複数の信号をブロードキャストすることができる。ビーコンデバイスは、構造物内の既知の位置を有することができる。いくつかの実装形態では、ビーコンデバイスを、デバイストポロジー表現116において定義されている1つまたは複数のスマートデバイス内に実装することができる。1つまたは複数の信号の受信に応答して、2つ以上のビーコンデバイスは、ビーコンデバイスをそれぞれ識別する1つまたは複数の識別信号をブロードキャストすることができる。識別信号は、それぞれのビーコンデバイスの位置を含むことができる。次いで、受信した識別信号内で指定されたビーコン位置に少なくとも部分的に基づいて、ユーザデバイスの位置を決定することができる。
【0047】
本開示の範囲から逸脱することなく、様々な他の位置決定技法を使用することができることが諒解されよう。たとえば、位置決定技法は、Bluetooth(登録商標)、Bluetooth(登録商標) low energy、ZigBee、ニアフィールド通信、Wi-Fi Direct、または他の技術など、様々な適切な通信信号を使用して実施することができる。代替実施形態では、ユーザの位置は、少なくとも部分的に、ユーザデバイスに関連付けられた測位システム(たとえば、GPSまたは他の測位システム)、および/またはネットワークベースの(たとえば、WiFi、セルラーネットワークなど)位置決定によって決定することができる。
【0048】
いくつかの実装形態では、デバイストポロジー表現116に対して、制御デバイス102の位置を決定することができる。たとえば、制御デバイス102の位置がワイヤレスアクセスポイントおよび/またはビーコンデバイスを使用して決定される実装形態では、アクセスポイントおよび/またはビーコンデバイスの位置を、デバイストポロジー表現116内の1つまたは複数の部屋にマッピングすることができる。このようにして、デバイストポロジー表現116に対する制御デバイス102の位置は、次いで、デバイストポロジー表現116内のアクセスポイントおよび/またはビーコンデバイスの位置に少なくとも部分的に基づいて決定することができる。
【0049】
示されるように、インタープリタ110は、ユーザによる音声発声の提供時における制御デバイスの位置に少なくとも部分的に基づいて、選択されたデバイスを決定することができる。インタープリタ110は、選択されたデバイスが、ユーザがいる同じ部屋にあると推論することができる。一例として、転写が「照明をオンにする」と読む場合、インタープリタ110は、ユーザがベッドルームにいると判定することができ、ユーザが言及している照明デバイスは、デバイストポロジー表現116においてベッドルームに関連付けられた照明デバイス(たとえば、「オーバーヘッドライト」)であると推論することができる。
【0050】
上記の解釈技法のうちの1つまたは複数は、転写を解釈するためにインタープリタ110によって使用され得る。たとえば、様々な場合において、選択されたデバイスは、デバイス識別子、デバイス属性、またはユーザ位置のうちの1つまたは複数に少なくとも部分的に基づいて決定され得る。
【0051】
インタープリタ110は、実行されるべき1つまたは複数の選択されたアクションをさらに決定することができる。たとえば、インタープリタ110は、転写を分析して、1つまたは複数のアクションを決定することができる。たとえば、インタープリタ110は、「照明をオンにする」と読む転写を分析することができ、フレーズ「オンにする」がデバイスを起動またはオンにするアクションに対応すると判定することができる。いくつかの実装形態では、インタープリタ110は、デバイストポロジー表現116において指定されたデバイス属性に少なくとも部分的に基づいて、実行されるべきアクションを決定することができる。たとえば、選択されたデバイスが決定されると、インタープリタ110は、転写と選択されたデバイスのデバイス属性とを比較して、転写とデバイス属性との間の相関関係を決定することができる。
【0052】
選択されたデバイスおよび実行されるべきアクションがひとたび決定されると、選択されたデバイスに、適切なアクションを実行するよう指示する、1つまたは複数の制御コマンドを決定することができる。特に、選択されたデバイスおよび実行されるべきアクションを示すデータを、コマンド生成器112に提供することができる。コマンド生成器112は、選択されたデバイスについての1つまたは複数の適切な制御コマンドを決定することができる。示されるように、制御コマンドは、選択されたデバイスと通信するための任意の適切な制御コマンドとすることができる。特に、制御コマンドは、選択されたデバイスに関連付けられた1つまたは複数の通信プロトコルに少なくとも部分的に基づいて決定することができる。このようにして、制御コマンドは、選択されたデバイスの通信プロトコルに少なくとも部分的に基づいて、任意の適切なフォーマットまたは構造とすることができる。コマンド生成器112は、選択されたデバイスが制御コマンドを実行し、適切なアクションを実行することができるように、制御コマンドを選択されたデバイスに提供することができる。
【0053】
システム100はクライアントサーバアーキテクチャを有するように示されているが、サーバ104の機能のうちの1つまたは複数(たとえば、バイアサー106、転写部108、インタープリタ110、またはコマンド生成器112の機能のうちの1つまたは複数)を、たとえば制御デバイス102など1つまたは複数の他の適切なデバイスによって実行することができることが諒解されよう。このようにして、制御デバイス102は、バイアサー106、転写部108、インタープリタ110、またはコマンド生成器112のうちの1つまたは複数を含むことができることが諒解されよう。
【0054】
図4は、本開示の例示的な実施形態による、音声コマンドを処理する例示的な方法(200)のフロー図を示す。方法(200)は、
図8に示すコンピューティングデバイスのうちの1つまたは複数など、1つまたは複数のコンピューティングデバイスによって実施することができる。さらに、
図4は、例示および説明のために特定の順序で実行されるステップを示す。本明細書で提供される開示を使用して、当業者は、本開示の範囲から逸脱することなく、本明細書で論じられる方法のいずれかのステップを、様々な方法で適合、再構成、拡張、省略、または修正できることを理解されよう。
【0055】
(202)において、方法(300)は、ユーザから音声発声を示すデータを受信するステップを含むことができる。示されるように、ユーザは、1つまたは複数のスマートデバイスを制御することを意図して、制御デバイスに音声発声を提供し得る。
【0056】
(204)で、方法(200)は、ユーザに関連付けられたデバイストポロジー表現にアクセスするステップを含むことができる。示されるように、ユーザは、ユーザに関連付けられた1つまたは複数の構造物のトポロジーを定義するデバイストポロジー表現をセットアップまたは構築することができる。たとえば、ユーザは、構造物を部屋に編成し、デバイスを部屋に割り当てることができる。ユーザは、デバイスにデバイス識別子を割り当てることができる。デバイストポロジー表現は、デバイスについての1つまたは複数のデバイス属性をさらに含むことができる。デバイス属性は、デバイスタイプ、機能などを指定することができる。このようにして、デバイストポロジー表現は、ユーザがデバイスの位置によってスマートホームまたはモノのインターネットネットワークを編成することを可能にすることができる。
【0057】
(206)において、方法(200)は、デバイストポロジー表現に少なくとも部分的に基づいて、音声発声の転写を決定するステップを含むことができる。たとえば、転写は、1つまたは複数の言語モデルに少なくとも部分的に基づいて決定することができる。たとえば、いくつかの実装形態では、転写は、デバイストポロジー表現において指定された1つまたは複数の用語(たとえば、デバイス識別子、部屋名、構造物名、デバイス属性など)の方に、一般的な言語モデルにバイアスをかけることによって決定できる。このようにして、デバイストポロジー表現の用語に関連付けられた確率推定値を増大させた個人別の言語モデルを生成することができる。音声発声の転写を決定するために、音声発声を示すデータを個人別の言語モデルに提供することができる。いくつかの実装形態では、転写を決定するために、音声発声を示すデータを1つまたは複数の追加の言語モデルに提供することができる。
【0058】
(208)において、方法(200)は、デバイストポロジー表現に少なくとも部分的に基づいて、転写の解釈を決定するステップを含むことができる。たとえば、解釈を決定するステップは、転写およびデバイストポロジー表現に少なくとも部分的に基づいて、1つまたは複数の選択されたデバイス、および選択されたデバイスによって実行されるべき1つまたは複数のアクションを決定するステップを含むことができる。1つまたは複数の選択されたデバイスは、デバイストポロジー表現において指定されたデバイスとすることができ、実行されるべき1つまたは複数のアクションは、選択されたデバイスに関連付けられた1つまたは複数のデバイス属性に関連付けられたアクションとすることができる。
【0059】
(210)において、方法(200)は、解釈に少なくとも部分的に基づいて、1つまたは複数の選択されたデバイスについての1つまたは複数の制御コマンドを生成するステップを含むことができる。1つまたは複数の制御コマンドは、適切なアクションを実行するためのそれぞれの選択されたデバイスに対する命令を含むことができる。制御コマンドは、関連するスマートデバイスによって理解することができる任意の適切な制御コマンドとすることができる。(212)において、方法(200)は、選択されたデバイスが制御コマンドを実行し、適切なアクションを実行することができるように、1つまたは複数の制御コマンドを選択されたデバイスに提供するステップを含むことができる。
【0060】
図5は、本開示の例示的な実施形態による、個人別の言語モデルを生成する例示的な方法(300)のフロー図を示す。方法(300)は、
図8に示すコンピューティングデバイスのうちの1つまたは複数など、1つまたは複数のコンピューティングデバイスによって実施することができる。いくつかの実装形態では、方法(300)は、
図1に示されているバイアサー106によって実施することができる。
【0061】
(302)において、方法(300)は一般的な言語モデルにアクセスするステップを含むことができる。示されるように、一般的な言語モデルは、複数の一般的なフレーズを含むことができる。フレーズは、一連の1つまたは複数の単語とすることができる。一般的な言語モデルは、関連するフレーズの出現の確率の推定を示す、各フレーズに関連付けられた確率推定値をさらに含むことができる。
【0062】
(304)において、方法(300)は、デバイストポロジー表現から1つまたは複数のバイアス用語またはフレーズを識別するステップを含むことができる。たとえば、1つまたは複数のバイアス用語またはフレーズは、デバイス識別子、部屋識別子、構造物識別子、デバイス属性、および/またはデバイストポロジー表現に関連付けられた他の適切な用語またはフレーズを含むことができる。
【0063】
(306)において、方法(300)は、1つまたは複数のバイアス用語に少なくとも部分的に基づいて、一般的な言語モデルにバイアスをかけるステップを含むことができる。たとえば、一般的な言語モデルにバイアスをかけるステップは、バイアス用語に少なくとも部分的に基づいて、一般的な言語モデルの1つまたは複数の確率推定値を調整するステップを含むことができる。特に、一般的な言語モデルにバイアスをかけるステップは、バイアス用語の推定出現確率を増加させるためにバイアス用語の確率推定値を増加させるステップを含むことができる。(308)において、方法(300)は、バイアスに少なくとも部分的に基づいて、個人別の言語モデルを生成するステップを含むことができる。たとえば、個人別の言語モデルは、一般的な言語モデルに基づいて生成することができる。個人別の言語モデルは、一般的な言語モデルと同じフレーズのセットを含むことができるが、バイアス用語の方にバイアスがかけられた確率推定値を含むことができる。
【0064】
図6は、本開示の例示的な実施形態による、音声発声のテキスト転写を決定する例示的な方法(400)のフロー図を示す。方法(400)は、
図8に示すコンピューティングデバイスのうちの1つまたは複数など、1つまたは複数のコンピューティングデバイスによって実施することができる。いくつかの実装形態では、方法(300)は、
図1に示されている転写部108によって実施することができる。
【0065】
(402)において、方法(400)は、音声発声を示すデータを一般的な言語モデルに提供するステップを含むことができる。(404)において、方法(400)は、一般的な言語モデルに少なくとも部分的に基づいて、音声発声の第1の転写を決定するステップを含むことができる。第1の転写は、様々な適切な音声認識技法を使用して決定することができる。(406)において、方法(400)は、第1の転写の第1の信頼度スコアを決定するステップを含むことができる。第1の信頼度スコアは、音声発声の第1の転写の精度の推定の表現とすることができる。
【0066】
(408)において、方法(400)は、音声発声を示すデータを個人別の言語モデルに提供するステップを含むことができる。個人別の言語モデルは、(たとえば、デバイストポロジー表現において指定された)スマートホームまたはモノのインターネットネットワークのトポロジーに少なくとも部分的に基づいて決定することができる。たとえば、個人別の言語モデルは、
図5に示された言語モデルとすることができる。(410)において、方法(400)は、個人別の言語モデルに少なくとも部分的に基づいて、音声発声の第2の転写を決定するステップを含むことができる。第2の転写は、様々な適切な音声認識技法を使用して決定することができる。(412)において、方法(400)は、第2の転写の第2の信頼度スコアを決定するステップを含み得る。第2の信頼度スコアは、音声発声の第2の転写の精度の推定の表現とすることができる。
【0067】
(414)において、方法(400)は、信頼度スコアに少なくとも部分的に基づいて、解釈されるべき転写を選択するステップを含むことができる。たとえば、より高い信頼度スコアを有する転写は、音声発声のより正確な転写であると決定することができ、解釈されるべき転写として選択することができる。いくつかの実装形態では、1つまたは複数の追加の言語モデルを使用して、1つまたは複数の追加の転写を決定することができる。それぞれの追加の転写について、追加の信頼度スコアを決定することができる。解釈されるべき転写は、各信頼度スコアに少なくとも部分的に基づいて選択することができる。
【0068】
図7は、本開示の例示的な実施形態による、音声発声の転写を解釈する例示的な方法(500)のフロー図を示す。方法(500)は、
図8に示すコンピューティングデバイスのうちの1つまたは複数など、1つまたは複数のコンピューティングデバイスによって実施することができる。いくつかの実装形態では、方法(300)は、
図1に示したインタープリタ110によって実施することができる。
【0069】
(502)において、方法(500)は、転写をデバイストポロジー表現において指定された1つまたは複数のデバイス識別子と比較するステップを含むことができる。(504)において、方法(500)は、デバイス識別子に少なくとも部分的に基づいて、選択されたデバイスを決定できるかどうかを決定するステップを含むことができる。たとえば、選択されたデバイスは、デバイス識別子と転写との間で相関付けできる場合に決定することができる。1つもしくは複数のデバイス識別子が転写内の1つもしくは複数の用語と一致する場合、および/または1つもしくは複数のデバイス識別子が転写内の1つもしくは複数の用語とかなり似ている場合、相関付けが行われ得る。いくつかの実装形態では、デバイストポロジー表現において指定された複数のデバイスと転写との間で相関付けが行われた場合、選択されたデバイスを決定できない可能性がある。たとえば、複数のデバイスが同じまたは類似のデバイス識別子を有する場合、選択されたデバイスを決定できない可能性がある。選択されたデバイスを決定することができる場合、(506)において、方法(500)は、選択されたデバイスおよび選択されたデバイスによって実行されるべきアクションを決定するステップを含むことができる。
【0070】
選択されたデバイスを決定することができない場合、(508)において、方法(500)は、転写をデバイストポロジー表現において指定された1つまたは複数のデバイス属性と比較するステップを含むことができる。示されるように、デバイス属性は、デバイスタイプおよび/またはデバイスの1つもしくは複数の機能を示すことができる。このようにして、デバイス属性を転写の中の1つまたは複数の用語と比較して、1つまたは複数の用語とデバイス属性との間の相関関係を決定することができる。転写と1つまたは複数のデバイス属性との相関は、選択されたデバイスに関する証拠を提供することができる。たとえば、相関が見つかった場合、相関するデバイス属性を有するデバイスのみを、選択されたデバイスとして選択すべきであると決定することができる。このようにして、相関は、選択されたデバイスを決定する際に、デバイスを絞り込むのに役立ち得る。
【0071】
(510)において、方法(500)は、選択されたデバイスを決定することができるかどうかを決定するステップを含むことができる。特に、選択されたデバイスを決定することができるかどうかを決定するステップは、1つもしくは複数のデバイス属性、および/または1つもしくは複数のデバイス識別子と転写との比較に少なくとも部分的に基づいて、選択されたデバイスを決定することができるかどうかを決定するステップを含むことができる。選択されたデバイスを決定することができる場合、方法(500)は、(506)に戻ることができ、実行されるべき1つまたは複数のアクションを決定することができる。
【0072】
選択されたデバイスを決定することができない場合、(512)において、方法(500)は、デバイストポロジー表現に対するユーザの位置を決定するステップを含むことができる。示されるように、制御デバイスがデバイストポロジー表現の組織トポロジー内で指定されたデバイスである場合、ユーザの位置は、デバイストポロジー表現内の制御デバイスの位置に対応し得る。制御デバイスがデバイストポロジー表現内で指定されていない場合、ユーザ位置は、ワイヤレスアクセスポイントおよび/またはビーコンデバイスを使用する技法など、様々な適切な位置決定技法に基づいて決定することができる。次いで、そのようにして決定されたユーザ位置は、デバイストポロジー表現において指定された構造物および部屋にマッピングすることができる。
【0073】
(514)において、方法(500)は、相対的なユーザ位置をデバイストポロジー表現において指定されたデバイストポロジーと比較するステップを含むことができる。たとえば、構造物内のユーザの位置は、デバイストポロジー表現において指定された位置に関連付けられたデバイスと比較することができる。このようにして、選択されたデバイスは、ユーザがいる部屋にあるデバイスであると推論することができる。たとえば、転写が「照明をオンにする」と読む場合、ユーザがいる部屋にあるデバイスを分析して、その部屋に関連付けられた1つまたは複数の照明デバイスを識別することができる。このようにして、選択されたデバイスとして選択されたデバイスは、ユーザが現在いる部屋内にある照明デバイスであるはずであると推論することができる。
【0074】
(516)において、方法(500)は、選択されたデバイスを決定することができるかどうかを決定するステップを含むことができる。特に、選択されたデバイスを決定することができるかどうかを決定するステップは、1つもしくは複数のデバイス属性、1つもしくは複数のデバイス識別子、および/または相対的なユーザ位置と転写との比較に少なくとも部分的に基づいて、選択されたデバイスを決定することができるかどうかを決定するステップを含むことができる。選択されたデバイスを決定することができる場合、方法(500)は、(506)に戻るステップを含むことができ、実行されるべきアクションを決定することができる。選択されたデバイスを決定することができない場合、(518)において、方法(500)は、より多くの情報をユーザに要求するステップを含むことができる。たとえば、音声コマンドに関するさらなる情報をユーザに求めるプロンプトを、制御デバイスまたは他の適切なデバイスのユーザインターフェースにおいて、ユーザに提示することができる。
【0075】
様々な例において、選択されたデバイスおよび/または実行されるべきアクションは、デバイス識別子、デバイス属性、または相対的なユーザ位置のうちの1つまたは複数に少なくとも部分的に基づいて決定できることが諒解されよう。このようにして、音声発声に関連付けられた1つまたは複数の選択されたデバイスを決定または推論するために、ユーザおよび/またはデバイストポロジー表現に関連付けられた様々なデータにアクセスし、および/またはそれらを決定することができる。デバイストポロジー表現の転写および特定の編成に応じて、選択されたデバイスおよび/または実行されるべきアクションを決定するために、上記の要因の様々な適切な組合せを使用することができる。このようにして、選択されたデバイスおよび/または実行されるべきアクションを決定するために、デバイストポロジー表現および/またはユーザ位置の様々な態様を、様々な方法で使用することができることが諒解されよう。
【0076】
図8は、本開示の例示的な態様による、方法およびシステムを実装するために使用することができる例示的なコンピューティングシステム700を示す。システム700は、ネットワーク740を介して1つまたは複数のクライアントデバイス730と通信するサーバ710を含むクライアントサーバアーキテクチャを使用して実装することができる。システム700は、単一のコンピューティングデバイスなど、他の適切なアーキテクチャを使用して実装することができる。
【0077】
システム700は、ウェブサーバなどのサーバ710を含む。サーバ710は、任意の適切なコンピューティングデバイスを使用して実装することができる。サーバ710は、1つまたは複数のプロセッサ712と1つまたは複数のメモリデバイス714とを有することができる。サーバ710はまた、ネットワーク740を介して1つまたは複数のクライアントデバイス730と通信するために使用されるネットワークインターフェースも含むことができる。ネットワークインターフェースは、たとえば送信機、受信機、ポート、コントローラ、アンテナ、または他の適切な構成要素を含む、もう1つのネットワークとインターフェースするための任意の適切な構成要素を含むことができる。
【0078】
1つまたは複数のプロセッサ712は、マイクロプロセッサ、マイクロコントローラ、集積回路、論理デバイス、または他の適切な処理デバイスなど、任意の適切な処理デバイスを含むことができる。1つまたは複数のメモリデバイス714は、限定はしないが、非一時的コンピュータ可読媒体、RAM、ROM、ハードドライブ、フラッシュドライブ、または他のメモリデバイスを含む、1つまたは複数のコンピュータ可読媒体を含むことができる。1つまたは複数のメモリデバイス714は、1つまたは複数のプロセッサ712によって実行できるコンピュータ可読命令716を含む、1つまたは複数のプロセッサ712によってアクセス可能な情報を記憶することができる。命令716は、1つまたは複数のプロセッサ712によって実行されると、1つまたは複数のプロセッサ712にアクションを実行させる命令の任意のセットとすることができる。たとえば、命令716は、
図1を参照して説明されたバイアサー106、転写部108、インタープリタ110、またはコマンド生成器112を実装するために、1つまたは複数のプロセッサ712によって実行され得る。
【0079】
図8に示すように、1つまたは複数のメモリデバイス714は、1つまたは複数のプロセッサ712によって検索、操作、作成、または記憶することができるデータ718を記憶することもできる。データ718は、たとえば、言語モデルデータ、デバイストポロジー表現データ、および他のデータを含み得る。データ718は、1つまたは複数のデータベースに記憶することができる。1つまたは複数のデータベースは、高帯域幅のLANまたはWANによってサーバ710に接続することができ、あるいはネットワーク740を介してサーバ710に接続することもできる。複数の場所に配置されるように、1つまたは複数のデータベースを分割することができる。
【0080】
サーバ710は、ネットワーク740を介して1つまたは複数のクライアントデバイス730とデータを交換することができる。ネットワーク740を介して任意の数のクライアントデバイス730をサーバ710に接続することができる。1つまたは複数のクライアントデバイス730は、ホームオートメーションサービス、スマートホームサービス、モノのインターネットサービス、および/または他の適切なサービスを提供するように構成されたスマートデバイスとすることができる。スマートデバイスは、空調システム、照明デバイス、ホームシアターおよびエンターテインメントシステム、セキュリティシステム、自動ドアロッキングシステム、サーモスタットデバイス、ホームオートメーションシステム、サウンドスピーカー、カメラデバイス、トレッドミル、体重計、スマートベッド、灌漑システム、ガレージドアオープナー、アプライアンス、ベビーモニタ、火災警報器、および/または他の適切なデバイスもしくはシステムを含み得る、またはそうでなければそれらに関連付けられ得る。1つまたは複数のクライアントデバイスは、汎用コンピュータ、専用コンピュータ、ラップトップ、デスクトップ、モバイルデバイス、ナビゲーションシステム、スマートフォン、タブレット、ウェアラブルコンピューティングデバイス、1つまたは複数のプロセッサを有するディスプレイ、または他の適切なコンピューティングデバイスなどのユーザコンピューティングデバイスでもあり得る。
【0081】
サーバ710と同様に、クライアントデバイス730は、1つまたは複数のプロセッサ732とメモリ734とを含むことができる。1つまたは複数のプロセッサ732は、1つまたは複数の中央処理ユニット(CPU)、画像を効率的にレンダリングする、または他の特殊な計算を実行する専用のグラフィック処理ユニット(GPU)、および/または他の処理デバイスを含むことができる。メモリ734は、1つまたは複数のコンピュータ可読媒体を含むことができ、1つまたは複数のプロセッサ732によって実行できる命令736およびデータ738を含む、1つまたは複数のプロセッサ732によってアクセス可能な情報を記憶することができる。たとえば、メモリ734は、ユーザインターフェースを実施するための命令736を記憶することができる。
【0082】
図8のクライアントデバイス730は、タッチスクリーン、タッチパッド、データ入力キー、スピーカー、および/または音声認識に適したマイクロフォンなど、ユーザに情報を提供し、ユーザから情報を受信するための様々な入出力デバイス737を含むことができる。たとえば、クライアントデバイス730は、本開示の例示的な態様によるユーザインターフェースを提示するための表示デバイス735を有することができる。
【0083】
クライアントデバイス730は、ネットワーク740を介して1つまたは複数のリモートコンピューティングデバイス(たとえば、サーバ710)と通信するために使用されるネットワークインターフェースも含むことができる。ネットワークインターフェースは、たとえば送信機、受信機、ポート、コントローラ、アンテナ、または他の適切な構成要素を含む、もう1つのネットワークとインターフェースするための任意の適切な構成要素を含むことができる。
【0084】
ネットワーク740は、ローカルエリアネットワーク(たとえばイントラネット)、ワイドエリアネットワーク(たとえばインターネット)、セルラーネットワーク、またはそれらの何らかの組合せなど、任意のタイプの通信ネットワークとすることができる。ネットワーク740は、クライアントデバイス730とサーバ710との間の直接接続も含むことができる。一般に、サーバ710とクライアントデバイス730との間の通信は、様々な通信プロトコル(たとえば、TCP/IP、HTTP、SMTP、FTP)、符号化またはフォーマット(たとえば、HTML、XML)、および/または保護方式(たとえば、VPN、セキュアHTTP、SSL)を使用して、任意のタイプのワイヤードおよび/またはワイヤレス接続を使用して、ネットワークインターフェースを介して行うことができる。
【0085】
本開示の1つの例示的な態様は、音声発声を処理するコンピュータ実装方法を対象とする。方法は、1つまたは複数のコンピューティングデバイスによって、音声発声を示すデータを受信するステップを含むことができる。音声発声は、ユーザによって制御デバイスに提供された可能性がある。方法は、1つまたは複数のコンピューティングデバイスによって、デバイストポロジー表現にアクセスするステップを含むことができる。デバイストポロジー表現は、1つまたは複数の構造物に関連付けられた複数のスマートデバイスを定義することができる。デバイストポロジー表現は、関連付けられた構造物内の複数のデバイスの各々および制御デバイスの位置をさらに定義することができる。方法は、1つまたは複数のコンピューティングデバイスによって、音声発声を示すデータに少なくとも部分的に基づいて、さらに、デバイストポロジー表現によって定義された関連する構造内の制御デバイスの位置に少なくとも部分的に基づいて、1つまたは複数の選択されたデバイスと、1つまたは複数の選択されたデバイスによって実行されるべき1つまたは複数のアクションとを決定するステップを含むことができる。
【0086】
いくつかの実装形態では、1つまたは複数のコンピューティングデバイスによって、1つまたは複数の選択されたデバイスを決定するステップは、1つまたは複数のコンピューティングデバイスによって、制御デバイスと同じ位置を共有する複数のデバイスのサブセットを識別するステップと、1つまたは複数のコンピューティングデバイスによって、複数のデバイスの識別されたサブセットから1つまたは複数の選択されたデバイスを決定するステップとを含むことができる。
【0087】
いくつかの実装形態では、デバイストポロジー表現は、1つまたは複数の構造物の各々の中の1つまたは複数の部屋を定義することができる。デバイストポロジー表現によって定義された複数のデバイスの各々および制御デバイスの位置はそれぞれ、1つまたは複数の部屋のうちの少なくとも1つに対応することができる。
【0088】
いくつかの実装形態では、1つまたは複数のコンピューティングデバイスによって、1つまたは複数の選択されたデバイスを決定するステップは、1つまたは複数のコンピューティングデバイスによって、制御デバイスと同じ部屋にある複数のデバイスのサブセットを識別するステップと、1つまたは複数のコンピューティングデバイスによって、複数のデバイスの識別されたサブセットから1つまたは複数の選択されたデバイスを決定するステップとを含むことができる。
【0089】
いくつかの実装形態では、1つまたは複数のコンピューティングデバイスによって、複数のデバイスの識別されたサブセットから1つまたは複数の選択されたデバイスを決定するステップは、1つまたは複数のコンピューティングデバイスによって、音声発声によって言及される1つまたは複数のデバイス属性を識別するステップと、1つまたは複数のコンピューティングデバイスによって、複数のデバイスのサブセットのうちのどれが1つまたは複数のデバイス属性を有するかを識別するステップとを含むことができる。
【0090】
いくつかの実装形態では、制御デバイスは複数のデバイスのうちの1つである。
【0091】
いくつかの実装形態では、デバイストポロジー表現は、複数のデバイスの各々について1つまたは複数のデバイス識別子および1つまたは複数のデバイス属性を指定することができる。
【0092】
いくつかの実装形態では、1つまたは複数のコンピューティングデバイスによって、1つまたは複数の選択されたデバイス、および1つまたは複数のアクションを決定するステップは、1つまたは複数のコンピューティングデバイスによって、デバイストポロジー表現において指定された1つまたは複数のデバイス識別子のうちの少なくとも1つに少なくとも部分的に基づいて、1つまたは複数の選択されたデバイスおよび1つまたは複数のアクションを決定するステップを含むことができる。
【0093】
いくつかの実装形態では、1つまたは複数のコンピューティングデバイスによって、1つまたは複数の選択されたデバイス、および1つまたは複数のアクションを決定するステップは、1つまたは複数のコンピューティングデバイスによって、デバイストポロジー表現において指定された1つまたは複数のデバイス属性のうちの少なくとも1つに少なくとも部分的に基づいて、1つまたは複数の選択されたデバイスおよび1つまたは複数のアクションを決定するステップを含むことができる。
【0094】
いくつかの実装形態では、方法は、1つまたは複数のコンピューティングデバイスによって、1つまたは複数の選択されたデバイスおよび1つまたは複数のアクションに少なくとも部分的に基づいて、1つまたは複数の制御コマンドを決定するステップであり、1つまたは複数の制御コマンドがそれぞれ、1つまたは複数の選択されたデバイスに、1つまたは複数のアクションを実行するよう指示する、ステップをさらに含むことができる。いくつかの実装形態では、方法は、1つまたは複数のコンピューティングデバイスによって、1つまたは複数の制御コマンドを1つまたは複数の選択されたデバイスに提供するステップをさらに含むことができる。
【0095】
いくつかの実装形態では、方法を実行する1つまたは複数のコンピューティングデバイスは、制御デバイスから成り得る。
【0096】
本開示の別の例示的な態様は、1つまたは複数のプロセッサと、1つまたは複数のメモリデバイスとを含むコンピューティングシステムを対象とする。1つまたは複数のメモリデバイスは、1つまたは複数のプロセッサによって実行されると、1つまたは複数のプロセッサに動作を実行させるコンピュータ可読命令を記憶することができる。動作は、音声発声を示すデータを受信することを含むことができる。音声発声は、ユーザによって制御デバイスに提供された可能性がある。動作は、デバイストポロジー表現にアクセスすることを含むことができる。デバイストポロジー表現は、1つまたは複数の構造物に関連付けられた複数のスマートデバイスを定義することができる。デバイストポロジー表現は、関連付けられた構造物内の複数のデバイスの各々および制御デバイスの位置をさらに定義することができる。動作は、音声発声を示すデータに少なくとも部分的に基づいて、さらに、デバイストポロジー表現によって定義された関連する構造内の制御デバイスの位置に少なくとも部分的に基づいて、1つまたは複数の選択されたデバイスと、1つまたは複数の選択されたデバイスによって実行されるべき1つまたは複数のアクションとを決定することを含むことができる。
【0097】
いくつかの実装形態では、1つまたは複数の選択されたデバイスを決定することは、制御デバイスと同じ位置を共有する複数のデバイスのサブセットを識別することと、複数のデバイスの識別されたサブセットから1つまたは複数の選択されたデバイスを決定することとを含むことができる。
【0098】
いくつかの実装形態では、デバイストポロジー表現は、1つまたは複数の構造物の各々の中の1つまたは複数の部屋を定義することができる。デバイストポロジー表現によって定義された複数のデバイスの各々および制御デバイスの位置はそれぞれ、1つまたは複数の部屋のうちの少なくとも1つに対応することができる。
【0099】
いくつかの実装形態では、1つまたは複数の選択されたデバイスを決定することは、制御デバイスと同じ部屋にある複数のデバイスのサブセットを識別することと、複数のデバイスの識別されたサブセットから1つまたは複数の選択されたデバイスを決定することとを含むことができる。
【0100】
いくつかの実装形態では、複数のデバイスの識別されたサブセットから1つまたは複数の選択されたデバイスを決定することは、音声発声によって言及される1つまたは複数のデバイス属性を識別することと、複数のデバイスのサブセットのうちのどれが1つまたは複数のデバイス属性を有するかを識別することとを含むことができる。
【0101】
いくつかの実装形態では、動作は、1つまたは複数の選択されたデバイスおよび1つまたは複数のアクションに少なくとも部分的に基づいて、1つまたは複数の制御コマンドを決定することであり、1つまたは複数の制御コマンドがそれぞれ、1つまたは複数の選択されたデバイスに、1つまたは複数のアクションを実行するよう指示する、ことと、1つまたは複数の制御コマンドを1つまたは複数の選択されたデバイスに提供することとをさらに含むことができる。
【0102】
いくつかの実装形態では、コンピューティングシステムは、制御デバイスを含むことができ、制御デバイスは、1つまたは複数のプロセッサと1つまたは複数のメモリデバイスとを含むことができる。
【0103】
本開示の別の例示的な態様は、コンピュータ実装方法を対象とする。方法は、1つまたは複数のコンピューティングデバイスによって、デバイストポロジー表現に含まれる複数のデバイスの各々について、それぞれの位置を記述するデバイストポロジー表現を取得するステップを含むことができる。複数のデバイスは、1つまたは複数の制御デバイスを含むことができる。方法は、1つまたは複数のコンピューティングデバイスによって、音声発声を取得するステップを含むことができる。方法は、1つまたは複数のコンピューティングデバイスによって、音声発声がユーザによって提供された1つまたは複数の制御デバイスのうちの第1の制御デバイスを識別するステップを含むことができる。方法は、1つまたは複数のコンピューティングデバイスによって、音声発声が提供された第1の制御デバイスと同じ位置を有するものとしてデバイストポロジー表現によって記述される複数のデバイスのサブセットを決定するステップを含むことができる。方法は、1つまたは複数のコンピューティングデバイスによって、音声発声を示すデータに少なくとも部分的に基づいて、複数のデバイスのサブセットから1つまたは複数の選択されたデバイスを決定するステップを含むことができる。
【0104】
いくつかの実装形態では、デバイストポロジー表現は、複数のデバイスの各々について特定の部屋を指定することができる。いくつかの実装形態では、1つまたは複数のコンピューティングデバイスによって、複数のデバイスのサブセットを決定するステップは、1つまたは複数のコンピューティングデバイスによって、デバイストポロジー表現が、音声発声が提供された第1の制御デバイスと同じ部屋を指定する複数のデバイスのサブセットを識別するステップを含むことができる。
【0105】
いくつかの実装形態では、1つまたは複数のコンピューティングデバイスは、第1の制御デバイスがコンピュータ実装方法を実行するように、第1の制御デバイスから成り得る。いくつかの実装形態では、複数のデバイスは、複数の制御デバイスを含むことができる。いくつかの実装形態では、複数の制御デバイスを、それぞれ、複数の位置に関連付けることができる。たとえば、複数の制御デバイスを、それぞれ、複数の部屋に関連付けることができる。
【0106】
本明細書で説明した技術は、サーバ、データベース、ソフトウェアアプリケーション、および他のコンピュータベースのシステム、ならびにそのようなシステムとの間でとられるアクションおよび送信される情報に言及する。当業者は、コンピュータベースのシステムの固有の柔軟性が、構成要素間のタスクおよび機能の多種多様な可能な構成、組合せ、および分割を可能にすることを認識されよう。たとえば、本明細書で説明したサーバプロセスは、単一のサーバまたは組み合わせて動作する複数のサーバを使用して実装され得る。データベースおよびアプリケーションは、単一のシステム上で実装されてもよく、複数のシステムに分散されてもよい。分散構成要素は、順次または並列に動作し得る。
【0107】
本主題をその特定の例示的な実施形態に関して詳細に説明してきたが、当業者は、前述を理解すると、そのような実施形態に対する変更、変形、および均等物を容易に生み出すことができることが諒解されよう。したがって、本開示の範囲は、限定ではなく例であり、本開示は、当業者には容易に明らかである修正、変形、および/または追加の本主題への包含を排除するものではない。