(57)【特許請求の範囲】
【請求項１】
コンピュータによって実施される方法であって、
ホットワードの複数の発話の各々に関して、少なくとも(i)前記発話に関連する発話者検証信頼性スコアおよび(ii)前記発話に関連する周囲状況データを含むデータセットを含む複数のデータセットを受け取るステップと、
特定の周囲の状況に関連する前記データセットのサブセットを、前記複数のデータセットの中から選択するステップと、
1つまたは複数の選択基準に基づいて、各データセットの発話者検証信頼性スコアによってランク付けされたデータセットの前記サブセットの中から特定のデータセットを選択するステップと、
前記特定のデータセットに含まれる前記発話者検証信頼性スコアを、前記特定の周囲の状況のための発話者検証閾値として選択するステップと、
発話者検証システムに出力するために、前記特定の周囲の状況に関連する発話の発話者の検証を実行する際に使用するための前記発話者検証閾値を提供するステップとを含む、
方法。
【請求項２】
前記周囲状況データが、前記発話の受け取りの直前に検出された雑音の量を明らかにする請求項1に記載の方法。
【請求項３】
前記周囲状況データが、前記発話の大きさを明らかにする請求項1に記載の方法。
【請求項４】
前記周囲状況データが、前記発話を符号化する音声信号の大きさの信号対雑音比を明らかにする請求項1に記載の方法。
【請求項５】
前記1つまたは複数の選択基準が、経験的に定義された棄却率である請求項1に記載の方法。
【請求項６】
前記発話に関連するトリガ後正確性インジケータによって前記データセットにラベル付けするステップを含む請求項1に記載の方法。
【請求項７】
異なる第2の発話者検証信頼性スコアによって前記データセットにラベル付けするステップを含む請求項1に記載の方法。
【請求項８】
前記データセットが、それぞれ、前記発話を符号化する音声信号をさらに含む請求項1に記載の方法。
【請求項９】
特定の周囲の状況に関連する前記データセットのサブセットを前記複数のデータセットの中から選択するステップが、
周囲状況データの範囲を決定するステップと、
前記周囲状況データの範囲内の前記発話に関連する前記周囲状況データを含む前記データセットのサブセットを選択するステップとを含む請求項1に記載の方法。
【請求項１０】
1つまたは複数の選択基準に基づいて、各データセットの発話者検証信頼性スコアによってランク付けされたデータセットの前記サブセットの中から特定のデータセットを選択するステップが、
前記1つまたは複数の選択基準に基づいて閾値を決定するステップと、
前記データセットのサブセット内のその他のデータセット未満だけ前記閾値を満たす前記特定のデータセットを前記データセットのサブセットの中から特定するステップとを含む請求項1に記載の方法。
【請求項１１】
それぞれの特定の周囲の状況にそれぞれが関連する前記データセットの複数のサブセットを前記複数のデータセットの中から選択するステップと、
前記1つまたは複数の選択基準に基づいて、複数の特定のデータセットを選択するステップであって、それぞれの特定のデータセットが、前記データセットのそれぞれのサブセットの中からのものである、ステップと、
それぞれの特定のデータセットに含まれる複数の発話者検証信頼性スコアを、複数の発話者検証閾値として選択するステップであって、前記発話者検証閾値の各々が、前記それぞれの特定の周囲の状況のためのものである、ステップと、
前記発話者検証システムに出力するために、前記それぞれの特定の周囲の状況に関連する発話の発話者の検証を実行する際に使用するための前記複数の発話者検証閾値を提供するステップとを含む請求項1に記載の方法。
【請求項１２】
それぞれのユーザにそれぞれが関連する前記データセットの複数のサブセットを前記複数のデータセットの中から選択するステップと、
前記1つまたは複数の選択基準に基づいて、複数の特定のデータセットを選択するステップであって、それぞれの特定のデータセットが、前記データセットのそれぞれのサブセットの中からのものである、ステップと、
それぞれの特定のデータセットに含まれる複数の発話者検証信頼性スコアを、複数の発話者検証閾値として選択するステップであって、前記発話者検証閾値の各々が、前記それぞれのユーザのためのものである、ステップと、
前記発話者検証システムに出力するために、前記それぞれのユーザに関連する発話の発話者の検証を実行する際に使用するための前記複数の発話者検証閾値を提供するステップとを含む請求項1に記載の方法。
【請求項１３】
前記発話者検証システムに出力するために、前記特定の周囲の状況に関連する発話の発話者の検証を実行する際に使用するための前記発話者検証閾値を提供するステップが、
ユーザデバイスに出力するために、周囲状況データの範囲および前記周囲状況データの範囲のための発話者検証閾値を提供するステップを含む請求項1に記載の方法。
【請求項１４】
1つまたは複数のコンピュータと、前記1つまたは複数のコンピュータによって実行されるときに前記1つまたは複数のコンピュータに
ホットワードの複数の発話の各々に関して、少なくとも(i)前記発話に関連する発話者検証信頼性スコアおよび(ii)前記発話に関連する周囲状況データを含むデータセットを含む複数のデータセットを受け取ること、
特定の周囲の状況に関連する前記データセットのサブセットを、前記複数のデータセットの中から選択すること、
1つまたは複数の選択基準に基づいて、各データセットの発話者検証信頼性スコアによってランク付けされたデータセットの前記サブセットの中から特定のデータセットを選択すること、
前記特定のデータセットに含まれる前記発話者検証信頼性スコアを、前記特定の周囲の状況のための発話者検証閾値として選択すること、ならびに
発話者検証システムに出力するために、前記特定の周囲の状況に関連する発話の発話者の検証を実行する際に使用するための前記発話者検証閾値を提供することを含む動作を実行させるように動作可能である命令を記憶する1つまたは複数のストレージデバイスと
を含むシステム。
【請求項１５】
特定の周囲の状況に関連する前記データセットのサブセットを複数のデータセットの中から選択することが、
周囲状況データの範囲を決定することと、
前記周囲状況データの範囲内の前記発話に関連する前記周囲状況データを含む前記データセットのサブセットを選択することとを含む請求項14に記載のシステム。
【請求項１６】
1つまたは複数の選択基準に基づいてデータセットの前記サブセットの中から特定のデータセットを選択することが、
前記1つまたは複数の選択基準に基づいて閾値を決定することと、
データセットの前記サブセット内のその他のデータセット未満だけ前記閾値を満たす前記特定のデータセットを前記データセットのサブセットの中から特定することとを含む請求項14に記載のシステム。
【請求項１７】
前記動作が、
それぞれの特定の周囲の状況にそれぞれが関連する前記データセットの複数のサブセットを複数のデータセットの中から選択することと、
前記1つまたは複数の選択基準に基づいて、複数の特定のデータセットを選択することであって、それぞれの特定のデータセットが、前記データセットのそれぞれのサブセットの中からのものである、選択することと、
それぞれの特定のデータセットに含まれる複数の発話者検証信頼性スコアを、複数の発話者検証閾値として選択することであって、前記発話者検証閾値の各々が、前記それぞれの特定の周囲の状況のためのものである、選択することと、
前記発話者検証システムに出力するために、前記それぞれの特定の周囲の状況に関連する発話の発話者の検証を実行する際に使用するための前記複数の発話者検証閾値を提供することとをさらに含む請求項14に記載のシステム。
【請求項１８】
前記動作が、
それぞれのユーザにそれぞれが関連する前記データセットの複数のサブセットを複数のデータセットの中から選択することと、
前記1つまたは複数の選択基準に基づいて、複数の特定のデータセットを選択することであって、それぞれの特定のデータセットが、前記データセットのそれぞれのサブセットの中からのものである、選択することと、
それぞれの特定のデータセットに含まれる複数の発話者検証信頼性スコアを、複数の発話者検証閾値として選択することであって、前記発話者検証閾値の各々が、前記それぞれのユーザのためのものである、選択することと、
前記発話者検証システムに出力するために、前記それぞれのユーザに関連する発話の発話者の検証を実行する際に使用するための前記複数の発話者検証閾値を提供することとをさらに含む請求項14に記載のシステム。
【請求項１９】
前記発話者検証システムに出力するために、前記特定の周囲の状況に関連する発話の発話者の検証を実行する際に使用するための前記発話者検証閾値を提供することが、
ユーザデバイスに出力するために、周囲状況データの範囲および前記周囲状況データの範囲のための発話者検証閾値を提供することを含む請求項14に記載のシステム。
【請求項２０】
1つまたは複数のコンピュータによって実行され得る命令を含むソフトウェアを記憶するコンピュータ可読記憶媒体であって、前記命令が、そのように実行されると、前記1つまたは複数のコンピュータに
ホットワードの複数の発話の各々に関して、少なくとも(i)前記発話に関連する発話者検証信頼性スコアおよび(ii)前記発話に関連する周囲状況データを含むデータセットを含む複数のデータセットを受け取ることと、
特定の周囲の状況に関連する前記データセットのサブセットを、前記複数のデータセットの中から選択することと、
1つまたは複数の選択基準に基づいて、各データセットの発話者検証信頼性スコアによってランク付けされたデータセットの前記サブセットの中から特定のデータセットを選択することと、
前記特定のデータセットに含まれる前記発話者検証信頼性スコアを、前記特定の周囲の状況のための発話者検証閾値として選択することと、
発話者検証システムに出力するために、前記特定の周囲の状況に関連する発話の発話者の検証を実行する際に使用するための前記発話者検証閾値を提供することとを含む動作を実行させる、コンピュータ可読記憶媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
関連出願の相互参照
本出願は、2014年6月24日に出願した米国特許出願第62/016,384号および2014年7月25日に出願した米国特許出願第14/340,720号の優先権を主張するものであり、これらの特許出願の内容は、参照により組み込まれる。
【０００２】
本開示は、概して、発話者の検証に関する。
【背景技術】
【０００３】
ホットワード(hotword)は、ユーザが音声コマンドを話す前にコンピューティングデバイスの注意を喚起するためにユーザが話し得る特定の語である。コンピューティングデバイスは、常にホットワードをリスニングしている可能性があり、ホットワードが受け取られると、コンピューティングデバイスは、その後受け取られた発話(utterance)を音声コマンドとして処理する可能性がある。
【０００４】
一例において、コンピューティングデバイスは、ホットワード「Ok computer」をリスニングする可能性がある。ユーザが「Ok computer, write a message.」と言うと、コンピューティングデバイスは、ホットワード「ok computer」を検出する可能性があり、それが、語句「write a message」を音声コマンドとして処理させる可能性がある。
【発明の概要】
【課題を解決するための手段】
【０００５】
本明細書において説明される対象の革新的な態様によれば、ユーザデバイスが、ユーザによって話された発話を受け取る。ユーザデバイスは、発話がホットワードを含むかどうかを判定し、発話の発話者がデバイスの認可されたユーザであるかまたは詐称者であるかを特定するための発話者の検証を実行する。発話者の検証を実行する際、ユーザデバイスは、認可されたユーザに関連する音声テンプレートとの発話の類似性に基づいて発話に関する信頼性スコアを生成し、信頼性スコアを閾値と比較する。さらに、ユーザデバイスは、背景雑音の量などの発話に関連する周囲の状況(environmental context)も特定し、周囲の状況および信頼性スコアを示すデータセットをさらなる処理のためにサーバに送信する。
【０００６】
サーバは、データセット、およびその他のデバイスからのデータセットを分析し、類似した周囲の状況によってデータセットをクラスタリングする。サーバは、各クラスタ内の特定のデータセットを選択し、そのデータセットに関連する信頼性スコアを閾値として選択する。
【０００７】
データセットを選択する1つの方法は、発話のうちの特定の割合が受容されるべきであるという考えに基づいて経験的に定義された目標の棄却率(rejection rate)を使用することである。サーバは、選択されたデータセットの信頼性スコアを対応する周囲の状況と対にし、信頼性スコアを対応する周囲の環境に関する閾値としてユーザデバイスおよびその他のユーザデバイスに提供する。閾値は、特定の周囲の状況に関して発話者を検証するためのカットオフ信頼性スコアを表す。異なる周囲の状況のために異なる閾値を用いることにより、ユーザデバイスは、雑音の少ない環境などの1つの周囲の状況においてユーザの声を認識しようとするときは比較的高い信頼性スコアを必要とする可能性があり、雑音の多い環境などの別の周囲の状況においてユーザの声を認識しようとするときは比較的低い信頼性スコアを必要とする可能性がある。
【０００８】
概して、本明細書に記載の対象の別の革新的な態様は、ホットワードの複数の発話の各々に関して、少なくとも(i)発話に関連する発話者検証信頼性スコアおよび(ii)発話に関連する周囲状況データを含むデータセットを受け取る行為と、特定の周囲の状況に関連するデータセットのサブセットをデータセットの中から選択する行為と、1つまたは複数の選択基準に基づいてデータセットのサブセットの中から特定のデータセットを選択する行為と、特定のデータセットに含まれる発話者検証信頼性スコアを、特定の周囲の状況のための発話者検証閾値として選択する行為と、特定の周囲の状況に関連する発話の発話者の検証を実行する際に使用するための発話者検証閾値を提供する行為とを含む方法に具現化される可能性がある。
【０００９】
これらのおよびその他の実施形態は、それぞれ、任意で、以下の特徴のうちの1つまたは複数を含む可能性がある。周囲状況データは、発話の受け取りの直前に検出された雑音の量を明らかにする。周囲状況データは、発話の大きさを明らかにする。周囲状況データは、発話を符号化する音声信号の大きさの信号対雑音比を明らかにする。1つまたは複数の選択基準は、経験的に定義された棄却率である。行為は、発話に関連するトリガ後正確性インジケータ(post trigger accuracy indicator)によってデータセットにラベル付けすることを含む。行為は、異なる第2の発話者検証信頼性スコアによってデータセットにラベル付けすることを含む。データセットは、それぞれ、発話を符号化する音声信号をさらに含む。特定の周囲の状況に関連するデータセットのサブセットをデータセットの中から選択する行為は、周囲状況データの範囲を決定することと、周囲状況データの範囲内の発話に関連する周囲状況データを含むデータセットのサブセットを選択することとを含む。
【００１０】
1つまたは複数の選択基準に基づいてデータセットのサブセットの中から特定のデータセットを選択する行為は、1つまたは複数の選択基準に基づいて閾値を決定することと、データセットのサブセット内のその他のデータセット未満だけ閾値を満たす特定のデータセットをデータセットのサブセットの中から特定することとを含む。行為は、それぞれの特定の周囲の状況にそれぞれが関連するデータセットの複数のサブセットをデータセットの中から選択することと、1つまたは複数の選択基準に基づいて、複数の特定のデータセットを選択することであって、それぞれの特定のデータセットが、データセットのそれぞれのサブセットの中からのものである、選択することと、それぞれの特定のデータセットに含まれる複数の発話者検証信頼性スコアを、複数の発話者検証閾値として選択することであって、発話者検証閾値の各々が、それぞれの特定の周囲の状況のためのものである、選択することと、それぞれの特定の周囲の状況に関連する発話の発話者の検証を実行する際に使用するための複数の発話者検証閾値を提供することとを含む。
【００１１】
行為は、それぞれのユーザにそれぞれが関連するデータセットの複数のサブセットをデータセットの中から選択することと、1つまたは複数の選択基準に基づいて、複数の特定のデータセットを選択することであって、それぞれの特定のデータセットが、データセットのそれぞれのサブセットの中からのものである、選択することと、それぞれの特定のデータセットに含まれる複数の発話者検証信頼性スコアを、複数の発話者検証閾値として選択することであって、発話者検証閾値の各々が、それぞれのユーザのためのものである、選択することと、それぞれのユーザに関連する発話の発話者の検証を実行する際に使用するための複数の発話者検証閾値を提供することとを含む。特定の周囲の状況に関連する発話の発話者の検証を実行する際に使用するための発話者検証閾値を提供する行為は、周囲状況データの範囲および周囲状況データの範囲のための発話者検証閾値をユーザデバイスに提供することを含む。
【００１２】
この態様のその他の実施形態は、方法の動作を実行するようにそれぞれが構成された対応するシステム、装置、およびコンピュータストレージデバイスに記録されたコンピュータプログラムを含む。
【００１３】
本明細書に記載の対象の特定の実施形態は、以下の利点のうちの1つまたは複数を実現するように実装され得る。デバイスは、雑音環境内の発話者を特定し得る。
【００１４】
本明細書に記載の対象の1つまたは複数の実施形態の詳細が、添付の図面および以下の説明に記載されている。対象のその他の特徴、態様、および利点は、説明、図面、および請求項から明らかになるであろう。
【図面の簡単な説明】
【００１５】
【図１】発話者の検証のための例示的なシステムの図である。
【図２】発話者の検証のための例示的なプロセスの図である。
【図３】コンピューティングデバイスおよびモバイルコンピューティングデバイスの例を示す図である。
【発明を実施するための形態】
【００１６】
様々な図面における同様の参照番号および参照指示は、同様の要素を示す。
【００１７】
図1は、発話者の検証のための例示的なシステム100の図である。概して、図100は、コンピューティングデバイス106のマイクロフォンに発話104を話すユーザ102を示す。コンピューティングデバイス106は、発話104を処理し、周辺環境108に関連するデータを収集する。コンピューティングデバイス106は、発話104および環境108に基づくデータを、サンプルクラスタラ132および閾値セレクタ146を含むサーバ160に送信する。サーバ160は、発話104に基づくデータセットおよびその他の発話に基づくデータを処理して、周辺環境108および類似した環境におけるユーザの声を検証するための発話者検証閾値を特定する。一部の実装において、ユーザの声を検証することは、ユーザの声を特定することも含み得る。
【００１８】
コンピューティングデバイス106の発話者検証の特徴を使用する前に、ユーザ102は、ユーザの声を認識するようにコンピューティングデバイス106を訓練する。コンピューティングデバイス106を訓練するために、ユーザ102は、コンピューティングデバイス106によって促されたとおりにいくつかの語句を繰り返して言う。語句は、ホットワードならびにその他の語および語句を含む可能性がある。たとえば、コンピューティングデバイス106は、ユーザに「Ok computer」、「open」、「call」、「message」、およびその他の語を言うように促す可能性がある。コンピューティングデバイス106は、ユーザの声の音声を処理して、コンピューティングデバイス106がマイクロフォンを通じて音声を受け取るときにコンピューティングデバイス106が比較するために使用することができる音声テンプレートを生成する。コンピューティングデバイス106は、デスクトップコンピュータ、ラップトップコンピュータ、スマートフォン、またはタブレットコンピュータである可能性がある。
【００１９】
コンピューティングデバイス106がユーザ102に関する音声テンプレートを持つと、ユーザは、音声コマンドを開始するためにホットワードを話し始めることができる。コンピューティングデバイス102は、マイクロフォンがアクティブなロックされた状態にあり、マイクロフォンを通じて受け取られた音声を処理している可能性がある。コンピューティングデバイス106は、マイクロフォンを通じて受け取られた音声を受け取り、音声をバッファに記憶する。コンピューティングデバイス106は、前の数秒の音声をバッファに記憶する可能性がある。たとえば、コンピューティングデバイス106は、5秒の音声を記憶する可能性がある。ロックされた状態である代わりに、コンピューティングデバイス102は、ロックされていない状態にある可能性がある。この場合、マイクロフォンは、引き続きアクティブである可能性があり、コンピューティングデバイス106は、特定の量の音声をバッファに記憶し、受け取る可能性がある。図1に示された例において、ユーザ102は、コンピューティングデバイス106に「Ok computer」と話す。コンピューティングデバイス106は、ユーザの声の音声と、ユーザが話したよりも前にマイクロフォンを通じて受け取られた音声とを受け取り、バッファリングされた音声110をさらなる処理のために記憶する。
【００２０】
一部の実装においては、エンドポインタ(endpointer)112が、コンピューティングデバイス106のバッファからバッファリングされた音声110を受け取る。エンドポインタ112は、コンピューティングデバイス106の1つまたは複数のプロセッサによって実行されるソフトウェアに実装される可能性がある。エンドポインタ112は、話と話以外とを分けるバッファリングされた音声110の音声フレームを特定し、それらの音声フレームが、端点(endpoint)である。図1に示された例において、バッファリングされた音声110は、話以外の音声114および話の音声116を含む。話以外の音声114は、ユーザが話し始める前にマイクロフォンによって受け取られた音声に対応し、話の音声116は、ユーザが話すことに対応する。たとえば、話以外の音声114は、ユーザ102が話し始める前にマイクロフォンによって拾われた雑音に対応し、話の音声116は、ユーザが「Ok computer」と話すことに対応する。
【００２１】
一部の実装においては、エンドポインタ112がコンピューティングデバイス106のバッファからバッファリングされた音声110を受け取る代わりに、ニューラルネットワークモジュールが、バッファリングされた音声110を受け取る。ニューラルネットワークモジュールは、コンピューティングデバイス106の1つまたは複数のプロセッサによって実行されるソフトウェアに実装される可能性がある。ニューラルネットワークモジュールは、バッファリングされた音声110を分析して、話を話し以外から分ける音声フレームを特定する。図1に示された例において、ニューラルネットワークは、話以外の音声114を話の音声116から分ける音声フレームを特定する。
【００２２】
ホットワーダ(hotworder)118は、エンドポインタ112またはニューラルネットワークモジュールから話の音声116を受け取る。エンドポインタ112と同様に、ホットワーダは、コンピューティングデバイス106の1つまたは複数のプロセッサによって実行されるソフトウェアに実装される可能性がある。ホットワーダ118は、話の音声116をホットワードテンプレート(hotword template)と比較し、ユーザがホットワードを話したかどうかを判定する。一部の実装においては、サーバ160などのコンピューティングデバイスが、複数のユーザがホットワードを話し、各ホットワードの音声セグメントを組み合わせることからホットワードテンプレートを生成する可能性がある。ホットワードテンプレートは、複数のユーザによって話されたホットワードの音声セグメントの平均である可能性がある。一部の実装において、サーバ160は、単一のユーザがホットワードを話すことからホットワードテンプレートを生成する可能性がある。この場合、ホットワードテンプレートは、単一のユーザによって話された複数のホットワードの音声セグメントの平均である可能性がある。
【００２３】
発話者検証モジュール120は、エンドポインタ112からバッファリングされた音声110を受け取り、発話者検証信頼性スコア122を計算する。発話者検証モジュール120のスコアラ(scorer)124は、発話者検証信頼性スコア122を計算する。発話者検証信頼性スコア122は、ユーザの声が話の音声116内で捕捉される見込みを反映する。発話者検証信頼性スコア122を計算するために、スコアラ124は、話の音声116をユーザに関する音声テンプレートと比較する。一部の実装において、発話者検証信頼性スコア122は、0と1との間の値である。ユーザの声が話の音声116に記録される見込みが高いほど、発話者検証信頼性スコア122は1に近い。
【００２４】
発話者検証モジュール120の周囲状況ディテクタ125は、バッファリングされた音声110を分析して、バッファリングされた音声110に関連する周囲状況データ126を決定する。周囲の状況は、話以外の音声114の大きさ、話の音声116の大きさ、または話以外の音声114の大きさに対する話の音声116の大きさの比に関連する可能性がある。大きさは、話以外の音声114、話の音声116、またはこれら2つの比のデシベルレベルである可能性がある。
【００２５】
発話者検証信頼性スコア122および周囲の状況126を用いて、発話者検証モジュール120は、話の音声116がユーザに対応するかどうかを結論づけるために閾値128を使用する。周囲の状況126に応じて異なる閾値が存在する可能性がある。たとえば、周囲の状況が話以外の音声114の雑音レベルが58デシベルであることを示す場合、発話者検証モジュール120は、50から60デシベルの範囲のための閾値を使用する可能性がある。発話者検証モジュール120は、閾値を発話者検証信頼性スコア122と比較して、発話者検証信頼性スコア122が閾値を満たす場合、発話者検証モジュールは、話の音声116を話した発話者が認可されたユーザであると結論づける。一部の実装においては、発話者検証信頼性スコア122が閾値以上である場合、発話者は認可されたユーザである。たとえば、閾値が0.7であり、発話者検証信頼性スコア122が0.7である場合、コンピューティングデバイス106は、発話者が認可されたユーザであると結論づける。
【００２６】
発話者検証モジュール120は、発話者検証信頼性スコア122および周囲状況データ126をデータセット130に記憶する。図1に示された例において、データセット130は、0.7の発話者検証信頼性スコア122および58デシベルの周囲状況データ126を含む。一部の実装において、データセットは、バッファリングされた音声110も含む。
【００２７】
サンプルクラスタラ132は、コンピューティングデバイス106からデータセット130を受け取る。サンプルクラスタラ132は、サーバの1つまたは複数のプロセッサで実行されるソフトウェアに実装される可能性がある。サンプルクラスタラ132は、ネットワークを通じてコンピューティングデバイス106からデータセット130を受け取ることができる。また、サンプルクラスタラ132は、ホットワーダ118が話されたホットワードを検出するたびにコンピューティングデバイス106からその他のデータセットを受け取り、その他のユーザ134のそれぞれのコンピューティングデバイスにホットワードを話すその他のユーザ134からその他のデータセットを受け取る。
【００２８】
一部の実装においては、第2の発話者検証モジュール136が、データセットに追加するためのさらなる値を計算する。サンプルクラスタラ132を含むサーバ160は、バッファリングされた音声110を処理する第2の発話者検証モジュール136も含む可能性がある。第2の発話者検証モジュール136は、限られた処理能力を有するコンピューティングデバイス106では可能でない可能性があるバッファリングされた音声110のよりしっかりした分析を実行し得る。第2の発話者検証モジュール136は、値が0と1との間である可能性があり、1に近いほど話の音声116と音声テンプレートとがよく一致することを示すという点で発話者検証モジュール120と似ている値を計算する。サンプルクラスタラ132は、第2の発話者検証モジュール136から各データセットに発話者検証信頼性スコアを追加する可能性がある。
【００２９】
一部の実装においては、正確性フィードバックモジュール138が、データセットへのさらなる値を計算する。正確性フィードバックモジュール138は、コンピューティングデバイス106の発話者検証の特徴を使用する際のユーザの成功および失敗に関してユーザ102から収集されたデータを集める可能性がある。ユーザ102がコンピューティングデバイス106のマイクロフォンにホットワードを話し、コンピューティングデバイス106がユーザ102を認識しない場合があり得る。これは、誤った棄却と考えられる。代替的に、詐称者がコンピューティングデバイス106のマイクロフォンにホットワードを話し、コンピューティングデバイス106が詐称者をユーザ102として誤って特定する場合があり得る。これは、誤った受容と考えられる。誤った受容の別の例は、ユーザ102または詐称者がホットワードに似ている語を話し、コンピューティングデバイス106がユーザ102がホットワードを話したと誤って判定するときである。たとえば、ユーザ102が、「hey scooter」を話す可能性があり、コンピューティングデバイス106が、ユーザ102が「ok computer」と言ったと誤って判定する。ユーザ102の正確な検証が、正しい受容であり、詐称者または非ホットワードの正確な棄却が、正しい棄却である。
【００３０】
ユーザ102からフィードバックを集めるために、コンピューティングデバイス106は、ユーザ102にパスワードの入力を促すか、または発話者の検証以外の別の手段によってユーザの識別情報を検証する可能性がある。ユーザの識別情報が検証されると、コンピューティングデバイス106は、特定の時間に発話者検証の特徴を用いて、ユーザ102がコンピューティングデバイス106にアクセスしようとしたかどうかに関してユーザ102に入力を促す可能性がある。ユーザ102は、それぞれのアクセスの試みを正しい受容、正しい棄却、誤った受容、または誤った棄却としてラベル付けする可能性がある。コンピューティングデバイス102は、正確性フィードバックモジュール138にユーザフィードバックを与える。正確性フィードバックモジュール138は、データセット130にユーザフィードバックを追加する。
【００３１】
ユーザ102が誤った棄却を特定する場合、コンピューティングデバイスは、バッファリングされた音声110を用いて、ユーザ102を認識するために使用される音声テンプレートをさらに改良する可能性がある。例として、ユーザ102が、「Ok computer」と言い、コンピューティングデバイス106のホットワーダ118が、話されたホットワードを認識する。コンピューティングデバイス106の発話者検証モジュール120は、発話に関する発話者検証スコアがユーザが話している周囲の状況のための発話者検証閾値未満であるので、ユーザの声を認識しない。コンピューティングデバイス106は、ユーザ102が「Ok computer」と言ったかどうかを入力するようユーザ102に促す。ユーザ102は、ユーザ102が「Ok computer」と言ったことを確認し、コンピューティングデバイスは、発話を誤った棄却としてラベル付けする。コンピューティングデバイスがユーザの声を認識しなかったので、発話者検証モジュール120は、ユーザ102に関する発話者の検証を改善し、誤った棄却および誤った受容を減らすために音声テンプレートを最近の発話によって更新する。
【００３２】
一部の実装において、第2の発話者検証モジュール136は、データセットが正しい棄却に対応するか、正しい受容に対応するか、誤った棄却に対応するか、または誤った受容に対応するかを示すラベルをデータセットに追加する。この場合、コンピューティングデバイス106は、発話者検証モジュール120が話の音声116を特定したかどうかを示すさらなるデータフィールドを音声テンプレートに対応するものとしてデータセット130に含める。第2の発話者検証モジュール136は、バッファリングされた音声110に対してさらなる計算を実行して、発話者検証モジュール120が正しい棄却を行ったか、正しい受容を行ったか、誤った棄却を行ったか、または誤った受容を行ったかを特定する。第2の発話者検証モジュール136は、コンピューティングデバイス106の計算リソースと比較してより多くの利用可能な計算リソースを有する可能性がある。
【００３３】
サンプルクラスタラ132は、似た周囲状況データによってデータセット130およびその他のデータセットをクラスタリングする。サンプルクラスタラ132は、それぞれの周囲状況データの範囲が最少数のデータセットを含むように1つまたは複数の周囲状況データの範囲を決定する。たとえば、サンプルクラスタラ132は、800個のデータセットのそれぞれの周囲状況データの範囲の最少数のデータセットを有する可能性がある。図1に示された例において、サンプルクラスタラ132は、3つのデータセットクラスタを特定する。データセットクラスタ140は、50デシベルと60デシベルとの間の周囲状況データを有するデータセットを含む。データセットクラスタ142は、60デシベルと70デシベルとの間の周囲状況データを有するデータセットを含む。データセットクラスタ144は、70デシベルと80デシベルとの間の周囲状況データを有するデータセットを含む。
【００３４】
一部の実装において、サンプルクラスタラ132は、データセット130、および同じユーザによって話された発話に対応するその他のデータセットをクラスタリングする。図1に示された例において、サンプルクラスタラ132は、ユーザ102によって話された発話に対応するデータセットをクラスタリングする可能性がある。特定のユーザによって話された発話に対応するデータセットのみをクラスタリングするとき、それぞれの周囲の状況のために必要とされる最少数のデータセットは、複数のユーザによって話された発話に対応するデータセットをクラスタリングするときとは異なる可能性がある。
【００３５】
閾値セレクタ146は、選択基準148を用いてそれぞれのデータセットクラスタから特定のデータセットを選択する。選択されたデータセットクラスタは、周囲状況データの範囲内の周囲状況データに関連する将来の発話者検証信頼性値に関する発話者検証信頼性閾値として使用される発話者検証信頼性値を含むデータセットとして閾値セレクタが選択するデータセットである。一部の実装において、選択基準は、経験的に定義された目標の棄却率である。経験的に定義された目標の棄却率は、過去のホットワードの発話データを分析することに基づく。過去のホットワードの発話データを分析する際、ホットワードを話す認可されたユーザとホットワードを話す詐称者との間の境界線が、過去のホットワードの発話データのうちの特定の割合がホットワードを話す認可されたユーザからのものであるように明らかになる可能性がある。例示的な経験的に定義された目標の棄却率は、7パーセントである。7パーセントの経験的に定義された目標の棄却率を用いて、閾値セレクタ146は、発話者検証スコアによってそれぞれのデータセットクラスタのデータセットをランク付けし、データセットクラスタのデータセットのうちの7パーセントよりも高い発話者検証スコアを有するデータセットを選択する。
【００３６】
図1に示された例において、閾値セレクタ146は、データセットクラスタ140、142、および144の各々に関して7パーセントの目標の棄却率のデータセットを特定する。発話者検証閾値テーブル150に示されるように、50デシベルと60デシベルとの間の周囲状況データを有するデータセットを含むデータセットクラスタ140は、0.7の発話者検証スコアを含むデータセットを7パーセントのレベルで有する。60デシベルと70デシベルとの間の周囲状況データを有するデータセットを含むデータセットクラスタ142は、0.6の発話者検証スコアを含むデータセットを7パーセントのレベルで有する。70デシベルと80デシベルとの間の周囲状況データを有するデータセットを含むデータセットクラスタ144は、0.4の発話者検証スコアを含むデータセットを7パーセントのレベルで有する。
【００３７】
一部の実装において、閾値セレクタ146は、正確性フィードバックモジュール138からのさらなるデータを使用する可能性がある。正確性フィードバックモジュール138からのデータを用いて、閾値セレクタ146は、発話者検証スコアによってそれぞれのデータセットクラスタのデータセットをランク付けする。閾値セレクタ146は、それぞれのデータセットのグループにおいて受容を棄却と最もうまく分けるデータセットを選択する可能性があり、選択されたデータセットに関する発話者検証信頼性スコアが、そのデータセットクラスタの周囲状況データの範囲に関する発話者検証信頼性閾値である。それぞれのデータセットクラスタにおいて、選択されたデータセットは、異なる割合のレベルである可能性がある。それぞれのデータセットクラスタにおいて受容を棄却と分けるデータセットを選択するとき、データセットの一部がおそらく誤った棄却および誤った受容であるので、境界線は明らかでない可能性がある。これらの場合、閾値セレクタ146は、誤った棄却のほとんどが正しい受容の側にあり、誤った受容が正しい棄却の側にあるようにデータセットクラスタを分割するデータセットを選択する可能性がある。閾値セレクタ146は、第2の発話者検証モジュール136によって追加され、正確性フィードバックモジュール138からのさらなるデータと同様にしてデータセットが正しい棄却に対応するか、正しい受容に対応するか、誤った棄却に対応するか、または誤った受容に対応するかを示すラベルを使用する可能性もある。
【００３８】
一部の実装において、閾値セレクタ146は、第2の発話者検証モジュール136からのさらなるデータを使用する可能性がある。第2の発話者検証モジュール136からのデータを用いて、閾値セレクタ146は、第2の発話者検証モジュール136からの発話者検証信頼性スコアによってそれぞれのデータセットクラスタのデータセットをランク付けする可能性がある。閾値セレクタ146は、経験的に定義された目標の棄却率を用いてそれぞれのデータセットクラスタを分割する可能性がある。閾値セレクタ146は、発話者検証信頼性閾値として第2の発話者検証モジュール136からの発話者検証信頼性スコアかまたは発話者検証モジュール120からの発話者検証信頼性スコアかのどちらかを選択する可能性がある。
【００３９】
一部の実装において、閾値セレクタ146は、第2の発話者検証モジュール136からのさらなるデータと正確性フィードバックモジュール138からのさらなるデータとの両方を使用する可能性がある。この場合、閾値セレクタ146は、第2の発話者検証モジュール136からの発話者検証信頼性スコアを用いてデータセットをランク付けし、上述のように、正確性フィードバックモジュール138からのさらなるデータに基づいてデータセットクラスタを選択する可能性がある。上と同様に、閾値セレクタ146は、発話者検証信頼性閾値として第2の発話者検証モジュール136からの発話者検証信頼性スコアかまたは発話者検証モジュール120からの発話者検証信頼性スコアかのどちらかを選択する可能性がある。
【００４０】
閾値セレクタ146は、発話者の検証で使用するためにコンピューティングデバイス106およびその他のコンピューティングデバイス152に発話者検証閾値テーブル150を提供する。閾値セレクタ146は、毎週など周期的にまたはその他のソフトウェアアップデートの一部としてコンピューティングデバイスに発話者検証閾値テーブル150を提供する可能性がある。代替的に、閾値セレクタ146は、コンピューティングデバイスによって促されるときにコンピューティングデバイスに発話者検証閾値テーブル150を提供する可能性がある。コンピューティングデバイス120は、発話者検証閾値モジュール120が多くの誤った受容または誤った棄却を有することを示唆するフィードバックをユーザ102が頻繁に与える場合、更新された発話者検証閾値テーブル150を要求する可能性がある。コンピューティングデバイス120は、発話者検証閾値テーブル150を受け取ると、将来の発話者の検証のために閾値128に発話者検証閾値テーブル150を記憶する。
【００４１】
図2は、発話者の検証のための例示的なプロセス200の図である。プロセス200は、図1のサンプルクラスタラ132および閾値セレクタ146を含むサーバ160などのコンピューティングデバイスによって実行され得る。プロセス200は、発話者の検証に関連するデータセットを分析し、異なる周囲の状況で使用するための発話者検証信頼性スコア閾値を計算する。
【００４２】
コンピューティングデバイスは、ホットワードの複数の発話の各々に関して、少なくとも(i)発話に関連する発話者検証信頼性スコアおよび(ii)発話に関連する周囲状況データを含むデータセットを受け取る(210)。データセットは、ユーザからホットワードの発話を受け取るユーザデバイスによって生成される。ユーザデバイスは、ホットワードの発話をユーザのための音声テンプレートと比較することによって発話者検証信頼性スコアを計算する。ユーザデバイスは、通常は発話の雑音のレベルに基づく周囲状況データを計算する。一部の実装において、周囲状況データは、ユーザが発話を話す前の期間にユーザデバイスによって検出された雑音の量を明らかにする。たとえば、周囲状況データは、ユーザが話す前の特定の期間に受け取られた音声信号の2乗平均平方根またはデシベルレベルに基づく可能性がある。一部の実装において、周囲状況データは、発話の大きさに基づく可能性がある。たとえば、周囲状況データは、発話の2乗平均平方根またはデシベルレベルに基づく可能性がある。一部の実装において、周囲状況データは、発話の信号対雑音比、またはユーザが話す前の特定の期間に受け取られた音声信号の大きさの発話の大きさに対する比の信号対雑音比に基づく可能性がある。
【００４３】
一部の実装において、コンピューティングデバイスは、データセットにさらなるデータを追加する可能性がある。コンピューティングデバイスは、トリガ後正確性インジケータを追加する可能性がある。コンピューティングデバイスは、ユーザデバイスが音声信号に基づいてユーザの検証についての判定を行った後にトリガ後正確性データを集める可能性がある。たとえば、ユーザデバイスは、発話者検証の特徴を使用するユーザの試みを棄却し、それから、パスワードを入力するようにユーザに促すことによってユーザを認証する。この場合、コンピューティングデバイスは、誤った棄却を表すデータをデータセットに追加する可能性がある。一部の実装において、ユーザデバイスは、データセットに音声信号を含める可能性もある。コンピューティングデバイスは、音声信号を分析して、データセットと共に含めるべき異なる第2の発話者検証信頼性スコアを計算する可能性がある。
【００４４】
コンピューティングデバイスは、特定の周囲の状況に関連するデータセットのサブセットをデータセットの中から選択する(220)。コンピューティングデバイスは、クラスタが少なくとも最少数のデータセットをそれぞれ含むように周囲状況データに基づいてデータセットをクラスタリングする。コンピューティングデバイスは、データセットをクラスタリングするための周囲状況データ範囲を選択し得る。たとえば、コンピューティングデバイスは、ユーザが話す前の特定の期間に受け取られた音声信号の大きさに基づいてデータセットをクラスタリングする可能性がある。
【００４５】
コンピューティングデバイスは、1つまたは複数の選択基準に基づいてデータセットのサブセットの中から特定のデータセットを選択する(230)。コンピューティングデバイスは、周囲状況データに応じてデータセットのサブセットをランク付けする。一部の実装において、コンピューティングデバイスは、経験的に定義された目標の棄却率に基づいて特定のデータセットを選択する可能性がある。一部の実装において、コンピューティングデバイスは、トリガ後正確性データに基づいて特定のデータセットを選択する可能性がある。一部の実装において、コンピューティングデバイスは、異なる第2の発話者検証信頼性スコアに応じてデータセットのサブセットをランク付けし、異なる第2の発話者検証信頼性スコアに基づいて特定のデータセットを選択する可能性がある。
【００４６】
コンピューティングデバイスは、特定のデータセットに含まれる発話者検証信頼性スコアを、特定の周囲の状況のための発話者検証閾値として選択する(240)。たとえば、コンピューティングデバイスは、50デシベルから60デシベルまでの周囲状況データの範囲において、0.7の発話者検証信頼性スコアを有するデータセットを選択する。0.7の発話者検証信頼性スコアは、50デシベルから60デシベルまでの範囲における発話に関する発話者検証信頼性閾値である。
【００４７】
コンピューティングデバイスは、特定の周囲の状況に関連する発話の発話者の検証を実行する際に使用するための発話者検証閾値を提供する(250)。一部の実装において、コンピューティングデバイスは、周囲状況データの範囲および対応する発話者検証信頼性閾値ならびにその他の周囲状況データの範囲および対応する発話者検証信頼性閾値を発話者の検証の際に使用するためにユーザデバイスに提供する。
【００４８】
一部の実装において、コンピューティングデバイスは、周囲状況データに基づいて、特定のユーザによって話されるデータセットのサブセットを選択する可能性がある。この場合、コンピューティングデバイスは、特定のユーザのための発話者検証閾値を特定し、対応する発話者検証閾値および周囲状況データを特定のユーザのデバイスに提供する。コンピューティングデバイスは、トリガ後正確性インジケータおよび異なる第2の発話者検証スコアからのデータを用いて特定のユーザのための発話者検証閾値を特定する可能性もある。
【００４９】
本明細書に記載の対象の実施形態および動作は、本明細書において開示された構造およびそれらの構造的均等物を含む、デジタル電子回路、またはコンピュータソフトウェア、ファームウェア、もしくはハードウェア、またはそれらのうちの1つもしくは複数の組合せで実装され得る。本明細書に記載の対象の実施形態は、1つまたは複数のコンピュータプログラム、すなわち、データ処理装置による実行のために、またはデータ処理装置の動作を制御するためにコンピュータストレージ媒体上に符号化されたコンピュータプログラム命令の1つまたは複数のモジュールとして実装され得る。代替的にまたは追加的に、プログラム命令は、データ処理装置による実行のために好適な受信機装置に送信するために情報を符号化するように生成される人為的に生成された伝播信号、たとえば、機械によって生成された電気的信号、光学的信号、または電磁的信号上に符号化され得る。コンピュータストレージ媒体は、コンピュータ可読ストレージデバイス、コンピュータ可読ストレージ基板、ランダムもしくはシリアルアクセスメモリアレイもしくはデバイス、またはそれらの1つもしくは複数の組合せであるか、あるいはそれらに含まれる可能性がある。さらに、コンピュータストレージ媒体は、伝播信号ではないが、人為的に生成された伝播信号に符号化されたコンピュータプログラム命令の送信元または送信先である可能性がある。コンピュータストレージ媒体は、1つまたは複数の別個の物理的構成要素または媒体(たとえば、複数のCD、ディスク、またはその他のストレージデバイス)であるか、またはそれらに含まれる可能性もある。
【００５０】
本明細書に記載の動作は、1つもしくは複数のコンピュータ可読ストレージデバイスに記憶された、またはその他のソースから受信されたデータに対してデータ処理装置によって実行される動作として実装され得る。
【００５１】
用語「データ処理装置」は、例として、1つのプログラム可能なプロセッサ、1台のコンピュータ、1つのシステムオンチップ、またはそれらの複数もしくは組合せを含む、データを処理するためのすべての種類の装置、デバイス、および機械を包含する。装置は、専用の論理回路、たとえば、FPGA(フィールドプログラマブルゲートアレイ)またはASIC(特定用途向け集積回路)を含み得る。装置は、ハードウェアに加えて、問題にしているコンピュータプログラムのための実行環境を生成するコード、たとえば、プロセッサのファームウェア、プロトコルスタック、データベース管理システム、オペレーティングシステム、クロスプラットフォームランタイム環境、仮想マシン、またはそれらのうちの1つもしくは複数の組合せを構成するコードも含み得る。装置および実行環境は、ウェブサービスインフラストラクチャ、分散コンピューティングインフラストラクチャ、およびグリッドコンピューティングインフラストラクチャなどの、様々な異なるコンピューティングモデルインフラストラクチャを実現することができる。
【００５２】
コンピュータプログラム(プログラム、ソフトウェア、ソフトウェアアプリケーション、スクリプト、またはコードとしても知られる)は、コンパイラ型言語もしくはインタープリタ型言語、宣言型言語もしくは手続き型言語を含む任意の形態のプログラミング言語で記述可能であり、独立型プログラムとしての形態、またはモジュール、コンポーネント、サブルーチン、オブジェクト、もしくはコンピューティング環境での使用に適したその他の単位としての形態を含む任意の形態で配置され得る。コンピュータプログラムは、ファイルシステム内のファイルに対応する可能性があるが、必ずそうであるとは限らない。プログラムは、その他のプログラムもしくはデータを保持するファイルの一部(たとえば、マークアップ言語のドキュメントに記憶された1つもしくは複数のスクリプト)、問題にしているプログラムに専用の単一のファイル、または複数の組織されたファイル(たとえば、1つもしくは複数のモジュール、サブプログラム、もしくはコードの一部を記憶するファイル)に記憶され得る。コンピュータプログラムは、1つのコンピュータ上で、または1つの場所に置かれるか、もしくは複数の場所に分散され、通信ネットワークによって相互に接続される複数のコンピュータ上で実行されるように配置され得る。
【００５３】
本明細書に記載のプロセスおよび論理フローは、入力データに対して演算を行い、出力を生成することによって行為を行うために1つまたは複数のコンピュータプログラムを1つまたは複数のプログラミング可能なプロセッサが実行することによって実行され得る。また、プロセスおよび論理フローは、専用の論理回路、たとえば、FPGA(フィールドプログラマブルゲートアレイ)またはASIC(特定用途向け集積回路)によって実行される可能性があり、さらに、装置は、それらの専用の論理回路として実装される可能性がある。
【００５４】
コンピュータプログラムの実行に好適なプロセッサは、例として、汎用マイクロプロセッサと専用マイクロプロセッサとの両方、および任意の種類のデジタルコンピュータの任意の1つまたは複数のプロセッサを含む。概して、プロセッサは、読み出し専用メモリ、またはランダムアクセスメモリ、またはそれらの両方から命令およびデータを受け取る。コンピュータの必須の要素は、命令にしたがって行為を実行するためのプロセッサ、ならびに命令およびデータを記憶するための1つまたは複数のメモリデバイスである。また、概してコンピュータは、データを記憶するための1つまたは複数の大容量ストレージデバイス、たとえば、磁気ディスク、光磁気ディスク、もしくは光ディスクを含むか、またはそれらの大容量ストレージデバイスからデータを受信するか、もしくはそれらの大容量ストレージデバイスにデータを転送するか、もしくはその両方を行うためにそれらの大容量ストレージデバイスに動作可能なように結合される。しかし、コンピュータは、そのようなデバイスを備えていなくてもよい。さらに、コンピュータは、別のデバイス、たとえば、ほんのいくつか例を挙げるとすれば、モバイル電話、携帯情報端末(PDA)、モバイルオーディオもしくはビデオプレイヤー、ゲームコンソール、全地球測位システム(GPS)受信機、またはポータブルストレージデバイス(たとえば、ユニバーサルシリアルバス(USB)フラッシュドライブ)に組み込まれる可能性がある。コンピュータプログラム命令およびデータを記憶するのに適したデバイスは、例として、半導体メモリデバイス、たとえば、EPROM、EEPROM、およびフラッシュメモリデバイス、磁気ディスク、たとえば、内蔵ハードディスクまたはリムーバブルディスク、光磁気ディスク、ならびにCD-ROMディスクおよびDVD-ROMディスクを含む、すべての形態の不揮発性メモリ、媒体、およびメモリデバイスを含む。プロセッサおよびメモリは、専用の論理回路によって補完されるか、または専用の論理回路に組み込まれる可能性がある。
【００５５】
ユーザとのインタラクションを行うために、本明細書に記載の対象の実施形態は、ユーザに対して情報を表示するためのディスプレイデバイス、たとえば、CRT(ブラウン管)またはLCD(液晶ディスプレイ)モニタ、ならびに、ユーザがコンピュータに入力を与えることができるキーボードおよびポインティングデバイス、たとえば、マウスまたはトラックボールを有するコンピュータ上に実装され得る。その他の種類のデバイスが、ユーザとのインタラクションを行うためにやはり使用される可能性があり、たとえば、ユーザに提供されるフィードバックは、任意の形態の感覚フィードバック、たとえば、視覚的フィードバック、聴覚的フィードバック、または触覚的フィードバックである可能性があり、ユーザからの入力は、音響、話、または触覚による入力を含む任意の形態で受け取られる可能性がある。加えて、コンピュータは、ユーザによって使用されるデバイスに文書を送信し、そのデバイスから文書を受信することによって、たとえば、ウェブブラウザから受信された要求に応答してユーザのクライアントデバイスのウェブブラウザにウェブページを送信することによってユーザとインタラクションすることができる。
【００５６】
本明細書に記載の対象の実施形態は、バックエンド構成要素を、たとえば、データサーバとして含むか、またはミドルウェア構成要素、たとえば、アプリケーションサーバを含むか、またはフロントエンド構成要素、たとえば、ユーザが本明細書に記載の対象の実装とインタラクションすることができるグラフィカルユーザインターフェースもしくはウェブブラウザを有するクライアントコンピュータを含むか、または1つもしくは複数のそのようなバックエンド構成要素、ミドルウェア構成要素、もしくはフロントエンド構成要素の任意の組合せを含むコンピューティングシステムに実装され得る。システムの構成要素は、任意の形態または媒体のデジタルデータ通信、たとえば、通信ネットワークによって相互に接続され得る。通信ネットワークの例は、ローカルエリアネットワーク(「LAN」)および広域ネットワーク(「WAN」)、インターネットワーク(たとえば、インターネット)、ならびにピアツーピアネットワーク(たとえば、アドホックピアツーピアネットワーク)を含む。
【００５７】
1つまたは複数のコンピュータのシステムが、動作中にシステムに行為を実行させるシステムにインストールされたソフトウェア、ファームウェア、ハードウェア、またはそれらの組合せによって特定の動作または行為を実行するように構成される可能性がある。1つまたは複数のコンピュータプログラムが、データ処理装置によって実行されるときに装置に行為を実行させる命令を含むことによって特定の動作または行為を実行するように構成される可能性がある。
【００５８】
コンピューティングシステムは、クライアントおよびサーバを含み得る。クライアントおよびサーバは、概して互いに離れており、通常は通信ネットワークを介してインタラクションする。クライアントとサーバとの関係は、それぞれのコンピュータ上で実行されており、互いにクライアント-サーバの関係にあるコンピュータプログラムによって生じる。一部の実施形態において、サーバは、(たとえば、クライアントデバイスとインタラクションするユーザに対してデータを表示し、そのようなユーザからユーザ入力を受信する目的で)クライアントデバイスにデータ(たとえば、HTMLページ)を送信する。クライアントデバイスにおいて生成されたデータ(たとえば、ユーザのインタラクションの結果)が、サーバにおいてクライアントデバイスから受信される可能性がある。
【００５９】
本明細書は多くの特定の実装の詳細を含むが、これらは、いかなる発明の範囲または特許請求され得るものの範囲に対する限定とも見なされるべきではなく、むしろ、特定の発明の特定の実施形態に固有の特徴の説明と見なされるべきである。別個の実施形態に関連して本明細書に記載されている特定の特徴が、単一の実施形態において組み合わせて実装される可能性もある。反対に、単一の実施形態に関連して説明されている様々な特徴が、複数の実施形態に別々に、または任意の適切な部分的組合せで実装される可能性もある。さらに、特徴は、特定の組合せで動作するものとして上で説明されている可能性があり、最初にそのように主張されてさえいる可能性があるが、主張された組合せの1つまたは複数の特徴は、場合によってはその組合せから削除される可能性があり、主張された組合せは、部分的組合せ、または部分的組合せの変形を対象とする可能性がある。
【００６０】
同様に、動作が図中に特定の順序で示されているが、これは、そのような動作が示された特定の順序でもしくは逐次的順序で実行されること、または所望の結果を達成するために示されたすべての動作が実行されることを必要とするものと理解されるべきでない。特定の状況においては、マルチタスクおよび並列処理が、有利である可能性がある。さらに、上述の実施形態における様々なシステム構成要素の分割は、すべての実施形態においてそのような分割を必要とするものと理解されるべきでなく、説明されたプログラム構成要素およびシステムは、概して、単一のソフトウェア製品に一緒に統合されるか、または複数のソフトウェア製品にパッケージングされる可能性があると理解されるべきである。
【００６１】
このように、対象の特定の実施形態が説明された。その他の実施形態は、添付の請求項の範囲内にある。場合によっては、請求項に挙げられた行為は、異なる順序で実行され、それでも所望の結果を達成し得る。加えて、添付の図面に示されたプロセスは、所望の結果を達成するために、必ずしも、示された特定の順序または逐次的順序である必要はない。特定の実装においては、マルチタスクおよび並列処理が、有利である可能性がある。
【００６２】
図3は、本明細書に記載の技術を実装するために使用され得るコンピューティングデバイス300およびモバイルコンピューティングデバイス350の例を示す。コンピューティングデバイス300は、ラップトップ、デスクトップ、ワークステーション、携帯情報端末、サーバ、ブレードサーバ、メインフレーム、およびその他の適切なコンピュータなどの様々な形態のデジタルコンピュータを表すように意図される。モバイルコンピューティングデバイス350は、携帯情報端末、セルラー電話、スマートフォン、およびその他の同様のコンピューティングデバイスなどの様々な形態のモバイルデバイスを表すように意図される。本明細書において示された構成要素、それらの接続および関係、およびそれらの機能は、単に例であるように意図されているに過ぎず、限定であるように意図されていない。
【００６３】
コンピューティングデバイス300は、プロセッサ302と、メモリ304と、ストレージデバイス306と、メモリ304および複数の高速拡張ポート310に接続する高速インターフェース308と、低速拡張ポート314およびストレージデバイス306に接続する低速インターフェース312とを含む。プロセッサ302、メモリ304、ストレージデバイス306、高速インターフェース308、高速拡張ポート310、および低速インターフェース312の各々は、様々なバスを用いて相互に接続され、通常のマザーボード上に搭載されるか、または適宜その他の方法で搭載される可能性がある。プロセッサ302は、高速インターフェース308に結合されたディスプレイ316などの外部入力/出力デバイス上にGUIのグラフィカルな情報を表示するために、メモリ304またはストレージデバイス306に記憶された命令を含む、コンピューティングデバイス300内で実行するための命令を処理することができる。その他の実装においては、複数のプロセッサおよび/または複数のバスが、複数のメモリおよび複数の種類のメモリと共に適宜使用され得る。また、複数のコンピューティングデバイスが、各デバイスが必要な動作の一部を行うようにして(たとえば、サーババンク、一群のブレードサーバ、またはマルチプロセッサシステムとして)接続される可能性がある。
【００６４】
メモリ304は、コンピューティングデバイス300内で情報を記憶する。一部の実装において、メモリ304は、1つの揮発性メモリユニットまたは複数の揮発性メモリユニットである。一部の実装において、メモリ304は、1つの不揮発性メモリユニットまたは複数の不揮発性メモリユニットである。メモリ304は、磁気または光ディスクなどの別の形態のコンピュータ可読媒体である可能性もある。
【００６５】
ストレージデバイス306は、コンピューティングデバイス300のための大容量ストレージを提供することができる。一部の実装において、ストレージデバイス306は、フレキシブルディスクデバイス、ハードディスクデバイス、光ディスクデバイス、またはテープデバイス、フラッシュメモリもしくはその他の同様のソリッドステートメモリデバイス、またはストレージエリアネットワークもしくはその他の構成内のデバイスを含むデバイスのアレイなどのコンピュータ可読媒体であるか、またはそのようなコンピュータ可読媒体を含む可能性がある。命令は、情報担体に記憶され得る。命令は、1つまたは複数の処理デバイス(たとえば、プロセッサ302)によって実行されるとき、上述の方法などの1つまたは複数の方法を実行する。命令は、コンピュータ可読媒体または機械可読媒体(たとえば、メモリ304、ストレージデバイス306、またはプロセッサ302上のメモリ)などの1つまたは複数のストレージデバイスによって記憶される可能性もある。
【００６６】
高速インターフェース308が、コンピューティングデバイス300に関する帯域を大量に消費する動作を管理する一方、低速インターフェース312は、帯域をそれほど消費しない動作を管理する。そのような機能の割り振りは、例であるに過ぎない。一部の実装において、高速インターフェース308は、メモリ304に、(たとえば、グラフィックスプロセッサまたはアクセラレータを通じて)ディスプレイ316に、および様々な拡張カード(図示せず)を受け入れ得る高速拡張ポート310に結合される。実装において、低速インターフェース312は、ストレージデバイス306および低速拡張ポート314に結合される。様々な通信ポート(たとえば、USB、Bluetooth(登録商標)、イーサネット(登録商標)、ワイヤレス・イーサネット(登録商標))を含み得る低速拡張ポート314は、キーボード、ポインティングデバイス、スキャナなどの1つもしくは複数の入力/出力デバイスと結合され得るか、またはたとえばネットワークアダプタを介してスイッチもしくはルータなどのネットワーキングデバイスと結合され得る。
【００６７】
コンピューティングデバイス300は、図に示されるように、多くの異なる形態で実装され得る。たとえば、コンピューティングデバイス300は、標準的なサーバ320として実装されるか、または一群のそのようなサーバ内で複数回実装される可能性がある。さらに、コンピューティングデバイス300は、ラップトップコンピュータ322などのパーソナルコンピュータで実装され得る。コンピューティングデバイス300は、ラックサーバシステム324の一部として実装される可能性もある。代替的に、コンピューティングデバイス300の構成要素は、モバイルコンピューティングデバイス350などのモバイルデバイスのその他の構成要素(図示せず)と組み合わされる可能性がある。そのようなデバイスの各々は、コンピューティングデバイス300およびモバイルコンピューティングデバイス350のうちの1つまたは複数を含む可能性があり、システム全体が、互いに通信する複数のコンピューティングデバイスによって構成される可能性がある。
【００６８】
モバイルコンピューティングデバイス350は、構成要素の中でもとりわけ、プロセッサ352、メモリ364、ディスプレイ354などの入力/出力デバイス、通信インターフェース366、およびトランシーバ368を含む。モバイルコンピューティングデバイス350は、追加的なストレージを提供するために、マイクロドライブまたはその他のデバイスなどのストレージデバイスを備える可能性もある。プロセッサ352、メモリ364、ディスプレイ354、通信インターフェース366、およびトランシーバ368の各々は、様々なバスを用いて相互に接続されており、構成要素のうちのいくつかは、通常のマザーボード上に搭載されるか、または適宜その他の方法で搭載される可能性がある。
【００６９】
プロセッサ352は、メモリ364に記憶された命令を含むモバイルコンピューティングデバイス350内の命令を実行することができる。プロセッサ352は、別々の複数のアナログおよびデジタルプロセッサを含むチップのチップセットとして実装され得る。プロセッサ352は、たとえば、ユーザインターフェース、モバイルコンピューティングデバイス350によって実行されるアプリケーション、およびモバイルコンピューティングデバイス350によるワイヤレス通信の制御などの、モバイルコンピューティングデバイス350のその他の構成要素の調整を行い得る。
【００７０】
プロセッサ352は、ディスプレイ354に結合された制御インターフェース358およびディスプレイインターフェース356を通じてユーザとコミュニケーションし得る。ディルプレイ354は、たとえば、TFT(薄膜トランジスタ液晶ディスプレイ)ディスプレイもしくはOLED(有機発光ダイオード)ディスプレイ、またはその他の適切なディスプレイテクノロジーである可能性がある。ディスプレイインターフェース356は、ユーザに対してグラフィカルな情報およびその他の情報を提示するようにディスプレイ354を駆動するための適切な回路を含み得る。制御インターフェース358は、ユーザからコマンドを受け取り、それらのコマンドを、プロセッサ352に送るために変換し得る。加えて、外部インターフェース362が、その他のデバイスとのモバイルコンピューティングデバイス350の近い地域の通信を可能にするために、プロセッサ352との通信を提供し得る。外部インターフェース362は、たとえば、一部の実装においては有線通信を、またはその他の実装においてはワイヤレス通信を提供する可能性があり、複数のインターフェースが使用される可能性もある。
【００７１】
メモリ364は、モバイルコンピューティングデバイス350内で情報を記憶する。メモリ364は、1つのコンピュータ可読媒体もしくは複数のコンピュータ可読媒体、1つの揮発性メモリユニットもしくは複数の揮発性メモリユニット、または1つの不揮発性メモリユニットもしくは複数の不揮発性メモリユニットのうちの1つまたは複数として実装され得る。また、拡張メモリ374が設けられ、たとえば、SIMM(シングルインラインメモリモジュール(Single In Line Memory Module))カードインターフェースを含む可能性がある拡張インターフェース372を通じてモバイルコンピューティングデバイス350に接続され得る。拡張メモリ374は、モバイルコンピューティングデバイス350に追加的なストレージ空間を提供する可能性があり、またはモバイルコンピューティングデバイス350に関するアプリケーションまたはその他の情報を記憶する可能性もある。特に、拡張メモリ374は、上述のプロセスを実行または補足する命令を含む可能性があり、安全な情報を含む可能性もある。したがって、たとえば、拡張メモリ374は、モバイルコンピューティングデバイス350のセキュリティモジュールとして設けられる可能性があり、モバイルコンピューティングデバイス350の安全な使用を可能にする命令でプログラムされる可能性がある。さらに、ハッキングすることができない方法でSIMMカードに識別情報を置くなど、追加的な情報と共に、安全なアプリケーションがSIMMカードによって提供され得る。
【００７２】
メモリは、たとえば、以下で検討されるように、フラッシュメモリおよび/またはNVRAMメモリ(不揮発性ランダムアクセスメモリ)を含み得る。一部の実装においては、命令が、情報担体に記憶される。命令は、1つまたは複数の処理デバイス(たとえば、プロセッサ352)によって実行されるとき、上述の方法などの1つまたは複数の方法を実行する。命令は、1つまたは複数のコンピュータ可読媒体または機械可読媒体(たとえば、メモリ364、拡張メモリ374、またはプロセッサ352上のメモリ)などの1つまたは複数のストレージデバイスによって記憶される可能性もある。一部の実装において、命令は、たとえば、トランシーバ368または外部インターフェース362を介して伝播信号で受信される可能性がある。
【００７３】
モバイルコンピューティングデバイス350は、必要に応じてデジタル信号処理回路を含む可能性がある通信インターフェース366を通じてワイヤレスで通信し得る。通信インターフェース366は、とりわけ、GSM(登録商標)音声通話(移動体通信用グローバルシステム(Global System for Mobile communications))、SMS(ショートメッセージサービス)、EMS(拡張メッセージングサービス(Enhanced Messaging Service))、またはMMSメッセージング(マルチメディアメッセージングサービス)、CDMA(符号分割多元接続)、TDMA(時分割多元接続)、PDC(パーソナルデジタルセルラー)、WCDMA(登録商標) (広帯域符号分割多元接続)、CDMA2000、またはGPRS(汎用パケット無線サービス)などの様々なモードまたはプロトコルの下で通信を提供する可能性がある。そのような通信は、たとえば、無線周波数を用いるトランシーバ368を通じて行われ得る。さらに、近距離通信が、Bluetooth(登録商標)、WiFi、またはその他のそのようなトランシーバ(図示せず)を用いるなどして行われ得る。加えて、GPS(全地球測位システム)受信機モジュール370が、モバイルコンピューティングデバイス350で実行されるアプリケーションによって適宜使用され得るさらなるナビゲーションおよび位置に関連するワイヤレスデータをモバイルコンピューティングデバイス350に提供する可能性がある。
【００７４】
モバイルコンピューティングデバイス350は、ユーザから話された情報を受信し、その情報を使用可能なデジタル情報に変換し得る音声コーデック360を用いて音声通信する可能性もある。同じく、音声コーデック360は、たとえば、モバイルコンピューティングデバイス350のハンドセットのスピーカを介するなどして、ユーザのための聞くことができる音声を生成し得る。そのような音声は、音声電話通話の音声を含む可能性があり、記録された音声(たとえば、ボイスメッセージ、音楽ファイルなど)を含む可能性があり、モバイルコンピューティングデバイス350上で動作するアプリケーションによって生成された音声も含む可能性がある。
【００７５】
モバイルコンピューティングデバイス350は、図に示されるように、多くの異なる形態で実装され得る。たとえば、モバイルコンピューティングデバイス350は、セルラー電話380として実装され得る。また、モバイルコンピューティングデバイス350は、スマートフォン382、携帯情報端末、またはその他の同様の移動体デバイスの一部として実装され得る。
【００７６】
本明細書に記載のシステムおよび技術の様々な実装は、デジタル電子回路、集積回路、特別に設計されたASIC(特定用途向け集積回路)、コンピュータハードウェア、ファームウェア、ソフトウェア、および/またはそれらの組合せで実現され得る。これらの様々な実装は、ストレージシステム、少なくとも1つの入力デバイス、および少なくとも1つの出力デバイスからデータおよび命令を受信し、それらにデータおよび命令を送信するために結合された、専用または汎用である可能性がある少なくとも1つのプログラミング可能なプロセッサを含むプログラミング可能なシステム上の、実行可能および/または解釈可能な1つまたは複数のコンピュータプログラムへの実装を含み得る。
【００７７】
これらのコンピュータプログラム(プログラム、ソフトウェア、ソフトウェアアプリケーション、またはコードとしても知られる)は、プログラミング可能なプロセッサ用の機械命令を含み、高級手続き型プログラミング言語および/もしくはオブジェクト指向プログラミング言語、ならびに/またはアセンブリ/機械言語で実装され得る。本明細書で使用されるとき、用語、機械可読媒体およびコンピュータ可読媒体とは、機械命令を機械可読信号として受信する機械可読媒体を含む、プログラミング可能なプロセッサに機械命令および/またはデータを提供するために使用される任意のコンピュータプログラム製品、装置、および/またはデバイス(たとえば、磁気ディスク、光ディスク、メモリ、プログラマブルロジックデバイス(PLD))を指す。用語、機械可読信号とは、プログラミング可能なプロセッサに機械命令および/またはデータを提供するために使用される任意の信号を指す。
【００７８】
ユーザとのインタラクションを行うために、本明細書に記載のシステムおよび技術は、ユーザに対して情報を表示するためのディスプレイデバイス(たとえば、CRT(ブラウン管)またはLCD(液晶ディスプレイ)モニタ)、ならびにユーザがコンピュータに入力を与えることができるキーボードおよびポインティングデバイス(たとえば、マウスまたはトラックボール)を有するコンピュータ上に実装され得る。その他の種類のデバイスが、ユーザとのインタラクションを行うためにさらに使用される可能性があり、たとえば、ユーザに提供されるフィードバックは、任意の形態の感覚フィードバック(たとえば、視覚的フィードバック、聴覚的フィードバック、または触覚的フィードバック)である可能性があり、ユーザからの入力は、音響、話、または触覚による入力を含む任意の形態で受け取られ得る。
【００７９】
本明細書に記載のシステムおよび技術は、バックエンド構成要素を(たとえば、データサーバとして)含むか、またはミドルウェア構成要素(たとえば、アプリケーションサーバ)を含むか、またはフロントエンド構成要素(たとえば、ユーザが本明細書に記載のシステムおよび技術の実装とインタラクションすることができるグラフィカルユーザインターフェースまたはウェブブラウザを有するクライアントコンピュータ)を含むか、またはそのようなバックエンド構成要素、ミドルウェア構成要素、もしくはフロントエンド構成要素の任意の組合せを含むコンピューティングシステムに実装され得る。システムの構成要素は、任意の形態または媒体のデジタルデータ通信(たとえば、通信ネットワーク)によって相互に接続され得る。通信ネットワークの例は、ローカルエリアネットワーク(LAN)、広域ネットワーク(WAN)、およびインターネットを含む。
【００８０】
コンピューティングシステムは、クライアントおよびサーバを含み得る。クライアントおよびサーバは、概して互いに離れており、通常は通信ネットワークを通じてインタラクションする。クライアントとサーバとの関係は、それぞれのコンピュータ上で実行されており、互いにクライアント-サーバの関係にあるコンピュータプログラムによって生じる。
【００８１】
数個の実装が上で詳細に説明されたが、その他の修正があり得る。たとえば、クライアントアプリケーションはデリゲート(delegate)にアクセスするものとして説明されているが、他の実装においては、デリゲートは、1つまたは複数のサーバで実行されるアプリケーションなどの、1つまたは複数のプロセッサによって実装されるその他のアプリケーションによって使用される可能性がある。加えて、図面に示された論理フローは、所望の結果を達成するために、示された特定の順序または逐次的順序である必要はない。さらに、その他の行為が設けられる可能性があり、または行為が説明されたフローから削除される可能性があり、その他の構成要素が説明されたシステムに追加されるか、もしくは説明されたシステムから削除される可能性がある。したがって、その他の実装は、添付の請求項の範囲内にある。
【符号の説明】
【００８２】
100  システム
102  ユーザ
104  発話
106  コンピューティングデバイス
108  周辺環境
110  バッファリングされた音声
112  エンドポインタ
114  話以外の音声
116  話の音声
118  ホットワーダ
120  発話者検証モジュール
122  発話者検証信頼性スコア
124  スコアラ
125  周囲状況ディテクタ
126  周囲状況データ
128  閾値
130  データセット
132  サンプルクラスタラ
134  その他のユーザ
136  第2の発話者検証モジュール
138  正確性フィードバックモジュール
140  データセットクラスタ
142  データセットクラスタ
144  データセットクラスタ
146  閾値セレクタ
148  選択基準
150  発話者検証閾値テーブル
152  その他のコンピューティングデバイス
160  サーバ
200  プロセス
300  コンピューティングデバイス
302  プロセッサ
304  メモリ
306  ストレージデバイス
308  高速インターフェース
310  高速拡張ポート
312  低速インターフェース
314  低速拡張ポート
316  ディスプレイ
320  サーバ
322  ラップトップコンピュータ
324  ラックサーバシステム
350  モバイルコンピューティングデバイス
352  プロセッサ
354  ディスプレイ
356  ディスプレイインターフェース
358  制御インターフェース
364  メモリ
366  通信インターフェース
368  トランシーバ
370  GPS(全地球測位システム)受信機モジュール
372  拡張インターフェース
374  拡張メモリ
380  セルラー電話
382  スマートフォン
【図１】
0006474827.tif 000002
【図２】
0006474827.tif 000003
【図３】
0006474827.tif 000004