(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2025-04-16
(45)【発行日】2025-04-24
(54)【発明の名称】音声認識システム
(51)【国際特許分類】
G10L 15/183 20130101AFI20250417BHJP
G10L 15/197 20130101ALI20250417BHJP
【FI】
G10L15/183
G10L15/197
【外国語出願】
(21)【出願番号】P 2021137163
(22)【出願日】2021-08-25
(62)【分割の表示】P 2019227504の分割
【原出願日】2016-11-30
【審査請求日】2021-08-26
【審判番号】
【審判請求日】2023-05-23
(32)【優先日】2016-01-06
(33)【優先権主張国・地域又は機関】US
(73)【特許権者】
【識別番号】502208397
【氏名又は名称】グーグル エルエルシー
【氏名又は名称原語表記】Google LLC
【住所又は居所原語表記】1600 Amphitheatre Parkway 94043 Mountain View, CA U.S.A.
(74)【代理人】
【識別番号】100108453
【氏名又は名称】村山 靖彦
(74)【代理人】
【識別番号】100110364
【氏名又は名称】実広 信哉
(74)【代理人】
【識別番号】100133400
【氏名又は名称】阿部 達彦
(72)【発明者】
【氏名】ペタル・アレクシック
(72)【発明者】
【氏名】ペドロ・ジェイ・モレノ・メンジバル
【合議体】
【審判長】千葉 輝久
【審判官】樫本 剛
【審判官】高橋 宣博
(56)【参考文献】
【文献】特表2015-526797(JP,A)
【文献】国際公開第2005/122143(WO,A1)
(58)【調査した分野】(Int.Cl.,DB名)
G10L 15/00 - 15/34
IEEE Xplore
(57)【特許請求の範囲】
【請求項1】
アクションを実行するソフトウェアアプリケーションを起動するためのユーザからの音声入力を、自動発話認識(ASR)システムにおいて受信するステップと、
前記音声入力に関連する特定のコンテキストの重みを、前記ASRシステムによって決定するステップであって、前記特定のコンテキストの重みが、前記ユーザのためにカスタマイズされ、前記特定のコンテキストが前記特定のコンテキストに対応する名前付きのエンティティのリストを備え、前記特定のコンテキストの重みが、前記音声入力のセグメントの候補トランスクリプションに基づいて、他のコンテキストより重くなるように調整される、ステップと、
前記特定のコンテキストの決定された重みに基づいて、前記音声入力のためのトランスクリプションを、前記トランスクリプションが前記特定のコンテキストに対応する名前付きエンティティの前記リスト内の1つの名前付きエンティティを含む
可能性が高くなるように、言語モデルを使用して前記ASRシステムによって生成するステップと
を含む、方法。
【請求項2】
前記言語モデルがNグラムモデルを含む、請求項1に記載の方法。
【請求項3】
前記ユーザからの前記音声入力が、前記音声入力の前記トランスクリプションを使用して、前記アクションを実行する前記ソフトウェアアプリケーションを起動するように構成される、請求項1に記載の方法。
【請求項4】
前記音声入力に関連する前記特定のコンテキストが、前記音声入力が前記特定のコンテキストに関連する可能性を示すそれぞれの重みを含む、請求項1に記載の方法。
【請求項5】
前記特定のコンテキストが、前記アクションを実行する前記音声入力によって起動したソフトウェアアプリケーションの種類に基づいて生成される、請求項1に記載の方法。
【請求項6】
前記特定のコンテキストが、前記ASRシステムにおいて受信した前記音声入力の種類を記述するデータに基づいて生成される、請求項1に記載の方法。
【請求項7】
前記ASRシステムは、前記ユーザと関連するユーザデバイス上に実装される、請求項1に記載の方法。
【請求項8】
前記ユーザデバイスが、前記ユーザによって発話された前記音声入力を取り込み、前記ASRシステムに前記音声入力を提供するように構成されたマイクロフォンを備える、請求項7に記載の方法。
【請求項9】
名前付きエンティティの前記リストを備えた前記特定のコンテキストが、前記ユーザデバイスに格納される、請求項7に記載の方法。
【請求項10】
前記特定のコンテキストが、前記ユーザデバイスの種類に基づいて生成される、請求項7に記載の方法。
【請求項11】
自動発話認識(ASR)システムであって、
データ処理ハードウェアと、
前記データ処理ハードウェアと通信し、前記データ処理ハードウェア上で実行されると、前記データ処理ハードウェアに動作を実行させる命令を格納するメモリハードウェアとを備え、前記動作は、
アクションを実行するソフトウェアアプリケーションを起動するためのユーザからの音声入力を受信する動作と、
前記音声入力に関連する特定のコンテキストの重みを決定する動作であって、前記特定のコンテキストの重みが、前記ユーザのためにカスタマイズされ、前記特定のコンテキストが前記特定のコンテキストに対応する名前付きのエンティティのリストを備え、前記特定のコンテキストの重みが、前記音声入力のセグメントの候補トランスクリプションに基づいて、他のコンテキストより重くなるように調整される、動作と、
前記特定のコンテキストの決定された重みに基づいて、前記音声入力のためのトランスクリプションを、前記トランスクリプションが前記特定のコンテキストに対応する名前付きエンティティの前記リスト内の1つの名前付きエンティティを含む
可能性が高くなるように、言語モデルを使用して生成する動作とを含む、ASRシステム。
【請求項12】
前記言語モデルがNグラムモデルを含む、請求項11に記載のASRシステム。
【請求項13】
前記ユーザからの前記音声入力が、前記音声入力の前記トランスクリプションを使用して、前記アクションを実行する前記ソフトウェアアプリケーションを起動するように構成される、請求項12に記載のASRシステム。
【請求項14】
前記音声入力に関連する前記特定のコンテキストが、前記音声入力が前記特定のコンテキストに関連する可能性を示すそれぞれの重みを含む、請求項11に記載のASRシステム。
【請求項15】
前記特定のコンテキストが、前記アクションを実行する前記音声入力によって起動したソフトウェアアプリケーションの種類に基づいて生成される、請求項11に記載のASRシステム。
【請求項16】
前記特定のコンテキストが、前記ASRシステムにおいて受信した前記音声入力の種類を記述するデータに基づいて生成される、請求項11に記載のASRシステム。
【請求項17】
前記ASRシステムは、前記ユーザと関連するユーザデバイス上に実装される、請求項11に記載のASRシステム。
【請求項18】
前記ユーザデバイスが、前記ユーザによって発話された前記音声入力を取り込み、前記ASRシステムに前記音声入力を提供するように構成されたマイクロフォンを備える、請求項17に記載のASRシステム。
【請求項19】
名前付きエンティティの前記リストを備えた前記特定のコンテキストが、前記ユーザデバイスに格納される、請求項17に記載のASRシステム。
【請求項20】
前記特定のコンテキストが、前記ユーザデバイスの種類に基づいて生成される、請求項17に記載のASRシステム。
【発明の詳細な説明】
【技術分野】
【0001】
本明細書は音声認識に関する。
【背景技術】
【0002】
従来の音声認識システムは、ユーザからの音声入力をテキスト出力に変換することを目的としている。テキスト出力は、たとえば、検索クエリ、コマンド、文書処理入力などを含む様々な目的に使用することができる。一般的な音声検索システムにおいて、音声インターフェースは、ユーザの音声入力を受信し、この音声入力を音声認識エンジンに与える。音声認識エンジンは、音声入力をテキスト検索クエリに変換する。音声検索システムは次いで、テキスト検索クエリを検索エンジンにサブミットして1つまたは複数の検索結果を取得する。
【発明の概要】
【課題を解決するための手段】
【0003】
概して、本明細書において説明する主題の1つの斬新な態様は、音声入力を符号化するデータを受信するアクションと、音声入力に関するトランスクリプションを判定するアクションであって、音声入力の複数のセグメントについて、音声入力の第1のセグメントに関する第1の候補トランスクリプションを取得するアクションと、第1の候補トランスクリプションに関連する1つまたは複数のコンテキストを判定するアクションと、1つまたは複数のコンテキストの各々に関するそれぞれの重みを調整するアクションと、調整された重みに部分的に基づいて音声入力の第2のセグメントに関する第2の候補トランスクリプションを判定するアクションとを含む、音声入力に関するトランスクリプションを判定するアクションと、音声入力の複数のセグメントのトランスクリプションを出力のために提供するアクションとを含む方法において具現化することができる。本明細書において説明する方法は、コンピュータによって実施される方法として具現化されてもよい。この態様の他の実施形態は、各々が方法のアクションを実行するように構成された、対応するコンピュータシステム、装置、および1つまたは複数のコンピュータ記憶デバイス上に記録されたコンピュータプログラムを含む。1つまたは複数のコンピュータのシステムが特定の動作またはアクションを実行するように構成されることは、動作時にシステムにこれらの動作またはアクションを実行させるソフトウェア、ファームウェア、ハードウェア、またはそれらの組合せがシステム上にインストールされることを意味する。1つまたは複数のコンピュータプログラムが特定の動作またはアクションを実行するように構成されることは、1つまたは複数のプログラムが、データ処理装置によって実行されたときに、装置にこれらの動作またはアクションを実行させる命令を含むことを意味する。
【0004】
本明細書において説明する主題の斬新な別の態様は、1つまたは複数のコンピュータによって実行可能な命令を含むソフトウェアを記憶するコンピュータ可読媒体であって、命令が、そのような実行時に、1つまたは複数のコンピュータに動作を実行させ、動作が、音声入力を符号化するデータを受信する動作と、音声入力に関するトランスクリプションを判定する動作であって、音声入力の複数のセグメントについて、音声入力の第1のセグメントに関する第1の候補トランスクリプションを取得する動作と、第1の候補トランスクリプションに関連する1つまたは複数のコンテキストを判定する動作と、1つまたは複数のコンテキストの各々に関するそれぞれの重みを調整する動作と、調整された重みに部分的に基づいて音声入力の第2のセグメントに関する第2の候補トランスクリプションを判定する動作とを含む、音声入力に関するトランスクリプションを判定する動作と、音声入力の複数のセグメントのトランスクリプションを出力のために提供する動作とを含むコンピュータ可読媒体において具現化することができる。
【0005】
上記の実施形態および他の実施形態の各々は任意に、以下の特徴のうちの1つまたは複数を単独で含むかあるいは任意に組み合わせて含むことができる。たとえば、一実施形態は、以下の特徴のすべてを組み合わせて含む。この方法は、音声入力の第1のセグメントに関する第1の候補トランスクリプションを取得するステップであって、音声入力の第1のセグメントが安定性基準を満たすと判定するステップと、音声入力の第1のセグメントが安定性基準を満たすと判定したことに応答して、音声入力の第1のセグメントに関する第1の候補トランスクリプションを取得するステップとを含む。安定性基準は、音声入力の第1のセグメントの1つまたは複数のセマンティック特性を含む。安定性基準は、音声入力の第1のセグメントの後に生じる時間遅延を含む。音声入力の第2のセグメントは、音声入力の第1のセグメントの後に生じる。1つまたは複数のコンテキストは、ユーザデバイスから受信される。1つまたは複数のコンテキストは、ユーザの地理的位置、ユーザの検索履歴、ユーザの関心、またはユーザの活動を含むデータを含む。この方法は、複数のコンテキストに関する複数のスコアを記憶するステップと、1つまたは複数のコンテキストの各々に関するそれぞれの重みを調整したことに応答して、1つまたは複数のコンテキストに関する調整されたスコアを更新するステップとを含む。この方法は、検索クエリとしての出力を、たとえば検索エンジンに与えるステップをさらに含み、この場合、検索エンジンは、検索クエリに応答して、1つまたは複数の検索結果をユーザデバイスに与えてもよい。第1の候補トランスクリプションは、ワード、サブワード、またはワードのグループを含む。
【0006】
本明細書において説明する主題の特定の実施形態は、以下の利点のうちの1つまたは複数を実現するように実施することができる。従来の音声認識システムと比較して、音声認識システムは、音声入力のセグメントに基づいてより正確なテキスト検索クエリを提供することができる。このシステムは、音声入力のセグメントに基づいてコンテキストに関する重みを調整し、調整された重みに部分的に基づいて音声入力の以後のセグメントのトランスクリプションを判定するので、認識性能を動的に改善することができる。したがって、システムは、音声認識の精度を向上させることができる。このように精度が向上することによって、ユーザが音声認識システムによる処理のために音声入力を提供するプロセスを繰り返すことが必要になる可能性が低くなり、それによって、音声認識システムを他の音声入力の処理に利用することが可能になる。
【0007】
本明細書の主題の1つまたは複数の実施形態の詳細が、添付の図面および以下の説明に記載されている。この主題の他の特徴、態様、および利点は、説明、図面、および特許請求の範囲から明らかになろう。各態様および実装形態を組み合わせることができ、ある態様または実装形態の文脈において説明する特徴を他の態様または実装形態の文脈において実現できることを諒解されたい。
【図面の簡単な説明】
【0008】
【
図1】例示的な音声認識システムの概要を示す図である。
【
図3】安定性基準が満たされると判定するための例示的なプロセスを示す図である。
【
図4】音声入力のトランスクリプションを提供するための例示的な方法のフローチャートである。
【
図5】音声入力に関するトランスクリプションを判定するための例示的な方法のフローチャートである。
【発明を実施するための形態】
【0009】
様々な図面における同じ参照記号は同じ要素を示す。
【0010】
図1は、例示的な音声認識システム100の概要を示す図である。音声認識システム100は、ユーザ10からの音声入力110をユーザデバイス120から受信し、音声入力110のトランスクリプションを判定し、音声入力110のトランスクリプションを出力として提供するようにプログラムされた1つまたは複数のコンピュータを含む。
図1に示す例では、出力は、検索クエリ150に応答して検索結果170を取得するために検索エンジン160に与えられる検索クエリ150であってもよい。1つまたは複数の検索結果170は次いで、ユーザデバイス120に与えられる。音声認識システム100は、たとえば、サーバを含む1つまたは複数のコンピュータあるいはユーザデバイス上に実装することができる。
【0011】
音声認識システム100は、1つまたは複数のネットワーク180を介してユーザデバイス120と通信する発話認識エンジン140を含む。1つまたは複数のネットワーク180は、ワイヤレスセルラーネットワーク、ワイヤレスローカルエリアネットワーク(WLAN)またはWi-Fiネットワーク、ワイヤードイーサネット(登録商標)ネットワーク、その他のワイヤードネットワーク、またはそれらの他の適切な組合せを含む音声ネットワークおよび/またはコンピュータネットワークであってもよい。ユーザデバイス120は、限定はしないが、1つまたは複数のプロセッサとコンピュータ可読媒体とを含むモバイルフォン、スマートフォン、タブレットコンピュータ、音楽プレーヤ、電子書籍リーダー、ラップトップまたはデスクトップコンピュータ、PDA、またはその他のハンドヘルドデバイスもしくはモバイルデバイスを含む任意の適切な種類のコンピューティングデバイスであってもよい。
【0012】
ユーザデバイス120は、ユーザ10から音声入力110を受信するように構成される。ユーザデバイス120は、たとえば、音響電気トランスジューサまたはセンサ(たとえば、マイクロフォン)を含むことができ、あるいはそれに結合することができる。ユーザ10が音声入力110に入力したことに応答して、音声入力を発話認識エンジン140にサブミットすることができる。(一般に、このことは、音声入力を表現するかまたは符号化するデータを発話認識エンジン140にサブミットすることによって行われてもよい。発話認識エンジン140は、データを処理して、受信されたデータから音声入力を抽出することができる。)
【0013】
発話認識エンジン140は、音声入力を順次認識することができ、たとえば、音声入力110の第1の部分111を認識することができ、次いで、音声入力110の第2の部分112を認識することができる。音声入力110の1つまたは複数の部分が、特定の安定性基準に基づいて音声入力110の個々のセグメントとして認識されてもよい。1つの部分がワードを含んでもよく、サブワードを含んでもよく、あるいはワードのグループを含んでもよい。いくつかの実装形態では、音声入力110の1つまたは複数のセグメントは、以下により詳細に説明するように1つまたは複数のコンテキストを調整するのに使用することができる中間認識結果を提供することができる。
【0014】
全体にわたって例示のために検索クエリの例が使用されるが、音声入力110は、音声ベースの命令、検索エンジンクエリターム、ディクテーション、ダイアログシステム、あるいはトランスクライブされた発話を使用するかまたはトランスクライブされた発話を使用してアクションを実行するソフトウェアアプリケーションを起動する任意の他の入力を含む任意の種類の音声通信を表現することができる。
【0015】
発話認識エンジン140は、音声入力110を受信し処理するように構成された音声認識システム100のソフトウェア構成要素であってもよい。
図1に示す例示的なシステムでは、発話認識エンジン140は、音声入力110を検索エンジン160に与えられるテキスト検索クエリ150に変換する。発話認識エンジン140は、音声デコーダ142と、コンテキストモジュール144と、コンテキスト調整モジュール146とを含む。音声デコーダ142、コンテキストモジュール144、およびコンテキスト調整モジュール146は、音声認識システム100のソフトウェア構成要素であってもよい。
【0016】
発話認識エンジン140が音声入力110を受信すると、音声デコーダ142は音声入力110に関するトランスクリプションを判定する。音声デコーダ142は次いで、音声入力110に関するトランスクリプションを出力として、たとえば、検索エンジン160に与えるべき検索クエリ150として提供する。
【0017】
音声デコーダ142は、言語モデルを使用して音声入力110に関する候補トランスクリプションを生成する。この言語モデルは、ワードまたはワードのシーケンスに関連する確率値を含む。たとえば、言語モデルはNグラムモデルであってもよい。音声デコーダ142が音声入力を処理するにつれて中間認識結果を決定することができる。中間認識結果の各々は、音声入力110のトランスクリプションの安定したセグメントに対応する。トランスクリプションの安定したセグメントを判定するための安定性基準について、以下に
図3に関して詳細に説明する。
【0018】
音声デコーダ142は、安定した各セグメントをコンテキスト調整モジュール146に与える。コンテキスト調整モジュール146は、コンテキストモジュール144からの関連するコンテキストを特定する。特定された各コンテキストは重みに関連付けられてもよい。最初に、様々な基準に従って、たとえば、コンテキストのポピュラリティ、コンテキストの時間的な近さ(すなわち、特定のコンテキストが最近の期間において積極的に使用されるかどうか)、またはコンテキストの最近の使用状況もしくはグローバルな使用状況に基づいて、コンテキストごとの基準重みが指定されてもよい。基準重みは、ユーザ入力が特定のコンテキストに関連付けられる可能性に基づいて初期バイアスを作成することができる。コンテキスト調整モジュール146は、関連するコンテキストを特定した後、音声デコーダ142によって与えられた1つまたは複数の安定したセグメントに基づいてコンテキストに対する重みを調整する。重みは、音声入力のトランスクリプションが特定のコンテキストに関連付けられる範囲を示すように調整することができる。
【0019】
コンテキストモジュール144は、コンテキスト148およびコンテキスト148に関連付けられた重みを記憶する。コンテキストモジュール144は、コンピューティングデバイスにユーザデバイス120から1つまたは複数のコンテキスト148を受信させるように構成された発話認識エンジン140のソフトウェア構成要素であってもよい。発話認識エンジン140は、受信されたコンテキスト148をコンテキストモジュール144に記憶するように構成されてもよい。いくつかの例では、コンテキストモジュール144は、ユーザ10向けにカスタマイズされた1つまたは複数のコンテキスト148を生成するように構成することができる。発話認識エンジン140は、生成されたコンテキスト148をコンテキストモジュール144に記憶するように構成されてもよい。
【0020】
コンテキスト148は、たとえば、(1)繰り返される音声入力間の時間間隔、ユーザデバイスのスクリーンの近くの前方カメラからの視線の移動を反映する視線追跡情報などのユーザ活動を表すデータ、(2)使用されるモバイルアプリケーションの種類、ユーザの位置、使用されるデバイスの種類、または現在の時間など、音声入力が発行される環境を表すデータ、(3)検索エンジンにサブミットされた以前の音声検索クエリ、(4)検索エンジンへのコマンド、要求、または検索クエリなど、発話認識エンジンにサブミットされた音声入力の種類を表すデータ、(5)エンティティ、たとえば、特定の範疇のメンバー、場所の名称などを含んでもよい。コンテキストは、たとえば、以前の検索クエリ、ユーザ情報、エンティティデータベースなどから形成することができる。
【0021】
図2は、例示的なコンテキストを示す図である。発話認識エンジンは、「テニス選手」に関連するコンテキスト210、および「バスケットボール選手」に関連するコンテキスト220をコンテキストモジュール、たとえばコンテキストモジュール144に記憶するように構成される。コンテキスト210は、特定のテニス選手、たとえば、「Roger Federer」、「Rafael Nadal」、および「Novak Djokovic」に対応するエンティティを含む。コンテキスト220は、特定のバスケットボール選手、たとえば、「Roger Bederer」、「Rafael Madall」、および「Novak Jocovich」に対応するエンティティを含む。
【0022】
コンテキストモジュール144は、コンテキスト210、220に関する重みを記憶するように構成されてもよい。これらの重みは、音声入力の1つまたは複数のトランスクリプションがコンテキスト210、220に関連付けられる範囲を示してもよい。コンテキスト調整モジュール146は、コンテキスト210、220を特定すると、コンテキスト210、220に関連付けられた重みも特定する。
【0023】
音声デコーダ142は、音声入力110の第1のセグメント111に関する「how many wins does tennis player」という第1の候補トランスクリプションを取得すると、第1のセグメント111に関する第1の候補トランスクリプションをコンテキスト調整モジュール146に与える。コンテキスト調整モジュール146は、コンテキストモジュール144からの関連するコンテキストとしてのコンテキスト210、220、およびコンテキスト210、220に関連付けられた重みを特定する。次いで、コンテキスト調整モジュール146は、音声入力110の第1のセグメント111に関する第1の候補トランスクリプションに基づいてコンテキスト210、220に関するそれぞれの重みを調整するように構成される。特に、コンテキスト調整モジュール146は、音声入力110の以後のセグメントを認識する際に使用できるようにコンテキスト210、220に関するそれぞれの重みを調整することができる。
【0024】
それぞれのコンテキストに関する基準重みは最初、たとえば、テニスに対するバスケットボールに関する音声入力の履歴ポピュラリティに起因して、音声認識をより重い初期重みを有するバスケットボールのコンテキストに偏らせている場合がある。しかし、音声認識は、中間認識結果に基づいて調整され、テニスのコンテキストの方に偏らされる場合がある。この例では、「how many wins does tennis player」という音声入力110の第1の候補トランスクリプションは「テニス選手(tennis player)」というタームを含む。コンテキスト調整モジュール146は、第1の候補トランスクリプションの「テニス選手」というタームに基づいて、コンテキストのうちの1つまたは複数に関する重みを調整するように構成されてもよい。たとえば、コンテキスト調整モジュール146は、コンテキスト210に関する重みを、たとえば「10」から「90」にブーストすることができ、コンテキスト220に関する重みを、たとえば「90」から「10」にデクリメントすることができ、あるいは重みをブーストすることとデクリメントすることの組合せを実行することができる。
【0025】
音声デコーダ142は、調整された重みに部分的に基づいて音声入力110の第2のセグメント112に関する第2の候補トランスクリプションを判定するように構成されてもよい。発話認識エンジン140は、コンテキストに関するそれぞれの重みを調整したことに応答して、コンテキストモジュール144におけるコンテキスト210、220に関する調整された重みを更新するように構成されてもよい。上記の例では、音声デコーダ142は、音声入力110の第2のセグメント112の第2の候補トランスクリプションを判定する場合、調整された重みに基づいてコンテキスト220よりも重い重みをコンテキスト210に与えてもよい。音声デコーダ142は、コンテキスト210への重みに基づいて、「Roger Federer」を音声入力110の第2のセグメント112に関する第2の候補トランスクリプションとして判定してもよい。
【0026】
これに対して、コンテキスト調整モジュール146が第1のセグメント111に関する第1の候補トランスクリプションに基づいてコンテキスト210、220に関する重みを調整しない場合、音声デコーダ142は、コンテキストモジュール144に記憶されたコンテキスト210、220に関する基準重みに基づいて第2のセグメント112に関する第2の候補トランスクリプションを判定する場合がある。コンテキスト210の重みがコンテキスト220の重みよりも重い場合、音声デコーダは、「Roger Bederer」などのバスケットボール選手の名前を第2のセグメント112に関する第2の候補トランスクリプションとして判定する場合がある。したがって、音声デコーダ142は誤った認識結果を提供することがある。
【0027】
音声デコーダ142は、音声入力110のトランスクリプション全体を取得した後、音声入力110のトランスクリプションを出力のために提供してもよい。出力は、ユーザデバイスに直接提供することもでき、あるいはさらなる処理に使用することもできる。たとえば、
図1では、出力認識がテキスト検索クエリ150として使用される。たとえば、音声デコーダ142は、「Roger Federer」を音声入力110の第2のセグメント112に関する第2の候補トランスクリプションとして判定したときに、「how many wins does tennis player Roger Federer have?」というトランスクリプション全体を検索クエリ150として検索エンジン160に出力してもよい。
【0028】
検索エンジン160は、検索クエリ150を使用して検索を実行する。検索エンジン160は、音声認識システム100に結合されたウェブ検索エンジンを含んでもよい。検索エンジン160は、検索クエリ150に応答して1つまたは複数の検索結果170を決定してもよい。検索エンジン160は、検索結果170をユーザデバイス120に与える。ユーザデバイス120は、検索結果170をユーザ10に提示するためのディスプレイインターフェースを含むことができる。いくつかの例では、ユーザデバイス120は、検索結果170をユーザ10に提示するためのオーディオインターフェースを含むことができる。
【0029】
図3は、所与のセグメントについて安定性基準が満たされると判定するための例示的なプロセスを示す図である。音声デコーダ142は、音声入力110のこの部分が安定性基準を満たすと判定するように構成される。
【0030】
音声デコーダ142は、音声入力310の部分311を受信したときに、音声入力310の部分311が安定性基準を満たすかどうかを判定するように構成されてもよい。安定性基準は、この部分がさらなる音声認識によって変更されやすいか否かを示す。
【0031】
安定性基準は、1つまたは複数のセマンティック特性を含んでもよい。意味的に音声入力の一部の後にあるワードが続くことが予期される場合、音声デコーダ142は、その部分が安定性基準を満たさないと判定することができる。たとえば、音声デコーダ142は、音声入力310の部分311を受信したときに、意味的に部分311の後にあるワードが続くことが予期されると判定してもよい。音声デコーダ142は次いで、部分311が安定性基準を満たさないと判定する。いくつかの実装形態では、音声デコーダ142は、音声入力の一部として「mine」を受信したときに、意味的に「mine」という部分の後にあるワードが続くことは予期されないと判定してもよい。音声デコーダ142は次いで、「mine」という部分がセグメントに関する安定性基準を満たすと判定することができる。音声デコーダ142は、セグメントをコンテキスト調整モジュール146に与えてコンテキストに関する重みを調整してもよい。
【0032】
音声デコーダ142はまた、意味的にある部分の後に別のサブワードが続くことが予期される場合にこの部分は安定性基準を満たさないと判定してもよい。たとえば、音声デコーダ142は、「play」を音声入力310の部分312として受信したときに、意味的に部分312の後には「play-er」、「play-ground」、および「play-off」などのサブワードが続くことができるので意味的に部分312の後にあるワードが続くことが予期されると判定してもよい。音声デコーダ142は次いで、部分311が安定性基準を満たさないと判定する。いくつかの実装形態では、音声デコーダ142は、「player」を音声入力の一部として受信したときに、意味的に「player」という部分の後にあるワードが続くことは予期されないと判定してもよい。音声デコーダ142は次いで、「player」という部分がセグメントに関する安定性基準を満たすと判定することができる。音声デコーダ142は、セグメントをコンテキスト調整モジュール146に与えてコンテキストに関する重みを調整してもよい。
【0033】
いくつかの実装形態では、安定性基準は、音声入力310の一部の後に生じる時間遅延を含んでもよい。音声デコーダ142は、音声入力310のこの部分の後の時間遅延がしきい値遅延値を満たす持続時間を有する場合に、音声入力310のこの部分が安定性基準を満たすと判定することができる。音声デコーダ142は、音声入力310のこの部分を受信したときに、この部分が受信された瞬間から音声入力310の後続の部分が受信される瞬間までの時間遅延を測定してもよい。音声デコーダ142は、時間遅延がしきい値遅延値を超える場合にこの部分が安定性基準を満たすと判定することができる。
【0034】
図4は、受信された音声入力に関するトランスクリプションを判定するための例示的な方法400のフローチャートである。説明の都合上、方法400については、方法400を実行するシステムに関して説明する。
【0035】
このシステムは、受信された音声入力をそれが発話された順序で処理し(410)、音声入力の一部を第1のセグメントとして判定する。システムは、音声入力の第1のセグメントに関する第1の候補トランスクリプションを取得する(420)。システムは、第1のセグメントに関する第1の候補トランスクリプションを取得する場合、音声入力の第1のセグメントが安定性基準を満たすかどうかを判定してもよい。音声入力の第1のセグメントが安定性基準を満たす場合、システムは、第1のセグメントに関する第1の候補トランスクリプションを取得してもよい。音声入力の第1のセグメントが安定性基準を満たさない場合、システムは、第1の候補トランスクリプションを取得しなくてもよい。次いで、システムは、音声入力の1つまたは複数の部分を受信し、音声入力の新しい第1のセグメントを認識して、音声入力の新しい第1のセグメントが安定性基準を満たすかどうかを判定してもよい。システムは、
図3によって上記において説明したように、プロセス300を使用して、音声入力の第1のセグメントが安定性基準を満たすと判定してもよい。
【0036】
システムは、コンテキストの集合から第1のセグメントに関連する1つまたは複数のコンテキストを判定する(430)。第1のセグメントに関連する特定のコンテキストは、第1のセグメントによって与えられるコンテキストにも基づいて判定することができる。たとえば、第1のセグメントの特定のキーワードを特定のコンテキストに関連するキーワードとして特定することができる。再び
図2を参照するとわかるように、システムは、「テニス選手」に関連するコンテキストおよび「バスケットボール選手」に関連するコンテキストを特定してもよい。テニス選手コンテキストは、「Roger Federer」、「Rafael Nadal」、および「Novak Djokovic」などのキーワードに関連付けることができる。バスケットボール選手コンテキストは、「Roger Bederer」、「Rafael Madall」、および「Novak Jocovich」などのキーワードに関連付けることができる。システムは、各コンテキストに関する重みを記憶するように構成されてもよい。システムは、コンテキストを特定したときに、コンテキストに関するそれぞれの重みを特定してもよい。コンテキストに関するそれぞれの重みは、音声入力の1つまたは複数のトランスクリプションがコンテキストに関連付けられる範囲を示す。
【0037】
システムは、1つまたは複数のコンテキストの各々に関するそれぞれの重みを調整する(440)。システムは、音声入力の第1の候補トランスクリプションに基づいて各コンテキストに関するそれぞれの重みを調整してもよい。たとえば、音声入力の「how many wins does tennis player」という第1の候補トランスクリプションは、「テニス選手(tennis player)」というタームを含む。システムは、第1の候補トランスクリプションの「テニス選手」というタームに基づいて、コンテキストに関する重みを調整するように構成されてもよい。たとえば、システムは、コンテキストに関する重みを、たとえば「10」から「90」にブーストすることができ、コンテキストに関する重みを、たとえば「90」から「10」にデクリメントすることができ、あるいは重みをブーストすることとデクリメントすることの組合せを実行することができる。
【0038】
いくつかの実装形態では、最も関連性の高いコンテキストの重みのみが調整され(たとえば、大きくされ)、一方、他のすべてのコンテキストが一定に維持される。いくつかの他の実装形態では、他のすべてのコンテキストがデクリメントされ、一方、大部分の関連するコンテキストが一定に維持される。さらに、この2つを任意に適切に組み合わせて実行することができる。たとえば、関連するコンテキストを、別のコンテキストがデクリメントされる量とは異なる量だけ増大させてもよい。
【0039】
システムは、調整された重みに部分的に基づいて音声入力の第2のセグメントに関する第2の候補トランスクリプションを判定する(450)。システムは、コンテキストに関するそれぞれの重みを調整したことに応答して、コンテキストに関する調整された重みを更新してもよい。たとえば、システムは、調整された重みに基づいて、第1のセグメントに対する関連性が第2のコンテキストよりも高いコンテキストとして特定された第1のコンテキストにより重い重みを与えてもよい。音声デコーダは、調整された重み付けられたコンテキストに基づいて、音声入力の第2のセグメントに関する第2の候補トランスクリプションを判定してもよい。このプロセスは、認識すべき音声入力のさらなる部分がなくなるまで継続する。
【0040】
図5は、音声検索を行うための例示的な方法500のフローチャートである。説明の都合上、方法500については、方法500を実行するシステムに関して説明する。
【0041】
システムは音声入力を受信する(510)。システムは、ユーザから音声入力を受信するように構成されてもよい。システムは、ユーザが発話している間音声入力の各セグメントをリアルタイムに受信することができる。
【0042】
システムは、音声入力を受信すると、その音声入力に関するトランスクリプションを判定する(520)。システムは、たとえば
図4に関して上記において説明したようにトランスクリプションを判定してもよい。システムは、音声入力のトランスクリプション全体を判定した後、この音声入力のトランスクリプションを出力のために提供する(530)。システムは、この出力をテキスト検索クエリとして提供してもよい。システムは、テキスト検索クエリを使用して検索を実行し、検索結果を取得することができる。システムは、検索結果をユーザに与えてもよい。いくつかの実装形態では、システムは、検索結果をユーザに提示するためのディスプレイインターフェースを提供することができる。他の実装形態では、システムは、検索結果をユーザに提示するためのオーディオインターフェースを提供することができる。
【0043】
本明細書において説明する主題および動作の実施形態は、デジタル電子回路として実装することもでき、あるいは本明細書において開示する構造およびその構造均等物、またはそれらの1つまたは複数の組合せを含むコンピュータソフトウェア、ファームウェア、またはハードウェアとして実行することもできる。本明細書において説明する主題の実施形態は、1つまたは複数のコンピュータプログラムとして実装することができ、すなわち、データ処理装置によって実行されるコンピュータ記憶媒体上に符号化されたコンピュータプログラム命令の1つまたは複数のモジュールまたはデータ処理装置の動作を制御するためにコンピュータ記憶媒体上に符号化されたコンピュータプログラム命令の1つまたは複数のモジュールとして実装することができる。代替または追加として、プログラム命令は、適切なレシーバ装置に送信されデータ処理装置によって実行されるように情報を符号化するために生成される人工的に生成される伝搬信号、たとえば、機械によって生成される電気信号、光信号、または電磁信号上に符号化することができる。コンピュータ記憶媒体は、コンピュータ可読記憶デバイス、コンピュータ可読記憶基板、ランダムまたはシリアルアクセスメモリアレイまたはデバイス、あるいはそれらのうちの1つまたは複数の組合せであってもよく、あるいはそれらに含めることもできる。さらに、コンピュータ記憶媒体は、伝搬信号ではなく、人工的に生成される伝搬信号において符号化されるコンピュータプログラム命令の送信元または送信先であってもよい。コンピュータ記憶媒体は、1つまたは複数の別個の物理的構成要素または媒体、たとえば、複数のCD、ディスク、またはその他の記憶デバイスであってもよく、あるいはそれらに含めることもできる。
【0044】
本明細書において説明する動作は、1つまたは複数のコンピュータ可読記憶デバイス上に記憶されたデータまたは他の送信元から受信されたデータに対してデータ処理装置によって実行される動作として実現することができる。
【0045】
「データ処理装置」という用語は、一例としてプログラム可能な処理ユニット、コンピュータ、チップ上のシステム、パーソナルコンピュータシステム、デスクトップコンピュータ、ラップトップ、ノートブック、ネットブックコンピュータ、メインフレームコンピュータシステム、ハンドヘルドコンピュータ、ワークステーション、ネットワークコンピュータ、アプリケーションサーバ、記憶デバイス、またはカメラ、カムコーダ、セットトップボックス、モバイルデバイス、ビデオゲームコンソール、ハンドヘルドビデオゲームデバイスなどの家庭用電子機器、またはスイッチ、モデム、ルータなどの周辺デバイス、または一般的に任意の種類のコンピューティングデバイスもしくは電子デバイス、あるいはそれらの複数または組合せを含む、データを処理するためのあらゆる種類の装置、デバイス、および機械を包含する。この装置は、専用論理回路、たとえば、FPGA(フィールドプログラマブルゲートアレイ)またはASIC(特定用途向け集積回路)を含むことができる。この装置は、ハードウェアに加えて、当該コンピュータプログラム用の実行環境を作成するコード、たとえば、プロセッサファームウェア、プロトコルスタック、データベース管理システム、オペレーティングシステム、クロスプラットフォームランタイム環境、仮想マシン、またはそれらののうち1つまたは複数の組合せを構成するコードを含むこともできる。この装置および実行環境は、ウェブサービス、分散コンピューティングインフラストラクチャおよびグリッドコンピューティングインフラストラクチャなどの様々な異なるコンピューティングモデルインフラストラクチャを実現することができる。
【0046】
コンピュータプログラム(プログラム、ソフトウェア、ソフトウェアアプリケーション、スクリプト、またはコードとしても知られる)は、コンパイル言語またはインタプリタ言語、宣言言語または手続き言語を含む任意の形態のプログラミング言語で書くことができ、スタンドアロンプログラムとして、あるいはモジュール、構成要素、サブルーチン、オブジェクト、またはコンピューティング環境において使用するのに適した他のユニットとして、任意の形態で展開することができる。コンピュータプログラムは、必要ではないが、ファイルシステム内のファイルに対応することができる。プログラムは、他のプログラムまたはデータ(たとえば、マークアップ言語ドキュメントに記憶された1つまたは複数のスクリプト)を保持するファイルの一部に記憶することも、当該プログラム専用の単一のファイルに記憶することも、あるいは複数の協調的なファイル(たとえば、1つまたは複数のモジュール、サブプログラム、またはコードの各部を記憶するファイル)に記憶することもできる。コンピュータプログラムは、1つのコンピュータ上で実行されるように展開することもでき、あるいは1つのサイトに配置された複数のコンピュータまたは複数のサイトにわたって分散され通信ネットワークによって相互接続された複数のコンピュータ上で実行されるように展開することもできる。
【0047】
本明細書において説明するプロセスおよび論理フローは、1つまたは複数のコンピュータプログラムを実行し、入力データを処理して出力を生成することによってアクションを実行する1つまたは複数のプログラム可能な処理ユニットによって実行することができる。プロセスおよび論理フローを専用論理回路、たとえば、FPGA(フィールドプログラマブルゲートアレイ)またはASIC(特定用途向け集積回路)によって実行することもでき、装置を専用論理回路として実装することもできる。
【0048】
コンピュータプログラムを実行するのに適した処理ユニットは、一例として、汎用マイクロプロセッサと専用マイクロプロセッサの両方、および任意の種類のデジタルコンピュータの任意の1つまたは複数の処理ユニットを含む。一般に、処理ユニットは、読取り専用メモリまたはランダムアクセスメモリあるいはその両方から命令およびデータを受信する。コンピュータの基本的な要素は、命令に従ってアクションを実行するための処理ユニットと、命令およびデータを記憶するための1つまたは複数のメモリデバイスである。一般に、コンピュータはまた、データを記憶するための1つまたは複数の大容量記憶デバイス、たとえば、磁気ディスク、磁気光ディスク、または光ディスクを含むか、あるいはそのような大容量記憶デバイスからデータを受信するか、それにデータを転送するか、あるいはその両方を行うように動作可能に結合される。しかし、コンピュータはそのようなデバイスを有する必要がない。さらに、コンピュータは、別のデバイス、たとえば、モバイル電話、携帯情報端末(PDA)、モバイルオーディオプレーヤまたはビデオプレーヤ、ゲームコンソール、全地球測位システム(GPS)レシーバ、ネットワークルーティングデバイス、またはポータブル記憶デバイス(たとえば、ユニバーサルシリアルバス(USB)フラッシュドライブ)などに埋め込むことができる。コンピュータプログラム命令およびデータを記憶するのに適したデバイスは、すべての形態の非揮発性メモリ、一例として半導体メモリデバイス、たとえば、EPROM、EEPROM、およびフラッシュメモリデバイス、ならびに磁気ディスク、たとえば、内部ハードディスクまたは取外し可能なディスク、光磁気ディスク、ならびにCD-ROMディスクおよびDVD-ROMディスクを含む、メディアデバイスおよびメモリデバイスを含む。処理ユニットおよびメモリは、専用論理回路によって補助することもでき、あるいは専用論理回路に組み込むこともできる。
【0049】
本明細書において説明する主題の実施形態は、ユーザとの相互作用を可能にするために、ユーザに情報を表示するためのディスプレイデバイス、たとえば、CRT(陰極線管)またはLCD(液晶ディスプレイ)モニタ、ならびにユーザがコンピュータに入力を与えることができるキーボードおよびポインティングデバイス、たとえば、マウスまたはトラックボールを有するコンピュータ上で実施することができる。他の種類のデバイスを使用してユーザとの相互作用を実現することもでき、たとえば、ユーザに提供されるフィードバックは、任意の形態の感覚フィードバック、たとえば、視覚的フィードバック、聴覚的フィードバック、または触覚的フィードバックであってもよく、ユーザからの入力は、音響入力、発話入力、または触覚的入力を含む任意の形態で受信することができる。さらに、コンピュータは、ユーザによって使用されるデバイスにドキュメントを送り、そのデバイスからドキュメントを受信することによってユーザと相互作用することができ、たとえば、ウェブブラウザから受信された要求に応答してユーザのクライアントデバイス上のウェブブラウザにウェブページを送ることによってユーザと相互作用することができる。
【0050】
本明細書において説明する主題の実施形態は、たとえば、データサーバとしてのバックエンド構成要素を含むか、あるいはミドルウェア構成要素、たとえば、アプリケーションサーバを含むか、あるいはフロントエンド構成要素、たとえば、ユーザが本明細書において説明する主題の実装形態と相互作用するのを可能にするグラフィカルユーザインターフェースもしくはウェブブラウザ、またはルーティングデバイス、たとえば、ネットワークルータを有するクライアントコンピュータを含むか、あるいは1つまたは複数のそのようなバックエンド構成要素、ミドルウェア構成要素、またはフロントエンド構成要素の任意の組合せを含むコンピューティングシステムにおいて実施することができる。システムの構成要素は、任意の形態または媒体のデジタルデータ通信、たとえば、通信ネットワークによって相互接続することができる。通信ネットワークの例には、ローカルエリアネットワーク(「LAN」)およびワイドエリアネットワーク(「WAN」)、インターネットワーク(たとえば、インターネット)、およびピアツーピアネットワーク(たとえば、アドホックピアツーピアネットワーク)が含まれる。
【0051】
コンピューティングシステムはクライアントとサーバとを含むことができる。クライアントとサーバは、一般に互いに離れており、通常、通信ネットワークを介して相互作用する。クライアントとサーバの関係は、それぞれのコンピュータ上で実行され、互いにクライアント-サーバ関係を有するコンピュータプログラムによって生じる。いくつかの実施形態では、サーバが(たとえば、クライアントデバイスと相互作用するユーザにデータを表示し、このユーザからユーザ入力を受信することを目的として)クライアントデバイスにデータ(たとえば、HTMLページ)を送信する。クライアントデバイスにおいて生成されたデータ(たとえば、ユーザの相互作用の結果)をクライアントデバイスからサーバにおいて受信することができる。
【0052】
1つまたは複数のコンピュータのシステムは、動作時にシステムに特定のアクションを実行させるシステム上にインストールされたソフトウェア、ファームウェア、ハードウェア、またはそれらの組合せを有することによって、それらのアクションを実行するように構成することができる。1つまたは複数のコンピュータプログラムは、データ処理装置によって実行されたときに装置にアクションを実行させる命令を含むことによって特定のアクションを実行するように構成することができる。
【0053】
本明細書は多数の特定の実装形態詳細情報を含むが、これらは任意の発明または請求可能なものの範囲に対する制限として解釈されるべきではなく、特定の発明の特定の実施形態に固有の特徴の説明として解釈されるべきである。本明細書において別々の実施形態の文脈で説明した特定の特徴を単一の実施形態において組み合わせて実施することもできる。逆に、単一の実施形態の文脈において説明した様々な特徴を複数の実施形態において別々に実施することもでき、あるいは任意に適切に部分的に組み合わせて実施することもできる。さらに、上記では各特徴が特定の組合せにおいて作用するものとして記載され、場合によっては最初はそのようなものとして請求されることがあるが、請求された組合せにおける1つまたは複数の特徴を場合によっては組合せから削除することができ、請求された組合せを部分的組合せまたは部分的組合せの変形例の対象とすることができる。
【0054】
同様に、動作は図面において特定の順序で示されているが、このことは、そのような動作を図示された特定の順序で実行するかまたは番号通りに実行する必要があると理解されるべきではなく、所望の結果を実現するためにすべての図示された動作を実行する必要があると理解されるべきではない。いくつかの状況では、マルチタスキングおよび並列処理が有利である場合がある。さらに、上述の実施形態における様々なシステム構成要素の分離は、すべての実施形態においてそのような分離が必要であると理解されるべきではなく、一般に、上述のプログラム構成要素およびシステムを単一のソフトウェア製品として一体化することもでき、あるいは複数のソフトウェア製品としてパッケージングすることもできると理解されるべきである。
【0055】
以上、主題の特定の実施形態について説明した。他の実施形態も特許請求の範囲内である。場合によっては、特許請求の範囲に記載されたアクションを異なる順序で実行することができ、それでも所望の結果を実現することができる。さらに、添付の図に示されているプロセスは、所望の結果を実現するうえで、必ずしも図示の特定の順序を必要とせず、また番号通りである必要はない。いくつかの実装形態では、マルチタスキングおよび並列処理が有利である場合がある。したがって、他の実施形態も以下の特許請求の範囲内である。
【符号の説明】
【0056】
10 ユーザ
100 音声認識システム
110 音声入力
111 第1の部分
112 第2の部分
120 ユーザデバイス
140 発話認識エンジン
142 音声デコーダ
144 コンテキストモジュール
146 コンテキスト調整モジュール
148 コンテキスト
150 検索クエリ
160 検索エンジン
170 検索結果
180 ネットワーク
210 コンテキスト
220 コンテキスト
310 音声入力
311 部分
312 部分