(58)【調査した分野】(Int.Cl.,DB名)
【発明の概要】
【課題を解決するための手段】
【0003】
一般に、本明細書において説明される主題の態様は、話者の身元を検証するためのプロセスを含むことが可能である。話者検証は、話者からの発声を表す音響データを、その特定のユーザからの発声を表す音響データと照合することによって行われる。
【0004】
システムは、いつでも、話者に同一の句、例えば、「FIXED VERIFICATION PHRASE」を発話するよう求めることによって話者検証を実行することが可能である。このアプローチは、正確であり得るが、スプーフィングを被りやすい可能性がある。例えば、その句を発話する特定のユーザの記録が再生される可能性がある。代替として、システムは、話者が句、例えば、「RANDOM VERIFICATION PHRASE」を独立に発話するのを許してもよい。しかし、このアプローチは、それほど正確でない可能性がある。例えば、システムは、どのような句が話者によって話されたかを決定することができない可能性がある。
【0005】
システムは、その特定のユーザに関して記憶された訓練音響データに基づいて動的に生成された検証句を提供することによって発話者検証にかかわる前述の問題に対処することが可能である。例えば、システムは、システムが、部分語「HAM」を発話する特定のユーザを表す訓練音響データを記憶していると決定することに基づいて、その特定のユーザとして検証されるべき発話者に検証句、例えば、「HAMMER」を提供することが可能である。
【0006】
検証句を提供することに応答して、システムは、その検証句を発話する話者を表す音響データを獲得し、その話者の身元を、獲得された音響データを使用して特定のユーザとして検証することが可能である。例えば、システムは、話者の身元を、「HAMMER」における部分語「HAM」を発話する話者を表す獲得された音響データが、その部分語「HAM」を発話する特定のユーザを表す訓練音響データと合致すると決定することに基づいて、特定のユーザとして検証することが可能である。
【0007】
システムが、話者の身元を特定のユーザとして検証する場合、システムは、獲得された音響データを、その特定のユーザに関する訓練音響データとして記憶することが可能である。例えば、システムは、部分語「MER」を発話する話者を表す音響データを、部分語「MER」を発話する特定のユーザを表す音響データとして記憶することが可能である。将来、話者の身元をその特定のユーザとして検証する際、システムは、部分語「MER」を発話する話者を表す音響データを、部分語「MER」を発話するその特定のユーザを表すその新たに記憶された訓練音響データと比較することが可能である。例えば、システムが次回に話者検証を実行して、話者をその特定のユーザとして検証する際、システムは、システムが、部分語「MER」を発話する特定のユーザを表す訓練音響データを記憶していると決定することに基づいて、異なる検証句、例えば、「JAMMER」を提供することが可能である。
【0008】
いくつかの態様において、本明細書において説明される主題は、ユーザの身元を検証するための検証句を求める要求を受信するアクションを含むことが可能な方法において具現化されることが可能である。さらなるアクションは、ユーザの身元を検証するための検証句を求める要求を受信することに応答して、その検証句に含められるべき部分語を識別すること、およびその検証句に含められるべき部分語を識別することに応答して、識別された部分語のうちの少なくともいくつかを含む候補句を検証句として獲得することを含む。さらなるアクションは、その検証句を、ユーザの身元を検証するための検証句を求める要求に対する応答として提供することを含む。
【0009】
他のバージョンは、コンピュータストレージデバイス上に符号化された、方法のアクションを実行するように構成された対応するシステム、装置、およびコンピュータプログラムを含む。
【0010】
これら、および他のバージョンはそれぞれ、オプションとして、以下の特徴のうちの1つまたは複数を含むことが可能である。例えば、いくつかの実装形態において、検証句に含められるべき部分語を識別することは、記憶された音響データがユーザに関連付けられた候補部分語を、検証句に含められるべき部分語のうちの1つまたは複数として識別することを含む。
【0011】
いくつかの態様において、識別された部分語のうちの少なくともいくつかを含む候補句を検証句として獲得することは、特定の識別された部分語が特に音弁別性が高いと決定すること、および特定の識別された部分語が特に音弁別性が高いと決定することに応答して、特に音弁別性が高いと決定されたその特定の識別された部分語を含む候補句を獲得することを含む。
【0012】
いくつかの態様において、識別された部分語のうちの少なくともいくつかを含む候補句を検証句として獲得することは、識別された部分語のうちの少なくともいくつかを含む候補を含む複数の候補句を獲得すること、候補句が、識別された部分語のうちの少なくともいくつかを含むと決定すること、および候補句が、識別された部分語のうちの少なくともいくつかを含むと決定することに応答して、その決定された候補句を、複数の候補句の中から、識別された部分語のうちの少なくともいくつかを含む候補句として選択することを含む。
【0013】
いくつかの実装形態において、アクションは、検証句を発話するユーザを表す音響データを獲得すること、獲得された音響データが、ユーザに関する記憶された音響データと合致すると決定すること、および獲得された音響データが、ユーザに関する記憶された音響データと合致すると決定することに応答して、そのユーザをそのユーザとして分類することを含む。
【0014】
いくつかの態様において、獲得された音響データが、ユーザに関する記憶された音響データと合致すると決定することは、検証句の中の識別された部分語のうちの少なくともいくつかに関する記憶された音響データが、検証句の中の識別された部分語のうちのその少なくともいくつかに対応する獲得された音響データと合致すると決定することを含む。
【0015】
いくつかの態様において、検証句に含められるべき部分語を識別することは、ユーザに関連付けられた記憶された音響データが存在しない候補部分語を、検証句に含められるべき部分語のうちの1つまたは複数として識別することを含む。識別された部分語のうちの少なくともいくつかを含む候補句を検証句として獲得することは、記憶された音響データがユーザに関連付けられた少なくとも1つの候補部分語と、ユーザに関連付けられた記憶された音響データが存在しない少なくとも1つの候補部分語とを含む候補句を獲得することを含む。
【0016】
いくつかの実装形態において、アクションは、識別された候補部分語に対応する獲得された音響データから、ユーザに関連付けられた記憶された音響データが存在しない音響データを、そのユーザに関連して記憶することを含む。
【0017】
本明細書において説明される主題の1つまたは複数の実装形態の詳細は、添付の図面、および後段の説明に記載される。この主題の他の潜在的な特徴、態様、および利点は、その説明、図面、および特許請求の範囲から明白となろう。
【発明を実施するための形態】
【0019】
様々な図面における同様の参照符号は、同様の要素を示す。
【0020】
図1は、話者の身元を検証するための例示的なプロセス100の流れ図である。一般に、プロセス100は、音声検証登録段階(110)を含むことが可能である。例えば、システムが、登録句を発話するよう特定のユーザに指示し、その登録句を発話するその特定のユーザを表す訓練音響データを記憶することが可能である。部分語のそれぞれに関する音響データは、例えば、部分語のそれぞれを発話する特定のユーザを表すMFCC係数またはフィルタバンクエネルギーであることが可能である。部分語は、音素、または2つ以上の音素のシーケンス、例えば、トライフォンであることが可能である。音声検証登録段階は、
図2に例示される。
【0021】
プロセス100は、検証句の動的生成段階(120)を含むことが可能である。例えば、検証句を求める要求に応答して、システムが、話者の身元を検証するための検証句を動的に生成することが可能である。検証句の動的生成段階は、
図3に例示される。
【0022】
プロセス100は、検証段階(130)を含むことが可能である。例えば、システムが、検証句を発話する話者を表す音響データを受信し、獲得された音響データに基づいて、その話者を特定のユーザとして検証することが可能である。検証段階は、
図4に例示される。
【0023】
プロセス100は、データ収集段階(140)を含むことが可能である。例えば、話者を特定のユーザとして検証した後、システムは、獲得された音響データを、発話する特定のユーザを表す音響データとして記憶することが可能である。データ収集段階は、
図4に例示される。
【0024】
図2は、音声検証登録のためのシステム200のブロック図である。このシステムは、登録インターフェース210と、特定のユーザ220に関する音響データデータベース230とを含むことが可能である。システム200は、コンピューティングデバイス212、例えば、モバイル電話であることが可能である。登録インターフェース210は、登録句を発話して音声検証のために特定のユーザ220を登録するよう特定のユーザ220に指示することが可能である。例えば、登録インターフェース210が、事前定義された登録句「DONUT」を発話するよう特定のユーザ220に指示することが可能である。
【0025】
システム200は、特定のユーザ220の発話に基づいて訓練音響データを獲得することが可能である。システム200は、例えば、特定のユーザ220からの発話の部分を登録句の中の部分語と揃えるように動的時間伸縮法を実行することによって訓練音響データを獲得することが可能である。例えば、システム200は、特定のユーザ220からの発話の第1の部分を部分語「DO」と揃え、特定のユーザ220からの発話の第2の部分を部分語「NUT」と揃えることが可能である。
【0026】
システム200は、音響データデータベース230の中に、登録句の中の部分語のそれぞれを発話する特定のユーザ220を表す訓練音響データを記憶することが可能である。例えば、システム200は、登録句「DONUT」の中の部分語「DO」および「NUT」を発話する特定のユーザ220を表す訓練音響データを記憶することが可能である。
【0027】
登録目的で、システム200は、異なる1つまたは複数の登録句を使用することが可能である。例えば、システム200は、登録句、「THE QUICK BROWN FOX JUMPS OVER THE LAZY DOG」を発話するよう特定のユーザ220に指示し、その後、「COMPUTER PLEASE LEARN MY VOICE FROM THIS PHRASE I'M CURRENTLY SPEAKING」と言うよう特定のユーザ220に指示することが可能である。
【0028】
システム200は、所定の登録句、または動的に生成された登録句を使用することが可能である。例えば、システム200は、登録句「DONUT」を発話した後、さらなる登録用語の所定のシーケンスを発話するよう、所与の場所、または所与の言語に関連付けられたユーザにいつでも最初に指示することが可能である。さらに、または代替として、システム200は、記憶された音響データを補足する1つまたは複数の登録句を動的に生成することが可能である。例えば、システム200は、システム200が、それらの部分語を発話する特定のユーザ220を表す記憶された訓練音響データを有しない、部分語を含む候補登録句を識別することが可能である。
【0029】
システム200は、システム200が、少なくとも最小限のしきい値量の部分語を最小限のしきい値回数、発話する特定のユーザ220を表す訓練音響データを得るまで、異なる登録句を発話することを続けるよう特定のユーザ220に指示することを続けることが可能である。例えば、システム200は、システム200が、異なる少なくとも10の部分語を少なくとも2回ずつ、発話する特定のユーザ220を表す訓練音響データを得るまで、異なる登録句を発話することを続けるよう特定のユーザ220に指示することを続けることが可能である。さらに、または代替として、システム200は、システム200が、特定の登録句がしきい値発話品質を満たすのに十分な訓練音響データを得るまで、特定の登録句を発話することを続けるよう特定のユーザ220に指示することを続けることが可能である。
【0030】
いくつかの実装形態において、システム200は、音響データデータベース230の中に、登録句に応答してシステム200が獲得しなかった訓練音響データを記憶することも可能である。例えば、システム200は、音声コマンドまたは音声クエリを発話する特定のユーザ220を表す訓練音響データを識別し、識別された訓練音響データを音響データデータベース230の中に記憶することが可能である。
【0031】
図3は、検証句を獲得するためのシステム300のブロック図である。システム300は、話者検証イニシエータ(initiator)304と、部分語アイデンティファイア(identifier)310と、音響データデータベース230と、検証句オブテイナ(obtainer)320と、候補句データベース330と、検証インターフェース340とを含むことが可能である。
【0032】
ホットワード検出器であることが可能な話者検証イニシエータ304は、音声コマンドを受信し、その音声コマンドに基づいて話者検証を開始することが可能である。例えば、話者検証イニシエータ304は、音声コマンド「OK COMPUTER, UNLOCK」を受信し、その音声コマンドが話者検証を含むと決定し、話者検証を開始することが可能である。話者検証イニシエータ304は、部分語アイデンティファイア310に話者検証要求を提供することによって話者検証を開始することが可能である。
【0033】
話者検証を求める要求に応答して、部分語アイデンティファイア310が、検証句に含められるべき部分語を識別することが可能である。例えば、話者検証イニシエータ304から話者検証を求める要求を受信することに応答して、部分語アイデンティファイア310が、部分語「NUT」が検証句に含められるべきことを識別することが可能である。
【0034】
部分語アイデンティファイア310は、音響データデータベース230の中に記憶された訓練音響データに基づいて、検証句に含められるべき特定の部分語を識別することが可能である。例えば、部分語アイデンティファイア310は、音響データデータベース230が、部分語「DO」および部分語「NUT」を発話する特定のユーザ200を表す訓練音響データを記憶していると決定することに基づいて、検証句に含められるべき部分語「DO」および「NUT」を識別することが可能である。
【0035】
検証句オブテイナ320は、さらに、または代替として、その部分語を発話する特定のユーザ220を表す訓練音響データが音響データデータベース230の中に記憶されていない部分語を決定することに基づいて、検証句に含められるべき部分語を識別してもよい。例えば、検証句オブテイナ320は、部分語「PEA」を発話する特定のユーザ220を表す記憶された訓練音響データがほとんど、またはまったく存在しないと決定することに基づいて、検証句に含められるべき部分語「PEA」を識別することが可能である。
【0036】
検証句オブテイナ320は、識別された部分語に基づいて検証句を獲得することが可能である。例えば、検証句オブテイナ320は、識別された部分語「DO」、「NUT」、および「PEA」に基づいて検証句「PEANUT」を獲得することが可能である。検証句オブテイナ320は、候補句データベース330から複数の候補句を獲得すること、識別された部分語のうちの1つまたは複数を含む獲得された候補句を識別すること、および識別された候補句を検証句として選択することに基づいて、検証句を獲得することが可能である。例えば、検証句オブテイナ320は、候補句データベース330から候補句、「KITE」、「BEAR」、「PEANUT」、および「DONUT」を獲得し、候補句「PEANUT」が、識別された部分語「NUT」および「PEA」を含むことを識別し、識別された候補句「PEANUT」を検証句として選択することが可能である。
【0037】
検証句オブテイナ320は、さらに、または代替として、いずれの識別された部分語が、特定のユーザ220に関する訓練音響データを有するか、およびいずれの識別された部分語が、特定のユーザ220に関する訓練音響データを有しないかに基づいて、検証候補句を獲得してもよい。検証句オブテイナ320は、訓練音響データを有する少なくとも1つの識別された部分語と、訓練音響データを有しない少なくとも1つの識別された部分語の両方を有する検証句を獲得することが可能である。例えば、検証句オブテイナ320は、候補句「PEANUT」を、候補句「PEANUT」が、訓練音響データを有する識別された部分語「NUT」を含み、かつ訓練音響データを有しない識別された部分語「PEA」を含むと決定することに基づいて、検証句として選択することが可能である。
【0038】
いくつかの実装形態において、検証句オブテイナ320は、候補句が、最小限のしきい値量の部分語を含み、かつ候補句の中のあるパーセンテージの部分語が、特定のユーザ220に関する訓練音響データを有する部分語であると決定することに基づいて、候補句から検証句を獲得することが可能である。例えば、検証句オブテイナ320は、候補句が、少なくとも10の部分語を含み、かつ候補句の中の部分語の約90%が、特定のユーザ220に関する訓練音響データを有する部分語であると決定することに基づいて、候補句「I ATE SIX PEANUT BUTTER SANDWICHES TODAY」を検証句として選択することが可能である。
【0039】
候補句を検証句として選択する際、検証句オブテイナ320は、訓練音響データが記憶されている各候補句の中の部分語の数によって、獲得された候補句のリストを順序付けることが可能である。順序付けられたリストから、検証句オブテイナ320は、最小限のしきい値数の部分語と、特定のユーザ220に関する訓練音響データを有する最小限のパーセンテージの部分語とを有する候補句を選択することが可能である。
【0040】
いくつかの実装形態において、検証句オブテイナ320は、識別された部分語の音弁別性の指標に基づいて検証句を獲得することが可能である。検証句オブテイナ320は、一般に、音弁別性のより高い部分語を含む候補句を選択することが可能である。検証句オブテイナ320は、それぞれの識別された部分語の音弁別性の指標を決定し、(i)特に音弁別性が高く、かつ特定のユーザ220に関して記憶された音響データを有する少なくとも1つの識別された部分語と、(ii)特に音弁別性が高く、かつ特定のユーザ220に関して記憶された音響データを有しない少なくとも1つの識別された部分語とを含む候補句を選択することに基づいて、検証句を獲得することが可能である。例えば、検証句オブテイナ320は、候補句「PEANUT」が、記憶された音響データを有し、かつ特に音弁別性の高い識別された部分語「NUT」を含むとともに、記憶された音響データを有せず、やはり特に音弁別性の高い識別された部分語「PEA」を含むと決定することに基づいて、候補句「PEANUT」を検証句として選択することが可能である。
【0041】
いくつかの実装形態において、検証句オブテイナ320は、候補句データベース330なしに候補句を獲得することが可能である。例えば、検証句オブテイナ320は、(i)記憶された音響データを有し、かつ特に音弁別性が高い識別された部分語「NUT」と、(ii)記憶された音響データを有せず、やはり特に音弁別性が高い識別された部分語「PEA」とを含む候補句を生成することに基づいて、候補句「NUT PEA」を検証句として生成することが可能である。
【0042】
検証インターフェース340は、検証句を発話するよう話者302に指示することが可能である。例えば、検証インターフェース340は、モバイルコンピューティングデバイス202のディスプレイ上に「PLEASE SAY 'PEANUT'」を出力することが可能である。さらに、または代替として、検証インターフェース340は、「PLEASE SAY 'PEANUT'」の合成された発話を出力することが可能である。
【0043】
図4は、話者302の身元を検証するためのシステム400のブロック図である。システム400は、部分語コンパレータ420と、話者クラシファイア430と、ウェルカムインターフェース440とを含むことが可能である。
【0044】
システム400は、話者の発話に基づいて音響データ410を獲得することが可能である。システム400は、話者302からの発話の部分を検証句の中の部分語と揃えるように動的時間伸縮法を実行することによって音響データを獲得することが可能である。例えば、システム400は、話者302からの発話の第1の部分を部分語「PEA」と揃え、話者302からの発話の第2の部分を部分語「NUT」と揃えることが可能である。システム400が、話者の発話から検証句に関する音響データ410を獲得することができない場合、システム400は、エラーを生成することが可能である。例えば、システム400は、話者302が完全に異なる句「AARDVARK」を発話した場合、検証句、「PEANUT」を揃えることができない可能性があり、検証句を繰り返すよう話者に求めるエラーを生成することが可能である。
【0045】
部分語コンパレータ420は、検証句の1つまたは複数の部分語を発話する話者302を表す獲得された音響データ410を受信することが可能である。例えば、部分語コンパレータ420は、検証句「PEANUT」の部分語「PEA」および「NUT」を発話する話者302を表す獲得された音響データ410を受信することが可能である。
【0046】
部分語コンパレータ420は、獲得された音響データ410を、それらの部分語を発話する特定のユーザ220を表す音響データデータベース230の中の記憶された訓練音響データと比較することが可能である。例えば、部分語コンパレータ420は、部分語「NUT」を発話する話者420を表す獲得された音響データ410と、部分語「NUT」を発話する特定のユーザ220を表す記憶された訓練音響データの間の距離を決定することが可能である。
【0047】
部分語コンパレータ420は、その部分語に関して訓練音響データを有する部分語に関する獲得された音響データだけを比較することが可能である。例えば、部分語コンパレータ420は、部分語「NUT」に関して記憶された訓練音響データが存在すると決定することに基づいて、部分語「NUT」に関する獲得された音響データを比較することを決定することが可能である。別の例において、部分語コンパレータ420は、部分語「PEA」に関して記憶された訓練音響データが存在しないと決定することに基づいて、部分語「PEA」に関する獲得された音響データを比較しないことを決定することが可能である。
【0048】
さらに、または代替として、部分語コンパレータ420は、訓練音響データを有しない部分語に関する獲得された音響データを、ユーザ特有でない音響データと比較して、正しい部分語が発話されたことを検証してもよい。例えば、部分語コンパレータ420は、部分語「PEA」に関する獲得された音響データを、部分語「PEA」に関するユーザ特有でない音響データと比較して、部分語「PEA」が発話されたことを検証することが可能である。いくつかの実装形態において、部分語コンパレータ420は、訓練音響データを有しない部分語に関する獲得された音響データを、類似する音の部分語に関する記憶された訓練音響データと比較することが可能である。例えば、部分語コンパレータ420は、部分語「PEA」に関する獲得された音響データを、部分語「PE」に関する記憶された訓練音響データと比較することが可能である。
【0049】
部分語コンパレータ420は、獲得された音響データと記憶された訓練音響データの1つまたは複数の比較に基づいて、比較された部分語ごとに合致スコアを生成することが可能である。合致スコアは、特定のユーザ220が、獲得された音響データに対応する部分語を発話した尤度を示すことが可能である。例えば、部分語コンパレータ420は、特定のユーザ220として部分語「PEA」の話者302の身元の90%尤度を示す合致スコア90%、および特定のユーザ220として部分語「DO」の話者302の身元の100%尤度を示す合致スコア100%を決定することが可能である。
【0050】
部分語コンパレータ420は、音響データと、比較される部分語に関する記憶された訓練音響データの間の距離を決定することに基づいて、比較される部分語ごとに合致スコアを生成することが可能である。部分語コンパレータ420は、L2距離を計算すること、または動的時間伸縮法による照合を実行することに基づいて各部分語に関する距離を決定することが可能である。いくつかの実装形態において、部分語コンパレータ420が、訓練音響データを有しない部分語に関する獲得された音響データを、類似する音の部分語に関する記憶された訓練音響データと比較することが可能である場合、話者クラシファイア430が、その比較をより寛大にすることが可能である。例えば、部分語コンパレータ420が、部分語「PEA」に関する獲得された音響データを、部分語「PE」に関する訓練音響データと比較する場合、部分語コンパレータ420は、距離を半減させることが可能である。
【0051】
部分語コンパレータ420は、合致スコアに基づいて最終スコアを生成することが可能である。部分語コンパレータ420は、合致スコアを平均することによって最終スコアを生成することが可能である。例えば、部分語コンパレータ420は、部分語「NUT」に関する90%合致スコアと部分語「DO」に関する100%合致スコアを平均することに基づいて、95%という最終スコアを生成することが可能である。
【0052】
いくつかの実装形態において、部分語コンパレータ420は、獲得された音響データと記憶された訓練音響データの間の比較に、特定の部分語に関して異なるように重み付けすることが可能である。部分語コンパレータ420は、音弁別性がより高いと決定された部分語、またはより多くの記憶された音響データが利用可能である部分語に関する比較に、より大きい重み付けをすることが可能である。例えば、部分語コンパレータ420は、部分語「NUT」が、部分語「DO」と比べて音弁別性がより高いと決定し、部分語「NUT」に関する100%という合致スコアに2倍の重み付けをして、最終スコアが97%であるようにすることが可能である。いくつかの実装形態において、部分語コンパレータ420は、話者クラシファイア430に合致スコアを供給して、話者クラシファイアが最終スコアを生成するようにすることが可能である。
【0053】
話者クラシファイア430は、獲得された音響データが、記憶された訓練音響データと合致すると決定することに基づいて、話者302が特定のユーザ220であるかどうかの分類を行うことが可能である。例えば、話者クラシファイア430は、部分語コンパレータ420からの最終スコアが90%以上であるため、獲得された音響データが、記憶された訓練音響データと合致すると決定することに基づいて、話者302が特定のユーザ220であるという分類を行うことが可能である。別の例において、話者クラシファイア430は、部分語コンパレータ420からの最終スコアが90%未満であるため、獲得された音響データが、記憶された訓練音響データと合致しないと決定することに基づいて、話者302が特定のユーザ220ではないという分類を行うことが可能である。
【0054】
話者クラシファイア430が、話者302が特定のユーザ220ではないという分類を行った場合、別の検証句が要求されることが可能であり、話者302は、その検証句を発話するように指示されることが可能である。例えば、ロックされたモバイルデバイスがロックされたままであることが可能であり、話者302に「SORRY VOICE NOT RECOGNIZED, PLEASE TRY SPEAKING INSTEAD 'CHESTNUT'」と指示することが可能である。さらに、または代替として、話者クラシファイア430が、話者302が特定のユーザ220ではないという分類を行った場合、同一の検証句が要求されてもよい。例えば、ロックされたモバイルデバイスがロックされたままであることが可能であり、話者302に「SORRY VOICE NOT RECOGNIZED, PLEASE TRY REPEATING 'PEANUT'」と指示することが可能である。いくつかの実装形態において、話者クラシファイア430は、話者302に、特定の句に関して、所定の回数、例えば、2回、3回、または4回、指示することが可能である。
【0055】
話者クラシファイア430が、話者302が特定のユーザ220であるという分類を行った場合、話者クラシファイア430は、獲得された音響データを音響データデータベース230に訓練音響データとして追加することが可能である。例えば、話者クラシファイア430は、部分語「NUT」に関する獲得された音響データを、部分語「NUT」を発話する特定のユーザ220の第2の事例を表すものとして記憶し、部分語「PEA」に関する獲得された音響データを、部分語「PEA」を発話する特定のユーザ220の第1の事例を表すものとして記憶することが可能である。獲得された音響データを音響データデータベース230に追加する際、話者クラシファイア430は、特定の部分語に関して、獲得された音響データを平均することが可能である。例えば、話者クラシファイア430は、部分語「NUT」を発話する特定のユーザ220の2つの事例に関する音響データを平均することが可能である。獲得された音響データを音響データデータベース230に訓練音響データとして追加することによって、話者クラシファイア430は、部分語、例えば、「NUT」に関する獲得された音響データと記憶された訓練音響データの将来の比較を、より正確にすることが可能であり、記憶された訓練音響データを最初は有しなかった部分語、例えば、「PEA」が、今や、記憶された訓練音響データを有することが可能であるので、将来、さらなる部分語が比較されることを可能にし得る。
【0056】
話者クラシファイア430が、話者302が特定のユーザ220であるという分類を行った場合、話者クラシファイア430は、さらに、または代替として、ウェルカムインターフェース440を表示してもよい。例えば、ウェルカムインターフェース440は、モバイルデバイス202がロック解除された後、モバイルデバイス202上に最初に表示されるインターフェースであることが可能である。
【0057】
登録インターフェース210、音響データデータベース230、話者検証イニシエータ304、部分語アイデンティファイア310、検証句オブテイナ320、検証インターフェース340、部分語コンパレータ420、話者クラシファイア430、およびウェルカムインターフェース440の機能が、組み合わされること、さらに分離されること、分散されること、または入れ替えられることが可能であるシステム200、300、および400の様々な構成が使用されることが可能である。システム200、300、および400は、単一のデバイス、例えば、モバイルデバイスにおいて実装されても、複数のデバイス、例えば、クライアントデバイスとサーバデバイスにわたって分散されてもよい。
【0058】
図5は、話者302の身元を検証するための例示的なプロセス500の流れ図である。以下に、処理500を、
図3および
図4を参照して説明されているシステム300および400の構成要素によって実行されるものとして説明する。しかし、プロセス500は、他のシステムまたは他のシステム構成によって実行されてもよい。
【0059】
プロセス500は、話者302の身元を検証するための検証句を求める要求を受信するステップ(510)を含むことが可能である。例えば、システム200が、モバイルデバイス202をロック解除するよう話者302から音声コマンド「OK COMPUTER, UNLOCK」を受信することが可能であり、話者検証イニシエータ304が、検証句を求める要求を部分語アイデンティファイア310に供給することが可能であり、部分語アイデンティファイア310が、検証句を求める要求を受信することが可能である。
【0060】
プロセス500は、検証句に含められるべき部分語を識別するステップ(520)を含むことが可能である。例えば、話者302の身元を検証するための検証句を求める要求を受信することに応答して、部分語アイデンティファイア310が、部分語、「I」、「WANT」、「TO」、「BE」、「AN」、「NAUT」、「WHEN」、「GROW」、および「UP」を発話する特定のユーザ220を表す訓練音響データが、音響データデータベース230の中に記憶されていると決定すること、および部分語「ASTRO」が特に音弁別性が高く、部分語「ASTRO」を発話する特定のユーザ220を表す訓練音響データが、音響データデータベース230の中に記憶されていないと決定することに基づいて、部分語、「I」、「WANT」、「TO」、「BE」、「AN」、「ASTRO」、「NAUT」、「WHEN」、「GROW」、および「UP」が検証句に含められるべきことを識別することが可能である。
【0061】
プロセス500は、識別された部分語のうちの少なくともいくつかを含む候補句を検証句として獲得するステップ(530)を含むことが可能である。例えば、検証句に含められるべき部分語を識別することに応答して、検証句オブテイナ320が、候補句データベース330から複数の候補句「I WANT TO BE AT GREAT FALLS PARK TODAY」および「I WANT TO BE AN ASTRONAUT WHEN I GROW UP」を獲得し、特定の候補句、「I WANT TO BE AN ASTRONAUT WHEN I GROW UP」が、(i)少なくとも10の部分語を含み、(ii)部分語の少なくとも90%が、記憶された訓練音響データを有し、(iii)特に音弁別性が高く、記憶された訓練音響データが存在しない識別された部分語「ASTRO」を含むと決定し、その決定に基づいて、その特定の候補句を検証句として選択することが可能である。
【0062】
プロセス500は、話者302の身元を検証するための検証句を求める要求に対する応答として、その検証句を提供するステップ(540)を含むことが可能である。例えば、検証インターフェース340が、「PLEASE SAY 'I WANT TO BE AN ASTRONAUT WHEN I GROW UP'」を表示することが可能である。
【0063】
プロセス500は、検証句の部分語を発話する話者302を表す音響データを獲得するステップ(550)を含むことが可能である。例えば、部分語コンパレータ420が、候補句「I WANT TO BE AN ASTRONAUT WHEN I GROW UP」の中の各部分語を発話する話者302を表す音響データを獲得することが可能である。
【0064】
プロセス500は、獲得された音響データが、記憶された訓練音響データと合致すると決定するステップ(560)を含むことが可能である。例えば、部分語コンパレータ420が、部分語「I」、「WANT」、「TO」、「BE」、「AN」、「NAUT」、「WHEN」、「GROW」、および「UP」のそれぞれに関する合致スコアを平均することに基づいて90%という最終スコアを生成することが可能であり、合致スコアは、獲得された音響データと記憶された訓練音響データの間の部分語のそれぞれに関する距離を計算することに基づいて決定される。
【0065】
プロセス500は、話者302を特定のユーザ220として分類するステップ(570)を含むことが可能である。例えば、話者クラシファイア430が、部分語コンパレータ420によって生成された90%という最終スコアが少なくとも90%であると決定することが可能である。話者302を特定のユーザ220と分類することに応答して、話者クラシファイア430は、獲得された音響データを音響データデータベース230の中に訓練音響データとして記憶し、ウェルカムインターフェース440の表示をトリガすることが可能である。
【0066】
いくつかの実装形態において、プロセス500の原理が、話者識別のために使用されることも可能である。例えば、システム400が、獲得された音響データを、複数のユーザに関する記憶された訓練音響データと比較して、その複数のユーザのそれぞれに関する最終スコアを生成し、特定のユーザに関する最終スコアが、少なくとも90%である唯一の最終スコアであると決定し、その話者をその特定のユーザとして識別することが可能である。
【0067】
本明細書において説明される主題の実施形態、機能動作、およびプロセスは、本明細書において開示される構造、および構造的均等物を含むデジタル電子回路において、有形で具現化されたコンピュータソフトウェアもしくはファームウェアにおいて、コンピュータハードウェアにおいて、または以上のうちの1つまたは複数の組合せにおいて実施され得る。本明細書において説明される主題の実施形態は、1つまたは複数のコンピュータプログラムとして、すなわち、データ処理装置によって実行されるように、またはデータ処理装置の動作を制御するように有形の不揮発性プログラムキャリア上に符号化されたコンピュータプログラム命令の1つまたは複数のモジュールとして実施され得る。代替として、またはさらに、プログラム命令は、データ処理装置によって実行されるように適切な受信機装置に伝送するために情報を符号化するように生成された、人工的に生成された伝搬される信号、例えば、機械生成された電気信号、光信号、または電磁信号の上に符号化され得る。コンピュータ記憶媒体は、機械可読ストレージデバイス、機械可読ストレージ基板、ランダムアクセスメモリデバイスもしくはシリアルアクセスメモリデバイス、または以上のうちの1つまたは複数の組合せであることが可能である。
【0068】
「データ処理装置」という用語は、例として、プログラマブルプロセッサ、コンピュータ、または複数のプロセッサもしくは複数のコンピュータを含む、データを処理するためのすべての種類の装置、デバイス、および機械を包含する。装置は、専用の論理回路、例えば、FPGA(フィールドプログラマブルゲートアレイ)またはASIC(特定用途向け集積回路)を含むことが可能である。また、装置は、ハードウェアに加えて、当該のコンピュータプログラムのための実行環境を作り出すコード、例えば、プロセッサファームウェア、プロトコルスタック、データベース管理システム、オペレーティングシステム、または以上のうちの1つまたは複数の組合せを構成するコードを含むことも可能である。
【0069】
コンピュータプログラム(プログラム、ソフトウェア、ソフトウェアアプリケーション、モジュール、ソフトウェアモジュール、スクリプト、またはコードと呼ばれることも可能である)は、コンパイルされる言語もしくは解釈される言語、または宣言型言語もしくは手続き型言語を含め、任意の形態のプログラミング言語で書かれることが可能であり、スタンドアロンのプログラムとして、あるいはモジュール、コンポーネント、サブルーチンとして、またはコンピューティング環境において使用するのに適した他のユニットとして展開されることを含め、任意の形態で展開されることが可能である。コンピュータプログラムは、ファイルシステムにおけるファイルに対応することが可能であるが、そうである必要はない。プログラムは、他のプログラムもしくはデータ(例えば、マークアップ言語文書の中に記憶された1つまたは複数のスクリプト)を保持するファイルの一部分の中に、当該のプログラムに専用の単一のファイルの中に、または複数の協調させられたファイル(例えば、1つまたは複数のモジュール、サブプログラム、もしくはコードの部分を記憶するファイル)の中に記憶されることが可能である。コンピュータプログラムは、1つの場所に配置された1つのコンピュータ上で、または複数の場所にわたって分散され、通信ネットワークによって互いに接続された複数のコンピュータ上で実行されるように展開されることが可能である。
【0070】
本明細書において説明されるプロセスおよび論理フローは、入力されたデータを操作すること、および出力を生成することによって機能を実行するように1つまたは複数のコンピュータプログラムを実行する1つまたは複数のプログラマブルコンピュータによって実行され得る。これらのプロセスおよび論理フローは、専用の論理回路、例えば、FPGA(フィールドプログラマブルゲートアレイ)またはASIC(特定用途向け集積回路)によって実行されることも可能であり、装置がそのようなものとして実装されることも可能である。
【0071】
コンピュータプログラムの実行に適したコンピュータは、例として、汎用マイクロプロセッサもしくは専用マイクロプロセッサに基づくこと、またはその両方に基づくこと、あるいは他の任意の種類の中央処理装置に基づくことが可能である。一般に、中央処理装置は、読取り専用メモリもしくはランダムアクセスメモリから、またはその両方から命令およびデータを受け取る。コンピュータの基本的な要素は、命令を実行するため、または執行するための中央処理装置、ならびに命令およびデータを記憶するための1つまたは複数のメモリデバイスである。一般に、コンピュータは、データを記憶するための1つまたは複数の大容量ストレージデバイス、例えば、磁気ディスク、光磁気ディスク、または光ディスクも含み、あるいはそのようなデバイスからデータを受信するように、またはそのようなデバイスにデータを転送するように、あるいはその両方を行うように動作上、結合される。しかし、コンピュータは、そのようなデバイスを有しなくてもよい。さらに、コンピュータは、別のデバイス、例えば、いくつかだけを挙げると、モバイル電話、携帯情報端末(PDA)、モバイルオーディオプレーヤもしくはモバイルビデオプレーヤ、ゲームコンソール、全地球測位システム(GPS)受信機、またはポータブルストレージデバイス(例えば、ユニバーサルシリアルバス(USB)フラッシュドライブ)に組み込まれることが可能である。
【0072】
コンピュータプログラム命令およびデータを記憶するのに適したコンピュータ可読媒体は、例として、半導体メモリデバイス、例えば、EPROM、EEPROM、およびフラッシュメモリデバイス、磁気ディスク、例えば、内部ハードディスクもしくはリムーバブルディスク、光磁気ディスク、ならびにCD-ROMディスクおよびDVD-ROMディスクを含め、すべての形態の不揮発性メモリ、媒体、およびメモリデバイスを含む。プロセスおよびメモリは、専用の論理回路によって補足されること、またはそのような回路に組み込まれることが可能である。
【0073】
ユーザとの対話を可能にするのに、本明細書において説明される主題の実施形態は、ユーザに情報を表示するためのディスプレイデバイス、例えば、CRT(陰極線管)モニタもしくはLCD(液晶ディスプレイ)モニタと、ユーザがコンピュータに入力を与えることができるようにするキーボードおよびポインティングデバイス、例えば、マウスもしくはトラックボールとを有するコンピュータ上で実施され得る。他の種類のデバイスが、ユーザとの対話を可能にするのに使用されることも可能であり、例えば、ユーザにもたらされるフィードバックは、任意の形態の知覚フィードバック、例えば、視覚フィードバック、聴覚フィードバック、または触覚フィードバックであることが可能であり、ユーザからの入力は、音響入力、音声入力、または触覚入力を含め、任意の形態で受け取られることが可能である。さらに、コンピュータは、ユーザによって使用されるデバイスに文書を送信すること、およびそのようなデバイスから文書を受信することによって、例えば、ユーザのクライアントデバイス上のウェブブラウザに、そのウェブブラウザから受信された要求に応答して、ウェブページを送信することによって、ユーザと対話することが可能である。
【0074】
本明細書で説明される主題の実施形態は、バックエンド構成要素を、例えば、データサーバとして含む、またはミドルウェア構成要素、例えば、アプリケーションサーバを含む、またはフロントエンド構成要素、例えば、ユーザが、本明細書において説明される主題の実装形態と対話することができるようにするグラフィカルユーザインターフェースもしくはウェブブラウザを有するクライアントコンピュータ、あるいは1つまたは複数のそのようなバックエンド構成要素、ミドルウェア構成要素、またはフロントエンド構成要素の任意の組合せを含むコンピューティングシステムにおいて実施されることが可能である。システムの構成要素は、任意の形態または媒体のデジタルデータ通信、例えば、通信ネットワークによって互いに接続されることが可能である。通信ネットワークの例は、ローカルエリアネットワーク(「LAN」)およびワイドエリアネットワーク(「WAN」)、例えば、インターネットを含む。
【0075】
コンピューティングシステムは、クライアントと、サーバとを含むことが可能である。クライアントとサーバは、一般に、互いに遠隔であり、通常、通信ネットワークを介して対話する。クライアントとサーバの関係は、それぞれのコンピュータ上で実行されており、互いにクライアント-サーバ関係を有するコンピュータプログラムによって生じる。
【0076】
本明細書は、多くの特定の実装詳細を包含するが、これらの詳細は、主張され得るものの範囲に対する限定としてではなく、特定の実施形態に特有であり得る特徴の説明として解釈されるべきである。本明細書において別々の実施形態の脈絡で説明されるいくつかの特徴が、単一の実施形態において組合せで実施されることも可能である。逆に、単一の実施形態の脈絡で説明される様々な特徴が、複数の実施形態において別々に、または任意の適切な部分的組合せで実施されることも可能である。さらに、特徴は、いくつかの組合せで作用するものとして前段で説明されて、そのようなものとして最初に主張されることさえ可能であるものの、主張される組合せからの1つまたは複数の特徴が、一部の事例において、その組合せから削除されることが可能であり、主張される組合せは、部分的組合せ、または部分的組合せの変形形態を対象としてもよい。
【0077】
同様に、動作は、図面において特定の順序で示されるが、このことは、望ましい結果を実現するのに、そのような動作が、示される特定の順序で、もしくは順番に実行されること、または例示されるすべての動作が実行されることを要求するものと理解されるべきではない。いくつかの状況において、マルチタスキングおよび並列処理が有利であり得る。さらに、前段で説明される実施形態における様々なシステム構成要素の分離は、すべての実施形態においてそのような分離を要求するものと理解されるべきではなく、説明されるプログラム構成要素およびシステムは、一般に、単一のソフトウェア製品に一緒に統合されること、または複数のソフトウェア製品にまとめられることが可能である。
【0078】
主題の特定の実施形態について説明されてきた。他の実施形態も、以下の特許請求の範囲に含まれる。例えば、特許請求の範囲に記載されるアクションは、異なる順序で実行されて、それでも、望ましい結果を実現することが可能である。例として、添付の図において説明されるプロセスは、望ましい結果を実現するのに、示される特定の順序も、順番も、必ずしも要求しない。いくつかの実装形態において、マルチタスキングおよび並列処理が有利であり得る。説明されるプロセスから、他のステップが提供されることも可能であり、あるいはステップが削除されることも可能である。したがって、他の実装形態も、以下の特許請求の範囲に含まれる。