(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2024-06-14
(45)【発行日】2024-06-24
(54)【発明の名称】相互接続された音声検証システムの使用を通して相互運用性を達成するためのシステム、方法、およびプログラム
(51)【国際特許分類】
G06F 21/32 20130101AFI20240617BHJP
G10L 17/00 20130101ALI20240617BHJP
【FI】
G06F21/32
G10L17/00 200C
G10L17/00 200D
【外国語出願】
(21)【出願番号】P 2021184916
(22)【出願日】2021-11-12
【審査請求日】2022-04-08
(32)【優先日】2020-12-01
(33)【優先権主張国・地域又は機関】US
(73)【特許権者】
【識別番号】507134068
【氏名又は名称】サウンドハウンド,インコーポレイテッド
(74)【代理人】
【識別番号】110001195
【氏名又は名称】弁理士法人深見特許事務所
(72)【発明者】
【氏名】キーバン・モハジャー
(72)【発明者】
【氏名】ウォーレン・エス・ハイト
【審査官】平井 誠
(56)【参考文献】
【文献】欧州特許出願公開第03525205(EP,A1)
【文献】米国特許第10554657(US,B1)
(58)【調査した分野】(Int.Cl.,DB名)
G06F 21/00-88
G10L 17/00-26
(57)【特許請求の範囲】
【請求項1】
音声によってユーザを認証するための認証システムであって、前記認証システムは、
個人データサービスプロバイダを備え、
前記個人データサービスプロバイダは、個人データベースを含み、
前記個人データベースは、複数のユーザの個人データを含み、
前記個人データサービスプロバイダは、第1の商業システムおよび第2の商業システムと、1以上のネットワークを介して通信することができ、
前記第1の商業システムは、第1の音声対応デバイスに関連付けられ、前記第2の商業システムは、第2の音声対応デバイスに関連付けられ、
音声検証サーバは、前記第1の音声対応デバイスを使用して前記ユーザを認証した結果として、ユーザの個人データの少なくとも一部へのアクセスを前記第1の商業システムに許可することができ、
前記第1の商業システムおよび前記第2の商業システムの各々は、POS(Point of Sale)システムであり、
前記音声検証サーバは、前記第2の音声対応デバイスを使用して前記ユーザを認証した結果として、前記ユーザの個人データの少なくとも一部へのアクセスを前記第2の商業システムに許可することができる、認証システム。
【請求項2】
前記ユーザの個人データの少なくとも一部へのアクセスを許可することは、前記第1の商業システムまたは前記第2の商業システムに、前記個人データサービスプロバイダへのアクセスを得ることを可能にするキーを与えることを含む、請求項1に記載の認証システム。
【請求項3】
ユーザの個人データは、ユーザの金融情報を含む、請求項1または請求項2に記載のシステム。
【請求項4】
ユーザの個人データは、前記個人データサービスプロバイダ内のメモリに保存される、請求項1または請求項2に記載の認証システム。
【請求項5】
前記音声検証サーバによる認証は、機械学習された埋め込み空間における音声特徴ベクトルの計算を含む、請求項1または請求項2に記載の認証システム。
【請求項6】
前記音声検証サーバによる認証は、前記ユーザに固有のウェイクフレーズを認識することを含む、請求項1または請求項2に記載の認証システム。
【請求項7】
前記音声検証サーバによる認証は、前記ウェイクフレーズの認識の後、追加の単語を認識することをさらに含む、請求項6に記載の認証システム。
【請求項8】
前記音声検証サーバによる認証は、フレーズに依存しない認証をさらに含む、請求項6に記載の認証システム。
【請求項9】
前記音声検証サーバによる認証は、前記ユーザの以前の音声サンプルのフィンガープリントと前記ウェイクフレーズのフィンガープリントとを比較することを含む、請求項6に記載の認証システム。
【請求項10】
前記音声検証サーバによる認証は、ポップノイズの存在の検出を含む、請求項1または請求項2に記載の認証システム。
【請求項11】
前記認証システムは分散型である、請求項1~請求項10のいずれか1項に記載の認証システム。
【請求項12】
音声によってユーザを認証するための、コンピュータが実行する方法であって、前記方法は、
第1の商業システムに関連付けられた第1の音声対応デバイスから、ウェイクフレーズを含む第1の音声クエリを受信することと、
前記第1の音声クエリに基づいてユーザを認証することと、
複数のユーザの個人データを有する個人データベースを含む個人データサービスプロバイダに第1の認証メッセージを送信することと、を備え、前記第1の音声クエリに基づいて前記ユーザを認証することは、前記ウェイクフレーズに基づく認証と追加の認証とを含み、
第2の商業システムに関連付けられた第2の音声対応デバイスから、前記ウェイクフレーズを含む第2の音声クエリを受信することと、
前記第2の音声クエリに基づいて前記ユーザを認証することと、
前記個人データサービスプロバイダに第2の認証メッセージを送信することとを備え、前記第2の音声クエリに基づいて前記ユーザを認証することは、前記ウェイクフレーズに基づく認証と追加の認証とを含み、
前記第1の商業システムおよび前記第2の商業システムの各々は、POS(Point of Sale)システムであり、
前記第1の認証メッセージは、前記ユーザの個人データの少なくとも一部へのアクセスを前記第1の商業システムに許可し、前記第2の認証メッセージは、前記ユーザの個人データの少なくとも一部へのアクセスを前記第2の商業システムに許可する、方法。
【請求項13】
前記追加の認証は、前記ユーザからの追加の単語による認証を含む、請求項
12に記載の方法。
【請求項14】
前記追加の認証は、フレーズに依存しない認証を含む、請求項
12に記載の方法。
【請求項15】
前記追加の認証は、前記ユーザの以前の音声サンプルのフィンガープリントと前記ウェイクフレーズのフィンガープリントとを比較することを含む、請求項
12に記載の方法。
【請求項16】
前記追加の認証は、ポップノイズの検出を含む、請求項
12に記載の方法。
【請求項17】
前記ユーザの個人データは、前記ユーザの金融情報を含む、請求項
12に記載の方法。
【請求項18】
ユーザを認証することは、
機械学習された埋め込み空間における音声特徴ベクトルの計算と、
機械学習された埋め込み空間における前記音声特徴ベクトルと、データベース内のユーザ固有の音声特徴ベクトルとの比較とを含む、請求項
12~請求項
17のいずれか1項に記載の方法。
【請求項19】
ユーザを認証することは、
機械学習された埋め込み空間における音声特徴ベクトルの計算と、
機械学習された埋め込み空間における前記音声特徴ベクトルと、データベース内のユーザ固有の音声特徴ベクトルとの比較とを含み、
前記ユーザ固有の音声特徴ベクトルは、前記ウェイクフレーズを有するユーザに対応する、請求項
12~請求項
18のいずれか1項に記載の方法。
【請求項20】
プログラムであって、コンピュータで実行された場合に、請求項
12~請求項
19のいずれか1項に記載の前記方法を前記コンピュータに実施させる、プログラム。
【発明の詳細な説明】
【技術分野】
【0001】
関連する出願の参照なし。
【背景技術】
【0002】
背景
ヒューマンマシンインターフェースとしての音声が取り上げられている。グーグルのアシスタント、アマゾンのアレクサ、アップルのシリ、マイクロソフトのコルタナ、サウンドハウンドのハウンド、アリババのティーモールウィザード、テンセントのマイクロ、シャオミのシャオアイ、バイドゥのデュアルOS、ファーウェイのセリア、サムスンのビクスビー、ネイバーのクローバ、およびマイクロフトなど、様々な大企業が音声仮想アシスタントを提供する。これらのアシスタントの多くは、組み込みシステム(IoTデバイス)を制御することができる。それぞれについて、ユーザはアカウントを作成しなければならない。そうした後、ユーザは、仮想アシスタント、および、それが制御することができるデバイスを使用することができる。これらは、音声アシスタントによって制御される独自のエコシステムを構成する。音声アシスタントを提供する会社は、アカウントと、それらの使用から収集されるデータとを作成しながら、ユーザについての情報を使用し、有用な機能およびサービスを提供する。しかしながら、各会社は、そのエコシステム内に、ユーザの個人情報を取り込む。ユーザは、新しいアカウントを再作成し、改めてもう一度個人情報を提供することなしには、別の会社の改善されたサービスから恩恵を受けることができない。このことは、ユーザにサービスプロバイダ間の移動を強いるという障壁がなければ有用な新しいサービスを提供し得るであろう革新的で破壊的な企業を阻止しながら、既存のプロバイダに利益をもたらす。その全てが消費者にとって不利益である。
【発明の概要】
【0003】
概要
以下の明細書は、個人拡張知識/嗜好データベース(Personal Extension Knowledge/Preference Database: PEKD)と登録署名とに固有に関連付けられたウェイクフレーズの保存と、発話音声の受け付けと、発話音声内の固有のウェイクフレーズの認識と、発話音声からの署名の抽出と、抽出された署名とユーザを認証するための固有のウェイクフレーズに関連付けられた登録署名との比較と、ユーザが関連付けられたPEKDにアクセスすることを許可することと、を伴う検証システムを開示する。
【0004】
そのようなシステムは、ユーザ所有のデバイス、第三者アクセスを可能にするサービスプロバイダによる公共の分散型台帳(public distributed ledger)、または、他の適切なデータベースにPEKDを保存してもよい。
【0005】
ユーザの、認識および認証は、フレーズに依存しない自動音声認識(automatic speech recognition)によるものであってもよい。これが可能な1つの方法は、訓練されたモデルを使用した音声特徴ベクトルの抽出および計算によるものである。特徴ベクトルは、学習された埋め込み空間(learned embedding space)内にあってもよい。そのような場合、受信されたベクトルと、ユーザプロファイルに保存されているベクトルとの比較は、それらのベクトル間の距離を計算することによって行われてもよい。別の手法は、ウェイクフレーズに対して訓練されたフレーズスポッター(phrase spotter)を使用することである。音声認証は、固有のウェイクフレーズに基づくフレーズ依存型であってもよいし、他の単語の発話に基づくフレーズ非依存型であってもよい。
【0006】
本明細書はまた、ユーザから個人データを受信することと、データにアクセスするために、サービスプロバイダから要求を受信することと、ユーザに承認を要求することと、ユーザから応答を受信することと、応答に条件付けされたデータのコピーへのアクセスをサービスプロバイダに提供することとを含む、ユーザ認証の方法を開示する。
【0007】
そのような認証はまた、登録バイオメトリック署名(enrollment biometric signature)を保存することと、それを要求内のバイオメトリック署名と比較することと、それらの署名間の類似性について応答を条件付けすることとを含むことができる。そのバイオメトリック署名は、機械学習された埋め込み空間(machine-learned embedding space)内の特徴ベクトルであってもよく、類似性は、ベクトル間の距離として計算されてもよい。多くのタイプの生体認証(biometrics)が可能であるが、1つの方法は、発話音声から署名を抽出することである。
【0008】
本明細書はまた、データベース管理のコンピュータが実行する方法を開示しており、方法は、クライアントデバイスから、PEKD上でのデータベース動作のためのAPI要求を受信することを含み、その要求は、クライアントデバイスのユーザによって開始され、方法はさらに、その要求から、アクセスするユーザの個人データの部分について、そのデータの形式が削除または取得するべきものかを決定することと、データのその形式から、その形式のデータを保存する適切なサーバを決定することと、その適切なサーバに動作要求を送信することと、そのサーバから応答を受信することと、そのデバイスに応答を送信することと、を含む。
【0009】
そのような方法の場合、応答は、削除確認、PEKDを含む取得応答、または他のタイプであってもよい。管理のためのデータベースへのアクセスは、相互認証プロトコルを使用することができる、要求に対する認証プロキシ認証(auth proxy authorization)を伴ってもよい。データベース動作要求は、カフカキュー(Kafka queue)に送られてもよい。さらに、データベース要求は、複数のマップレデュースクラスタ(MapReduce clusters)に分散されてもよい。
【図面の簡単な説明】
【0010】
【
図1】仮想アシスタントエコシステムを示す図である。
【
図2】仮想アシスタントエコシステムのブロック図である。
【
図3】ホテルの部屋の仮想アシスタントとのユーザ対話を示す図である。
【
図4】音声検証によってユーザを認証するデバイスを示す図である。
【
図5】音声検証システムにユーザを登録する方法を示す図である。
【
図6】音声フィンガープリンティング(voice fingerprinting)を示す図である。
【
図7】音声フィンガープリント(voice fingerprint)による音声認証を示す図である。
【
図8】販売時点情報管理装置との音声対話を示す図である。
【
図9】ダブル認証のためにユーザを登録する方法を示す図である。
【
図10】フレーズに依存しない音声フィンガープリントによる検証の方法を示す図である。
【
図11】音声変動検出による検証の方法を示す図である。
【
図13】ビルのセキュリティシステムとの音声対話を示す図である。
【
図14】エッジ処理を用いた音声検証を示す図である。
【
図15】認証されたデータアクセスを有する仮想アシスタントプラットフォームを示す図である。
【
図16】認証されたアクセス、および、キューイングの要求を有する仮想アシスタントプラットフォームを示す図である。
【
図17A】非一時的コンピュータ可読媒体を示す図である。
【
図17B】別のタイプの非一時的コンピュータ可読媒体を示す図である。
【
図18A】システムオンチップ(system-on-chip)を示す図である。
【
図18B】システムオンチップのブロック図を示す図である。
【発明を実施するための形態】
【0011】
詳細な説明
以下は、相互接続された音声検証システムを通して相互運用性を達成するための、プロセスステップのシステム、ならびに、機械および構成要素のシステムを開示する。いくつかの実施形態は、非一時的コンピュータ可読媒体に保存されたソフトウェア命令を実行するコンピュータを使用する。以下の実施例は、そのようなシステムの種々の局面のための設計選択を示す。概して、異なる局面の設計選択は独立しており、任意の組合せで協働することができる。
【0012】
PEKD
【0013】
個人拡張知識/嗜好データベース(PEKD)は、個人データベースの一種である。これは、個々の、個人の、知識/インテリジェンス/嗜好/意識を拡張するのに役立つ。PEKDは、個人データサービスプロバイダによって保存され、管理される。ユーザは、音声および他の入力を使用して、PEKDおよびそれが保存する個人データの一部を構築し、アクセスすることができる。
【0014】
図1は、ユーザPEKDの相互接続されたシステムを使用することによって相互運用性を達成するための例示的なシステムを示す。ユーザ11は、音声を使用してスマートスピーカー12を呼び出し、それと対話し、それを制御し、それを使用して他の互換性のあるデバイスを制御する。スマートスピーカーは、インターネットなどのクラウドネットワークを介して仮想アシスタントプラットフォーム13と通信する。それは、音声認識や自然言語理解を実行し、ウェブAPIを介して、情報または動作を要求し、応答をスマートスピーカーに提供してもよい。仮想アシスタントプラットフォームは、PEKD情報14を保存し、それを使用して、応答を提供し、ユーザに適切な情報および動作にアクセスする。いくつかのシステムでは、単一の会社が仮想アシスタントプラットフォームとスマートスピーカーとの両方を提供する。しかしながら、示されるシステムでは、スマートスピーカー12はまた、スマートスピーカー15を提供する別個の会社と通信することもできる。スマートスピーカーのベンダーはまた、PEKD情報16を保存し、それを使用して、サービスまたは付加的な機能をスマートスピーカーに提供してもよい。スマートスピーカーはまた、仮想アシスタントプラットフォームとスマートスピーカーとのベンダーから独立して動作可能な、第三者デバイスとサービスとのプロバイダと通信してもよい。そのようなプロバイダは、一般に、商品およびサービスの商業プロバイダである。そのような第三者の中には、ユーザのプライバシーを保証するとの理由で、または、単にそれを必要としないので、PEKD情報を保存しない場合がある。多くのタイプの消費者デバイスは、例えば、スマートフォン、家電製品、または自動車のベンダーを含む、そのようなオープンエコシステム17の一部であってもよい。そのようなシステムは、異なる企業が望むように、様々なデバイスおよびサービスにユーザが自由にアクセスできる一方で、当該企業が、必要とするPEKD情報の少なくとも一部へアクセスすることを可能にする。
【0015】
いくつかのシステムでは、PEKDは、音声サービスプロバイダ、仮想アシスタントプラットフォーム、またはデバイスのベンダーから独立したブロックチェーン等の分散型台帳に保存され、管理される。そのようなシステムは、パスワード、パスフレーズ、指紋、網膜、音声フィンガープリントなどの生体認証などのユーザ固有の情報を使用してPEKDのデータベースレコードを暗号化することができる。そのようなデータベースレコードへのアクセスのための認証は、データセキュリティを要求されるように、多要素化され得る。分散型台帳は、私的なものでもよいし、公的なものでもよい。それは、読み取り、追加、修正、および削除などの許可をサポートすることができる。それは、PEKDデータの全部または一部に対する、さらに複雑な許可をサポートすることができる。そのような分散は、革新的なディスラプターを含む任意のサービスプロバイダが、データを利用することを可能にする。また、それは、データの破損を回避し、ハッキングに対する耐性を提供する。
【0016】
いくつかのシステムは、プラットフォームとデバイスとの間で自由にやり取り可能な、1以上のデータ形式に依存する標準フォーマットでPEKDレコードを保存または共有することができる。そのような可搬性は、アマゾン、グーグル、サウンドハウンド、テンセントなどによって今日管理されているようなエコシステムへの不適合性およびロックインを回避するという利益を有する。
【0017】
PEKDのデータのタイプ
【0018】
PEKDデータベースは、音声ベースの、または他のコンピュータサービスのユーザに関する情報を伴うレコードを含む。いくつかのそのような情報は、名前、年齢、性別、住所または地域、および出生地域を含み、これらは、ユーザを異なるタイプにマッチさせるために有用である。PEKD情報の別のタイプは、製品のお薦めおよびターゲットを絞った宣伝に有用である、買い物の嗜好である。そのような情報は、PEKD埋め込み空間内のベクトルとして扱われてもよいし、または、PEKD埋め込み空間内のベクトルに変換されてもよい。そのようなベクトルは有用である。なぜなら、そのようなベクトルは、システムがユーザ間の距離を計算することを可能にし、重心を計算することによるかまたはデービースキャン(DBSCAN)等のような密度ベースのアルゴリズムを使用することによるユーザのクラスタリング、および任意の所与のユーザの関心の可能性をマッピングすることを可能にするからである。これらの手法は、広告主および販売者によるより良いターゲティング、ならびに、ユーザにとってより関連性のある検索結果を可能にする。
【0019】
PEKD情報の別のタイプは、特定の名前および意味論上の意味を有するエンティティ(entities)へのポインタのリストである。例えば、ユーザの連絡先リストは、他人のデータベース内のレコードへのポインタを含む。これらは、ユーザにとって私的であってもよい。しかしながら、連絡先は、電子メールアドレスまたは電話番号などの明確なユーザ属性によって他のユーザに識別可能にリンクされてもよい。そのようなリストの別の例は、以前に購入されたまたは以前に閲覧された製品またはURLのリストである。特定の名前および意味論上の意味を有する他のエンティティへのポインタのリストは、それらの名前が発話されたときに音声認識がそれらの名前を認識することを可能にし、かつポインタのリストは、そうでなければ標準発音を有する単語として音声認識が認識するであろう類似発音を有する標準単語から名前を区別することによって精度を向上させることを可能にする。対応するユーザ間、または、ユーザと他のタイプのエンティティとの間のポインタは、接続ベースのクラスタリングを可能にする。改善されたクラスタリングは、より良いターゲティングおよびより関連性のある検索結果を提供する。
【0020】
エコシステム
【0021】
グーグル等の企業は、そのネストホーム制御(Nest home control)および他の第三者デバイスを伴い、アマゾンは、そのリングホームセキュリティ(Ring home security)および他の第三者デバイスを伴い、ユーザデータの取り込みを伴う独自の閉鎖的なエコシステムを作成する。これらの閉鎖的なエコシステムでは、破壊的な革新者は、彼らの製品/サービスおよび彼らのパートナーが、アマゾンまたはグーグルによって開発されたエコシステム製品を制御することができる音声アシスタントを開発することを可能にすることができない。これは、ユーザを不利にしながら、それらの企業に恩恵をもたらす。サウンドハウンドなどの他の会社は、必須のデータ取り込み契約なしに任意の数の第三者をサポートするエコシステムを提供する。
【0022】
図2は、第三者に開かれたエコシステムの一例のさらなる詳細を示す。プラットフォーム20は、複数のクライアント21aおよび21bをサポートする。プラットフォームは、データセンタまたは企業の中央オフィスにおいて典型的に見いだされるもの等のクラウドコンピューティング環境において動作することができる。クライアントは、スマートスピーカーなどの固定式のホームデバイス、電話およびウェアラブルなどのデバイス上で動作するアプリを含む、電話およびウェアラブルなどのポータブルデバイス、自動車および他の輸送システムなどの他のモバイルデバイス、自動販売機などの購入システム、販売時点情報管理(POS)端末、またはドライブスルーレストラン注文システムでもよい。
【0023】
クライアントデバイスは、家庭用スマートスピーカーおよび携帯電話など、それらのユーザによって所有されてもよいし、クライアントデバイスはまた、販売時点情報管理端末など、公共のものでもよいし、もしくは、ホテルの部屋内のスマートスピーカーなど、異なる時間に異なるユーザによって私的に使用されてもよい。ホテルなどの公共または共有のデバイスの所有者、ならびに、食料品店およびファーストフードレストランなどの小売業者は、プラットフォームプロバイダと契約してもよい。公共および共有のクライアントのユーザが提供される商業サービスにアクセスすることを可能にするために、ユーザがIDを有するなら、ユーザのIDをPEKDに関連付けることに役立つ。関連付けは、以下で論じるように、電子メールアドレスまたはクレジットカードなどの固有の識別子によって、音声フィンガープリンティングまたは顔認識などの生体認証によって、または、識別フレーズの列挙によって行うことができる。新しいユーザは、自身が決して登録していないプラットフォームに接続された公共または共有のデバイスに遭遇すると、システムは、登録処理を直ちに実行してもよい。これは、固有の識別情報を要求すること、パスワードを要求すること、固有のフレーズを要求すること、生体情報を取り込むこと、または以下で説明される他の手続き等のステップを伴うことができる。しかしながら、時間に追われているユーザを待たせ、公共の場で個人情報を要求することを避けるために、システムは、ユーザの仮アカウントを作成してもよい。仮アカウントは、ホテルのルームサービスまたはファーストフードレストランのメニューの要求などの、特定の重要でない機能を可能にすることができる。仮アカウントは、高価格の購入を行うなどのより重要な機能を可能にしてもよいし、可能にしなくてもよい。いくつかの場合において、低価格の購入は、仮のクレジットで許可されてもよい。人々が音声対応の販売時点情報管理クライアントから多数の小規模購入を行うことによって、そのような提供を乱用することを回避するために、システムは、場所に関連付けられたシリアル番号等のクライアントロケーション識別子を受信してもよい。システムは、代替として、緯度および経度等の地理的情報を販売時点情報管理装置から受信してもよい。乱用を防止するために、システムは、仮のクレジットで購入するユーザの音声の大まかな声紋および地理的情報を保存し、概ね類似した音声特性を有する近くの場所からの短時間内での複数の要求を拒否してもよい。
【0024】
プラットフォームは、クライアントから音声クエリ(voice query)またはコマンドを受信し、発話された単語を文字に起こすために音声認識を実行し、次いで、自然言語理解(natural language understanding: NLU)解釈器23を用いて単語を解釈する。解釈器は、単語を文法24と比較することによってNLUを実行する。文法は、会話の特定のドメインに対応し、発話された単語の意図を定義する。発話された単語は、そのような意図に対する異なる一般的なフレーズを含む。システムは、メモリに保存されたデータ構造として意図を表す。プロセッサは、互いの間でデータ構造を渡すことができる。また、プラットフォームとクライアントとは、互いの間でデータ構造を渡すことができる。エクステンシブルマークアップランゲージ(eXtensible Markup Language: XML)、または、ジャバスクリプトオブジェクトノテイション(JavaScript(登録商標) Object Notation: JSON)などのフォーマットは、意図のデータ構造を表すために適切であり得る。
【0025】
プラットフォームは、意図を使用して、文法のドメインに適切なデータソース25を選択する。次いで、プラットフォームは、クエリ(query)に応答する必要に応じて所望のドメインプロバイダから情報を検索する。ウィキペディア(Wikipedia)などの百科事典における情報の検索、ウェザーアンダーグラウンド(Weather Underground)などのソースからの天気予報のチェック、イェルプ(Yelp)などのプロバイダからのお勧めのレストランの検索など、多くの種類のデータソースが可能である。コマンドに対し、プラットフォームは、意図を使用して適切な動作能力26を呼び出す。ショートメッセージサービス(short message service: SMS)のテキストメッセージを送信すること、ウーバー(Uber)などのプロバイダから乗車を要求すること、または、スマートライトスイッチをオンにすることなど、多くの種類の動作が可能である。
【0026】
いくつかの専用クライアント27は、独自の動作能力を有していてもよい。例えば、メルセデス製などの自動車は、ヒータまたはエアコンを使用可能にしてもよい。そのようなデバイスは、発話されたコマンドを認識するための専用の文法28を有してもよい。プラットフォームは、そのようなクライアントに対する発話されたコマンドを受信すると、それを解釈し、合意されたデータ構造のフォーマットで適切なメッセージをクライアントに送信する。
【0027】
プラットフォームはまた、任意の特定のデータソースまたはクライアントに関連付けられていない専用の文法29を有してもよい。例えば、プラットフォームは、時間を伝え、計算を実行し、または、内部でユニット間で変換する能力を提供することができる。プラットフォームは、ある部分的な意図の結果でさえも使用して、別の意図を通知することができる。例えば、デスバレー(Death Valley)における現在の、ケルビン度での温度についてのユーザの音声クエリは、気象ドメインの検索と、それに続く結果の単位変換とを必要とする。
【0028】
第三者クライアント開発者および第三者データソースに開かれたプラットフォームは、いずれかの革新的なプロバイダが他者から恩恵を得ることを可能にする。その結果、ユーザが利用できる機能が向上し、ユーザ体験が向上することでデバイスの販売が向上し、プラットフォームの使用率が向上することでデータソースプロバイダのデータを収益化する機会が増えるという好循環が生まれる。
【0029】
ホテルシナリオ
【0030】
音声アシスタントを呼び出すウェイクフレーズは、音声アシスタントに知覚されるアイデンティティを与える。閉鎖的なエコシステムでは、全てのデバイスおよびサービスは、「オーケー、グーグル」、「アレクサ」、又は「シャオアイ」などのフレーズを介してアクセス可能な単一のアシスタントアイデンティティを介してのみアクセスされ得る。単一のプロバイダ定義のアイデンティティを有することにより、ユーザは、そのデバイスをアシスタントであると認識する。
【0031】
開かれたエコシステムでは、ウェイクフレーズはユーザに固有であり得る。ユーザは、個人のウェイクフレーズを話すことによって、任意の場所の任意のデバイスを介してアシスタントを呼び出すことができる。この普遍性により、ユーザは、全知で全能の守護天使のように、どこにいてもアシスタントが周囲にいると認識できる。
【0032】
図3に示されるように、この手法では、例えばホテルの客は、例えば、「こんにちは、ビッグさん。私は、ジュリエットよ。」という自分の個人のウェイクフレーズを言うことができる。室内のスマートスピーカーは、ウェイクフレーズを認識し、ジュリエットがウェイクフレーズを述べていることを認識し検証することができる。その時点で、スマートスピーカーは、ジュリエットが彼女のPEKD情報へアクセスすることを許可し、ジュリエットの好きな音楽はカントリーミュージックであること、ジュリエットは明日の午後2時にアポイントメントがあること、および、ジュリエットの連絡先リストにいる人が誰であるのかということを直ちに知ることができる。この情報を用いて、スマートスピーカーは、製品メーカにかかわらず、ジュリエットがエコシステム内で自分の声で製品を制御することを可能にすることができる。
【0033】
これにより、ユーザが以前に使用したことのないデバイスに遭遇する場合、たとえば、ホテルの客がスマートスピーカーを備えたホテルの部屋に入る場合、デバイスを起動するためのウェイクフレーズを発声できる対象のデバイスをどのプロバイダサービス(アマゾンのアレクサ、グーグルのアシスタント、シャオミのシャオアイなど)が提供しているかを判断する必要がない。これにより、よりパーソナライズされたユーザ体験が提供される。
【0034】
VVS
【0035】
音声検証システムまたは音声検証サーバ(voice verification server: VVS)は、個人のウェイクフレーズによるユーザの認証を提供することができる。そのようなシステムは、発話音声を受信し、ユーザの固有のウェイクフレーズを識別し、認証を要求しているデバイスが何であってもユーザのアイデンティティを検証する。VVSは、認証メッセージでデバイスに応答する。
図4は、VVSを使用する異なる種類のデバイスの一例を示す。スマートスピーカー41a、ロック41b、セキュリティシステム41c、レンタカー41dのような車、自動販売機41e、ATM41f、POSシステム41g、電話機41h、コンピュータ41i、電化製品41j、サーモスタット41k、IoT機器41l、ホームオートメーション機器41m、ロボット41n、ドライブスルーレストラン41o、およびその他諸々41pは、人42から音声クエリおよびコマンドを受信することができる。音声駆動デバイスは、インターネット43を介して、単一の一元化された音声検証システム44に接続する。協調システムを有することは、デバイスメーカのための一貫したプロトコルおよびソースを提供し、開発時間および労力を改善する。それはまた、ユーザのための一貫した認証体験を提供し、これは、音声対応デバイスに対するユーザの満足度および需要を増加させる。
【0036】
検証できるようにするために、ユーザはVVS44に登録されなければならない。
図5は、登録の1つの可能な方法を示す。それは、開始して(50)、ユーザのアイデンティティを判定する(51)。アイデンティティの判定は、ユーザがキーボードによって電子メールアドレスを入力することによって行われてもよいし、ユーザは、政府から与えられている識別番号を話すことを含む他の方法によって、または、ユーザが光学または磁気スキャナでバッジをスキャンすることによって、識別情報を提供してもよい。次に、システムは、新しいユーザから、所望のウェイクフレーズを要求する(52)。次いで、システムは、「こんにちは、ビッグさん。私は、ジュリエットよ。」などのユーザの所望のウェイクフレーズを受信する(53)。ウェイクフレーズの受信は、タイピングなどのテキスト入力方法、または、自動音声認識(automatic speech recognition: ASR)などの発話入力方法によってなされ得る。VVSは、ユーザの個人のウェイクフレーズのデータベースを保存する。VVSは、データベース内のユーザの所望のウェイクフレーズを検索して、それが見つからない、したがって、それが固有のウェイクフレーズであることを確認する(54)。そうでない場合、VVSは、所望のウェイクフレーズを要求するステップ52に戻る。ウェイクフレーズが固有である場合、VVSは、ウェイクフレーズをユーザのアイデンティティと関連付けてデータベースに保存することに進む(55)。これにより、ウェイクフレーズ登録が完了する(56)。
【0037】
各ウェイクフレーズが個人に固有であることを確実にすることによって、ユーザは、任意の場所および任意のデバイスからアシスタントを呼び出すことができる。これは、デバイスと、音声プラットフォームと、データおよびサービスのプロバイダとの間の相互運用性を可能にする。それは、今度は、エコシステムの参加者にとって新しい機会を作り出す。
【0038】
ユーザがVVSと通信するデバイスに自身の個人のウェイクフレーズを言うと、デバイスはウェイクフレーズをVVSに送信する。VVSは、ウェイクフレーズを使用して、ユーザのアイデンティティを判定および検証し、ユーザの個々のPEKD情報へのアクセスを提供する。これは、誰がそのデバイスを開発したかにかかわらず、ユーザが自分の音声を使用して自分の近くの音声制御製品を制御することを可能にする認証を提供する。
【0039】
したがって、ホテルの例に戻ると、ホテルのスマートスピーカーはVVSに接続される。ホテルの客が部屋に入って「こんにちは、ビッグさん。私は、ジュリエットよ。」と発話すると、スマートスピーカーは、ウェイクフレーズをVVSに送信する。VVSは、「こんにちは、ビッグさん。私は、ジュリエットよ。」というウェイクフレーズを受信する。VVSは、ウェイクフレーズを使用して、ユーザのアイデンティティを判定および検証する。ユーザの判定および検証に応じて、VVSは、ユーザのPEKDへの接続を可能にするであろう。ホテルの客は、誰がその製品を開発したかにかかわらず、自分の音声を使用して音声制御製品を制御することができる。
【0040】
ウェイクフレーズの接頭辞
【0041】
一般的な大語彙音声認識は、特定の単語またはフレーズに対して訓練されたフレーズスポッターよりも低い精度を有する。さらに、誰の固有のウェイクフレーズであっても検出できることは、デバイスからVVSにテキストまたは音声を絶えず送信することを必要とし、これは、大きなエコシステムをサポートするための膨大な帯域幅を必要とする。
【0042】
VVSまたは特定のデバイスは、「コンピュータ...」といった単語などの接頭語またはフレーズを必要とし得る。接頭語を必要とすることにより、デバイスは、全語彙連続ASR(full-vocabulary continuous ASR)を実行することなく、接頭辞について単純なフレーズスポッターを実行することが可能になる。連続ASRの必要性を回避することは、VVSにおけるネットワーク帯域幅のコストを大幅に低減する。それはまた、電力感応デバイスがはるかに少ない電力を使用することを可能にし、それによって、バッテリ寿命およびユーザ体験を拡大する。それはまた、フレーズスポッターは常時オンのASRよりもプロセッサへの負荷がはるかに少ないため、コストに敏感なデバイスで低コストのプロセッサを使用することを可能にする。
【0043】
ASRパーソナライゼーション
【0044】
音声ベースのエコシステムは、プログラムまたは自然言語理解モデルによって解釈され得るテキストまたは他のフォーマットへの発話音声のASR変換に依存する。ASRが正確であればあるほど、ユーザ体験は良好になり、採用される製品も増える。ASRは、概して、発話音声を音声情報に変換するために音響モデルを使用し、音声情報を単語または他の言語トークンに変換するために言語モデルを使用する。音響および言語モデリングを1つに統合したエンドツーエンドASR(end-to-end ASR)を訓練することも可能である。
【0045】
PEKD情報の別のタイプは、個人の音響モデルである。個人の音響モデルにより、システムは、所与のユーザの声、アクセント、さらにはユーザの典型的な定常ノイズさえも考慮して、より正確に音声認識を適応させることができる。個人の音響モデルは、ニューラルネットワーク音響モデル内の適応層として、より一般的なモデルからの伝達学習によって訓練されたニューラルモデルとして、または、音声認識音響フロントエンドによって処理されたサンプリングされた音声のメルフィルタバンクもしくは他のスペクトル表現とともに音響モデルへの入力として使用され得る音声音響埋め込みベクトルとして表されてもよい。
【0046】
PEKD情報の別のタイプは、個人の統計言語モデル(statistical language model: SLM)である。これは、単語およびフレーズの所与のユーザの異なる典型的な使用、ならびに、関連する人々の名前などの個人の語彙単語のセットを考慮して、より正確に音声認識を適応させるのに有用である。個人の音響モデルと同様に、個人のSLMは、ニューラルSLM内の適応層として、より一般的なモデルからの伝達学習によって訓練されたニューラルモデルとして、または、音声または他のトークン化モデルの入力とともにSLMへの入力として使用され得る言語埋め込みベクトルとして表されてもよい。
【0047】
パーソナライズされた音響モデルおよびSLMは、ASRの精度を改善し、データソース、製品、および広告との関わりの、ユーザ体験、保持、およびユーザの発見を増加させる。これらの全ては、音声エコシステムのメンバーに追加の収入の機会を提供する。
【0048】
音声フィンガープリント
【0049】
PEKD情報の別のタイプは、ユーザの音声の1以上の録音、録音から抽出された1以上の音声フィンガープリント、またはその両方である。音声フィンガープリントは、ユーザの認証、複数ユーザでの会話内のダイアライゼーション(diarization)、および、仮想アシスタントのカスタマイズ化のキーイング(keying)などの様々な用途を有する。音声フィンガープリントに合わせた(keyed)仮想アシスタントは、リアルタイムで計算されたフィンガープリントのPEKDとの最良のマッチからのマッピングと、そこからPEKDによって指し示されるユーザ固有の情報にアクセスすることとに従って、別のユーザとは異なる一のユーザに自動的に応答することができる。
【0050】
図6は、音声フィンガープリンティングの一方法の図を示す。発話音声61は、マイクロフォンから取り込まれるか、または、ネットワーク接続を介して受信される。処理は、マイクロフォンを有するデバイス内でローカルに、または、クラウドデータセンタサーバ内などのリモートで発生し得る。約25ミリ秒のサイズを有する発話音声のウィンドウは、フレーム当たり約10ミリ秒のレートでフレーム毎に処理される。各フレームについて、スペクトルエネルギーは、メルスケールで、40~80の範囲などのいくつかの周波数範囲について推定される。計算されたメルスケール測定値のシーケンスは、スペクトログラム62を生成する。発話音声のシーケンスをベクトルに変換するように訓練されたニューラルネットワーク63は、スペクトログラムを処理して、話者の音声の署名64である音声特徴ベクトルを生成する。いくつかのシステムは、スペクトログラムを計算することなく、サンプリングされた発話音声に対して直接訓練されたニューラルネットワークを使用してもよい。
【0051】
ベクトルは、例えば、iベクトル、xベクトル、またはdベクトルを生成するために、異なる隠れマルコフモデル(hidden Markov model: HMM)、または、ニューラル手法によって計算されてもよい。生成されたベクトルは、音声特徴の埋め込みに従って学習された次元を有する多次元空間内の音声を表してもよい。
【0052】
音声ベクトル署名の精度は、概して、より長い量の発話またはフレーズ長によって改善する。それは、特定のウェイクフレーズまたはウェイクフレーズの接頭辞を話すときなど、フレーズ依存であり得る。それは、フレーズ非依存でもあり得、その場合、単語に関係なく計算される。フレーズに依存する音声フィンガープリンティングは、概して、より少ない発話音声に対してはより正確であるが、フレーズに依存しないフィンガープリンティングは、利用可能な場合、より長い発話音声のピースを利用することができる。
【0053】
いくつかの音声フィンガープリンティング方法は言語に依存する。言語に依存する方法は、概して、より正確であるが、英語、マンダリン、ドイツ語、日本語、フランス語、または韓国語等の各言語に対して別々に訓練されたモデルを必要とする。言語に依存しない音声フィンガープリンティングも可能である。それは、すべての人間の音声に対して単一のモデルを訓練することのみを必要とするが、短いフレーズ長に対しては正確性がより低い。
【0054】
音声フィンガープリントによる認証は、適切な登録手続きを必要とする。動作中、VVSは音声を取り込み、フィンガープリントを計算する。それは、計算されたフィンガープリントを、主張されたユーザのアイデンティティに関連付けられたフィンガープリントと比較する。これをサポートするために、ユーザの音声を取り込む必要がある。音声は保存されるか、通常の動作中に計算された音声フィンガープリントと同じベクトル空間内に音声のフィンガープリントが保存されなければならない。登録された音声のレコードを保存することにより、将来的に技術またはシステムリソースが改善するにつれて、改善された埋め込み空間でシステムを再訓練し、ユーザのプロファイルフィンガープリントを再計算することが可能になる。
【0055】
登録中、正確なフィンガープリント比較のために充分な情報を提供する発話の量が取り込まれなければならない。フレーズに依存する音声フィンガープリンティングシステムにおける、パーソナライズされたウェイクフレーズの場合、典型的には、ユーザがウェイクフレーズを3回話せば充分であろう。ユーザの声の変化を捉えるためには、話す回数が多ければ多いほど良い。フレーズに依存しない音声フィンガープリンティングの場合、通常、正確なフィンガープリントベースの認証のためには、10秒以上の発話音声が望ましい。
【0056】
音声処理のためのオープンソースカルディ(Kaldi)パッケージは、その多くの音声処理能力の中で音声フィンガープリンティングをサポートすることができるソフトウェアパッケージの一例である。フィンガープリンティングに使用されるニューラルモデルは、1以上の回帰層と、線形注意モデルとが組み合わされた、層間の最大プーリング(maxpooling)を伴う畳み込みニューラルネットワーク(convolutional neural network: CNN)層を含んでいてもよい。
【0057】
手動ダイヤルを必要とし、電話システムの限られた環境で動作するコールセンターの音声フィンガープリンティングとは異なり、相互接続されたVVSのための音声フィンガープリンティングは、様々な雑音環境およびデバイス音声コンポーネントの歪み、サンプリングレートおよび精度、ならびに、ネットワーク接続のレイテンシおよび帯域幅制限に対してロバスト性を有する完全な音声ベースのユーザインターフェースを可能にする。
【0058】
図7は、強力な認証を提供するために、固有のウェイクフレーズの識別を音声フィンガープリンティングと組み合わせるプロセスを示す。ASRは、発話音声の認識を行う(71)。認識は、VVSに送信されるテキストを用いてデバイス上でローカルに行われてもよく、または、デバイスから送信される音声についてVVS内で行われてもよい。認識は、ウェイクフレーズを検出し、ユーザに固有のウェイクフレーズが保存されたデータベース72においてリアルタイム検索を実行する。データベースは、各固有のウェイクフレーズに関連付けられた、登録中に取り込まれた1以上の音声署名と、対応するPEKDデータへの接続とを含む。
【0059】
上述のニューラルモデル63などの音声フィンガープリンティングモデルは、取り込まれた発話音声の特徴ベクトルとして音声フィンガープリントの抽出を実行する(73)。フィンガープリント計算は、VVSに送信されるフィンガープリントベクトルを用いてデバイス内で行われ得るか、または、フィンガープリント計算は、VVS内で直接行われ得る。
【0060】
次に、VVSは、抽出された署名と、1以上の登録された署名との間で比較を実行する(74)。VVSは、ベクトル間の余弦距離を計算することによって、または、他の多次元特徴比較アルゴリズムによって比較を行うことができる。特徴が許容可能な類似性の閾値内で一致する場合、ユーザの声が検証され、認証が提供される。いったん認証が成功すると、VVSは、ユーザのPEKDへのアクセスを許可する(75)。VVSは、PEKDデータベースのプロバイダとは別であってもよい。もしそうであれば、アクセスを提供するために、データベースプロバイダに許可を示す信号が送信される。
【0061】
音声の比較が類似性の閾値を満たさない場合、認証は失敗し、VVSは、一致するフィンガープリントがなかったことを知らせる信号をデバイスに送信する。デバイスは、エラーメッセージを与えること、ユーザに再試行を依頼すること、不正アクセスの試みによりデータベースをロックするように信号を送ること、または他の適切な動作などによって、ユーザに適切に応答してもよい。
【0062】
固有のウェイクフレーズ認識と音声フィンガープリント認証との組み合わせは、ユーザが機密情報の保存を信頼するのに充分なセキュリティを提供しながら、ユーザがデバイスに依存しない周囲の仮想アシスタントを有することを可能にする利便性を提供する。この利便性は、そうでなければ可能ではない金融サービス、健康サービス、および他の個人サービスを可能にする。
【0063】
POSシナリオ
【0064】
相互接続されたVVSの手法は、広範な用途を有する。
図8は、一例を示す。スーパーマーケット81内のタッチレス音声対応POSシステムは、ユーザのバッグまたはカート内の購入品目を集計する。そのような自動化された集計は、製品上のRFIDタグ、または、棚から製品を選ぶ買い物客を観察するマシンビジョンカメラなどの様々な検出手法を用いることで可能になる。
【0065】
ユーザは、POSデバイスのところに来て精算および支払いを行うとき、手を使用するためにバッグを置くことを必要とする、カードをPOSデバイスに挿入すること、電話をタップすること、または、QRコード(登録商標)をスキャンすることではなく、買い物客は、単に、POSシステムに対して自身の個々のウェイクフレーズである「こんにちは、ビッグさん。私は、ジュリエットよ。」を発話することができる。POSデバイスは、インターネットを介してVVSに接続されている。POSデバイスは、個人のウェイクフレーズである「こんにちは、ビッグさん。私は、ジュリエットよ。」をVVSに送信する。VVSは、ウェイクフレーズを使用して買い物客のアイデンティティを確認し、音声フィンガープリント認証を実行する。認証が成功すると、VVSは、POSシステムに支払いを提供するようにユーザの銀行に信号を送る。これは直接的であり得るか、または、VVSは、POSが、買い物客のPEKDに保存された口座番号などの特定の金融情報へのアクセスを得ることを可能にするキーを与えることができる。このようにして、POSシステムは、買い物客が購入を行うのに充分な金融資産を有するという確認を得る。
【0066】
POS市場は一般的に大きい。音声対応POSデバイスは、食料品店からレストランや地下鉄の駅まで精算機を有するベンダーの全範囲にわたってアップグレードを必要とする。消費者は、彼らが何を手に持っていても置く必要がないという大きな利便性のために、物理的接触とのインターフェースを介して共有されるであろう細菌を回避する能力のために、およびアクセスの速さのために、音声対応POSを提供するようにベンダーに要求するであろう。このエコシステムの革新は、説明されるセキュアな認証方法によってのみ可能である。
【0067】
ダブル認証
【0068】
単純なVVSは、なりすまし攻撃の標的になるかもしれない。例えば、詐称者は、個人のウェイクフレーズを話す正当なユーザの音声を記録するかもしれない。記録を再生することによって、単純なVVSは、詐称者がユーザのPEKDにアクセスすることを可能にするであろう。いくつかのシステムは、ダブル認証によってこれを回避する。ダブル認証の一形態は、予測不可能な単語またはフレーズを言うことをユーザに促すことである。詐称者は、その単語またはフレーズを言った正当なユーザの記録を有さないであろう、したがって、アクセスを得ないであろう。これをサポートすることは、ユーザに追加の単語を話すように求める登録プロセスを必要とする。
【0069】
図9は、ダブル認証のサポートを伴う登録の1つの可能な方法を示す。それは、
図5に示される方法に基づく。具体的には、その方法は、ユーザのアイデンティティを決定すること(91)によって開始する(90)。ユーザのアイデンティティは、キーボードによって電子メールアドレスを入力することによって、ユーザが政府発行の識別番号を話すことによって、または、ユーザが光学式または磁気式スキャナでバッジをスキャンすることによって提供されてもよい。次に、システムは、新しいユーザから、所望のウェイクフレーズを要求する(92)。次いで、システムは、「こんにちは、ビッグさん。私は、ジュリエットよ。」などのユーザの所望のウェイクフレーズを受信する(93)。ウェイクフレーズは、タイピングなどのテキスト入力方式、または、自動音声認識(ASR)などの発話入力方式で提供され得る。VVSは、全てのユーザの個人のウェイクフレーズのデータベースを保存する。VVSは、データベース内でユーザの所望のウェイクフレーズを検索することに進み、ユーザの所望のウェイクフレーズがデータベース内に存在せず、したがって固有のウェイクフレーズであることを確認する(94)。そうでない場合、VVSは、所望のウェイクフレーズを要求するステップ(92)に戻る。ウェイクフレーズが固有である場合、VVSは、ウェイクフレーズをユーザのアイデンティティと関連付けてデータベースに保存すること(95)に進む。
【0070】
VVS登録プロセスは、「ペネロペ(Penelope)」、「エンサイクロペディア(Encyclopedia)」、「アベニュー(Avenue)」、および「フィフティースリー(Fifty-Three)」などの追加の単語またはフレーズのセットを擬似ランダムに選択または作成することに進む。次いで、VVSは、ユーザに追加の単語またはフレーズのそれぞれを話すように要求する(96)。VVSは、ユーザが話しているフレーズのサンプルを記録し、保存する(97)。VVSは、任意に、追加の単語またはフレーズのそれぞれについて、フレーズ依存型音声検証ベクトルを計算および保存することができる。これにより、ウェイクフレーズ登録が完了する(98)。
【0071】
POSシナリオでは、認証中、VVSがウェイクフレーズを通じて買い物客のアイデンティティを決定した後、VVSはランダムに選択された認証ワード(あるいは、音声認識を使用して容易に認識することができる数字などの一連の単語)のうちの1つをPOSシステムに送信する。POSシステムは、認証ワードを表示画面に表示する。そして、ユーザは、認証ワードを読んで話す。POSシステムは、認証ワードをVVSに送信する。VVSは、認証ワードを、そのメモリに保存された認証ワードのフィンガープリントと照合する。一致する場合、VVSはPOSシステムに対しアイデンティティを認証する。一致しない場合、POSシステムはユーザを拒否する。
【0072】
ダブル認証を使用することは、不正行為を大幅に低減または排除する。
【0073】
スマートフォンなどの個人デバイスによってダブル認証するために、VVSは、一連の数字または文字、および、数字としての確認コードを買い物客の個人デバイスに送信することができる。ユーザは、コードを読むことができる。フレーズに依存しない音声認識を使用することによって、コードが、ユーザに充分に長い音声サンプルを提供させるのに充分な程に長い限り、詐称者は録音を再生することができない。
【0074】
図10は、VVSによるフレーズに依存しない認証の方法を示す。それは、ユーザのアイデンティティを要求すること(101)によって開始する(100)。ユーザは、電子メールアドレス、IDカードの番号、または固有のウェイクフレーズなどの固有の識別情報を提供することによって、自分のアイデンティティを提供することができる。次に、VVSは、任意の単純な音声クエリ、例えば、「2の2倍は何ですか」、「ドラゴンという単語を言って下さい」、または「あなたの郵便番号は何番ですか」を生成する(102)。質問に対する回答が任意であることを確認することによって、VVSは、詐称者が録音された音声を使用する危険に対処することができる。VVSは、ユーザの声の応答を受信し(103)、声のマッチングを実行する(104)。マッチングが閾値の距離内である場合、ユーザは認証される(105)。そうでなければ、認証は失敗し(106)、VVSは、対応する信号を、認証を要求するデバイスに送信する。
【0075】
ダブル認証のこの特定の形態は、プッシュ通知を必要としない。
【0076】
音声録音の再生によるなりすましを妨げるダブル認証の別の形態は、音声録音における小さな変化を確かめることである。
図11は、そのような方法を示す。それは、ウェイクフレーズの音声を受信すること(111)によって開始する(110)。次いで、VVSは、ウェイクフレーズの音声を将来の参照のために保存する(112)。次に、VVSは、受信したウェイクフレーズの音声を保存された以前の音声サンプルと比較する(113)。この比較は、ウェイクフレーズの音声サンプルに対して計算されたフィンガープリントを比較し、それらが、同じユーザであることを確認するのに必要な閾値未満であるが、同じ録音であることを示すであろう閾値よりも大きいことを確かめることによって行うことができる。複数の録音は非常に近いフィンガープリントを生成するかもしれないので、ウェイクフレーズの音声の長さを考慮することも可能であるし、もしくは、音声サンプルを整合する長さに伸張することによって、ウェイクフレーズの音声全体にわたって小さい音声セグメントの累積ベクトル距離を計算することも可能である。ウェイクフレーズの音声サンプル間に充分な差があることを確認した後(114)、距離が充分であれば、ユーザは認証される(115)。そうでなければ、認証は失敗し(116)、VVSは、対応する信号を、認証を要求するデバイスに送信する。
【0077】
この方法を用いることで、詐称者によるユーザの音声の同じ録音は、システムを突破するために繰り返し使用することができない。
【0078】
詐称者が正当なユーザの音声を録音したなりすまし攻撃を識別するためのさらなるセキュリティ特徴として、VVSはさらに、録音された音声からライブ音声を区別することが可能な音声検証モジュールを採用してもよい。特に、生きている人間から受信された音声(本明細書ではライブ音声と呼ぶ)と、録音装置から再生された音声(本明細書では再生された音声と呼ぶ)との間には、様々な音響差が存在する。検証モジュールは、ライブ音声と再生された音声との間のこれらの差を検出するための多種多様な技術のいずれかに従って動作してもよい。
【0079】
一実施形態では、音声検証モジュールは、いわゆるポップノイズ(pop noise)の存在を検出してもよい。ポップノイズとは、人間の息がマイクロフォンに到達したときに生じる音声波形の歪みである。この同じ歪みの現象は、再生された音声では起こらない。ポップノイズを使用してライブ音声と再生された音声との間の差異を検出する方法は、例えば、シオト(Shioto)らによる「Voice Liveness Detection Algorithms Based on Pop Noise Caused by Human Breath for Automatic Speaker Verification」と題されたインタースピーチ(Interspeech)の2015年の刊行物に記載されており、この刊行物は、参照によりその全体が本明細書に組み込まれる。ポップノイズの有無を検出することによって、音声検証モジュールは、音声が生きているユーザからのライブ音声であるか、再生装置102からの再生された音声であるかを識別してもよい。音声検証モジュールは、さらなる実施形態では、他の技術に従って動作してもよい。
【0080】
自動販売機シナリオ
【0081】
図12は、別のシナリオを示す。音声対応自動販売機121は、ジュリエットの発話を受信する。彼女は、「こんにちは、ビッグさん。私は、ジュリエットよ。」と言う。自動販売機は、VVSに接続している。ジュリエットのアイデンティティを検証する。次いで、自動販売機は、ジュリエットのPEKDに保存された特定の金融情報へのアクセスを取得する。自動販売機は、ジュリエットが購入を行うことを可能にする。
【0082】
ビルのセキュリティシナリオ
【0083】
図13は、別のシナリオを示す。商業ビル用の音声駆動ロック/セキュリティシステムを考える。デイブがビルまで歩いていく。デイブは、ビルに入る許可を持たない詐称者である。デイブは、ジュリエットがそのビルで働いていることを知っている。デイブは「こんにちは、ビッグさん。私は、ジュリエットよ。」というフレーズを発話する。音声駆動ロック/セキュリティシステムは、ウェイクフレーズをVVSに送信する。VVSは、ウェイクフレーズを保存されたフィンガープリントと照合し、これが一致していないことを認識する。VVSは、認証失敗の信号を送信する。デイブは、ビルへのアクセスを許可されない。今、ジュリエットがそのビルまで歩いていく。ジュリエットは、「こんにちは、ビッグさん。私は、ジュリエットよ。」というウェイクフレーズを発話する。VVSは、ジュリエットの音声を認識し、ジュリエットにそのビルへのアクセスを許可する。
【0084】
エッジ処理
【0085】
図14は、別の例示的な構成を示す。ユーザ141は、既知のユーザのウェイクフレーズをテキストとしてローカルに保存するエッジデバイス142と音声で対話する。新しいユーザが登録されるか、または、ユーザがウェイクフレーズを変更するときはいつでも、システムは、エッジデバイス142を含む、ユーザが使用し得るすべてのデバイスに新しいウェイクフレーズを送信する。
【0086】
通常動作中、それは音声をバッファに保存する。それはまた、スピーカーに依存しない継続的なASRと、文字に起こされた単語とウェイクフレーズのテキストとの比較とを実行する。話された単語と任意のユーザのウェイクフレーズとの間の一致を見つけると、エッジデバイスは、バッファリングされた音声と、ウェイクフレーズのテキストおよび対応する識別子のいずれかとを、インターネットなどのネットワーク143を介してVVSサーバ144に送信する。VVSは、データベースからウェイクフレーズまたは識別子に対応するユーザの音声フィンガープリントを検索し、音声と、保存されたフィンガープリントとを比較する。VVSは、受諾応答または拒否応答をデバイスに送信する。デバイスは、認証に成功したことに対してドアのロックを解除する、または、認証に失敗したことに対してアラームを駆動するなど、応答を使用して、アプリケーション固有の機能を実行する。
【0087】
別の例示的な構成では、エッジデバイスは、音声認識を行うVVSに音声を継続的に送信する。この手法は、より高い精度を提供し、サーバベースのASRを継続的に改善する。それはまた、ウェイクフレーズの更新をデバイスに送信する必要性を回避する。
【0088】
別の例示的な構成では、デバイスは、音声活動検出を実行し、音声を検出すると音声をVVSに送信する。この手法は、継続的な音声ストリーミングで必要とされる可能性のある高いネットワーク帯域幅要件を回避する。
【0089】
デバイスは、視覚信号、赤外線信号、超音波信号、またはRFID信号等の他のセンサの任意の組み合わせを使用して、場合によっては音声信号と組み合わせて、ユーザの存在を検出することができる。
【0090】
データベース管理
【0091】
あらゆる製品ベンダーが自身の仮想アシスタント(virtual assistant: VA)を設計し実装することは、ノウハウの非効率的な使用であり得る。VAプラットフォームであって、サウンドハウンドによるハウンディファイ(Houndify)などは、インターネットに接続される多くの製品におけるフル機能のVA能力のニーズを満たすために開発されてきた。それらは、おそらくプラットフォームサーバがVAを提供するという知識なしに、製品が、製品またはそのブランドとユーザとを関連付けるユーザインターフェースを提供することを可能にする。これらのサービスは、音声インターフェース、ユーザインターフェースの他のモード、または、これらのモードの組み合わせをサポートする。
【0092】
VAが、ユーザの過去のクエリの音声、これらのクエリのテキスト表記、ユーザのアドレス帳、ロケーション履歴、および、ユーザの仮想ブラックジャックゲームのスコアなどのPEKD情報を使用するとき、VAは、それらのユーザにとってはるかに有用である。いくつかのサーバベースのVAは、その情報を収集および保存し、ユーザ体験を向上させるためにそれを使用する。
【0093】
しかしながら、いくつかのユーザは、VAサーバから自身のPEKDを削除するか、または、自身のPEKDのコピーを取得することを望む。ユーザは、削除の要求またはPEKDのコピーの取得の要求を行ってもよい。VAプラットフォームは情報を収集するが、ユーザは製品ベンダーに自身の要求を行う。製品ベンダーは、ユーザデータの少なくとも一部のコピーを削除または要求するために、対応する要求をVAプラットフォームに対し行う方法を必要とする。
【0094】
図15は、異なる目的に専用の複数のサーバを含むVAプラットフォーム151を示す。それは、インターネットなどのネットワーク15から要求を受信する。許可を与えるプロキシ(認証プロキシ)152は許可を確認する。許可は、VVSまたは他の検証システムから与えられてもよい。この例示的なシステムでは、連絡先サーバ155は、ユーザのアドレス帳情報を保存し、テキストサーバ156は、ユーザの発話を書き表したものおよび文書を保存し、ゲームサーバ157は、ブラックジャックゲームおよび他のゲームのスコアを保存し、並列音声サーバのシステム158は、ユーザの発話の録音を保存する。多くのユーザの発話の録音を取り込む仮想アシスタントプラットフォームは、記憶装置を分散させて音声の録音を処理することが必要とされてもよい。記憶装置を分散させることは、データアクセスを分散させるという利益を有し、これは、帯域幅要件を制限し、ネットワーク内でトポロジー的にユーザのデータをそれらにより近づけることによって、待ち時間、したがって、システムの応答性を改善する。並列の音声サーバは、記憶装置のマップレデュースクラスタを使用する。これは、アパッチハドゥープ(Apache Hadoop)、または、クラウドサービス固有のプロトコルなどのオープンプロトコルを用いて実装されることができる。
【0095】
そのようなVAプラットフォームは、削除および取得の要求を与えるAPIを提供してもよい。認証プロキシインターフェースは、外部ネットワークから、削除および取得の要求と、データ形式のオプションの指示とを受信する。要求が許可される場合、認証プロキシは、それらの削除および取得の要求を適切なサーバに転送する。データ形式が指定されていない場合、認証プロキシは、要求をすべてのサーバに転送してもよい。このように、VAプラットフォームは、すべてのサーバにわたって削除および取得の要求を実行するために、認証プロキシに分散型要求アーキテクチャを使用してもよい。
【0096】
図16は、仮想アシスタントプラットフォーム161の別の実装形態を示す。ネットワーク150からの削除および取得の要求は、認証プロキシ152へ向かう。それは許可を確認する。拒否された場合、認証プロキシはエラー信号で応答する。許可が確認された場合、認証プロキシは、ユーザデータの取得および削除の要求トピックを有するオープンソースカフカキューに要求を送信する。他のオープンソースまたは独自のキューイングシステムは、異なるシステムへの統合に適している。連絡先サーバ165、テキストサーバ166、ゲームサーバ167、および並列の音声マップレデュースクラスタ168のシステム内のサーバなど、ユーザデータを保存するサーバは全て、ユーザデータの取得および削除の要求トピックに、それら自体の固有のグループIDで加入しなければならない。認証プロキシは、カフカに加入している。削除および取得の要求を処理した後、各サーバは、確認レコードをカフカに投稿する。サーバがユーザデータを有する場合、サーバは、認証プロキシAPIを介して、取得要求の結果としてそれを投稿する。認証プロキシは、削除および取得の要求の進行を追跡し続け、要求ステータスを報告するためのAPIを提供する。
【0097】
いくつかのサーバ、特に大量のデータの保存を扱うサーバは、アパッチハドゥープ等のフレームワークを介して通信するマップレデュースクラスタの分散アレイを使用してもよい。そのようなサーバは、認証プロキシを介した削除API要求に応じて削除要求の分散を処理しなければならない。
【0098】
認証プロキシAPIは、要求者に、相互トランスポート層セキュリティ(Mutual Transport Layer Security: mTLS)などの相互認証プロトコルを要求してもよい。他の標準的なまたは独自の相互認証プロトコルは、異なるシステムに適している。
【0099】
ボイラープレート
【0100】
コンピュータ可読媒体
【0101】
図17Aは、回転する磁気ディスクである、非一時的コンピュータ可読媒体171の一例を示す。データセンタは、通常、磁気ディスクを使用して、サーバプロセッサのための命令を含むデータおよびコードを保存する。非一時的コンピュータ可読媒体171は、1以上のコンピュータによって実行されると、コンピュータに本明細書で説明される方法のステップを実行させる命令を含むコードを保存する。回転する光ディスクおよび他の機械的に可動する記憶媒体が可能である。
【0102】
図17Bは、フラッシュランダムアクセスメモリ(RAM)チップである非一時的コンピュータ可読媒体172の一例を示す。データセンタは、通常、フラッシュメモリを使用して、サーバプロセッサのためのデータおよびコードを保存する。モバイルデバイスは通常、システムオンチップデバイス内のプロセッサのためのデータおよびコードを保存するためにフラッシュメモリを使用する。非一時的コンピュータ可読媒体172は、1以上のコンピュータによって実行されると、コンピュータに本明細書で説明される方法のステップを実行させる命令を含むコードを保存する。リードまたははんだボールでパッケージ化された他の非可動記憶媒体も可能である。
【0103】
システムオンチップ
【0104】
図18Aは、プリント回路基板に表面実装はんだ付けするためのボールグリッドアレイを有するパッケージ化されたシステムオンチップデバイス180の底面を示す。さまざまなパッケージの形状およびサイズが、さまざまなチップ実装のために可能である。システムオンチップ(SoC)デバイスは、本明細書で説明されるように、多くの組み込みシステムおよびIoTデバイスの実施形態を制御する。
【0105】
図18Bは、システムオンチップ180のブロック図を示す。それは、コンピュータプロセッサ(CPU)コア181のマルチコアクラスタと、グラフィックプロセッサ(GPU)コア182のマルチコアクラスタとを備える。プロセッサは、ネットワークオンチップ183を介して、プログラム、および、データの揮発性記憶装置のためのオフチップダイナミックランダムアクセスメモリ(DRAM)インターフェース184と、フラッシュRAM非一時的コンピュータ可読媒体におけるコンピュータプログラムコードの不揮発性記憶装置のためのフラッシュインターフェース185とに接続する。SoC180はまた、GUIを表示するためのディスプレイインターフェース186と、異なる周辺デバイスの必要に応じて、様々なI/Oインターフェースデバイスに接続するためのI/Oインターフェースモジュール187とを有する。I/Oインターフェースは、とりわけ、タッチスクリーンセンサ、測位受信機、マイクロフォン、スピーカー、Bluetooth(登録商標)周辺機器、ならびに、キーボードおよびマウスなどのUSBデバイスなどのセンサを可能にする。SoC180はまた、WiFi、3G、4Gロングタームエボリューション(long-term evolution: LTE)、5G、および他の無線インターフェース標準無線機、ならびに、イーサネット(登録商標)接続ハードウェア等の、有線または無線接続を通して、プロセッサがインターネットにアクセスすることを可能にするためのネットワークインターフェース188を備える。インターフェース184を介してRAMデバイスに保存された命令を実行し、または、インターフェース185を介してフラッシュデバイスに保存された命令を実行することによって、CPU181およびGPU182は、本明細書で説明される方法のステップを実行する。
【0106】
サーバ
【0107】
図19Aは、いくつかの実施形態によるラックマウント型サーバブレードマルチプロセッササーバシステム190を示す。サーバシステム
190は、ソフトウェアを並列に実行する多数のネットワーク接続されたコンピュータプロセッサを含む。
【0108】
図19Bは、サーバシステム190のブロック図を示す。それは、コンピュータプロセッサ(CPU)コア191のマルチコアクラスタと、グラフィックプロセッサ(GPU)コア192のマルチコアクラスタとを備える。プロセッサは、ボードレベル相互接続(board-level interconnect)193を介して、プログラムコードおよびデータの保存のためのランダムアクセスメモリ(RAM)デバイス194に接続する。サーバシステム190はまた、プロセッサがインターネットにアクセスすることを可能にするネットワークインターフェース198を備える。RAMデバイス194に保存された命令を実行することによって、CPU191およびGPU192は、本明細書で説明される方法のステップを実行する。
【0109】
特記事項
【0110】
示され説明される例は、ある話し言葉を使用する。様々な実施形態は、他の言語または複数の言語の組み合わせに対しても同様に動作する。示され説明される例は、知識および能力を有するあるドメインを使用する。様々なシステムは、他のドメインまたは複数のドメインの組み合わせに対して同様に動作する。
【0111】
いくつかのシステムは、イヤピースなどの表示画面を持たない、スクリーンレスである。いくつかのシステムは、自動販売機などのように、据え付けられている。いくつかのシステムは、自動車などのモバイルである。いくつかのシステムは、携帯電話などのポータブルである。いくつかのシステムは、人体に埋め込む用のものである。いくつかのシステムは、キーボードまたはタッチスクリーンなどの手動インターフェースを備える。
【0112】
いくつかのシステムは、ARMまたはx86アーキテクチャを有するものなどの汎用プログラマブルプロセッサ(CPU)上でソフトウェアを実行することによって機能する。いくつかの電力感応システム、および、ニューラルネットワークアルゴリズムのためのもののような、特に高い性能を必要とするいくつかのシステムは、ハードウェアの最適化を使用する。いくつかのシステムは、シノプシスのARCプロセッサ、および、ケイデンスのXtensaプロセッサなど、専用のシステムオンチップにおいて構成可能な命令セットを有する、アプリケーションをカスタマイズ可能なプロセッサを使用する。いくつかのシステムは、フィールドプログラマブルゲートアレイ(FPGA)に焼き付けられた専用のハードウェアブロックを使用する。いくつかのシステムは、グラフィック処理ユニット(GPU)のアレイを使用する。いくつかのシステムは、より高い性能を与えるためにカスタマイズされたロジックを有する特定用途向け集積回路(ASIC)を使用する。
【0113】
本明細書で説明され、特許請求される物理的機械のいくつかのシステムは、多数の変数においてプログラム可能であり、それらの組み合わせは、本質的に、無限多様な動作挙動を提供する。本明細書のいくつかのシステムは、多数のパラメータを提供するソフトウェアツールによって構成され、それらの組み合わせは、本質的に、無限多様な機械の実施形態を提供する。
【0114】
ハードウェアブロック、カスタムプロセッサ命令、コプロセッサ、およびハードウェアアクセラレータは、特に高い性能、および、電力効率で、ニューラルネットワーク処理、または、ニューラルネットワーク処理アルゴリズムの一部を実行する。これにより、バッテリ駆動デバイスのバッテリ寿命が延長され、多くのクライアントデバイスに同時にサービスを提供するデータセンタにおける熱除去コストが低減される。