(57)【要約】  最初の発話の変換に対するフォローアップクエリを予測するための、コンピュータ記憶媒体上に符号化されたコンピュータプログラムを含む、方法、システム、および装置が開示される。いくつかの実装形態では、ユーザの最初の発話の変換に事前に関連付けられた1つまたは複数のフォローアップクエリが識別される。フォローアップクエリのうちの1つまたは複数に関連付けられたそれぞれの確率が最初の言語モデルに対して増加している、新しいまたは修正された言語モデルが取得される。次いで、ユーザの後続の発話に対応する後続の音声データが受信される。後続の発話の変換を生成するために、新しいまたは修正された言語モデルを使用して後続の音声データが処理される。次いで、ユーザへの出力のために、後続の発話の変換が提供される。
2019527379.tif 000002
【特許請求の範囲】
【請求項１】
ユーザの最初の発話の変換に事前に関連付けられた1つまたは複数のフォローアップクエリを識別するステップと、
前記フォローアップクエリのうちの1つまたは複数に関連付けられたそれぞれの確率が最初の言語モデルに対して増加している、新しいまたは修正された言語モデルを取得するステップと、
前記ユーザの後続の発話に対応する後続の音声データを受信するステップと、
前記後続の発話の変換を生成するために、前記新しいまたは修正された言語モデルを使用して前記後続の音声データを処理するステップと、
前記ユーザへの出力のために前記後続の発話の前記変換を提供するステップと
を含む、コンピュータ実装方法。
【請求項２】
ユーザの最初の発話に対応する最初の音声データを受信するステップと、
前記最初の発話の変換を生成するために、最初の言語モデルを使用して前記音声データを処理するステップと
をさらに含む、請求項1に記載の方法。
【請求項３】
新しいまたは修正された言語モデルを取得するステップが、
1つまたは複数のフォローアップクエリマッピングを含むデータベースにアクセスするステップであって、各フォローアップクエリマッピングが、(i)前記ユーザの過去の発話の変換と、(ii)前記ユーザに関連付けられた過去の検索結果と、(iii)前記ユーザに関連付けられた前記過去の検索結果に関連付けられたデータとについてのフォローアップクエリ候補のリストを指定する、ステップと、
前記ユーザの前記最初の発話の前記変換の1つまたは複数の用語が、前記1つまたは複数のフォローアップクエリマッピング内に含まれると判定するステップと、
前記1つまたは複数のフォローアップクエリマッピング内に含まれる前記ユーザの前記最初の発話の前記変換の前記1つまたは複数の用語に対応する前記フォローアップクエリ候補のリストに関連付けられた前記それぞれの確率を増加させるように、前記最初の言語モデルを調整するステップと
を含む、請求項1に記載の方法。
【請求項４】
前記1つまたは複数のフォローアップクエリマッピング内に含まれる前記フォローアップクエリ候補のリストが、前記ユーザの前記最初の発話に関連付けられたユーザロケーションに少なくとも基づく、請求項3に記載の方法。
【請求項５】
前記ユーザの前記最初の発話の前記変換の1つまたは複数の用語が、前記1つまたは複数のフォローアップクエリマッピング内に含まれると判定するステップが、前記ユーザの前記最初の発話に関連付けられた前記特定のコンテキストが、前記ユーザの過去の発話の特定の変換に関連付けられたコンテキストと一致すると判定するステップを含む、請求項3に記載の方法。
【請求項６】
前記1つまたは複数のフォローアップクエリマッピングの各々が、(i)前記ユーザの過去の発話の変換、(ii)前記ユーザに関連付けられた過去の検索結果、および(iii)前記ユーザに関連付けられた前記過去の検索結果に関連付けられたデータについての1つまたは複数のフォローアップ用語をさらに指定する、請求項3に記載の方法。
【請求項７】
前記新しいまたは修正された言語モデルを使用して前記音声データを処理するステップが、前記ユーザの前記最初の発話に関連付けられた特定のコンテキストが、前記ユーザの前記後続の発話に関連付けられた特定のコンテキストと一致すると判定するステップを含む、請求項1に記載の方法。
【請求項８】
前記新しいまたは修正された言語モデルを使用して前記音声データを処理するステップが、前記ユーザの前記最初の発話に関連付けられたユーザロケーションが、前記ユーザの前記後続の発話に関連付けられたユーザロケーションと一致すると判定するステップを含む、請求項1に記載の方法。
【請求項９】
ユーザの最初の発話の変換に関連付けられた1つまたは複数の検索結果に事前に関連付けられた1つまたは複数のフォローアップクエリを識別するステップと、
1つまたは複数の前記フォローアップクエリに関連付けられたそれぞれの確率が最初の言語モデルに対して増加している、新しいまたは修正された言語モデルを取得するステップと、
前記ユーザの後続の発話に対応する後続の音声データを受信するステップと、
前記後続の発話の前記変換に関連付けられた1つまたは複数の検索結果を生成するために、前記新しいまたは修正された言語モデルを使用して前記後続の音声データを処理するステップと、
前記ユーザへの出力のために前記後続の発話の前記変換に関連付けられた前記1つまたは複数の検索結果を提供するステップと
を含む、コンピュータ実装方法。
【請求項１０】
ユーザの最初の発話に対応する最初の音声データを受信するステップと、
前記ユーザの最初の発話の変換に関連付けられた1つまたは複数の検索結果を生成するために、最初の言語モデルを使用して前記音声データを処理するステップと
をさらに含む、請求項9に記載の方法。
【請求項１１】
新しいまたは修正された言語モデルを取得するステップが、
1つまたは複数のフォローアップクエリマッピングを含むデータベースにアクセスするステップであって、各フォローアップクエリマッピングが、(i)前記ユーザの過去の発話の変換と、(ii)前記ユーザに関連付けられた過去の検索結果と、(iii)前記ユーザに関連付けられた前記過去の検索結果に関連付けられたデータとについてのフォローアップクエリ候補のリストを指定する、ステップと、
前記ユーザの前記最初の発話の前記変換の1つまたは複数の用語が、前記1つまたは複数のフォローアップクエリマッピング内に含まれると判定するステップと、
前記1つまたは複数のフォローアップクエリマッピング内に含まれる前記ユーザの前記最初の発話の前記変換の前記1つまたは複数の用語に対応する前記フォローアップクエリ候補のリストに関連付けられた前記それぞれの確率を増加させるように、前記最初の言語モデルを調整するステップと
を含む、請求項9に記載の方法。
【請求項１２】
前記1つまたは複数のフォローアップクエリマッピング内に含まれる前記フォローアップクエリ候補のリストが、前記ユーザの前記最初の発話に関連付けられたユーザロケーションに少なくとも基づく、請求項11に記載の方法。
【請求項１３】
前記ユーザの前記最初の発話の前記変換の1つまたは複数の用語が、前記1つまたは複数のフォローアップクエリマッピング内に含まれると判定するステップが、前記ユーザの前記最初の発話に関連付けられた前記特定のコンテキストが、前記ユーザの過去の発話の特定の変換に関連付けられたコンテキストと一致すると判定するステップを含む、請求項11に記載の方法。
【請求項１４】
前記1つまたは複数のフォローアップクエリマッピングの各々が、(i)前記ユーザの過去の発話の変換、(ii)前記ユーザに関連付けられた過去の検索結果、および(iii)前記ユーザに関連付けられた前記過去の検索結果に関連付けられたデータについての1つまたは複数のフォローアップ用語をさらに指定する、請求項11に記載の方法。
【請求項１５】
前記新しいまたは修正された言語モデルを使用して前記音声データを処理するステップが、前記ユーザの前記最初の発話に関連付けられた特定のコンテキストが、前記ユーザの前記後続の発話に関連付けられた特定のコンテキストと一致すると判定するステップを含む、請求項9に記載の方法。
【請求項１６】
前記新しいまたは修正された言語モデルを使用して前記音声データを処理するステップが、前記ユーザの前記最初の発話に関連付けられたユーザロケーションが、前記ユーザの前記後続の発話に関連付けられたユーザロケーションと一致すると判定するステップを含む、請求項9に記載の方法。
【請求項１７】
前記ユーザの前記最初の発話の前記変換に関連付けられた前記検索結果のうちの1つまたは複数に関連付けられたデータに事前に関連付けられた1つまたは複数のフォローアップクエリを識別するステップと、
前記フォローアップクエリのうちの1つまたは複数に関連付けられたそれぞれの確率が最初の言語モデルに対して増加している、新しいまたは修正された言語モデルを取得するステップと、
前記ユーザの後続の発話に対応する後続の音声データを受信するステップと、
前記後続の発話の前記変換に関連付けられた1つまたは複数の検索結果に関連付けられたデータを生成するために、前記新しいまたは修正された言語モデルを使用して前記後続の音声データを処理するステップと、
前記ユーザへの出力のために前記後続の発話の前記変換に関連付けられた1つまたは複数の検索結果に関連付けられた前記データを提供するステップと
を含む、コンピュータ実装方法。
【請求項１８】
ユーザの最初の発話に対応する最初の音声データを受信するステップと、
前記ユーザの最初の発話の変換に関連付けられた1つまたは複数の検索結果を生成するために、最初の言語モデルを使用して前記音声データを処理するステップと
をさらに含む、請求項9に記載の方法。
【請求項１９】
新しいまたは修正された言語モデルを取得するステップが、
1つまたは複数のフォローアップクエリマッピングを含むデータベースにアクセスするステップであって、各フォローアップクエリマッピングが、(i)前記ユーザの過去の発話の変換と、(ii)前記ユーザに関連付けられた過去の検索結果と、(iii)前記ユーザに関連付けられた前記過去の検索結果に関連付けられたデータとについてのフォローアップクエリ候補のリストを指定する、ステップと、
前記ユーザの前記最初の発話の前記変換の1つまたは複数の用語が、前記1つまたは複数のフォローアップクエリマッピング内に含まれると判定するステップと、
前記1つまたは複数のフォローアップクエリマッピング内に含まれる前記ユーザの前記最初の発話の前記変換の前記1つまたは複数の用語に対応する前記フォローアップクエリ候補のリストに関連付けられた前記それぞれの確率を増加させるように、前記最初の言語モデルを調整するステップと
を含む、請求項9に記載の方法。
【請求項２０】
前記1つまたは複数のフォローアップクエリマッピング内に含まれる前記フォローアップクエリ候補のリストが、前記ユーザの前記最初の発話に関連付けられたユーザロケーションに少なくとも基づく、請求項11に記載の方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本明細書は、自動音声認識(ASR:automated speech recognition)に関する。
【背景技術】
【０００２】
音声認識とは、自動音声認識器(ASR:automatec speech recognizer)を使用した、話された言葉のテキストへの変換(transcription)を指す。従来のASRシステムでは、受信された音声はコンピュータ可読音に変換され、コンピュータ可読音は、次いで所与の言語に関連付けられた単語の辞書と比較される。
【発明の概要】
【課題を解決するための手段】
【０００３】
一般に、本明細書に記載される主題の1つの発明的態様は、ユーザによってその後提供される可能性があるフォローアップ音声クエリのセットを識別し、フォローアップ音声クエリに関連付けられたそれぞれの確率を増加させるように言語モデルを調整することによって、音声認識精度を向上させる方法で具現化することができる。たとえば、テキストクエリ、または他のタイプのユーザ入力など最初のクエリをユーザから受信した後、最初の音声クエリに事前に関連付けられた予測されたフォローアップクエリのセットが予測される。次いで、ASRMは、ユーザからの後続の音声クエリの処理が後続の音声クエリを予測されたフォローアップ音声クエリの1つとして変換する可能性がより高くなるように、予測されたフォローアップクエリに関連付けられた言語モデル内のそれぞれの確率を調整してもよい。この点について、説明される方法は、ユーザがすでに最初のクエリを提供した後、ASRMが、後続の音声クエリのサブミッションに関連付けられた確率の変化により正確に対応することを可能にする。
【０００４】
実装形態は、以下の特徴のうちの1つまたは複数を含んでもよい。たとえば、コンピュータ実装方法は、ユーザの最初の発話の変換に事前に関連付けられた1つまたは複数のフォローアップクエリを識別するステップと、フォローアップクエリのうちの1つまたは複数に関連付けられたそれぞれの確率が最初の言語モデルに対して増加している、新しいまたは修正された言語モデルを取得するステップと、ユーザの後続の発話に対応する後続の音声データを受信するステップと、後続の発話の変換を生成するために、新しいまたは修正された言語モデルを使用して後続の音声データを処理するステップと、ユーザへの出力のために後続の発話の変換を提供するステップとを含んでもよい。
【０００５】
いくつかの実装形態では、コンピュータ実装方法は、ユーザの最初の発話の変換に関連付けられた1つまたは複数の検索結果に事前に関連付けられた1つまたは複数のフォローアップクエリを識別するステップと、1つまたは複数のフォローアップクエリに関連付けられたそれぞれの確率が最初の言語モデルに対して増加している、新しいまたは修正された言語モデルを取得するステップと、ユーザの後続の発話に対応する後続の音声データを受信するステップと、後続の発話の変換に関連付けられた1つまたは複数の検索結果を生成するために、新しいまたは修正された言語モデルを使用して後続の音声データを処理するステップと、ユーザへの出力のために後続の発話の変換に関連付けられた1つまたは複数の検索結果を提供するステップとを含んでもよい。
【０００６】
いくつかの実装形態では、コンピュータ実装方法は、ユーザの最初の発話の変換に関連付けられた検索結果のうちの1つまたは複数に関連付けられたデータに事前に関連付けられた1つまたは複数のフォローアップクエリを識別するステップと、フォローアップクエリのうちの1つまたは複数に関連付けられたそれぞれの確率が最初の言語モデルに対して増加している、新しいまたは修正された言語モデルを取得するステップと、ユーザの後続の発話に対応する後続の音声データを受信するステップと、後続の発話の変換に関連付けられた1つまたは複数の検索結果に関連付けられたデータを生成するために、新しいまたは修正された言語モデルを使用して後続の音声データを処理するステップと、ユーザへの出力のために後続の発話の変換に関連付けられた1つまたは複数の検索結果に関連付けられたデータを提供するステップとを含んでもよい。
【０００７】
他のバージョンは、コンピュータ記憶デバイス上に符号化された方法のアクションを実行するように構成された対応するシステム、およびコンピュータプログラムを含む。
【０００８】
1つまたは複数の実装形態は、以下のオプションの機能を含んでもよい。たとえば、いくつかの実装形態では、本方法は、ユーザの最初の発話に対応する最初の音声データを受信するステップと、最初の発話の変換を生成するために、最初の言語モデルを使用して音声データを処理するステップとをさらに含んでもよい。
【０００９】
いくつかの実装形態では、新しいまたは修正された言語モデルを取得するステップは、1つまたは複数のフォローアップクエリマッピングを含むデータベースにアクセスするステップであり、各フォローアップクエリマッピングが、(i)ユーザの過去の発話の変換と、(ii)ユーザに関連付けられた過去の検索結果と、(iii)ユーザに関連付けられた過去の検索結果に関連付けられたデータとについてのフォローアップクエリ候補のリストを指定する、ステップと、ユーザの最初の発話の変換の1つまたは複数の用語が、1つまたは複数のフォローアップクエリマッピング内に含まれると判定するステップと、1つまたは複数のフォローアップクエリマッピング内に含まれるユーザの最初の発話の変換の1つまたは複数の用語に対応するフォローアップクエリ候補のリストに関連付けられたそれぞれの確率を増加させるように、最初の言語モデルを調整するステップとを含む。
【００１０】
いくつかの実装形態では、ユーザの最初の発話の変換の1つまたは複数の用語が、1つまたは複数のフォローアップクエリマッピング内に含まれると判定するステップは、ユーザの最初の発話に関連付けられた特定のコンテキストが、ユーザの過去の発話の特定の変換に関連付けられたコンテキストと一致すると判定するステップを含む。
【００１１】
いくつかの実装形態では、1つまたは複数のフォローアップクエリマッピングの各々は、(i)ユーザの過去の発話の変換、(ii)ユーザに関連付けられた過去の検索結果、および(iii)ユーザに関連付けられた過去の検索結果に関連付けられたデータについての1つまたは複数のフォローアップ用語をさらに指定する。
【００１２】
いくつかの実装形態では、新しいまたは修正された言語モデルを使用して音声データを処理するステップは、ユーザの最初の発話に関連付けられた特定のコンテキストが、ユーザの後続の発話に関連付けられた特定のコンテキストと一致すると判定するステップを含む。
【００１３】
いくつかの実装形態では、新しいまたは修正された言語モデルを使用して音声データを処理するステップは、ユーザの最初の発話に関連付けられたユーザロケーションが、ユーザの後続の発話に関連付けられたユーザロケーションと一致すると判定するステップを含む。
【００１４】
1つまたは複数の実装形態の詳細は、添付の図面および以下の説明に記載される。他の潜在的な特徴および利点は、説明、図面、および特許請求の範囲から明らかになるであろう。
【００１５】
これらの態様の他の実装形態は、コンピュータ記憶デバイス上に符号化された方法のアクションを実行するように構成された対応するシステム、装置、およびコンピュータプログラムを含む。
【図面の簡単な説明】
【００１６】
【図１】ユーザについての予測されたフォローアップクエリを使用した音声認識を実行してもよい例示的なシステムの図である。
【図２】ユーザについての予測されたフォローアップクエリを使用した音声認識を改善するための例示的なプロセスを示す図である。
【図３】本明細書で説明するプロセスまたはその一部が実施されてもよいコンピューティングデバイスのブロック図である。
【発明を実施するための形態】
【００１７】
図面において、同様の参照符号は、全体を通して対応する部分を表す。
【００１８】
後続の音声クエリを処理するために使用される言語モデルは、特定の時間期間またはユーザコンテキスト内に同じユーザによってサブミットされた最初の音声クエリと後続の音声クエリとの間の固有の関係を反映しないことが多いので、ユーザによって連続的にサブミットされる音声クエリは、自動音声認識システムによって誤認識されることが多い。たとえば、言語モデルは、n-gramのセットについて静的確率を指定するので、同じ言語モデルに基づく後続の音声クエリについてのクエリ処理は、過去にサブミットされた音声クエリに事前に関連付けられた用語を含む後続の音声クエリを提供するユーザの可能性の増大を認識できないことが多い。これはしばしば、静的言語モデルによって指定された複数の変換候補を有する後続の低品質音声クエリの誤認識を引き起こす。
【００１９】
したがって、ユーザによってその後提供される可能性があるフォローアップ音声クエリのセットを識別し、フォローアップ音声クエリに関連付けられたそれぞれの確率を増加させるように言語モデルを調整することによって、音声認識精度を向上させるための技法が説明される。たとえば、ユーザから最初のクエリを受信した後、自動音声認識モジュール(ASRM)は、最初のクエリに事前に関連付けられた予測されたフォローアップクエリのセットを識別してもよい。次いで、ASRMは、ユーザからの後続の音声クエリの処理が後続の音声クエリを予測されたフォローアップ音声クエリの1つとして変換する可能性がより高くなるように、予測されたフォローアップクエリに関連付けられた言語モデル内のそれぞれの確率を調整してもよい。この点について、説明される方法は、ユーザがすでに最初のクエリを提供した後、ASRMが、後続の音声クエリのサブミッションに関連付けられた確率の変化により正確に対応することを可能にする。
【００２０】
図1は、ユーザ102についての予測されたフォローアップクエリを使用した音声認識を実行するために使用されてもよい例示的なシステム100を示す。システム100は、ユーザ102の音声クエリの発話を符号化する音声データ104bと、(たとえば、ユーザロケーションなど)音声データ104bに関連付けられたコンテキストデータ104cとを受信し、以下でより詳細に説明する音声認識技法を使用して音声データ104bの変換104dを生成することができるASRM110を含む。
【００２１】
一般に、音声データ104bおよびコンテキストデータ104cを受信した後、ASRM110は、たとえば同じユーザロケーション内でサブミットされたクエリ、または共通のトピックに関連付けられたクエリなどのサブミットされたクエリとフォローアップクエリとの間の特定の関係に基づいて、ユーザ102がサブミットする可能性があるフォローアップクエリを識別するためにクエリマッピングのセットを含むテーブル120にアクセスする。
【００２２】
より詳細には、ユーザ102は、ユーザデバイスを介して最初の音声クエリ104aを発する。ユーザデバイスは、スマートフォン、タブレットコンピュータ、ラップトップコンピュータ、またはデスクトップコンピュータなどのマイクロフォンを含む任意のタイプのコンピューティングデバイスであってもよい。ユーザデバイスは、ユーザ102が、音声クエリを提供し、および/またはユーザクエリに応答して、視覚コンテンツ、たとえば検索結果などを表示することを可能にする任意のモバイルまたはデスクトップオペレーティングシステムを介して表示されるユーザインターフェースをユーザ102に提示してもよい。
【００２３】
音声クエリ104aは、一般的な音声認識技法を使用してASRM110によって認識されかつ処理される、音声検索、音声コマンド、またはディクテーションなどの様々なタイプの音声対応入力を含んでもよい。
【００２４】
ASRM110は、最初に音響モデルを使用して最初の音声クエリ104aの発話を音声学的に変換することによって音声データ104bの最初の変換104dを生成する。次いで、ASRM110は、最初の音声クエリ104aの発話の正確な変換の最も高い可能性を表す言語モデル130内で指定されたn-gramを選択する。いくつかの事例では、ASRM110は、コンテキストデータ104cによって示されるユーザ102に関連付けられた可能性のあるコンテキストが与えられると、最初の音声クエリ104aの発話の正確な変換の最も高い可能性を反映する特定のn-gramを選択するために、受信されたコンテキストデータ104cに基づいて言語モデル130をバイアスしてもよい。次いで、受信された最初の音声クエリ104aに応答して、生成された最初の変換104dが、ユーザデバイスへの出力のために送信される。
【００２５】
図1に示す例では、最初の音声クエリ104aの発話“MU-SE-UMS IN PA-RIS”を符号化する音声データ104bを受信したことに応答して、ASRM110は、音声データ104bの他の変換候補に対して最大の変換スコア“0.9”を言語モデル130aが指定することに基づいて、n-gramの“MUSEUMS IN PARIS”を最初の変換104dとして変換する。
【００２６】
ユーザ102から音声クエリを受信すると、ASRM110はまた、音声クエリ104a内に含まれる用語が与えられると、ユーザ102が提供する可能性があるフォローアップクエリのセットを識別する。たとえば、ASRM110は、最初の音声クエリについてのフォローアップクエリを指定するクエリマッピングのセットへのアクセスに基づいて、ユーザ102についてのフォローアップクエリを識別してもよい。クエリマッピングごとに、テーブル120は、指定された最初の音声クエリを提供した後、所定の時間内に、ユーザ102が指定されたフォローアップクエリを提供する可能性を反映する関連スコアをさらに指定する。
【００２７】
いくつかの実装形態では、特定の最初の音声クエリについてのユーザ102のフォローアップクエリを指定する代わりに、テーブル120内のクエリマッピングは、代わりに特定の最初の音声クエリに事前に関連付けられた1つまたは複数の用語またはエンティティを指定してもよい。そのような実装形態では、識別された用語またはエンティティは、新しいまたは調整された言語モデル130bを生成するために、最初の言語モデル130a内の個々の用語に関連付けられたそれぞれの変換スコアをアップウェイトするために使用することができる。
【００２８】
いくつかの実装形態では、テーブル120内に含まれるクエリマッピングは、最初の音声クエリ104aの最上位の変換仮説に対するそれらの音声学的類似性のために、そのように識別されるフォローアップクエリをさらに含む。たとえば、特定の最初の音声クエリの変換仮説が“OPENING HOURS OF LUFRE”である場合、テーブル120は、用語“LUFRE”と“LOUVRE”との間の音声学的類似性に基づいて、“OPENING HOURS OF LOUVRE”をフォローアップクエリとして指定するクエリマッピングを含んでいる可能性がある。この点について、ユーザ120がASRM110からの出力として誤った変換を受信した後に同じクエリを再度サブミットする可能性が高まると仮定すると、一般に誤った変換は、テーブル120内の正しく識別されたフォローアップクエリに関連付けられる可能性がある。
【００２９】
いくつかの実装形態では、テーブル120内のクエリマッピングは、最初の音声クエリ104aの最初の発話の変換104dに関連付けられた検索結果についてのフォローアップクエリを指定する可能性がある。たとえば、ユーザ102は、最初の変換104d内に含まれる用語の検索を実行するために、最初の音声クエリ104aを検索エンジンへの入力の形態としてサブミットする可能性がある。検索エンジンによって返された検索結果データは、次いで最初の転記104dの検索結果内に含まれている用語に関連付けられている、またはそれを含む後続の音声クエリの処理の際に、ASRM110による使用のために、テーブル120内に記録されかつ含まれてもよい。
【００３０】
いくつかの実装形態では、テーブル120内のクエリマッピングは、変換104dの検索結果に関連付けられたデータについてのフォローアップクエリをさらに指定してもよい。たとえば、検索結果に関連付けられたデータは、特に特定の時間期間内にユーザ102によって送信された過去の検索クエリ、最初の変換104dに関連付けられた検索結果に類似すると判定された検索クエリについて取得された過去の検索結果、最初の変換104に関連付けられた検索クエリに対応すると判定された文書内に含まれる用語を含んでもよい。検索結果に関連付けられたデータはまた、過去にサブミットされた音声クエリ、過去の変換候補のブラウジングアクティビティ、または他のタイプのユーザ固有の情報などのユーザ履歴データおよびユーザ102に関連付けられたクエリログを含んでもよい。
【００３１】
いくつかの実装形態では、テーブル120内のクエリマッピングは、ユーザ102に加えて他のユーザに関連付けられたデータに基づいてフォローアップクエリをさらに指定してもよい。たとえば、テーブル120内のフォローアップクエリは、たとえば同じ場所にいるユーザ、あるいはユーザ102と同様のクエリをサブミットした、および/または同様の検索結果もしくはフォローアップクエリを受信したユーザなどのユーザ102に類似していると判定されたユーザのクラスタによってサブミットされた過去のクエリに基づいて決定することができる。これらの例の各々において、ASRM110は、ユーザ102に関連する可能性があるパターンまたは予測を識別するために、データクラスタリング技法を使用して複数のユーザから受信されたデータをアグリゲートすることができる。
【００３２】
指定された各最初の音声クエリとフォローアップクエリとの間の関連スコアの大きさは、上記のように、ユーザ102に関連付けられた様々なタイプのデータに基づいていてもよく、および/またはそれによって増大させてもよい。いくつかの実装形態では、関連スコアの大きさは、音声データ104bがASRM110によって受信されたときにユーザ102に関連付けられているデバイスの特定の場所に基づいてもよい。そのような実装形態では、関連スコアの値は、特定の最初の音声クエリおよびフォローアップクエリ内に含まれる用語が、ユーザ102またはユーザ102と類似していると判定された場所にいる他のユーザのいずれかによって、特定の時間期間内に繰り返し送信される可能性を反映してもよい。この例では、この決定は、ユーザ102および特定の場所にいる他のユーザによってサブミットされた過去のクエリを含むトレーニングデータに基づいていてもよい。
【００３３】
図1に示す例では、テーブル120は、たとえば“MUSEUMS”および“PARIS”などのクエリ104a内の用語に関連付けられると判定された、たとえば“LOUVRE”、“BAGUETTE”などの用語を含むフォローアップクエリを指定する。記載された“LOUVRE”という用語は美術館に関連し、かつパリにあるのに対して、“BAGUETTE”という用語はパリとの関係に関して“MUSEUM”という用語にのみ関連付けられているので、テーブル120はさらに、“PLACES TO BAGUETTE”と比較して、フォローアップクエリ“OPENING HOURS OF LOUVRE”についてより高い関連スコアを指定する。
【００３４】
次いで、ASRM110は、言語モデル130を調整するために、テーブル120内の識別されたフォローアップクエリを使用する。特に、識別されたフォローアップクエリは、テーブル120内に含まれるフォローアップクエリに対応する言語モデル130内の特定のn-gramに関連付けられたそれぞれの確率を増加させるために、言語モデル130をバイアスするために使用され、ASRM110が特定のn-gramを最初の音声クエリ104aの発話に関連付けられた後続のクエリの変換として選択する可能性が高くなる。
【００３５】
後続の音声クエリ106aのいかなる誤った変換も防止するために、テーブル120によって指定されたフォローアップクエリに対応する、最初の言語モデル130aに対する、新しいまたは更新された言語モデル130b内の特定のn-gramに関連付けられたそれぞれの確率の増加は、特定の値に対して計算される。たとえば、いくつかの事例では、新しいまたは調整された言語モデル130b内の補間された変換スコアの計算が、最初の言語モデル130a内の変換スコアに比べて緩やかに増加するように、関連スコアの値がASRM110によって調整される。これは、最初の言語モデル130aの代わりに新しいまたは調整された言語モデル130bを使用する際に、補間された変換スコアがASRM110によるクエリ処理に劇的な変化を引き起こすほど有意に高くならないことを確実にするためである。別の例では、フォローアップクエリのそれぞれについて関連スコアを調整する代わりに、同じ結果を引き起こすために、ASRM110によって使用される特定の計算技法が代わりに調整されてもよい。そのような例では、補間された変換スコア計算技法は、最初に計算された補間された変換スコアの値を低減するための減衰係数および/またはダウンウェイトの使用を含んでもよい。
【００３６】
図1に示す例では、ASRM110は、最初にフォローアップクエリ“OPENING HOURS OF LOUVRE”を、初期音声クエリ104aについての最も可能性の高いフォローアップクエリとして、関連スコア“1.4”で識別する。次いで、ASRM110は、最初の言語モデル130内の同じn-gramについての対応する変換スコアに対してより大きい値を有するn-gram“OPENING HOURS OF LOUVRE”の補間された変換スコアを指定する更新された言語モデル130bを生成する。この例では、ASRM110は、補間された変換スコア“0.56”を割り当てるために、最初の変換スコア“0.5”とテーブルによって指定された関連スコア“1.4”との積を計算する。
【００３７】
図1は、言語モデル130の異なる動的状態として、最初の言語モデル130aおよび調整された言語モデル130bを示しているが、いくつかの実装形態では、ASRM110は、代わりに最初の音声クエリ104aについて指定されたフォローアップクエリに対応する特定のn-gramについての補間された変換スコアを提供する新しい言語モデルを生成してもよい。そのような実装形態では、ASRM110は、本明細書で説明するように、ユーザ102に関連付けられた様々なタイプのデータに基づいて、後続の音声クエリの変換を生成するために、複数の利用可能な言語モデルの中から特定の言語モデルを動的に選択することが可能であってもよい。
【００３８】
いくつかの実装形態では、システム100は、本明細書で説明するように、言語モデル調整または生成を実行するための別個のハードウェアまたはソフトウェアモジュールを含んでもよい。たとえば、ASRM110は、最初に最初の音声クエリ104aについてのフォローアップクエリを識別し、識別されたフォローアップクエリに対応するデータをテーブル120から抽出し、次いで最初の言語モデル130aおよび抽出されたデータを言語モジュール補間のために後処理モジュールに送信するようにしてもよい。本明細書で説明するように、後処理構成要素は、補間された変換スコアにより調整された言語モデルを生成する、または対応する変換スコアにより新しい言語モデルを生成してもよい。
【００３９】
いくつかの例では、ASRM110は、テーブル120内の複数の識別されたフォローアップクエリに対応する言語モデル130内の複数のn-gramの変換スコアを補間してもよい。たとえば、ASRM110は、所定のしきい値よりも大きい関連スコアを有する対応するフォローアップクエリのn-gramの変換スコアを補間してもよい。あるいは、他の実装形態では、ASRM110は、代わりにテーブル120内のフォローアップクエリに対応するn-gramの変換スコアを最大の関連スコアで補間するだけでもよい。この点について、後続のクエリについての言語モデルのバイアスの感度は、ASRM110によって使用される特定の補間技法に基づいて調整されてもよい。
【００４０】
新しいまたは調整された言語モデル130bを生成した後、ASRMは、その後新しいまたは調整された言語モデル130bを使用してユーザ102の後続の音声クエリ106aの発話を符号化する音声データ106bを処理してもよい。ASRM110が音声データ106bを処理する時点T2において、新しいまたは調整された言語モデル130bは、時点T1にサブミットされたユーザ102によってサブミットされた最初の音声クエリ104aについて過去に識別されたフォローアップクエリに対応する特定のn-gramについての増加した変換スコアを含むようにすでに補間されている。
【００４１】
新しいまたは更新された言語モデル130を使用して音声データ106bを処理することは、後続の変換106dについて選択されたn-gramが、テーブル120内の識別されたフォローアップクエリのうちの少なくとも1つになる可能性を高める。これは、後続の音声クエリ106aがASRM110によって誤って変換される可能性があるあいまいな発話を含むときに特に重要である。
【００４２】
たとえば、図1に示す例では、たとえば“MUSEUMS IN PARIS”などのあいまいさを残さず変換された最初のユーザクエリを送信した後、ユーザは、次いで比較的あいまいで誤った変換の余地がある後続の音声クエリを送信する。たとえば、“AH-WA-AS OF TH-HE LU-UH”という発話は、“HOURS OF LOO”、“HOURS OF LOUIE’S”、または“HOURS OF LOUVRE”のいずれかとして変換される可能性がある。しかしながら、ASRM110は、更新された、または新しい言語モード130bを使用して音声データ106bを処理するので、ASRM110は、それがテーブル120内で識別され、過去の音声クエリ104aに含まれる“PARIS”という用語に事前に関連付けられていると仮定するとトランザクション“HOURS OF LOUVRE”を選択する可能性が高い。したがって、後続の変換106dは、少なくとも最初の音声クエリ104aとの関連付けに基づいて選択され、その結果出力のためにユーザ102に関連付けられたデバイスに提供される。
【００４３】
いくつかの実装形態では、図1に関して全体的に説明したように、識別されたフォローアップクエリに基づいてASRM110によって使用される音声認識技法は、後続の音声クエリ106aと実際には関連付けられていないフォローアップクエリに関して、後続の変換104dが誤っておよび/または不正確に変換されないことを確実にするために制限を受ける。たとえば、いくつかの実装形態では、特定の言語モデルを使用して音声データ106bを処理するより前に、ASRM110は、最初にコンテキストデータ104cによって示される見込みのあるユーザコンテキストが、コンテキストデータ106によって示される見込みのあるユーザコンテキストと十分に対応するかどうかを判定してもよい。ユーザコンテキストが十分に対応していない場合、ASRM110は、ユーザコンテキストが時点T1とT2との間で変化したと判定する可能性があり、これは最初の音声クエリ104bについて識別されたフォローアップクエリの少なくとも1つを後続の音声クエリ106bが反映する可能性が低いことを意味する。この場合、ASRM110は、音声データ106bについて誤った変換を生成することを防止するために、新しいまたは調整された言語モデルに基づく処理を終了してもよい。
【００４４】
別の例では、ASRM110は、最初の音声クエリ104aと後続の音声クエリ106aとの間の意味ドリフト(semantic drift)を識別するために、追加のクエリ処理技法を使用してもよい。たとえば、ASRM110は、最初の音声クエリ104aおよび後続の音声クエリ106a内の識別された用語を比較して、時間T2でのユーザ102による単語の使用が、時点T1でのユーザ102による単語の使用に対して変化したかどうかを判定するために、自然言語処理技法を使用してもよい。意味ドリフトが所定のしきい値よりも大きいとASRM110が判定した場合、ASRM110は、音声データ106bについて誤った変換を生成するのを防ぐために、新しいまたは調整された言語モデルに基づいて音声データ106bの処理を終了してもよい。
【００４５】
ASRM110は、新しいまたは調整された言語モデル130bを使用したクエリ処理が正確な変換をもたらすことを確実にするために、受信された最初の音声クエリ104aと後続の音声クエリ106aとの間に十分な連続性があることを確認するために、様々な後処理技法をさらに実行してもよい。たとえば、最初の音声クエリ104aと後続の音声クエリ106aとの間の連続性は、クエリ間の類似性を示す要因(たとえば、ユーザコンテキスト、クエリに含まれる用語など)に関連付けられた特定の重みに基づく集約スコアとして計算されてもよい。
【００４６】
いくつかの実装形態では、ASRM110は、最初の言語モデル130aまたはASRM語彙内で指定されていない最初の音声クエリ104a内に含まれる新しい用語を識別し、次いでクエリごとに、調整された言語モデル130bおよび/またはASRUMボキャブラリに新しい用語を動的に追加することができる。たとえば、図1に示す例では、最初の言語モデル130aが“LOUVRE”という用語を含まない場合、ASRM110は、この用語が初期の音声クエリ“MUSEUMS IN PARIS”に関連付けられていると判定し、それに応答して“LOUVRE”という用語を調整された言語モデル130bに追加してもよい。この点について、過去のクエリ内に新しく識別された用語を追加することによって、ASRM110は、そうでなければ最初の言語モデル130aを使用して見逃されていたであろう音声認識仮説候補を生成することができる。
【００４７】
図1は、最初の音声クエリ104aの受信に応答してフォローアップクエリのセットを識別するASRM110の一例を示すが、いくつかの実装形態では、ASRM110は、他のタイプのユーザ入力の受信に応答して、フォローアップクエリを識別することができる。そのような実装形態では、ユーザ入力は、タイプされたクエリ、たとえば検索エンジンに提供された検索クエリ、ユーザ102によって送信された最近のメッセージおよび/または電子メール、ASRM110とは別の他のアプリケーション内で提供されるクエリを含むことができる。この点について、ASRM110は、過去の音声クエリとタイプされたクエリの両方の中に含まれる用語に基づいて、フォローアップクエリを識別することができる。
【００４８】
図2は、ユーザについての予測されたフォローアップクエリを使用した音声認識を改善するための例示的なプロセス200を示す。簡潔には、プロセス200は、最初の音声データを受信すること(210)と、最初の言語モデルを使用して音声データを処理すること(220)と、1つまたは複数のフォローアップクエリを識別すること(230)と、新しいまたは修正された言語モデルを取得すること(240)と、後続の音声データを受信すること(250)と、新しいまたは修正された言語モデルを使用して音声データを処理すること(260)と、処理された音声データを出力のために提供すること(270)とを含むことができる。
【００４９】
より詳細には、プロセス200は、最初の音声データを受信すること(210)を含むことができる。たとえば、ASRM110は、ユーザ102の最初の音声クエリ104aの発話に対応する音声データ104bを受信してもよい。
【００５０】
プロセス200は、最初の言語モデルを使用して音声データを処理すること(220)を含むことができる。たとえば、ASRM110は、最初の音声クエリ104aの発話の変換104dを生成するために、最初の言語モデル130aを使用して音声データ104bを処理してもよい。
【００５１】
プロセス200は、1つまたは複数のフォローアップクエリを識別すること(230)を含むことができる。たとえば、ASRM110は、テーブル120から1つまたは複数のフォローアップクエリを識別してもよい。フォローアップクエリは、ユーザ102の最初の音声クエリ104aの発話の変換104dに事前に関連付けられてもよい。いくつかの実装形態では、フォローアップクエリはまた、発話の変換104dに関連付けられた1つまたは複数の検索結果、あるいはたとえば過去の検索クエリ、過去の検索結果、対応する検索クエリに対応する文書などに事前に関連付けられていてもよい。
【００５２】
プロセス200は、新しいまたは修正された言語モデルを取得すること(240)を含むことができる。たとえば、ASRM110は、言語モデル130aに対して1つまたは複数のフォローアップクエリに関連付けられたそれぞれの変換確率が増加した言語モデル130bを取得してもよい。図1の例に示されるように、ASRM110は、テーブル120を使用してユーザ102からの最初の音声クエリ“MUSEUMS IN PARIS”に対するフォローアップ音声クエリとして“OPENING HOURS OF LOUVRE”を予測する可能性がある。これは、言語モデル130a内のその対応する変換スコアよりも大きい言語モデル130b内の“OPENING HOURS OF LOUVRE”の変換スコアに反映されている(たとえば、それぞれ0.4および0.56)。
【００５３】
プロセス200は、後続の音声データを受信すること(250)を含むことができる。たとえば、ASRM110は、ユーザ102の後続の音声クエリ106aの発話に対応する音声データ106bを受信してもよい。
【００５４】
プロセス200は、新しいまたは修正された言語モデルを使用して音声データを処理すること(260)を含むことができる。たとえば、ASRM110は、後続の音声クエリ106aの発話の変換106dを生成するために、言語モデル130bを使用して後続の音声データ106bを処理してもよい。
【００５５】
処理200は、出力のために、処理された音声データを提供すること(270)を含むことができる。たとえば、ASRM110は、ユーザ102に関連付けられたデバイスへの出力のために、後続の音声クエリ106aの発話の変換106dを提供してもよい。
【００５６】
図3は、この文書に記載されたシステムおよび方法を、クライアントとして、またはサーバとして、もしくは複数のサーバとして実施するために使用されてもよいコンピューティングデバイス300、350のブロック図である。コンピューティングデバイス300は、ラップトップ、デスクトップ、ワークステーション、携帯情報端末、サーバ、ブレードサーバ、メインフレーム、および他の適切なコンピュータなどの様々な形態のデジタルコンピュータを表すものとする。コンピューティングデバイス350は、携帯情報端末、セルラー電話、スマートフォン、および他の同様のコンピューティングデバイスなどの様々な形態のモバイルデバイスを表すものとする。
【００５７】
さらに、コンピューティングデバイス300または350は、ユニバーサルシリアルバス(USB)フラッシュドライブを含むことができる。USBフラッシュドライブは、オペレーティングシステムおよび他のアプリケーションを記憶してもよい。USBフラッシュドライブは、別のコンピューティングデバイスのUSBポートに挿入されてもよいUSBコネクタまたはワイヤレス送信機などの入出力構成要素を含むことができる。本明細書に示された構成要素、それらの接続および関係、ならびにそれらの機能は、例示的なものにすぎず、本明細書に記載され、および/または請求される本発明の実装形態を限定するものではない。
【００５８】
コンピューティングデバイス300は、プロセッサ302、メモリ304、記憶デバイス306、メモリ304および高速拡張ポート310に接続する高速インターフェース308、ならびに低速バス314および記憶デバイス306に接続する低速インターフェース312を含む。構成要素302、304、306、308、310、および312の各々は、様々なバスを使用して相互接続されており、共通のマザーボード上に、または他の方法で適宜に実装されてもよい。プロセッサ302は、高速インターフェース308に結合されるディスプレイ316など外部入出力デバイス上にGUIのグラフィカル情報を表示するために、メモリ304または記憶デバイス306に記憶された命令を含む、コンピューティングデバイス300内で実行するための命令を処理することができる。他の実装形態では、複数のプロセッサおよび/または複数のバスが適宜に複数のメモリおよび複数のタイプのメモリとともに使用されてもよい。また、複数のコンピューティングデバイス300が接続されてもよく、各デバイスは、たとえばサーババンク、ブレードサーバのグループ、またはマルチプロセッサシステムとして、必要な動作の一部を提供する。
【００５９】
メモリ304は、コンピューティングデバイス300内の情報を記憶する。一実装形態では、メモリ304は、揮発性メモリユニットである。別の実施形態では、メモリ304は、不揮発性メモリユニットである。メモリ304は、磁気または光ディスクなどの別の形態のコンピュータ可読媒体であってもよい。
【００６０】
記憶デバイス306は、コンピューティングデバイス300のための大容量ストレージを提供することができる。一実装形態では、記憶デバイス306は、フロッピーディスクデバイス、ハードディスクデバイス、光ディスクデバイス、またはテープデバイス、フラッシュメモリまたは他の類似の固体メモリデバイス、あるいはストレージエリアネットワークまたは他の構成内のデバイスを含むデバイスのアレイなどのコンピュータ可読媒体であってもよく、またはそれらを含んでもよい。コンピュータプログラム製品は、情報キャリアに有形に組み込むことができる。コンピュータプログラム製品は、実行されると、上記で説明したものなどの1つまたは複数の方法を実行する命令も含んでもよい。情報キャリアは、メモリ304、記憶デバイス306、またはプロセッサ302上のメモリなどのコンピュータ可読媒体または機械可読媒体である。
【００６１】
高速コントローラ308は、コンピューティングデバイス300のための帯域幅集約な動作を管理し、低速コントローラ312は、より低い帯域幅集約な動作を管理する。そのような機能の割振りは例にすぎない。一実装形態では、高速コントローラ308は、たとえばグラフィックプロセッサまたはアクセラレータなどを介してメモリ304、ディスプレイ316に、および様々な拡張カード(図示せず)を受け入れることができる高速拡張ポート310に結合される。この実装形態では、低速コントローラ312は、記憶デバイス306および低速拡張ポート314に結合されている。たとえばUSB、Bluetooth(登録商標)、Ethernet(登録商標)、ワイヤレスイーサネットなど様々な通信ポートを含んでもよい低速拡張ポートは、たとえばネットワークアダプタを介して、キーボード、ポインティングデバイス、マイクロフォン/スピーカーペア、スキャナ、またはスイッチやルータなどのネットワーキングデバイスなどの1つまたは複数の入出力デバイスに結合されてもよい。図に示すように、コンピューティングデバイス300は、いくつかの異なる形態で実装されてもよい。たとえば、コンピューティングデバイス300は、標準的なサーバ320として、またはそのようなサーバのグループにおいて複数回、実装されてもよい。また、ラックサーバシステム324の一部として実装されてもよい。さらに、ラップトップコンピュータ322などのパーソナルコンピュータにおいて実装されてもよい。代替的に、コンピューティングデバイス300からの構成要素は、デバイス350などのモバイルデバイス(図示せず)内の他の構成要素と結合されてもよい。そのようなデバイスの各々は、1つまたは複数のコンピューティングデバイス300、350を含んでいてもよく、システム全体は、互いに通信する複数のコンピューティングデバイス300、350から構成されてもよい。
【００６２】
図に示すように、コンピューティングデバイス300は、いくつかの異なる形態で実装されてもよい。たとえば、コンピューティングデバイス300は、標準的なサーバ320として、またはそのようなサーバのグループにおいて複数回、実装されてもよい。また、ラックサーバシステム324の一部として実装されてもよい。さらに、ラップトップコンピュータ322などのパーソナルコンピュータにおいて実装されてもよい。代替的に、コンピューティングデバイス300からの構成要素は、デバイス350などのモバイルデバイス(図示せず)内の他の構成要素と結合されてもよい。そのようなデバイスの各々は、1つまたは複数のコンピューティングデバイス300、350を含んでいてもよく、システム全体は、互いに通信する複数のコンピューティングデバイス300、350から構成されてもよい。
【００６３】
コンピューティングデバイス350は、構成要素の中でも、プロセッサ352、メモリ364、ならびにディスプレイ354などの入出力デバイス、通信インターフェース366、およびトランシーバ368を含む。デバイス350はまた、追加のストレージを提供するために、マイクロドライブまたは他のデバイスなどの記憶デバイスを備えていてもよい。構成要素350、352、364、354、366、および368の各々は、様々なバスを使用して相互接続されており、構成要素のうちのいくつかは、共通のマザーボード上に、または他の方法で適宜に実装されてもよい。
【００６４】
プロセッサ352は、メモリ364に記憶されている命令を含む、コンピューティングデバイス350内の命令を実行することができる。プロセッサは、別個の複数のアナログおよびデジタルプロセッサを含むチップのチップセットとして実装されてもよい。さらに、プロセッサは、いくつかのアーキテクチャのうちのいずれかを使用して実装されてもよい。たとえば、プロセッサ352は、CISC(複合命令セットコンピュータ)プロセッサ、RISC(縮小命令セットコンピュータ)プロセッサ、またはMISC(最小命令セットコンピュータ)プロセッサでもよい。プロセッサは、たとえばユーザインターフェースの制御、デバイス350によって実行されるアプリケーション、およびデバイス350によるワイヤレス通信などのデバイス350の他の構成要素の調整を提供してもよい。
【００６５】
プロセッサ352は、ディスプレイ354に結合される制御インターフェース358およびディスプレイインターフェース356を介してユーザと通信することができる。ディスプレイ354は、たとえばTFT(薄膜トランジスタ液晶ディスプレイ)ディスプレイ、またはOLED(有機発光ダイオード)ディスプレイ、または他の適切なディスプレイ技術であってもよい。ディスプレイインターフェース356は、グラフィカルおよび他の情報をユーザに提示するためにディスプレイ354を駆動するための適切な回路を備えていてもよい。制御インターフェース358は、ユーザからコマンドを受信し、それらをプロセッサ352にサブミットするために変換してもよい。さらに、デバイス350と他のデバイスとの近距離通信を可能にするために、プロセッサ352と通信するように外部インターフェース362が設けられてもよい。外部インターフェース362は、たとえばいくつかの実装形態ではワイヤード通信、または他の実装形態ではワイヤレス通信を提供してもよく、複数のインターフェースが使用されてもよい。
【００６６】
メモリ364は、コンピューティングデバイス350内の情報を記憶する。メモリ364は、コンピュータ可読媒体、揮発性メモリユニット、または不揮発性メモリユニットのうちの1つまたは複数として実装することができる。拡張メモリ374も設けられ、たとえばSIMM(シングルインラインメモリモジュール)カードインターフェースを含んでもよい拡張インターフェース372を介してデバイス350に接続されてもよい。そのような拡張メモリ374は、デバイス350のための追加の記憶スペースを提供してもよく、またはデバイス350のためのアプリケーションまたは他の情報をも記憶してもよい。具体的には、拡張メモリ374は、上述のプロセスを実行または補足するための命令を含んでいてもよく、また安全な情報も含んでもよい。したがって、たとえば拡張メモリ374は、デバイス350のためのセキュリティモジュールとして提供されてもよく、デバイス350の安全な使用を可能にする命令でプログラムされてもよい。さらに、安全なアプリケーションが、識別情報をSIMMカード上にハッキング不可能な方法で配置するなど、追加情報とともにSIMMカードを介して提供されてもよい。
【００６７】
メモリは、以下で説明するように、たとえばフラッシュメモリおよび/またはNVRAMメモリを含んでもよい。一実施形態では、コンピュータプログラム製品は、情報キャリアに有形に組み込まれる。コンピュータプログラム製品は、実行されると、上記で説明したものなどの1つまたは複数の方法を実行する命令を含む。情報キャリアは、たとえばトランシーバ368もしくは外部インターフェース362を介して受信されてもよい、メモリ364、拡張メモリ374、またはプロセッサ352上のメモリなどのコンピュータ可読媒体または機械可読媒体である。
【００６８】
デバイス350は、必要な場合デジタル信号処理回路を含んでもよい通信インターフェース366を介してワイヤレス通信してもよい。通信インターフェース366は、特にGSM(登録商標)音声通話、SMS、EMS、またはMMSメッセージング、CDMA、TDMA、PDC、WCDMA(登録商標)、CDMA2000、またはGPRSなどの様々なモードまたはプロトコルの下で通信を提供することができる。そのような通信は、たとえば無線周波数トランシーバ368を介して行われてもよい。さらに、Bluetooth(登録商標)、WiFi、または他のそのようなトランシーバ(図示せず)を使用するなどの短距離通信が行われてもよい。さらに、GPS(全地球測位システム)受信機モジュール370は、追加のナビゲーションおよび位置関連のワイヤレスデータをデバイス350に提供してもよく、それは、デバイス350上で実行しているアプリケーションによって適宜に使用されてもよい。
【００６９】
デバイス350は、オーディオコーデック360を使用して可聴的に通信してもよく、音声コーデック360は、ユーザから話された情報を受信し、それを使用可能なデジタル情報に変換してもよい。オーディオコーデック360は、同様に、たとえばデバイス350のハンドセット内のスピーカーを通してなど、ユーザのための可聴音を生成してもよい。そのような音は、音声通話からの音を含み、たとえばボイスメッセージ、音楽ファイルなどの録音された音を含み、デバイス350上で動作するアプリケーションによって生成された音も含んでもよい。
【００７０】
図に示すように、コンピューティングデバイス350は、いくつかの異なる形態で実装されてもよい。たとえば、コンピューティングデバイス350は、セルラー電話480として実装されてもよい。コンピューティングデバイス350は、スマートフォン382、携帯情報端末、または他の同様のモバイルデバイスの一部として実装されてもよい。
【００７１】
本明細書に記載のシステムおよび方法の様々な実装形態は、デジタル電子回路、集積回路、特別に設計されたASIC(特定用途向け集積回路)、コンピュータハードウェア、ファームウェア、ソフトウェア、および/またはそのような実装形態の組合せで実現できる。これらの様々な実装形態は、ストレージシステム、少なくとも1つの入力デバイス、および少なくとも1つの出力デバイスとの間で、データおよび命令を送受信するために結合される、専用または汎用目的であってもよい少なくとも1つのプログラマブルプロセッサを含むプログラマブルシステム上で実行可能および/または解釈可能な1つまたは複数のコンピュータプログラムにおける実装形態を含むことができる。
【００７２】
これらのコンピュータプログラム(プログラム、ソフトウェア、ソフトウェアアプリケーション、またはコードとしても知られる)は、プログラマブルプロセッサのための機械命令を含み、高レベル手続き型および/またはオブジェクト指向プログラミング言語で、および/またはアセンブリ/機械言語で実装することができる。本明細書で使用する「機械可読媒体」、「コンピュータ可読媒体」という用語は、たとえば機械命令を機械可読信号として受信する機械可読媒体を含む、機械命令および/またはデータをプログラマブルプロセッサに提供するために使用される、磁気ディスク、光ディスク、メモリ、プログラマブルロジックデバイス(PLD)などの任意のコンピュータプログラム製品、装置、および/またはデバイスを指す。「機械可読信号」という用語は、機械命令および/またはデータをプログラマブルプロセッサに提供するために使用される任意の信号を指す。
【００７３】
ユーザとの対話を提供するために、本明細書に記載されるシステムおよび技法は、ユーザに情報を表示するための、CRT(陰極線管)またはLCD(液晶ディスプレイ)モニタなどのディスプレイデバイス、ならびにキーボードおよび、ユーザがコンピュータに入力を提供することができる、たとえばマウスまたはトラックボールなどのポインティングデバイスを有するコンピュータ上に実装することができる。他の種類のデバイスを使用してユーザとの対話を提供することもでき、たとえばユーザに提供されるフィードバックは、たとえば視覚フィードバック、聴覚フィードバック、または触覚フィードバックなどの任意の形態の感覚フィードバックとすることができ、ユーザからの入力は、音響、音声、または触覚入力を含む任意の形態で受信することができる。
【００７４】
本明細書に記載されるシステムおよび技法は、たとえばデータサーバとしてのバックエンド構成要素を含む、またはアプリケーションサーバなどのミドルウェア構成要素を含む、またはたとえば、グラフィカルユーザインターフェースを有するクライアントコンピュータ、またはユーザが本明細書に記載されたシステムおよび技法の実装と対話することができるウェブブラウザを有するクライアントコンピュータなどのフロントエンド構成要素を含む、またはそのようなバックエンド、ミドルウェア、またはフロントエンド構成要素の任意の組合せを含むコンピューティングシステムにおいて実装することができる。システムの構成要素は、たとえば通信ネットワークなどの任意の形式または媒体のデジタルデータ通信によって相互接続することができる。通信ネットワークの例には、ローカルエリアネットワーク(“LAN”)、ワイドエリアネットワーク(“WAN”)、およびインターネットがある。
【００７５】
コンピューティングシステムは、クライアントおよびサーバを含むことができる。クライアントとサーバは、一般に互いに遠隔であり、典型的には通信ネットワークを介して対話する。クライアントとサーバとの関係は、それぞれのコンピュータ上で実行され、互いにクライアント-サーバ関係を有するコンピュータプログラムのおかげで生じる。
【００７６】
いくつかの実施形態について記載された。それにもかかわらず、本発明の範囲および趣旨から逸脱することなく様々な修正を加えることができることを理解されよう。さらに、図面に示される論理フローは、望ましい結果を達成するために、示された特定の順序または逐次的な順序を必ずしも必要としない。さらに、他のステップが設けられてもよく、または記載されたフローからステップが削除されてもよく、他の構成要素を記載のシステムに追加したり、そこから削除したりしてもよい。したがって、他の実施形態は、添付の特許請求の範囲内にある。
【符号の説明】
【００７７】
100  システム
104a  音声クエリ
104b  音声データ
104c  コンテキストデータ
104d  変換
106a  音声クエリ
106b  音声データ
110  ASRM
120  テーブル
130  言語モデル
130a  最初の言語モデル
130b  調整された言語モデル
300  コンピューティングデバイス
302  プロセッサ
304  メモリ
306  記憶デバイス
308  高速インターフェース
310  高速拡張ポート
312  低速インターフェース
314  低速バス
316  ディスプレイ
320  サーバ
322  ラップトップコンピュータ
324  ラックサーバシステム
350  コンピューティングデバイス
352  プロセッサ
354  ディスプレイ
356  ディスプレイインターフェース
358  制御インターフェース
360  オーディオコーデック
362  外部インターフェース
364  メモリ
366  通信インターフェース
368  トランシーバ
370  GPS受信機モジュール
372  拡張インターフェース
374  拡張メモリ
382  スマートフォン
480  セルラー電話
【図１】
2019527379.tif 000003
【図２】
2019527379.tif 000004
【図３】
2019527379.tif 000005
【国際調査報告】
2019527379.tif 000006
2019527379.tif 000007
2019527379.tif 000008