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

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

▶ グーグル インコーポレイテッドの特許一覧

特許6487120音声クエリの検索結果のプリフェッチ処理
<>
  • 特許6487120-音声クエリの検索結果のプリフェッチ処理 図000002
  • 特許6487120-音声クエリの検索結果のプリフェッチ処理 図000003
  • 特許6487120-音声クエリの検索結果のプリフェッチ処理 図000004
  • 特許6487120-音声クエリの検索結果のプリフェッチ処理 図000005
  • 特許6487120-音声クエリの検索結果のプリフェッチ処理 図000006
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】6487120
(24)【登録日】2019年3月1日
(45)【発行日】2019年3月20日
(54)【発明の名称】音声クエリの検索結果のプリフェッチ処理
(51)【国際特許分類】
   G06F 16/00 20190101AFI20190311BHJP
【FI】
   G06F17/30 330Z
   G06F17/30 310Z
   G06F17/30 330C
   G06F17/30 340Z
【請求項の数】17
【全頁数】19
(21)【出願番号】特願2018-520606(P2018-520606)
(86)(22)【出願日】2016年11月18日
(65)【公表番号】特表2018-533790(P2018-533790A)
(43)【公表日】2018年11月15日
(86)【国際出願番号】US2016062819
(87)【国際公開番号】WO2017119956
(87)【国際公開日】20170713
【審査請求日】2018年5月14日
(31)【優先権主張番号】14/988,990
(32)【優先日】2016年1月6日
(33)【優先権主張国】US
【早期審査対象出願】
(73)【特許権者】
【識別番号】502208397
【氏名又は名称】グーグル エルエルシー
(74)【代理人】
【識別番号】100108453
【弁理士】
【氏名又は名称】村山 靖彦
(74)【代理人】
【識別番号】100110364
【弁理士】
【氏名又は名称】実広 信哉
(74)【代理人】
【識別番号】100133400
【弁理士】
【氏名又は名称】阿部 達彦
(72)【発明者】
【氏名】クリストファー・ボ・タンディオノ
(72)【発明者】
【氏名】マイケル・ブキャナン
(72)【発明者】
【氏名】ネイサン・デイヴィッド・ハワード
(72)【発明者】
【氏名】イシャイ・ラビノビッツ
【審査官】 鹿野 博嗣
(56)【参考文献】
【文献】 米国特許第08521526(US,B1)
【文献】 米国特許出願公開第2009/0006343(US,A1)
(58)【調査した分野】(Int.Cl.,DB名)
G06F 16/00
WPI
(57)【特許請求の範囲】
【請求項1】
フロントエンドエンジンと、連続音声認識器と、完了エンジンと、サーチエンジンとを含むシステムにおいて実施される方法であって、
前記フロントエンドエンジンによって、発話を符号化しているオーディオデータをモバイルデバイスから受信するステップと、
前記フロントエンドエンジンによって、前記発話の中間トランスクリプションを取得するステップであって、前記中間トランスクリプションは、前記連続音声認識器によって生成される、ステップと、
前記フロントエンドエンジンが前記発話の最終的なトランスクリプションを取得する前に、
i)前記完了エンジンによって、クエリログに含まれる以前受信した検索クエリとの比較に基づいて、前記発話の前記中間トランスクリプションが前記以前受信した検索クエリに関連していると決定するステップと、
ii)前記フロントエンドエンジンによって、前記以前受信した検索クエリに応答したものとして識別された1つまたは複数の結果を前記サーチエンジンから取得するステップと、
iii)前記フロントエンドエンジンによって、前記結果のうちの1つまたは複数をキャッシュに記憶するステップと、
前記フロントエンドエンジンによって、前記発話の前記最終的なトランスクリプションを取得するステップであって、前記最終的なトランスクリプションは、前記連続音声認識器によって生成される、ステップと、
前記完了エンジンによって、前記クエリログに含まれる前記以前受信した検索クエリとの比較に基づいて、前記発話の前記最終的なトランスクリプションも前記以前受信した検索クエリに関連していると決定するステップと、
前記発話の前記最終的なトランスクリプションも前記以前受信した検索クエリに関連していると決定するステップに応じて、前記フロントエンドエンジンによって、出力のために前記以前受信した検索クエリに関連する前記記憶されている1つまたは複数の結果を前記モバイルデバイスに提供するステップと
を含む、方法。
【請求項2】
前記完了エンジンによって、前記発話の前記中間トランスクリプションが閾値サイズ有していると決定するステップであって、前記発話の前記中間トランスクリプションは、前記中間トランスクリプションが前記閾値サイズ有していると決定した後にのみ、前記以前受信した検索クエリに関連していると決定される、ステップをさらに含む、請求項1に記載の方法。
【請求項3】
前記発話の前記中間トランスクリプションは、連続音声認識器によって生成され、前記1つまたは複数の結果は、サーチエンジンから取得される、請求項1または2に記載の方法。
【請求項4】
前記発話の前記中間トランスクリプションが前記以前受信した検索クエリに関連していると決定するステップの後に、前記フロントエンドエンジンによって、前記サーチエンジンに前記以前受信した検索クエリを送信するステップをさらに含む、請求項1、2、または3に記載の方法。
【請求項5】
前記発話の前記中間トランスクリプションが前記以前受信した検索クエリに関連していると決定するステップは、前記発話に関連したロケーションが前記以前受信した検索クエリに関連付けられたロケーションに関連していると決定するステップを含む、請求項1から4のいずれか一項に記載の方法。
【請求項6】
前記発話の前記中間トランスクリプションが前記以前受信した検索クエリに関連していると決定するステップは、前記発話の前記中間トランスクリプションが前記発話と関連している同一のユーザによって送信された以前受信した検索クエリに関連していると決定するステップを含む、請求項1から5のいずれか一項に記載の方法。
【請求項7】
前記発話の前記中間トランスクリプションが前記以前受信した検索クエリに関連していると決定するステップは、前記発話の前記中間トランスクリプションが前記発話と関連しているユーザとは異なるユーザによって送信された以前受信した検索クエリに関連していると決定するステップを含む、請求項1から5のいずれか一項に記載の方法。
【請求項8】
前記発話は、音声クエリ以外の音声コマンドである、請求項1から7のいずれか一項に記載の方法。
【請求項9】
前記発話の前記中間トランスクリプションが以前受信した検索クエリに関連していると決定するステップは、前記発話の前記中間トランスクリプションが前記以前受信した検索クエリの一部と同一であると決定するステップをさらに含む、請求項1から8のいずれか一項に記載の方法。
【請求項10】
前記発話の前記中間トランスクリプションが以前受信した検索クエリに関連していると決定するステップは、前記発話の前記中間トランスクリプションが前記以前受信した検索クエリの一部に対する閾値類似度内にあると決定するステップをさらに含む、請求項1から8のいずれか一項に記載の方法。
【請求項11】
フロントエンドエンジンと、連続音声認識器と、完了エンジンと、サーチエンジンとを含むシステムであって、
1つまたは複数のコンピュータと、命令を記憶する1つまたは複数のストレージデバイスとを含み、前記命令は、前記1つまたは複数のコンピュータによって実行されると、前記1つまたは複数のコンピュータに、
前記フロントエンドエンジンによって、発話を符号化しているオーディオデータをモバイルデバイスから受信するステップと、
前記フロントエンドエンジンによって、前記発話の中間トランスクリプションを取得するステップであって、前記中間トランスクリプションは、前記連続音声認識器によって生成される、ステップと、
前記フロントエンドエンジンが前記発話の最終的なトランスクリプションを取得する前に、
i)前記完了エンジンによって、クエリログに含まれる以前受信した検索クエリとの比較に基づいて、前記発話の前記中間トランスクリプションが前記以前受信した検索クエリに関連していると決定するステップと、
ii)前記フロントエンドエンジンによって、前記以前受信した検索クエリに応答したものとして識別された1つまたは複数の結果を前記サーチエンジンから取得するステップと、
iii)前記フロントエンドエンジンによって、前記結果のうちの1つまたは複数をキャッシュに記憶するステップと、
前記フロントエンドエンジンによって、前記発話の前記最終的なトランスクリプションを取得するステップであって、前記最終的なトランスクリプションは、前記連続音声認識器によって生成される、ステップと、
前記完了エンジンによって、前記クエリログに含まれる前記以前受信した検索クエリとの比較に基づいて、前記発話の前記最終的なトランスクリプションも前記以前受信した検索クエリに関連していると決定するステップと、
前記発話の前記最終的なトランスクリプションも前記以前受信した検索クエリに関連していると決定するステップに応じて、前記フロントエンドエンジンによって、出力のために前記以前受信した検索クエリに関連する前記記憶されている1つまたは複数の結果を前記モバイルデバイスに提供するステップと
を含む動作を行わせるように動作可能である、システム。
【請求項12】
前記動作は、前記完了エンジンによって、前記発話の前記中間トランスクリプションが閾値サイズ有していると決定するステップであって、前記発話の前記中間トランスクリプションは、前記中間トランスクリプションが前記閾値サイズ有していると決定した後にのみ、前記以前受信した検索クエリに関連していると決定される、ステップをさらに含む、請求項11に記載のシステム。
【請求項13】
前記発話の前記中間トランスクリプションは、連続音声認識器によって生成され、前記1つまたは複数の結果は、サーチエンジンから取得される、請求項11または12に記載のシステム。
【請求項14】
前記動作は、前記発話の前記中間トランスクリプションが前記以前受信した検索クエリに関連していると決定するステップの後に、前記フロントエンドエンジンによって、前記サーチエンジンに前記以前受信した検索クエリを送信するステップをさらに含む、請求項11、12、または13に記載のシステム。
【請求項15】
前記発話の前記中間トランスクリプションが前記以前受信した検索クエリに関連していると決定するステップは、前記発話に関連したロケーションが前記以前受信した検索クエリに関連付けられたロケーションに関連していると決定するステップを含む、請求項11、12、13、または14に記載のシステム。
【請求項16】
前記発話の前記中間トランスクリプションが前記以前受信した検索クエリに関連していると決定するステップは、前記発話の前記中間トランスクリプションが前記発話と関連している同一のユーザによって送信された以前受信した検索クエリに関連していると決定するステップを含む、請求項11、12、13、14、または15に記載のシステム。
【請求項17】
その実行時に、前記1つまたは複数のコンピュータに、請求項1から10のいずれか一項に記載の方法を含む動作を行わせる、1つまたは複数のコンピュータによって実行可能な命令を含むソフトウェアを記憶する、コンピュータ可読記憶媒体。
【発明の詳細な説明】
【技術分野】
【0001】
本明細書は、音声認識に関する。
【背景技術】
【0002】
一般に、検索クエリは、ユーザが検索を実行するようにサーチエンジンに要求する際にユーザがサーチエンジンに送信する1つまたは複数のクエリ用語を含む。他のアプローチにおいては、ユーザは、音声クエリのコンテキストを介して、すなわち、モバイルデバイスのマイクロフォンにクエリ用語を話すことによって、検索クエリのクエリ用語を入力し得る。音声クエリは、音声認識技術を使用して処理され得る。
【発明の概要】
【課題を解決するための手段】
【0003】
本明細書中で説明した発明特定事項のいくつかの革新的な態様によれば、ユーザによって提供された発話を検出するのと同時に、予備的な検索結果を発話の中間トランスクリプションに基づいて識別する。発話全体を検出すると、予備的な検索結果のうちの1つまたは複数が、発話全体の最終的なトランスクリプションに基づいてユーザにされ得る。
【0004】
ある例示的な実施形態においては、ユーザが歴史的建造物に関する質問をする場合がある。ユーザが「How tall is the Empire State Building?」という質問をする場合がある。ユーザがすべての質問を話し終える前に、ユーザのモバイルデバイスは、質問の冒頭の一部を検出し、コンピューティングシステムにそれと同一のものを提供し得る。コンピューティングシステムは、例えば、「How tall is」といった、質問の本冒頭の一部の中間トランスクリプションをコンピュータ処理し、質問全体の最終的なトランスクリプションをコンピュータ処理する前に、質問の冒頭の一部に関連し得る他の過去のクエリを識別し得る。例えば、コンピューティングシステムは、現在のクエリの冒頭の一部に関連しているものとして「How tall is the Empire State Building」および「How tall is the Washington Monument」という前回のクエリを識別し得る。検索結果は、以前のクエリについて取得または再取得され、キャッシュに記憶される。「How tall is the Empire State Building」という質問全体を受信すると、コンピューティングシステムは、現在のクエリに関連しているものとして「How tall is the Empire State Building」という前回のクエリを識別する。その後、コンピューティングシステムは、検索結果を生成する前に文字起こしされることになる質問全体を待つことなく、「How tall is the Empire State Building」という前回のクエリに関連付けられた記憶されている検索結果を、「How tall is the Empire State Building」という現在のクエリに提供し得る。このことが、ユーザに検索結果を返信するのにかかる時間を低減する。
【0005】
本明細書で説明した発明特定事項の革新的な態様は、発話を符号化しているデータを受信するステップと、発話の中間トランスクリプションを取得するステップと、発話の最終的なトランスクリプションが取得される前に、i)発話の中間トランスクリプションが以前受信した検索クエリに関連していると決定するステップと、ii)以前受信した検索クエリに応答したものとして識別された1つまたは複数の結果を取得するステップと、iii)結果のうちの1つまたは複数を記憶するステップと、発話の最終的なトランスクリプションを取得するステップと、発話の最終的なトランスクリプションも以前受信した検索クエリに関連していると決定するステップと、発話の最終的なトランスクリプションも以前受信した検索クエリに関連していると決定するステップに応じて、出力のために記憶されている1つまたは複数の結果を提供するステップというアクションを含むコンピュータ実施方法で具現化され得る。発話の中間トランスクリプションは、発話の冒頭の一部のトランスクリプションであり得る。
【0006】
これらの態様の他の実施形態は、対応するシステム、装置、コンピュータプログラムを含み、コンピュータプログラムは、コンピュータストレージデバイス上に符号化された方法のアクションを行うように構成される。例えば、これらの態様の別の実施形態は、その実行時に、1つまたは複数のコンピュータに、発話を符号化しているオーディオデータを受信するステップと、発話の中間トランスクリプションを取得するステップと、発話の最終的なトランスクリプションが取得される前に、発話の中間トランスクリプションが以前受信した検索クエリに関連していると決定するステップと、以前受信した検索クエリに応答したものとして識別された1つまたは複数の結果を取得するステップと、その結果のうちの1つまたは複数を記憶するステップと、発話の最終的なトランスクリプションを取得するステップと、発話の最終的なトランスクリプションも以前受信した検索クエリに関連していると決定するステップと、発話の最終的なトランスクリプションも以前受信した検索クエリに関連していると決定するステップに応じて、出力のために記憶されている1つまたは複数の結果を提供するステップを含む動作を行わせる、1つまたは複数のコンピュータによって実行可能な命令を含むソフトウェアを記憶する、非一時的コンピュータ可読媒体であり得る、コンピュータ可読媒体を含む。
【0007】
これらの実施形態および他の実施形態は各々、必要に応じて以下の特徴のうちの1つまたは複数を含み得る。例として、発話の中間トランスクリプションが閾値サイズ有していると決定するステップであって、発話の中間トランスクリプションは、中間トランスクリプションが閾値サイズ有していると決定した後にのみ、以前受信した検索クエリに関連していると決定される、ステップをさらに含む。発話の中間トランスクリプションは、連続音声認識器によって生成され、1つまたは複数の結果は、サーチエンジンから取得される。発話の中間トランスクリプションが以前受信した検索クエリに関連していると決定するステップの後に、サーチエンジンによる再実行のために以前受信した検索クエリを送信するステップをさらに含む。発話に関連したロケーションが以前受信した検索クエリに関連付けられたロケーションに関連していると決定するステップをさらに含む。
【0008】
前記特徴は、例えば、発話の中間トランスクリプションが発話と関連している同一のユーザによって送信された以前受信した検索クエリに関連していると決定するステップをさらに含む。発話の中間トランスクリプションが発話と関連しているユーザとは異なるユーザによって送信された以前受信した検索クエリに関連していると決定するステップをさらに含む。発話は、音声クエリ以外の音声コマンドである。発話の中間トランスクリプションが以前受信した検索クエリの一部と同一であると決定するステップをさらに含む。発話の中間トランスクリプションが以前受信した検索クエリの一部に対する閾値類似度内にあると決定するステップをさらに含む。
【0009】
本明細書で説明した発明特定事項の1つまたは複数の実施形態の詳細を、以下の添付の図面および説明に記載している。発明特定事項の他の潜在的な特徴、態様、および利点は、説明、図面、および特許請求の範囲から自明となるであろう。態様と実施形態とを組み合わせ得ること、および1つの態様または実施形態に関連して説明した特徴を他の態様または実施形態に関連して実施し得ることは諒解されるであろう。
【図面の簡単な説明】
【0010】
図1a】発話の中間トランスクリプションに基づいて検索結果を取得するためのシステムを示す図である。
図1b】発話の最終的なトランスクリプションについての検索結果を提供するためのシステムを示す図である。
図2】発話の中間トランスクリプションに基づいて検索結果を取得するための例示的なプロセスのフローチャートである。
図3】発話の最終的なトランスクリプションについての検索結果を提供するための例示的なプロセスのフローチャートである。
図4】本明細書で説明した技法を実施するために使用され得るコンピュータデバイスおよびモバイルコンピュータデバイスを示す図である。
【発明を実施するための形態】
【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が質問全体を提供するのに先立って、発話として時間t0において、例えば、「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が、時間t1において、連続音声認識器106から発話の中間トランスクリプションを取得する。フロントエンドエンジン104は、中間トランスクリプションを適切に処理し、中間トランスクリプションを完了エンジン108に提供し得る。そのために、図示した例においては、完了エンジン108は、中間トランスクリプション「What's the score」を受信し、例えば、フロントエンドエンジン104および/または連続音声認識器106によって、発話の最終的なトランスクリプションを取得することに先立って、以下で説明しているように、発話の中間トランスクリプションを適切に処理する。
【0017】
特に、完了エンジン108は、発話の中間トランスクリプションが以前受信した検索クエリに関連していると決定する。図示した例においては、完了エンジン108は、クエリQ1, Q2, …, QNと示した以前受信した検索クエリを含むクエリログ110にアクセスする。完了エンジン108は、発話の中間トランスクリプション「What's the score」が以前受信した検索クエリQ1「What's the score of the Sharks game」に関連しているとともに以前受信した検索クエリQ2「What's the score of the Flounders game」にも関連していると決定する。
【0018】
いくつかの例においては、完了エンジン108は、発話の中間トランスクリプションが以前受信した検索クエリの一部と同一であると決定する。特に、完了エンジン108は、発話の中間トランスクリプションが以前受信した検索クエリの冒頭の一部またはプレフィックスと同一である、例えば、一致するまたは同じである、と決定する。図示した例においては、完了エンジン108は、発話の中間トランスクリプション「What's the score」が以前受信した検索クエリQ1「What's the score of the Sharks game」の冒頭の一部と同一であるとともに、以前受信した検索クエリQ2「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」が以前受信した検索クエリQ1「What's the score of the Sharks game」に関連しているとともに以前受信した検索クエリQ2「What's the score of the Flounders game」にも関連していると決定し得る。いくつかの例においては、閾値サイズは、音素、音節、または単語の閾値数に基づく。
【0021】
いくつかの例においては、完了エンジン108は、発話に関連したロケーションが以前受信した検索クエリに関連付けられたロケーションに関連していると決定する。特に、完了エンジン108にモバイルコンピュータデバイス102からオーディオデータで提供されるように、フロントエンドエンジン104は、発話に関連したロケーションを提供し得る。完了エンジン108は、発話に関連したロケーションが以前受信した検索クエリに関連付けられたロケーションに関連していると決定したことに基づいて、発話の中間トランスクリプションが以前受信した検索クエリに関連しているとさらに決定し得る。いくつかの例においては、完了エンジン108は、発話の中間トランスクリプションが以前受信した検索クエリに関連していると決定し得るし、発話に関連したロケーションが以前受信した検索クエリに関連付けられたロケーションに関連しているとさらに決定し得る。例えば、図示した例においては、時間t0においてユーザ116によって提供された発話は、ユーザ116のホームロケーションに関連し得る。完了エンジン108は、以前受信した検索クエリQ1およびQ2のうちの1つまたは両方ともホームロケーションに関連していると決定し得る。
【0022】
いくつかの例においては、完了エンジン108は、発話の中間トランスクリプションがユーザ116によって送信された以前受信した検索クエリに関連していると決定する。特に、以前受信した検索クエリは、例えば、発話と関連しているユーザ116といった、同一のユーザによって送信されたものである。そのため、完了エンジン108は、発話および以前受信した検索クエリが例えばユーザ116といった同一のユーザに関連していると決定したことに基づいて、発話の中間トランスクリプションが以前受信した検索クエリに関連しているとさらに決定し得る。例えば、図示した例においては、発話ならびに以前受信した検索クエリQ1およびQ2の両方が、ユーザ116に関連している。
【0023】
いくつかの例においては、完了エンジン108は、発話の中間トランスクリプションがユーザ116とは異なるユーザによって送信された以前受信した検索クエリに関連していると決定する。特に、以前受信した検索クエリは、発話と関連しているユーザ116とは異なるユーザによって送信されていたものである。そのため、完了エンジン108は、発話および以前受信した検索クエリが異なるユーザに関連していると決定したことに基づいて、発話の中間トランスクリプションが以前受信した検索クエリに関連しているとさらに決定し得る。
【0024】
完了エンジン108は、時間t2において、フロントエンドエンジン104に以前受信した検索クエリQ1およびQ2を提供する。フロントエンドエンジン104は、以前受信した検索クエリQ1およびQ2に応答したものとして識別された結果を取得する。特に、フロントエンドエンジン104は、時間t3において、サーチエンジン112による再実行のためにサーチエンジン112に以前受信した検索クエリQ1およびQ2を提供する。サーチエンジン112は、クエリQ1およびQ2の各々に関する電子文書の検索を実施して、クエリQ1およびQ2にそれぞれ応答する結果R1およびR2を識別する。サーチエンジン112は、時間t4において、フロントエンドエンジン104に結果R1およびR2を提供する。フロントエンドエンジン104は、時間t5において、キャッシュ114に結果R1およびR2を記憶する。特に、図示した例においては、フロントエンドエンジン104は、キャッシュ114に、クエリQ1、結果R1、およびクエリQ1と結果R1との間の関連付けを記憶するとともに、キャッシュ114に、クエリQ2、結果R2、およびクエリQ2と結果R2との間の関連付けをさらに記憶する。
【0025】
図1bは、発話の最終的なトランスクリプションについての検索結果を提供するためのシステム100を図示している。簡潔には、システム100は、発話の最終的なトランスクリプションをさらに取得し、発話の最終的なトランスクリプションもまた以前受信した検索クエリに関連していると決定し、出力のために記憶されている結果を提供し得る。
【0026】
いくつかの例においては、ユーザ116は、時間t0において、質問を完了する、すなわち、はじめに提供していた質問全体を提供する。図示した例においては、モバイルコンピュータデバイス102は、時間t6において、例えば、「of the Sharks game」といった、質問の最終部分の発話を検出する。いくつかの例においては、時間t6は、時間t2とt5との間に生じ得る。システム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は、時間t7において、連続音声認識器106から最終的なトランスクリプションを取得する。フロントエンドエンジン104は、最終的なトランスクリプションを適切に処理し、最終的なトランスクリプションを完了エンジン108に提供し得る。そのために、図示した例においては、完了エンジン108は、最終的なトランスクリプション「What's the score of the Sharks game」を受信し、以下で説明しているように、発話の最終的なトランスクリプションを適切に処理する。
【0030】
いくつかの実施形態においては、完了エンジン108は、時間t8において、発話の最終的なトランスクリプションも以前受信した検索クエリに関連していると決定する。特に、完了エンジン108は、発話の中間トランスクリプションに関連しているものとして識別された以前受信した検索クエリQ1およびQ2にアクセスする。いくつかの例においては、完了エンジン108は、発話の最終的なトランスクリプションを以前受信した検索クエリQ1およびQ2の各々と比較する。完了エンジン108は、最終的なトランスクリプション「What's the score of the Sharks game」が以前受信した検索クエリQ1「What's the score of the Sharks game」に関連していると決定する。さらに、いくつかの例においては、完了エンジン108は、最終的なトランスクリプション「What's the score of the Sharks game」が以前受信した検索クエリQ2「What's the score of the Sharks game」に関連していないと決定する。
【0031】
いくつかの例においては、完了エンジン108は、発話の最終的なトランスクリプションが以前受信した検索クエリと同一であると決定する。完了エンジン108は、発話の最終的なトランスクリプションが以前受信した検索クエリと類似しているまたは同一である、例えば、一致するまたは同じであるまたは同様であると決定する。図示した例においては、完了エンジン108は、発話の最終的なトランスクリプション「What's the score of the Sharks game」が以前受信した検索クエリQ1「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は、以前受信した検索クエリQ1をフロントエンドエンジン104に提供する、または以前受信した検索クエリQ1のインディケーションをフロントエンドエンジン104に提供する。フロントエンドエンジン104は、以前受信した検索クエリQ1と関連しているそれぞれの結果を識別するためにキャッシュ114にアクセスする。特に、フロントエンドエンジン104は、キャッシュ114によって記憶されているような、以前受信した検索クエリQ1と結果R1との間の関連付けを識別し、時間t9において、結果R1を受信する。いくつかの例においては、以前受信した検索クエリQ1と結果R1との間の関連付けを識別したことに応じて、フロントエンドエンジン104は、キャッシュ114から、クエリQ2、結果R2、およびクエリQ2と結果R2との間の関連付けを除去する。
【0034】
完了エンジン108は、時間t10において、出力のために記憶されている結果R1をモバイルコンピュータデバイス102に提供する。発話の最終的なトランスクリプション「What's the score of the Sharks game」も以前受信した検索クエリQ1に関連していると完了エンジン108が決定したことに応じて、フロントエンドエンジン104は、出力のために記憶されている結果R1をモバイルコンピュータデバイス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」が以前受信した検索クエリQA「Book a flight to Austin」に関連しているとともに以前受信した検索クエリQB「Book a flight to Mexico」にも関連していると決定する。
【0039】
以前受信した検索クエリに応答した結果を取得する(208)。特に、発話の最終的なトランスクリプションを取得する前に、サーチエンジン112は、以前受信した検索クエリを実行して、以前受信した検索クエリに応答した結果を識別する。例えば、サーチエンジン112は、クエリQAおよびQBの各々に関する電子文書の検索を実施して、クエリQAおよびQBにそれぞれ応答する結果RAおよびRBを識別する。フロントエンドエンジン104は、サーチエンジンから結果RAおよびRBを取得する。
【0040】
結果を記憶する(210)。特に、発話の最終的なトランスクリプションを取得する前に、フロントエンドエンジンは、キャッシュ内の結果を記憶する。例えば、フロントエンドエンジン104は、キャッシュ114に、クエリQA、結果RA、およびクエリQAと結果RAとの間の関連付けを記憶するとともに、キャッシュ114に、クエリQB、結果RB、およびクエリQBと結果RBとの間の関連付けをさらに記憶する。
【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」が以前受信した検索クエリQA「Book a flight to Austin」に関連していると決定する。
【0044】
発話の最終的なトランスクリプションも以前受信した検索クエリに関連していると決定するステップに応じて、記憶されている結果が出力のために提供される。特に、フロントエンドエンジン104は、以前受信した検索クエリと関連しているそれぞれの結果を識別するためにキャッシュ114にアクセスする。完了エンジン108が発話の最終的なトランスクリプション「Book a flight to Austin」も以前受信した検索クエリQAに関連していると決定したことに応答して、フロントエンドエンジン104は、出力のために記憶されている結果RAをモバイルコンピュータデバイス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によって、発話の冒頭の一部を検出してもよい。
【符号の説明】
【0068】
100 システム
102 モバイルコンピュータデバイス
104 フロントエンドエンジン
106 連続音声認識器
108 完了エンジン
110 クエリログ
112 サーチエンジン
114 キャッシュ
116 ユーザ
200 プロセス
400 コンピュータデバイス
402 プロセッサ
404 メモリ
406 ストレージデバイス
408 高速インターフェース
410 高速拡張ポート
412 低速インターフェース
414 低速拡張ポート
416 ディスプレイ
420 サーバ
422 ラップトップコンピュータ
424 ラックサーバシステム
440 デバイス
442 拡張インターフェース
444 拡張メモリ
446 ディスプレイインターフェース
448 制御インターフェース
452 プロセッサ
454 ディスプレイ
456 ディスプレイインターフェース
458 制御インターフェース
460 オーディオコーデック
462 外部インターフェース
464 メモリ
468 トランシーバ
476 通信インターフェース
480 セルラ電話
482 スマートフォン
図1a
図1b
図2
図3
図4