(58)【調査した分野】(Int.Cl.,DB名)
前記完了エンジンによって、前記発話の前記中間トランスクリプションが閾値サイズ有していると決定するステップであって、前記発話の前記中間トランスクリプションは、前記中間トランスクリプションが前記閾値サイズ有していると決定した後にのみ、前記以前受信した検索クエリに関連していると決定される、ステップをさらに含む、請求項1に記載の方法。
前記発話の前記中間トランスクリプションは、連続音声認識器によって生成され、前記1つまたは複数の結果は、サーチエンジンから取得される、請求項1または2に記載の方法。
前記発話の前記中間トランスクリプションが前記以前受信した検索クエリに関連していると決定するステップの後に、前記フロントエンドエンジンによって、前記サーチエンジンに前記以前受信した検索クエリを送信するステップをさらに含む、請求項1、2、または3に記載の方法。
前記発話の前記中間トランスクリプションが前記以前受信した検索クエリに関連していると決定するステップは、前記発話に関連したロケーションが前記以前受信した検索クエリに関連付けられたロケーションに関連していると決定するステップを含む、請求項1から4のいずれか一項に記載の方法。
前記発話の前記中間トランスクリプションが前記以前受信した検索クエリに関連していると決定するステップは、前記発話の前記中間トランスクリプションが前記発話と関連している同一のユーザによって送信された以前受信した検索クエリに関連していると決定するステップを含む、請求項1から5のいずれか一項に記載の方法。
前記発話の前記中間トランスクリプションが前記以前受信した検索クエリに関連していると決定するステップは、前記発話の前記中間トランスクリプションが前記発話と関連しているユーザとは異なるユーザによって送信された以前受信した検索クエリに関連していると決定するステップを含む、請求項1から5のいずれか一項に記載の方法。
前記発話の前記中間トランスクリプションが以前受信した検索クエリに関連していると決定するステップは、前記発話の前記中間トランスクリプションが前記以前受信した検索クエリの一部と同一であると決定するステップをさらに含む、請求項1から8のいずれか一項に記載の方法。
前記発話の前記中間トランスクリプションが以前受信した検索クエリに関連していると決定するステップは、前記発話の前記中間トランスクリプションが前記以前受信した検索クエリの一部に対する閾値類似度内にあると決定するステップをさらに含む、請求項1から8のいずれか一項に記載の方法。
前記動作は、前記完了エンジンによって、前記発話の前記中間トランスクリプションが閾値サイズ有していると決定するステップであって、前記発話の前記中間トランスクリプションは、前記中間トランスクリプションが前記閾値サイズ有していると決定した後にのみ、前記以前受信した検索クエリに関連していると決定される、ステップをさらに含む、請求項11に記載のシステム。
前記発話の前記中間トランスクリプションは、連続音声認識器によって生成され、前記1つまたは複数の結果は、サーチエンジンから取得される、請求項11または12に記載のシステム。
前記動作は、前記発話の前記中間トランスクリプションが前記以前受信した検索クエリに関連していると決定するステップの後に、前記フロントエンドエンジンによって、前記サーチエンジンに前記以前受信した検索クエリを送信するステップをさらに含む、請求項11、12、または13に記載のシステム。
前記発話の前記中間トランスクリプションが前記以前受信した検索クエリに関連していると決定するステップは、前記発話に関連したロケーションが前記以前受信した検索クエリに関連付けられたロケーションに関連していると決定するステップを含む、請求項11、12、13、または14に記載のシステム。
前記発話の前記中間トランスクリプションが前記以前受信した検索クエリに関連していると決定するステップは、前記発話の前記中間トランスクリプションが前記発話と関連している同一のユーザによって送信された以前受信した検索クエリに関連していると決定するステップを含む、請求項11、12、13、14、または15に記載のシステム。
その実行時に、前記1つまたは複数のコンピュータに、請求項1から10のいずれか一項に記載の方法を含む動作を行わせる、1つまたは複数のコンピュータによって実行可能な命令を含むソフトウェアを記憶する、コンピュータ可読記憶媒体。
【発明を実施するための形態】
【0011】
図1aは、発話の中間トランスクリプションに基づいて検索結果を取得するためのシステム100を図示している。簡潔には、システム100は、発話の中間トランスクリプションを取得し得るし、発話の最終的なトランスクリプションが取得される前に、中間トランスクリプションが以前受信した検索クエリに関連していると決定し、以前受信した検索クエリに応答する結果を取得し得る。システム100は、モバイルコンピュータデバイス102、フロントエンドエンジン104、連続音声認識器106、完了エンジン(completion engine)108、クエリログ110、サーチエンジン112、およびキャッシュ114を含む。いくつかの例においては、連続音声認識器106、完了エンジン108、およびサーチエンジン112のうちの1つまたは複数は、フロントエンドエンジン104によって含まれ得る。モバイルコンピュータデバイス102は、1つまたは複数のネットワークを通じてフロントエンドエンジン104と通信する。モバイルコンピュータデバイス102は、マイクロフォン、カメラ、またはユーザ116からの発話を検出するための他の検出手段を含み得る。
【0012】
いくつかの例においては、ユーザ116が、彼のお気に入りのチームがプレイしている試合のスコアを知りたいと望む。したがって、ユーザ116は、そのようなスコアについて、質問、例えば、音声による自然言語クエリを行い得る。しかしながら、質問を提供する前に、すなわち、質問が完了する前に、または、質問全体を提供する前に、モバイルコンピュータデバイス102は、質問の冒頭の一部の発話を検出する。図示した例においては、ユーザ116による質問が完了する前に、モバイルコンピュータデバイス102は、ユーザ116が質問全体を提供するのに先立って、発話として時間t
0において、例えば、「What's the score」といった、質問の冒頭の一部を検出する。
【0013】
いくつかの例においては、発話は、音声クエリ以外の音声コマンドを含み得る。例えば、音声コマンドは、システム100の注意を呼び起こすために話される所定の用語である、例えば「アテンションワード」または「音声アクション開始コマンド」といった「ホットワード」を含み得る。
【0014】
フロントエンドエンジン104は、例えば、1つまたは複数のネットワークを介して、モバイルコンピュータデバイス102から、発話を符号化しているオーディオデータを受信する。モバイルデバイスが発話の冒頭の一部を検出し終えた部分について、冒頭の一部を符号化しているオーディオデータが、ユーザが質問全体をまだ提供し終えていない場合にでさえも冒頭の一部を検出し終えると、フロントエンドエンジンにモバイルデバイスによって送信され得る。いくつかの例においては、オーディオデータは、モバイルコンピュータデバイス102のロケーションデータを含む環境データをさらに含み得る。フロントエンドエンジン104は、発話をオーディオデータから抽出することを含む、オーディオデータの処理を適切にし、発話を連続音声認識器106に提供し得る。
【0015】
連続音声認識器106は、発話の冒頭の一部のトランスクリプションであり得る、発話の中間トランスクリプションを生成する。発話の中間トランスクリプションを生成することは、連続音声認識器106がテキストデータまたはテキスト関連データに発話を文字起こしすることを含み得る。いくつかの例においては、連続音声認識器106は、発話が書き起こされた形で言語の表現を提供し得る。例えば、連続音声認識器106は、発話を文字起こしして、「What's the score」というトランスクリプションを生成する。連続音声認識器106は、中間トランスクリプションをフロントエンドエンジン104に提供する。
【0016】
フロントエンドエンジン104が、時間t
1において、連続音声認識器106から発話の中間トランスクリプションを取得する。フロントエンドエンジン104は、中間トランスクリプションを適切に処理し、中間トランスクリプションを完了エンジン108に提供し得る。そのために、図示した例においては、完了エンジン108は、中間トランスクリプション「What's the score」を受信し、例えば、フロントエンドエンジン104および/または連続音声認識器106によって、発話の最終的なトランスクリプションを取得することに先立って、以下で説明しているように、発話の中間トランスクリプションを適切に処理する。
【0017】
特に、完了エンジン108は、発話の中間トランスクリプションが以前受信した検索クエリに関連していると決定する。図示した例においては、完了エンジン108は、クエリQ
1, Q
2, …, Q
Nと示した以前受信した検索クエリを含むクエリログ110にアクセスする。完了エンジン108は、発話の中間トランスクリプション「What's the score」が以前受信した検索クエリQ
1「What's the score of the Sharks game」に関連しているとともに以前受信した検索クエリQ
2「What's the score of the Flounders game」にも関連していると決定する。
【0018】
いくつかの例においては、完了エンジン108は、発話の中間トランスクリプションが以前受信した検索クエリの一部と同一であると決定する。特に、完了エンジン108は、発話の中間トランスクリプションが以前受信した検索クエリの冒頭の一部またはプレフィックスと同一である、例えば、一致するまたは同じである、と決定する。図示した例においては、完了エンジン108は、発話の中間トランスクリプション「What's the score」が以前受信した検索クエリQ
1「What's the score of the Sharks game」の冒頭の一部と同一であるとともに、以前受信した検索クエリQ
2「What's the score of the Flounders game」の冒頭の一部と同一であると決定する。
【0019】
いくつかの例においては、完了エンジン108は、発話の中間トランスクリプションが閾値類似度内にあるまたは以前受信した検索クエリの一部の所定の編集距離内にあると決定する。特に、完了エンジン108は、発話の中間トランスクリプションが以前受信した検索クエリの冒頭の一部またはプレフィックスに対する閾値類似度内にあると決定する。例えば、完了エンジン108は、発話の中間トランスクリプション「What's the score」が以前受信した検索クエリ「What is the score of the Sharks game」に対する閾値類似度内にあると決定し得る。完了エンジン108は、発話の中間トランスクリプション「What's the score」が以前受信した検索クエリの冒頭の一部「What is the score」に対する閾値類似度内にあると決定する。いくつかの例においては、閾値類似度は、発話の中間トランスクリプションと、例えば以前受信した検索クエリの冒頭の一部といった一部との間の編集距離に基づく。
【0020】
いくつかの例においては、完了エンジン108は、発話の中間トランスクリプションが閾値サイズまたは閾値長有していると決定した後にのみ、発話の中間トランスクリプションが以前受信した検索クエリに関連していると決定する。完了エンジン108は、発話の中間トランスクリプションを閾値サイズと比較し、発話の中間トランスクリプションが少なくとも閾値サイズであることに応じて、発話の中間トランスクリプションが以前受信した検索クエリに関連していると決定する。例えば、完了エンジン108は、発話の中間トランスクリプション「What's the score」を閾値サイズと比較し、それに応じて、発話の中間トランスクリプション「What's the score」が以前受信した検索クエリQ
1「What's the score of the Sharks game」に関連しているとともに以前受信した検索クエリQ
2「What's the score of the Flounders game」にも関連していると決定し得る。いくつかの例においては、閾値サイズは、音素、音節、または単語の閾値数に基づく。
【0021】
いくつかの例においては、完了エンジン108は、発話に関連したロケーションが以前受信した検索クエリに関連付けられたロケーションに関連していると決定する。特に、完了エンジン108にモバイルコンピュータデバイス102からオーディオデータで提供されるように、フロントエンドエンジン104は、発話に関連したロケーションを提供し得る。完了エンジン108は、発話に関連したロケーションが以前受信した検索クエリに関連付けられたロケーションに関連していると決定したことに基づいて、発話の中間トランスクリプションが以前受信した検索クエリに関連しているとさらに決定し得る。いくつかの例においては、完了エンジン108は、発話の中間トランスクリプションが以前受信した検索クエリに関連していると決定し得るし、発話に関連したロケーションが以前受信した検索クエリに関連付けられたロケーションに関連しているとさらに決定し得る。例えば、図示した例においては、時間t
0においてユーザ116によって提供された発話は、ユーザ116のホームロケーションに関連し得る。完了エンジン108は、以前受信した検索クエリQ
1およびQ
2のうちの1つまたは両方ともホームロケーションに関連していると決定し得る。
【0022】
いくつかの例においては、完了エンジン108は、発話の中間トランスクリプションがユーザ116によって送信された以前受信した検索クエリに関連していると決定する。特に、以前受信した検索クエリは、例えば、発話と関連しているユーザ116といった、同一のユーザによって送信されたものである。そのため、完了エンジン108は、発話および以前受信した検索クエリが例えばユーザ116といった同一のユーザに関連していると決定したことに基づいて、発話の中間トランスクリプションが以前受信した検索クエリに関連しているとさらに決定し得る。例えば、図示した例においては、発話ならびに以前受信した検索クエリQ
1およびQ
2の両方が、ユーザ116に関連している。
【0023】
いくつかの例においては、完了エンジン108は、発話の中間トランスクリプションがユーザ116とは異なるユーザによって送信された以前受信した検索クエリに関連していると決定する。特に、以前受信した検索クエリは、発話と関連しているユーザ116とは異なるユーザによって送信されていたものである。そのため、完了エンジン108は、発話および以前受信した検索クエリが異なるユーザに関連していると決定したことに基づいて、発話の中間トランスクリプションが以前受信した検索クエリに関連しているとさらに決定し得る。
【0024】
完了エンジン108は、時間t
2において、フロントエンドエンジン104に以前受信した検索クエリQ
1およびQ
2を提供する。フロントエンドエンジン104は、以前受信した検索クエリQ
1およびQ
2に応答したものとして識別された結果を取得する。特に、フロントエンドエンジン104は、時間t
3において、サーチエンジン112による再実行のためにサーチエンジン112に以前受信した検索クエリQ
1およびQ
2を提供する。サーチエンジン112は、クエリQ
1およびQ
2の各々に関する電子文書の検索を実施して、クエリQ
1およびQ
2にそれぞれ応答する結果R
1およびR
2を識別する。サーチエンジン112は、時間t
4において、フロントエンドエンジン104に結果R
1およびR
2を提供する。フロントエンドエンジン104は、時間t
5において、キャッシュ114に結果R
1およびR
2を記憶する。特に、図示した例においては、フロントエンドエンジン104は、キャッシュ114に、クエリQ
1、結果R
1、およびクエリQ
1と結果R
1との間の関連付けを記憶するとともに、キャッシュ114に、クエリQ
2、結果R
2、およびクエリQ
2と結果R
2との間の関連付けをさらに記憶する。
【0025】
図1bは、発話の最終的なトランスクリプションについての検索結果を提供するためのシステム100を図示している。簡潔には、システム100は、発話の最終的なトランスクリプションをさらに取得し、発話の最終的なトランスクリプションもまた以前受信した検索クエリに関連していると決定し、出力のために記憶されている結果を提供し得る。
【0026】
いくつかの例においては、ユーザ116は、時間t
0において、質問を完了する、すなわち、はじめに提供していた質問全体を提供する。図示した例においては、モバイルコンピュータデバイス102は、時間t
6において、例えば、「of the Sharks game」といった、質問の最終部分の発話を検出する。いくつかの例においては、時間t
6は、時間t
2とt
5との間に生じ得る。システム100は、発話の冒頭の一部「What's the score」の処理を開始し得る、すなわち、例えば、「of the Sharks game」といった、質問の最終部分の発話を検出することに先立っておよび/または同時に、発話の中間トランスクリプションを取得し、中間トランスクリプションが以前受信した検索クエリに関連していると決定し、および/または以前受信した検索クエリに応答した結果を取得し得る。
【0027】
フロントエンドエンジン104は、例えば、1つまたは複数のネットワークを介して、モバイルコンピュータデバイス102から、発話を符号化しているオーディオデータを受信する。フロントエンドエンジン104は、発話をオーディオデータから抽出することを含む、オーディオデータの処理を適切にし、発話を連続音声認識器106に提供し得る。いくつかの例においては、フロントエンドエンジン104は、「What's the score of the Sharks game」という発話全体を連続音声認識器106に提供する。いくつかの例においては、フロントエンドエンジン104は、「of the Sharks game」という発話の残りの部分を連続音声認識器106に提供する。
【0028】
連続音声認識器106は、発話の最終的なトランスクリプションを生成する。発話の最終的なトランスクリプションを生成することは、連続音声認識器106がテキストデータまたはテキスト関連データに発話を文字起こしすることを含み得る。いくつかの例においては、連続音声認識器106は、発話が書き起こされた形で言語の表現を提供し得る。例えば、連続音声認識器106は、発話全体を文字起こしして、「What's the score of the Sharks game」の最終的なトランスクリプションを生成する。連続音声認識器106は、最終的なトランスクリプションをフロントエンドエンジン104に提供する。
【0029】
フロントエンドエンジン104は、時間t
7において、連続音声認識器106から最終的なトランスクリプションを取得する。フロントエンドエンジン104は、最終的なトランスクリプションを適切に処理し、最終的なトランスクリプションを完了エンジン108に提供し得る。そのために、図示した例においては、完了エンジン108は、最終的なトランスクリプション「What's the score of the Sharks game」を受信し、以下で説明しているように、発話の最終的なトランスクリプションを適切に処理する。
【0030】
いくつかの実施形態においては、完了エンジン108は、時間t
8において、発話の最終的なトランスクリプションも以前受信した検索クエリに関連していると決定する。特に、完了エンジン108は、発話の中間トランスクリプションに関連しているものとして識別された以前受信した検索クエリQ
1およびQ
2にアクセスする。いくつかの例においては、完了エンジン108は、発話の最終的なトランスクリプションを以前受信した検索クエリQ
1およびQ
2の各々と比較する。完了エンジン108は、最終的なトランスクリプション「What's the score of the Sharks game」が以前受信した検索クエリQ
1「What's the score of the Sharks game」に関連していると決定する。さらに、いくつかの例においては、完了エンジン108は、最終的なトランスクリプション「What's the score of the Sharks game」が以前受信した検索クエリQ
2「What's the score of the Sharks game」に関連していないと決定する。
【0031】
いくつかの例においては、完了エンジン108は、発話の最終的なトランスクリプションが以前受信した検索クエリと同一であると決定する。完了エンジン108は、発話の最終的なトランスクリプションが以前受信した検索クエリと類似しているまたは同一である、例えば、一致するまたは同じであるまたは同様であると決定する。図示した例においては、完了エンジン108は、発話の最終的なトランスクリプション「What's the score of the Sharks game」が以前受信した検索クエリQ
1「What's the score of the Sharks game」と同一であると決定する。
【0032】
いくつかの例においては、完了エンジン108は、発話の最終的なトランスクリプションが以前受信した検索クエリに対する閾値類似度内にあると決定する。完了エンジン108は、発話の最終的なトランスクリプションが以前受信した検索クエリに対する閾値類似度内にあると決定する。例えば、完了エンジン108は、発話の最終的なトランスクリプション「What's the score of the Sharks game」が以前受信した検索クエリ「What is the score of the Sharks game」に対する閾値類似度内にあると決定し得る。完了エンジン108は、発話の最終的なトランスクリプション「What's the score of the Sharks game」が以前受信した検索クエリ「What is the score of the Sharks game」に対する閾値類似度内にあると決定する。いくつかの例においては、閾値類似度は、発話の最終的なトランスクリプションと以前受信した検索クエリとの間の編集距離に基づく。
【0033】
完了エンジン108は、以前受信した検索クエリQ
1をフロントエンドエンジン104に提供する、または以前受信した検索クエリQ
1のインディケーションをフロントエンドエンジン104に提供する。フロントエンドエンジン104は、以前受信した検索クエリQ
1と関連しているそれぞれの結果を識別するためにキャッシュ114にアクセスする。特に、フロントエンドエンジン104は、キャッシュ114によって記憶されているような、以前受信した検索クエリQ
1と結果R
1との間の関連付けを識別し、時間t
9において、結果R
1を受信する。いくつかの例においては、以前受信した検索クエリQ
1と結果R
1との間の関連付けを識別したことに応じて、フロントエンドエンジン104は、キャッシュ114から、クエリQ
2、結果R
2、およびクエリQ
2と結果R
2との間の関連付けを除去する。
【0034】
完了エンジン108は、時間t
10において、出力のために記憶されている結果R
1をモバイルコンピュータデバイス102に提供する。発話の最終的なトランスクリプション「What's the score of the Sharks game」も以前受信した検索クエリQ
1に関連していると完了エンジン108が決定したことに応じて、フロントエンドエンジン104は、出力のために記憶されている結果R
1をモバイルコンピュータデバイス102に提供する。
【0035】
図2は、発話の中間トランスクリプションに基づいて検索結果を取得するための例示的なプロセス200のフローチャートを図示している。例示的なプロセス200は、1つまたは複数のコンピュータデバイスによって実行され得る。例えば、モバイルコンピュータデバイス102、フロントエンドエンジン104、連続音声認識器106、完了エンジン108、および/またはサーチエンジン112は、例示的なプロセス200を実行するために使用され得る。
【0036】
発話を符号化しているオーディオデータを受信する(202)。特に、フロントエンドエンジン104は、オーディオデータをモバイルコンピュータデバイス102から受信する。例えば、オーディオデータは、例えば、「Book a flight to」といった、発話の冒頭の一部を含む。
【0037】
発話の中間トランスクリプションを取得する(204)。特に、連続音声認識器106は、発話の中間トランスクリプションを生成する。例えば、連続音声認識器106は、発話を文字起こしして、「Book a flight to」というトランスクリプションを生成する。フロントエンドエンジン104は、連続音声認識器106から発話の中間トランスクリプションを取得する。
【0038】
発話の中間トランスクリプションが以前受信した検索クエリに関連していると決定される(206)。特に、発話の最終的なトランスクリプションを取得する前に、完了エンジン108は、発話の中間トランスクリプションが以前受信した検索クエリに関連していると決定する。例えば、完了エンジン108は、発話の中間トランスクリプション「Book a flight to」が以前受信した検索クエリQ
A「Book a flight to Austin」に関連しているとともに以前受信した検索クエリQ
B「Book a flight to Mexico」にも関連していると決定する。
【0039】
以前受信した検索クエリに応答した結果を取得する(208)。特に、発話の最終的なトランスクリプションを取得する前に、サーチエンジン112は、以前受信した検索クエリを実行して、以前受信した検索クエリに応答した結果を識別する。例えば、サーチエンジン112は、クエリQ
AおよびQ
Bの各々に関する電子文書の検索を実施して、クエリQ
AおよびQ
Bにそれぞれ応答する結果R
AおよびR
Bを識別する。フロントエンドエンジン104は、サーチエンジンから結果R
AおよびR
Bを取得する。
【0040】
結果を記憶する(210)。特に、発話の最終的なトランスクリプションを取得する前に、フロントエンドエンジンは、キャッシュ内の結果を記憶する。例えば、フロントエンドエンジン104は、キャッシュ114に、クエリQ
A、結果R
A、およびクエリQ
Aと結果R
Aとの間の関連付けを記憶するとともに、キャッシュ114に、クエリQ
B、結果R
B、およびクエリQ
Bと結果R
Bとの間の関連付けをさらに記憶する。
【0041】
図3は、発話の最終的なトランスクリプションについての検索結果を提供するための例示的なプロセスのフローチャート300を図示している。例示的なプロセス300は、1つまたは複数のコンピュータデバイスによって実行され得る。例えば、モバイルコンピュータデバイス102、フロントエンドエンジン104、連続音声認識器106、完了エンジン108、および/またはサーチエンジン112は、例示的なプロセス300を実行するために使用され得る。
【0042】
発話の最終的なトランスクリプションを取得する(302)。特に、連続音声認識器106は、発話の最終的なトランスクリプションを生成する。例えば、連続音声認識器106は、発話全体を文字起こしして、最終的なトランスクリプション「Book a flight to Austin」を生成する。フロントエンドエンジン104は、連続音声認識器106から発話の最終的なトランスクリプションを取得する。
【0043】
発話の最終的なトランスクリプションが以前受信した検索クエリにも関連していると決定される(304)。特に、完了エンジン108は、発話の最終的なトランスクリプションも以前受信した検索クエリに関連していると決定する。例えば、完了エンジン108は、最終的なトランスクリプション「Book a flight to Austin」が以前受信した検索クエリQ
A「Book a flight to Austin」に関連していると決定する。
【0044】
発話の最終的なトランスクリプションも以前受信した検索クエリに関連していると決定するステップに応じて、記憶されている結果が出力のために提供される。特に、フロントエンドエンジン104は、以前受信した検索クエリと関連しているそれぞれの結果を識別するためにキャッシュ114にアクセスする。完了エンジン108が発話の最終的なトランスクリプション「Book a flight to Austin」も以前受信した検索クエリQ
Aに関連していると決定したことに応答して、フロントエンドエンジン104は、出力のために記憶されている結果R
Aをモバイルコンピュータデバイス102に提供する。
【0045】
図4は、本明細書で説明した技法を用いて使用され得る一般的なコンピュータデバイス400および一般的なモバイルコンピュータデバイス440の例を示している。コンピュータデバイス400は、ラップトップ、デスクトップ、ワークステーション、携帯情報端末、サーバ、ブレードサーバ、メインフレーム、および他の適切なコンピュータなどといった、様々な形式のデジタルコンピュータを表すことを意図している。コンピュータデバイス440は、携帯情報端末、セルラ電話、スマートフォン、および他の同様のコンピュータデバイスなどといった、様々な形式のモバイルデバイスを表すことを意図している。本明細書において示したコンポーネント、それらの接続および関係、およびそれらの機能は、例示的なものを意味しているに過ぎず、本明細書において説明および/または主張した発明の実施形態を限定することは意味していない。
【0046】
コンピュータデバイス400は、プロセッサ402、メモリ404、ストレージデバイス406、メモリ404および高速拡張ポート410に接続されている高速インターフェース408、ならびに低速バス414およびストレージデバイス406に接続されている低速インターフェース412を含む。コンポーネント402、404、406、408、410、および412の各々は、様々なバスを使用して相互接続されており、必要に応じて共通のマザーボード上にまたは他の方式で組み込まれ得る。プロセッサ402は、メモリ404にまたはストレージデバイス406上に記憶されている命令を含むコンピュータデバイス400内での実行のための命令を処理して、高速インターフェース408に接続されているディスプレイ416などの外部入力/出力デバイスに対するGUIのためのグラフィカル情報を表示し得る。他の実施形態においては、複数のプロセッサおよび/または複数のバスが、必要に応じて、複数のメモリおよびタイプのメモリとともに使用され得る。または、複数のコンピュータデバイス400は、(例えば、サーババンク、ブレードサーバのグループ、またはマルチプロセッサシステムとして)必須の動作の一部を提供する各デバイスに接続され得る。
【0047】
メモリ404は、コンピュータデバイス400内に情報を記憶する。ある実施形態においては、メモリ404は、揮発性メモリユニットまたはユニットである。別の実施形態においては、メモリ404は、不揮発性メモリユニットまたはユニットである。メモリ404はまた、磁気または光ディスクなどの他の形式のコンピュータ可読媒体であり得る。
【0048】
ストレージデバイス406は、コンピュータデバイス400のためのマスストレージを提供することができる。ある実施形態においては、ストレージデバイス406は、フロッピーディスクデバイス、ハードディスクデバイス、光ディスクデバイス、またはテープデバイス、フラッシュメモリもしくは他の同様のソリッドステートメモリデバイス、またはストレージエリアネットワーク内のデバイスまたは他の構成を含むデバイスのアレイなどといった、コンピュータ可読媒体であり得るまたはコンピュータ可読媒体を含み得る。コンピュータプログラム製品は、情報キャリアに有形的に具現化され得る。コンピュータプログラム製品はまた、実行されると、上述したようなものなどの1つまたは複数の方法を行う命令を含み得る。情報キャリアは、メモリ404、ストレージデバイス406、またはプロセッサ402上のメモリなどといった、コンピュータ可読媒体または機械可読媒体である。
【0049】
高速コントローラ408はコンピュータデバイス400のための帯域集約動作を管理する一方で、低速コントローラ412はより低い帯域集約動作を管理する。ファンクションのそのような割り振りは、例示的なものに過ぎない。ある実施形態においては、高速コントローラ408は、メモリ404、ディスプレイ416(例えば、グラフィックプロセッサまたはアクセラレータを介して)、および高速拡張ポート410に接続されており、様々な拡張カード(図示せず)に対応し得る。その実施形態においては、低速コントローラ412は、ストレージデバイス406および低速拡張ポート414に接続されている。様々な通信ポート(例えば、USB、Bluetooth(登録商標)、イーサネット(登録商標)、無線イーサネット(登録商標))を含み得る低速拡張ポートは、例えば、ネットワークアダプタを介して、キーボード、ポインティングデバイス、スキャナ、またはスイッチまたはルータなどのネットワークデバイスなどといった、1つまたは複数の入力/出力デバイスに接続され得る。いくつかの例においては、ストレージデバイス406は、高速バスに接続されている。
【0050】
コンピュータデバイス400は、図中に示したように、多数の異なる形式で実装され得る。例えば、標準的なサーバ420として実装され得る、または、そのようなサーバのグループ内に複数回実装され得る。ラックサーバシステム424の一部としても実装され得る。加えて、ラップトップコンピュータ422などのパーソナルコンピュータに実装され得る。あるいは、コンピュータデバイス400のコンポーネントは、デバイス440などのモバイルデバイス内にある他のコンポーネント(図示せず)に接続され得る。そのようなデバイスの各々は、コンピュータデバイス400、440のうちの1つまたは複数を含み得るし、システム全体は、互いに通信する複数のコンピュータデバイス400、440で構成され得る。
【0051】
コンピュータデバイス440は、プロセッサ452、メモリ464、ディスプレイ454などの入力/出力デバイス、通信インターフェース476、およびトランシーバ468、ならびに他のコンポーネントを含む。デバイス440はまた、マイクロドライブまたは他のデバイスなどといった、追加のストレージを提供するストレージデバイスを備え得る。コンポーネント440、452、464、454、476、および468の各々は、様々なバスを使用して相互接続されており、いくつかのコンポーネントは、必要に応じて共通のマザーボード上にまたは他の方式で組み込まれ得る。
【0052】
プロセッサ452は、メモリ464に記憶されている命令を含む、コンピュータデバイス640内の命令を実行し得る。プロセッサは、別個のおよび複数のアナログおよびデジタルプロセッサを含むチップのチップセットとして実装され得る。プロセッサは、例えば、ユーザインターフェースの制御、デバイス440によって実行されるアプリケーション、およびデバイス440による無線通信などといった、デバイス440の他のコンポーネントについての調整を提供し得る。
【0053】
プロセッサ452は、ディスプレイ454に接続されている制御インターフェース458およびディスプレイインターフェース456を介してユーザと通信し得る。ディスプレイ454は、例えば、TFT LCD(Thin-Film-Transistor Liquid Crystal Display)もしくはOLED(Organic Light Emitting Diode)ディスプレイ、または他の適切なディスプレイ技術であり得る。ディスプレイインターフェース456は、ユーザにグラフィカルな情報および他の情報を提示するためにディスプレイ454を駆動するのに適した回路を含み得る。制御インターフェース448は、ユーザからコマンドを受信し、それらをプロセッサ452への送信のために変換し得る。加えて、外部インターフェース462は、他のデバイスとのデバイス440の近距離エリア通信を可能にするために、プロセッサ452との通信において提供され得る。外部インターフェース462は、例えば、いくつかの実施形態においては有線通信をまたは他の実施形態においては無線通信を提供し得るし、複数のインターフェースも使用され得る。
【0054】
メモリ464は、コンピュータデバイス440内の情報を記憶する。メモリ464は、コンピュータ可読媒体、揮発性メモリユニットもしくはユニット、または不揮発性メモリユニットもしくはユニットのうちの1つまたは複数として実装され得る。拡張メモリ444はまた、例えば、SIMM(Single In Line Memory Module)カードインターフェースを含み得る、拡張インターフェース442を介して、デバイス440に提供および接続され得る。そのような拡張メモリ444は、デバイス440に追加ストレージ領域を提供し得るし、または、デバイス440のためのアプリケーションまたは他の情報も記憶し得る。特に、拡張メモリ444は、上述したプロセスを実行または補完する命令を含み得るし、セキュアな情報も含み得る。そのため、例えば、拡張メモリ444は、デバイス440のためのセキュリティモジュールとして提供され得るし、デバイス440のセキュアな使用を可能にする命令でプログラムされ得る。加えて、セキュアなアプリケーションは、ハッキング不可な方式でSIMMカードに対する配置識別情報などの追加の情報とともに、SIMMカードを介して提供され得る。
【0055】
メモリは、以下で説明しているように、例えば、フラッシュメモリおよび/またはNVRAMメモリを含み得る。ある実施形態においては、コンピュータプログラム製品は、情報キャリア内に有形的に具現化される。コンピュータプログラム製品は、実行されると、上述したようなものなどの1つまたは複数の方法を行う命令を含み得る。情報キャリアは、メモリ464、拡張メモリ444、プロセッサ452上のメモリ、または例えばトランシーバ468または外部インターフェース462を介して受信され得る伝搬信号などといった、コンピュータ可読媒体または機械可読媒体である。
【0056】
デバイス440は、通信インターフェース476を介して無線で通信し得るし、そこで必要とされるデジタル信号処理回路を含み得る。通信インターフェース476は、GSM(登録商標)音声通話、SMS、EMS、もしくはMMSメッセージング、CDMA、TDMA、PDC、WCDMA(登録商標)、CDMA2000、またはGPRSなどといった、様々なモードまたはプロトコルに準拠した通信を提供し得る。そのような通信は、例えば、無線周波数トランシーバ468を介して生じ得る。加えて、短距離通信は、Bluetooth(登録商標)、WiFi、または他のそのようなトランシーバ(図示せず)などを使用して生じ得る。加えて、GPS(Global Positioning System)受信機モジュール440は、追加のナビゲーション関連およびロケーション関連の無線データをデバイス440に提供し得るし、必要に応じてデバイス440上で動作するアプリケーションによって使用され得る。
【0057】
デバイス440はまた、オーディオコーデック460を使用して音声で通信し得るし、ユーザから音声による情報を受信してそれを利用可能なデジタル情報に変換し得る。同様に、オーディオコーデック460は、例えばデバイス440のハンドセット内のスピーカなどを介して、ユーザのための可聴サウンドを生成する。そのようなサウンドは、音声電話通話からのサウンドを含み得るし、録音されたサウンド(例えば、音声メッセージ、音楽ファイルなど)を含み得るし、デバイス440上で動作するアプリケーションによって生成されたサウンドも含み得る。
【0058】
コンピュータデバイス440は、図中に示したように、多数の異なる形式で実装され得る。例えば、セルラ電話480として実装され得る。スマートフォン482、携帯情報端末、または他の同様のモバイルデバイスの一部としても実装され得る。
【0059】
本明細書で説明したシステムおよび技法の様々な実施形態は、デジタル電子回路、集積回路、専用ASIC(特定用途向け集積回路)、コンピュータハードウェア、ファームウェア、ソフトウェア、および/またはその組合せで実現され得る。これらの様々な実施形態は、ストレージシステム、少なくとも1つの入力デバイス、および少なくとも1つの出力デバイスからデータおよび命令を受信するとともにそれらにデータおよび命令を送信するために接続されている、特殊または汎用であり得る、少なくとも1つのプログラマブルプロセッサを含む、プログラマブルシステム上で実行可能および/またはインタープリタ可能である1つまたは複数のコンピュータプログラムにおける実施形態を含み得る。
【0060】
これらのコンピュータプログラム(プログラム、ソフトウェア、ソフトウェアアプリケーション、またはコードとしても知られる)は、プログラマブルプロセッサのための機械命令を含み、高級手続き型および/もしくはオブジェクト指向のプログラミング言語でならびに/またはアセンブリ/機械語で実装され得る。本明細書で使用しているように、「機械可読媒体」、「コンピュータ可読媒体」という用語は、機械可読信号として機械命令を受信する機械可読媒体を含む、プログラマブルプロセッサに機械命令および/またはデータを提供するために使用される任意のコンピュータプログラム製品、装置、および/またはデバイス(例えば、磁気ディスク、光ディスク、メモリ、Programmable Logic Device(PLD))を指す。「機械可読信号」という用語は、プログラマブルプロセッサに機械命令および/またはデータを提供するために使用される任意の信号を指す。
【0061】
ユーザとのインタラクションを提供するために、本明細書で説明したシステムおよび技法は、ユーザに情報を表示するための表示デバイス(例えば、CRT(陰極線管)またはLCD(液晶ディスプレイ)モニタ)と、ユーザがそれらによってコンピュータに入力を提供し得るキーボードおよびポインティングデバイス(例えば、マウスまたはトラックボール)とを有するコンピュータ上に実装され得る。他の種類のデバイスを、同様にユーザとのインタラクションを提供するために使用してもよく、例えば、ユーザに提供されるフィードバックは、任意の形式の感覚フィードバック(例えば、視覚フィードバック、聴覚フィードバック、または触覚フィードバック)であり得るし、ユーザからの入力は、音響、音声、または触覚入力を含む、任意の形式で受信され得る。
【0062】
本明細書で説明したシステムおよび技法は、(例えば、データサーバとして)バックエンドコンポーネントを含む、またはミドルウェアコンポーネント(例えば、アプリケーションサーバ)を含む、またはフロントエンドコンポーネント(例えば、グラフィックユーザインターフェースを有するクライアントコンピュータもしくはユーザがそれを介して本明細書で説明したシステムおよび技法の実施形態とのインタラクションを行い得るウェブブラウザ)を含む、またはそのようなバックエンド、ミドルウェア、もしくはフロントエンドコンポーネントの任意の組合せを含む、コンピューティングシステムにおいて実装され得る。システムのコンポーネントは、任意の形式または媒体のデジタルデータ通信(例えば、通信ネットワーク)によって相互接続され得る。通信ネットワークの例としては、ローカルエリアネットワーク(「LAN」)、ワイドエリアネットワーク(「WAN」)、およびインターネットを含む。
【0063】
コンピューティングシステムは、クライアントとサーバとを含み得る。クライアントとサーバとは、一般的に互いにリモートにあり、通常は通信ネットワークを介してインタラクションを行う。クライアントとサーバとの関係は、それぞれのコンピュータ上で動作するとともに互いにクライアントサーバ関係を有するコンピュータプログラムによって生じる。
【0064】
本開示はいくつかの具体例を含んでいるが、これらを、開示の例示的な実施形態の特徴の説明としてではなく、開示の範囲または主張され得ることに対する限定として解釈すべきではない。また、別個の実施形態に関連する本開示において説明したある特徴が、単一の実施形態における組合せで提供されてもよい。また、反対に、単一の実施形態に関連して説明した様々な特徴が、複数の実施形態で別々にまたは任意の適切なサブコンビネーションで提供されてもよい。さらに、特徴をある組合せにおける動作として上記で説明している場合、さらには当初はそのように主張している場合さえあったとしても、主張した組合せのうちの1つまたは複数の特徴を、いくつかのケースでは組合せから削除してもよいし、主張した組合せが、サブコンビネーションまたはサブコンビネーションの変形を対象としていてもよい。
【0065】
同様に、動作を特定の順序で図面に記載しているが、そのような動作を図示した特定の順序でまたはシーケンシャルな順序で行う必要があるとして、または、望ましい結果を達成するために図示した動作のすべてを行う必要があるとして、理解すべきではない。ある環境においては、マルチタスク処理およびパラレル処理が都合がよい場合がある。さらに、上述した実施形態における様々なシステムコンポーネントの分離をすべての実施形態においてそのような分離が必要であるとして理解すべきではないし、説明したプログラムコンポーネントおよびシステムは一般的に単一のソフトウェア製品に一緒に統合され得るまたは複数のソフトウェア製品にパッケージされ得ることを理解すべきである。
【0066】
上に述べたように、本開示の特定の実施形態を説明してきた。他の実施形態も以下の特許請求の範囲の範囲内にある。例えば、特許請求の範囲に記載のアクションは、異なる順序で行われ、望ましい結果をさらに達成し得る。多数の実施形態を説明してきた。しかしながら、開示の精神および範囲から逸脱しない限り様々な修正をしてもよいことは理解されよう。例えば、上記で示した様々な形式のフローは、再順序付けした、追加した、または削除したステップで使用され得る。それゆえ、他の実施形態も以下の特許請求の範囲の範囲内にある。
【0067】
例えば、上述した実施形態においては、発話の冒頭の一部は、モバイルデバイス102において検出される。しかしながら、発明は、このことに限定されないし、代わりに、他の場所で、例えば、フロントエンドエンジン104または連続音声認識器106によって、発話の冒頭の一部を検出してもよい。