特許第6096319号(P6096319)IP Force 特許公報掲載プロジェクト 2022.1.31 β版

知財求人 - 知財ポータルサイト「IP Force」

▶ アマゾン テクノロジーズ インコーポレイテッドの特許一覧

特許6096319分散音声認識システムにおける音声モデル検索
<>
  • 特許6096319-分散音声認識システムにおける音声モデル検索 図000002
  • 特許6096319-分散音声認識システムにおける音声モデル検索 図000003
  • 特許6096319-分散音声認識システムにおける音声モデル検索 図000004
  • 特許6096319-分散音声認識システムにおける音声モデル検索 図000005
  • 特許6096319-分散音声認識システムにおける音声モデル検索 図000006
  • 特許6096319-分散音声認識システムにおける音声モデル検索 図000007
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】6096319
(24)【登録日】2017年2月24日
(45)【発行日】2017年3月15日
(54)【発明の名称】分散音声認識システムにおける音声モデル検索
(51)【国際特許分類】
   G10L 15/07 20130101AFI20170306BHJP
   G10L 15/06 20130101ALI20170306BHJP
   G10L 15/02 20060101ALI20170306BHJP
   G10L 15/30 20130101ALI20170306BHJP
【FI】
   G10L15/07
   G10L15/06 400V
   G10L15/02 300D
   G10L15/30
【請求項の数】14
【全頁数】22
(21)【出願番号】特願2015-547478(P2015-547478)
(86)(22)【出願日】2013年12月10日
(65)【公表番号】特表2015-537258(P2015-537258A)
(43)【公表日】2015年12月24日
(86)【国際出願番号】US2013074192
(87)【国際公開番号】WO2014093384
(87)【国際公開日】20140619
【審査請求日】2015年6月11日
(31)【優先権主張番号】13/712,891
(32)【優先日】2012年12月12日
(33)【優先権主張国】US
(73)【特許権者】
【識別番号】506329306
【氏名又は名称】アマゾン テクノロジーズ インコーポレイテッド
(74)【代理人】
【識別番号】100114890
【弁理士】
【氏名又は名称】アインゼル・フェリックス=ラインハルト
(74)【代理人】
【識別番号】100099483
【弁理士】
【氏名又は名称】久野 琢也
(72)【発明者】
【氏名】ビェアン ホフマイスター
(72)【発明者】
【氏名】ヒュー エヴァン セッカー−ウォーカー
(72)【発明者】
【氏名】ジェフリー コーネリアス オニール
【審査官】 千本 潤介
(56)【参考文献】
【文献】 特開2002−268673(JP,A)
【文献】 国際公開第2011/040056(WO,A1)
【文献】 特開2005−249829(JP,A)
【文献】 特表2007−516655(JP,A)
【文献】 米国特許出願公開第2010/0268534(US,A1)
【文献】 特開2008−225068(JP,A)
【文献】 特開2005−107550(JP,A)
【文献】 特開2003−122395(JP,A)
【文献】 米国特許出願公開第2012/0022869(US,A1)
(58)【調査した分野】(Int.Cl.,DB名)
G10L 15/07
G10L 15/02
G10L 15/06
G10L 15/30
(57)【特許請求の範囲】
【請求項1】
実行可能な命令を記憶するコンピュータ可読メモリと、
前記コンピュータ可読メモリと通信する1つ以上のプロセッサと、
を備えるシステムであって、
前記1つ以上のプロセッサは、前記実行可能な命令によって、
クライアント装置から、ユーザの発話に関する音声データを受信し、
追加の音声認識モデルが利用可能でないことを決定し、
前記音声データ上で基礎音声認識モデルを使用して、第1の音声認識処理を実行し、第1の音声認識結果を生成し、
前記追加の音声認識モデルをネットワークアクセス可能なデータストアから要求し、前記要求は、前記第1の音声認識処理の完了前に開始され、
前記追加の音声認識モデルを前記ネットワークアクセス可能なデータストアから受信し、
第2の音声認識処理を、前記追加の音声認識モデルを使用して、かつ、前記音声データおよび前記第1の音声認識結果のうちの少なくとも1つを使用して実行し、
前記第2の音声認識処理に少なくとも部分的に基づき、応答を前記クライアント装置に送信し、
前記クライアント装置から、第2のユーザの発話に関する第2の音声データを受信し、
前記追加の音声認識モデルが利用可能であることを決定し、
前記第2の音声データ上で前記追加の音声認識モデルを使用して、音声認識処理を実行する、
ようにプログラムされている、
システム。
【請求項2】
前記基礎音声認識モデルは、一般音響モデル、性別特定的音響モデル、および、一般言語モデルのうちの少なくとも1つを含み、
前記追加の音声認識モデルは、前記ユーザの発話に関連するユーザの特徴に少なくとも部分的に基づいて選択される、
請求項1に記載のシステム。
【請求項3】
前記1つ以上のプロセッサは、前記実行可能な命令によって、マルチスレッド処理を使用して、前記第1の音声認識処理の実行と平行して、前記追加の音声認識モデルを検索するようにさらにプログラムされている、
請求項1に記載のシステム。
【請求項4】
前記1つ以上のプロセッサは、前記実行可能な命令によって、前記追加の音声認識モデルをキャッシュするようにさらにプログラムされている、
請求項1に記載のシステム。
【請求項5】
コンピュータ実装方法であって、前記方法は、特定のコンピュータ実行可能な命令で構成された1つ以上のコンピュータ装置の制御下で、
クライアント装置から、ユーザの発話に関する音声データを受信するステップと、
追加の音声認識モデルが利用可能でないことを決定するステップと、
前記音声データ上で基礎音声認識モデルを使用して、第1の音声認識処理を実行して、第1の音声認識結果を生成するステップと、
前記追加の音声認識モデルをネットワークアクセス可能なデータストアから要求するステップであって、前記第1の音声認識処理の完了前に開始される要求ステップと、
前記追加の音声認識モデルを前記ネットワークアクセス可能なデータストアから受信するステップと、
第2の音声認識処理を、前記追加の音声認識モデルと、前記音声データおよび前記第1の音声認識結果のうちの少なくとも1つと、を使用して実行するステップと、
前記第2の音声認識処理に少なくとも部分的に基づき、応答を前記クライアント装置に送信するステップと、
前記クライアント装置から、第2のユーザの発話に関する第2の音声データを受信するステップと、
前記追加の音声認識モデルが利用可能であることを決定するステップと、
前記第2の音声データ上で前記追加の音声認識モデルを使用して、音声認識処理を実行するステップと、
を含むコンピュータ実装方法。
【請求項6】
前記ユーザの特徴に少なくとも部分的に基づいて、要求する前記追加の音声認識モデルを選択するステップをさらに含む、
請求項5に記載のコンピュータ実装方法。
【請求項7】
前記ユーザの前記特徴は、前記ユーザの性別、年齢、地域的アクセント、または、身分を含む、
請求項6に記載のコンピュータ実装方法。
【請求項8】
前記追加の音声認識モデルは、音響モデル、言語モデル、言語モデル統計、制約付き最尤線形回帰(「CMLLR」)変換、声道長正規化(「VTLN」)伸縮係数、ケプストラル平均および分散データ、意図モデル、固有表現モデル、および、地名辞典のうちの少なくとも1つを含む、
請求項5に記載のコンピュータ実装方法。
【請求項9】
前記追加の音声認識モデルを更新するための統計を要求するステップであって、前記第1の音声認識処理の完了前に開始される要求するステップをさらに含む、
請求項8に記載のコンピュータ実装方法。
【請求項10】
前記統計および前記第2の音声認識処理の結果に少なくとも部分的に基づいて、前記追加の音声認識モデルを更新するステップをさらに含む、
請求項9に記載のコンピュータ実装方法。
【請求項11】
前記追加の音声認識モデルをキャッシュするステップをさらに含む、
請求項5に記載のコンピュータ実装方法。
【請求項12】
前記追加の音声認識モデルをキャッシュから検索するステップをさらに含む、
請求項11に記載のコンピュータ実装方法。
【請求項13】
前記追加の音声認識モデルをキャッシュするステップは、
ユーザが音声認識セッションを開始する可能性がある時間を決定するステップと、
前記追加の音声認識モデルを実質的に決定された時間でキャッシュするステップと、
を含む、
請求項11に記載のコンピュータ実装方法。
【請求項14】
前記ユーザによって操作されるクライアント装置から前記音声データを受信するステップと、
前記第2の音声認識処理に少なくとも部分的に基づく応答を、前記クライアント装置に送信するステップと、
をさらに含む、
請求項5に記載のコンピュータ実装方法。
【発明の詳細な説明】
【技術分野】
【0001】
現代の音声認識システムは、音響モデルおよび言語モデルを典型的に含む。音響モデルは、発話の音響特性に基づいて、どの語または副語単位(例えば、音素)が発話に対応するかに関する仮説を発生させるために使用される。言語モデルは、発話が話される言語の語彙特性に基づいて、音響モデルを使用して発生させた仮説のうちのどれが、発話の最も可能性がある転写であるかを決定するために使用される。
【0002】
音声認識において使用される音響モデル、言語モデル、および他のモデル(総じて音声認識モデルと称される)は、異なる程度に特殊化またはカスタマイズされ得る。例えば、音声認識システムは、いかなる特定の方法でもカスタマイズされない一般または基礎モデル、および特定の性別、年齢幅、地域的アクセント、またはこれらの任意の組み合わせのための、任意の数の追加モデルを有し得る。いくつかのシステムは、特定の主題(例えば、医学用語)、または特定のユーザのためのモデルさえをも有し得る。
【0003】
音声認識システムは、クライアントに基づく、またはクライアント−サーバに基づくものであり得る。例えば、ラップトップコンピュータなどのコンピュータ装置は、音声入力を、テキスト出力、または音声入力の可能性がある転写のリストに処理するためのアプリケーションソフトウェアおよびデータを含み得る。いくつかの音声認識は、パーソナルまたは携帯コンピュータ装置を介して音声入力を受容し、音声入力が転写される、または他の処理が実行されるネットワークアクセス可能サーバに、音声入力を伝達する。
【0004】
様々な発明的特性の実施形態が、以下の図面を参照してこれより記載される。図面を通して、参照番号は、参照される要素間の対応を示すために再使用され得る。図面は、本明細書に記載される例示的な実施形態を図示するために提供され、本開示の範囲を限定することが意図されない。
【図面の簡単な説明】
【0005】
図1】クライアント装置と、音声認識サーバと、モデル記憶サーバとの間の例示的な相互作用を示す、分散音声認識システムが実装され得る例示的ネットワーク環境のブロック図である。
図2】様々なモジュールおよびデータストアを示す、例示的音声認識サーバのブロック図である。
図3】分散音声認識システムにおいて音声認識セッションを管理するための、例示的処理の流れ図である。
図4】分散音声認識システムにおいてモデルの事前キャッシュを利用するための、例示的処理の流れ図である。
図5A】クライアント装置と、音声認識サーバと、モデルキャッシュと、モデル記憶サーバとの間の例示的相互作用のブロック図である。
図5B】クライアント装置と、音声認識サーバと、モデルキャッシュと、モデル記憶サーバとの間の例示的相互作用のブロック図である。
【発明を実施するための形態】
【0006】
導入
一般的に記載して、本開示は、特殊化またはカスタマイズされた言語モデル、特殊化またはカスタマイズされた音響モデル、および総じて音声認識モデルと称される他のデータを含む、分散音声認識システムの動作を管理することに関する。音声認識システムは、音声認識モデルを使用して、ユーザの発話を転写または発話の可能性がある転写のリストに処理する。いくつかの音声認識システムは、多数のユーザに適用される一般化または基礎音声認識モデルを使用する。いくつかの場合、音声認識システムは、個人ユーザまたはユーザの集団に基礎モデルより正確な結果を提供するために、追加モデルを使用し得る。そのような追加モデルは、特定のユーザが典型的に使用する語彙を含んでも、または強調してもよく、あるいはそれらは、音声認識処理中に、特定のユーザの音声がデジタルで表される方法をより密接に整合させてもよい。しかしながら、追加モデル(および一般に音声認識モデル)は大量の記憶容量を消費し得るため、音声認識システムは、それらが、音声認識処理が行われる装置上にローカルで記憶し得るモデルの数において限定されている。更に、それらの大きいサイズのために、他の装置(例えば、記憶サーバ)からの追加モデルの検索は、ユーザによって知覚される実行に悪影響を与える。例えば、記憶サーバから大きい追加モデルを検索するために必要とされる時間は、ユーザが発話を話すことと結果を受信することとの間で経験する遅延を増加させる。
【0007】
本開示の態様は、音声認識を発話上に実行することにおける使用のための、追加の音声認識モデルの非同期検索に関する。音声認識モデルの検索が初期処理と干渉しないように、音声認識サーバまたはエンジンは、発話の処理を開始する前に、またはそれと平行して、データストアから音声認識モデルを要求し得る。例えば、マルチスレッドシステムにおいて、音声認識モデルの検索を管理するスレッドは、処理するスレッドを妨害しない。
【0008】
いくつかの実施形態において、音声認識システムは、音声認識を実行するための構成要素(例えば、音声認識サーバ)、および追加の音声認識モデルを記憶するための構成要素(例えば、長期記憶サーバ)を含む分散システムとして実装され得る。音声認識サーバは、ユーザから音声入力を受信し、記憶構成要素から、異なる程度にカスタマイズまたは特殊化された1つ以上の音声認識モデル(例えば、ユーザの性別のもの、ユーザの地域的アクセントのもの、特定のユーザのものなど)を検索し得る。音声認識サーバは、受信された音声入力を基礎音声認識モデルで処理する間にも、追加の音声認識モデルを検索し得る。いくつかの場合、追加モデルが要求される際、それらがネットワークを介して受信されるまで遅延が存在し得る。これは、転写を提供すること、またはユーザの発話に応答した動作を実行することにおける遅延を引き起こし得る。ユーザは、そのような遅延を、受容しがたいと考え得る。しかしながら、追加モデルが、満足のいく性能をユーザに依然として提供しながら、それらが使用され得るために十分に迅速に受信される場合(例えば、<100ms、<500msなどの遅延)、追加モデルは、音声認識の正確性を改良するために使用され得る。例えば、追加の音声認識モデルは、音声入力の基礎モデルでの処理を開始する前に受信されてもよく、そのような場合、追加の音声認識モデルは最初から使用され得る。別の例として、モデルは、音声入力の基礎モデルでの処理中、または処理が完了した後に到着してもよい。追加モデルは、そのような再処理が満足のいく性能をユーザに提供するために十分に迅速に行われ得る場合、音声入力または初期処理の結果を再処理するために使用され得る。
【0009】
処理前または処理中に追加の音声認識モデルを要求することに加えて、音声認識サーバは、追加の音声認識モデルを更新するための統計および他のデータを、非同期に要求し得る。追加の音声認識モデルは、音声認識サーバが発話を処理した後に更新され得る。追加の音声認識モデルを更新するために使用されるデータの量は、しばしば追加の音声認識モデル自体のデータの量より実質的に大きい。有利なことに、追加の音声認識モデルを更新するための統計および他のデータを非同期に要求することによって、追加の音声認識モデルが、統計および他のデータが受信されるのと同時に更新され得る。更新された音声認識モデルは、その後より正確、またはさもなければ良好な結果を提供するために再使用され得る。例えば、更新された音声認識モデルは、更新がそれに基づく現在の発話を再処理するために使用されてもよく、または更新された音声認識モデルは、後続する発話を処理するために使用されてもよく、またはその両方でもよい。
【0010】
本開示の追加の態様は、追加の音声認識モデルをキャッシュすることに関する。追加の音声認識モデルをキャッシュすることによって、それらは、後続して受信される発話の処理における使用のために、即時にまたは実質的により速くアクセスされることができ、発話の基礎音声認識モデルでの処理と実質的に同一量の時間で、より正確な結果を提供する。例えば、音声認識サーバは、クライアント装置から受信される発話に関する音声データを処理するために、追加の音声認識モデルを検索し得る。追加の音声認識モデルが、第1の発話を処理するために適時で到着するかどうかに関わらず、それらは、第2の発話に関する後続して受信される音声データを処理するために、キャッシュされ、使用され得る。
【0011】
本開示の更なる態様は、どの追加モデルが要求され得るか、およびそれらがいつ要求され得るかの予測に基づいて、追加の音声認識モデルを事前キャッシュすることに関する。例えば、音声認識システムとのユーザ相互作用は、音声認識システムの構成要素が、パターンを検出する、またはユーザが音声認識システムを使用する可能性がある将来の時間を予測することができるように、監視され得る。そのような使用の予期において、要求される可能性がある追加の音声認識モデルは、事前キャッシュされ得る(例えば、長期記憶から検索され、音声認識サーバまたは何らかのネットワークアクセス可能キャッシュ構成要素上に記憶される)。
【0012】
本開示に記載される実施形態の態様は、図示の目的のために、発話に関する音声データを受信し、音声データを処理するために追加の音声認識モデルを非同期に検索する音声認識サーバに注目するものの、当業者は、本明細書に開示される技術があらゆる数のソフトウェア工程または応用に適用され得ることを理解するであろう。例えば、ユーザのパーソナル携帯装置は、音声認識エンジンを含み、発話のローカル処理中に使用するための追加の音声認識モデルを非同期に要求し得る。本開示の様々な態様が、本開示を限定することではなく図示することが意図される、特定の実施例および実施形態に関して、これより記載される。
【0013】
例示的な実施例を参照して、ユーザは、音声命令を発するか、または別の様式で、携帯電話またはタブレットコンピュータなどのクライアント装置と口頭で相互作用することができる。クライアント装置は、分散自動音声認識(「分散ASR」)システムの一部として、ユーザの発話に関するデータをネットワークアクセス可能音声認識サーバに送信し得る。音声認識サーバは、音響モデルおよび言語モデルなどの様々な種類の音声認識モデルを使用して、発話を処理して、転写、またはさもなければユーザが言ったことを決定し得る。正確性を改良するために、モデルは、様々なレベルのユーザに対してカスタマイズされ得る。音声認識サーバは、基礎モデル、性別、年齢、地域的アクセント、用語などのモデルを使用し得る。音声認識モデルはまた、特定のユーザまたは特定の時間、曜日など(例えば、休日の用語の言語モデル)のためにカスタマイズされ得る。追加の音声認識モデルは大きくある可能性があり、結果として、音声認識サーバは、各追加モデルを記憶するのに十分な記憶容量を有さない可能性がある。追加の音声認識モデルを利用する分散ASRシステムは、音声認識エンジンが使用し得る各追加の音声認識モデルが、記憶され、必要に応じて音声認識エンジンに提供され得るように、追加モデルの長期記憶を実装し得る。
【0014】
分散ASRシステムについてのユーザ経験は、質(例えば、結果の正確性)および知覚性能(例えば、発話を話すことと結果を受信することとの間の待ち時間および経過時間)の両方の観点から定義され得る。分散ASRシステムは、できるだけ速く結果を返すよう勤める。しかしながら、分散および他のネットワークシステムに特有の待ち時間は、ユーザ経験に直接影響を与える。結果として、追加の音声認識モデルの長期記憶からの検索によって引き起こされるあらゆる追加の遅延は、不満足なユーザ経験につながり得る。
【0015】
追加の音声認識モデルの使用が分散ASRシステムに導入し得る、負の影響を最小化するために、追加モデルが非同期に要求され得る(例えば、追加の音声認識モデルの検索は、他のモデルでの音声認識工程の実行を妨害せず、逆もまた同様である)。例えば、音声認識サーバは追加モデルを要求し、平行して、または非同期で音声認識を基礎モデルで実行するために、マルチスレッド処理を利用し得る。発話または発話に関するデータが受信される際、音声認識サーバは話者の身分および/または話者の特徴(例えば、性別)を決定し得る。音声認識サーバは、発話の処理の前、平行して、または後続して追加の音声認識モデルを検索し得る。異なる種類の追加の音声認識モデルを検索することは、異なる待ち時間を有し得るため、音声認識サーバまたは分散ASRシステムのいくつかの他の構成要素は、任意の数の異なる追加モデルを要求し、モデルを使用し、ユーザ経験に悪影響を与えずに結果を返すために、適時に受信される最良のものを使用し得る。例えば、音声認識サーバは、個人ユーザのモデルおよびユーザの性別のモデルもまた要求し得る。性別のモデルが最初に受信される場合、音声認識サーバは、発話を性別特定的追加の音声認識モデルで処理することに進行し得る。しかしながら、特定のユーザのモデルが、不満足な遅延を引き起こすことなくそれを使用するために適時に受信される場合、音声認識サーバは、それが別のモデルでの音声認識処理を開始している、または完了している場合でも、そのよりカスタマイズされた追加モデルを使用し得る。
【0016】
いくつかの実施形態において、コンテンツサーバは、発話を再処理し得る(例えば、単一の発話上に音声認識を複数回実行するように構成されたマルチパスASRシステム)。音声認識サーバ、またはASRを実行するいくつかの他の装置は、利用可能な少なくとも1組の基礎音声認識モデルを有してもよく、または利用可能な少数の追加の選択肢(例えば、性別特定的音声認識モデル)を有してもよい。利用可能なモデル(例えば、基礎モデル)で第1の音声認識処理パスを行う後、追加モデルが適時に検索される場合、第2のパスが行われ得る。追加のまたはより特定的な追加の音声認識モデルが、第1のパスの後に返されない場合、結果はクライアント装置に返され得る。
【0017】
言語モデルなどの、多くのより大きい音声認識モデルについて、それを実時間の音声認識のために使用することができるように、十分に迅速に追加モデルを検索することは困難であり得る。追加の音声認識モデルをキャッシュすることは、それらがより迅速に検索されることを可能にする。例えば、任意のユーザ特定的または別の様式でカスタマイズされた追加の音声認識モデルは、大容量だが比較的遅い応答時間を有するデータストア内に記憶され得る。別のデータストアは、追加の音声認識モデルをより一層迅速に返すキャッシュとして使用され得る。キャッシュは、最近最も使われていない(「LRU」)基準に基づいて追加の音声認識モデルを終了させ得る。
【0018】
ユーザがクライアント装置に話す際、ASRシステムは、キャッシュからユーザ特定的音声認識モデルを積極的に要求し得る。キャッシュミスがある場合、ASRシステムは最良の利用可能モデル(例えば、音声認識サーバ上に記憶された基礎モデル、またはキャッシュ内で利用可能な異なる追加モデル)で進行し得る。キャッシュミスは、ユーザ特定的音声認識モデルがキャッシュに追加されることを引き起こすであろう。ユーザは、典型的に、短期間の複数の発話(例えば、2つ以上の発話の音声認識セッション)を処理するためにASRシステムを利用するため、あらゆる検索されたユーザ特定的モデルは、第1の相互作用以外の全てに利用可能であり得る。
【0019】
更に、分散ASRシステムは、分散ASRシステムとのユーザ相互作用に関するデータを記録し得る。そのようなデータは、パターンを検出する、および/またはユーザがいつ分散ASRシステムを使用する可能性があるかに関する予測を行うために使用され得る。ユーザ特定的または他の追加の音声認識モデルは、それらが予測された時間に利用可能であるように事前キャッシュされ得る。例えば、ユーザは、平日毎朝午前8:00頃に、職場へと運転しながら分散ASRシステムを使用し得る。そのようなパターンを検出した後、分散ASRシステムは、ユーザの追加モデルを、音声認識サーバ上またはネットワークキャッシュサーバ内に積極的にキャッシュし得る(例えば、7:30または7:55に)。ユーザが午前8:00頃に音声認識セッションを開始する際、追加モデルが即時に利用可能となり、基礎モデルでより正確な方法で、しかしさもなければ追加の音声認識モデルに関連付けられたであろう待ち時間または検索遅延なく、第1の発話を処理するために使用することができる。
【0020】
いくつかの場合、音響モデルまたは言語モデルの全体を検索するよりむしろ、特定のユーザのために基礎音響または言語モデルをカスタマイズするために、カスタマイズされた統計およびモデルの一部が検索され、使用され得る。例えば、分散ASRシステムは、制約付き最尤線形回帰(「CMLLR」)変換、声道長正規化(「VTLN」)伸縮係数、ケプストラル平均および分散、複数のモデルを補間するための重さおよびベクトル等を使用し得る。有利なことに、モデルのそのような部分は、伝達されるデータの量の観点から、それらが使用され得る音響または言語モデルより典型的に小さい。したがって、モデルのカスタマイズまたは特殊化された部分の検索は、基礎モデルの使用を通して達成され得るより正確な結果を提供しながら、検索時間をより低減し、追加の音響または言語モデル全体の検索より少ない影響をユーザ知覚性能に与え得る。
【0021】
更に、音声認識モデルおよびモデルの部分は、音声認識処理結果を使用して、更新される、または更にカスタマイズされ得る。モデルを更新するために、大きいデータセットが必要とされ得る。大きいデータセットの非同期検索は、音声認識モデルの非同期検索と同様に、ユーザ知覚性能に影響を与えずにデータセットを取得するために実装され得る。データセットが検索されると、それらは、追加の音声認識モデルおよびモデルの部分を更新するために使用され得る。更に、新しく更新されたモデルは、システム必要条件およびユーザ性能の期待に応じて、発話を処理する、または再処理するために、即時に使用され得る。
【0022】
いくつかの実施形態において、本明細書に記載される技術は、ASRモデルの代わり、またはそれに加えて、追加の特殊化またはカスタマイズされた自然言語理解(「NLU」)モデルを検索するために使用され得る。例示的に、追加のNLUモデル(例えば、意図モデル、固有表現モデル、および地名辞典)は、基礎NLUモデルを使用してのテキストの処理と非同期に、または平行して、またはNLU処理の前に発生するASR処理中に要求され得る。追加のNLUモデルが検索される、または他の方法で利用可能になると、それらは、NLU結果を再計算するために使用され得るか、またはそれらは後続するNLU処理中に使用され得る。
【0023】
分散ASRシステム環境
分散ASRシステムにおける追加の音声認識モデルの使用を管理するための工程の実施形態を詳細に記載する前に、工程が実装され得る例示的環境が記載される。図1は、クライアント装置102、ASRサーバ104、およびASRモデル記憶サーバ106を含むネットワーク環境を図示する。
【0024】
クライアント装置102は、幅広い電子機器に対応し得る。いくつかの実施形態において、クライアント装置102は、1つ以上のプロセッサ、およびプロセッサによって実行されるソフトウェアアプリケーションを含むメモリを含む携帯装置であり得る。クライアント装置102は、音声認識を実行するための音声入力を受容するためのマイクロフォンまたは他の音声入力装置を含み得る。例示的に、クライアント装置102は、携帯電話、パーソナルデジタル端末(「PDA」)、携帯ゲーム装置、メディアプレーヤー、電子書籍リーダー、タブレットコンピュータ、ラップトップコンピュータ等であり得る。クライアント装置102のソフトウェアは、無線通信ネットワーク上の、または他のコンピュータ装置との直接の通信を確立するための構成要素を含み得る。
【0025】
ASRサーバ104は、クライアント装置102から受信されるユーザの発話上に、自動音声認識を実行し得る。ASRサーバ104は、通信ネットワークを介して通信するように構成された任意のコンピュータシステムであり得る。例えば、ASRサーバ104は、複数のサーバコンピュータ装置、デスクトップコンピュータ装置、メインフレームコンピュータ等を含み得る。いくつかの実施形態において、ASRサーバ104は、音声認識を発話上に実行するように構成されたアプリケーションサーバコンピュータ装置、ならびに記録および音声認識モデルを記憶するように構成されたデータベースサーバコンピュータ装置などの、物理的または理論的にグループ化されたいくつかの装置を含み得る。いくつかの実施形態において、ASRサーバ104は、単一の装置上に組み合わされた様々なモジュールおよび構成要素、単一のモジュールまたは構成要素の複数の例などを含み得る。
【0026】
図1に図示されるASRモデル記憶サーバ106は、ネットワークを介して、音声認識モデルを記憶し、モデルについての要求を行うための1つ以上のコンピュータ装置の論理結合に対応し得る。例えば、ASRモデル記憶サーバ106は、ASRサーバ104から音声認識モデルについての要求を取得し、処理するための、1つ以上のサーバコンピュータ装置に対応するデータベースサーバまたは記憶部品を含み得る。
【0027】
ASRサーバ104は、通信ネットワークを介して、クライアント装置102および/またはASRモデル記憶サーバ106と通信し得る。ネットワークは、場合によっては、インターネットなどの様々な異なる個人によって操作される、連結されたネットワークの公開アクセス可能なネットワークであり得る。他の実施形態において、ネットワークは、それぞれがインターネットへの、および/またはそこからのアクセスを有する、プライベートネットワーク、パーソナルエリアネットワーク、ローカルエリアネットワーク、広域ネットワーク、有線ネットワーク、衛星ネットワークなど、またはこれらのいくつかの組み合わせを含み得る。例えば、ASRサーバ104およびASRモデル記憶サーバ106は、単一のデータセンター内に位置してもよく、法人または大学ネットワークなどのプライベートネットワークを介して通信してもよい。クライアント装置102は、インターネットを介してASRサーバ104と通信し得る。クライアント装置102は、有線またはWiFi接続を介して、または携帯電話ネットワーク(例えば、ロングタームエボリューション、すなわちLTEネットワーク)を介してインターネットへのアクセスを有し得る。いくつかの実施形態において、クライアント装置102は、ASRモデル記憶サーバ106に直接通信し得る。
【0028】
いくつかの実施形態において、分散ASRシステムによって提供される機能およびサービスは、通信ネットワークを介して消費可能なウェブサービスとして実装され得る。更なる実施形態において、分散ASRシステムは、ホストコンピュータ環境において実装されるもう1つの仮想機械によって提供される。ホストコンピュータ環境は、コンピュータ、ネットワーク、および/または記憶装置を含み得る、1つ以上の迅速に設定され、解放される計算資源を含み得る。ホストコンピュータ環境はまた、クラウドコンピュータ環境とも称され得る。
【0029】
動作中、クライアント装置102は、(A)でユーザから音声入力を受信し得る。クライアント装置102は、音声入力を受信するためにユーザによって起動されるアプリケーションソフトウェアを実行し得る。クライアント装置102は、一体型マイクロフォン、音声入力ジャック、または何らかの他の音声入力インターフェースを介して音声入力を受信し得る。いくつかの実施形態において、クライアント装置102は、ユーザが話し始める際、ユーザによる音声入力または音声認識機能の起動なしでも音声入力を自動的に受容し得る。
【0030】
(B)でクライアント装置102は、音声入力についての音声信号または音声データを、ASRサーバ104に送信する。例えば、クライアント装置102は、インターネットを介して、ASRサーバ104または分散ASRシステムの何らかの他の構成要素(例えば、管理要素)との直接の接続を確立し得る。例示的に、複数のASRサーバ104を有する分散ASRシステムにおいて、管理要素は、複数のASRサーバ104にわたる処理負荷を平衡化するために実装され得る。クライアント装置102(またはそのユーザ)は、音声認識セッションの間中、特定のASRサーバ104に割り当てられても、または別の様式でそれに接続されてもよい。いくつかの実施形態において、音声認識セッションは、所与の期間内、または近い時間的近接性内での処理のためにASRサーバ104に送信される複数の発話を含み得る。
【0031】
音声入力についての音声入力またはデータの受信時、ASRサーバ104は、(C)でASRモデル記憶サーバ106からの様々な追加の音声認識モデルの検索を開始し得る。例えば、ASRサーバ104は、ユーザの性別、地域的アクセントなどの、発話を行ったユーザに関するデータにアクセスまたはそれを受信し得る。データは、ユーザプロファイルに記憶されてもよく、音声データと共に送信される、または何らかの他の方法において取得される。ASRサーバ104は、その後、基礎モデルより正確な結果を生成するために使用され得る1つ以上の追加の音声認識モデルまたは統計のセット、またはASRサーバ104が即時アクセスを有する他のモデルを特定し得る。追加の音声認識モデルへの要求は、ASRモデル記憶サーバ106に送信され得る。
【0032】
(D)でASRサーバ104は、ASRサーバ104が現在アクセスを有する最良の音声認識モデル、統計、および他のデータを使用して、発話の処理を開始し得る。いくつかの実施形態において、ASRサーバ104は、基礎音声認識モデルを記憶し得る。更に、ASRサーバ104は、性別に基づくモデルなどのしばしば使用される様々な追加モデルを記憶し得る。音声認識モデルは大量の記憶容量を消費し得るため、典型的な実装例において、ASRサーバ104は、少数の最も基礎的な、または頻繁に使用されるモデルのみを記憶し得る。
【0033】
ASRサーバ104が、それが現在アクセスを有するモデルを使用して発話を処理する間、(C)で要求された追加モデルおよび他のデータが(E)で受信され得る。ASRサーバ104は追加モデルを非同期に要求し、他のモデルでの処理を開始することを進行したため、追加モデルは、ASRサーバ104が他のモデルでの発話の処理を完了する中、または後に到着し得る。
【0034】
追加モデルが受信されると、それらは(F)で初期結果を再処理する、または再記録するために使用され得る。多くの場合、第1のパス処理が、おそらく再記録される可能性がある結果を狭めたため、再記録は、初期第1のパス音声認識処理よりかなり速く実行され得る。結果として、初期結果は、より適当なモデルで、実質的な量の遅延または待ち時間をその発話の全体の音声認識処理に追加することなく、再記録され得る。再記録が不満足な性能につながる、または結果の正確性を顕著に改良しないことが決定される場合、あるいはモデルがASRモデル記憶サーバ106から適時で受信されない場合、初期結果は、(G)でクライアント装置102に送信され得る。さもなければ、結果が再記録される場合、再記録された結果が(G)でクライアント装置102に送信され得る。
【0035】
ここで、図2を参照すると、例示的ASRサーバ104が記載される。ASRサーバ104は、ASRエンジン140、ASRモデル更新モジュール142、管理モジュール144、基礎モデルデータストア146、およびモデルキャッシュ148を含み得る。ASRサーバ104のモジュール、構成要素、およびデータストアのうちのそれぞれは別個の装置として実装されてもよく、または様々な個別のモジュール、構成要素、およびデータストアは様々な組み合わせで単一の装置に組み合わされてもよい。
【0036】
ASRエンジン140は、当業者によって理解されるように、入力(例えば、話される発話に関する音声入力またはデータのストリーム)を受信し、様々な音声認識モデルおよび他のデータを使用して、最も可能性がある発話の転写、または最も可能性がある発話の転写のリストを決定し得る。ASRモデル更新モジュール142は、ASRエンジン140からの結果および他のデータを使用して、追加モデル、より正確な結果を生成するために使用され得るモデルの部分を更新し得る。例えば、ASRエンジン140は、複数の音声認識セッションの過程で発展された、モデルのユーザ特定的または別の様式でカスタマイズされた部分のセットを使用し得る。例示的に、ASRエンジン140によって使用されるモデルの部分は、制約付き最尤線形回帰(「CMLLR」)変換、声道長正規化(「VTLN」)伸縮係数、ケプストラル平均および分散、複数のモデルを補間するための重さおよびベクトル等を含み得る。有利なことに、モデルのそのような部分は、完全な追加の音声認識モデル(例えば、言語モデルまたは音響モデル)と比較して、記憶、伝達、および使用中に、比較的少量の容量、帯域幅、処理容量、および他の資源を消費する。更に、モデルのそのような部分は、基礎音声認識モデル単独を使用することと比較して、依然として改良された正確性を音声認識工程に提供する。
【0037】
最も最近の結果に基づいてモデルおよびモデルの部分を更新することは、大きいデータのセット(例えば、音響モデルが計算される、基礎データセット)へのアクセスを必要とし得る。ASRモデル更新モジュール142、またはASRサーバ104の他のモジュールまたは構成要素は、ASRエンジン140による音声認識処理中または後に、大きいデータセットを非同期に検索する。データセットが受信された際、それは、追加のユーザ特定的または別の様式でカスタマイズされたモデルおよびモデルの部分を更新するために使用され得る。その間、モデルおよびモデルの部分は、ASR処理中使用され続け得る。
【0038】
管理モジュール144は、ASRエンジン140の進展、および追加の音声認識モデルの検索を監視し得る。管理モジュール144が、追加モデル(またはモデルの部分)の受信を待つことが不満足な性能遅延を引き起こさないことを決定する場合、管理モジュール144は、ASRエンジン140に、ASRエンジン140が追加モデルで結果を再記録する機会を有するまでクライアント装置102に結果を提供することを控えさせ得る。しかしながら、管理モジュール144が、追加モデルの受信を待つことが不満足な性能遅延を引き起こす、または結果の正確性を顕著に改良しないことを決定する場合、管理モジュール144は、初期結果が最終結果としてクライアント装置102に提供されることを可能にし得る。
【0039】
基礎モデルデータストア146は、よりカスタマイズされた、特殊化された、または別の様式のより正確な追加モデルの不在下で、ASRエンジン140によって使用される基礎音響モデルおよび言語モデルを記憶し得る。そのような基礎モデルは、より正確な結果を提供するために、ユーザ特定的統計およびモデルの部分によってカスタマイズされ得る。いくつかの実施形態において、最も頻繁に使用される、または広く適切な追加モデル(例えば、性別特定的モデル)のうちの1つ以上は、必要な際に、それらが別個のASRモデル記憶サーバ106から検索される必要がないように、ASRサーバ104の基礎モデルデータストア146内に記憶され得る。
【0040】
モデルキャッシュ148は、音声認識処理における使用のために検索される、追加モデルおよびデータを記憶するために使用され得る。例えば、キャッシュは、所定の、または動的に決定される量のデータを記憶するために構成され得る。キャッシュは、新しく受信されるモデルのための場所を作るために、最近使用または要求されていないそれらのモデルを削除、終了、または解放する一方で、最も最近検索された、または最も最近検索されたモデルのうちのできるだけ多くを記憶し得る。有効期間(「TTL」)および最近最も使われていない(「LRU」)基準の使用を含む、様々なキャッシュ技術がモデルキャッシュ148に適用され得る。
【0041】
モデル検索を管理するための工程
ここで、図3を参照すると、音声認識モデルの非同期検索、およびこれらのモデルの使用を管理するためのサンプル工程300が記載される。有利なことに、ASRサーバ104は、工程300を使用して、そうすることが音声認識結果の正確性を改良し、知覚性能に悪影響を与えない場合、追加の音声認識モデルおよび他のデータを利用し得る。
【0042】
工程300は、ブロック302で開始する。工程300は、ASRセッションの開始時に自動的に開始し得る。工程300は、負荷平衡化管理部または個別のASRサーバ104などの分散ASRシステムのコンピュータシステムのコンピュータ可読媒体(1つ以上のディスクドライブなど)上に記憶された実行可能なプログラム命令のセットにおいて実施され得る。工程300が開始する際、実行可能なプログラム命令は、RAMなどのメモリ内に読み込まれ、コンピュータシステムの1つ以上のプロセッサによって実行され得る。
【0043】
ブロック304で、ASRセッションは、特定のASRサーバ104に割り当てられ得る。追加の音声認識モデルの検索のため、同一のユーザまたは同一のクライアント装置102からのASR処理のための後続する要求は、ASRセッションが終了するような時間(例えば、ある期間の経過後、または何らかの他の誘発事象の発生)まで同一のASRサーバ104に送信され得る。ASRサーバ104は、ユーザの性別、年齢、地域的アクセント、またはユーザの身分などのユーザに関するデータにアクセス、またはそれを取得し得る。この人口統計学または身分のデータを使用して、ASRサーバ104は、ブロック306で追加の音声認識モデルの検索を開始し得る。前述のように、いくつかの実施形態において、ASRサーバ104は、現在のユーザのために、完全な追加の音声認識モデルと比較すると、モデルの部分を検索し得る。そのような場合、ASRサーバ104はまた、ASR処理の結果に基づいて、モデルおよびモデルの部分を更新するために使用され得るブロック320でデータセット(複数可)の検索を開始し得る。いくつかの実施形態において、モデルの部分を更新するためのデータの検索は、資源がそのために利用可能である際、およびそのような検索および更新がASRセッションの処理と干渉しない際、データセットが検索され、更新されるように、ASR処理と非同期に行われる。
【0044】
決定ブロック308において、ASRサーバ104は、要求された追加の音声認識モデルが、即時の使用に利用可能であるかどうかを決定し得る。例えば、要求されたモデルは、下記に詳述されるように、モデルキャッシュデータストア148において、または分散ASRシステムの別個のモデルキャッシュサーバにおいて利用可能であり得る。そのような場合、キャッシュされた追加モデルは、ブロック314での初期ASR処理中に、ASRサーバ104に利用可能な任意の基礎モデル(例えば、基礎モデルデータストア146内のモデル)の使用の有無のいずれかでアクセスされ、使用され得る。どの追加の音声認識モデルも利用可能でない場合、またはそれにもかかわらずASRサーバ104が基礎音声認識モデルを使用する場合、ASRサーバ104はブロック310で初期ASR処理パス中に基礎モデルを使用し得る。いくつかの実施形態において、要求された追加の音声認識モデルはキャッシュされ得るが、キャッシュからのモデルの検索における待ち時間のため、ASRサーバ104は基礎音声認識モデルを使用するであろう。
【0045】
基礎音声認識モデルでの初期ASR処理パスの後に到達される決定ブロック312で、ASRサーバ104は、追加モデルが利用可能になっているかどうかを決定し得る。そうである場合、工程300は、ASRサーバ104が追加の音声認識モデルで第2のASRパス(例えば、初期結果を再記録する)を実行し得る、ブロック314に進行し得る。更に、任意の新しく受信された追加の音声認識モデルがキャッシュされ得る。
【0046】
さもなければ、追加モデルがまだ受信されていない場合、あるいは追加モデルの使用が不満足な性能遅延を引き起こすこと、または正確性を顕著に改良しないことが決定される場合、工程300は、ブロック316に進行し得る。
【0047】
ブロック316で、ASRサーバ104は、最終結果をクライアント装置102に送信し得る。いくつかの実施形態において、ASRサーバ104は、結果をクライアント装置102に送信するよりむしろ、何らかの動作を実行しても、または別の装置にある動作を実行させてもよい。例えば、ASR工程からの結果は、ユーザの発話からユーザの意図を決定するように構成された自然言語理解(「NLU」)要素に提供され得る。ユーザの意図(例えば、道順を得る、航空券を予約する、音声ダイヤルを開始する)に基づいて、ASRサーバ104は何らかの動作を実行し得る。
【0048】
クライアント装置102に結果を送信する(または、何らかの他の動作の実行を引き起こす)後、ASRサーバ104は、決定ブロック318で同一のASRセッション中に処理するための追加の発話を待ち得る。別の発話が受信される場合、工程300は、ブロック306に戻り得る。さもなければ、ある期間別の発話が受信されない場合、または別の誘発事象が発生する(例えば、クライアント装置102の電源を切ることなどによって、ユーザがASRセッションを積極的に終了する)場合、工程300はブロック324で終了し得る。
【0049】
追加の発話を待つことに加えて、ASRモデル更新モジュール142またはASRサーバ104のいくつかの他の構成要素は、ASR処理の結果に基づいてブロック322でデータセットを更新し得る。更新工程は、ブロック320で非同期に検索されたデータセットを利用し得る。その後、更新されたデータセットは、例えば、キャッシュされても、ASRモデル記憶サーバ106に送信されても、二次ASR処理パス中に使用されてもよい。いくつかの実施形態において、追加モデルまたはモデルの部分は、ブロック316と平行して、またはブロック314の直後などのようにデータセットを更新するためのASR結果が利用可能になるとすぐ、更新されたデータセットに基づいて更新または再計算され得る。
【0050】
キャッシュモデルの工程および基本設計概念
ここで、図4を参照すると、ユーザ活動の予測に基づいて追加の音声認識モデルを事前キャッシュするためのサンプル工程400が記載される。有利なことに、工程400は、以前のユーザ活動を分析し、ユーザがいつ分散ASRシステムを利用する可能性があるかを予測し、それらが予測された時間に即時または実質的に即時の使用のために準備できているように追加モデルを事前キャッシュするために使用され得る。
【0051】
工程400はブロック402で開始する。工程400は、ASRサーバ104または分散ASRシステムの何らかの他の構成要素の電源が入る際、自動的に開始してもよく、あるいはそれは手動で開始されてもよい。工程400は、分散ASRシステムが関連するコンピュータシステムのコンピュータ可読媒体(1つ以上のディスクドライブなど)上に記憶された実行可能なプログラム命令のセットにおいて実施され得る。工程400が開始する際、実行可能なプログラム命令は、RAMなどのメモリ内に読み込まれ、コンピュータシステムの1つ以上のプロセッサによって実行され得る。
【0052】
ブロック404で、前述のように、分散ASRシステムは音声認識セッションを処理し得る。ブロック406で、特定のユーザのASRセッションに関する使用データは、ASRセッションが処理される際に記録され得る。例えば、音声認識セッションをホストするASRサーバ104の管理モジュール144は、ASR要求の日付および時間、結果の内容、要求の主題または文脈等を含む、ユーザまたはクライアント装置102に関するデータを記録し得る。
【0053】
ブロック408で、管理モジュール144あるいは分散ASRシステムの何らかの他のモジュールまたは構成要素は、記録されたデータにおけるパターンを検出すること、またはユーザがいつ分散ASRシステムにアクセスする可能性があるかに関する予測を決定すすることができる。例えば、特定のユーザは、平日の朝の午前8:00またはその頃の処理のために、音声データを分散ASRシステムに定期的に送信し得る。分散ASRシステムの構成要素は、そのようなパターンを検出し、それに応じて、ユーザが次の平日の朝の午前8:00に再度音声データを送信することを予測し得る。更に、ユーザは、これらの午前8:00のセッション中に、全地球測位システム(「GPS」)の道順または音楽再生に関する音声命令を定期的に送信し得る。予測は、そのような詳細を含めることによってより特定的になり得る。そのような活動を標的とする追加の音声認識モデルは、詳細予測に基づいてキャッシュされ得る。
【0054】
ブロック410で、分散ASRシステムは、次の平日の朝8:00の直前に、ユーザがASRセッションを開始することを予期してユーザの追加モデルを事前キャッシュし得る。例えば、ユーザは、ユーザがASRセッションを開始する前に、午前7:55または午前7:59に特定のASRサーバ104に積極的に割り当てられ得る。ユーザの追加モデルは、ユーザがセッションを開始する際それらが即時に使用され得るように、割り当てられたASRサーバ104で事前キャッシュされ得る。例えば、モデルは、ASRサーバ104のモデルキャッシュ148内に記憶され得る。事前キャッシュのために選択されたモデルは、ユーザの人口統計学または身分、予測されるセッションの主題、これらのいくつかの組み合わせなどに基づいて選択され得る。いくつかの実施形態において、下記に詳述されるように、追加モデルは、ASRモデル記憶サーバ106とASRサーバ104との間の中間キャッシュでキャッシュされ得る。そのような場合、複数のサーバが中間キャッシュからキャッシュされたモデルを検索し得るため、ユーザは特定のASRサーバ104に積極的に割り当てられなくてもよい。
【0055】
いくつかの実施形態において、追加モデルがキャッシュされるべき時間は、特定の平均の予測またはアクセスの可能性がある時間よりむしろ、ユーザの以前のアクセス時間の分散に基づいて計算され得る。計算は、追加モデルが、ユーザの以前のまたは予測されるアクセス時間の閾値または割合に先行する時間に、キャッシュされることにつながる時間が選択されるようになされ得る。上記の例に戻ると、ユーザは、典型的に8:00頃にASRセッションを開始し得るが、時間の実際の分散は、午前7:30〜午前8:30まで延在する。管理モジュール144は、追加モデルを午前7:30にキャッシュし、その時間にユーザを特定のASRサーバ104に割り当てることが、追加モデルがユーザの「午前8:00」ASRセッションのうちの90%または99%で利用可能であることにつながることを決定し得る。
【0056】
ブロック412で、ユーザは、分散ASRシステムでASRセッションを開始し得る。負荷平衡化要素、または分散ASRシステムの何らかの他の構成要素は、ユーザが、セッションについて、特定のASRサーバ104に既に関連付けられていることを決定することができ、キャッシュが期限切れとなっていない場合または閾値期間の経過後、予想外にもユーザがASRセッションを開始していない場合、発話データは積極的に割り当てられたASRサーバ104に送信され得る。例えば、ユーザが午前7:30〜午前8:30の間の時間にセッションを開始する場合、ユーザは、積極的に割り当てられたASRサーバ104に接続し、事前キャッシュの利益を実現し得る。しかしながら、ユーザが午前9:00までセッションを開始しない場合、またはより最近要求または使用されたモデルのための場所を作るために、キャッシュされたモデルが解放された場合、例えば、図3に関して前述されるように、ユーザのASRセッションは、任意の他のユーザのASRセッションとして処理され得る。
【0057】
いくつかの実施形態において、音声認識モデルは、最近のユーザ相互作用または環境要因に基づいて、断定的に読み込まれても、事前キャッシュされてもよい。例えば、クライアント装置102は、マイクロフォンからの入力を監視することができ、装置との物理的な相互作用なく(例えば、ボタンを押すこと、またはタッチスクリーンと相互作用することなく)ASRセッションを開始するために、ユーザによって話される特定の語または語句を認識するように構成される。いくつかの場合、ASRセッションの開始を示す語または語句がユーザによって発話されたかどうかを決定するために、マイクロフォンからの音声入力は、特定の条件が満たされる(例えば、予備分析は、それが環境騒音とは対照的に発話であることを示す)際、分散ASRシステムに送信され得る。いくつかの場合、部屋に入るユーザはクライアント装置102にすぐに話し得るため、クライアント装置102はユーザの存在の部屋を監視し得る。クライアント装置102が(例えば、感知器を使用して、ビデオ信号上への画像処理を使用して、または音声信号上への信号処理を使用して)ユーザの存在を検出する際、ユーザがクライアント装置102での音声認識をすぐに開始し得ることを示すメッセージが分散ASRシステムに送信され得る。これらの、および他の場合、追加の音声認識モデルは、完全な発話が処理のために分散ASRシステムに送信される前に、ユーザのために読み込まれ得る。
【0058】
図5Aおよび5Bは、分散ASRシステム110における多段ASRモデル記憶およびキャッシュのための例示的な基本設計概念を示す。分散ASRシステム110は、複数のASRサーバ104a、104b、長期ASRモデル記憶サーバ106、および高速ASRモデルキャッシュ108を含み得る。ASRサーバ104a、104bは、物理的近接性で、または通信を交換するために必要とされる時間の量またはネットワークホップの数の観点からのいずれかで測定される、それらがASRモデル記憶サーバ108に対するより、高速ASRモデルキャッシュ108の近くに位置し得る。更に、ASRモデルキャッシュ108は、ASRモデル記憶サーバ106より少ない容量であるが、より速い性能を提供する異なるハードウェアを利用し得る。いくつかの実施形態において、分散ASRシステム110は、毎nASRサーバ104(nは任意の数であり得る)に対する1つのASRモデルキャッシュ108などの複数のASRモデルキャッシュ108を含み得る。
【0059】
クライアント装置102aは、(A)での処理のために、音声データを分散ASRシステム110に送信し得る。追加の音声認識モデルに対する要求は、(B)でASRサーバ104aから、ASRモデル記憶サーバ106の代わりにASRモデルキャッシュ108に対してなされ得る。ASRモデルキャッシュ108が要求されたモデルを利用可能に有している場合、キャッシュされたモデルは、それが長期ASRモデル記憶サーバ106から音声認識を検索するのにかかるより有意に速く、ASRサーバ104aに返され得る。ASRモデルキャッシュ108が要求されたモデルを有していない場合、ASRモデルキャッシュ108は、(C)でASRモデル記憶サーバ106から要求されたモデルを検索し、(D)で音声認識モデルの複製をキャッシュし、(E)で要求するASRサーバ104aに複製を転送し得る。様々なキャッシュ技術が、有効期間(「TTL」)および最近最も使われていない(「LRU」)基準の使用を含む、ASRモデルキャッシュ108によって適用され得る。ASRサーバ104aは、(F)で結果をクライアント装置102aに送信してもよく、またはASR結果に基づいて何らかの動作を実行してもよい。
【0060】
有利なことに、新しくキャッシュされた音声認識モデルに対する後続する要求は、ASRモデル記憶サーバ108からよりむしろ、ASRモデルキャッシュ108から行われ得る。例えば、クライアント装置102aは、音声データを同一のASRサーバ104a、または異なるASRサーバ104bに提出してもよく、どちらの場合も、ASRモデル記憶サーバ106からの検索を必要とすることなく、追加の音声認識モデルはASRモデルキャッシュ108から検索され得る。別の例として、音声データは、異なるクライアント装置102bから受信され、同一のASRサーバ104aまたは異なるASRサーバ104bによって処理され得る。図5Bに見られるように、第2のクライアント装置102bは、(G)で音声データを分散ASRシステム110に送信し得る。第2のASRサーバ104bは、音声データを処理することができ、(H)でASRモデルキャッシュ108から同一の追加の音声認識モデルを要求する。モデルは以前にキャッシュされているため、要求されたモデルは、(I)でASRモデル記憶サーバ106からそれらを検索することなく、ASRサーバ104Bに返され得る。ASRサーバ104bは、(J)で結果をクライアント装置102bに送信しても、またはASR結果に基づいて何らかの動作を実行してもよい。
【0061】
用語
実施形態に応じて、本明細書に記載されるいかなる工程またはアルゴリズムの特定の活動、事象、または機能も、異なる順序で実行されることができ、追加、結合、または完全に除外されることができる(例えば、記載される動作または事象の全てが、アルゴリズムの実行に必要ではない)。更に、実施形態において、動作または事象は、連続的によりむしろ、同時に、例えば、マルチスレッド処理、割り込み処理、あるいは複数のプロセッサまたはプロセッサコアを通して、または他の平行基本設計概念上で実行され得る。
【0062】
本明細書に開示される実施形態に関連して記載される、様々な例示的論理的ブロック、モジュール、手順およびアルゴリズム段階は、電子ハードウェア、コンピュータソフトウェア、またはその両方の組み合わせとして実装され得る。ハードウェアおよびソフトウェアのこの互換性を明確に図示するために、様々な例示的構成要素、ブロック、モジュールおよび段階が、一般にそれらの機能性の観点から以上に記載されている。そのような機能性が、ハードウェアまたはソフトウェアとして実装されるかどうかは、特定のアプリケーションおよび全体のシステムに課される設計制約に依存する。記載される機能性は、各特定のアプリケーションのための異なる方法において実装され得るが、そのような実装決定は、本開示の範囲からの逸脱を引き起こすと解釈されるべきではない。
【0063】
本明細書に開示される実施形態に関連して記載される方法、工程、手順、またはアルゴリズムの段階は、直接ハードウェア内で、プロセッサによって実行されるソフトウェアモジュール内で、またはこの2つの組み合わせにおいて実施され得る。ソフトウェアモジュールは、RAMメモリ、フラッシュメモリ、ROMメモリ、EPROMメモリ、EEPROMメモリ、レジスタ、ハードディスク、リムーバブルディスク、CD−ROM、または非一時的コンピュータ可読記憶媒体の任意の他の形態内に存在し得る。例示的な記憶媒体は、プロセッサが記憶媒体から情報を読み取れる、およびそこに情報を書き込めるように、プロセッサに結合され得る。代替手段において、記憶媒体は、プロセッサに不可欠であり得る。プロセッサおよび記憶媒体は、ASIC内に存在し得る。ASICは、ユーザ端末内に存在し得る。代替手段において、プロセッサおよび記憶媒体は、別々の構成要素としてユーザ端末内に存在し得る。
【0064】
数ある中でも、「できる」、「できる」、「してもよい」、「し得る」、「例えば」等の、本明細書で使用される条件語は、別途具体的に述べられない、または使用される文脈内で別途理解されない限り、一般に、他の実施形態が含まない一方で、特定の実施形態は特定の特性、要素、および/または段階を含むことを伝えることが意図される。したがって、そのような条件語は、一般に、特性、要素、および/または段階が1つ以上の実施形態に何としても必要であること、あるいは1つ以上の実施形態が、筆者の情報提供または促進の有無に関わらず、これらの特性、要素、および/または段階が任意の特定の実施形態において含まれる、または実行されるべきであるかどうかを決定するための論理を必然的に含むことを含意することが意図されない。「含む(comprising)」、「含む(including)」、「有する」等の用語は同義であり、無制限な方法で包括的に使用され、追加の要素、特性、活動、動作などを排除しない。また、「または」という用語は、(その排他的な意味ではなく)その包括的な意味で使用されて、例えば、要素のリストを接続するために使用される際、「または」という用語は、そのリスト内の要素のうちの1つ、いくつか、または全てを意味する。
【0065】
「X、Y、およびZのうちの少なくとも1つ」という語句などの接続語は、特に別段に述べられない限り、項目、用語などが、X、Y、またはZ、またはこれらの組み合わせのいずれかであり得ることを伝えるために、一般に使用される文脈で理解されるものとする。したがって、そのような接続語は、特定の実施形態がXのうちの少なくとも1つ、Yのうちの少なくとも1つ、およびZのうちの少なくとも1つがそれぞれ存在することを必要とすることを含意することが一般に意図されない。
【0066】
以上の詳述が、様々な実施形態に適用されるような新規の特性を示し、記載し、指摘している一方で、図示される装置またはアルゴリズムの形態および詳細における様々な省略、代用、および変更が、本開示の精神から逸脱することなくなされ得ることが理解され得る。認識され得るように、本明細書に記載される発明の特定の実施形態は、いくつかの特性は他とは別個に使用または実行され得るため、本明細書に説明される特性および利益の全てを提供しない形態内で実施され得る。本明細書に開示される特定の発明の範囲は、前述の記載によってよりむしろ添付の特許請求の範囲によって示される。特許請求の範囲の等価性の意味および範囲内にある全ての変更は、それらの範囲内に包含されるべきである。
【0067】
付記:
1.実行可能な命令を記憶するコンピュータ可読メモリと、
該コンピュータ可読メモリと通信する1つ以上のプロセッサであって、該実行可能な命令によって、
クライアント装置から、ユーザの発話を含む音声データを受信することと、
追加の音声認識モデルが利用可能でないことを決定することと、
第1の音声認識処理を、該音声データ上に基礎音声認識モデルを使用して実行し、第1の音声認識結果を生成することと、
ネットワークアクセス可能なデータストアから該追加の音声認識モデルを要求することであって、該第1の音声認識処理の完了前に開始される、要求することと、
該ネットワークアクセス可能なデータストアから該追加の音声認識モデルを受信することと、
第2の音声認識処理を、該追加の音声認識モデルを使用して、かつ該音声データまたは該音声認識結果のうちの少なくとも1つを使用して実行することと、
該第2の音声認識処理に少なくとも一部基づく応答を、該クライアント装置に送信することと、を行うようにプログラムされた、1つ以上のプロセッサと、を備える、システム。
2.該基礎音声認識モデルが、一般音響モデル、性別特定的音響モデル、または一般言語モデルのうちの少なくとも1つを含み、該追加の音声認識モデルが、該ユーザの発話に関連するユーザの特徴に少なくとも一部基づいて選択される、付記1に記載のシステム。
3.該1つ以上のプロセッサが、該実行可能な命令によって、
該クライアント装置から、第2のユーザの発話を含む第2の音声データを受信することと、
該追加の音声認識モデルが利用可能であることを決定することと、
音声認識処理を、該第2の音声データ上に該追加の音声認識モデルを使用して実行することと、を行うように更にプログラムされている、付記1に記載のシステム。
4.該1つ以上のプロセッサが、該実行可能な命令によって、マルチスレッド処理を使用して、該第1の音声認識処理の実行と平行して、該追加の音声認識モデルを検索するように更にプログラムされている、付記1に記載のシステム。
5.該1つ以上のプロセッサが、該実行可能な命令によって、該追加の音声認識モデルをキャッシュするように更にプログラムされている、付記1に記載のシステム。
6.特定のコンピュータ実行可能な命令で構成された1つ以上のコンピュータ装置の制御下で、
第1の音声処理を、ユーザの発話に関する音声データ上に実行して、音声処理結果を生成することと、
ネットワークアクセス可能なデータストアから音声処理データを要求することであって、該第1の音声処理の完了前に開始される、要求することと、
該ネットワークアクセス可能なデータストアから該音声処理データを受信することと、
第2の音声処理を、該音声処理データ、および該音声データまたは該音声処理結果のうちの少なくとも1つを使用して実行することと、を含む、コンピュータ実装方法。
7.該ユーザの特徴に少なくとも一部基づいて、要求する音声処理データを選択することを更に含む、付記6に記載のコンピュータ実装方法。
8.該ユーザの該特徴が、該ユーザの性別、年齢、地域的アクセント、または身分を含む、付記7に記載のコンピュータ実装方法。
9.該音声処理データが、音響モデル、言語モデル、言語モデル統計、制約付き最尤線形回帰(「CMLLR」)変換、声道長正規化(「VTLN」)伸縮係数、ケプストラル平均および分散データ、意図モデル、固有表現モデル、または地名辞典のうちの少なくとも1つを含む、付記6に記載のコンピュータ実装方法。
10.該音声処理データを更新するための統計を要求することであって、該第1の音声処理の完了前に開始される、統計を要求することを更に含む、付記9に記載のコンピュータ実装方法。
11.該統計および該第2の音声処理の結果に少なくとも一部基づいて、該音声処理データを更新することを更に含む、付記10に記載のコンピュータ実装方法。
12.該音声処理データをキャッシュすることを更に含む、付記6に記載のコンピュータ実装方法。
13.該ユーザの第2の発話に関する第2の音声データを受信することと、
キャッシュから該音声処理データを検索することと、
音声処理を、該第2の音声データ上に該音声処理データを使用して実行することと、を更に含む、付記12に記載のコンピュータ実装方法。
14.該音声認識データをキャッシュすることが、該音声認識データを該ネットワークアクセス可能なデータストアとは別個のキャッシュサーバに記憶することを含む、付記12に記載のコンピュータ実装方法。
15.該音声認識データを検索することが、該音声認識データのキャッシュされた複製を検索することを含む、付記12に記載のコンピュータ実装方法。
16.該音声認識データをキャッシュすることが、
ユーザが音声認識セッションを開始する可能性がある時間を決定することと、
該音声認識データを実質的に決定された時間にキャッシュすることと、を含む、付記12に記載のコンピュータ実装方法。
17.該ユーザによって操作されるクライアント装置から該音声データを受信することと、
該第2の音声認識処理に少なくとも一部基づく応答を、該クライアント装置に送信することと、を更に含む、付記6に記載のコンピュータ実装方法。
18.該第2の音声認識処理に少なくとも一部基づいて動作を実行することを更に含む、付記6に記載のコンピュータ実装方法。
19.プロセッサによって実行される際、コンピュータ装置に、
第1の音声認識処理を、ユーザの発話に関する音声データ上に実行して、音声認識結果を生成することと、
ネットワークアクセス可能なデータストアから音声認識データを要求することであって、該第1の音声認識処理の完了前に開始される、要求することと、
該ネットワークアクセス可能なデータストアから該音声認識データを受信することと、
第2の音声認識処理を、該音声認識データおよび該音声データまたは該音声認識結果のうちの少なくとも1つを使用して実行することと、を含む工程を実行させる、実行可能なコードを含む非一時的コンピュータ可読媒体。
20.該工程が、
音声データが受信される日付または時間のうちの1つに少なくとも一部基づいて、要求する音声認識データを選択することを更に含む、付記19に記載の非一時的コンピュータ可読媒体。
21.該工程が、
該ユーザに関連する特徴に少なくとも一部基づいて、要求する音声認識データを選択することを更に含む、付記19に記載の非一時的コンピュータ可読媒体。
22.該ユーザに関連する該特徴が、該ユーザの性別、年齢、地域的アクセント、身分、または該ユーザが関連する集団の身分のうちの1つを含む、付記21に記載の非一時的コンピュータ可読媒体。
23.該音声認識データが、音響モデル、言語モデル、言語モデル統計、制約付き最尤線形回帰(「CMLLR」)変換、声道長正規化(「VTLN」)伸縮係数、ケプストラル平均および分散データ、意図モデル、固有表現モデル、または地名辞典を含む、付記19に記載の非一時的コンピュータ可読媒体。
24.該工程が、
該音声認識データを更新するための統計を要求することであって、該第1の音声認識処理の完了前に開始される、統計を要求することを更に含む、付記23に記載の非一時的コンピュータ可読媒体。
25.該工程が、
該第2の音声認識処理の該統計および結果に少なくとも一部基づいて、該音声認識データを更新することを更に含む、付記24に記載の非一時的コンピュータ可読媒体。
26.該工程が、
該音声認識データをキャッシュすることを更に含む、付記19に記載の非一時的コンピュータ可読媒体。
27.該音声認識データを検索することが、該音声認識データのキャッシュされた複製を検索することを含む、付記19に記載の非一時的コンピュータ可読媒体。
28.該工程が、
該ユーザによって操作されるクライアント装置から該音声データを受信することと、
該第2の音声認識処理に少なくとも一部基づく応答を、該クライアント装置に送信することと、を更に含む、付記19に記載の非一時的コンピュータ可読媒体。
29.該工程が、
該第2の音声認識処理に少なくとも一部基づいて動作を実行することを更に含む、付記19に記載の非一時的コンピュータ可読媒体。
図1
図2
図3
図4
図5A
図5B