(57)【特許請求の範囲】
【請求項１】
コンピュータによって実行された場合、前記コンピュータに以下の動作を実行させる命令を記憶しているコンピュータ可読記憶媒体であって、前記動作が、
第1の発話を含む複数の発話をエンコードしているオーディオ信号を受信することと、
前記第1の発話の一部が、キーフレーズの一部であるとする第1の閾値を満たすかどうかを判定することと、
前記第1の発話の一部が、前記キーフレーズの一部であるとする前記第1の閾値を満たすとの判定に応じて、サーバシステムに、前記オーディオ信号を送信することであって、前記サーバシステムは、前記第1の発話が、前記キーフレーズであるとする第2の閾値を満たすかどうかを判定し、前記第2の閾値は、前記第1の閾値より制限的である、ことと、
前記サーバシステムが、前記第1の発話が前記第2の閾値を満たすと判定した場合、前記オーディオ信号においてエンコードされた前記第1の発話および1つまたは複数の他の発話を表すタグ付きテキストデータを前記サーバシステムから受信することとを含む、
コンピュータ可読記憶媒体。
【請求項２】
前記動作は、
前記サーバシステムが、前記第1の発話が前記第2の閾値を満たすと判定した場合、前記オーディオ信号においてエンコードされた前記発話を表す前記タグ付きテキストデータを前記サーバシステムから受信することに続いて、前記タグ付きテキストデータを用いてアクションを実行することを含む、
請求項1に記載のコンピュータ可読記憶媒体。
【請求項３】
前記発話は、2つ以上の発話を含み、
前記第1の発話は、前記オーディオ信号における前記2つ以上の発話からの他の発話の前にエンコードされ、
前記タグ付きテキストデータを用いて前記アクションを実行することは、
前記第1の発話後に前記オーディオ信号においてエンコードされた前記1つまたは複数の発話についての前記タグ付きテキストデータを用いてアクションを実行することを含む、
請求項2に記載のコンピュータ可読記憶媒体。
【請求項４】
前記第1の発話が前記キーフレーズの一部であるとする前記第1の閾値を満たすかどうかを判定することは、
前記第1の発話の一部が、2つ以上の単語を含む前記キーフレーズの一部であるとする前記第1の閾値を満たすかどうかを判定することを含む、
請求項1に記載のコンピュータ可読記憶媒体。
【請求項５】
前記動作は、
第2の発話を含む1つまたは複数の発話をエンコードしている第2のオーディオ信号を受信することと、
前記第2の発話の一部がキーフレーズの一部であるとする前記第1の閾値を満たすかどうかを判定することと、
前記第2の発話の一部がキーフレーズの一部であるとする前記第1の閾値を満たさないとの判定に応じて、前記第2のオーディオ信号を破棄することとを含む、
請求項1に記載のコンピュータ可読記憶媒体。
【請求項６】
前記動作は、
前記第2の発話の一部がキーフレーズの一部であるとする前記第1の閾値を満たさないとの判定に応じて、前記第2のオーディオ信号からのデータを用いてアクションを実行しないことを決定することを含む、
請求項5に記載のコンピュータ可読記憶媒体。
【請求項７】
前記第1の発話の一部がキーフレーズの一部であるとする前記第1の閾値を満たすかどうかを判定することは、
前記第1の発話の一部がキーフレーズの一部であるとする第1の可能性を満たすかどうかを判定することを含む、
請求項1に記載のコンピュータ可読記憶媒体。
【請求項８】
1つまたは複数のコンピュータおよび1つまたは複数のストレージデバイスを含むシステムであって、前記1つまたは複数のコンピュータによって実行された場合に、前記1つまたは複数のコンピュータに以下の動作を実行させるように動作可能な命令が前記ストレージデバイスに記憶されており、前記動作が、
第1の発話を含む1つまたは複数の発話をエンコードしているオーディオ信号をクライアントデバイスから受信することであって、前記クライアントデバイスにおいて、前記第1の発話の少なくとも一部が、キーフレーズの少なくとも一部であるとする第1の閾値を満たすと判定される、ことと、
前記第1の発話が、前記キーフレーズであるとする第2の閾値を満たすかどうかを判定することであって、前記第2の閾値は、前記第1の閾値より制限的である、ことと、
前記第1の発話が、前記キーフレーズであるとする前記第2の閾値を満たすかどうかの判定の結果を前記クライアントデバイスに送信することとを含む、
システム。
【請求項９】
前記第1の発話が前記キーフレーズであるとする前記第2の閾値を満たすかどうかの判定の前記結果を前記クライアントデバイスに送信することは、
前記第1の発話が前記キーフレーズであるとする前記第2の閾値を満たさないとの判定に応じて、前記キーフレーズが前記オーディオ信号に含まれていそうにないことを示すデータを前記クライアントデバイスに送信することを含む、
請求項8に記載のシステム。
【請求項１０】
前記第1の発話が前記キーフレーズであるとする前記第2の閾値を満たすかどうかの判定の前記結果を前記クライアントデバイスに送信することは、
前記第1の発話が前記キーフレーズであるとする前記第2の閾値を満たすとの判定に応じて、前記オーディオ信号についてのデータを前記クライアントデバイスに送信することを含む、
請求項8に記載のシステム。
【請求項１１】
前記第1の発話が前記キーフレーズであるとする前記第2の閾値を満たすとの判定に応じて、前記オーディオ信号についてのデータを前記クライアントデバイスに送信することは、前記オーディオ信号においてエンコードされた前記発話を表すタグ付きテキストデータを前記クライアントデバイスに送信することを含む、
請求項10に記載のシステム。
【請求項１２】
前記動作は、
前記オーディオ信号の全体を分析して、前記1つまたは複数の発話のそれぞれについて第1のデータを決定することを含み、
前記第1の発話が前記キーフレーズであるとする前記第2の閾値を満たすとの判定に応じて前記オーディオ信号についての前記データを前記クライアントデバイスに送信することは、
前記第1の発話が前記キーフレーズであるとする前記第2の閾値を満たすとの判定に応じて、前記オーディオ信号についての前記第1のデータを前記クライアントデバイスに送信することを含む、
請求項10に記載のシステム。
【請求項１３】
第1の発話を含む複数の発話をエンコードしているオーディオ信号を受信するステップと、
前記第1の発話の一部がキーフレーズの一部であるとする第1の閾値を満たすかどうかを判定するステップと、
前記第1の発話の一部がキーフレーズの一部であるとする前記第1の閾値を満たすとの判定に応じて、サーバシステムに前記オーディオ信号を送信するステップであって、前記サーバシステムは、前記第1の発話が前記キーフレーズであるとする第2の閾値を満たすかどうかを判定し、前記第2の閾値は、前記第1の閾値より制限的である、ステップと、
前記サーバシステムが、前記第1の発話が前記第2の閾値を満たすと判定した場合、前記オーディオ信号においてエンコードされた前記第1の発話および1つまたは複数の他の発話を表すタグ付きテキストデータを前記サーバシステムから受信するステップとを含む、
コンピュータで実行される方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本開示は、サーバ側ホットワーディングに関する。
【背景技術】
【０００２】
自動音声認識は、数あるタイプのデバイスの中でも特にモバイルデバイスにおいて用いられる1つの技術である。この技術についての共通の目標である1つのタスクは、ボイスコマンドを用いてデバイスを起動し、デバイスと基本的な対話を行うことである。たとえば、デバイスがスリープ状態にあるときにデバイスが作動すべきであることを知らせる「ホットワード」をデバイスが認識することが望ましい。
【発明の概要】
【課題を解決するための手段】
【０００３】
システムが2つの閾値を用いて、ユーザがキーフレーズを話したかどうかを判定することができる。システムに含まれるクライアントデバイスが第1の低い閾値を用いて、ユーザが話した言葉の一部がキーフレーズの一部と同じかどうかを判定する。たとえば、キーフレーズが「okay google」であるとき、クライアントデバイスは第1の低い閾値を用いて、ユーザが「okay」または「okay g」または「okay google」と話したかどうかを判定することができる。クライアントデバイスが、ユーザが話した言葉の一部がキーフレーズの一部と同じであると判定すると、クライアントデバイスは、その言葉についてのデータをサーバに送信する。サーバは、第2の高い閾値を用いて、ユーザが話した言葉がキーフレーズと同じかどうかを判定する。サーバは、キーフレーズ全体を分析して、ユーザがキーフレーズを話したかどうかを判定する。サーバが、キーフレーズがその言葉に含まれていると判定すると、サーバは、ユーザが話した他の言葉を解析して、クライアントデバイスが実行すべきアクションについてのデータを生成することができる。
【０００４】
いくつかの実装形態において、クライアントデバイスは、1つまたは複数の発話をエンコードしているオーディオ信号を受信することができる。発話とは、コンピュータに対して単一の意味を表す1つまたは複数の単語の発声(ユーザが話す)である。発話は、一単語、いくつかの単語、文、さらに複数の文であってもよい。発話はこれにより、テキストまたは音声の所与のシーケンスからのn個のアイテムの連続シーケンスであるnグラム(nは1以上)を含むことができる。これらのアイテムは、いくつかの例を挙げると、音素、音節、文字、単語または塩基対とすることができる。クライアントデバイスは、第1の閾値を用いて、オーディオ信号の先頭でエンコードされた1つまたは複数の第1の発話がキーフレーズであるとする第1の閾値を満たすかどうかを判定する。クライアントデバイスは、1つの発話の一部、キーフレーズが複数の単語を含むときの1つまたは複数の第1の発話からの単一の発話、またはその両方を分析することができる。実際には、第1の閾値を満たすかどうかが判定される、キーフレーズに対応する発話は、ある意味でキーフレーズを一意に、そして単一文字、単一音素などのような偶発的で一般的に頻繁に話される発話と区別するため、少なくとも複数の音素、少なくとも複数の音節、または1つまたは複数の単語などの音声アイテムで通常、構成されることになる。
【０００５】
クライアントデバイスが、1つまたは複数の第1の発話がキーフレーズであるとする第1の閾値を満たすと判定すると、クライアントデバイスは、追加の分析のために、たとえばクライアントデバイスとは別個のサーバに含まれる音声認識システムにオーディオ信号を送信する。音声認識システムはオーディオ信号を受信する。音声認識システムは、1つまたは複数の第1の発話を分析して、1つまたは複数の第1の発話がキーフレーズであるとする第2の閾値を満たすかどうかを判定する。第2の閾値は第1の閾値より制限的であり、たとえば、第1の閾値は第2の閾値より正確でないかまたは低い。たとえば、第1の閾値と第2の閾値との両方が可能性であるとき、第1の閾値、たとえば、50パーセントは、第2の閾値、たとえば、75または90パーセントより低い可能性である。1つまたは複数の第1の発話がキーフレーズであるとする第1の閾値または第2の閾値を満たすために、対応するシステムが、1つまたは複数の第1の発話がキーフレーズである可能性は、それぞれの閾値より大きい、またはそれ以上であると判定することができる。
【０００６】
音声認識システムは、音声認識システムがオーディオ信号に含まれるすべてのデータを分析できるように、1つまたは複数の第1の発話を含むオーディオ信号全体についてのデータをクライアントデバイスから受信する。オーディオ信号全体は、少なくともnグラムが、一定の時間ウィンドウ内に収まり、またはいくつかの他のメトリックによって1つまたは複数の第1の発話から離れた最大距離内にある限り、1つまたは複数の第1の発話の後にユーザが発した複数のnグラムを含むことができる。たとえば、音声認識システムがオーディオ信号の先頭に部分的な発話を含むオーディオ信号についてのデータを受信する確率を減らすため、音声認識システムによる音声認識分析を向上させるため、またはその両方のため、クライアントデバイスが、1つまたは複数の第1の発話の少なくとも一部がキーフレーズであるとする第1の閾値を満たすと判定した場合、音声認識システムはクライアントデバイスからオーディオ信号全体を受信する。これによりサーバは、クライアントデバイスと比較してサーバが利用可能なリソースの量が多いため、クライアントでよりサーバでの音声アイテムの数が大きい、たとえば、サーバでの分析モデルがより堅牢であるため、またはその両方のため、オーディオ信号の自動音声分析を向上させることができ、これにより認識を向上させることができる。
【０００７】
いくつかの実装形態において、クライアントデバイスは、第1の発話の1つの接頭辞または一部を分析することができる。たとえば、キーフレーズが「Okay Google」であるとき、クライアントデバイスは、第2の発話のすべてを分析することなく、1つまたは複数の第1の発話が「Okay G」または「Okay」をエンコードしていると判定し、応答として、オーディオ信号を音声認識システムに送信することができる。換言すれば、第1の閾値を満たすかどうかが判定される1つまたは複数の第1の発話は、キーフレーズの一部、たとえば、キーフレーズの開始部分のみから構成されてもよい。第1の閾値が満たされると、たとえば、第1の発話の閾値距離内にある、第1の発話の後の音声アイテムを含む「他の発話」または「第2の発話」は、第1の発話とともにサーバに送信することができ、第1の発話と第2の発話との組み合わせが一緒になって、キーフレーズとの一致が存在するかどうかについての第2の閾値を満たすかどうかについてサーバによって分析される。
【０００８】
いくつかの実装形態において、クライアントデバイスは、オーディオ信号についてのデータとともに音声認識システムにキーフレーズについてのデータを送信することができる。キーフレーズについてのデータは、キーフレーズを表すテキスト、またはたとえば、クライアントデバイスについての識別子であってもよく、これを音声認識システムが用いてキーフレーズを判定することができる。音声認識システムは、キーフレーズについてのデータを用いて、オーディオ信号に含まれる1つまたは複数の第1の発話がキーフレーズであるとする第2の閾値を満たすかどうかを判定することができる。
【０００９】
一般に、本明細書に記載の主題の革新的な一態様は、第1の発話を含む1つまたは複数の発話をエンコードしているオーディオ信号を受信するアクションと、第1の発話の少なくとも一部がキーフレーズの少なくとも一部であるとする第1の閾値を満たすかどうかを判定するアクションと、第1の発話の少なくとも一部がキーフレーズの少なくとも一部であるとする第1の閾値を満たすとの判定に応じて、第1の発話がキーフレーズであるとする第2の閾値を満たすかどうかを判定するサーバシステムにオーディオ信号を送信するアクションであって、第2の閾値は第1の閾値より制限的である、アクションと、サーバシステムが、第1の発話が第2の閾値を満たすと判定した場合、オーディオ信号においてエンコードされた1つまたは複数の発話を表すタグ付きテキストデータをサーバシステムから受信するアクションと、を含む方法において実施することができる。この態様の他の実施形態は、対応するコンピュータシステム、装置、および1つまたは複数のコンピュータストレージデバイス上に記録されたコンピュータプログラムを含み、それぞれこれらの方法のアクションを実行するように構成される。1つまたは複数のコンピュータのシステムは、動作中にシステムにアクションを実行させる、システム上にインストールされたソフトウェア、ファームウェア、ハードウェア、またはこれらの組み合わせを有することによって、特定の動作またはアクションを実行するように構成することができる。1つまたは複数のコンピュータプログラムは、データ処理装置によって実行されると、その装置にアクションを実行させる命令を含むことによって、特定の動作またはアクションを実行するように構成することができる。
【００１０】
一般に、本明細書に記載の主題の革新的な一態様は、クライアントデバイスが、1つまたは複数の第1の発話の少なくとも一部がキーフレーズの少なくとも一部であるとする第1の閾値を満たすと判定された1つまたは複数の第1の発話を含む1つまたは複数の発話をエンコードしているオーディオ信号をクライアントデバイスから受信するアクションと、1つまたは複数の第1の発話がキーフレーズの少なくとも一部であるとする第2の閾値を満たすかどうかを判定するアクションであって、第2の閾値は第1の閾値より制限的である、アクションと、1つまたは複数の第1の発話がキーフレーズであるとする第2の閾値を満たすかどうかの判定の結果をクライアントデバイスに送信するアクションと、を含む方法において実施することができる。この態様の他の実施形態は、対応するコンピュータシステム、装置、および1つまたは複数のコンピュータストレージデバイス上に記録されたコンピュータプログラムを含み、それぞれこれらの方法のアクションを実行するように構成される。1つまたは複数のコンピュータのシステムは、動作中にシステムにアクションを実行させる、システム上にインストールされたソフトウェア、ファームウェア、ハードウェア、またはこれらの組み合わせを有することによって、特定の動作またはアクションを実行するように構成することができる。1つまたは複数のコンピュータプログラムは、データ処理装置によって実行されると、その装置にアクションを実行させる命令を含むことによって、特定の動作またはアクションを実行するように構成することができる。
【００１１】
前述の実施形態および他の実施形態はそれぞれ、以下の特徴の1つまたは複数を単独でまたは組み合わせて任意選択で含むことができる。この方法は、サーバシステムが、第1の発話が第2の閾値を満たすと判定した場合、オーディオ信号においてエンコードされた1つまたは複数の発話を表すタグ付きテキストデータをサーバシステムから受信することに続いて、タグ付きテキストデータを用いてアクションを実行することを含むことができる。1つまたは複数の発話は2つ以上の発話を含むことができ、第1の発話は、オーディオ信号における2つ以上の発話からの他の発話の前にエンコードされる。タグ付きテキストデータを用いてアクションを実行することは、第1の発話後のオーディオ信号においてエンコードされた1つまたは複数の発話についてのタグ付きテキストデータを用いてアクションを実行することを含むことができる。第1の発話の少なくとも一部がキーフレーズの少なくとも一部であるとする第1の閾値を満たすかどうかを判定することは、第1の発話の少なくとも一部が、2つ以上の単語を含むキーフレーズの少なくとも一部であるとする第1の閾値を満たすかどうかを判定することを含むことができる。
【００１２】
いくつかの実装形態において、この方法は、第2の発話を含む1つまたは複数の第2の発話をエンコードしている第2のオーディオ信号を受信することと、第2の発話の少なくとも一部がキーフレーズの少なくとも一部であるとする第1の閾値を満たすかどうかを判定することと、第2の発話の少なくとも一部がキーフレーズの少なくとも一部であるとする第1の閾値を満たさないとの判定に応じて、第2のオーディオ信号を破棄することと、を含むことができる。この方法は、第2の発話の少なくとも一部がキーフレーズの少なくとも一部であるとする第1の閾値を満たさないとの判定に応じて、第2のオーディオ信号からのデータを用いてアクションを実行しないことを決定することを含むことができる。第1の発話の少なくとも一部がキーフレーズであるとする第1の閾値を満たすかどうかを判定することは、第1の発話の少なくとも一部がキーフレーズの少なくとも一部であるとする第1の可能性を満たすかどうかを判定することを含むことができる。
【００１３】
いくつかの実装形態において、1つまたは複数の第1の発話がキーフレーズであるとする第2の閾値を満たすかどうかの判定の結果をクライアントデバイスに送信することは、1つまたは複数の第1の発話がキーフレーズであるとする第2の閾値を満たさないとの判定に応じて、キーフレーズはオーディオ信号に含まれていそうにないことを示すデータをクライアントデバイスに送信することを含むことができる。1つまたは複数の第1の発話がキーフレーズであるとする第2の閾値を満たすかどうかの判定の結果をクライアントデバイスに送信することは、1つまたは複数の第1の発話がキーフレーズであるとする第2の閾値を満たすとの判定に応じて、オーディオ信号についてのデータをクライアントデバイスに送信することを含むことができる。1つまたは複数の第1の発話がキーフレーズであるとする第2の閾値を満たすとの判定に応じて、オーディオ信号についてのデータをクライアントデバイスに送信することは、オーディオ信号においてエンコードされた1つまたは複数の発話を表すタグ付きテキストデータをクライアントデバイスに送信することを含むことができる。この方法は、オーディオ信号全体を分析して、1つまたは複数の発話のそれぞれについて第1のデータを決定することを含むことができる。1つまたは複数の第1の発話がキーフレーズであるとする第2の閾値を満たすとの判定に応じて、オーディオ信号についてのデータをクライアントデバイスに送信することは、1つまたは複数の第1の発話がキーフレーズであるとする第2の閾値を満たすとの判定に応じて、オーディオ信号についての第1のデータをクライアントデバイスに送信することを含むことができる。
【００１４】
いくつかの実装形態において、1つまたは複数の第1の発話がキーフレーズであるとする第2の閾値を満たすかどうかを判定することは、言語モデルを用いて、1つまたは複数の第1の発話がキーフレーズであるとする第2の閾値を満たすかどうかを判定することを含むことができる。言語モデルは、音声アイテム、たとえば、音素、音節、または単語のシーケンスがそのシーケンスによって指定された順序で起こる可能性を示す、音声アイテムのシーケンスにわたる確率分布を定義することができる。自動音声認識においては、1つまたは複数のコンピュータが言語モデルによって定義された音声アイテムシーケンスと音を照合し、これらの音声アイテムシーケンスについての対応する確率を判定する。言語モデルにおける確率を用いて、1つまたは複数のコンピュータは、シーケンス内の個々の音声アイテムの文脈を考慮して、たとえば、音声アイテムがシーケンスにおいて現れる順序を考慮して、同様に聞こえる音声アイテム、たとえば、単語およびフレーズを区別することができる。この方法は、言語モデルを用いて、1つまたは複数の第1の発話がキーフレーズであるとする第2の閾値を満たすかどうかを判定する前に、キーフレーズについての言語モデルをカスタマイズすることを含むことができる。この方法は、キーフレーズを識別するテキストを受信することを含むことができる。キーフレーズについての言語モデルをカスタマイズすることは、キーフレーズを識別するテキストを用いて、キーフレーズについての言語モデルをカスタマイズすることを含むことができる。この方法は、識別子を受信することと、その識別子を用いて、キーフレーズについてのキーフレーズデータを判定することと、を含むことができる。キーフレーズについての言語モデルをカスタマイズすることは、キーフレーズデータを用いて、キーフレーズについての言語モデルをカスタマイズすることを含むことができる。言語モデルを用いて、1つまたは複数の第1の発話がキーフレーズであるとする第2の閾値を満たすかどうかを判定することは、言語モデルおよび音響モデルを用いて、1つまたは複数の第1の発話がキーフレーズであるとする第2の閾値を満たすかどうかを判定することを含むことができる。音響モデルは、音素、または他の音声アイテムと、その音素、または対応する他の音声アイテムの発声との間のマッピングを定義することができる。コンピュータは、自動音声認識プロセスにおいて音響モデルを用いて、オーディオ信号においてエンコードされた音声アイテムの発声と対応する音声アイテムとの間の関係を判定することができる。言語モデルおよび音響モデルを用いて、1つまたは複数の第1の発話がキーフレーズであるとする第2の閾値を満たすかどうかを判定することは、1つまたは複数の第1の発話についてのデータを言語モデルに提供して、言語モデルに第1の出力を生成させることと、1つまたは複数の第1の発話についてのデータを音響モデルに提供して、音響モデルに第2の出力を生成させることと、第1の出力と第2の出力とを組み合わせて組み合わせ出力を生成することと、組み合わせ出力を用いて、1つまたは複数の第1の発話がキーフレーズであるとする第2の閾値を満たすかどうかを判定することと、を含むことができる。こ��方法は、デフォルトのキーフレーズについての言語モデルを選択することを含むことができる。この方法は、デフォルトのキーフレーズを用いるかどうかを決定することを含むことができる。
【発明の効果】
【００１５】
本明細書に記載の主題は、特定の実施形態において実施することができ、以下の利点の1つまたは複数をもたらすことができる。いくつかの実装形態において、本書に記載のシステムおよび方法は、第1の低い閾値でホットワード分析中にクライアントデバイスが用いるリソースを削減すること、音声認識システムで第2のより制限的な閾値を用いることによってホットワード分析の精度を向上させること、またはその両方を行うことができる。いくつかの実装形態において、以下で説明するシステムおよび方法は、キーフレーズを含むオーディオ信号全体を分析のために音声認識システムに送信することによって、オーディオ信号におけるテキストをより正確に解析、セグメント化、またはその両方を行うことができ、たとえば、オーディオ信号においてエンコードされた他の発話とは別個に、オーディオ信号においてエンコードされたキーフレーズをより正確に識別することができる。いくつかの実装形態において、以下で説明するシステムおよび方法は、音声認識システムによって用いられるより制限的なホットワード分析閾値より低いホットワード分析閾値をクライアントが用いるとき、他のシステムと比較して、クライアントの処理時間を短縮すること、オーディオ信号を音声認識システムにより迅速に送信すること、またはその両方を行うことができる。いくつかの実装形態において、以下で説明するシステムおよび方法は、発話が第1の低い閾値を満たさないとき、クライアントデバイスが分析のためにサーバシステムに送信するオーディオ信号が少なくなると、帯域幅の使用を削減することができる。
【００１６】
本明細書に記載の主題の1つまたは複数の実装形態の詳細は、添付の図面および以下の説明に記載されている。本主題の他の特徴、態様、および利点は、本説明、図面、および特許請求の範囲から明らかになるであろう。
【図面の簡単な説明】
【００１７】
【図１】クライアントデバイスが第1の閾値を用いてオーディオ信号を分析し、音声認識システムが第1の閾値より制限的な第2の閾値を用いてそのオーディオ信号を分析する環境の一例である。
【図２】アクションを実行するかどうかを判定するためのプロセスのフロー図である。
【図３】オーディオ信号についてのタグ付きテキストデータを生成するためのプロセスのフロー図である。
【図４】本書に記載のコンピュータで実行される方法に関連して用いることができるコンピューティングシステムのブロック図である。
【発明を実施するための形態】
【００１８】
様々な図面における同様の参照番号および名称は同様の要素を示す。
【００１９】
図1は、クライアントデバイス102が第1の閾値を用いてオーディオ信号を分析し、音声認識システム112が第1の閾値より制限的な第2の閾値を用いてそのオーディオ信号を分析する環境100の例である。クライアントデバイス102は、第1の閾値を用いて、オーディオ信号がキーフレーズの少なくとも一部をエンコードしているかどうかを判定する。クライアントデバイス102が、オーディオ信号がキーフレーズであるとする第1の閾値を満たすと判定すると、クライアントデバイス102は、第2の閾値を用いて、オーディオ信号がキーフレーズ全体をエンコードしているかどうかを判定する音声認識システム112にオーディオ信号を送信する。その目的のため、クライアントデバイス102は、認識されたキーフレーズの一部を表すオーディオ信号だけでなく、オーディオ信号全体、またはキーフレーズの認識された部分を表す部分の後の特定の範囲内にあるオーディオ信号の少なくとも一部を音声認識システム112に送信することができる。
【００２０】
音声認識システム112が、オーディオ信号がキーフレーズ全体をエンコードしていると判定すれば、音声認識システム112は、オーディオ信号においてエンコードされた音声認識された発話のタグ付きテキストデータをクライアントデバイス102に提供して、クライアントデバイス102がオーディオ信号に基づくアクションを実行することを可能にすることができる。これによりタグ付きテキストデータは、音声認識された発話および、実行されるべきアクションを表すことができるか、そうでなければ認識された発話内のテキストのカテゴリを識別する「タグ」を含むことができ、クライアントデバイス102は、タグおよびタグに対応する音声認識された発話を識別できるようになる。クライアントデバイス102は、タグ付きテキストデータを用いて、実行すべきアクション、たとえば、実行すべき命令を判定すること、アクションを実行すべきかどうかを判定するときに音声認識された発話のどの部分を分析すべきかを判定すること、またはその両方を行うことができる。
【００２１】
クライアントデバイス102は、オーディオ信号を捉えるマイクロフォン104を含む。たとえば、クライアントデバイス102は、マイクロフォン104がオーディオ信号の少なくとも一部を捉えている間、より低い電力状態、たとえば、スタンバイ状態にあることがある。オーディオ信号の少なくとも一部は、オーディオ信号全体、オーディオ信号に含まれる1つまたは複数の第1の発話、またはオーディオ信号の先頭の異なる部分であってもよい。オーディオ信号においてエンコードされた発話の一例は、「ok google play some music」である。この例において、第1の発話は「ok」または「ok google」とすることができる。
【００２２】
マイクロフォン104は、オーディオ信号、またはオーディオ信号が捉えられる際のオーディオ信号の一部をクライアントホットワード検出モジュール106に提供する。たとえば、マイクロフォン104、またはクライアントデバイス102内のコンポーネントの組み合わせは、オーディオ信号がマイクロフォン104によって捉えられる際に、オーディオ信号の一部をクライアントホットワード検出モジュール106に提供することができる。
【００２３】
クライアントホットワード検出モジュール106は、時間TAで、オーディオ信号が第1の閾値108を満たすかどうかを判定する。たとえば、クライアントホットワード検出モジュール106は、オーディオ信号の先頭に含まれる、1つまたは複数の第1の発話の少なくとも一部を分析して、1つまたは複数の第1の発話の一部がキーフレーズであるとする第1の閾値108を満たすかどうかを判定することができる。第1の発話の一部は「ok」または「ok google」とすることができる。キーフレーズの一例は「ok google」とすることができる。いくつかの例において、クライアントホットワード検出モジュール106は、1つのキーフレーズのみの出現を検出するように構成される。いくつかの実装形態において、クライアントホットワード検出モジュールは、任意の複数の異なるキーフレーズ、たとえば10のキーフレーズの出現を検出するように構成される。複数の異なるキーフレーズは、クライアントホットワード検出モジュール106がトレーニングされる限られた数の異なるキーフレーズを含む。
【００２４】
クライアントホットワード検出モジュール106は、第1の発話の少なくとも一部がキーフレーズの少なくとも一部と同じである可能性を判定することができる。その目的のため、クライアントホットワード検出モジュール106は、第1の発話の少なくとも一部を音素または他の言語単位にセグメント化し、音響モデルおよび/または言語モデルを用いて、第1の発話がキーフレーズまたはキーフレーズの一部と一致するかどうかの可能性を得る任意の既知の自動音声認識アプローチを適用することができる。キーフレーズの一部は、たとえば、キーフレーズの先頭に音声アイテムを含むキーフレーズの先頭部分であってもよい。クライアントホットワード検出モジュール106は、その可能性を第1の閾値108と比較することができる。その可能性が第1の閾値108を満たすとき、クライアントデバイス102は、たとえば、1つまたは複数のサーバ上に配置された音声認識システム112にオーディオ信号を送信することができる。その可能性が第1の閾値108を満たさないとき、クライアントデバイス102は、オーディオ信号に含まれる発話に基づくさらなるアクションをとることなく、たとえば、オーディオ信号を破棄してもよい。
【００２５】
クライアントホットワード検出モジュール106は、キーフレーズが「ok google」であること、そしてオーディオ信号における第1の発話の1つとして、発話「ok」がキーフレーズの一部であるとする第1の閾値108を満たすことを判定することができる。いくつかの例において、クライアントホットワード検出モジュール106は、オーディオ信号からの発話「ok google」が、キーフレーズの一部、たとえば、キーフレーズ全体であるとする第1の閾値108を満たすと判定することができる。
【００２６】
いくつかの実装形態において、クライアントホットワード検出モジュール106が、第1の発話の1つの1つまたは一部がキーフレーズの一部であるとする第1の閾値108を満たすと判定すると、クライアントホットワード検出モジュール106は、第1の発話の全長がキーフレーズについての長さと一致するかどうかを判定することができる。たとえば、クライアントホットワード検出モジュール106は、1つまたは複数の第1の発話が話された時間が、キーフレーズが話されるための平均時間と一致することを判定することができる。平均時間は、クライアントデバイス102のユーザについてのもの、またはたとえば、クライアントデバイス102のユーザを含む複数の異なる人々についてのものであってもよい。
【００２７】
いくつかの実装形態において、クライアントホットワード検出モジュール106は、たとえば、1つまたは複数の第1の発話の一部のみを分析するとき、第1の発話の全長および第1の発話に含まれるnグラム、たとえば単語の総数が、キーフレーズの全長およびキーフレーズに含まれるnグラムの数と一致することを判定することができる。たとえば、クライアントホットワード検出モジュール106は、第1の発話の数を示す第1の発話間の無音の数を判定することができる。クライアントホットワード検出モジュール106は、第1の発話の数、第1の発話の話された長さ、またはその両方を、キーフレーズにおける単語の総数、キーフレーズの話された長さ、またはその両方と比較することができる。クライアントホットワード検出モジュール106が、第1の発話の総数とキーフレーズにおける単語の総数とが同じであること、第1の発話の話された長さがキーフレーズの話された長さから閾値量内であること、またはその両方を判定すると、たとえば、第1の発話の少なくとも一部がキーフレーズの一部であるとする第1の閾値108を満たすとき、クライアントホットワード検出モジュール106は、オーディオ信号における第1の発話がキーフレーズであるとする第1の閾値108を満たすと判定することができる。
【００２８】
第1の発話は、可能性が第1の閾値108より大きいと、キーフレーズであるとする第1の閾値108を満たすことができる。第1の発話は、可能性が第1の閾値108以上であると、キーフレーズであるとする第1の閾値108を満たすことができる。いくつかの例において、第1の発話は、可能性が第1の閾値108より小さいと、キーフレーズであるとする第1の閾値108を満たさない。第1の発話は、可能性が第1の閾値108以下であると、キーフレーズであるとする第1の閾値108を満たさないことがある。
【００２９】
第1の発話の少なくとも一部がキーフレーズの少なくとも一部であるとする第1の閾値108を満たすとの判定に応じて、クライアントデバイス102は、時間TBで、オーディオ信号を音声認識システム112に送信する。音声認識システム112は、オーディオ信号を受信し、サーバホットワード検出モジュール114を用いて、時間TCで、オーディオ信号がキーフレーズであるとする第2の閾値116を満たすかどうかを判定する。たとえば、音声認識システム112は、サーバホットワード検出モジュール114を用いて、オーディオ信号がキーフレーズであるとする第2の閾値116を満たすかどうかを判定する。
【００３０】
第2の閾値116は第1の閾値108より制限的である。たとえば、第2の閾値116を用いるサーバホットワード検出モジュール114は、第1の閾値108を用いるクライアントホットワード検出モジュール106と比較して、第1の発話がキーフレーズと同じテキストを表すと誤って判定する、たとえば、誤検出である傾向が弱い。いくつかの例において、閾値が可能性であるとき、第1の閾値108は第2の閾値116より低い数値を有する。
【００３１】
サーバホットワード検出モジュール114は、言語モデル118、音響モデル120、またはその両方を用いて、1つまたは複数の第1の発話がキーフレーズであるとする第2の閾値116を満たすかどうかを判定することができる。言語モデル118および音響モデル120は、たとえば、クライアントホットワード検出モジュール106と比較して、大量のトレーニングデータを用いてそれぞれトレーニングされる。たとえば、言語モデル118、音響モデル120、またはその両方は、30,000時間のトレーニングデータを用いてトレーニングすることができる。クライアントホットワード検出モジュール106は、100時間のトレーニングデータを用いてトレーニングすることができる。
【００３２】
いくつかの例において、サーバホットワード検出モジュール114は、オンザフライで、オーディオ信号の分析に用いるために、言語モデル118、音響モデル120、またはその両方を含むホットワードバイアスモデルを作成することができる。ホットワードバイアスモデルは、音声アイテムのシーケンスにわたる確率分布を定義する言語モデルと、音声アイテムとそれらの音声アイテムの対応する発声との間のマッピングを定義する音響モデルとの組み合わせとすることができ、いくつかのキーフレーズまたはホットワードに特有のものである。音声認識システム112は、クライアントデバイス102が1つまたは複数の第1の発話を分析した1つまたは複数のキーフレーズに特有のクライアントデバイス102についてのホットワードバイアスモデルを作成することができる。
【００３３】
たとえば、サーバホットワード検出モジュール114は、サーバホットワード検出モジュール114がオーディオ信号を分析することになるキーフレーズを識別するデータをクライアントデバイス102から受信して、クライアントデバイス102が起動、アクションを実行、またはその両方をすべきかどうかを判定することができる。キーフレーズを識別するデータは、キーフレーズについてのテキストデータ、たとえば、テキスト文字列、またはクライアントデバイス102についての識別子とすることができ、たとえば、これらのいずれかを、クライアントデバイス102から受信されたオーディオ信号を分析する要求に含めることができる。サーバホットワード検出モジュール114は、クライアントデバイス102についての識別子を用いてデータベースにアクセスし、クライアントデバイス102についてのキーフレーズおよびオーディオ信号を決定することができる。サーバホットワード検出モジュール114は、クライアントデバイス102について判定された1つまたは複数のキーフレーズを用いて、音声認識システム112のメモリにすでに格納されている既存の言語モデル118、既存の音響モデル120、またはその両方を用いてクライアントデバイス102についてのホットワードバイアスモデルを作成することができる。
【００３４】
いくつかの例において、サーバホットワード検出モジュール114は、事前に構築されたホットワードバイアスモデルを用いることができる。たとえば、サーバホットワード検出モジュール114は、クライアントデバイス102からのまたは複数の異なるクライアントデバイスからの、すべて同じキーフレーズについてのものである複数のオーディオ信号を同じホットワードバイアスモデルを用いて分析することができる。
【００３５】
ホットワードバイアスモデルは、ホットワードバイアスモデルが分析を実行する1つまたは複数のnグラムを識別することができる。たとえば、キーフレーズが「ok google」であるとき、ホットワードバイアスモデルは、1つまたは複数のnグラム「<S> ok google」、「<S> ok」、または「ok google」についてのスコアを生成することができ、ここで<S>は文の先頭での無音を示す。
【００３６】
言語モデル118または音響モデル120の一方または両方は、ホットワードバイアスモデルについてのnグラムを用いて、オーディオ信号がキーフレーズを含むかどうかを判定することができる。たとえば、言語モデル118は、1つまたは複数のnグラムを用いて、オーディオ信号がキーフレーズを含む可能性を示すスコアを生成することができる。言語モデル118は、nグラムのいくつかを用いて、1つまたは複数の第1の発話がキーフレーズと同じであるとき、キーフレーズがオーディオ信号において正しく識別される可能性を高めることができる。たとえば、キーフレーズが2つ以上の単語を含むとき、言語モデル118は、キーフレーズ、たとえば「ok google」を言語モデル118に追加して、たとえば、言語モデル118がまだキーフレーズを含んでいないときと比較してキーフレーズが識別される可能性を高めることができる。
【００３７】
音響モデル120は、nグラムの1つまたは複数を用いて、オーディオ信号がキーフレーズを含む可能性を示すスコアを生成することができる。たとえば、音響モデル120は、キーフレーズを含む異なるフレーズについて複数のスコアを生成し、キーフレーズについてのスコアを出力として選択することができる。
【００３８】
サーバホットワード検出モジュール114は、言語モデル118および音響モデル120から2つのスコアを受信することができる。サーバホットワード検出モジュール114は、2つのスコアを組み合わせて、オーディオ信号についての全体のスコアを決定することができる。サーバホットワード検出モジュール114は、全体のスコアを第2の閾値116と比較することができる。全体のスコアが第2の閾値116を満たすとき、サーバホットワード検出モジュール114は、オーディオ信号がキーフレーズをエンコードしていそうであると判定する。全体のスコアが第2の閾値116を満たさないとき、サーバホットワード検出モジュール114は、オーディオ信号はキーフレーズをエンコードしていなさそうと判定する。
【００３９】
オーディオ信号はキーフレーズをエンコードしていなさそうであるとの判定に応じて、音声認識システム112は、オーディオ信号はキーフレーズをエンコードしていなさそうであることを示すメッセージをクライアントデバイス102に送信することができる。いくつかの例において、音声認識システム112は、オーディオ信号はキーフレーズをエンコードしていなさそうであると判定した場合に、クライアントデバイス102にメッセージを送信しないことがある。
【００４０】
サーバホットワード検出モジュール114が、オーディオ信号はキーフレーズをエンコードしていそうであると判定すると、タグ付きテキストジェネレータ122がオーディオ信号についてのタグ付きテキストを生成する。タグ付きテキストジェネレータ122は、言語モデル118、音響モデル120、またはその両方から、オーディオ信号においてエンコードされたnグラムを示すデータを受信することができる。たとえば、タグ付きテキストジェネレータ122は、オーディオ信号においておそらくエンコードされたnグラムについてのスコアを示すデータ、オーディオ信号においてエンコードされたnグラムを表すデータ、または他の適切なデータを音響モデル120から受信することができる。
【００４１】
タグ付きテキストジェネレータ122は、言語モデル118、音響モデル120、またはその両方からのデータを用いて、オーディオ信号においてエンコードされたnグラムについてのタグを生成する。たとえば、オーディオ信号が「ok google play some music」をエンコードしているとき、タグ付きテキストジェネレータ122は、文字列「<hotword biasing> ok google </hotword biasing> play some music」を表すデータを生成することができる。タグ「<hotword biasing>」はこれにより最初の文字列「ok google」をホットワードとして識別する。タグ「</hotword biasing>」は、ホットワードの終わりを識別するとともに、次の文字列が、a)自動音声認識プロセスによって認識された、b)クライアントデバイス102が対応する命令を実行することができるかどうかを判定するためにクライアントデバイス102が分析すべき、クライアントデバイス102に対する指示をおそらく含むことを示す。
【００４２】
音声認識システム112は、オーディオ信号についてのタグ付きテキストを時間TDでクライアントデバイス102に提供する。クライアントデバイス102は、タグ付きテキストを受信し、タグ付きテキストを分析して、実行すべきアクションを決定する。たとえば、クライアントデバイス102は、テキストに含まれるタグを用いて、テキストのどの部分がキーフレーズ、たとえば、1つまたは複数の第1の発話に対応するのか、そしてテキストのどの部分が、クライアントデバイス102が実行すべきアクションに対応するのかを判定することができる。たとえば、クライアントデバイス102は、「play some music」というテキストを用いて、音楽プレーヤアプリケーションを起動して音楽を再生することを決定することができる。クライアントデバイス102は、音楽プレーヤアプリケーションを用いて再生するための音楽ジャンル、音楽ステーション、アーティスト、または他のタイプの音楽の迅速な要求入力をユーザに提供することができる。
【００４３】
いくつかの実装形態において、クライアントデバイス102は、オーディオ信号においてエンコードされた複数の異なるキーフレーズのいずれかを検出するように構成することができる。たとえば、クライアントデバイス102は、「hey indigo」または「hey gennie」などのユーザ指定のホットワードを表す入力を受信することができる。クライアントデバイス102は、ユーザ指定のホットワードを表すデータを音声認識システム112に提供することができる。たとえば、クライアントデバイス102は、ユーザ指定のホットワードのテキスト表現をオーディオ信号とともに送信することができる。いくつかの例において、クライアントデバイス102は、音声認識システム112に、ユーザ指定のホットワードについてのデータを提供することができ、これを音声認識システム112がクライアントデバイス102についての識別子に、たとえば、クライアントデバイス102についてのユーザアカウントに関連付ける。
【００４４】
クライアントデバイス102は、異なる物理的地理的位置について異なるキーフレーズを有することができる。たとえば、クライアントデバイス102は、ユーザの家庭用の第1のキーフレーズと、ユーザのオフィス用の第2の異なるキーフレーズとを有することができる。クライアントデバイス102は、1つまたは複数の位置デバイス110を用いて、クライアントデバイス102についての現在の物理的地理的位置を判定し、対応するキーフレーズを選択することができる。クライアントデバイス102は、クライアントデバイス102の物理的地理的位置に基づいてキーフレーズを識別するオーディオ信号とともに音声認識システム112にデータを送信することができる。位置デバイス110は、全地球測位システム、たとえば、無線ホットスポットの無線署名を検出する無線デバイス、もしくは署名をブロードキャストする他のデバイス、またはセルラー基地局の情報を検出するセルラーアンテナのうちの1つまたは複数を含むことができる。
【００４５】
いくつかの例において、クライアントデバイス102は、クライアントデバイス102の物理的地理的位置を示すデータを音声認識システム112に送信することができる。たとえば、クライアントホットワード検出モジュール106は、それぞれが同じnグラムのプレフィックス、たとえば、「ok」で始まり、それぞれが異なる物理的地理的位置において用いられる複数、たとえば、5つの異なるキーフレーズ用に構成することができる。たとえば、クライアントデバイス102は、第1の位置において「ok google」というキーフレーズを有し、第1の位置とは異なる位置である第2の位置において「ok indigo」を有することができる。クライアントホットワード検出モジュール106は、複数の異なるキーフレーズのどれがオーディオ信号においてエンコードされ得るかを判定することなく、オーディオ信号がnグラムのプレフィックスを含むと判定することができる。オーディオ信号内の発話がキーフレーズであるとする第1の閾値108を満たすとクライアントホットワード検出モジュール106が判定すると、クライアントデバイス102は、オーディオ信号およびクライアントデバイス102についての位置データを音声認識システム112に送信することができる。音声認識システム112は、オーディオ信号および位置データを受信し、位置データを用いて、複数の異なるキーフレーズからキーフレーズを判定して分析に用いる。サーバホットワード検出モジュール114は、判定されたキーフレーズを用いてオーディオ信号を分析し、オーディオ信号が判定されたキーフレーズであるとする第2の閾値116を満たすかどうかを判定する。
【００４６】
いくつかの実装形態において、クライアントデバイス102が、たとえば、マイクロフォン104を用いてオーディオ信号を捉えるとき、クライアントデバイス102はスリープ、たとえば、低電力モードにある。スリープモードにおいて、クライアントデバイス102は完全な機能性を有さないことがある。たとえば、クライアントデバイス102のいくつかの特徴がバッテリ使用を減らすために無効化されることがある。
【００４７】
クライアントデバイス102は、第1の発話がキーフレーズであるとする第1の閾値108を満たすと判定すると、起動し始めることができる。たとえば、クライアントデバイス102は、1つまたは複数のネットワーク接続デバイス、1つまたは複数の位置デバイス110、またはその両方を有効にして、クライアントデバイス102が音声認識システム112と通信できるようにすることができる。
【００４８】
クライアントデバイス102が音声認識システム112からタグ付きテキストデータを受信すると、クライアントデバイス102はスリープモードを終了する。たとえば、クライアントデバイス102は、クライアントデバイス102のより多くの機能が、タグ付きテキストを用いて実行すべきアクションを決定すること、タグ付きテキストを用いて決定されたアクションを実行すること、またはその両方を行うことを可能にする。
【００４９】
音声認識システム112は、1つまたは複数の位置における1つまたは複数のコンピュータ上のコンピュータプログラムとして実装されるシステムの一例であり、これに本書に記載のシステム、コンポーネント、および技術が実装される。クライアントデバイス102は、パーソナルコンピュータ、モバイル通信デバイス、またはネットワーク124を介してデータを送受信することができる他のデバイスを含むことができる。ローカルエリアネットワーク(LAN)、ワイドエリアネットワーク(WAN)、インターネット、またはこれらの組み合わせなどのネットワーク124は、クライアントデバイス102と音声認識システム112とを接続する。音声認識システム112は、単一のサーバコンピュータ、またはたとえば、クラウドコンピューティングサービスとしてデプロイされたリモートコンピュータのセットを含む、互いに連携して動作する複数のサーバコンピュータを用いることができる。
【００５０】
図2は、アクションを実行すべきかどうかを判定するためのプロセス200のフロー図である。たとえば、プロセス200は、環境100からのクライアントデバイス102が用いることができる。
【００５１】
クライアントデバイスは、第1の発話を含む1つまたは複数の発話をエンコードしているオーディオ信号を受信する(202)。クライアントデバイスは任意の適切なタイプのデバイスを用いてオーディオ信号を捉えることができる。いくつかの例において、クライアントデバイスは、他のデバイス、たとえば、スマートウォッチからオーディオ信号を受信することができる。
【００５２】
クライアントデバイスは、第1の発話の少なくとも一部がキーフレーズの少なくとも一部であるとする第1の閾値を満たすかどうかを判定する(204)。クライアントデバイスは、1つまたは複数のキーフレーズについてのデータを含むことができる。クライアントデバイスは、第1の発話の少なくとも一部がキーフレーズの1つの一部であるとする第1の閾値によって定義された少なくとも所定の可能性を有するかどうかを判定することができる。第1の発話の一部は、第1の発話からの1つまたは複数のnグラム、または第1の発話からの他の適切なタイプのセグメントを含むことができる。いくつかの例において、キーフレーズが2つ以上の単語を含むとき、その一部は2つ以上の第1の発話からの一単語を含むことができる。いくつかの例において、クライアントデバイスは、複数の第1の発話、たとえば、1つまたは複数の第1の発話がキーフレーズの1つであるとする第1の閾値を満たすかどうかを判定することができる。
【００５３】
第1の発話の少なくとも一部がキーフレーズの少なくとも一部であるとする第1の閾値を満たすとの判定に応じて、クライアントデバイスは、第1の発話がキーフレーズであるとする第2の閾値を満たすかどうかを判定するサーバシステムにオーディオ信号を送信する(206)。第2の閾値は第1の閾値より制限的である。たとえば、クライアントデバイスは、オーディオ信号、またはオーディオ信号の一部をサーバ、たとえば、音声認識システムに送信して、第1の発話がキーフレーズであるとする第2の閾値を満たすかどうかをサーバに判定させることができる。サーバは常に第1の発話のすべてを分析して、第1の発話がキーフレーズ全体であるとする第2の閾値を満たすかどうかを判定する。
【００５４】
いくつかの実装形態において、クライアントデバイスがサーバシステムに送信するオーディオ信号の一部は、第1の閾値を満たす第1の発話および1つまたは複数の他の発話を含むことができる。たとえば、クライアントデバイスは、受信されたオーディオ信号の追加部分が1つまたは複数の他の発話を含むように、第1の発話を分析しながらオーディオ信号を受信し続けることができる。クライアントデバイスは、第1の発話および他の発話を含むオーディオ信号の一部をサーバに送信することができる。
【００５５】
クライアントデバイスは、サーバシステムから受信された応答データが、オーディオ信号においてエンコードされた1つまたは複数の発話を表すタグ付きテキストデータを含むかどうかを判定する(208)。たとえば、クライアントデバイスは、オーディオ信号をサーバに送信したことに応答して、サーバから応答データを受信することができる。クライアントデバイスは、応答データを分析して、応答データがタグ付きテキストデータを含むかどうかを判定することができる。
【００５６】
応答データはオーディオ信号においてエンコードされた1つまたは複数の発話を表すタグ付きテキストデータを含むとの判定に応じて、クライアントデバイスはタグ付きテキストデータを用いてアクションを実行する(210)。たとえば、クライアントデバイスは、データ内のタグを用いて、実行すべきアクションを決定する。タグは、タグ付きデータのどの部分、およびオーディオ信号の対応する部分が、キーフレーズについての第1の発話に対応するかを示すことができる。タグは、タグ付きデータのどの部分が、クライアントデバイスが実行すべきアクション、たとえば「play some music」に対応するかを示すことができる。
【００５７】
第1の発話の少なくとも一部がキーフレーズの少なくとも一部であるとする第1の閾値を満たさないとの判定に応じて、または応答データはタグ付きテキストデータを含まないとの判定に応じて、クライアントデバイスは、オーディオ信号からのデータを用いてアクションを実行しないことを決定する(212)。たとえば、第1の発話のいずれもキーフレーズであるとする第1の閾値を満たさないとき、クライアントデバイスはオーディオ信号を用いていかなるアクションも実行しない。いくつかの例において、オーディオ信号がキーフレーズをエンコードしなかったことを示すメッセージをクライアントデバイスがサーバから受信する、たとえば、応答データがタグ付きテキストデータを含まないとき、クライアントデバイスはオーディオ信号を用いていかなるアクションも実行しない。
【００５８】
第1の発話の少なくとも一部がキーフレーズの少なくとも一部であるとする第1の閾値を満たさないとの判定に応じて、または応答データはタグ付きテキストデータを含まないとの判定に応じて、クライアントデバイスはオーディオ信号を破棄する(214)。たとえば、第1の発話のいずれもキーフレーズであるとする第1の閾値を満たさないとき、クライアントデバイスはオーディオ信号を破棄することができる。いくつかの例において、オーディオ信号がキーフレーズをエンコードしなかったことを示すメッセージをクライアントデバイスがサーバから受信する、たとえば応答データがタグ付きテキストデータを含まないとき、クライアントデバイスはオーディオ信号を破棄することができる。いくつかの実装形態において、クライアントデバイスは、これらの条件の1つが発生したとき、所定の期間後にオーディオ信号を破棄することができる。
【００５９】
上述のプロセス200におけるステップの順序は例示にすぎず、アクションを実行すべきかどうかの判定は異なる順序で実行することができる。たとえば、クライアントデバイスは、オーディオ信号を破棄し、次いでオーディオ信号からのデータを用いてアクションを実行しないこともでき、またはこれら2つのステップを同時に実行することもできる。
【００６０】
いくつかの実装形態において、プロセス200は、追加のステップ、より少ないステップを含むことができ、またはステップのいくつかは複数のステップに分割することができる。たとえば、クライアントデバイスは、両方のステップを実行する代わりに、オーディオ信号を破棄するか、またはオーディオ信号からのデータを用いてアクションを実行しないか、のいずれかを行ってもよい。
【００６１】
図3は、オーディオ信号についてのタグ付きテキストデータを生成するためのプロセス300のフロー図である。たとえば、プロセス300は、環境100からの音声認識システム112によって用いることができる。
【００６２】
音声認識システムは、第1の発話の少なくとも一部がキーフレーズの少なくとも一部であるとする第1の閾値を満たすとクライアントデバイスが判定した1つまたは複数の第1の発話を含む1つまたは複数の発話をエンコードしているオーディオ信号をクライアントデバイスから受信する(302)。音声認識システムは、ネットワークを介してクライアントデバイスからオーディオ信号を受信することができる。クライアントデバイスは、図2を参照して上述したステップ202からステップ206を実行することを含むプロセスの一部として、オーディオ信号を音声認識システムに送信していることがある。
【００６３】
音声認識システムは、キーフレーズについての言語モデルをカスタマイズする(304)。たとえば、音声認識システムは、いずれの特定のキーフレーズにも特有ではない言語モデルがオーディオ信号においてエンコードされたキーフレーズの発生を正確に識別するであろう可能性を高めることができる。いくつかの例において、音声認識システムは、キーフレーズに特有の言語モデルについての重みを調整することができる。
【００６４】
いくつかの実装形態において、音声認識システムは、デフォルトのキーフレーズを用いるかどうかを判定することができる。たとえば、音声認識システムは、オーディオ信号を含むクライアントデバイスから受信されたメッセージが、キーフレーズを識別するデータ、たとえば、キーフレーズについてのテキストまたはデータベース内のキーフレーズの検索に用いることができる識別子も含むかどうかを判定することができる。音声認識システムは、メッセージがキーフレーズを識別するデータを含まないとき、デフォルトのキーフレーズを用いると決定することができる。たとえば、音声認識システムは、クライアントデバイス、または対応するユーザアカウントが、カスタマイズされたキーフレーズを持たず、デフォルトのキーフレーズを用いることを決定することができる。
【００６５】
音声認識システムは、言語モデル、音響モデル、またはその両方からの出力に基づいて、1つまたは複数の第1の発話がキーフレーズであるとする第2の閾値を満たすかどうかを判定する(306)。たとえば、音声認識システムは、言語モデル、音響モデル、またはその両方にオーディオ信号を提供する。音声認識システムは、言語モデル、音響モデル、またはその両方から、1つまたは複数の第1の発話がキーフレーズである可能性をそれぞれ示すスコアを受信する。音声認識システムは、言語モデルおよび音響モデルからの別個のスコアを組み合わせて、オーディオ信号についての組み合わせスコアがキーフレーズであるとする第2の閾値を満たすかどうかを判定することができる。
【００６６】
言語モデル、音響モデル、またはその両方からの出力に基づく、第1の発話がキーフレーズであるとする第2の閾値を満たすとの判定に応じて、音声認識システムは、オーディオ信号全体を分析して、1つまたは複数の発話のそれぞれについてのデータを決定する(308)。たとえば、音響モデルは、オーディオ信号においておそらくエンコードされた言葉についてのテキスト文字列を示す出力を生成する。タグ付きテキストジェネレータは、テキスト文字列に含まれるnグラム、たとえば、単語の1つまたは複数の属性を示すタグをテキスト文字列に適用することができる。たとえば、タグ付きテキストジェネレータは、キーフレーズ、アクションワード、たとえば、「play」、アプリケーション、たとえば、音楽プレーヤ、またはこれらの2つ以上の組み合わせを識別するタグをテキスト文字列に適用することができる。
【００６７】
音声認識システムは、1つまたは複数の発話のそれぞれについてのデータを用いて生成されたオーディオ信号においてエンコードされた1つまたは複数の発話を表すタグ付きテキストデータをクライアントデバイスに送信する(310)。音声認識システムは、タグ付きテキストデータをクライアントデバイスに送信して、クライアントデバイスにタグ付きテキストデータを用いてアクションを実行させることができる。
【００６８】
言語モデル、音響モデル、またはその両方からの出力に基づく、第1の発話がキーフレーズであるとする第2の閾値を満たさないとの判定に応じて、音声認識システムは、キーフレーズはオーディオ信号においてエンコードされていなさそうであることを示すデータをクライアントデバイスに送信する(312)。たとえば、音声認識システムは、クライアントデバイスはオーディオ信号についてのデータを用いていかなるアクションも実行すべきでないことを示すメッセージをクライアントデバイスに提供することができる。
【００６９】
いくつかの実装形態において、プロセス300は、追加のステップ、より少ないステップを含むことができ、またはステップのいくつかは複数のステップに分割することができる。たとえば、音声認識システムは言語モデルをカスタマイズしないことがある。いくつかの例において、音声認識システムは、言語モデル、音響モデル、またはその両方以外のデータまたはシステムを用いて、第1の発話がキーフレーズであるとする第2の閾値を満たすかどうかを判定することができる。
【００７０】
本明細書に記載の主題および機能的動作の実施形態は、本明細書に開示された構造およびそれらの構造的等価物を含む、デジタル電子回路において、具体的に実現されたコンピュータソフトウェアもしくはファームウェアにおいて、コンピュータハードウェアにおいて、またはこれらの1つもしくは複数の組み合わせにおいて実施することができる。本明細書に記載の主題の実施形態は、1つまたは複数のコンピュータプログラム、すなわち、データ処理装置による、またはデータ処理装置の動作を制御するための実行のために具体的な非一時的プログラムキャリア上にエンコードされたコンピュータプログラム命令の1つまたは複数のモジュールとして実施することができる。あるいはまたは加えて、プログラム命令は、人工的に生成された伝播信号、たとえば、データ処理装置による実行のために適切な受信機装置に送信するための情報をエンコードするために生成される、機械生成の電気信号、光学信号、または電磁信号上にエンコードすることができる。コンピュータ記憶媒体は、機械可読ストレージデバイス、機械可読ストレージ基板、ランダムもしくはシリアルアクセスメモリデバイス、またはこれらの1つもしくは複数の組み合わせであってもよい。
【００７１】
「データ処理装置」という用語は、データ処理ハードウェアを指し、例として、プログラマブルプロセッサ、コンピュータ、または複数のプロセッサもしくはコンピュータを含む、データを処理するためのあらゆる種類の装置、デバイス、および機械を包含する。この装置はまた、専用ロジック回路、たとえば、FPGA(フィールドプログラマブルゲートアレイ)またはASIC(特定用途向け集積回路)であっても、またはこれをさらに含んでもよい。この装置は、任意選択で、ハードウェアに加えて、コンピュータプログラムのための実行環境を作成するコード、たとえば、プロセッサファームウェア、プロトコルスタック、データベース管理システム、オペレーティングシステム、またはこれらの1つまたは複数の組み合わせを構成するコードを含むことができる。
【００７２】
コンピュータプログラムは、プログラム、ソフトウェア、ソフトウェアアプリケーション、モジュール、ソフトウェアモジュール、スクリプト、またはコードとも呼ばれ、また記載されることがあり、コンパイルもしくはインタプリタされた言語、または宣言型もしくは手続き型言語を含む任意の形態のプログラミング言語で記述することができ、スタンドアロンプログラムとして、またはモジュールとして、コンポーネント、サブルーチン、またはコンピューティング環境における使用に適した他のユニットを含む任意の形態でデプロイすることができる。コンピュータプログラムは、ファイルシステム内のファイルに対応することがあるが、対応する必要はない。プログラムは、他のプログラムもしくはデータ、たとえば、マークアップ言語ドキュメントに格納された1つまたは複数のスクリプトを保持するファイルの一部に、問題のプログラム専用の単一ファイルに、または複数の協調ファイル、たとえば、1つまたは複数のモジュール、サブプログラム、もしくはコードの一部を格納するファイルに格納することができる。コンピュータプログラムは、1つのコンピュータ上で、または1つのサイトに配置された、もしくは複数のサイトにわたって分散されて通信ネットワークによって相互接続された複数のコンピュータ上で実行されるようにデプロイすることができる。
【００７３】
本明細書に記載のプロセスおよび論理フローは、1つまたは複数のコンピュータプログラムを実行する1つまたは複数のプログラム可能なコンピュータによって実行され、入力データに作用して出力を生成することにより機能を実行することができる。これらのプロセスおよび論理フローはまた、専用論理回路、たとえば、FPGA(フィールドプログラマブルゲートアレイ)またはASIC(特定用途向け集積回路)によって実行することができ、装置もこの回路として実現することができる。
【００７４】
コンピュータプログラムの実行に適したコンピュータは、例として、汎用もしくは専用マイクロプロセッサもしくはその両方、または任意の他の種類の中央処理装置を含む。一般に、中央処理装置は、リードオンリメモリまたはランダムアクセスメモリまたはその両方から命令およびデータを受信することになる。コンピュータの必須要素は、命令を実行または遂行するための中央処理装置と、命令およびデータを格納するための1つまたは複数のメモリデバイスと、である。一般に、コンピュータはまた、データを格納するための1つまたは複数の大容量ストレージデバイス、たとえば、磁気ディスク、光磁気ディスク、または光ディスクを含むか、またはそこからデータを受信もしくはそこへデータを転送、もしくはその両方を行うように動作可能に接続されることになる。しかしながら、コンピュータはそのようなデバイスを有する必要はない。また、コンピュータは、他のデバイス、ほんの数例を挙げると、たとえば、携帯電話、スマートフォン、携帯情報端末(PDA)、モバイルオーディオもしくはビデオプレーヤ、ゲームコンソール、全地球測位システム(GPS)受信機、またはポータブルストレージデバイス、たとえば、ユニバーサルシリアルバス(USB)フラッシュドライブに組み込むことができる。
【００７５】
コンピュータプログラム命令およびデータを格納するのに適したコンピュータ可読媒体は、半導体メモリデバイス、たとえば、EPROM、EEPROM、およびフラッシュメモリデバイス、磁気ディスク、たとえば、内蔵ハードディスクまたはリムーバブルディスク、光磁気ディスク、ならびにCD-ROMディスクおよびDVD-ROMディスクを例として含む、不揮発性メモリ、媒体およびメモリデバイスのすべての形態を含む。プロセッサおよびメモリは、専用論理回路によって補完する、またはこれに組み込むことができる。
【００７６】
ユーザとの相互作用を提供するために、本明細書に記載の主題の実施形態は、ディスプレイデバイス、たとえば、ユーザに情報を表示するためのLCD(液晶ディスプレイ)、OLED(有機発光ダイオード)または他のモニタ、およびキーボードおよびポインティングデバイス、たとえば、ユーザがコンピュータに入力を提供することができるマウスまたはトラックボールを有するコンピュータ上で実施することができる。他の種類のデバイスを用いて、ユーザとの相互作用を提供することもできる。たとえば、ユーザに提供されるフィードバックは、任意の形態の感覚フィードバック、たとえば、視覚フィードバック、聴覚フィードバック、または触覚フィードバックであってもよく、ユーザからの入力は、音響、音声、または触覚の入力を含む任意の形態で受信することができる。加えて、コンピュータは、ユーザによって用いられるデバイスとの間で文書を送受信することによって、たとえば、ユーザのデバイス上のウェブブラウザに、そのウェブブラウザから受信された要求に応じてウェブページを送信することによってユーザと相互作用することができる。
【００７７】
本明細書に記載の主題の実施形態は、たとえばデータサーバとしてバックエンドコンポーネントを含む、またはミドルウェアコンポーネント、たとえば、アプリケーションサーバを含む、またはフロントエンドコンポーネント、たとえば、本明細書に記載の主題の実装形態とユーザとの相互作用を可能にするグラフィカルユーザインターフェースまたはウェブブラウザを有するクライアントコンピュータを含むコンピューティングシステム、または1つまたは複数のこのようなバックエンドコンポーネント、ミドルウェアコンポーネント、またはフロントエンドコンポーネントの任意の組み合わせにおいて実施することができる。システムのコンポーネントは、任意の形式または媒体のデジタルデータ通信、たとえば、通信ネットワークによって相互接続することができる。通信ネットワークの例には、ローカルエリアネットワーク(LAN)およびワイドエリアネットワーク(WAN)、たとえばインターネットが含まれる。
【００７８】
コンピューティングシステムは、クライアントおよびサーバを含むことができる。クライアントおよびサーバは一般に互いに遠隔であり、通常は通信ネットワークを介して相互作用する。クライアントとサーバとの関係は、それぞれのコンピュータ上で動作し、互いにクライアントとサーバとの関係を有するコンピュータプログラムによって生じる。いくつかの実施形態において、サーバがデータ、たとえば、ハイパーテキストマークアップ言語(HTML)ページを、たとえば、クライアントとして働くユーザデバイスと相互作用しているユーザにデータを表示し、ユーザからユーザ入力を受信する目的で、ユーザデバイスに送信する。ユーザデバイスで生成されたデータ、たとえば、ユーザインタラクションの結果は、ユーザデバイスからサーバで受信することができる。
【００７９】
図4は、クライアントとして、またはサーバもしくは複数のサーバとして、本書に記載のシステムおよび方法を実施するために用いることができるコンピューティングデバイス400、450のブロック図である。コンピューティングデバイス400は、ラップトップ、デスクトップ、ワークステーション、携帯情報端末、サーバ、ブレードサーバ、メインフレーム、および他の適切なコンピュータなど、様々な形態のデジタルコンピュータを表すことを意図している。コンピューティングデバイス450は、携帯情報端末、携帯電話、スマートフォン、スマートウォッチ、頭部装着型デバイス、および他の同様のコンピューティングデバイスなど、様々な形態のモバイルデバイスを表すことを意図している。ここに示したコンポーネント、それらの接続および関係、ならびにそれらの機能は、例示のみを意味しており、本書に記載および/またはクレームされた実装形態を限定することを意味しない。
【００８０】
コンピューティングデバイス400は、プロセッサ402と、メモリ404と、ストレージデバイス406と、メモリ404および高速拡張ポート410に接続している高速インターフェース408と、低速バス414およびストレージデバイス406に接続している低速インターフェース412と、を含む。コンポーネント402、404、406、408、410、および412のそれぞれは、様々なバスを用いて相互接続され、共通のマザーボード上に、または必要に応じて他の方法で取り付けることができる。プロセッサ402は、メモリ404内またはストレージデバイス406上に格納された命令を含む、コンピューティングデバイス400内での実行のための命令を処理して、高速インターフェース408に接続されたディスプレイ416などの外部入力/出力デバイス上にGUI用のグラフィカル情報を表示することができる。他の実装形態において、複数のプロセッサおよび/または複数のバスを、必要に応じて、複数のメモリおよびメモリのタイプとともに使用することができる。また、複数のコンピューティングデバイス400を接続し、各デバイスが必要な動作の一部を提供することができる(たとえば、サーババンク、ブレードサーバのグループ、またはマルチプロセッサシステムとして)。
【００８１】
メモリ404はコンピューティングデバイス400内の情報を格納する。一実装形態において、メモリ404はコンピュータ可読媒体である。一実装形態において、メモリ404は、1つまたは複数の揮発性メモリユニットである。他の一実装形態において、メモリ404は、1つまたは複数の不揮発性メモリユニットである。
【００８２】
ストレージデバイス406は、コンピューティングデバイス400に大容量ストレージを提供することができる。一実装形態において、ストレージデバイス406はコンピュータ可読媒体である。様々な異なる実装形態において、ストレージデバイス406は、ストレージエリアネットワークまたは他の構成におけるデバイスを含む、フロッピーディスクデバイス、ハードディスクデバイス、光ディスクデバイス、またはテープデバイス、フラッシュメモリもしくは他の同様の固体メモリデバイス、またはデバイスのアレイであってもよい。一実装形態において、コンピュータプログラム製品が情報担体において具体的に実現される。コンピュータプログラム製品は、実行されると、上記のような1つまたは複数の方法を実行する命令を含む。情報担体は、メモリ404、ストレージデバイス406、またはプロセッサ402上のメモリなどのコンピュータまたは機械可読媒体である。
【００８３】
高速コントローラ408は、コンピューティングデバイス400についての帯域幅集中型動作を管理する一方、低速コントローラ412は、低帯域幅集中型動作を管理する。このような役割の割り当ては例示にすぎない。一実装形態において、高速コントローラ408は、メモリ404、ディスプレイ416に(たとえば、グラフィックプロセッサまたはアクセラレータを介して)、および様々な拡張カード(図示せず)を受け入れることができる高速拡張ポート410に接続される。この実装形態において、低速コントローラ412は、ストレージデバイス406および低速拡張ポート414に接続される。低速拡張ポートは、様々な通信ポート(たとえば、USB、ブルートゥース(登録商標)、イーサネット(登録商標)、ワイヤレスイーサネット(登録商標))を含むことができ、たとえば、ネットワークアダプタを介して、キーボード、ポインティングデバイス、スキャナ、またはスイッチもしくはルータなどのネットワークデバイスなどの1つまたは複数の入力/出力デバイスに接続することができる。
【００８４】
コンピューティングデバイス400は、図に示すように、いくつかの異なる形態で実装することができる。たとえば、標準的なサーバ420として、またはそのようなサーバのグループにおいて複数回実装することができる。また、ラックサーバシステム424の一部として実装することもできる。加えて、ラップトップコンピュータ422などのパーソナルコンピュータにおいて実装することもできる。あるいは、コンピューティングデバイス400からのコンポーネントは、デバイス450などのモバイルデバイス(図示せず)における他のコンポーネントと組み合わせることができる。このようなデバイスのそれぞれは、コンピューティングデバイス400、450の1つまたは複数を含むことができ、システム全体は、互いに通信する複数のコンピューティングデバイス400、450から構成することができる。
【００８５】
コンピューティングデバイス450は、他のコンポーネントの中でも、プロセッサ452、メモリ464、ディスプレイ454などの入力/出力デバイス、通信インターフェース466、およびトランシーバ468を含む。デバイス450は、マイクロドライブまたは他のデバイスなどのストレージデバイスを備え、追加のストレージを提供している。コンポーネント450、452、464、454、466、および468のそれぞれは、様々なバスを用いて相互接続され、コンポーネントのいくつかは、共通のマザーボード上に、または必要に応じて他の方法で取り付けることができる。
【００８６】
プロセッサ452は、メモリ464に格納された命令を含む、コンピューティングデバイス450内で実行するための命令を処理することができる。プロセッサは、個別のアナログプロセッサおよびデジタルプロセッサも含むことができる。プロセッサは、たとえば、ユーザインターフェースの制御、デバイス450によって実行されるアプリケーション、およびデバイス450による無線通信など、デバイス450の他のコンポーネントの協調を提供することができる。
【００８７】
プロセッサ452は、ディスプレイ454に接続された制御インターフェース458およびディスプレイインターフェース456を介してユーザと通信することができる。ディスプレイ454は、たとえば、TFT LCDディスプレイまたはOLEDディスプレイ、または他の適切なディスプレイ技術であってもよい。ディスプレイインターフェース456は、ディスプレイ454を駆動してグラフィックおよび他の情報をユーザに提示するための適切な回路を含むことができる。制御インターフェース458は、ユーザからコマンドを受信し、それらをプロセッサ452への提出用に変換することができる。加えて、デバイス450の他のデバイスとの近距離通信を可能にするよう、プロセッサ452と通信する外部インターフェース462を提供することができる。外部インターフェース462は、たとえば、有線通信(たとえば、ドッキング手順を介して)または無線通信(たとえば、ブルートゥース(登録商標)または他のそのような技術を介して)を提供することができる。
【００８８】
メモリ464はコンピューティングデバイス450内の情報を格納する。一実装形態において、メモリ464はコンピュータ可読媒体である。一実装形態において、メモリ464は1つまたは複数の揮発性メモリユニットである。他の一実装形態において、メモリ464は1つまたは複数の不揮発性メモリユニットである。拡張メモリ474も設けられ、たとえば、SIMMカードインターフェースを含むことができる拡張インターフェース472を介してデバイス450に接続することができる。このような拡張メモリ474は、デバイス450のための追加のストレージスペースを提供することができ、またはデバイス450のためのアプリケーションまたは他の情報を格納することもできる。具体的には、拡張メモリ474は、上述のプロセスを実行または補足する命令を含むことができ、安全な情報も含むことができる。したがって、たとえば、拡張メモリ474は、デバイス450についてのセキュリティモジュールとして提供されてもよく、デバイス450の安全な使用を可能にする命令でプログラムされてもよい。加えて、SIMMカードを介して、ハッキング不可能な方法でSIMMカード上に識別情報を配置するなどの追加情報とともに、安全なアプリケーションを提供することができる。
【００８９】
メモリは、後述するように、たとえばフラッシュメモリおよび/またはMRAMメモリを含むことができる。一実装形態において、コンピュータプログラム製品が情報担体において具体的に実現される。コンピュータプログラム製品は、実行されると、上記のような1つまたは複数の方法を実行する命令を含む。情報担体は、メモリ464、拡張メモリ474、またはプロセッサ452上のメモリなどのコンピュータまたは機械可読媒体である。
【００９０】
デバイス450は通信インターフェース466を介して無線で通信することができ、これは必要に応じてデジタル信号処理回路を含むことができる。通信インターフェース466は、とりわけ、GSM(登録商標)音声通話、SMS、EMS、またはMMSメッセージング、CDMA(登録商標)、TDMA、PDC、WCDMA(登録商標)、CDMA2000、またはGPRSなどの様々なモードまたはプロトコルの下での通信を提供することができる。このような通信は、たとえば、無線周波トランシーバ468を介して行うことができる。加えて、ブルートゥース(登録商標)、ワイファイ、または他のこのようなトランシーバ(図示せず)を用いるなど、短距離通信を行うことができる。加えて、GPS受信機モジュール470がデバイス450に追加の無線データを提供することができ、これは、デバイス450上で動作するアプリケーションによって適切に用いることができる。
【００９１】
デバイス450は、オーディオコーデック460を用いて可聴通信することもでき、これは、ユーザから話された情報を受信し、それを使用可能なデジタル情報に変換することができる。オーディオコーデック460は同様に、たとえばデバイス450のハンドセット内のスピーカを介してなど、ユーザのために可聴音を生成することができる。そのような音は、音声通話からの音を含むことができ、録音された音(たとえば、音声メッセージ、音楽ファイルなど)を含むことができ、そしてデバイス450上で動作するアプリケーションによって生成される音も含むことができる。
【００９２】
コンピューティングデバイス450は、図に示すように、いくつかの異なる形態で実装することができる。たとえば、携帯電話480として実装することができる。また、スマートフォン482、携帯情報端末、または他の同様のモバイルデバイスの一部として実装することもできる。
【００９３】
ここで説明したシステムおよび技術の様々な実装形態は、デジタル電子回路、集積回路、特別に設計されたASIC(特定用途向け集積回路)、コンピュータハードウェア、ファームウェア、ソフトウェア、および/またはこれらの組み合わせにおいて実現することができる。これらの様々な実装形態は、少なくとも1つのプログラム可能なプロセッサを含むプログラム可能なシステム上で実行可能および/または解釈可能な1つまたは複数のコンピュータプログラムにおける実装形態を含むことができ、プロセッサは、専用または汎用で、ストレージシステム、少なくとも1つの入力デバイス、および少なくとも1つの出力デバイスからデータおよび命令を受信し、それらにデータおよび命令を送信するように接続されてもよい。
【００９４】
これらのコンピュータプログラム(プログラム、ソフトウェア、ソフトウェアアプリケーションまたはコードとしても知られる)は、プログラマブルプロセッサ用の機械命令を含み、高レベルの手続き型および/もしくはオブジェクト指向プログラミング言語で、ならびに/またはアセンブリ/機械言語で実装することができる。本明細書で用いられる「機械可読媒体」「コンピュータ可読媒体」という用語は、機械命令を機械可読信号として受信する機械可読媒体を含む、プログラム可能なプロセッサに機械命令および/またはデータを提供するために用いられる任意のコンピュータプログラム製品、装置および/またはデバイス(たとえば、磁気ディスク、光ディスク、メモリ、プログラマブルロジックデバイス(PLD))を指す。「機械可読信号」という用語は、機械命令および/またはデータをプログラム可能なプロセッサに提供するために用いられる任意の信号を指す。
【００９５】
ユーザとの相互作用を提供するために、ここで説明したシステムおよび技術は、ユーザに情報を表示するためのディスプレイデバイス(たとえば、CRT(陰極線管)またはLCD(液晶ディスプレイ)モニタ)およびキーボード、およびユーザがコンピュータに入力を提供することができるポインティングデバイス(たとえば、マウスまたはトラックボール)を有するコンピュータ上で実装することができる。他の種類のデバイスを用いてユーザとの相互作用を提供することもできる。たとえば、ユーザに提供されるフィードバックは、任意の形態の感覚フィードバック(たとえば、視覚フィードバック、聴覚フィードバック、または触覚フィードバック)であってもよく、ユーザからの入力は、音響、音声、または触覚の入力を含む任意の形態で受信することができる。
【００９６】
ここで説明したシステムおよび技術は、バックエンドコンポーネントを(たとえばデータサーバとして)含む、またはミドルウェアコンポーネント(たとえば、アプリケーションサーバ)を含む、またはフロントエンドコンポーネント(たとえば、ここで説明したシステムおよび技術の実装形態とユーザとの相互作用を可能にするグラフィカルユーザインターフェースまたはウェブブラウザを有するクライアントコンピュータ)を含むコンピューティングシステム、またはこのようなバックエンドコンポーネント、ミドルウェアコンポーネント、またはフロントエンドコンポーネントの任意の組み合わせにおいて実装することができる。システムのコンポーネントは、任意の形式または媒体のデジタルデータ通信(たとえば、通信ネットワーク)によって相互接続することができる。通信ネットワークの例には、ローカルエリアネットワーク(「LAN」)、ワイドエリアネットワーク(「WAN」)、およびインターネットが含まれる。
【００９７】
コンピューティングシステムは、クライアントおよびサーバを含むことができる。クライアントおよびサーバは一般に互いに遠隔であり、通常は通信ネットワークを介して相互作用する。クライアントとサーバとの関係は、それぞれのコンピュータ上で動作し、互いにクライアントとサーバとの関係を有するコンピュータプログラムによって生じる。
【００９８】
本明細書は多くの具体的な実装形態の詳細を含むが、これらは特許請求の範囲に対する限定としてではなく、特定の実施形態に特有の特徴の説明として解釈されるべきである。別個の実施形態の文脈で本明細書に記載したいくつかの特徴は、単一の実施形態において組み合わせて実施することもできる。逆に、単一の実施形態の文脈で説明した様々な特徴も、複数の実施形態において別個に、または任意の適切なサブコンビネーションで実施することができる。さらに、いくつかの組み合わせで動作するものとして特徴を上で説明し、最初はそのようにクレームさえしたが、クレームされた組み合わせからの1つまたは複数の特徴はいくつかの場合において組み合わせから削除することができ、クレームされた組み合わせはサブコンビネーションまたはサブコンビネーションの変形を対象とすることがある。
【００９９】
同様に、図面において動作が特定の順序で描かれているが、これは、所望の結果を達成するために、そのような動作を示した特定の順序でもしくは連続した順序で実行すること、またはすべての説明した動作を実行することを要求するものとして理解されるべきではない。いくつかの状況において、マルチタスクおよび並列処理が有利なことがある。さらに、上述の実施形態における様々なシステムモジュールおよびコンポーネントの分離は、すべての実施形態においてそのような分離を必要とするものとして理解されるべきではなく、説明したプログラムコンポーネントおよびシステムは一般に単一のソフトウェア製品に統合することも、または複数のソフトウェア製品にパッケージ化することもできることを理解されたい。
【０１００】
さらなる実装形態を以下の実施例において要約する。
【０１０１】
実施例１：第1の発話を含む1つまたは複数の発話をエンコードしているオーディオ信号を受信することと、
第1の発話の少なくとも一部がキーフレーズの少なくとも一部であるとする第1の閾値を満たすかどうかを判定することと、
第1の発話の少なくとも一部がキーフレーズの少なくとも一部であるとする第1の閾値を満たすとの判定に応じて、第1の発話がキーフレーズであるとする第2の閾値を満たすかどうかを判定するサーバシステムにオーディオ信号を送信することであって、第2の閾値は第1の閾値より制限的である、送信することと、
サーバシステムが、第1の発話が第2の閾値を満たすと判定した場合、オーディオ信号においてエンコードされた1つまたは複数の発話を表すタグ付きテキストデータをサーバシステムから受信することと、
を含む動作を、コンピュータによって実行された場合、そのコンピュータに実行させる命令でエンコードされた非一時的コンピュータ記憶媒体。
【０１０２】
実施例２：これらの動作は、サーバシステムが、第1の発話が第2の閾値を満たすと判定した場合、オーディオ信号においてエンコードされた1つまたは複数の発話を表すタグ付きテキストデータをサーバシステムから受信することに続いて、タグ付きテキストデータを用いてアクションを実行することを含む、実施例1のコンピュータ記憶媒体。
【０１０３】
実施例３：1つまたは複数の発話は2つ以上の発話を含み、第1の発話は、オーディオ信号における2つ以上の発話からの他の発話の前にエンコードされ、
タグ付きテキストデータを用いてアクションを実行することは、第1の発話後にオーディオ信号においてエンコードされた1つまたは複数の発話についてのタグ付きテキストデータを用いてアクションを実行することを含む、
実施例1または2のコンピュータ記憶媒体。
【０１０４】
実施例４：
第1の発話の少なくとも一部がキーフレーズの少なくとも一部であるとする第1の閾値を満たすかどうかを判定することは、第1の発話の少なくとも一部が、2つ以上の単語を含むキーフレーズの少なくとも一部であるとする第1の閾値を満たすかどうかを判定することを含む、実施例1から3のうちの1つのコンピュータ記憶媒体。
【０１０５】
実施例５：これらの動作は、
第2の発話を含む1つまたは複数の第2の発話をエンコードしている第2のオーディオ信号を受信することと、
第2の発話の少なくとも一部がキーフレーズの少なくとも一部であるとする第1の閾値を満たすかどうかを判定することと、
第2の発話の少なくとも一部がキーフレーズの少なくとも一部であるとする第1の閾値を満たさないとの判定に応じて、第2のオーディオ信号を破棄することと、
を含む、実施例1から4のうちの1つのコンピュータ記憶媒体。
【実施例１】
【０１０６】
実施例６：これらの動作は、第2の発話の少なくとも一部がキーフレーズの少なくとも一部であるとする第1の閾値を満たさないとの判定に応じて、第2のオーディオ信号からのデータを用いてアクションを実行しないことを決定することを含む、実施例5のコンピュータ記憶媒体。
【０１０７】
実施例７：第1の発話の少なくとも一部がキーフレーズであるとする第1の閾値を満たすかどうかを判定することは、第1の発話の少なくとも一部がキーフレーズの少なくとも一部であるとする第1の可能性を満たすかどうかを判定することを含む、実施例1から6のうちの1つのコンピュータ記憶媒体。
【０１０８】
実施例８：1つまたは複数のコンピュータおよび1つまたは複数のストレージデバイスを含むシステムであって、
クライアントデバイスが、1つまたは複数の第1の発話の少なくとも一部がキーフレーズの少なくとも一部であるとする第1の閾値を満たすと判定された1つまたは複数の第1の発話を含む1つまたは複数の発話をエンコードしているオーディオ信号をクライアントデバイスから受信することと、
1つまたは複数の第1の発話がキーフレーズの少なくとも一部であるとする第2の閾値を満たすかどうかを判定することあって、第2の閾値は第1の閾値よりも制限的である、判定することと、
1つまたは複数の第1の発話がキーフレーズであるとする第2の閾値を満たすかどうかの判定の結果をクライアントデバイスに送信することと、
を含む動作を、1つまたは複数のコンピュータによって実行された場合、1つまたは複数のコンピュータに実行させるように動作可能な命令がストレージデバイスに格納されている、システム。
【０１０９】
実施例９：1つまたは複数の第1の発話がキーフレーズであるとする第2の閾値を満たすかどうかの判定の結果をクライアントデバイスに送信することは、1つまたは複数の第1の発話がキーフレーズであるとする第2の閾値を満たさないとの判定に応じて、キーフレーズはオーディオ信号に含まれていなさそうであることを示すデータをクライアントデバイスに送信することを含む、実施例8のシステム。
【０１１０】
実施例１０：1つまたは複数の第1の発話がキーフレーズであるとする第2の閾値を満たすかどうかの判定の結果をクライアントデバイスに送信することは、1つまたは複数の第1の発話がキーフレーズであるとする第2の閾値を満たすとの判定に応じて、オーディオ信号についてのデータをクライアントデバイスに送信することを含む、実施例8または9のシステム。
【０１１１】
実施例１１：1つまたは複数の第1の発話がキーフレーズであるとする第2の閾値を満たすとの判定に応じて、オーディオ信号についてのデータをクライアントデバイスに送信することは、オーディオ信号においてエンコードされた1つまたは複数の発話を表すタグ付きテキストデータをクライアントデバイスに送信することを含む、実施例8から10のうちの1つのシステム。
【０１１２】
実施例１２：これらの動作は、オーディオ信号全体を分析して、1つまたは複数の発話のそれぞれについて第1のデータを決定することを含み、1つまたは複数の第1の発話がキーフレーズであるとする第2の閾値を満たすとの判定に応じて、オーディオ信号についてのデータをクライアントデバイスに送信することは、1つまたは複数の第1の発話がキーフレーズであるとする第2の閾値を満たすとの判定に応じて、オーディオ信号についての第1のデータをクライアントデバイスに送信することを含む、実施例8から11のうちの1つのシステム。
【０１１３】
実施例１３：1つまたは複数の第1の発話がキーフレーズであるとする第2の閾値を満たすかどうかを判定することは、言語モデルを用いて、1つまたは複数の第1の発話がキーフレーズであるとする第2の閾値を満たすかどうかを判定することを含む、実施例8から12のうちの1つのシステム。
【０１１４】
実施例１４：これらの動作は、言語モデルを用いて、1つまたは複数の第1の発話がキーフレーズであるとする第2の閾値を満たすかどうかを判定する前に、キーフレーズについての言語モデルをカスタマイズすることを含む、実施例8から13のうちの1つのシステム。
【０１１５】
実施例１５：これらの動作は、キーフレーズを識別するテキストを受信することを含み、キーフレーズについての言語モデルをカスタマイズすることは、キーフレーズを識別するテキストを用いて、キーフレーズについての言語モデルをカスタマイズすることを含む、実施例8から14のうちの1つのシステム。
【０１１６】
実施例１６：これらの動作は、
識別子を受信することと、
その識別子を用いて、キーフレーズについてのキーフレーズデータを決定することと、
を含み、キーフレーズについての言語モデルをカスタマイズすることは、キーフレーズデータを用いて、キーフレーズについての言語モデルをカスタマイズすることを含む、実施例8から15のうちの1つのシステム。
【０１１７】
実施例１７：言語モデルを用いて、1つまたは複数の第1の発話がキーフレーズであるとする第2の閾値を満たすかどうかを判定することは、言語モデルおよび音響モデルを用いて、1つまたは複数の第1の発話がキーフレーズであるとする第2の閾値を満たすかどうかを判定することを含む、実施例8から16のうちの1つのシステム。
【０１１８】
実施例１８：言語モデルおよび音響モデルを用いて、1つまたは複数の第1の発話がキーフレーズであるとする第2の閾値を満たすかどうかを判定することは、
1つまたは複数の第1の発話についてのデータを言語モデルに提供して、言語モデルに第1の出力を生成させることと、
1つまたは複数の第1の発話についてのデータを音響モデルに提供して、音響モデルに第2の出力を生成させることと、
第1の出力と第2の出力とを組み合わせて組み合わせ出力を生成することと、
組み合わせ出力を用いて、1つまたは複数の第1の発話がキーフレーズであるとする第2の閾値を満たすかどうかを判定することと、
を含む、実施例8から17のうちの1つのシステム。
【０１１９】
実施例１９：これらの動作は、デフォルトのキーフレーズについての言語モデルを選択することを含む、実施例8から18のうちの1つのシステム。
【０１２０】
実施例２０：これらの動作は、デフォルトのキーフレーズを用いるかどうかを判定することを含む、実施例8から19のうちの1つのシステム。
【０１２１】
実施例２１：第1の発話を含む1つまたは複数の発話をエンコードしているオーディオ信号を受信するステップと、
第1の発話の少なくとも一部がキーフレーズの少なくとも一部であるとする第1の閾値を満たすかどうかを判定するステップと、
第1の発話の少なくとも一部がキーフレーズの少なくとも一部であるとする第1の閾値を満たすとの判定に応じて、第1の発話がキーフレーズであるとする第2の閾値を満たすかどうかを判定するサーバシステムにオーディオ信号を送信するステップであって、第2の閾値は第1の閾値より制限的である、ステップと、
サーバシステムが、第1の発話が第2の閾値を満たすと判定した場合、オーディオ信号においてエンコードされた1つまたは複数の発話を表すタグ付きテキストデータをサーバシステムから受信するステップと、
を含む、コンピュータで実行される方法。
【０１２２】
本主題の特定の実施形態を説明してきた。以下の特許請求の範囲内には他の実施形態がある。たとえば、請求項に記載されたアクションは、異なる順序で実行することができ、それでも望ましい結果を達成することができる。一例として、添付の図面に描かれたプロセスは、望ましい結果を達成するために、示した特定の順序、または連続的な順序を必ずしも必要としない。いくつかの場合において、マルチタスクおよび並列処理が有利なことがある。
【符号の説明】
【０１２３】
102  クライアントデバイス
104  マイクロフォン
106  クライアントホットワード検出モジュール
108  第1の閾値
110  位置デバイス
112  音声認識システム
114  サーバホットワード検出モジュール
116  第2の閾値
118  言語モデル
120  音響モデル
122  タグ付きテキストジェネレータ
124  ネットワーク
400  コンピューティングデバイス
402  プロセッサ
404  メモリ
406  ストレージデバイス
408  高速インターフェース、高速コントローラ
410  高速拡張ポート
412  低速インターフェース、低速コントローラ
414  低速バス
416  ディスプレイ
420  サーバ
422  ラップトップコンピュータ
424  ラックサーバシステム
450  コンピューティングデバイス
452  プロセッサ
454  ディスプレイ
456  ディスプレイインターフェース
458  制御インターフェース
460  オーディオコーデック
462  外部インターフェース
464  メモリ
466  通信インターフェース
468  トランシーバ
470  GPS受信機モジュール
474  拡張メモリ
480  携帯電話
482  スマートフォン
【図１】
0006855588.tif 000002
【図２】
0006855588.tif 000003
【図３】
0006855588.tif 000004
【図４】
0006855588.tif 000005