(58)【調査した分野】(Int.Cl.,DB名)
(i)前記第1のベクトル、(ii)前記第2のベクトル、または(iii)前記第1のベクトルおよび前記第2のベクトルの両方に基づいてそれぞれ出力を生成する少なくとも2つの他のニューラルネットワークの前記出力を連結することによって入力ベクトルを生成することと、
前記ニューラルネットワークに、前記生成された入力ベクトルを提供することと、
前記入力ベクトルの受信に応答して生成される前記ニューラルネットワークの出力に基づいて、前記ユーザの前記声の特徴を示す話者表現を生成することと
をさらに含む、請求項2に記載のシステム。
前記入力データのセットの受信に応答して生成される前記ニューラルネットワークの前記出力は、前記ニューラルネットワークの隠れ層によって生成されるアクティベーションのセットを含む、請求項1から5のいずれか一項に記載のシステム。
(i)前記第1のベクトル、(ii)前記第2のベクトル、または(iii)前記第1のベクトルおよび前記第2のベクトルの両方に基づいてそれぞれ出力を生成する少なくとも2つの他のニューラルネットワークの前記出力を連結することによって入力ベクトルを生成するステップと、
前記ニューラルネットワークに、前記生成された入力ベクトルを提供するステップと、
前記入力ベクトルの受信に応答して生成される前記ニューラルネットワークの出力に基づいて、前記ユーザの前記声の特徴を示す話者表現を生成するステップと
をさらに含む、請求項8に記載の方法。
前記入力データのセットの受信に応答して生成される前記ニューラルネットワークの前記出力は、前記ニューラルネットワークの隠れ層によって生成されるアクティベーションのセットを含む、請求項7から11のいずれか一項に記載の方法。
前記発話が前記ユーザの発話であると判定したことに基づいて前記ユーザデバイスへの前記ユーザアクセスを提供するステップは、前記ユーザデバイスをロック解除するステップを含む、請求項7から13のいずれか一項に記載の方法。
【発明の概要】
【発明が解決しようとする課題】
【0003】
一実装形態において、話者照合モデル(speaker verification model)は、話者の言語、方言、またはアクセントに関係なく話者照合を円滑にすることによって従来のシステムを改善する。話者照合モデルは、ニューラルネットワークに基づいてもよい。ニューラルネットワークは、発話および言語識別子を含む入力を使用してトレーニングされてもよい。トレーニングされた後、ニューラルネットワークの隠れ層によって出力されるアクティベーションは、声紋として使用することができ、ユーザのデバイス上の参照表現と比較することができる。話者は、声紋および参照表現が所定の類似度閾値の条件を満たす場合に認証されることが可能である。
【課題を解決するための手段】
【0004】
一実装形態によれば、本明細書の主題は、言語独立話者照合を円滑にするための方法において使用されてもよい。本方法は、ユーザデバイスによって、ユーザの発話を表現するオーディオデータを受信するアクションと、ユーザデバイスに関連付けられた言語識別子を決定するアクションと、ユーザデバイス上に記憶されたニューラルネットワークにオーディオデータおよび決定された言語識別子から導出された入力データのセットを提供し、ニューラルネットワークは異なる言語および異なる方言で音声を表現する音声データを使用してトレーニングされたパラメータを有する、アクションと、入力データのそのセットの受信に応答して生成されるニューラルネットワークの出力に基づいてユーザの声の特徴を示す話者表現を生成するアクションと、話者表現および第2の表現に基づいて、発話がユーザの発話であると判定するアクションと、発話がユーザの発話であると判定したことに基づいてユーザデバイスへのユーザアクセスを提供するアクションとを含んでもよい。
【0005】
他のバージョンは、対応するシステムと、装置と、方法のアクションを実行するための、コンピュータ記憶デバイス上に符号化されたコンピュータプログラムとを含む。
【0006】
これらおよび他のバージョンは、オプションで次の特徴のうちの1つまたは複数を含んでもよい。たとえば、いくつかの実装形態において、オーディオデータおよび決定された言語識別子から導出された入力データのそのセットは、オーディオデータから導出される第1のベクトルと、決定された言語識別子から導出される第2のベクトルとを含む。
【0007】
いくつかの実装形態において、本方法は、第1のベクトルと第2のベクトルとを連結して単一の連結ベクトルにすることによって入力ベクトルを生成することと、ニューラルネットワークに生成された入力ベクトルを提供することと、入力ベクトルの受信に応答して生成されたニューラルネットワークの出力に基づいて、ユーザの声の特徴を示す話者表現を生成することとを含んでもよい。
【0008】
いくつかの実装形態において、本方法は、(i)第1のベクトル、(ii)第2のベクトル、または(iii)第1のベクトルおよび第2のベクトルの両方に基づいてそれぞれ出力を生成する少なくとも2つの他のニューラルネットワークの出力を連結することによって入力ベクトルを生成することと、ニューラルネットワークに生成された入力ベクトルを提供することと、入力ベクトルの受信に応答して生成されたニューラルネットワークの出力に基づいて、ユーザの声の特徴を示す話者表現を生成することとを含んでもよい。
【0009】
いくつかの実装形態において、本方法は、第1のベクトルと第2のベクトルの加重和とに基づいて入力ベクトルを生成することと、ニューラルネットワークに生成された入力ベクトルを提供することと、入力ベクトルの受信に応答して生成されたニューラルネットワークの出力に基づいて、ユーザの声の特徴を示す話者表現を生成することとを含んでもよい。
【0010】
いくつかの実装形態において、入力データのそのセットの受信に応答して生成されるニューラルネットワークの出力は、ニューラルネットワークの隠れ層によって生成されるアクティベーションのセットを含む。
【0011】
いくつかの実装形態において、話者表現および第2の表現に基づいて、発話がユーザの発話であると判定することは、第1の表現と第2の表現との間の距離を決定することを含んでもよい。
【0012】
いくつかの実装形態において、本方法は、発話がユーザの発話であると判定したことに基づいてユーザデバイスへのユーザアクセスを提供することを含んでもよく、これはユーザデバイスをロック解除することを含む。
【0013】
本明細書によって説明された主題の他の実装形態は、受信されたオーディオデータが複数の言語特有のホットワードのうちの1つのホットワードの発話を含む可能性が高いかどうかを判定するように構成される言語独立話者照合モデルを実装するモバイルデバイスによって、(i)ユーザの特定の発話に対応する特定のオーディオデータ、および(ii)ユーザによって話される特定の言語を示すデータを受信することと、(i)ユーザの特定の発話に対応する特定のオーディオデータ、および(ii)ユーザによって話される特定の言語を示すデータの受信に応答して、出力のために、言語独立話者照合モデルが、特定のオーディオデータがユーザによって話される特定の言語について指定されているホットワードの発話を含む可能性が高いと判定したことを示す指示を提供することとを含む言語独立話者照合のための方法を含む。
【0014】
これらおよび他のバージョンは、オプションで次の特徴のうちの1つまたは複数を含んでもよい。たとえば、一実装形態において、出力のために指示を提供することは、モバイルデバイスのリソースへのアクセスを提供することを含んでもよい。代替的にまたはそれに加えて、出力のために指示を提供することは、モバイルデバイスをロック解除することを含んでもよい。代替的にまたはそれに加えて、出力のために指示を提供することは、低電力状態からモバイルデバイスをスリープ解除することを含んでもよい。代替的にまたはそれに加えて、出力のために指示を提供することは、言語独立話者照合モデルが、特定のオーディオデータがモバイルデバイスに関連付けられた特定のユーザの発話を含むと判定したことを示す指示を提供することを含む。
【0015】
いくつかの実装形態において、言語独立話者照合モデルは、ユーザの発話を使用することなくトレーニングされたニューラルネットワークを含んでもよい。
【0016】
本明細書の主題は、従来の方法に勝る多数の利点をもたらす。たとえば、本出願の主題は、容易に分散されることが可能である話者照合モデルを提供する。話者照合モデルは言語、方言、アクセントから独立しているので、同じ話者照合モデルは、ユーザデバイスに広く分散されることが可能である。これは、デバイスユーザの言語に基づいて異なる話者照合モデルを異なるデバイスに提供するのに比べて甚だしく効率的である。代替的に、これは複数の話者照合モデルをユーザが1つ選択することができる同じデバイスに配置する必要性を回避する。
【0017】
本出願によって提供される話者照合モデルは、話者言語、方言、またはアクセントから独立した話者照合を実行するために同じモデルを使用したときに精度が改善されることを実証している。たとえば、言語、方言、またはアクセントにバラツキがあるため、結果として特定のユーザが他のユーザと異なる仕方で所定のホットワードを発音する可能性がある。この発音の違いは、従来のシステムでは精度に関する問題を引き起こす可能性がある。本開示の話者照合モデルは、従来のシステムのこの弱点を改善する。
【0018】
本出願によって提供される話者照合モデルでは、更新も容易に行われる。たとえば、新規にトレーニングされたモデルは、ユーザデバイスのオペレーティングシステムにルーチンソフトウェア更新の一部として容易に配置されてもよい。そのような更新された話者照合モデルは、新しい言語、方言、および/またはアクセントに、これらが現れるとともに対応できるように容易にトレーニングすることができる。代替的に、知られている言語、方言、および/またはアクセントに基づいて話者照合モデルの既存のバージョンに対する更新が作成されてもよい。そのような更新された話者照合モデルは、特定の場所照合モデルを特定の地理的領域内の特定のデバイスに提供する必要なく普遍的に配置されることが可能である。
【0019】
本明細書で説明された主題の1つまたは複数の実施形態の詳細は、付属の図面および以下の説明で述べられる。主題の他の特徴、態様、および利点は、説明、図面、および特許請求の範囲から明らかになるであろう。
【発明を実施するための形態】
【0021】
いくつかの実装形態において、システムは、ニューラルネットワークに基づくモデルである可能性のある言語独立話者照合モデルをユーザデバイスに提供する。言語独立話者照合モデルは、ユーザデバイスにインストールする前に、(i)複数の異なるユーザからの発話、および(ii)それぞれの発話に対応する言語または場所を示すベクトルを含むトレーニングデータに基づいてトレーニングされる。ユーザデバイスにインストールされた後、言語独立話者照合モデルは、言語独立話者照合モデルのその後のトレーニングなしでユーザデバイスのユーザの同一性を検証するために使用されてもよい。ユーザデバイスは、ユーザを登録するためにユーザの発話を取得し、使用してもよいが、モデルそれ自体は、ユーザデバイスのユーザの発話に基づいてトレーニングされる必要はない。
【0022】
本明細書で使用されているように、「言語独立」話者照合モデルは、異なる言語または方言を話す話者の同一性を正確に検証するために使用できる単一のモデルを指す。すなわち、このモデルは、特定の単一の言語での発語に依存または制限されない。その結果、異なる言語、方言、またはアクセントに対して異なるモデルを使用するのではなく、単一の言語独立モデルが使用できる。いくつかの実装形態において、特定の単語またはフレーズ、たとえば所定のホットワードまたは注意語の発話に基づいて話者を識別するようにトレーニングされたテキスト依存モデルがある。言語独立モデルは、単一のホットワードに基づいて、または異なる言語もしくは場所に対する異なるホットワードに基づいて異なる言語の話者を区別するようにトレーニングされてもよい。同じホットワードが異なる言語または場所で使用されるときでも、異なる言語、方言、アクセント、または場所を有するユーザは、ホットワードを異なる仕方で発音する場合がある。これらのバラツキは、従来のモデルの精度を低下させてしまい、多くの場合にこのモデルは、地域的な言語またはアクセントによるバラツキを話者独特の特徴へと不適切に帰属させていた。たとえば、照合の偽陽性率は、従来のモデルにおいて地域的アクセントの一般的な特徴を特定の話者の音声の主要な独特の要素であると解釈するときに増大するが、実際にはこのとき、それらの特徴は非常に類似するアクセントを有する他の多くのユーザに実際に共通している。本出願では、ユーザの言語または場所に関する情報を取得し、その情報をモデルに提供し、モデルがユーザを同じ言語、方言、アクセント、または場所を有する他のユーザからより適切に区別する話者表現、たとえば声紋を作成することを可能にする。
【0023】
図1は、言語独立話者照合モデルを使用して同一性照合を実行するためのシステム100の一例の文脈図である。システム100は、ユーザデバイス110と、ユーザデバイス120と、ネットワーク130と、サーバ140と、ニューラルネットワーク150と、話者照合モデル180とを備える。
【0024】
システム100は、ニューラルネットワーク150を記憶するサーバ140を備える。ニューラルネットワーク150は、異なる言語、異なる方言、またはその両方で音声サンプルを表現する音声データを使用してトレーニングされている。サーバ140は、ニューラルネットワーク150に基づいて話者照合モデル180を生成する。次いで、サーバ150は、話者照合モデル180のコピーをネットワーク130を通じて第1のユーザデバイス110および第2のユーザデバイス120に伝送する。次いで、話者照合モデル180のコピーは、各それぞれのユーザデバイス110、120上に記憶される。
【0025】
ユーザ、たとえば"Joe"は、音声認証を使用してユーザデバイス110にアクセスしようと試みてもよい。たとえば、Joeは、英語で"Ok Google"などの所定のホットワード105a、またはフレーズを発してもよい。所定の発話に対応するオーディオ105bは、ユーザデバイス110のマイクロフォン111によって検出されてもよい。ユーザデバイス110は、マイクロフォン111によって検出されたオーディオ105bから導出される記憶された話者照合モデル180への第1の入力を生成してもよい。それに加えて、ユーザデバイス110は、Joeが英語で、ホットワード105a、またはフレーズを発したという判定に基づいて記憶された話者照合モデル180への第2の入力を導出してもよい。ユーザデバイス110は、デバイスの言語設定を取得することによってJoeが英語でホットワード105a、またはフレーズを発したと判定してもよい。次いで、Joeのユーザデバイス110に記憶された話者照合モデル180は、オーディオ105bから導出された第1の入力および英語のJoeの使用から導出された第2の入力を処理することに基づいてJoeに対する声紋を生成してもよい。生成された声紋の分析結果に基づいて、ユーザデバイス110は、Joeがデバイス110にアクセスすることを許可されていると判定してもよい。Joeがユーザデバイス110にアクセスすることを許可されているという判定に応答して、ユーザデバイス110は、ユーザデバイス110をロック解除する処理を開始することができる。いくつかの場合において、ユーザデバイス110は、たとえば"Speaker Identity Verified"113というメッセージをグラフィカルユーザインターフェース112に表示してもよい。代替的にまたはそれに加えて、ユーザデバイス110がロック解除されたときに、ユーザデバイス110のスピーカは、"Welcome Joe"というオーディオによる挨拶115を出力してもよい。
【0026】
図1の例において、別のユーザ、たとえば"Wang"は、同じ話者照合モデル180のコピーもまた記憶するユーザデバイス120を有する。中国語を流暢にしゃべるWangは、音声認証を使用してユーザデバイス120にアクセスしようと試みてもよい。たとえば、Wangは、中国語で"Ni hao Android"(英語の"Hello Android"にほぼ相当する翻訳)などの所定のホットワード115a、またはフレーズを発してもよい。所定の発話に対応するオーディオ115bは、ユーザデバイス120のマイクロフォン121によって検出されてもよい。それに加えて、ユーザデバイス120は、Wangが中国語で、ホットワード115aまたはフレーズを発したという判定に基づいて記憶された話者照合モデル180への第2の入力を導出してもよい。ユーザデバイス120は、デバイスの言語設定を取得することによってJoeが中国語でホットワード115aまたはフレーズを発したと判定してもよい。次いで、Wangのユーザデバイス120に記憶された話者照合モデル180は、オーディオ115bから導出された第1の入力および中国語のWangの使用から導出された第2の入力を処理することに基づいて、Wangに対する声紋を生成してもよい。生成された声紋の分析結果に基づいて、ユーザデバイス120は、Wangがデバイス120にアクセスすることを許可されていると判定してもよい。Wangがユーザデバイス120にアクセスすることを許可されているという判定に応答して、ユーザデバイス120は、ユーザデバイス120をロック解除する処理を開始することができる。いくつかの場合において、ユーザデバイス120は、たとえば"Shuohuazhe de shenfen yanzheng"123(英語の"Speaker Identity Verified"にほぼ相当する翻訳)というメッセージをグラフィカルユーザインターフェース122に表示してもよい。代替的にまたはそれに加えて、ユーザデバイス120がロック解除されたときに、ユーザデバイス120のスピーカは、"Huanying Wang"(英語の"Welcome Wang"にほぼ相当する翻訳)というオーディオによる挨拶125を出力してもよい。
【0027】
図1の例に示されるように、単一のテキスト依存話者認識モデル180は、異なる言語または場所に対して異なる所定のホットワードを使用するように構成することができる。それに加えて、または代替的に、モデル180は、複数の言語または場所に対して同じホットワードを使用することができるが、モデル180は、たとえば異なる言語または地方アクセントによるホットワードの発音の様々なバラツキに関する話者表現を生成することができる。以下で説明されたように、モデル180は、オーディオ情報とともにモデル180のニューラルネットワークに言語または場所に対する識別子を入力することによって照合プロセスを微調整することができる。
【0028】
図2は、言語独立話者照合モデル280をトレーニングするためのシステム200の一例を示す図である。システム200は、ユーザデバイス210と、ネットワーク230と、サーバ240と、ニューラルネットワーク250とを備える。一般に、言語独立話者照合モデル280のトレーニングは、モデル280がユーザデバイス210に分散され、話者認識を実行するために使用される前にサーバ240上で行われる処理を介して行われる。そのようなトレーニングは、ユーザデバイス210がネットワーク230に接続されることを必要としない。
【0029】
トレーニングが開始できる前に、サーバ240は、トレーニング発話210aおよび210bのセットを取得する。トレーニング発話は、各々複数の異なるトレーニング話者によって発せられ、記録され、サーバ240に利用可能にされているトレーニング発話リポジトリに記憶された1つまたは複数の音声サンプルを含んでもよい。各トレーニング発話210a、210bは、ユーザがトレーニング発話を発するときに結果として発生するオーディオ信号の少なくとも一部を含んでもよい。
【0030】
音声認証を円滑にするために、ニューラルネットワーク250は、音声認証時にユーザデバイス210のユーザによって発せられることが可能な所定のホットワードに対応するトレーニング発話を使用してトレーニングされてもよい。トレーニング発話は、各々異なる言語、異なる方言、異なるアクセント、または同様のもので同じホットワードを発する複数の異なるユーザからの発話を含んでもよい。一実装形態において、トレーニングデータの複数のセットは、特定の言語、方言、アクセント、または同様のものでの特定のキーワードの発話に対応する各トレーニングデータセットによりニューラルネットワーク250をトレーニングするために使用されてもよい。たとえば、単一のニューラルネットワーク250は、米国英語で"Ok Google"と発する複数の異なるユーザからのトレーニング発話のセットと、英国英語で"Ok Google"と発する複数の異なるユーザによるトレーニングデータの別のセットとによりトレーニングされてもよい。一実装形態において、単一のニューラルネットワーク250は、同様に、ニューラルネットワーク250がすべての知られている言語、方言、アクセント、または同様のものについてトレーニングされるまで、異なる言語、異なる方言、異なるアクセント、または同様のもので発せられるホットワード"Ok Google"を含む他のトレーニングデータセットによりトレーニングされてもよい。代替的に、単一のニューラルネットワーク250は、同様に、ニューラルネットワーク250に基づく話者照合モデルが配置される領域においてニューラルネットワーク250がすべての言語、方言、アクセント、または同様のものについてトレーニングされてしまうまで、異なる言語、異なる方言、異なるアクセント、または同様のもので発せられるホットワード"Ok Google"を含む他のトレーニングデータセットによりトレーニングされてもよい。本明細書で使用されるように、ホットワードは、単一の単語、または複数の単語を含むフレーズとすることができる。いくつかの実装形態において、各言語に対するホットワードは、モデルのトレーニング時に固定されており、したがって特定の場所でモデルを使用する各ユーザは同じホットワードを使用する。
【0031】
発せられたトレーニングフレーズに対応するオーディオ信号は、キャプチャされ記録されてもよい。本明細書で提供される所定のホットワードに対応するトレーニング発話のここで提供される例は、"Ok Google"および"Ni hao Android"を含むが、本開示はそれに限定される必要はない。その代わりに、任意の言語または任意の方言による所定のホットワードに対応するトレーニング発話は、ニューラルネットワーク250をトレーニングするために使用することができる。それに加えて、ニューラルネットワーク250は、すべての知られている言語、方言、アクセント、または同様のものを受け入れるように容易にトレーニングすることができることが企図される。
【0032】
いくつかの場合において、トレーニング話者は、同じトレーニング単語またはフレーズに対する複数の異なるトレーニング発話を生成するために同じトレーニングフレーズを複数回発し、記録するように要求されてもよい。トレーニング発話は、このようにして、複数の異なる言語、複数の異なる方言、または同様のものでトレーニング単語またはフレーズを発する複数の異なる話者を使用して取得されてもよい。トレーニング発話210a、210bが取得された後、システム200は、関係するトレーニング発話の音響特徴に対応する各トレーニング発話に対するそれぞれの特徴ベクトルを導出してもよい(212a、212b)。各トレーニング発話に対するそれぞれの特徴ベクトルは、たとえばトレーニング発話から導出され、発話の音響特徴に対応するN-by-1ベクトルを含んでもよい。N-by-1ベクトルは、N個の値の単一の列を使用して概念的にモデル化されてもよい。一実装形態において、N-by-1ベクトル内のN個の値の各々は、"0"または"1"のいずれかの値を含んでもよい。
【0033】
システム200はまた、複数の異なる言語ID215a、215bも取得してもよい。言語IDは、特定の言語を識別するデータを含んでもよい。一実装形態において、言語IDは、one-hot言語ベクトルを含んでもよい。そのようなone-hot言語ベクトルは、言語ベクトルの1つの特徴のみが活性化されるN-by-1ベクトルを含んでもよい。言語ベクトルの特定の特徴は、たとえば特徴を"1"の値に設定することによって活性化されてもよい。同様に、任意の所与のone-hot言語ベクトルについて、one-hot言語ベクトルの他のすべての特徴は不活性化される。言語ベクトルの特定の特徴は、たとえば特徴を"0"に設定することによって不活性化されてもよい。
【0034】
図3は、複数のone-hot言語ベクトル305、310、315、320の概念的表現の一例である。各one-hot言語ベクトル305、310、315、320において、ただ1つの特徴が活性化されており、他の特徴はすべて不活性化されている。システム200は、各one-hot言語ベクトル305、310、315、320を特定の言語に関連付けてもよい。たとえば、システム200は、言語識別ベクトル305に関する場合など活性化された言語ベクトルの第1の特徴を有するone-hot言語ベクトルは、"English"言語に関連付けられてもよいと判定してもよい。同様に、システム200は、言語識別ベクトル310に関する場合など活性化されたベクトルの第2の特徴を有するone-hot言語ベクトル310は、"Chinese"言語に関連付けられてもよいと判定してもよい。類似の言語関連付けが、言語識別ベクトル315および320と他の言語との間で行われてもよい。
【0035】
話者照合モデル280のトレーニングは、トレーニングデータのセットをニューラルネットワーク250に提供することによって開始してもよい。一実装形態において、ニューラルネットワーク250は、ペアごとのトレーニング技術を使用してトレーニングされてもよい。たとえば、トレーニング発話ベクトル214aを含むトレーニングデータ213aの第1のセットがニューラルネットワーク250に入力され、第2の入力は言語ID215aを含む。言語ID215aは、たとえばトレーニング発話ベクトル214aが導出されたトレーニング発話210aを提供したトレーニング話者によって使用される言語または方言を識別するone-hot言語ベクトルを含んでもよい。ニューラルネットワーク250は、第1のトレーニングデータのセット213aを処理し、出力260aを生成する。その後、トレーニングデータ213bの第2のセットがニューラルネットワーク250に入力される。ニューラルネットワーク250は、第2のトレーニングデータのセット213bを処理し、出力260bを生成する。次いで、出力260a、260bは、コンパレータ270を使用して比較される。コンパレータ270は、トレーニングベクトル214a、214bが同じ話者によって発せられたトレーニング発話210a、210bから導出されたかどうかを判定するために出力260a、260bを分析する。一実装形態において、比較モジュール440は、出力260a、260bの間の距離を計算することによってトレーニングベクトル214a、214bが同じ話者によって発せられたトレーニング発話210a、210bから導出されたかどうかを判定してもよい。そのような距離は、たとえばコサイン類似度を使用して計算されてもよい。
【0036】
比較モジュールの出力272は、トレーニング発話210a、210bが同じ話者によって発せられたかどうかの指示を提供する。一実装形態において、たとえば出力272は'0'または'1'のいずれかからなる2進値であるものとしてもよい。そのような実装形態において、'0'は、それらの発話が同じ話者からのものでなかったことを示してもよい。他方では、'1'は、その発話が同じ話者からのものであったことを示してもよい。代替的に、出力272は、'0'または'1'などの2進値にマッピングすることができる値であってもよい。たとえば、出力272は、トレーニング発話210a、210bが同じ話者によって発せられたかどうかを示す確率を含んでもよい。次いで、ニューラルネットワーク250のパラメータは、比較モジュール270の出力272に基づいて調整されてもよい。いくつかの実装形態において、ニューラルネットワーク250のパラメータは、出力272に基づいて自動的に調整されてもよい。代替的に、いくつかの実装形態において、ニューラルネットワークの1つまたは複数のパラメータは、出力272に基づいて手動で調整されてもよい。トレーニングデータの複数のセットは、2つの出力260a、260bの比較結果が一貫して214a、214bなどのトレーニングベクトルの対が同じ話者によって発せられた発話210a、210bから導出されたかどうかを示すまでこの方式で処理されてもよい。
【0037】
ニューラルネットワーク250は、トレーニングデータのセットを入力するための入力層252と、トレーニングデータのセットを処理するための複数の隠れ層254a、254b、254cと、出力を提供するための出力層256とを備えてもよい。各隠れ層254a、254b、254cは、1つまたは複数の重みまたは他のパラメータを含んでもよい。各それぞれの隠れ層254a、254b、254cの重みまたは他のパラメータは、トレーニングされたニューラルネットワークがトレーニングデータの各セットに対応する所望のターゲットベクトルを生成するように調整されてもよい。各隠れ層254a、254b、254cの出力は、M-by-1アクティベーションベクトルを生成してもよい。254cなどの最後の隠れ層の出力は出力層256に提供されてよく、これはニューラルネットワーク出力を生成するために受信されたアクティベーションベクトルの追加の計算を実行する。ニューラルネットワーク250が実行の所望のレベルに達した後、ニューラルネットワーク250は、トレーニングされたニューラルネットワークとして指定されてもよい。たとえば、ニューラルネットワーク250は、ネットワーク250が異なる話者の発声を区別し、最高未満の誤差率で、同じ話者の発声の間のマッチを識別することができるまでトレーニングされてもよい。
【0038】
トレーニング発話ベクトル214aおよび言語ID215aを含む213aなどのトレーニングデータのセットは、様々な異なる方法でニューラルネットワーク250へのトレーニング入力として提供される前に前処理されてもよい。たとえば、one-hot言語ベクトルなどのトレーニング発話ベクトル214aおよび言語ID215aは連結されてもよい。そのような場合において、連結されたベクトルは、トレーニング時にニューラルネットワーク250への入力として提供されてもよい。代替的に、システム200は、トレーニング発話ベクトル214a、one-hot言語ベクトル、またはトレーニング発話ベクトル214aおよびone-hot言語ベクトルの両方の各それぞれのニューラルネットワークの処理に基づいてそれぞれ生成された出力を有する少なくとも2つの他のニューラルネットワークの出力を連結することによってニューラルネットワーク250への入力を生成してもよい。そのような場合において、2つ以上の他のニューラルネットワークの連結された出力は、ニューラルネットワーク250をトレーニングするために使用されてもよい。代替的に、システム200は、トレーニング発話ベクトル214aおよびone-hot言語ベクトルの加重和に基づいて入力ベクトルを生成してもよい。トレーニング発話ベクトル214aおよびone-hot言語ベクトルに基づいてトレーニングデータのセットを生成する他の方法が使用されることが可能である。
【0039】
ニューラルネットワーク250の一部258は、ニューラルネットワーク250がトレーニング済みとして指定された後に取得され、話者照合モデル280を生成するために使用されてもよい。ニューラルネットワーク250の取得された部分258は、ニューラルネットワーク250の入力層252とニューラルネットワーク254aの1つまたは複数の隠れ層とを含んでもよい。しかしながら、いくつかの実装形態において、ニューラルネットワーク250の取得された部分は出力層256を含まない。トレーニングされた後、ニューラルネットワーク250は、話者の声紋として使用できる取得された部分258の最後の隠れ層の出力としてアクティベーションベクトルを生成することができる。声紋は、ホットワードの発話をユーザデバイスに与える人の同一性を検証するためにユーザデバイスによって使用されてもよい。
【0040】
サーバ240は、話者照合モデル280のコピーをネットワーク230を通じてユーザデバイス210などの1つまたは複数のそれぞれのユーザデバイスに伝送する。次いで、話者照合モデル280のコピーは、各それぞれのユーザデバイス110上に記憶され、言語独立話者同一性照合を円滑にするために使用することができる。別の例として、話者照合モデル280は、たとえばユーザデバイス210のオペレーティングシステムにより、ユーザデバイス210上にプリインストールされてもよい。
【0041】
図4は、言語独立話者同一性照合を実行するシステム400の一例である。システム400は、ユーザデバイス210と、話者照合モデル280と、比較モジュール440と、照合モジュール450とを備える。
【0042】
図4に示される例において、ユーザ402は、音声照合を使用してユーザデバイス210にアクセスすることを試みる。ユーザデバイス210は、ネットワーク230を介してサーバ240によって提供される話者照合モデル280をすでに受信し、記憶している。音声照合を使用してユーザデバイス210にアクセスするために、ユーザ402は、"Ok Google"などの所定のホットワード410a、またはフレーズを発する。所定のホットワード410a、またはフレーズ、"Ok Google"に対応するオーディオ410bは、ユーザデバイス210のマイクロフォン211によって検出される。ユーザデバイス410bは、オーディオ410bの音響特徴を表すオーディオ410bから音響特徴ベクトルを導出してもよい(413)。
【0043】
それに加えて、システム400は、ユーザデバイス210の言語ID記憶領域に記憶された言語ID415を取得してもよい。言語IDは、ユーザに関連付けられた特定の言語または方言を識別するデータを含んでもよい。一実装形態において、言語IDは、one-hot言語ベクトルを含んでもよい。特定のユーザデバイス210上に記憶された言語ID415は、多数の異なる方法で知られている言語および方言に対応する複数の異なる言語IDのセットからの特定の言語IDに設定されてもよい。たとえば、ユーザは、ユーザデバイス210の購入後初めてユーザデバイス210の電源をオンにし、構成するときに特定の言語または方言を選択してもよい。対応する言語IDは、ユーザによって選択された特定の言語または方言に基づいて、選択され、ユーザデバイス210に記憶されてもよい。
【0044】
代替的にまたはそれに加えて、特定の言語IDが、デバイスの場所に基づいて、選択され、ユーザデバイス210に記憶されてもよい。たとえば、ユーザデバイス210は、デバイスが最初にアクティベートされた場所、デバイスの現在位置、または同様のものに基づいて言語IDに対する既定の設定を確立してもよい。代替的にまたはそれに加えて、ユーザデバイス210は、ユーザから取得された音声サンプルに基づいてユーザに関連付けられた特定の言語または方言を動的に検出してもよい。ユーザに関連付けられた特定の言語または方言の動的検出は、たとえば話者認証時に、ユーザが所定のホットワードを発したときに決定されてもよい。そのような場合において、対応する言語IDは、ユーザの音声サンプルから検出された言語または方言に基づいて、選択され、ユーザデバイス210に記憶されてもよい。代替的にまたはそれに加えて、ユーザは、いつでも特定の言語または方言を選択するためにユーザデバイス210に関連付けられた言語または方言設定を修正してもよい。そのような場合において、対応する言語IDは、ユーザデバイス210の言語または方言設定のユーザの修正に基づいて、選択され、ユーザデバイス210に記憶されてもよい。
【0045】
音響特徴ベクトル414および言語ID415は、トレーニングされたニューラルネットワーク250の少なくとも一部に基づく音声照合モデル280への入力として提供されてもよい。たとえば、音声照合モデル280は、たとえば入力層252および1つまたは複数の隠れ層254a、254b、254cなどのトレーニングされたニューラルネットワーク250の1つまたは複数の層を含んでもよい。しかしながら、一実装形態において、音声照合モデル280はニューラルネットワーク250の出力層256を利用しない。
【0046】
音響特徴ベクトル414および言語ID415は様々な異なる方法で音声照合モデル280への入力として提供することができる。たとえば、one-hot言語ベクトルなどの音響特徴ベクトル414および言語ID415は連結されてもよい。そのような場合において、連結されたベクトルは音声照合モデルへの入力として提供されてもよい。代替的に、システム400は、音響特徴ベクトル414、one-hot言語ベクトルなどの言語ID415、または音響特徴ベクトル414および言語ID415の両方の各それぞれのニューラルネットワークの処理に基づいてそれぞれ生成された出力を有する少なくとも2つの他のニューラルネットワークの出力を連結してもよい。そのような場合において、2つまたはそれ以上の他のニューラルネットワークの連結された出力は音声照合モデル280に提供されてもよい。代替的に、システム400は、音響特徴ベクトル414および言語ID415として使用されるone-hot言語ベクトルの加重和に基づいて入力ベクトルを生成してもよい。音響特徴ベクトル414および言語ID415に基づいて音声照合モデル280への入力データを生成する他の方法が使用されることが可能である。
【0047】
音響特徴ベクトル414および言語ID415に基づく提供された入力データの音声照合モデル280の処理の結果として、音声照合モデル280のニューラルネットワークの1つまたは複数の隠れ層においてアクティベーションのセットを生成してもよい。たとえば、提供された入力の音声照合モデル280の処理の結果として、アクティベーションのセットが第1の隠れ層254a、第2の隠れ層254b、第3の隠れ層254c、または同様のものにおいて生成されることが可能である。一実装形態において、システム400は、音声照合モデル280のニューラルネットワークの最終隠れ層254cによって出力されたアクティベーションを取得してもよい。最終隠れ層254cによって出力されるアクティベーションは、話者ベクトル420を生成するために使用されてもよい。この話者ベクトル420は、ユーザの声の特徴を示す表現を提供する。この話者ベクトルは声紋と称されてもよい。声紋は、ユーザの声の特徴に基づいて話者の同一性を一意的に検証するために使用できる。
【0048】
比較モジュール440は、話者ベクトル420と参照ベクトル430とを受信するように構成されてもよい。参照ベクトル430は、デバイスによってキャプチャされた前のユーザ発話、たとえばユーザをデバイスに登録するときに提供された発話から導出されたベクトルであってもよい。たとえば、音声認証を使用してユーザデバイス210をロック解除するためにユーザ402がシステム400を使用する前のある時点において、ユーザ402は、"Ok Google"などのフレーズを1回または複数回発してもよい。ユーザデバイス210は、マイクロフォン211を使用してユーザの発話に対応するオーディオ信号をキャプチャするように構成されることが可能である。次いで、ユーザデバイス210は、ユーザ402がシステム400を使用し音声認証を用いてユーザデバイス210をロック解除する前のある時点においてキャプチャされた、発せられたフレーズのうちの少なくとも1つに対応するオーディオ信号から参照特徴ベクトル430を導出することができる。参照ベクトル430は、生成された声紋が比較できるユーザ402の声の特徴のベースライン表現を提供してもよい。一実装形態において、参照ベクトル430は、音声許可の際に電話をロック解除するために発することができる所定のホットワードのユーザ402の発話に基づいて生成されてもよい。
【0049】
比較モジュール440は、話者ベクトル420と参照ベクトル430との間の類似度レベルを決定してもよい。一実装形態において、比較モジュール440は、話者ベクトル420と参照ベクトル430との間の類似度尺度を計算することができる。いくつかの場合において、比較モジュール440は、話者ベクトル420と参照ベクトル430との間の類似度尺度が所定の閾値を超えたかどうかを判定することができる。類似度尺度が所定の閾値を超えるこうした場合に、比較モジュール440は、類似度尺度が所定の閾値を超えたことを指示する出力データを照合モジュール450に提供してもよい。代替的に、比較モジュール440は、類似度尺度が所定の閾値を超えないと判定してもよい。そのような場合に、比較モジュール440は、類似度尺度が所定の閾値を超えなかったことを指示する出力データを照合モジュール450に提供してもよい。
【0050】
いくつかの実装形態において、話者ベクトル420と参照ベクトル430との間の類似度尺度は、話者ベクトル420と参照ベクトル430との間の距離に基づいて計算されてもよい。比較モジュール440は、話者ベクトル420と参照ベクトル430との間の距離を決定するように構成されてもよい。一実装形態において、話者ベクトル420と参照ベクトル430との間の距離は、たとえばコサイン関数を使用して決定されてもよい。コサイン関数は、話者ベクトル420と参照ベクトル430との間の距離をこれら2つのベクトルの間の角度を測定することによって決定することができる。
【0051】
照合モジュール450は、照合モジュール450が比較モジュール440から受信した出力データを受信し解釈する。比較モジュール440から受信された出力データに基づいて、照合モジュールは、話者ベクトル420が導出されたフレーズ410aを発したユーザ402が参照ベクトル430が導出されたフレーズを以前に発した同じユーザであるかどうかを判定してもよい。話者ベクトル420が導出されたフレーズ410aを発したユーザ402が、参照ベクトル430が導出されたフレーズを以前に発した同じユーザであると判定された場合、照合モジュール450は、ユーザデバイス210上で実行しているアプリケーションにデバイス420へのアクセスをユーザ402に提供するよう命令してもよい。代替的にまたはそれに加えて、話者ベクトル420が導出されたフレーズ410aを発したユーザ402が、参照ベクトル420が導出されたフレーズを以前に発した同じユーザであると判定した後、照合モジュール450は、デバイス上の特定のリソースへのアクセスを提供し、デバイスをロック解除し、デバイスを低電力状態からスリープ解除し、または同様のことを行ってもよい。
【0052】
照合モジュール450は、比較モジュール440からの出力データに基づいて、比較モジュール440からの出力データが類似度尺度が所定の閾値を超えたことを指示する場合にフレーズ410aを発したユーザが参照ベクトル430が導出されたフレーズを発した同じユーザであると判定してもよい。そのような場合において、照合モジュールがユーザが完全認証され、ユーザデバイス210を使用することを許可されていると判定してもよい。代替的に、照合モジュール450は、比較モジュール440からの出力データに基づいて、検証モジュール450がフレーズ410aを発したユーザ402が参照ベクトル430を発した同じユーザであると結論することができないと判定してもよい。そのような場合において、ユーザ402は認証されず、デバイスへのアクセスを提供されない。その代わりに、システム400、ユーザデバイス210、1つまたは複数の他のアプリケーション、またはそれらの組合せはユーザデバイス210にアクセスするための代替的オプションを提供してもよい。たとえば、ユーザデバイス210は、秘密のパスコードを入力することをユーザ402に促してもよい。
【0053】
ユーザ402が認証されたときに、フレーズ410aを発したユーザ402が参照ベクトル430が導出されたフレーズを発した同じユーザであると判定することによって、ユーザデバイス210はロック解除し、"Speaker's Identity is Verified"であることを指示するメッセージ460をユーザに出力してもよい。このメッセージは、ユーザデバイス210のグラフィカルユーザインターフェース上に表示されるテキストメッセージ、ユーザデバイス210のスピーカによって出力されるオーディオメッセージ、ユーザデバイス210のグラフィカルユーザインターフェース上に表示されるビデオメッセージ、または前述のタイプのメッセージのうちの1つもしくは複数の組合せであってもよい。
【0054】
図5は、言語独立話者同一性照合を実行するためのプロセス500を示すフローチャートである。便宜上、プロセス500は、システムによって実行されるものとして説明される。たとえば、上で説明されたシステム400は、ユーザデバイス210にアクセスすることを試みるユーザを認証するためにプロセス500を実行することができる。
【0055】
プロセス500は、ユーザデバイス210が音声認証を実行する要求をデバイスのユーザから受信したとき510に始まってもよい。いくつかの実装形態において、ユーザは、ユーザの音声認証を開始することを電話機に指令するためにユーザデバイス上でボタンを選択するか、ユーザデバイスのユーザインターフェース上でジェスチャーを実行するか、ユーザデバイスのカメラの視界内の空中でジェスチャーを実行するか、または同様のことを実行しなければならない場合がある。そのような場合において、音声認証を開始する命令が受信された後、ユーザは、ユーザの同一性を確認するために使用できる任意の言語または方言で所定のホットワードを発してもよい。代替的にまたはそれに加えて、ユーザデバイス210は、ユーザの音声認証を開始するために使用されてもよい任意の言語または方言による所定の発せられたホットワードの検出のために、受動的に「聴く」ようにマイクロフォンを使用してもよい。所定のホットワードは、たとえば"Hello Phone"、"Ok Google"、"Ni hao Android"、または同様のものを含んでもよい。いくつかの実装形態において、特定の場所にいるすべてのユーザまたは特定の言語を話すすべてのユーザに対して単一の固定されたホットワードがある。
【0056】
このプロセスは、システム400がユーザデバイス210のユーザによって入力された発話を取得したときに520において継続することができる。発話は、たとえばユーザの音声認証を開始するために使用されてもよい任意の言語または方言による所定のホットワードを含んでもよい。システム400は、取得された発話に対応するオーディオ信号から音響特徴ベクトルを導出してもよい。
【0057】
システム400は、ユーザデバイス210に関連付けられた言語識別子を決定することができる(530)。言語識別子は、ユーザに関連付けられた特定の言語または方言を識別するデータを含んでもよい。一実装形態において、言語識別子は、one-hot言語ベクトルを含んでもよい。特定のユーザデバイス210上に記憶された言語識別子は、たとえば上で説明されたように、多数の異なる方法で知られている言語および方言に対応する複数の異なる言語識別子のプールからの特定の言語識別子に設定されてもよい。しかしながら、本明細書の主題は、現在知られている言語または方言のみに限定されるわけではない。たとえば、話者照合モデルは、新しい言語、方言、またはアクセントに対応できるようにトレーニングすることができる。話者照合モデルが再トレーニングされるときに、言語または場所と識別子との間のマッピングは、たとえば新しい場所または言語を追加するように調整されてもよい。
【0058】
システム400は、音響特徴ベクトルおよび言語識別子に基づいて話者照合モデルに入力データを提供してもよい(540)。入力は、様々な異なる方法で話者照合モデルに提供されてもよい。たとえば、one-hot言語ベクトルなどの音響特徴ベクトルおよび言語識別子は連結されてもよい。そのような場合において、連結されたベクトルは、音声照合モデルへの入力として提供されてもよい。代替的に、システム400は、音響特徴ベクトル、one-hot言語ベクトルなどの言語識別子、または音響特徴ベクトルおよび言語識別子の両方の各それぞれのニューラルネットワークの処理に基づいてそれぞれ生成された出力を有する少なくとも2つの他のニューラルネットワークの出力を連結してもよい。そのような場合において、2つ以上の他のニューラルネットワークの連結された出力は、音声照合モデルに提供されてもよい。代替的に、システム400は、音響特徴ベクトルおよび言語識別子として使用されるone-hot言語ベクトルの加重和に基づいて入力ベクトルを生成してもよい。音響特徴ベクトルおよび言語識別子に基づいて音声照合モデル280への入力データを生成する他の方法が使用されてもよい。
【0059】
システム400は、540で提供される入力に基づいて話者表現を生成してもよい。たとえば、話者照合モデルは、540で提供される入力を処理し、1つまたは複数の隠れ層においてアクティベーションのセットを生成するニューラルネットワークを含んでもよい。次いで、話者表現は、ニューラルネットワークの少なくとも1つの隠れ層から取得されたアクティベーションの特定のセットから導出されてもよい。一実装形態において、アクティベーションは、ニューラルネットワークの最後の隠れ層から取得されてもよい。この話者表現は、ユーザの声の特徴を示す特徴ベクトルを含んでもよい。
【0060】
560において、システム400は、段階520で取得された発話の話者がユーザデバイス210にアクセスできるかどうかを判定してもよい。この決定は、たとえば話者表現と参照表現との比較結果に基づいてもよい。参照は、ユーザが音声認証を使用してユーザデバイスにアクセスすることを要求する前のある時点においてユーザデバイス210に入力されるユーザ発話から導出された特徴ベクトルであってもよい。話者表現と参照表現との比較の結果、話者表現と参照表現との間の類似性を示す類似度尺度が決定されてもよい。類似度尺度は、話者表現と参照表現との間の距離を含んでもよい。一実装形態において、距離は、コサイン関数を使用して計算されてもよい。類似度尺度が所定の閾値を超えたと判定された場合、システム400は、ユーザデバイス210へのアクセスをユーザに提供する(570)ことを決定してもよい。
【0061】
本明細書で説明された主題、機能的動作およびプロセスの実施形態は、本明細書で開示される構造およびその構造的等価物を含む、デジタル電子回路で、有形に具現化されたコンピュータソフトウェアもしくはファームウェアで、コンピュータハードウェアで、またはこれらのうちの1つもしくは複数のものの組合せで実装されることが可能である。本明細書で説明された発明対象の実施形態は、1つまたは複数のコンピュータプログラム、すなわちデータ処理装置による実行のためまたはデータ処理装置の動作を制御するために有形な不揮発性プログラム担体上に符号化されたコンピュータプログラム命令からなる1つまたは複数のモジュールとして実装されることが可能である。代替的にまたはそれに加えて、プログラム命令は、データ処理装置による実行のため好適な受信機装置に伝送する情報が符号化されるように生成される、人工的に生成された伝搬信号たとえば機械で生成された電気、光、または電磁信号上で符号化されることが可能である。コンピュータ記憶媒体は、機械可読記憶デバイス、機械可読記憶基板、ランダムもしくはシリアルアクセスメモリデバイス、またはそれらのうちの1つもしくは複数の組合せとすることができる。
【0062】
「データ処理装置」という用語は、たとえばプログラム可能プロセッサ、コンピュータ、または複数のプロセッサもしくはコンピュータを備える、データを処理するためのすべての種類の装置、デバイス、および機械を包含する。装置は、専用論理回路、たとえばFPGA(フィールドプログラマブルゲートアレイ)、またはASIC(特定用途向け集積回路)を含むことができる。装置はまた、ハードウェアに加えて、注目しているコンピュータプログラム用の実行環境を作成するコード、たとえばプロセッサファームウェア、プロトコルスタック、データベース管理システム、オペレーティングシステム、またはこれらのうちの1つもしくは複数のものの組合せを構成するコードを含むことができる。
【0063】
コンピュータプログラム(プログラム、ソフトウェア、ソフトウェアアプリケーション、モジュール、ソフトウェアモジュール、スクリプト、またはコードとも称されるか、または記述されてもよい)は、コンパイル言語またはインタプリタ言語または宣言型言語または手続き型言語を含む、任意の形態のプログラミング言語で書かれることが可能であり、スタンドアロンプログラム、またはモジュール、構成要素、サブルーチン、またはコンピューティング環境において使用するのに適している他のユニットを含む任意の形態で配置されることが可能である。コンピュータプログラムは、ファイルシステム内のファイルに対応してもよいが、そうである必要はない。プログラムは、他のプログラムまたはデータ(たとえば、マークアップ言語ドキュメントに記憶される1つまたは複数のスクリプト)を保持するファイルの一部に、注目しているプログラム専用の単一ファイルに、または複数の協調ファイル(たとえば、1つもしくは複数のモジュール、サブプログラム、またはコードの一部分を記憶するファイル)に記憶されることが可能である。コンピュータプログラムは、1つのコンピュータ上で、または1つのサイトに配置されるか、または複数のサイトにまたがって分散され、通信ネットワークによって相互接続されている複数のコンピュータ上で実行されるように配置されることが可能である。
【0064】
本明細書で説明されたプロセスおよび論理の流れは、入力データを操作し、出力を生成することによって機能を実行するように1つまたは複数のコンピュータプログラムを実行する1つまたは複数のプログラム可能なコンピュータによって実行することができる。これらのプロセスまたは論理の流れはまた、専用論理回路、たとえばFPGA(フィールドプログラマブルゲートアレイ)、またはASIC(特定用途向け集積回路)によっても実行され、また装置は、専用論理回路、たとえばFPGA(フィールドプログラマブルゲートアレイ)、またはASIC(特定用途向け集積回路)として実装されることが可能である。
【0065】
コンピュータプログラムの実行に適しているコンピュータは、汎用マイクロプロセッサ、専用マイクロプロセッサ、またはその両方、または任意の他の種類の中央演算処理装置を備える、たとえばそれらに基づくことができる。一般に、中央演算処理装置は、リードオンリーメモリまたはランダムアクセスメモリまたはその両方から命令およびデータを受け取る。コンピュータの不可欠な要素は、命令を遂行または実行するための中央演算処理装置ならびに命令およびデータを記憶するための1つまたは複数のメモリデバイスである。一般的に、コンピュータはまた、データを記憶するための1つまたは複数の大容量記憶デバイス、たとえば磁気ディスク、磁気光ディスク、または光ディスクを備え、これらからデータを受け取るか、またはこれらにデータを転送するか、またはその両方を行うように動作可能なように結合される。しかしながら、コンピュータは、そのようなデバイスを有している必要はない。さらに、コンピュータは、別のデバイス、たとえば2、3例を挙げると、携帯電話、携帯情報端末(PDA)、携帯オーディオもしくはビデオプレーヤー、ゲーム機、全地球測位システム(GPS)受信機、またはポータブル記憶デバイス(たとえば、ユニバーサルシリアルバス(USB)フラッシュドライブ)に組み込まれることが可能である。
【0066】
コンピュータプログラムの命令およびデータを格納するのに適したコンピュータ可読媒体は、たとえば半導体メモリデバイス、たとえばEPROM、EEPROM、およびフラッシュメモリデバイスと、磁気ディスク、たとえば内蔵ハードディスクまたはリムーバブルディスクと、光磁気ディスクと、CD-ROMおよびDVD-ROMディスクとを含む、あらゆる形態の不揮発性メモリ、媒体、およびメモリデバイスを含む。プロセッサおよびメモリは、専用論理回路によって補助されるか、または専用論理回路に組み込まれることが可能である。
【0067】
ユーザと情報のやり取りを行うために、本明細書で説明された発明対象の実施形態は、ユーザに情報を表示するためのディスプレイデバイス(たとえば、CRT(陰極線管)またはLCD(液晶ディスプレイ)モニタ)ならびにユーザがコンピュータに入力を送るために使用できるキーボードおよびポインティングデバイス(たとえば、マウスもしくはトラックボール)を有するコンピュータ上で実装されることが可能である。他の種類のデバイスも、ユーザとインタラクティブにやり取りするために使用することができ、たとえばユーザに返されるフィードバックは、任意の形態の感覚フィードバック、たとえば視覚フィードバック、聴覚フィードバック、または触覚フィードバックとすることができ、ユーザからの入力は、音響、話し声、または触覚入力を含む、任意の形態で受信されることが可能である。それに加えて、コンピュータは、ドキュメントをユーザによって使用されるデバイスに送り、そのデバイスからドキュメントを受け取ることによって、たとえばウェブブラウザから受け取った要求に応答して、ウェブページをユーザのユーザデバイス上のウェブブラウザに送信することによってユーザとインタラクティブにやり取りすることができる。
【0068】
本明細書で説明された主題の実施形態は、バックエンド構成要素をたとえばデータサーバとして備えるか、もしくはミドルウェア構成要素、たとえばアプリケーションサーバを備えるか、もしくはフロントエンド構成要素、たとえばユーザが本明細書で説明された発明対象の実装をインタラクティブに操作するために使用することができるグラフィカルユーザインターフェースもしくはウェブブラウザを有するクライアントコンピュータを備えるコンピューティングシステムで、または1つもしくは複数のそのようなバックエンド、ミドルウェア、もしくはフロントエンド構成要素の任意の組合せで実装されることが可能である。システムのコンポーネントは、デジタルデータ通信の任意の形態または媒体、たとえば通信ネットワークによって相互接続されることが可能である。通信ネットワークの例は、ローカルエリアネットワーク("LAN")およびワイドエリアネットワーク("WAN")、たとえばインターネットを含む。
【0069】
コンピューティングシステムは、クライアントおよびサーバを含むことができる。クライアントおよびサーバは、一般に互いに隔てられており、典型的には通信ネットワークを通じてインタラクティブな操作を行う。クライアントとサーバとの関係は、コンピュータプログラムが各コンピュータ上で実行され、互いとの間にクライアント−サーバ関係を有することによって発生する。
【0070】
本明細書は、多くの実装固有の詳細事項を含んでいるが、これらは、請求内容の範囲に対する制限として解釈すべきではなく、むしろ特定の実施形態に特有であると思われる特徴の説明として解釈すべきである。別の実施形態の文脈において本明細書で説明されたいくつかの特徴もまた、単一の実施形態において組合せで実装されることが可能である。逆に、単一の実施形態の文脈において説明された様々な特徴は、複数の実施形態で別々に、または好適な部分的組合せで、実装されることも可能である。さらに、特徴は、いくつかの組合せで働くものとして上記で説明され、初めにそのように請求されることさえあるが、請求される組合せからの1つまたは複数の特徴は、場合によってはその組合せから削除することが可能であり、請求される組合せは、部分組合せ、または部分組合せの変形形態を対象としてもよい。
【0071】
同様に、動作は特定の順序で図面に示されるが、そのような動作は、望ましい結果を達成するために、示される特定の順序でもしくは順番に実行される必要がないことをまたはすべての図示の動作が実行される必要があるとは限らないことを理解されたい。ある状況では、マルチタスキングおよび並列処理が有利である場合がある。さらに、上で説明された実施形態における様々なシステムコンポーネントの分離は、すべての実施形態においてそのような分離が必要とされるものと理解されるべきではなく、前述のプログラム構成要素およびシステムが概して単一のソフトウェアプロダクトとして一体化されるかまたは複数のソフトウェアプロダクトとしてパッケージ化されることが可能であることを理解されたい。
【0072】
発明対象の特定の実施形態が説明された。他の実施形態は、次の請求項の範囲内に収まる。たとえば、請求項に記載のアクションは異なる順序で実行することができ、それでも所望の結果を得ることができる。一例として、添付図面に示されるプロセスは、必ずしも、望ましい結果を達成するために図示される特定の順序、または順番を必要としない。いくつかの実装形態では、マルチタスキングおよび並列処理が有利である場合がある。他のステップまたは段階が提示されてもよく、または説明されたプロセスからステップもしくは段階が取り除かれてもよい。したがって、他の実装形態は特許請求の範囲内に収まる。
言語独立話者照合を円滑にするための、コンピュータ記憶媒体上に符号化されたコンピュータプログラムを含む、方法、システム、および装置が開示される。一態様において、本方法は、ユーザデバイスによって、ユーザの発話を表現するオーディオデータを受信するアクションを含む。他のアクションは、ユーザデバイス上に記憶されたニューラルネットワークに、オーディオデータおよび言語識別子から導出された入力データを提供することを含んでもよい。ニューラルネットワークは、異なる言語または方言で音声を表現する音声データを使用してトレーニングされてもよい。本方法は、ニューラルネットワークの出力に基づいて、話者表現を生成し、話者表現および第2の表現に基づいて、発話がユーザの発話であると判定する追加のアクションを含んでもよい。方法は、発話がユーザの発話であると判定したことに基づいてユーザデバイスへのアクセスをユーザに提供してもよい。