(58)【調査した分野】(Int.Cl.,DB名)
前記コンピューティングデバイスが、所定の時間、前記オンデバイスのホットワード検出器を使用した前記特定のオーディオデータの処理の前記出力を送信する、請求項1に記載の方法。
1つまたは複数のコンピュータと、動作可能な命令を格納した1つまたは複数のストレージデバイスを具備するシステムであって、前記1つまたは複数のコンピュータによって実行されるとき、前記1つまたは複数のコンピュータに、
非アクティブ状態である低電力モードにあり、オンデバイスのホットワード検出器を使用して特定の所定のホットワードの発話を検出すると低電力モードを終了するように構成された、コンピューティングデバイスにより、発話に対応するオーディオデータを受信する手順と、
前記特定の所定のホットワードの前記発話に対応する前記オーディオデータに基づく第1のホットワード信頼性スコアを決定する手順と、
前記第1のホットワード信頼性スコアがしきい値に達していると判定する手順と、
前記第1のホットワード信頼性スコアが前記しきい値に達しているとの判定に基づいて、前記オーディオデータの音声認識の実行を開始する、手順と、
前記コンピューティングデバイスが前記低電力モードにとどまる間、かつ前記特定の所定のホットワードの前記発話に対応する前記オーディオデータを受信したことに応答して、前記オンデバイスのホットワード検出器を使用した前記特定のオーディオデータの処理の、第1のホットワード信頼性スコアを含む出力を、前記コンピューティングデバイスによって、他のコンピューティングデバイスに送信する手順と、
前記他のコンピューティングデバイスから追加的なメッセージを受信する手順であって、前記追加的なメッセージは追加的なホットワードスコアである第2のホットワード信頼性スコアを含む、受信する手順と、
前記コンピューティングデバイスによって、および前記オンデバイスのホットワード検出器を使用した前記特定のオーディオデータの処理の前記出力を送信した後、かつ前記第1のホットワード信頼性スコアよりも大きい前記第2のホットワード信頼性スコアを受信した後に、前記低電力モードにとどまることを決定し、前記音声認識の実行を終了する、手順と、
を含む動作を実行させる、システムであって、
ホットワード信頼性スコアは、前記発話が前記特定の所定のホットワードを含む可能性を示すスコアである、
システム。
【発明を実施するための形態】
【0013】
図中、同様の符号は同様の要素を指す。
【0014】
遠くない未来、多数のデバイスがホットワードを常に聴取するようになるであろう。1人のユーザが自身の声に応答するように訓練された複数のデバイス(例えば、電話機、タブレットコンピュータ、TV等)を有する場合、ユーザは、自身が意図して話し掛けたものではないデバイスによるホットワードへの応答を抑制することを望むであろう。例えば、ユーザが1つのデバイスに向けてホットワードを発したときに、ユーザの別のデバイスが近くに存在した場合、おそらくは、それらも音声検索をトリガすることとなろう。多くの場合、このような動作はユーザの意図したものではない。故に、ただ1つのデバイス、特に、ユーザが話し掛けたデバイスだけが始動することが利点となり得る。本明細書は、ホットワードに反応するために適切なデバイスを選択するとともに、その他のデバイスによるホットワードへの反応を抑制するという課題を扱う。
【0015】
図1は、ホットワード検出のためのシステム100の一例を示す図である。概して、システム100は、ユーザ102がコンピューティングデバイス106,108,110のマイクロフォンによって検出される発話104を行う状況を例示する。コンピューティングデバイス106,108,110は、発話104を処理して、発話104がホットワードを含む可能性を判定する。コンピューティングデバイス106,108,110は、それぞれ、発話104がホットワードを含む可能性を示すデータを相互に送信し合う。コンピューティングデバイス106,108,110は、それぞれ、それらのデータを比較し、発話104がホットワードを含む最も高い可能性を算出したコンピューティングデバイスが、発話に104に対する音声認識を開始する。発話104がホットワードを含む最も高い可能性を算出しなかったコンピューティングデバイスは、発話104に続く音声に対する音声認識を開始しない。
【0016】
発話104がホットワードに対応する可能性を示すデータを他のコンピューティングデバイスに送信する前に、互いに近くに位置するコンピューティングデバイスらは、互いを識別する。いくつかの実施形態では、コンピューティングデバイスらは、ホットワードに応答するように構成された他のデバイスについてローカルネットワークを検索することによって互いを識別する。例えば、コンピューティングデバイス106は、ホットワードに応答するように構成された他のデバイスについてローカルエリアネットワークを検索して、コンピューティングデバイス108及びコンピューティングデバイス110を識別し得る。
【0017】
いくつかの実施形態では、コンピューティングデバイスは、各デバイスにログインしたユーザを識別することによって、ホットワードに応答するように構成された他の近くのコンピューティングデバイスを識別する。例えば、ユーザ102は、3つのコンピューティングデバイス106,108,110にログインしている。ユーザ102は、自身の手にコンピューティングデバイス106を持っている。コンピューティングデバイス108は、テーブルの上に置かれ、コンピューティングデバイス110は、壁の近くに位置する。コンピューティングデバイス106は、コンピューティングデバイス108,110を検出し、各コンピューティングデバイスは、ユーザ識別子など、コンピューティングデバイスにログインしているユーザに関する情報を共有する。いくつかの実施形態では、コンピューティングデバイスは、話者識別を介して、ホットワードが同一のユーザによって発せられた場合に応答するように構成されたコンピューティングデバイスを識別することによって、ホットワードに応答するように構成された他の近くのコンピューティングデバイスを識別し得る。例えば、ユーザ102は、自身がホットワードを発したとき、自身の声にそれぞれ応答するように、コンピューティングデバイス106,108,110を構成する。コンピューティングデバイスは、ユーザ102に対するユーザ識別子を互いに提供し合うことによって、話者識別情報を共有する。いくつかの実施形態では、コンピューティングデバイスは、短距離無線通信を介して、ホットワードに応答するように構成された他のコンピューティングデバイスを識別し得る。例えば、コンピューティングデバイス106は、ホットワードに応答するように構成された他のコンピューティングデバイスについて検索する信号を、短距離無線通信を介して送信し得る。コンピューティングデバイスは、これらの技術のうちの1つ又はそれらの組合せを利用して、ホットワードに応答するように構成された他のコンピューティングデバイスを識別してよい。
【0018】
コンピューティングデバイス106,108,110は、ホットワードに応答するように構成された他のコンピューティングデバイスを識別すると、識別したコンピューティングデバイスに対するデバイス識別子を共有及び格納する。識別子は、デバイスのタイプ、デバイスのIPアドレス、MACアドレス、ユーザがデバイスに与えた名前、又は任意の同様の一意に定まる識別子に基づいてよい。例えば、コンピューティングデバイス106に対するデバイス識別子112は、「phone」であってよい。コンピューティングデバイス108に対するデバイス識別子114は、「tablet」であってよい。コンピューティングデバイス110に対するデバイス識別子116は、「thermostat」であってよい。コンピューティングデバイス106,108,110は、ホットワードに応答するように構成された他のコンピューティングデバイスに対するデバイス識別子を格納する。各コンピューティングデバイスは、各々がデバイス識別子を格納するデバイスグループを有する。例えば、コンピューティングデバイス106は、自身が算出する、オーディオデータがホットワードを含む可能性を受信することとなる2つのデバイスとして、「tablet」及び「thermostat」をリストしたデバイスグループ118を有する。コンピューティングデバイス108は、自身が算出する、オーディオデータがホットワードを含む可能性を受信することとなる2つのデバイスとして、「phone」及び「thermostat」をリストしたデバイスグループ120を有する。コンピューティングデバイス110は、自身が算出する、オーディオデータがホットワードを含む可能性を受信する2つのデバイスとして、「phone」及び「tablet」をリストしたデバイスグループ122を有する。
【0019】
ユーザ102が発話104を行った、すなわち、「OKコンピュータ」と喋ったとき、ユーザ102の近くにある、マイクロフォンを備えた各コンピューティングデバイスは、発話104を検出し、処理する。各コンピューティングデバイスは、マイクロフォンなどのオーディオ入力デバイスを介して発話104を検出する。各マイクロフォンは、個々のオーディオサブシステムにオーディオデータを提供する。個々のオーディオサブシステムは、オーディオデータをバッファし、フィルタし、デジタル化する。また、いくつかの実施形態では、各コンピューティングデバイスは、オーディオデータに対して、終端決定及び話者識別を実行し得る。オーディオサブシステムは、処理されたオーディオデータをホットワード部に提供する。ホットワード部は、処理されたオーディオデータと既知のホットワードデータとを比較して、発話104がホットワードに対応する可能性を示す信頼性スコアを算出する。ホットワード部は、処理されたオーディオデータから、フィルタバンクエネルギー又はメル周波数ケプストラム係数などのオーディオの特徴を抽出し得る。ホットワード部は、分類化ウィンドウを使用し、サポートベクターマシン又はニューラルネットワークを使用するなどしてこれらのオーディオの特徴を処理し得る。オーディオの特徴の処理に基づいて、ホットワード部124は、信頼性スコア0.85を算出し、ホットワード部126は、信頼性スコア0.6を算出し、ホットワード部128は、信頼性スコア0.45を算出する。いくつかの実施形態では、信頼性スコアは、ゼロから1の範囲に正規化されてよく、ここで、より大きい数は、発話104がホットワードを含む、より高い信頼性を示す。
【0020】
各コンピューティングデバイスは、個々の信頼性スコアデータパケットを、デバイスグループ内の他のコンピューティングデバイスに送信する。各信頼性スコアデータパケットは、個々の信頼性スコアと、コンピューティングデバイスに対する個々のデバイス識別子とを含む。例えば、コンピューティングデバイス106は、信頼性スコア0.85及びデバイス識別子「phone」を含んだ信頼性スコアデータパケット130を、デバイスグループ118内のコンピューティングデバイス、すなわち、コンピューティングデバイス108,110に送信する。コンピューティングデバイス108は、信頼性スコア0.6及びデバイス識別子「tablet」を含んだ信頼性スコアデータパケット132を、デバイスグループ120内のコンピューティングデバイス、すなわち、コンピューティングデバイス106,110に送信する。コンピューティングデバイス110は、信頼性スコア0.45及びデバイス識別子「thermostat」を含んだ信頼性スコアデータパケット134を、デバイスグループ122内のコンピューティングデバイス、すなわち、コンピューティングデバイス106,108に送信する。
【0021】
いくつかの実施形態では、コンピューティングデバイスは、信頼性スコアがホットワードスコアしきい値に達していた場合に、信頼性スコアデータパケットを送信してもよい。例えば、ホットワードスコアしきい値が0.5である場合、コンピューティングデバイス110は、信頼性スコアデータパケット134を、デバイスグループ122内の他のコンピューティングデバイスに送信しないであろう。コンピューティングデバイス106,108は、それぞれ、信頼性スコアデータパケット130,132を、デバイスグループ118,120内のコンピューティングデバイスに、今までどおりに送信するであろう。
【0022】
いくつかの実施形態では、信頼性スコアデータパケットを送信するコンピューティングデバイスは、信頼性スコアデータパケットを他のコンピューティングデバイスに直接送信してよい。例えば、コンピューティングデバイス106は、信頼性スコアデータパケットを、短距離無線通信を介して、コンピューティングデバイス108,110に送信し得る。2つのコンピューティングデバイス間で使用される通信プロトコルは、ユニバーサルプラグアンドプレイであってよい。いくつかの実施形態では、信頼性スコアデータパケットを送信するコンピューティングデバイスは、信頼性スコアデータパケットをブロードキャストしてもよい。この例では、信頼性スコアデータパケットは、デバイスグループ内のコンピューティングデバイスによって、かつその他のコンピューティングデバイスによって受信され得る。いくつかの実施形態では、信頼性スコアデータパケットを送信するコンピューティングデバイスは、信頼性スコアデータパケットをサーバに送信し、次いで、サーバが、信頼性スコアデータパケットを、デバイスグループ内の他のコンピューティングデバイスに送信してもよい。サーバは、コンピューティングデバイスのローカルエリアネットワーク、又はインターネットを介してアクセス可能なネットワーク内に位置してよい。例えば、コンピューティングデバイス108は、信頼性スコアデータパケット132及びデバイスグループ120内のコンピューティングデバイスのリストを、サーバに送信する。サーバは、信頼性スコアデータパケット132をコンピューティングデバイス106、110に送信する。コンピューティングデバイスが信頼性スコアデータパケットを他のコンピューティングデバイスに送信する例では、受信を行ったコンピューティングデバイスは、自身が信頼性スコアデータパケットを受信したという確認通知を返してもよい。
【0023】
各コンピューティングデバイスは、スコア比較部を使用して、自身が受信したホットワード信頼性スコアを比較する。例えば、コンピューティングデバイス106は、ホットワード信頼性スコア0.85を算出し、ホットワード信頼性スコア0.6及び0.45を受信する。この例では、スコア比較部136は、3つのスコアを比較して、スコア0.85が最高値であることを識別する。コンピューティングデバイス108,110では、スコア比較部138,140は、同様の結論に達し、コンピューティングデバイス106に対応するスコア0.85が最高値であることを識別する。
【0024】
自身のホットワード信頼性スコアが最高値であると判定したコンピューティングデバイスは、ホットワードの発話に続く音声データに対して音声認識を開始する。例えば、ユーザは、「OKコンピュータ」と喋ってよく、コンピューティングデバイス106は、自身が最高のホットワード信頼性スコアを有すると判定し得る。コンピューティングデバイス106は、ホットワードの後に受信するオーディオデータに対して音声認識を開始することとなる。ユーザが「アリスに電話をかけてくれ(call Alice)」と喋ったとき、コンピューティングデバイス106は、発話を処理して、適切なコマンドを実行することとなる。いくつかの実施形態では、ホットワードを受信することは、ホットワードを受信するコンピューティングデバイスをスリープ状態から復帰させ得る。この例では、最高のホットワード信頼性スコアを有するコンピューティングデバイスは、アウェイク状態にとどまり、一方で、最高のホットワード信頼性スコアを有しない他のコンピューティングデバイスは、ホットワードの発話に続く音声データを処理せずに、スリープ状態に移行する。
【0025】
図1に示されるように、スコア比較部136は、コンピューティングデバイス106に対応するホットワード信頼性スコアが最高値であることを識別する。したがって、デバイス状態142は、「アウェイク(awake)」となる。スコア比較部138,140もまた、コンピューティングデバイス106に対応するホットワード信頼性スコアが最高値であることを識別する。したがって、デバイス状態138,140は、「アスリープ(asleep)」となる。いくつかの実施形態では、コンピューティングデバイスの起動状態は、影響を受けなくともよい。例えば、ユーザ102は、コンピューティングデバイス108で映画を視聴しつつ、その手にコンピューティングデバイス106を持つことができよう。ユーザ102が「OKコンピュータ」と喋ったとき、コンピューティングデバイス106は、最高のホットワード信頼性スコアを有することにより、ホットワードに続くオーディオデータに対する音声認識を開始する。コンピューティングデバイス108は、ホットワードに続くオーディオデータに対する音声認識を開始せず、映画を再生し続ける。
【0026】
いくつかの実施形態では、自身が最高のホットワード信頼性スコアを有すると判定したコンピューティングデバイスは、ホットワードに続く音声に対する音声認識の実行を開始する前に、特定の時間の経過を待つ。そうすることで、最高のホットワード信頼性スコアを算出したコンピューティングデバイスは、より高いホットワード信頼性スコアを待つことなく、ホットワードに続く音声に対する音声認識の実行を開始することが許される。例示として、コンピューティングデバイス106のスコア比較部136は、コンピューティングデバイス108,110からホットワード信頼性スコア0.6及び0.45をそれぞれ受信し、ホットワード部124からホットワード信頼性スコア0.85を受信する。コンピューティングデバイス106は、ホットワードに続く音声に対して音声認識を実行する前に、ホットワード部124がオーディオデータ「OKコンピュータ」のホットワード信頼性スコアを算出した時点から500ミリ秒経つのを待つ。スコア比較部がより高いスコアを受信する例では、コンピューティングデバイスは、デバイス状態を「スリープ(sleep)」に設定する前に、特定の時間の経過を待たなくてよい。例えば、コンピューティングデバイス108のホットワード部126は、ホットワード信頼性スコア0.6を算出し、ホットワード信頼性スコア0.85及び0.45を受信する。コンピューティングデバイス108は、ホットワード信頼性スコア0.85を受信したとき、デバイス状態144を「スリープ」に設定できる。この場合、コンピューティングデバイス108は、ホットワード部126がホットワード信頼性スコア0.6を算出した後の特定の時間内にホットワード信頼性スコア0.85を受信したものと考えられる。
【0027】
いくつかの実施形態では、コンピューティングデバイスは、自身が最高のホットワード信頼性スコアを有するとき、他のコンピューティングデバイスがその信頼性スコアデータパケットを受信するための時間を確保するために、特定の時間、信頼性スコアデータパケットをブロードキャストし続けてよい。この方式は、コンピューティングデバイスが別のコンピューティングデバイスから信頼性スコアデータパケットを受信したときに確認通知を返さない例において最も適切となろう。したがって、コンピューティングデバイス106は、信頼性スコアデータパケット130をデバイスグループ118内のコンピューティングデバイスに送信し、500ミリ秒などの特定の時間の経過前に確認通知を受信した場合には、ホットワードに続く音声に対する音声認識の実行を開始してよい。コンピューティングデバイスが自身の信頼性スコアデータパケットをブロードキャストし、確認通知を期待しない例では、コンピューティングデバイスは、500ミリ秒などの特定の時間が経過するか又はより高いホットワード信頼性スコアを受信するかのいずれか早い方まで、自身のホットワード信頼性スコアをブロードキャストし続けてよい。例えば、コンピューティングデバイス110は、ホットワード信頼性スコア0.45を算出し、信頼性スコアデータパケット134のブロードキャストを開始する。300ミリ秒が経過した後、コンピューティングデバイス110は、信頼性スコアデータパケット130を受信し、信頼性スコアデータパケット130からのホットワード信頼性スコア0.85が自身のホットワード信頼性スコア0.45よりも高いので、信頼性スコアデータパケット134のブロードキャストを終了する。別のブロードキャストの例では、コンピューティングデバイス106は、ホットワード信頼性スコア0.85を算出し、信頼性スコアデータパケット130のブロードキャストを開始する。500ミリ秒が経過した後、コンピューティングデバイス106は、信頼性スコアデータパケット130のブロードキャストを終了し、ホットワードに続く音声に対する音声認識の実行を開始する。コンピューティングデバイス106は、500ミリ秒が経過する前に信頼性スコアデータパケット132,134を受信することもあるが、信頼性スコアデータパケット132,134におけるホットワード信頼性スコアは0.85よりも低いので、コンピューティングデバイスは、500ミリ秒が経過するまで待機し続ける。
【0028】
いくつかの実施形態では、コンピューティングデバイスは、より高いホットワード信頼性スコアを受信するまでに、ホットワードに続く音声に対する音声認識の実行を開始してもよい。ホットワード部は、ホットワード信頼性スコアを算出し、ホットワード信頼性スコアがしきい値に達している場合、コンピューティングデバイスは、ホットワードに続く音声に対して音声認識を実行する。コンピューティングデバイスは、ユーザに対して音声認識についてのいかなる表示も行うことなく、音声認識を実行してよい。これは、コンピューティングデバイスがアクティブ状態になくとも、最高のホットワードスコアを算出したことを確認するまで待機した場合よりも早く、ユーザに対して音声認識に基づく結果を表示できるという印象をユーザに与えるので、そのようにすることが望ましいだろう。一例として、コンピューティングデバイス106は、ホットワード信頼性スコア0.85を算出し、ホットワードに続く音声に対する音声認識の実行を開始する。コンピューティングデバイス106は、信頼性スコアデータパケット132,134を受信し、ホットワード信頼性スコア0.85が最高値であると判定する。コンピューティングデバイス106は、ホットワードに続く音声に対する音声認識の実行を継続し、その結果をユーザに提示する。コンピューティングデバイス108については、ホットワード部126は、ホットワード信頼性スコア0.6を算出し、コンピューティングデバイス108は、ユーザにデータを表示することなく、ホットワードに続く音声に対する音声認識の実行を開始する。コンピューティングデバイス108は、ホットワード信頼性スコア0.85を含む信頼性スコアデータパケット130を受信すると、音声認識の実行を終了する。ユーザに対していかなるデータも表示されず、ユーザは、あたかもコンピューティングデバイス108が「スリープ」状態にとどまっているような印象を受ける。
【0029】
いくつかの実施形態では、ホットワードが発せられた後のいかなる待ち時間も回避するために、スコアは、ホットワードの終端よりも前に、例えば、部分的なホットワードに対して、ホットワード部から通知されてよい。例えば、ユーザが「OKコンピュータ(OK computer)」と喋ると、コンピューティングデバイスは、ユーザが「OKコンピュ(OK comp)」と喋り終えた時点で、部分的なホットワード信頼性スコアを算出してよい。次いで、コンピューティングデバイスは、部分的なホットワード信頼性スコアを他のコンピューティングデバイスと共有してよい。最高の部分的なホットワード信頼性スコアを有するコンピューティングデバイスが、ユーザの会話の処理を継続できる。
【0030】
いくつかの実施形態では、コンピューティングデバイスは、ホットワード信頼性スコアがしきい値に達していると判定した場合に、例えば、特定の周波数又は周波数パターンの、可聴の又は不可聴の音を発してよい。音は、コンピューティングデバイスがホットワードに続くオーディオデータの処理を継続しようとすることを、他のコンピューティングデバイスに知らせるであろう。他のコンピューティングデバイスは、この音を受信して、オーディオデータを処理しなくなるであろう。例えば、ユーザが「OKコンピュータ」と喋る。複数のコンピューティングデバイスのうちの1つが、しきい値を超えるか又はそれに等しいホットワード信頼性スコアを算出する。コンピューティングデバイスは、ホットワード信頼性スコアがしきい値を超えるか又はそれに等しいと判定すると、18キロヘルツの音を発する。ユーザの近くにある他のコンピューティングデバイスは、ホットワード信頼性スコアを算出中であってよく、その音を受信したときに、ホットワード信頼性スコアの計算の半ばであってよい。他のコンピューティングデバイスは、その音を受信したとき、ユーザの会話を処理することをやめる。いくつかの実施形態では、コンピューティングデバイスは、可聴の又は不可聴の音の中にホットワード信頼性スコアを符号化してよい。例えば、ホットワード信頼性スコアが0.5である場合、コンピューティングデバイスは、スコア0.5を符号化した周波数パターンを含む可聴の又は不可聴の音を生成し得る。
【0031】
いくつかの実施形態では、コンピューティングデバイスは、異なるオーディオ測定法を使用して、ユーザの会話を処理し続けるためのコンピューティングデバイスを選択してよい。例えば、コンピューティングデバイスは、音の大きさを用いて、どのコンピューティングデバイスがユーザの会話を処理し続けるかを決定してよい。最も大きい音の会話を検出したコンピューティングデバイスは、ユーザの会話を処理し続けてよい。別の例では、現在使用されているか又はアクティブなディスプレイを有するコンピューティングデバイスは、ホットワードを検出したときに、ユーザの会話を処理し続けることを他のコンピューティングデバイスに通知してよい。
【0032】
いくつかの実施形態では、ユーザが喋っているときにユーザの近くにある各コンピューティングデバイスは、オーディオデータを受信し、そのオーディオデータをサーバに送信して、音声認識を向上させる。各コンピューティングデバイスは、ユーザの会話に対応するオーディオデータを受信できる。ユーザにはただ1つのコンピューティングデバイスが自身の会話を処理するように見えるとしても、各コンピューティングデバイスが、オーディオデータをサーバに送信してよい。次いで、サーバは、各コンピューティングデバイスから受信したオーディオデータを使用して、同一の発話に対応する異なるオーディオサンプルを比較できるので、音声認識を向上させることができる。例えば、ユーザは、「OKコンピュータ、牛乳を買うことをリマインドしてくれ(OK computer, remind me to buy milk)」と喋る。ユーザが「OKコンピュータ」と喋り終えると、近くのコンピューティングデバイスらは、おそらくは、どのコンピューティングデバイスが最高のホットワード信頼性スコアを有するかを判定し、そのコンピューティングデバイスは、ユーザが「牛乳を買うことをリマインドしてくれ」と喋ると、それらの言葉を処理して、応答を返すこととなる。他のコンピューティングデバイスもまた、「牛乳を買うことをリマインドしてくれ」という発話を受信する。他のコンピューティングデバイスは、「牛乳を買うことをリマインドしてくれ」という発話に応答しないとしても、「牛乳を買うことをリマインドしてくれ」に対応するオーディオデータをサーバに送信してよい。「牛乳を買うことをリマインドしてくれ」に応答するコンピューティングデバイスもまた、そのオーディオデータをサーバに送信してよい。サーバは、オーディオデータを処理して、同一の「牛乳を買うことをリマインドしてくれ」という発話に対応する、異なるコンピューティングデバイスからの異なるオーディオサンプルを有するので、音声認識を向上させることができる。
【0033】
図2は、ホットワード検出のためのプロセス200の一例を示す図である。プロセス200は、
図1におけるコンピューティングデバイス108のようなコンピューティングデバイスによって実行されてよい。プロセス200は、発話がホットワードを含む可能性に対応する値を算出し、その値を、他のコンピューティングデバイスによって算出された別の値と比較して、ホットワードの後の発話の部分に対して音声認識を実行するか否かを判定する。
【0034】
コンピューティングデバイスは、発話に対応するオーディオデータを受信する(210)。ユーザが発話を行い、コンピューティングデバイスのマイクロフォンが、発話のオーディオデータを受信する。コンピューティングデバイスは、オーディオデータのバッファリング、フィルタリング、エンドポインティング、及びデジタイジングによって、そのオーディオデータを処理する。一例として、ユーザが「OKコンピュータ」と発話し、コンピューティングデバイスのマイクロフォンが「OKコンピュータ」に対応するオーディオデータを受信する。コンピューティングデバイスのオーディオサブシステムは、コンピューティングデバイスによるさらなる処理のために、そのオーディオデータをサンプリングし、バッファし、フィルタし、終端を決定する。
【0035】
コンピューティングデバイスは、発話がホットワードを含む可能性に対応する第1の値を決定する(220)。コンピューティングデバイスは、発話のオーディオデータを、ホットワードを含むオーディオサンプルのグループと比較することによって、又は発話のオーディオデータのオーディオ特性を解析することによって、ホットワード信頼性スコアと称され得る第1の値を決定する。第1の値は、ゼロから1の範囲に正規化されてよく、ここで、1は、発話がホットワードを含む最も高い可能性を示す。いくつかの実施形態では、コンピューティングデバイスは、第2のコンピューティングデバイスを識別し、第2のコンピューティングデバイスが、ホットワードを含む発話に応答するように構成され、ホットワードに反応するようにユーザによって設定されていることを判定する。ユーザは、コンピューティングデバイスと第2のコンピューティングデバイスとの両方にログインしてよい。コンピューティングデバイスと第2のコンピューティングデバイスとの両方が、ユーザの声に応答するように構成されてもよい。コンピューティングデバイス及び第2のコンピューティングデバイスは、同一のローカルエリアネットワークに接続されてよい。コンピューティングデバイス及び第2のコンピューティングデバイスは、いずれも、GPS又は信号強度によって決定されるような、10メートルなどの互いに特定の距離内に位置し得る。例えば、コンピューティングデバイスは、短距離無線通信によって通信してよい。コンピューティングデバイスは、第2のコンピューティングデバイスによって送信される信号の強度を、5dBmなどと検出し、それを5メートルなどの対応する距離に変換してよい。
【0036】
コンピューティングデバイスは、発話がホットワードを含む可能性に対応する第2の値を受信し、第2の値は、第2のコンピューティングデバイスによって決定される(230)。第2のコンピューティングデバイスは、自身第のマイクロフォンを介して発話を受信する。第2のコンピューティングデバイスは、発話に対応する受信したオーディオデータを処理して、第2の値又は第2のホットワード信頼性スコアを決定する。第2のホットワード信頼性スコアは、第2のコンピューティングデバイスによって算出されるような、発話がホットワードを含む可能性を表している。いくつかの実施形態では、コンピューティングデバイスは、以下の技術のうちの1つ又は複数を用いて、第1の値を第2のコンピューティングデバイスに送信する。すなわち、コンピューティングデバイスは、インターネットを介してアクセス可能なサーバを介して、ローカルエリアネットワークに位置するサーバを介して、又はローカルエリアネットワーク若しくは短距離無線通信を直接介して、第1の値を第2のコンピューティングデバイスに送信し得る。コンピューティングデバイスは、第1の値を第2のコンピューティングデバイスだけに送信してよく、又はコンピューティングデバイスは、他のコンピューティングデバイスもまた第1の値を受信し得るよう、第1の値をブロードキャストしてもよい。コンピューティングデバイスは、第1の値を送信したコンピューティングデバイスと同一の又は異なる技術を用いて、第2のコンピューティングデバイスから第2の値を受信してよい。
【0037】
いくつかの実施形態では、コンピューティングデバイスは、発話に対する音量スコア又は発話に対する信号対雑音比を算出してよい。コンピューティングデバイスは、音量スコア、信号対雑音比、及びホットワード信頼性スコアを結合して、他のコンピューティングデバイスからの同様の値と比較するための新たな値を決定してよい。例えば、コンピューティングデバイスは、ホットワード信頼性スコア及び信号対雑音比を算出してよい。次いで、コンピューティングデバイスは、これら2つのスコアを結合して、他のコンピューティングデバイスで同様に算出されたスコアと比較してよい。いくつかの実施形態では、コンピューティングデバイスは、さまざまなスコアを算出して、各スコアを比較のために他のコンピューティングデバイスに送信してよい。例えば、コンピューティングデバイスは、発話に対する音量スコア及びホットワード信頼性スコアを算出してよい。次いで、コンピューティングデバイスは、これらのスコアを比較のために他のコンピューティングデバイスに送信してよい。
【0038】
いくつかの実施形態では、コンピューティングデバイスは、第1の値と共に第1の識別子を送信してよい。識別子は、コンピューティングデバイスのアドレスのうちの1つ又は複数、ユーザによって与えられたコンピューティングデバイスの名前、又はコンピューティングデバイスの位置に基づいてよい。例えば、識別子は、「69.123.132.43」又は「phone」であってよい。同様に、第2のコンピューティングデバイスは、第2の値と共に第2の識別子を送信してよい。いくつかの実施形態では、コンピューティングデバイスは、ホットワードに応答するように構成されているものとして以前に識別されたコンピューティングデバイスである特定のコンピューティングデバイスに第1の識別子を送信してよい。例えば、コンピューティングデバイスは、第2のコンピューティングデバイスがホットワードに応答可能であることに加えて、同一のユーザが当該コンピューティングデバイスと同じように第2のコンピューティングデバイスにログインしているので、ホットワードに応答するように構成されているものとして第2のコンピューティングデバイスを以前に識別していてよい。
【0039】
コンピューティングデバイスは、第1の値と第2の値とを比較する(240)。次いで、コンピューティングデバイスは、比較の結果に基づいて、オーディオデータに対する音声認識処理を開始する(250)。いくつかの実施形態では、例えば、コンピューティングデバイスは、第1の値が第2の値よりも大きいか又はそれに等しいときに、音声認識を開始する。ユーザが「OKコンピュータ、キャロルに電話をかけてくれ(OK computer, call Carol)」と喋った場合、コンピューティングデバイスは、第1の値が第2の値よりも大きいか又はそれに等しいので、「キャロルに電話をかけてくれ」に対する音声認識を実行することによって、「キャロルに電話をかけてくれ」の処理を開始するであろう。いくつかの実施形態では、コンピューティングデバイスは、起動状態を設定する。第1の値が第2の値よりも大きいか又はそれに等しい例では、コンピューティングデバイスは、起動状態をアクティブ又は「アウェイク」として設定する。「アウェイク」状態では、コンピューティングデバイスは、音声認識の結果を表示する。
【0040】
いくつかの実施形態では、コンピューティングデバイスは、第1の値と第2の値とを比較して、第1の値が第2の値よりも小さいと判定する。コンピューティングデバイスは、第1の値が第2の値よりも小さいと判定したことに基づいて、起動状態を非アクティブ又は「スリープ」として設定する。「スリープ」状態では、コンピューティングデバイスは、アクティブ化されるか又はオーディオデータを処理するために、ユーザに対して現れない。
【0041】
いくつかの実施形態では、コンピューティングデバイスは、第1の値が第2の値よりも大きいか又はそれに等しいと判定したとき、起動状態をアクティブに設定する前に、特定の時間だけ待ってよい。コンピューティングデバイスは、特定の時間だけ待って、自身が他のコンピューティングデバイスからより高い値を受信しない可能性を高めてよい。特定の時間は、固定であってよく、又はコンピューティングデバイスが値を送信及び受信する技術に応じて変化してもよい。いくつかの実施形態では、コンピューティングデバイスは、第1の値が第2の値よりも大きいか又はそれに等しいと判定したとき、特定の時間、第1の値を送信し続けてよい。特定の時間、第1の値を送信し続けることにより、コンピューティングデバイスは、第1の値が他のコンピューティングデバイスによって受信される確率を高める。第1の値が第2の値よりも小さいとコンピューティングデバイスが判定する例では、コンピューティングデバイスは、第1の値を送信することを中止してよい。
【0042】
いくつかの実施形態では、コンピューティングデバイスは、ホットワードに続くコマンドを実行するか否かを判定する際に、追加的な情報を考慮してよい。追加的な情報の一例は、ホットワードに続く発話の部分であってよい。典型的に、ホットワードに続くオーディオデータは、「サリー電話をかけてくれ(call Sally)」、「ハロウィンの映画を再生してくれ(play Halloween Movie)」、又は「温度を華氏70度に設定してくれ(set heat to 70 degrees)」といった、コンピューティングデバイスに対するコマンドに対応する。コンピューティングデバイスは、そのタイプのリクエストを取り扱うか又はそのリクエストを取り扱うことができる、典型的なデバイスを識別し得る。典型的に、誰かに電話をかけるというリクエストは、予めプログラムされた典型的な使用法に基づいて、又はデバイスのユーザの使用パターンに基づいて、電話器によって取り扱われるであろう。ユーザが決まってタブレットで映画を観る場合、タブレットは、映画を再生するというリクエストを取り扱い得る。サーモスタットが温度調節機能を有する場合、サーモスタットは、温度調節を取り扱い得る。
【0043】
コンピューティングデバイスがホットワードに続く発話の部分を考慮するためには、コンピューティングデバイスは、ホットワードを識別したであろうとき、オーディオデータに対する音声認識を開始しなければならないであろう。コンピューティングデバイスは、発話のコマンド部分を分類し、そのような分類におけるコマンドの頻度を算出してよい。コンピューティングデバイスは、その頻度をホットワード信頼性スコアと共に他のコンピューティングデバイスに送信してよい。各コンピューティングデバイスは、頻度及びホットワード信頼性スコアを用いて、ホットワードに続くコマンドを実行するか否かを判定してよい。
【0044】
例えば、ユーザが「OKコンピュータ、マイケルジャクソンを再生してくれ(OK computer, play Michael Jackson)」と発話し、かつコンピューティングデバイスが音楽を聴くために20パーセントの確率でユーザに使用される電話機である場合、そのコンピューティングデバイスは、その情報をホットワード信頼性スコアと共に送信してよい。音楽を聴くために5パーセントの確率でユーザに使用されるタブレットなどのコンピューティングデバイスは、その情報をホットワード信頼性スコアと共に他のコンピューティングデバイスに送信してよい。コンピューティングデバイスは、ホットワード信頼性スコアと音楽再生確率との組合せを用いて、そのコマンドを実行するか否かを判定してよい。
【0045】
図3は、明細書中に記載した技術を実施するために使用可能なコンピューティングデバイス300及びモバイルコンピューティングデバイス350の一例を示す。コンピューティングデバイス300は、ラップトップコンピュータ、デスクトップコンピュータ、ワークステーション、パーソナルデジタルアシスタント、サーバ、ブレードサーバ、メインフレーム、及びその他の適切なコンピュータなど、様々な形態のデジタルコンピュータを指すことを意図している。モバイルコンピューティングデバイス350は、パーソナルデジタルアシスタント、携帯電話器、スマートフォン、及びその他の同様のコンピューティングデバイスなど、様々な形態のモバイルデバイスを指すことを意図している。明細書中に示される複数のコンポーネント、それらの接続及び関係、並びにそれらの機能は、例示のみを目的とし、限定を意味しない。
【0046】
コンピューティングデバイス300は、プロセッサ302、メモリ304、ストレージデバイス306、メモリ304と複数の高速拡張ポート310とを接続する高速インタフェース308、及び低速拡張ポート314とストレージデバイス306とを接続する低速インタフェース312を含む。プロセッサ302、メモリ304、ストレージデバイス306、高速インタフェース308、高速拡張ポート310、及び低速インタフェース312の各々は、様々なバスを用いて相互に接続され、共通のマザーボード上に又は適切に他の手法でマウントされてよい。プロセッサ302は、メモリ304に格納された又はストレージデバイス306上の命令を含む、コンピューティングデバイス300内での実行のための命令を処理して、高速インタフェース308に接続されたディスプレイ316などの外部入力/出力デバイス上のGUIのためのグラフィカルな情報を表示できる。別の実施形態では、複数のプロセッサ及び/又は複数のバスが、複数のメモリ及び複数のタイプのメモリと共に、適切に使用されてよい。また、複数のコンピューティングデバイスが、(例えば、サーババンク、ブレードサーバのグループ、又はマルチプロセッサシステムとして)必要な動作の部分を提供する各デバイスと接続されてもよい。
【0047】
メモリ304は、コンピューティングデバイス300内に情報を格納する。いくつかの実施形態では、メモリ304は、1つ又は複数の揮発性メモリユニットである。いくつかの実施形態では、メモリ304は、1つ又は複数の不揮発性メモリユニットである。また、メモリ304は、磁気又は光ディスクなど、別の形態のコンピュータ読み取り可能な媒体であってよい。
【0048】
ストレージデバイス306は、コンピューティングデバイス300のための大容量ストレージを提供できる。いくつかの実施形態では、ストレージデバイス306は、ストレージエリアネットワーク又はその他の構成中のデバイスを含む、フロッピー(登録商標)ディスクデバイス、ハードディスクデバイス、光ディスクデバイス、若しくはテープデバイス、フラッシュメモリ若しくは他の同様のソリッドステートメモリデバイス、又はデバイスの配列などのコンピュータ読み取り可能な媒体であってよく、又はそれらを包含してもよい。命令は、情報キャリアに格納されてよい。命令は、1つ又は複数の処理デバイス(例えば、プロセッサ302)によって実行されたとき、先に記載されたものなどの1つ又は複数の方法を実行する。また、命令は、コンピュータ読み取り可能な又は機械読み取り可能な媒体(例えば、メモリ304、ストレージデバイス306、又はプロセッサ302上のメモリ)などの1つ又は複数のストレージデバイスによって格納されてよい。
【0049】
高速インタフェース308は、コンピューティングデバイス300のための帯域集約的な動作を管理し、一方、低速インタフェース312は、より低い側の帯域集約的な動作を管理する。このような機能の割当ては一例にすぎない。いくつかの実施形態では、高速インタフェース308は、メモリ304に、(例えば、グラフィックプロセッサ又はアクセラレータを介して)ディスプレイ316に、及びさまざまな拡張カード(図示せず)を受け入れ可能な高速拡張ポート310に接続される。この実施形態では、低速インタフェース312は、ストレージデバイス306及び低速拡張ポート314に接続される。さまざまな通信ポート(例えば、USB、Bluetooth(登録商標)、Ethernet(登録商標)、ワイヤレスEthernet)を含み得る低速拡張ポート314は、キーボード、ポインティングデバイス、スキャナ、又は、例えばネットワークアダプタを介する、スイッチ若しくはルータのようなネットワーキングデバイスなど、1つ又は複数の入力/出力デバイスに接続されてよい。
【0050】
コンピューティングデバイス300は、図に示されるように、複数の異なる形態で実施され得る。例えば、コンピューティングデバイス300は、標準的なサーバ320又はそのようなサーバのグループを複数含むものとして実施されてよい。さらに、コンピューティングデバイス300は、ラップトップコンピュータ322などのパーソナルコンピュータとして実施されてもよい。また、コンピューティングデバイス300は、ラックサーバシステム324の一部として実施されてもよい。あるいは、コンピューティングデバイス300中のコンポーネントは、モバイルコンピューティングデバイス350などのモバイルデバイス(図示せず)中の他のコンポーネントと組み合わされてもよい。そのようなデバイスの各々は、コンピューティングデバイス300とモバイルコンピューティングデバイス350とのうちの1つ又は複数を包含してよく、システム全体は、互いに通信を行う複数のコンピューティングデバイスから成ってよい。
【0051】
モバイルコンピューティングデバイス350は、数あるコンポーネントの中でも特に、プロセッサ352と、メモリ364と、ディスプレイ354などの入力/出力デバイスと、通信インタフェース366と、送受信器368とを含む。また、モバイルコンピューティングデバイス350は、追加的なストレージを提供するために、マイクロドライブ又はその他のデバイスなどのストレージデバイスが提供されよい。プロセッサ352、メモリ364、ディスプレイ354、通信インタフェース366、及び送受信器368の各々は、様々なバスを用いて相互に接続され、コンポーネントのうちのいくつかは、共通のマザーボード上に又は適切に他の手法でマウントされてよい。
【0052】
プロセッサ352は、メモリ364に格納された命令を含む、モバイルコンピューティングデバイス350内の命令を実行できる。プロセッサ352は、別個の又は複数のアナログ及びデジタルプロセッサを含むチップのチップセットとして実施されてよい。プロセッサ352は、例えば、ユーザインタフェースのコントロール、モバイルコンピューティングデバイス350によるアプリケーションの実行、及びモバイルコンピューティングデバイス350によるワイヤレス通信など、モバイルコンピューティングデバイス350の他のコンポーネントの協調のために提供されてよい。
【0053】
プロセッサ352は、コントロールインタフェース358と、ディスプレイ354に接続されたディスプレイインタフェース356とを介して、ユーザとやりとりしてよい。ディスプレイ354は、例えば、TFT LCD(Thin-Film-Transistor Liquid Crystal Display)ディスプレイ若しくはOLED(Organic Light Emitting Diode)ディスプレイ、又はその他の適切なディスプレイ技術であってよい。ディスプレイインタフェース356は、ディスプレイ354を駆動してユーザにグラフィカルな及びその他の情報を提示するための適切な回路を含んでよい。コントロールインタフェース358は、ユーザからのコマンドを受信し、それをプロセッサ352への提出のために変換し得る。さらに、外部インタフェース362は、モバイルコンピューティングデバイス350と他のデバイスとの近接エリア通信が可能になるよう、プロセッサ352との通信を提供してよい。外部インタフェース362は、例えば、いくつかの実施形態における有線通信のために又はいくつかの実施形態におけるワイヤレス通信のために提供されてよく、また、複数のインタフェースが使用されてもよい。
【0054】
メモリ364は、モバイルコンピューティングデバイス350内に情報を格納する。メモリ364は、1つ若しくは複数のコンピュータ読み取り可能な媒体、1つ若しくは複数の揮発性メモリユニット、又は1つ若しくは複数の不揮発性メモリユニットのうちの1つ又は複数として実施されてよい。また、拡張メモリ374が、拡張インタフェース372を介して、モバイルコンピューティングデバイス350に提供され、接続されてよい。拡張インタフェース372は、例えば、SIMM(Single In Line Memory Module)カードインタフェースを含んでよい。拡張メモリ374は、モバイルコンピューティングデバイス350のために別途のストレージ空間を提供してよく、又は、モバイルコンピューティングデバイス350のためにアプリケーション又はその他の情報を格納してもよい。特に、拡張メモリ374は、先に記載したプロセスを実行又は増補するための命令を含んでよく、また、セキュアな情報を含んでよい。よって、例えば、拡張メモリ374は、モバイルコンピューティングデバイス350のためのセキュリティモジュールとして提供されてよく、モバイルコンピューティングデバイス350のセキュアな使用を許可する命令でプログラムされてよい。さらに、セキュアなアプリケーションが、ハッキング不可能な手法でSIMMカードに置かれた識別情報などの追加的な情報と共に、SIMMカードを介して提供されてもよい。
【0055】
メモリは、以下に記載の通り、例えば、フラッシュメモリ及び/又はNVRAMメモリ(Non-Volatile Random Access Memory)を含んでよい。いくつかの実施形態では、命令は、情報キャリアに格納される。命令は、1つ又は複数の処理デバイス(例えば、プロセッサ352)によって実行されたとき、先に記載されたものなどの1つ又は複数の方法を実行する。また、命令は、1つ又は複数のコンピュータ読み取り可能な又は機械読み取り可能な媒体(例えば、メモリ364、拡張メモリ374、又はプロセッサ352上のメモリ)など、1つ又は複数のストレージデバイスによって格納されてよい。いくつかの実施形態では、命令は、例えば、送受信器368又は外部インタフェース362上で伝搬される信号として受信されてよい。
【0056】
モバイルコンピューティングデバイス350は、通信インタフェース366を介してワイヤレス通信を行ってよく、必要に応じて、デジタル信号処理回路を含んでもよい。通信インタフェース366は、特に、GSM(登録商標)(Global System for Mobile communications)音声通話、SMS(Short Message Service)、EMS(Enhanced Messaging Service)、若しくはMMS(Multimedia Messaging Service)メッセージング、CDMA(Code Division Multiple Access)、TDMA(Time Division Multiple Access)、PDC(Personal Digital Cellular)、WCDMA(登録商標)(Wideband Code Division Multiple Access)、CDMA2000、又はGPRS(General Packet Radio Service)など、様々なモード又はプロトコル下での通信を提供し得る。このような通信は、例えば、無線周波数を用いる送受信器368を介して行われてよい。さらに、短距離通信が、Bluetooth(登録商標)、Wi−Fi、又はその他の上記の送受信器(図示せず)を用いるなどして行われてもよい。さらに、GPS(Global Positioning System)受信器モジュール370が、モバイルコンピューティングデバイス350に、追加的なナビゲーション及び位置決定に関するワイヤレスデータを提供してもよく、そのようなデータは、モバイルコンピューティングデバイス350上で動作するアプリケーションによって適切に使用され得る。
【0057】
また、モバイルコンピューティングデバイス350は、オーディオコーデック360を用いて可聴的に通信を行ってよく、ユーザの発した情報を受信して、使用に適したデジタル情報に変換し得る。オーディオコーデック360は、スピーカ、例えば、モバイルコンピューティングデバイス350のハンドセットのスピーカを介すなどして、ユーザに対する可聴音を生成してよい。そのような音は、音声電話呼からの音を含んでよく、記録された音(例えば、音声メッセージ、音楽ファイル等)を含んでもよく、また、モバイルコンピューティングデバイス350上で動作するアプリケーションによって生成される音を含んでもよい。
【0058】
モバイルコンピューティングデバイスデバイス350は、図示されるように、複数の異なる形態で実施されてよい。例えば、携帯電話器380として実施されてよい。また、スマートフォン382、PDA、又はその他の同様のモバイルデバイスとして実施されてもよい。
【0059】
明細書中に記載されたシステム及び技術の様々な実施形態は、デジタル電子回路、集積回路、専用設計された特定用途向け集積回路(ASIC)、コンピュータハードウェア、ファームウェア、ソフトウェア、及び/又はそれらの組合せとして実現されてよい。これらの様々な実施形態は、少なくとも1つのプログラム可能プロセッサを含むプログラム可能システム上で実行可能な及び/又は解釈可能な1つ又は複数のコンピュータプログラムとしての実施を含んでよい。プログラム可能システムは、専用又は汎用のものであってよく、ストレージシステム、少なくとも1つの入力デバイス、及び少なくとも1つの出力デバイスからデータ及び命令を受信するように、かつそれらにデータ及び命令を送信するように接続がなされる。
【0060】
(プログラム、ソフトウェア、ソフトウェアアプリケーション、又はコードとしても知られる)これらのコンピュータプログラムは、プログラム可能プロセッサのための機械語命令を含み、高級手続き型及び/若しくはオブジェクト指向プログラミング言語、並びに/又は、アセンブリ/機械語言語によって実装されてよい。明細書中で用いられるように、機械読み取り可能な媒体及びコンピュータ読み取り可能な媒体という用語は、機械語命令を機械読み取り可能な信号として受信する機械読み取り可能な媒体を含む、プログラム可能プロセッサに機械語命令及び/又はデータを提供するために使用される任意のコンピュータプログラム製品、装置、及び/又はデバイス(例えば、磁気ディスク、光ディスク、メモリ、プログラマブル・ロジック・デバイス(PLD))を指す。機械読み取り可能な信号という用語は、プログラム可能プロセッサに機械語命令及び/又はデータを提供するために使用される任意の信号を指す。
【0061】
ユーザとの対話を提供するために、明細書中に記載されたシステム及び技術は、ユーザに情報を表示するための表示デバイス(例えば、陰極線管(CRT)又は液晶ディスプレイ(LCD)モニタ)と、ユーザがコンピュータに入力を提供できるキーボード及びポインティングデバイス(例えば、マウス又はトラックボール)とを備えたコンピュータ上で実施されてよい。ユーザとの対話を提供するために他の種類のデバイスが使用されてよく、例えば、ユーザに提供されるフィードバックは、任意の形態の感覚性フィードバック(例えば、視覚的フィードバック、聴覚的フィードバック、又は触覚的フィードバック)であってよく、ユーザからの入力は、音響的、音声的、又は触覚的入力を含む任意の形態で受け取られてよい。
【0062】
明細書中に記載されたシステム及び技術は、バックエンドコンポーネント(例えば、データサーバ)を含む、又はミドルウェアコンポーネント(例えば、アプリケーションサーバ)を含む、又はフロントエンドコンポーネント(例えば、ユーザが明細書中に記載されたシステム及び技術の実施形態と対話可能なグラフィカルユーザインタフェース又はウェブブラウザを備えたクライアントコンピュータ)を含む、又はそのようなバックエンド、ミドルウェア、若しくはフロントエンドコンポーネントの任意の組合せである、コンピューティングシステムとして実施されてよい。システムの構成要素は、任意の形態又は媒体のデジタルデータ通信(例えば、通信ネットワーク)によって相互に接続されてよい。通信ネットワークの例には、ローカルエリアネットワーク(LAN)、ワイドエリアネットワーク(WAN)、及びインターネットが含まれる。
【0063】
コンピューティングシステムは、クライアントとサーバとを含んでよい。クライアントとサーバとは、一般に、互いに離れて位置しており、典型的に、通信ネットワークを介して対話を行う。クライアントとサーバとの関係は、各自のコンピュータ上で動作し、かつ互いにクライアント−サーバ関係を有するコンピュータプログラムの働きによって生じる。
【0064】
以上、いくつかの実施形態が詳細に説明されたが、その他の修正形態を考えることもできる。例えば、クライアントアプリケーションが(複数の)代表局にアクセスするように説明されたが、別の実施形態においては、(複数の)代表局が、1つ又は複数のサーバ上で動作するアプリケーションなど、1つ又は複数のプロセッサによって実行される他のアプリケーションによって利用されてよい。さらに、図示された論理フローは、望ましい結果を得るために、記載された通りの順序又は順番を要しない。さらに、示されたフローに他の動作が提供されてよく、又は示されたフローから動作が除去されてもよい。また、示されたシステムに他の構成要素が追加されてよく、又は示されたシステムから構成要素が取り除かれてもよい。したがって、他の実施形態は、添付の特許請求の範囲内にある。