(57)【要約】  継続的な会話を検出するための、コンピュータ記憶媒体に符号化されたコンピュータプログラムを含む、方法、システム、および装置が開示される。一態様では、方法は、第1の発話の第1のオーディオデータを受信する行動を含む。行動はさらに、第1の発話の第1のトランスクリプションを取得することを含む。行動はさらに、第2の発話の第2のオーディオデータを受信することを含む。行動はさらに、第2の発話の第2のトランスクリプションを取得することを含む。行動はさらに、第2のトランスクリプションおよび第1のトランスクリプションまたは第1の問合せへの応答の分析に基づいて、第2の発話が問合せ処理システムを対象とした問合せを含むかどうかを決定することを含む。行動はさらに、第2の発話の第2のトランスクリプションを第2の問合せとして問合せ処理システムに提供する、または第2のトランスクリプションをバイパスルーティングするように、データルーティングコンポーネントを構成することを含む。
2021533401.tif 000002
【特許請求の範囲】
【請求項１】
コンピュータ実施方法であって、
コンピューティングデバイスによって、第1の発話の第1のオーディオデータを受信するステップと、
前記コンピューティングデバイスによって、前記第1の発話の第1のトランスクリプションを取得するステップと、
前記コンピューティングデバイスによって、第2の発話の第2のオーディオデータを受信するステップと、
前記コンピューティングデバイスによって、前記第2の発話の第2のトランスクリプションを取得するステップと、
前記コンピューティングデバイスによって、前記第2の発話が問合せ処理システムを対象とした問合せを含むかどうかを、(i)前記第2のトランスクリプションおよび(ii)前記第1のトランスクリプションまたは前記第1の問合せへの応答の分析に基づいて決定するステップと、
前記第2の発話が前記問合せ処理システムを対象とした問合せを含むかどうかを決定したことに基づいて、前記コンピューティングデバイスによって、(i)前記第2の発話の前記第2のトランスクリプションを第2の問合せとして前記問合せ処理システムに提供する、または(ii)前記第2のトランスクリプションが前記問合せ処理システムに提供されないように前記第2のトランスクリプションをバイパスルーティングするように、データルーティングコンポーネントを構成するステップとを備える、方法。
【請求項２】
前記第2の発話が問合せ処理システムを対象とした問合せを含むかどうかを決定するステップが、(i)前記第2のトランスクリプションおよび(ii)前記第1のトランスクリプションの分析に基づく、請求項1に記載の方法。
【請求項３】
前記第2の発話が問合せ処理システムを対象とした問合せを含むかどうかを決定するステップが、(i)前記第2のトランスクリプションおよび(ii)前記第1の問合せへの前記応答の分析に基づく、請求項1または2に記載の方法。
【請求項４】
前記第2の発話が問合せ処理システムを対象とした問合せを含むかどうかを決定するステップが、前記第2のトランスクリプション、前記第1のトランスクリプション、および前記第1の問合せへの前記応答の分析に基づく、請求項1から3のいずれか一項に記載の方法。
【請求項５】
前記第2の発話が前記問合せ処理システムを対象とした問合せを含むかどうかを決定するステップが、前記第2の発話が前記問合せ処理システムを対象とした問合せを含むと決定するステップと、
前記第2の発話の前記第2のトランスクリプションを第2の問合せとして前記問合せ処理システムに提供するように前記データルーティングコンポーネントを構成するステップとを備える、請求項1から4のいずれか一項に記載の方法。
【請求項６】
前記第2の発話が前記問合せ処理システムを対象とした問合せを含むかどうかを決定するステップが、前記第2の発話が前記問合せ処理システムを対象とした問合せを含まないと決定するステップと、
前記第2のトランスクリプションが前記問合せ処理システムに提供されないように、前記第2のトランスクリプションをバイパスルーティングするように前記データルーティングコンポーネントを構成するステップとを備える、請求項1から5のいずれか一項に記載の方法。
【請求項７】
前記第2の発話が問合せ処理システムを対象とした問合せを含むかどうかを決定するステップが、
(i)前記第2のトランスクリプションおよび(ii)前記第1のトランスクリプションまたは前記第1の問合せへの前記応答をトークン化するステップと、
(ii)前記第2のトランスクリプションの用語と(ii)前記第1のトランスクリプションまたは前記第1の問合せへの前記応答の用語を比較するステップとを備える、請求項1から6のいずれか一項に記載の方法。
【請求項８】
(i)前記第2のトランスクリプションの前記用語と(ii)前記第1のトランスクリプションまたは前記第1の問合せの前記応答の前記用語を比較するステップが、ナレッジグラフにおける、(i)前記第2のトランスクリプションの前記用語と(ii)前記第1のトランスクリプションまたは前記第1の問合せへの前記応答の前記用語との間の関係を決定するステップを備える、請求項7に記載の方法。
【請求項９】
前記第2の発話が問合せ処理システムを対象とした問合せを含むかどうかを決定するステップが、(i)前記第2のトランスクリプションの文法構造と(ii)前記第1のトランスクリプションまたは前記第1の問合せへの前記応答の文法構造を比較することと、
(i)前記第2のトランスクリプションの前記文法構造と(ii)前記第1のトランスクリプションまたは前記第1の問合せへの前記応答の前記文法構造を比較することに基づいて、前記第2の発話が前記問合せ処理システムを対象とした問合せを含むかどうかを決定することとに基づく、請求項1から8のいずれか一項に記載の方法。
【請求項１０】
前記第2の発話が問合せ処理システムを対象とした問合せを含むかどうかを決定するステップが、
前記第2のトランスクリプションをトークン化するステップと、
前記第2のトランスクリプションの用語が代名詞を含むと決定するステップと、
前記第2のトランスクリプションの前記用語が代名詞を含むと決定したことに基づいて、前記第2の発話が前記問合せ処理システムを対象とした問合せを含むと決定するステップと
を備える、請求項1から9のいずれか一項に記載の方法。
【請求項１１】
ユーザインターフェース上のコンテンツを決定するステップと、
前記ユーザインターフェースの前記コンテンツに基づいて、前記第2の発話が前記問合せ処理システムを対象とした問合せを含むかどうかを決定するステップとを備える、請求項1から10のいずれか一項に記載の方法。
【請求項１２】
マイクロフォンを介して前記第1の発話および前記第2の発話を検出したユーザデバイスの位置を決定するステップと、
前記マイクロフォンを介して前記第1の発話および前記第2の発話を検出した前記ユーザデバイスの前記位置に基づいて、前記第2の発話が前記問合せ処理システムを対象とした問合せを含むかどうかを決定するステップとを備える、請求項1から11のいずれか一項に記載の方法。
【請求項１３】
前記コンピューティングデバイスが前記第2の発話の前記第2のオーディオデータを受信する時間を決定するステップと、
前記コンピューティングデバイスが前記第2の発話の前記第2のオーディオデータを受信する前記時間に基づいて、前記第2の発話が前記問合せ処理システムを対象とした問合せを含むかどうかを決定するステップとを備える、請求項1から12のいずれか一項に記載の方法。
【請求項１４】
(i)前記第2のトランスクリプションおよび(ii)前記第1のトランスクリプションまたは前記第1の問合せへの前記応答を分析するステップが、前記第2のトランスクリプションを問合せログの中の1つまたは複数の問合せと比較するステップを備え、
前記第2の発話が前記問合せ処理システムを対象とした問合せを含むかどうかを決定するステップが、前記第2のトランスクリプションを前記問合せログの中の前記1つまたは複数の問合せと比較することに基づく、請求項1から13のいずれか一項に記載の方法。
【請求項１５】
前記コンピューティングデバイスの前記データルーティングコンポーネントによって、前記第1の発話の前記第1のトランスクリプションを第1の問合せとして前記問合せ処理システムに提供するステップと、
前記問合せ処理システムから、前記第1の問合せへの前記応答を受信するステップと、
前記コンピューティングデバイスによる出力のために、前記第1の問合せへの前記応答を提供するステップとを備える、請求項1から14のいずれか一項に記載の方法。
【請求項１６】
1つまたは複数のコンピュータと、
前記1つまたは複数のコンピュータによって実行されると、前記1つまたは複数のコンピュータに請求項1から15のいずれか一項に記載の方法を行わせるように動作可能な命令を記憶した、1つまたは複数のストレージデバイスとを備える、システム。
【請求項１７】
実行されると、1つまたは複数のコンピュータに請求項1から15のいずれか一項に記載の方法を行わせる、前記1つまたは複数のコンピュータによって実行可能な命令を備えるソフトウェアを記憶した、非一時的コンピュータ可読媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本明細書は全般に、自然言語処理に関する。
【背景技術】
【０００２】
自然言語処理は、コンピュータと人の言語との間の対話に、特に、自然言語データを処理して分析するためにどのようにコンピュータをプログラムするかということに関する。自然言語処理は発話認識を伴うことがあり、これは、口語言語のコンピュータによる認識およびテキストへの変換を可能にする、計算言語学の分野である。
【発明の概要】
【発明が解決しようとする課題】
【０００３】
ユーザがデバイスと対話することを望むとき、ユーザは、デバイスのボタンを押し、デバイスの画面に触れ、またはデバイスに話しかけ得る。デバイスのボタンを押すこと、またはデバイスの画面に触れることによって、ユーザがデバイスと対話していることは明らかである。しかしながら、ユーザがデバイスに話すことによって対話するとき、発話がデバイスへの入力として意図されているかどうかはさほど明らかではないことがある。この曖昧さにより、一部のデバイスは、ユーザがホットワードを話すときを検出するように構成される。ホットワードは、ユーザがホットワードの後に続く発話をデバイスに向けているということの、ユーザからデバイスへの信号として機能する。たとえば、ユーザが「バラク・オバマは何歳」とだけ言う場合、デバイスのマイクロフォンはユーザの発話を検出し得るが、発話の前にホットワードがなかったので行動を実行しなくてもよい。代わりに、ユーザが「OKコンピュータ、バラク・オバマは何歳」と言う場合、デバイスはホットワード「OKコンピュータ」を検出し、「バラク・オバマは何歳」がデバイスに対する入力として意図されていると決定するので、デバイスは応答して適切な行動を実行する。
【０００４】
ユーザがデバイスへの追加の口語要求を続ける事例では、デバイスを対象とした各々の陳述の前にホットワードを言い続けるのは、ユーザにとって不便であり得る。たとえば、ユーザは最初に、「OKコンピュータ、バラク・オバマは何歳」と言い、次いで「OKコンピュータ、バラク・オバマはどれくらい背が高い」、および「OKコンピュータ、彼が生まれたのはどこ」と続ける可能性がある。ユーザが毎回ホットワード「OKコンピュータ」を言う必要なくデバイスと対話し続けることが可能であれば、より自然であろう。しかしながら、各要求に先行するホットワードがないと、多くのデバイスは、ユーザがデバイスに話していたと決定できないので、発話を入力として検出しない。
【課題を解決するための手段】
【０００５】
この問題に対処するために、デバイスは、引き続きの発話(たとえば、デバイスとの会話におけるユーザからの第2のまたは後続の要求)がデバイスに向けられているかどうかを、ユーザが引き続きの発話にホットワードを含めない場合であっても、決定するように構成され得る。上の例を続けると、ユーザは最初に、「OKコンピュータ、バラク・オバマは何歳」と言い、次いで、デバイスからの応答の後に、「バラク・オバマはどれくらい背が高い」、およびさらに「彼が生まれたのはどこ」と続けることができる。デバイスは、引き続きの発話の内容を他の信号に加えて分析して、引き続きの発話がデバイスに対して向けられたかどうか、またはユーザが別の人に話しかけている可能性があるかどうかを決定することができる。
【０００６】
たとえば、デバイスは、引き続きの発話の用語を最初の発話の用語と比較することができる。用語が一致する、または十分に関連がある場合、デバイスは、ユーザが引き続きの発話をデバイスに向けたと決定することができる。デバイスは、デバイスの画面の内容、デバイスの位置、現在の時刻、および/またはデバイスを対象としたユーザの以前の発話を考慮して、ユーザが引き続きの発話をデバイスに向けたかどうかを決定することができる。引き続きの発話がデバイスを対象としているとデバイスが決定する場合、デバイスは、発話のトランスクリプションに従って行動を実行する。引き続きの発話がデバイスに向けられなかったとデバイスが決定する場合、デバイスは行動をとらない。
【０００７】
本出願で説明される主題の革新的な態様によれば、継続的な会話を検出するための方法は、コンピューティングデバイスによって、第1の発話の第1のオーディオデータを受信するステップと、コンピューティングデバイスによって、第1の発話の第1のトランスクリプションを取得するステップと、コンピューティングデバイスによって、第2の発話の第2のオーディオデータを受信するステップと、コンピューティングデバイスによって、第2の発話の第2のトランスクリプションを取得するステップと、コンピューティングデバイスによって、第2の発話が問合せ処理システムを対象とした問合せを含むかどうかを(i)第2のトランスクリプションおよび(ii)第1のトランスクリプションまたは第1の問合せへの応答の分析に基づいて決定するステップと、第2の発話が問合せ処理システムを対象とした問合せを含むかどうかを決定したことに基づいて、コンピューティングデバイスによって、(i)第2の発話の第2のトランスクリプションを第2の問合せとして問合せ処理システムに提供する、または(ii)第2のトランスクリプションが問合せ処理システムに提供されないように第2のトランスクリプションをバイパスルーティングするように、データルーティングコンポーネントを構成するステップという、行動を含む。
【０００８】
これらのおよび他の実装形態は各々、以下の特徴のうちの1つまたは複数を任意選択で含み得る。第2の発話が問合せ処理システムを対象とした問合せを含むかどうかを決定する行動は、(i)第2のトランスクリプションおよび(ii)第1のトランスクリプションの分析に基づく。第2の発話が問合せ処理システムを対象とした問合せを含むかどうかを決定する行動は、(i)第2のトランスクリプションおよび(ii)第1の問合せへの応答の分析に基づく。第2の発話が問合せ処理システムを対象とした問合せを含むかどうかを決定する行動は、第2のトランスクリプション、第1のトランスクリプション、および第1の問合せへの応答の分析に基づく。第2の発話が問合せ処理システムを対象とした問合せを含むかどうかを決定する行動は、第2の発話が問合せ処理システムを対象とした問合せを含むと決定することを含む。行動はさらに、第2の発話の第2のトランスクリプションを第2の問合せとして問合せ処理システムに提供するように、データルーティングコンポーネントを構成することを含む。
【０００９】
第2の発話が問合せ処理システムを対象とした問合せを含むかどうかを決定する行動は、第2の発話が問合せ処理システムを対象とした問合せを含まないと決定することを含む。行動はさらに、第2のトランスクリプションが問合せ処理システムに提供されないように、第2のトランスクリプションをバイパスルーティングするようにデータルーティングコンポーネントを構成することを含む。第2の発話が問合せ処理システムを対象とした問合せを含むかどうかを決定する行動は、(i)第2のトランスクリプションおよび(ii)第1のトランスクリプションまたは第1の問合せへの応答をトークン化することと、(i)第2のトランスクリプションの用語および(ii)第1のトランスクリプションまたは第1の問合せへの応答の用語を比較することを含む。(i)第2のトランスクリプションの用語および(ii)第1のトランスクリプションまたは第1の問合せへの応答の用語を比較する行動は、ナレッジグラフにおける(i)第2のトランスクリプションの用語と(ii)第1のトランスクリプションまたは第1の問合せへの応答の用語との間の関係を決定することを含む。第2の発話が問合せ処理システムを対象とした問合せを含むかどうかを決定する行動は、(i)第2のトランスクリプションの文法構造と(ii)第1のトランスクリプションまたは第1の問合せへの応答の文法構造を比較することに基づく。
【００１０】
第2の発話が問合せ処理システムを対象とした問合せを含むかどうかを決定する行動は、(i)第2のトランスクリプションの文法構造と(ii)第1のトランスクリプションまたは第1の問合せへの応答の文法構造を比較することに基づく。第2の発話が問合せ処理システムを対象とした問合せを含むかどうかを決定する行動は、第2のトランスクリプションをトークン化することと、第2のトランスクリプションの用語が代名詞を含むと決定することとを含む。第2の発話が問合せ処理システムを対象とした問合せを含むと決定する行動は、第2のトランスクリプションの用語が代名詞を含むと決定することに基づく。行動はさらに、ユーザインターフェース上のコンテンツを決定することと、ユーザインターフェースのコンテンツに基づいて、第2の発話が問合せ処理システムを対象とした問合せを含むかどうかを決定することとを含む。行動はさらに、マイクロフォンを介して第1の発話および第2の発話を検出したユーザデバイスの位置を決定することと、マイクロフォンを介して第1の発話および第2の発話を検出したユーザデバイスの位置に基づいて、第2の発話が問合せ処理システムを対象とした問合せを含むかどうかを決定することとを含む。
【００１１】
行動はさらに、コンピューティングデバイスが第2の発話の第2のオーディオデータを受信する時間を決定することと、コンピューティングデバイスが第2の発話の第2のオーディオデータを受信する時間に基づいて、第2の発話が問合せ処理システムを対象とした問合せを含むかどうかを決定することとを含む。(i)第2のトランスクリプションおよび(ii)第1のトランスクリプションまたは第1の問合せへの応答を分析する行動は、第2のトランスクリプションを問合せログの中の1つまたは複数の問合せと比較することを含む。第2の発話が問合せ処理システムを対象とした問合せを含むかどうかを決定する行動は、第2のトランスクリプションを問合せログの中の1つまたは複数の問合せと比較することに基づく。行動はさらに、コンピューティングデバイスのデータルーティングコンポーネントによって、第1の発話の第1のトランスクリプションを第1の問合せとして問合せ処理システムに提供することと、問合せ処理システムから、第1の問合せへの応答を受信することと、コンピューティングデバイスによる出力のために、第1の問合せへの応答を提供することとを含む。
【００１２】
本態様の他の実装形態は、各々が方法の動作を実行するように構成される、対応するシステム、装置、およびコンピュータストレージデバイス上に記録されるコンピュータプログラムを含む。
【００１３】
本明細書で説明される主題の特定の実装形態は、以下の利点のうちの1つまたは複数を実現するように実装され得る。コンピューティングデバイスは、ユーザがホットワードを含めない場合であっても、ユーザがコンピューティングデバイスとの会話を続けているときを決定することが可能であり得る。実装形態は、音声命令が正しく処理されることを可能にする、予測的な音声ベースのユーザ入力機構を提供し、それにより、改善されたユーザインターフェースが提供される。命令が与えられるたびにユーザがホットワードを提供する必要をなくすことによって、タスクを実行するのに必要とされるユーザ入力の数が減り、ユーザ入力が簡単になる。実装形態は、改善された音声ベースのユーザ入力機構、特に、簡略化された音声命令に応答して動作が実行されることを確実にする入力機構を、どのように提供するかという問題に対処することができる。
【００１４】
本明細書で説明される主題の1つまたは複数の実装形態の詳細は、添付の図面および以下の説明に記載される。主題の他の特徴、態様、および利点は、説明、図面、および特許請求の範囲から明らかになるであろう。
【図面の簡単な説明】
【００１５】
【図１】ユーザがコンピューティングデバイスに話しかけているかどうかを決定する例示的なシステムを示す図である。
【図２】ユーザがコンピューティングデバイスに話しかけているかどうかを決定するシステムの例示的なコンポーネントを示す図である。
【図３】ユーザがコンピューティングデバイスに話しかけているかどうかを決定するための例示的なプロセスのフローチャートである。
【図４】コンピューティングデバイスおよびモバイルコンピューティングデバイスの例の図である。
【発明を実施するための形態】
【００１６】
様々な図面における同様の参照番号および呼称は同様の要素を示す。
【００１７】
図1は、ユーザがコンピューティングデバイスに話しかけているかどうかを決定する例示的なシステム100を示す。簡単には、以下でより詳しく説明されるように、ユーザ102は、コンピューティングデバイス106の近くで発話104を話す。コンピューティングデバイス106は、発話104を検出し、応答108を提供する。ユーザは次いで、コンピューティングデバイス106の近くで第2の発話110を話す。発話104、応答108、および発話110の組合せ、ならびに場合によっては他の要因に基づいて、コンピューティングデバイス106は、ユーザ102が発話110を話したときにユーザ102がコンピューティングデバイス106に話しかけていたかどうかを決定する。
【００１８】
より詳しくは、段階Aにおいて、ユーザ102は、たとえば「OKコンピュータ、バラク・オバマは何歳?」と言うことによって、発話104を話す。コンピューティングデバイス106のマイクロフォンは、発話104を検出し、発話104のオーディオデータを処理する。コンピューティングデバイス106は、発話104がホットワード「OKコンピュータ」を含むと決定する。ユーザ102は、ユーザ102がコンピューティングデバイス106に話しかけていることをコンピューティングデバイス106に示すために、コンピューティングデバイス106に向けたあらゆる発話の前にホットワードを置き得る。たとえば、ユーザは、「OKコンピュータ、母さんに電話して」と言ってもよい。コンピューティングデバイス106は、発話を受け取り、ホットワード「OKコンピュータ」を検出したことに基づいて、コンピューティングデバイス106は、発話「母さんに電話する」に基づいて行動を実行する。
【００１９】
ユーザ102がコンピューティングデバイス106に話しかけていることをユーザ102がコンピューティングデバイス106に示すための、他の方法があり得る。たとえば、ユーザ102は、発話を話す前に、コンピューティングデバイス106のボタンを押し、またはコンピューティングデバイス106の画面をタップしてもよい。ユーザ102は、発話を話す前に、コンピューティングデバイス106を持ち上げて、直立などのある特定の角度でコンピューティングデバイス106を保持してもよい。ユーザ102は、コンピューティングデバイス106に接続されたアクセサリのボタンを押してもよい。たとえば、ユーザは、コンピューティングデバイス106に接続された有線またはワイヤレスヘッドフォンのボタンを押してもよい。ユーザによるこれらの行動のいずれかに応答して、コンピューティングデバイス106は、後で受け取られた発話を処理し、対応する行動を実行する。
【００２０】
図1に示される例では、コンピューティングデバイス106は、ホットワードの検出に応答して、ホットワード「OKコンピュータ」の後に続く発話104のオーディオデータを処理するのを始める。段階Bにおいて、コンピューティングデバイスは、ホットワードの後に続くオーディオデータ112を発話認識エンジン114に提供する。発話認識エンジン114は、コンピューティングデバイス106に含まれてもよく、または別個のデバイスであってもよい。発話認識エンジン114は、段階Cにおいて、オーディオデータ112に対して自動発話認識を実行し、「バラク・オバマは何歳」のトランスクリプション116をコンピューティングデバイス106に提供する。
【００２１】
コンピューティングデバイス106は、トランスクリプション116を分析し、実行すべき適切な行動を決定する。図1に示される例では、コンピューティングデバイス106は、トランスクリプション116「バラク・オバマは何歳」が検索クエリであると決定する。コンピューティングデバイス106は、トランスクリプション116を検索クエリ120として検索エンジン118にルーティングするように、コンピューティングデバイス106のデータルーティングコンポーネントを構成する。
【００２２】
コンピューティングデバイス106は、トランスクリプション116のテキストに応じて、トランスクリプション116を別の内部または外部コンポーネントにルーティングするように、コンピューティングデバイス106のデータルーティングコンポーネントを構成し得る。たとえば、コンピューティングデバイス106は、「OKコンピュータ、母さんにもうすぐ帰るとテキストメッセージを送って」という発話を受け取ることがある。コンピューティングデバイスは、発話認識エンジンからトランスクリプション「母さんにもうすぐ帰るとテキストメッセージを送って」を受け取り、「もうすぐ家に帰る」をメッセージングアプリケーションにルーティングし、「母さん」を連絡先アプリケーションにルーティングするように、データルーティングコンポーネントを構成し得る。
【００２３】
段階Dにおいて、検索エンジン118は検索クエリ120を受け取る。検索エンジン118は、検索クエリを処理し、バラク・オバマが57歳であることを示す検索結果122を返す。段階Eにおいて、検索エンジン118は、検索結果122をコンピューティングデバイス106に提供する。
【００２４】
段階Fにおいて、コンピューティングデバイス106は、検索結果122をユーザ102に提示する。たとえば、コンピューティングデバイス106は、検索結果122を発話合成器に提供し、バラク・オバマが57歳であることを示すオーディオ応答108を出力し得る。いくつかの実装形態では、コンピューティングデバイス106は、検索結果122をコンピューティングデバイス106のディスプレイに提供してもよい。たとえば、コンピューティングデバイス106のディスプレイは、バラク・オバマが57歳であることを示すテキストを表示してもよい。
【００２５】
コンピューティングデバイス106が検索結果122をユーザ102に提示したすぐ後で、段階Gにおいて、ユーザは、「今日雨は降りそう?」という別の発話110を話す。ユーザ102は、コンピューティングデバイス106が検索結果122のテキストを表示している間に、コンピューティングデバイスがオーディオ応答108を出力してから閾値の期間内に、コンピューティングデバイス102が検索結果112を出力した後に低電力もしくはスリープ状態に入る前に、現在のユーザセッションを終了することなく、または任意の他の同様の期間に、発話110を話すことができる。
【００２６】
コンピューティングデバイス106のマイクロフォンは発話110を検出し、コンピューティングデバイス106は発話110のオーディオデータを処理する。この事例では、ユーザ102は、ユーザ102がコンピューティングデバイスに話しかけているという明示的な指示を一切、コンピューティングデバイス106に提供しない。たとえば、発話110は、ホットワードを含まず、または直前にホットワードがない。同様に、ユーザ102は、コンピューティングデバイス106のボタンを押さず、またはコンピューティングデバイス106の画面と相互作用しない。ユーザ102がコンピューティングデバイス106に話しかけているという明確な指示をユーザ102が提供しないとしても、ユーザ102はまだ、発話104で開始した会話を続けようとしてコンピューティングデバイス106に話しかけている可能性がある。したがって、コンピューティングデバイス106は、ユーザがコンピューティングデバイス106に話しかけている可能性が高いと決定するために、発話110の文脈を分析する。
【００２７】
コンピューティングデバイス106は、発話110のオーディオデータ124をホットワード検出器に提供し、発話110のオーディオデータがホットワードを含まないと決定する。段階Hにおいて、コンピューティングデバイス106は、発話110のオーディオデータ124を発話認識エンジン114に提供する。発話認識エンジン114は、発話110のオーディオデータ124に対して自動発話認識を実行する。発話認識エンジン114は、段階Iにおいて、「今日雨は降りそう」のトランスクリプション126をコンピューティングデバイス106に提供する。
【００２８】
段階Jにおいて、コンピューティングデバイス106は、発話110のトランスクリプション128およびコンピューティングデバイス106の文脈を分析し、ユーザ102が発話110を話しているときにコンピューティングデバイス106に話しかけていた可能性が高いかどうかを決定する。この例では、文脈は、以前の発話104および以前の発話104への応答108のトランスクリプションを含み得る。コンピューティングデバイス106は、以前の発話104の主題および/または以前の発話104への応答108の主題が、発話110のトランスクリプション128の主題と同じではないと決定し得る。この場合、コンピューティングデバイス106は、ユーザ102が発話110を話しているときにコンピューティングデバイス106に話しかけていなかった可能性が高いと決定する。コンピューティングデバイス106は、トランスクリプション128を、検索エンジン118、コンピューティングデバイス106上で実行している任意の他のアプリケーション、コンピューティングデバイス106の任意の他のコンポーネント、または任意の他のコンピューティングデバイスに提供しないように、データルーティングコンポーネントを構成する。言い換えると、コンピューティングデバイス106は、発話110を処理する際にさらなる行動をとらない。
【００２９】
発話110と、以前の発話104および/または応答108における、一致する用語の存在に基づいて、分析は、発話110がデバイス106を対象としているかどうかを評価することができる。別の例では、発話110のトランスクリプション126は、「バラク・オバマの妻は誰?」であり得る。コンピューティングデバイス106の文脈を決定することの一部として、コンピューティングデバイス106は、発話104のトランスクリプション116、検索結果122、および発話110のトランスクリプション126をトークン化し得る。コンピューティングデバイス106は、トランスクリプション126の用語ならびにトランスクリプション116および/または検索結果122の用語の間での共通の用語を特定し得る。この事例では、共通の用語は「バラク・オバマ」であり得る。この共通の用語に基づいて、コンピューティングデバイス106は、「バラク・オバマの妻は誰?」と話したときにユーザ102がコンピューティングデバイス106に話しかけていた可能性が高いと決定し得る。
【００３０】
分析は、発話110における代名詞の存在と、その代名詞と以前の発話104および/または応答108における用語との間の関係とに基づいて、発話110がデバイス106を対象としているかどうかを評価することができる。別の例では、発話110のトランスクリプション126は、「彼はどこで生まれた?」であり得る。上で説明されたように、コンピューティングデバイス106は、発話104のトランスクリプション116、検索結果122、および発話110のトランスクリプション126をトークン化し得る。いくつかの実装形態では、コンピューティングデバイス106は、発話110のトランスクリプション126のみをトークン化し得る。コンピューティングデバイス106は、発話110のトランスクリプション126の中の用語のうちの1つが代名詞「彼」であると決定し得る。コンピューティングデバイス106は、代名詞の存在に基づいて、ユーザ102が発話110を話しているときにコンピューティングデバイス106に話しかけていた可能性が高いと決定し得る。いくつかの事例では、コンピューティングデバイス106は、トランスクリプション126の代名詞を検索結果122および/またはトランスクリプション116の中の名詞と比較し得る。コンピューティングデバイス106は、トランスクリプション126の中の代名詞が検索結果122および/またはトランスクリプション116の中の名詞の性別と一致する場合、ユーザ102がコンピューティングデバイス106に話しかけていた可能性が高いと決定し得る。コンピューティングデバイス106は、トランスクリプション126の中の代名詞が検索結果122および/またはトランスクリプション116の中の名詞の単数または複数の性質と一致する場合、ユーザ102がコンピューティングデバイス106に話しかけていた可能性が高いと決定し得る。トランスクリプション126の中の代名詞の性別および/または単数もしくは複数の性質が検索結果122および/またはトランスクリプション116の中の名詞と一致しない場合、コンピューティングデバイスは、ユーザ102がコンピューティングデバイス106に話しかけていた可能性が高くないと決定し得る。
【００３１】
分析は、発話110が発話104および/または応答108において言及される話題または概念に言及するかどうかに基づいて、発話110がデバイス106を対象としているかどうかを評価することができる。別の例では、発話110のトランスクリプション126は、「ミシェル・オバマは何歳?」であり得る。上で説明されたように、コンピューティングデバイス106は、発話104のトランスクリプション116、検索結果122、および発話110のトランスクリプション126をトークン化し得る。この事例では、コンピューティングデバイス106は、トランスクリプション126の用語と、トランスクリプション116および/または検索結果122の用語との間で、どの共通の用語も特定しないことがある。コンピューティングデバイス106は、トランスクリプション126の中の用語「ミシェル・オバマ」がトランスクリプション116および検索結果122の中の用語「バラク・オバマ」に関連し得ると決定することが可能であり得る。トランスクリプション116および/または検索結果122の中の用語に関連する用語をトランスクリプション126が含むことに基づいて、コンピューティングデバイス106は、「ミシェル・オバマは何歳?」と話しているときにユーザ102がコンピューティングデバイス106に話しかけていた可能性が高いと決定し得る。
【００３２】
分析は、発話110の文章構造または表現法がデバイスを対象とした別の既知の通信の構造と十分に一致するかどうかに基づいて、発話110がデバイス106を対象としているかどうかを評価することができる。たとえば、デバイス106は、発話110が、あるパターンを使用するかどうか、または、発話104、デバイスとの以前の会話の間の同じユーザによる発話、もしくはデバイスへの他のユーザの発話と類似しているかどうかを評価することができる。別の例では、発話110のトランスクリプション126は「ビル・ゲイツは何歳?」であり得る。上で説明されたように、コンピューティングデバイス106は、発話104のトランスクリプション116、検索結果122、および発話110のトランスクリプション126をトークン化し得る。この事例では、コンピューティングデバイス106は、トランスクリプション126の用語と、トランスクリプション116および/または検索結果122の用語との間に、どの共通の用語も特定しないことがある。コンピューティングデバイス106はまた、(i)トランスクリプション126ならびに(ii)トランスクリプション116および/または検索結果122を文法分析器に提供し得る。文法分析器は、(i)トランスクリプション126ならびに(ii)トランスクリプション116および/または検索結果122の文章構造が、ユーザ102が発話110を話しているときにコンピューティングデバイス106に話しかけていたことを示すのに十分類似しているかどうかを、決定することが可能であり得る。この事例では、「<人物>は何歳」という構造が、トランスクリプション116とトランスクリプション126の両方において同じである。したがって、コンピューティングデバイス106は、1つまたは複数の以前の対話から、デバイスへの入力を表す尤度が高いことが知られているパターンの存在により、ユーザ102が「ビル・ゲイツは何歳?」と話しているときコンピューティングデバイス106に話しかけていた可能性が高いと決定することができる。
【００３３】
分析は、デバイス106の画面に表示されるコンテンツ、デバイス106の位置、問合せが受け取られる時間、以前の問合せおよびユーザによる問合せの提出のパターン、ならびに発話110が発話104と同じタイプの情報を要求するかどうかなどの、以下で論じられる追加の要因に基づいて、発話110がデバイス106を対象としているかどうかを評価することができる。デバイスは、デバイスによって生成される発話110への応答が発話104および/または応答108の話題を続ける場合、ユーザがデバイスに話しかけている尤度を高めることができる。デバイスは、デバイスが一般的なインターネット検索を実行すること以外に発話108への応答を特定することが可能である場合、ユーザがデバイスに話しかけている尤度を高めることができる。デバイスは、発話108への応答が適切な応答であることに確信がある場合、ユーザがデバイスに話しかけている尤度を高めることができる。このことを示すものは、応答108と発話110への応答が一致する回答タイプを有することを含み得る。分析はまた、人物の名前で開始する発話(「John, should we…」)、または一人称の複数形(たとえば、「we」、「let's」など)を使用する発話などの、発話110がデバイスに向けられていないことを示す要因を考慮することができる。
【００３４】
図2は、ユーザがコンピューティングデバイスに話しかけているかどうかを決定するシステム200の例示的なコンポーネントを示す。システム200は、発話オーディオを受信して処理するように構成される任意のタイプのコンピューティングデバイスであり得る。たとえば、システム200は、図1のコンピューティングデバイス106、または、図1のコンピューティングデバイス106、検索エンジン118、および発話認識エンジン114の任意の組合せと同様であり得る。システム200のコンポーネントは、単一のコンピューティングデバイス、複数の併置されるデバイス、リモートサーバにおいて実装され、または、ローカルデバイスおよびリモートシステムを含む複数のコンピューティングデバイスに分散していてもよい。
【００３５】
システム200はオーディオサブシステム202を含む。オーディオサブシステム202は、マイクロフォン204、アナログデジタルコンバータ206、バッファ208、および様々な他のオーディオフィルタを含み得る。マイクロフォン204は、発話などの周囲のエリアにおける音を検出するように構成され得る。アナログデジタルコンバータ206は、マイクロフォン204によって検出されるオーディオデータをサンプリングするように構成され得る。バッファ208は、システム200による処理のためにサンプリングされたオーディオデータを記憶し得る。いくつかの実装形態では、オーディオサブシステム202は、継続的にアクティブであり得る。この場合、マイクロフォン204は、音を持続的に検出していてもよい。アナログデジタルコンバータ206は、検出されたオーディオデータを持続的にサンプリングしていてもよい。バッファ208は、音の最後の10秒などの、最新のサンプリングされたオーディオデータを記憶し得る。システム200の他のコンポーネントがバッファ208の中のオーディオデータを処理しない場合、バッファ208は以前のオーディオデータを書き換え得る。
【００３６】
オーディオサブシステム202はオーディオデータをホットワーダ210に提供する。ホットワーダ210は、マイクロフォン204を介して受信された、および/またはバッファ208に記憶されているオーディオの中の、ホットワードを特定するように構成される。ホットワーダ210は、ホットワード検出器、キーワード発見器、またはキーワード検出器と呼ばれ得る。いくつかの実装形態では、ホットワーダ210は、システム200の電源が入っているときはいつでもアクティブであり得る。ホットワーダ210は、バッファ208に記憶されているオーディオデータを継続的に分析する。ホットワーダ210は、バッファ208の中の現在のオーディオデータがホットワードを含む尤度を反映する、ホットワード信頼度スコアを計算する。ホットワード信頼度スコアを計算するために、ホットワーダ210はホットワードモデル214を使用し得る。ホットワードモデル214は、「OKコンピュータ」、「ヘイコンピュータ」、「OKアシスタント」、または他の用語および語句などの、異なるホットワードに対して異なるホットワードモデルを含み得る。ホットワードモデル214は、特定のユーザに適合されてもよく、または任意のユーザに対するものであってもよい。ホットワーダ210は、フィルタバンクエネルギーまたはメル周波数ケプストラム係数などの音響特徴をオーディオデータ212から抽出し得る。ホットワーダ210は、サポートベクターマシンまたはニューラルネットワークを使用することなどによって、これらの音響特徴を処理するために、分類ウィンドウを使用し得る。いくつかの実装形態では、ホットワーダ210は、ホットワード信頼度スコアを決定するために発話認識を実行しない。ホットワーダ210は、ホットワード信頼度スコアがホットワード信頼度スコアの閾値を満たす場合、オーディオがホットワードを含むと決定する。たとえば、ホットワーダ210は、ホットワード信頼度スコアが0.8でありホットワード信頼度スコアの閾値が0.7である場合、オーディオがホットワードを含むと決定する。
【００３７】
いくつかの実装形態では、ホットワーダ210は、オーディオデータがホットワード「OKコンピュータ」を含むと決定する。ホットワーダ210は、ホットワードを含むオーディオデータ212の部分を特定し得る。たとえば、ホットワーダ210は、ホットワード「OKコンピュータ」を含むオーディオデータの部分を発話認識器218のために特定し得る。ホットワーダ210は、0.0秒から0.5秒の間のオーディオデータがホットワードを含むことを示すタイミングデータを、発話認識器218に提供し得る。代替的に、または追加で、ホットワーダ210は、メモリアドレス0x98b89d24と0x98b8e35aの間に記憶されているオーディオデータがホットワードを含むことを示すメモリ位置情報を、発話認識器218に提供し得る。
【００３８】
発話認識器218は、オーディオデータ、またはホットワードを含まないオーディオデータ212の部分に対して、発話認識を実行する。発話認識器218は、言語モデルおよび音響モデルを使用して、オーディオデータの、またはホットワードを含まないオーディオデータの部分のトランスクリプションを生成し得る。いくつかの実装形態では、発話認識器は、個々の言語および音響モデルを使用しないことがある。代わりに、発話認識器218は、オーディオデータを受信しトランスクリプションを出力するように構成される発話認識モデルを使用し得る。発話認識モデルは、機械学習技法を使用して訓練されるニューラルネットワークおよび/またはモデルを使用し得る。
【００３９】
発話認識器218は、トランスクリプションをトークナイザ220に提供する。トークナイザ220は、トランスクリプションを構成する用語へとトランスクリプションをトークン化するように構成される。たとえば、トランスクリプションが「how will be the weather in the afternoon」である場合、トークナイザ220によって特定されるトークンは、「how」、「will」、「be」、「the」、「weather」、「in」、「the」、および「afternoon」であり得る。いくつかの実装形態では、トークンは1つより多くの語を含み得る。たとえば、「バラク・オバマ」が1つのトークンであり得る。
【００４０】
トークナイザ220は、トランスクリプションのトークンおよび/またはトランスクリプションを分析器222に提供する。分析器222は、トランスクリプションの発話を話したユーザがシステム200に話しかけていたかどうかを決定するように構成される。分析器222は、ユーザが発話を話しているときにシステムに話しかけていた尤度を示す信頼度スコアを生成し得る。分析器222は、信頼度スコアを信頼度スコアの閾値と比較し得る。信頼度スコアが信頼度スコアの閾値を満たす場合、分析器222は、ユーザがシステム200に話しかけていた可能性が高いと決定する。信頼度スコアが信頼度スコアの閾値を満たさない場合、分析器222は、ユーザがシステム200に話しかけていなかった可能性が高いと決定する。たとえば、信頼度スコアが0.8であり信頼度スコアの閾値が0.7である場合、分析器は、ユーザがシステム200に話しかけていた可能性が高いと決定する。
【００４１】
分析器222は、問合せおよびトランスクリプション分析器236を含み得る。問合せおよびトランスクリプション分析器236は、信頼度スコアを決定するために最近受け取られた発話のトランスクリプションを分析し得る。いくつかの実装形態では、問合せおよびトランスクリプション分析器236はまた、最近受け取られた発話の同じユーザセッションからの、1つまたは複数の以前の発話および/または1つまたは複数の以前の応答のトランスクリプションを使用する。システム200は、問合せログ232の中の以前の発話および応答ログ234の中の以前の応答のトランスクリプションを記憶し得る。問合せログ232は、現在のユーザセッションからの問合せを含み、標識し得る。同様に、応答ログ234は、現在のユーザセッションの間にシステム200によって提供された応答を含み、標識し得る。いくつかの実装形態では、問合せログ232および応答ログ234は、システムがいつ各問合せを受信し各応答を提供したかを示すためのタイムスタンプを有し得る。問合せログ232および応答ログ234はまた、どの応答がどの問合せに対するものであったかを示すためのデータを含み得る。
【００４２】
システム200は、いくつかの異なる方法でユーザセッションを定義し得る。1つの事例では、システム200は、システム200がロックされている、またはあるタイプの低電力モードにある期間の合間として、ユーザセッションを定義し得る。たとえば、システム200が携帯電話である場合、ユーザセッションは、ユーザが携帯電話をアンロックまたは起動するときに開始し、ユーザが携帯電話をロックするとき、携帯電話がある不活動の期間の後で自動的にロックするとき、および/または携帯電話が低電力モードに入るときに、終了し得る。別の事例では、システム200は、フォアグラウンドアプリケーションがシステム200によって実行されることに基づいて、ユーザセッションを定義し得る。アプリケーションが変化するとき、システム200は、新しいユーザセッションが開始したことを示し得る。たとえば、システム200は、タブレットコンピュータであってよく、フォアグラウンドでメッセージアプリケーションを実行していてよい。ユーザは、ホーム画面またはブラウザアプリケーションに切り替えることがあり、この時点で、システム200は新しいユーザセッションを開始する。別の事例では、システム200は、期間に基づいてユーザセッションを定義し得る。ユーザ対話の文脈では、システム200は、システム200が音声またはタイプされた問合せへの応答を出力してからの期間が、システム200が新しい音声またはタイプされた問合せを受け取るまでの閾値の期間を超える場合、新しいユーザセッションを開始する。たとえば、閾値は5秒であり得る。システム200が問合せに応答して、システム200が新しい音声またはタイプされた問合せを受け取るまでに6秒が経過する場合、システム200は、新しい音声またはタイプされた問合せを新しいユーザセッションの一部として特定する。
【００４３】
問合せおよびトランスクリプション分析器236は、最近受け取られた発話の用語を、同じユーザセッションからの以前の発話の用語および/または以前の応答の用語と比較するように構成され得る。問合せおよびトランスクリプション分析器236は、受け取られた発話と以前の発話および以前の応答との間に共通の用語がある事例において、より高い信頼度スコアを割り当て得る。問合せおよびトランスクリプション分析器236は、受け取られた発話と以前の発話および以前の応答との間により多くの共通の用語がある事例において、より高い信頼度スコアを割り当て得る。いくつかの実装形態では、問合せおよびトランスクリプション分析器236は、「the」、「a」、「an」、「is」、「are」、または一般的なコーパスにおいてありふれている任意の他の同様の用語などのように、共通の用語がありふれたものではない事例において、信頼度スコアを上げることができる。代わりに、問合せおよびトランスクリプション分析器236は、共通の用語が、「バラク・オバマ」、「曲がる」、「信号」、「交通」、および一般的なコーパスにおいてあまりありふれていない任意の他の用語などの用語である事例において、信頼度スコアを上げることができる。
【００４４】
問合せおよびトランスクリプション分析器236は、最近受け取られた発話の用語を同じユーザセッションからの以前の発話の用語および/または以前の応答の用語と比較するために、ナレッジグラフ238にアクセスするように構成され得る。ナレッジグラフ238は、エンティティを表すデータと、エンティティ間の関係との集合体である。データは、グラフとして論理的に記述され、ここで、各々の個別のエンティティはそれぞれのノードによって表され、エンティティのペア間の各々の関係はノード間の角度によって表される。各辺はある関係と関連付けられ、辺の存在は、関連付けられた関係が辺によって接続されたノード間に存在することを表す。たとえば、ノードAが人物アルファを表し、ノードBが人物ベータを表し、辺Eが関係「の父親である」と関連付けられる場合、グラフにおいて辺EにノードAからノードBの方向にノードを接続させることは、アルファがベータの父親であるという事実を表す。
【００４５】
ナレッジグラフ238は、様々な便利な物理的データ構造のいずれによっても表され得る。たとえば、ナレッジグラフ238は、各々が2つのエンティティを順番に表し第1のエンティティから第2のエンティティへの関係を表す3要素によって表され得る。たとえば、[アルファ、ベータ、の父親である]または[アルファ、の父親である、ベータ]は、同じ事実を表す代替的な方法である。各エンティティおよび各関係は、複数の3要素であってもよく、一般に複数の3要素に含まれる。
【００４６】
代替的に、各エンティティは、記録またはオブジェクトとしてノードに一度記憶されてもよく、たとえば、エンティティが有するすべての関係およびエンティティが関連するすべての他のエンティティと、リンクされたリストデータ構造を介してリンクされてもよい。より具体的には、ナレッジグラフ238は、隣接情報が関係情報を含むような隣接リストとして記憶され得る。
【００４７】
各々の個別のエンティティと、固有の識別子との各々の個別の関係とを表すことが、一般に有利である。
【００４８】
ナレッジグラフ238によって表されるエンティティは、有形の物または特定の人々ではなくてもよい。エンティティは、特定の人々、場所、物、芸術作品、概念、イベント、または他のタイプのエンティティを含み得る。したがって、ナレッジグラフ238は、人々の間の関係、たとえば映画の共演者を定義するデータ、人々と物の間の関係、たとえば特定の歌手が特定の歌を録音したことを定義するデータ、人々と物の間の関係、たとえば特定のタイプのワインが特定の地理的位置の産品であることを定義するデータ、人々と場所の間の関係、たとえば特定の人物が特定の都市で生まれたことを定義するデータ、およびエンティティ間の他の種類の関係を含み得る。
【００４９】
いくつかの実装形態では、各ノードは、ノードが表すエンティティの種類に基づくタイプを有し、タイプは各々、タイプのノードによって表されるエンティティについて保持され得るデータの種類と、データがどのように記憶されるべきかとを指定するスキーマを有し得る。よって、たとえば、ある人物を表すためのタイプのノードは、生年月日、出生地などの情報のためのスキーマ定義フィールドを有し得る。そのような情報は、タイプ固有データ構造の中のフィールドによって、またはノード-関係-ノードの3要素、たとえば[人物識別子、で生まれた、日付]のように見える3要素によって、または、任意の他の便利なあらかじめ定められた方法で表され得る。代替的に、タイプスキーマによって指定される情報の一部またはすべてが、ナレッジグラフにおいてノードへのリンクよって表されてもよい。たとえば[ある人物の識別子、の子供、別の人物の識別子]であり、ここで他の人物の識別子はグラフの中のノードである。
【００５０】
ナレッジグラフ238にアクセスすることによって、問合せおよびトランスクリプション分析器236は、同じではないことがあるがナレッジグラフにおいて関係を有することがある用語を比較する。問合せおよびトランスクリプション分析器236は、最近受け取られた発話の用語と同じユーザセッションからの以前の発話の用語および/または以前の応答の用語がより近い関係を有するとき、より高い信頼度スコアを割り当て得る。たとえば、「バラク・オバマ」のノードは、辺「の配偶者である」により「ミシェル・オバマ」のノードに接続され得る。バラク・オバマとミシェル・オバマのノードが1階層で接続されると、2階層で接続されてノードの2つの用語の間に介在するノードがあるような用語よりも、高い信頼度スコアを割り当てることができる。
【００５１】
問合せおよびトランスクリプション分析器236は、特定のタイプの用語が最近受け取られた発話の中にあることに基づいて、信頼度スコアを調整し得る。たとえば、問合せおよびトランスクリプション分析器236は、最近受け取られた発話の中の用語のうちの1つが代名詞である場合、信頼度スコアを上げることができる。代名詞は、話者が以前の発話および/または以前の応答においてある用語に言及していたことを示し得る。いくつかの実装形態では、問合せおよびトランスクリプション分析器236は、最近受け取られた発話の中の代名詞の性別を、ユーザセッションからの以前の発話および/または以前の応答の中の用語と比較し得る。代名詞の性別が以前の発話および/または以前の応答の中の名詞と一致する場合、問合せおよびトランスクリプション分析器236は、信頼度スコアを上げることができる。代名詞の性別が以前の発話および/または以前の応答の中の名詞と一致しない場合、問合せおよびトランスクリプション分析器236は、信頼度スコアを下げることができる。
【００５２】
問合せおよびトランスクリプション分析器236は、最近受け取られた発話のパターンまたは文章構造と、ユーザセッションからの以前の発話および/もしくは以前の応答のパターンまたは文章構造との比較に基づいて、信頼度スコアを調整することができる。問合せおよびトランスクリプション分析器236は、最近受け取られた発話のパターンまたは文章構造が、ユーザセッションからの以前の発話および/もしくは以前の応答のパターンまたは文章構造と同じである場合、信頼性スコアを上げることができる。問合せおよびトランスクリプション分析器236は、最近受け取られた発話のパターンまたは文章構造が、ユーザセッションからの以前の発話および/もしくは以前の応答のパターンまたは文章構造と同じではない場合、信頼度スコアを下げることができる。たとえば、以前の問合せが「バラク・オバマはどれくらい背が高い」であり、現在の問合せが「テイラー・スイフトはどれくらい背が高い」である場合、問合せおよびトランスクリプション分析器236は、両方が「<人物>はどれくらい背が高い」という構造を有すると決定することができ、信頼性スコアを上げることができる。代わりに、現在の問合せが「テイラー・スイフトの身長はいくら」である場合、問合せおよびトランスクリプション分析器236は、質問が両方ともある人物の身長に関係していると決定し、信頼度スコアを上げることが可能であり得る。現在の問合せが「テイラー・スイフトは何歳」である場合、問合せおよびトランスクリプション分析器236は、質問が同じ構造を有しないと決定し、信頼性スコアを下げることができる。
【００５３】
分析器222は、以前の発話および/または以前の応答と現在の問合せとの間の期間の間のシステム200の画面のコンテンツを特定する画面分析器224を含み得る。たとえば、以前の問合せが「今日の予定は」であり、その後の、システム200の画面のコンテンツが朝の天気であるとする。システム200の画面に朝の天気がある状態で、システム200は「昼の天気はどう」という発話を受け取る。画面分析器224は、話者が天気について尋ねるときにシステム200の画面に天気データがあることに基づいて、信頼度スコアを上げることができる。代わりに、現在の発話が「バラク・オバマが生まれたのはどこ」である場合、画面分析器224は、朝の天気が画面上にあるとき信頼度スコアを下げ、それは、バラク・オバマがどこで生まれたかは朝の天気と関係ないからである。
【００５４】
分析器222は、システムの位置に基づいて、現在の問合せがシステム200に向けられている可能性が高いと決定する、位置分析器226を含み得る。現在の問合せがシステム200の位置に関連する場合、位置分析器226は信頼度スコアを上げることができる。現在の問合せは、現在の問合せが、デバイスの位置から閾値の距離以内にある場所、ランドマーク、建物、商店、および/または位置に言及している場合、デバイスの位置に関連し得る。現在の問合せがシステム200の位置に関連しない場合、位置分析器226は信頼度スコアを下げることができる。たとえば、以前の問合せは「天気はどう」であってよく、現在の問合せは「エッフェル塔はどれくらい高い」であってよい。システム200の位置はパリであり得る。質問がパリに関連しており、システム200がパリに位置していることに基づいて、位置分析器226は信頼度スコアを上げることができる。現在の問合せが「エベレストはどれくらい高い」である場合、位置分析器226は、エベレストはパリと関係ないと決定し、信頼度スコアを下げることができる。
【００５５】
分析器222は、システム200が現在の問合せを受け取った時間に基づいて、現在の問合せがシステム200に向けられている可能性が高いかどうかを決定する、時間分析器228を含み得る。現在の問合せが現在の時刻に関連する場合、時間分析器228は信頼度スコアを上げることができる。現在の問合せが現在の時刻に関連しない場合、時間分析器228は信頼度スコアを下げることができる。現在の問合せは、現在の問合せに対応する行動が通常は現在の時刻またはその近くにおいてシステムによって受け取られる場合、現在の時刻に関連し得る。時間分析器228は、現在の問合せを問合せログ232の中の問合せおよび対応するタイムスタンプと比較して、現在の問合せが通常は現在の時刻またはその近くにおいてシステムによって受け取られるかどうかを決定し得る。たとえば、以前の問合せは「天気はどう」であってよく、現在の問合せは朝の午前7:00に受け取られる「照明をつけて」であり得る。午前7:00に受け取られる照明をつけるための問合せに基づいて、時間分析器228は信頼度スコアを上げることができる。いくつかの実装形態では、時間分析器228は、当日に現在の問合せの前に受け取られたいくつかの以前の問合せを考慮し得る。たとえば、時間分析器228は、「照明をつけて」が当日の話者の2番目の問合せであることに基づいて、信頼度スコアを上げることができる。話者が、「照明をつけて」と話す前に当日の間に15回の問合せなどのより多くの問合せを行っている場合、時間分析器228は信頼度スコアを下げることができる。同様に、夜には、「照明を消して」および「午前7時に目覚ましを設定して」などの問合せは、時間分析器228に信頼度スコアを上げさせ得る。
【００５６】
いくつかの実装形態では、時間分析器228は、ユーザセッションがいつ終了したかを特定するのを助け得る。時間分析器228は、問合せの受信または問合せへの応答の出力から経過した時間を決定し得る。いくつかの事例では、時間分析器228は、問合せの受信または問合せへの応答の出力からより長い時間が経過するにつれて、信頼性スコアを下げることができる。経過した時間がある長さの時間(たとえば、10秒)に到達する場合、時間分析器228は、ユーザセッションが終了したことを示し得る。この事例では、ユーザは、新しいユーザセッションを開始するために、システムに触れるかまたはホットワードを話さなければならないことがある。
【００５７】
分析器222は、システム200との話者の以前の対話に基づいて、現在の問合せがシステム200を対象としている可能性が高いかどうかを決定する、問合せログ分析器230を含み得る。ユーザが毎日同じ時刻付近に同じ問合せを話す場合、問合せログ分析器230は、その同じ問合せと一致する現在の問合せの信頼性スコアを上げることができる。言い換えると、システム200は、以前の問合せにおけるパターン、または、時間、構造、および/もしくは内容の共通性を特定し、現在の問合せが特定されたパターンと一致すると決定し得る。問合せログ分析器230は、問合せログ232にアクセスして、現在の問合せを話者の以前の問合せと比較し得る。たとえば、ユーザは、「OKコンピュータ、今日の予定を教えて」と話すことがある。システム200は、問合せ「今日の予定を教えて」への応答を生成する。ユーザは、「今日の職場までの交通状況はどう」と話すことで続ける。問合せログ分析器230は、問合せ「今日の職場までの交通状況はどう」を問合せログ232と比較し、ユーザが過去5日の就業日の各々の朝に同じ問合せを話したと決定し得る。問合せ「今日の職場までの交通状況はどう」のその頻度に基づいて、問合せログ分析器230は信頼度スコアを上げる。いくつかの実装形態では、現在の問合せは、過去の日のほぼ同じ時刻に受け取られた過去の問合せと類似しているが、同一ではないことがある。この場合、問合せおよびトランスクリプション分析器236は、類似性を特定し得る。その類似性に基づいて、問合せログ分析器230は信頼度スコアを上げる。
【００５８】
分析器222は、問合せおよびトランスクリプション分析器236、画面分析器224、時間分析器228、問合せログ分析器230、および位置分析器226の任意の組合せを使用して、現在の問合せを話しているときに話者がシステム200に話しかけていた尤度を反映する信頼度スコアを生成し得る。分析器222は、信頼度スコアを信頼度スコアの閾値と比較して、現在の問合せがシステム200を対象としている可能性が高いかどうかを決定し得る。
【００５９】
現在の問合せがシステム200を対象としている可能性が高いかどうかに関する決定に基づいて、システム200は、データルーティングコンポーネント240を構成する。問合せがシステムに向けられなかった可能性が高いと分析器222が決定する事例では、システム200は、問合せに対して行動をとらないようにデータルーティングコンポーネント240を構成する。たとえば、システム200が問合せ「テイラー・スイフトはどれくらい背が高い」を受け取り、分析器222が、問合せがシステム200に向けられていない可能性が高いと決定する場合、システム200は、問合せに対して行動をとらないようにデータルーティングコンポーネント240を構成する。システムが問合せ「ミシェル・オバマは誰」を受け取り、分析器222が、問合せがシステム200に向けられている可能性が高いと決定する場合、システム200は、システム200または他のデバイスの適切な部分に問合せをルーティングするようにデータルーティングコンポーネント240を構成する。システム200は、問合せを分析して、問合せの適切な行き先を決定し得る。いくつかの行き先には、検索エンジン、メッセージングアプリケーション、電話アプリケーション、または、任意の他の同様のデバイス、コンポーネント、もしくはアプリケーションがあり得る。システム200は、問合せのトランスクリプションを特定された行き先にルーティングするようにデータルーティングコンポーネント240を構成し得る。たとえば、システム200は、問合せ「ミシェル・オバマは何歳」を検索エンジンにルーティングするようにデータルーティングコンポーネント240を構成し得る。システム200は、問合せ「もうすぐ帰ると母さんにテキストメッセージを送って」を連絡先アプリケーションおよびメッセージングアプリケーションにルーティングするようにデータルーティングコンポーネント240を構成し得る。システム200は、「母さん」の部分を連絡先アプリケーションに、「もうすぐ帰る」の部分をメッセージングアプリケーションにルーティングするようにデータルーティングコンポーネント240を構成し得る。
【００６０】
いくつかの実装形態では、システム200は、システム200の画面に現在の問合せの処理を示すものを表示し得る。ユーザインターフェース生成器242は、画面上に表示するためのコンテンツを生成し得る。問合せがシステム200に向けられていない可能性が高いと分析器222が決定する事例では、ユーザインターフェース生成器242は、問合せに関する画面上のディスプレイにどのようなコンテンツも提供しなくてもよい。この事例では、システム200が問合せを処理していることを示すものを画面が提供しないので、ユーザはシステム200が問合せを処理していないと理解する。問合せがシステム200に向けられている可能性が高いことを分析器222が決定する事例では、ユーザインターフェース生成器242は、データルーティングコンポーネント240から問合せを受け取ったコンポーネントまたはアプリケーションからの応答に関するコンテンツを提供する。たとえば、ユーザインターフェース生成器242は、問合せ「ミシェル・オバマは何歳」に応答して検索エンジンから受け取られた検索結果のコンテンツを生成し得る。別の例では、ユーザインターフェース生成器242は、連絡先「母さん」に送信する準備ができているメッセージ「もうすぐ帰る」を伴うメッセージングアプリケーションのコンテンツを生成し得る。
【００６１】
図3は、ユーザがコンピューティングデバイスに話しかけているかどうかを決定するための例示的なプロセス300のフローチャートである。一般に、プロセス300は、ユーザの発話のトランスクリプションおよび発話を受け取るシステムの文脈を分析する。文脈は、以前のユーザの発話および対応するシステムの応答、ユーザが対面しているディスプレイのコンテンツ、システムの位置、現在の時刻、またはユーザにより提供された以前の問合せのログを含み得る。プロセス300は、ユーザの発話のトランスクリプションおよびシステムの文脈を分析して、ユーザがシステムに話しかけているかどうかを決定する。プロセス300は、1つまたは複数のコンピュータ、たとえば、図1のコンピューティングデバイス106または図2のシステム200を備えるコンピュータシステムによって実行されるものとして説明される。
【００６２】
システムは、第1の発話の第1のオーディオデータを受信する(305)。いくつかの実装形態では、第1のオーディオデータは、ユーザがシステムに話しかけているというユーザからの信号としてのホットワードを含む。たとえば、ユーザは「OKコンピュータ、バラク・オバマが生まれたのはどこ」と言うことがあり、システムはマイクロフォンを介して発話を受け取る。システムは、ホットワード「OKコンピュータ」を特定し、ホットワードを含むことに基づいてシステムに対する発話をユーザが意図していたとシステムが決定するので、問合せの残りの部分を処理し得る。
【００６３】
システムは、第1の発話の第1のトランスクリプションを取得する(310)。いくつかの実装形態では、システムは、第1の発話のオーディオデータを発話認識エンジンに提供する。たとえば、システムは、発話「バラク・オバマが生まれたのはどこ」のオーディオデータを発話認識エンジンに提供し、オーディオデータのトランスクリプションを受信し得る。
【００６４】
いくつかの実装形態では、システムは、データルーティングコンポーネントによって、第1の発話の第1のトランスクリプションを第1の問合せとして問合せ処理システムに提供する(315)。ユーザが発話にホットワードを含めたので、システムは、発話がシステムに向けられていると決定する。システムは、第1の問合せのトランスクリプションに応じて、トランスクリプションを適切なアプリケーション、コンポーネント、またはデバイスにルーティングするようにデータルーティングコンポーネントを構成する。システムは、検索エンジン、メッセージングアプリケーション、電話アプリケーション、または任意の他のタイプのコンポーネント、アプリケーション、もしくはデバイスであり得る、問合せ処理システムにトランスクリプションをルーティングするようにデータルーティングコンポーネントを構成し得る。システムは、トランスクリプションに基づいて適切な問合せ処理システムを選択し得る。
【００６５】
いくつかの実装形態では、システムは、問合せ処理システムから、第1の問合せへの応答を受信する(320)。たとえば、問合せ処理システムが検索エンジンである場合、システムは、検索エンジンに提供されるトランスクリプションに対する検索結果を受信し得る。問合せ処理システムがメッセージングアプリケーションである場合、システムは、トランスクリプションに含まれるメッセージがトランスクリプションにおいて示される受信者に送信する準備ができているという応答を受信し得る。
【００６６】
いくつかの実装形態では、システムは、出力のために、第1の問合せへの応答を提供する(325)。たとえば、システムは、発話合成器を使用して、検索結果を出力し得る。別の例では、システムは、システムのディスプレイ上で、受信者へ送信する準備ができているトランスクリプションをメッセージングアプリケーションにおいて出力し得る。
【００６７】
システムは、第2の発話の第2のオーディオデータを受信する(330)。いくつかの実装形態では、システムは、システムのマイクロフォンを介して第2のオーディオを受信する。システムは、ユーザがシステムに対する第2の発話を意図していたことを示すものを第2のオーディオが含まないと決定し得る。たとえば、第2の発話は、ホットワードを含まないことがあり、発話「ミシェル・オバマは何歳」であり得る。いくつかの実装形態では、システムは、システムが第1の発話を受け取ったのと同じユーザセッションの間に、第2の発話を受け取る。
【００６８】
システムは、第2の発話の第2のトランスクリプションを取得する(335)。いくつかの実装形態では、システムは、第2の発話のオーディオデータを発話認識エンジンに提供する。たとえば、システムは、発話「ミシェル・オバマは何歳」のオーディオデータを発話認識エンジンに提供し、オーディオデータのトランスクリプションを受信し得る。
【００６９】
システムは、(i)第2のトランスクリプションおよび(ii)第1のトランスクリプションまたは第1の問合せへの応答を分析する(340)。いくつかの実装形態では、システムは第2のトランスクリプションのみを分析する。いくつかの実装形態では、システムは、第2のトランスクリプションおよび第1のトランスクリプションのみを分析する。いくつかの実装形態では、システムは、第2のトランスクリプションおよび第1の問合せへの応答のみを分析する。いくつかの実装形態では、システムは、第2のトランスクリプション、第1のトランスクリプション、および第1の問合せへの応答を分析する。
【００７０】
いくつかの実装形態では、システムは、(i)第2のトランスクリプションならびに(ii)第1のトランスクリプションおよび/または第1の問合せへの応答をトークン化することを含む。システムは、第2のトランスクリプションのトークンを第1のトランスクリプションおよび/または第1の問合せへの応答のトークンと比較する。トークンはトランスクリプションおよび問合せの用語を含む。
【００７１】
いくつかの実装形態では、システムは、(i)第2のトランスクリプションのトークンと、(ii)第1のトランスクリプションおよび/または第1の問合せへの応答のトークンとの関係を決定する。システムは、トークン間の関係を決定するためにナレッジグラフにアクセスし得る。たとえば、システムは、「バラク・オバマ」に対応するナレッジグラフの中のノードが、「ミシェル・オバマ」に対応するノードから1つの辺により分離されていると決定し得る。
【００７２】
いくつかの実装形態では、システム分析は、(i)第2のトランスクリプションのトークンと、任意選択で、(ii)第1のトランスクリプションおよび/または第1の問合せへの応答のトークンとの中の用語のタイプを特定することを含む。システムは、用語の各々の発話の部分を特定し得る。たとえば、システムは、「彼はどれくらい背が高い」の第2のトランスクリプションが代名詞「彼」を含むと決定し得る。
【００７３】
いくつかの実装形態では、システム分析は、(i)第2のトランスクリプションと(ii)第1のトランスクリプションおよび/または第1の問合せへの応答の文法構造を比較することを含む。たとえば、システムは、第2のトランスクリプションおよび第1のトランスクリプションが「<人物>は何歳」という文章構造を有すること、または第2のトランスクリプションと第1のトランスクリプションの両方が人物の年齢を決定することに関することを、決定し得る。
【００７４】
いくつかの実装形態では、システム分析は、第2のトランスクリプションの文法構造を、ユーザがシステムに話した以前の問合せを含む問合せログと比較することを含む。問合せログは、以前の問合せだけではなく、過去の日および週からの問合せも含み得る。問合せログは、システムがユーザからの問合せをいつ受け取ったかを示す各問合せに対するタイムスタンプを含み得る。システムは、過去5日の就業日にユーザが毎朝話した問合せの構造と第2のトランスクリプションが一致すると決定し得る。
【００７５】
システムは、(i)第2のトランスクリプションおよび(ii)第1のトランスクリプションまたは第1の問合せへの応答を分析したことに基づいて、第2の発話が問合せ処理システムを対象とした問合せを含むかどうかを決定する(345)。いくつかの実装形態では、システムは、第2の発話がシステムまたは問合せ処理システムを対象とした問合せを含む尤度を反映する信頼度スコアを生成する。システムは、信頼度スコアを信頼度スコアの閾値と比較して、第2の発話がシステムまたは問合せ処理システムを対象としている可能性が高いかどうかを決定し得る。
【００７６】
いくつかの実装形態では、システムは、(i)第2のトランスクリプション、ならびに任意選択で、(ii)第1のトランスクリプションおよび/または第1の問合せへの応答に対して実行される分析のタイプのうちの1つまたは複数に基づいて、信頼度スコアを生成し得る。より高い信頼度スコアは、ユーザがシステムに対する第2の発話を意図したことのより高い尤度を示し得る。たとえば、システムは、(i)第2のトランスクリプションならびに(ii)第2のトランスクリプションおよび/または第1の問合せへの応答において共通の用語がある場合、信頼度スコアを上げることができる。システムは、(i)第2のトランスクリプションならびに(ii)第2のトランスクリプションおよび/または第1の問合せへの応答において共通の用語がない場合、信頼性スコアを下げることができる。システムは、第2のトランスクリプションの文章構造が第2のトランスクリプションおよび/または第1の問合せへの応答の構造と一致する場合、信頼度スコアを上げることができる。システムは、第2のトランスクリプションの文章構造が第2のトランスクリプションおよび/または第1の問合せへの応答の構造と一致しない場合、信頼度スコアを下げることができる。システムは、第2のトランスクリプションが代名詞を含む場合、信頼度スコアを上げることができ、第2のトランスクリプションが代名詞を含まない場合、信頼度スコアを下げることができる。システムは、第2のトランスクリプションが問合せログの中の問合せと一致する場合、信頼度スコアを上げることができ、第2のトランスクリプションが問合せログの中の問合せと一致しない場合、信頼度スコアを下げることができる。
【００７７】
システムは、信頼度スコアを生成するとき追加の要因を考慮することができる。いくつかの実装形態では、システムは、システムが第2の発話のオーディオデータを受信した時間、またはその付近における、ユーザが対面しているディスプレイのコンテンツを決定し得る。ユーザが対面しているディスプレイのコンテンツに第2の発話が関連する場合、システムは信頼度スコアを上げることができる。ユーザが対面しているディスプレイのコンテンツに第2の発話が関連しない場合、システムは信頼度スコアを下げることができる。
【００７８】
いくつかの実装形態では、システムは、第2の発話を受け取ったデバイスの位置を決定し得る。第2の発話が、第2の発話を受け取ったデバイスの位置に関連する場合、システムは信頼度スコアを上げることができる。第2の発話が、第2の発話を受け取ったデバイスの位置に関連しない場合、システムは信頼度スコアを下げることができる。
【００７９】
いくつかの実装形態では、システムは、システムが第2の発話を受け取った時間を決定し得る。システムが第2の発話を受け取った時間に第2の発話が関連する場合、システムは信頼度スコアを上げることができる。システムが第2の発話を受け取った時間に第2の発話が関連しない場合、システムは信頼性スコアを下げることができる。
【００８０】
システムは、第2の発話が問合せ処理システムを対象とした問合せを含むかどうかを決定したことに基づいて、(i)第2の発話の第2のトランスクリプションを第2の問合せとして問合せ処理システムに提供する、または(ii)第2のトランスクリプションが問合せ処理システムに提供されないように第2のトランスクリプションをバイパスルーティングするように、データルーティングコンポーネントを構成する(350)。システムが、第2の発話の第2のトランスクリプションを第2の問合せとして問合せ処理システムに提供するようにデータルーティングコンポーネントを構成する事例では、システムは、外部デバイスもしくはシステム、システム上で実行しているアプリケーション、または、任意の他のデバイス、アプリケーション、もしくはコンポーネントに第2の発話を提供するように、データルーティングコンポーネントを構成し得る。システムが第2のトランスクリプションをバイパスルーティングするようにデータルーティングコンポーネントを構成する事例では、システムは、第2のトランスクリプションに対して行動を実行しないように見えることがある。たとえば、システムの画面が空白になり得る。
【００８１】
図4は、本明細書で説明される技法を実施するために使用され得る、コンピューティングデバイス400およびモバイルコンピューティングデバイス450の例を示す。コンピューティングデバイス400は、ラップトップ、デスクトップ、ワークステーション、携帯情報端末、サーバ、ブレードサーバ、メインフレーム、および他の適切なコンピュータなどの、様々な形式のデジタルコンピュータを表すことが意図される。モバイルコンピューティングデバイス450は、携帯情報端末、携帯電話、スマートフォン、および他の同様のコンピューティングデバイスなどの、様々な形式のモバイルデバイスを表すことが意図される。ここで示されるコンポーネント、それらの接続と関係、およびそれらの機能は、例であることのみが意図されており、限定することは意図されていない。
【００８２】
コンピューティングデバイス400は、プロセッサ402、メモリ404、ストレージデバイス406、メモリ404および複数の高速拡張ポート410に接続する高速インターフェース408、ならびに、低速拡張ポート414およびストレージデバイス406に接続する低速インターフェース412を含む。プロセッサ402、メモリ404、ストレージデバイス406、高速インターフェース408、高速拡張ポート410、および低速インターフェース412の各々は、様々なバスを使用して相互接続され、共通のマザーボードに、または適宜他の方式で搭載され得る。プロセッサ402は、高速インターフェース408に結合されたディスプレイ416などの、外部入力/出力デバイス上のGUIのためのグラフィカル情報を表示するために、メモリ404またはストレージデバイス406に記憶されている命令を含む、コンピューティングデバイス400内で実行するための命令を処理することができる。他の実装形態では、複数のプロセッサおよび/または複数のバスが、複数のメモリおよびメモリのタイプとともに適宜使用され得る。また、複数のコンピューティングデバイスが接続されてもよく、各デバイスは必要な動作の部分を(たとえば、サーババンク、ブレードサーバのグループ、またはマルチプロセッサシステムとして)提供する。
【００８３】
メモリ404は、コンピューティングデバイス400内に情報を記憶する。いくつかの実装形態では、メモリ404は1つまたは複数の揮発性メモリユニットである。いくつかの実装形態では、メモリ404は1つまたは複数の不揮発性メモリユニットである。メモリ404はまた、磁気ディスクまたは光学ディスクなどの、別の形式のコンピュータ可読媒体であってもよい。
【００８４】
ストレージデバイス406は、コンピューティングデバイス400に大容量記憶を提供することが可能である。いくつかの実装形態では、ストレージデバイス406は、フロッピーディスクデバイス、ハードディスクデバイス、光学ディスクデバイス、もしくはテープデバイス、フラッシュメモリもしくは他の同様のソリッドステートメモリデバイス、または、ストレージエリアネットワークもしくは他の構成におけるデバイスを含むデバイスのアレイなどの、コンピュータ可読媒体であってもよく、またはそれを含んでもよい。命令は情報担体に記憶され得る。命令は、1つまたは複数の処理デバイス(たとえば、プロセッサ402)によって実行されると、上で説明されたものなどの1つまたは複数の方法を実行する。命令はまた、コンピュータ可読または機械可読媒体(たとえば、メモリ404、ストレージデバイス406、またはプロセッサ402上のメモリ)などの、1つまたは複数のストレージデバイスによって記憶され得る。
【００８５】
高速インターフェース408は、コンピューティングデバイス400に対する帯域幅集約的な動作を管理するのに対し、低速インターフェース412は、より帯域幅集約的ではない動作を管理する。機能のそのような割振りは例にすぎない。いくつかの実装形態では、高速インターフェース408は、メモリ404に、ディスプレイ416に(たとえば、グラフィクスプロセッサまたはアクセラレータを介して)、および様々な拡張カード(図示せず)を受け入れることができる高速拡張ポート410に、結合される。実装形態では、低速インターフェース412は、ストレージデバイス406および低速拡張ポート414に結合される。様々な通信ポート(たとえば、USB、Bluetooth、Ethernet、ワイヤレスEthernet)を含み得る低速拡張ポート414は、キーボード、ポインティングデバイス、スキャナ、または、スイッチもしくはルータなどのネットワーキングデバイスなどの、1つまたは複数の入力/出力デバイスに、たとえばネットワークアダプタを介して結合され得る。
【００８６】
コンピューティングデバイス400は、図に示されるように、いくつかの異なる形式で実装され得る。たとえば、それは、標準的なサーバ420として、またはそのようなサーバのグループとして複数回実装され得る。加えて、それは、ラップトップコンピュータ422などのパーソナルコンピュータとして実装され得る。それはまた、ラックサーバシステム424の一部として実装され得る。代替的に、コンピューティングデバイス400からのコンポーネントは、モバイルコンピューティングデバイス450などの、モバイルデバイス(図示せず)の中の他のコンポーネントと組み合わせられ得る。そのようなデバイスの各々は、コンピューティングデバイス400とモバイルコンピューティングデバイス450のうちの1つまたは複数を含むことがあり、システム全体が、互いに通信する複数のコンピューティングデバイスからなっていることがある。
【００８７】
モバイルコンピューティングデバイス450は、とりわけ、プロセッサ452、メモリ464、ディスプレイ454などの入力/出力デバイス、通信インターフェース466、およびトランシーバ468を含む。モバイルコンピューティングデバイス450には、追加のストレージを提供するために、マイクロドライブまたは他のドライブなどのストレージデバイスも設けられ得る。プロセッサ452、メモリ464、ディスプレイ454、通信インターフェース466、およびトランシーバ468の各々は、様々なバスを使用して相互接続され、コンポーネントのいくつかが、共通のマザーボードに、または適宜他の方式で搭載され得る。
【００８８】
プロセッサ452は、メモリ464に記憶されている命令を含む、モバイルコンピューティングデバイス450内の命令を実行することができる。プロセッサ452は、別個のおよび複数のアナログプロセッサとデジタルプロセッサとを含む、チップのチップセットとして実装され得る。プロセッサ452は、たとえば、ユーザインターフェースのコントロールなどのモバイルコンピューティングデバイス450の他のコンポーネントの協調のために、モバイルコンピューティングデバイス450により実行されるアプリケーションおよびモバイルコンピューティングデバイス450によるワイヤレス通信を提供し得る。
【００８９】
プロセッサ452は、制御インターフェース458、およびディスプレイ454に結合されたディスプレイインターフェース456を介して、ユーザと通信し得る。ディスプレイ454は、たとえば、TFT(薄膜トランジスタ液晶ディスプレイ)ディスプレイまたはOLED(有機発光ダイオード)ディスプレイ、または他の適切なディスプレイ技術であり得る。ディスプレイインターフェース456は、グラフィカル情報および他の情報をユーザに提示するようにディスプレイ454を駆動するための適切な回路を備え得る。制御インターフェース458は、ユーザから命令を受け取り、それをプロセッサ452へ出すために変換し得る。加えて、外部インターフェース462は、他のデバイスとのモバイルコンピューティングデバイス450の近距離通信を可能にするために、プロセッサ452との通信を提供し得る。外部インターフェース462は、たとえば、いくつかの実装形態では有線通信を可能にし、または他の実装形態ではワイヤレス通信を可能にでき、複数のインターフェースが使用されてもよい。
【００９０】
メモリ464は、モバイルコンピューティングデバイス450内に情報を記憶する。メモリ464は、1つまたは複数のコンピュータ可読媒体、1つまたは複数の揮発性メモリユニット、または1つまたは複数の不揮発性メモリユニットのうちの1つまたは複数として実装され得る。拡張メモリ474はまた、たとえばSIMM(Single In Line Memory Module)カードインターフェースを含み得る拡張インターフェース472を介して、モバイルコンピューティングデバイス450に提供され接続され得る。拡張メモリ474は、モバイルコンピューティングデバイス450に余剰の記憶空間を提供することができ、または、モバイルコンピューティングデバイス450のためのアプリケーションまたは他の情報を記憶することもできる。具体的には、拡張メモリ474は、上で説明された処理を実行または補助するための命令を含むことがあり、セキュア情報も含むことがある。したがって、たとえば、拡張メモリ474は、モバイルコンピューティングデバイス450のためのセキュリティモジュールとして提供されることがあり、モバイルコンピューティングデバイス450のセキュアな使用を可能にする命令を用いてプログラムされることがある。加えて、セキュアアプリケーションが、SIMMカード上に識別情報をハッキング不可能な方式で置くことなどの、追加の情報とともに、SIMMカードを介して提供され得る。
【００９１】
メモリは、たとえば、以下で論じられるように、フラッシュメモリおよび/またはNVRAMメモリ(不揮発性ランダムアクセスメモリ)を含み得る。いくつかの実装形態では、命令は情報担体に記憶される。命令は、1つまたは複数の処理デバイス(たとえば、プロセッサ452)によって実行されると、上で説明されたものなどの1つまたは複数の方法を実行する。命令はまた、1つまたは複数のコンピュータ可読媒体または機械可読媒体(たとえば、メモリ464、拡張メモリ474、またはプロセッサ452上のメモリ)などの、1つまたは複数のストレージデバイスによって記憶され得る。いくつかの実装形態では、命令は、たとえば、トランシーバ468または外部インターフェース462を介して、伝播信号において受信され得る。
【００９２】
モバイルコンピューティングデバイス450は、デジタルシグナル処理回路を必要であれば含み得る、通信インターフェース466を介してワイヤレスに通信し得る。通信インターフェース466は、とりわけ、GSM音声呼(Global System for Mobile communications)、SMS(Short Message Service)、EMS(Enhanced Messaging Service)、またはMMSメッセージング(Multimedia Messaging Service)、CDMA(code division multiple access)、TDMA(time division multiple access)、PDC(Personal Digital Cellular)、WCDMA(登録商標)(Wideband Code Division Multiple Access)、CDMA2000、またはGPRS(General Packet Radio Service)などの、様々なモードまたはプロトコルのもとで通信を可能にし得る。そのような通信は、たとえば、無線周波数を使用してトランシーバ468を介して行われ得る。加えて、短距離通信は、Bluetooth、WiFi、または他のそのようなトランシーバ(図示せず)などを使用して行われ得る。加えて、GPS(全地球測位システム)受信機モジュール470は、追加のナビゲーションおよび位置関連ワイヤレスデータをモバイルコンピューティングデバイス450に提供することができ、これは、モバイルコンピューティングデバイス450上で実行しているアプリケーションによって適宜使用され得る。
【００９３】
モバイルコンピューティングデバイス450はまた、オーディオコーデック460を使用して可聴に通信することができ、オーディオコーデック460は、ユーザからの口語情報を受信して、それを使用可能なデジタル情報に変換することができる。オーディオコーデック460は同様に、たとえばモバイルコンピューティングデバイス450のハンドセットの中の、スピーカーなどを介して、ユーザに対する可聴の音を生成することができる。そのような音は、音声電話呼からの音を含んでもよく、録音された音(たとえば、ボイスメッセージ、音楽ファイルなど)を含んでもよく、モバイルコンピューティングデバイス450上で動作しているアプリケーションによって生成された音も含んでもよい。
【００９４】
モバイルコンピューティングデバイス450は、図に示されるように、いくつかの異なる形式で実装され得る。たとえば、それは、携帯電話480として実装され得る。それはまた、スマートフォン482、携帯情報端末、または他の同様のモバイルデバイスの一部として実装され得る。
【００９５】
ここで説明されるシステムおよび技法の様々な実装形態は、デジタル電子回路、集積回路、特別に設計されたASIC(特定用途向け集積回路)、コンピュータハードウェア、ファームウェア、ソフトウェア、および/またはそれらの組合せにおいて実現され得る。これらの様々な実装形態は、ストレージシステム、少なくとも1つの入力デバイス、および少なくとも1つの出力デバイスからデータと命令を受信し、かつそれらにデータと命令を送信するために結合される、専用または汎用であり得る、少なくとも1つのプログラマブルプロセッサを含むプログラマブルシステム上で実行可能および/または解釈可能な1つまたは複数のコンピュータプログラムにおける実装形態を含み得る。
【００９６】
これらのコンピュータプログラム(プログラム、ソフトウェア、ソフトウェアアプリケーションまたはコードとしても知られている)は、プログラマブルプロセッサのための機械命令を含み、高水準の手続型および/もしくはオブジェクト指向プログラミング言語で、ならびに/またはアセンブリ/機械言語で実装され得る。本明細書で使用される場合、機械可読媒体およびコンピュータ可読媒体という用語は、機械可読信号として機械命令を受信する機械可読媒体を含む、機械命令および/またはデータをプログラマブルプロセッサに提供するために使用される任意のコンピュータプログラム製品、装置、および/またはデバイス(たとえば、磁気ディスク、光学ディスク、メモリ、プログラマブルロジックデバイス(PLD))を指す。機械可読信号という用語は、機械命令および/またはデータをプログラマブルプロセッサに提供するために使用される任意の信号を指す。
【００９７】
ユーザとの対話を可能にするために、ここで説明されるシステムおよび技法は、情報をユーザに表示するための表示デバイス(たとえば、CRT(陰極線管)またはLCD(液晶ディスプレイ)モニタ)ならびにユーザがそれにより入力をコンピュータに提供することができるキーボードおよびポインティングデバイス(たとえば、マウスまたはトラックボール)を有するコンピュータ上で実装され得る。他の種類のデバイスも、ユーザとの対話を可能にするために使用されてもよく、たとえば、ユーザに提供されるフィードバックは、任意の形式の感覚フィードバック(たとえば、視覚フィードバック、可聴フィードバック、または触覚フィードバック)であってもよく、ユーザからの入力は、音響入力、発話入力、または触覚入力を含む任意の形式で受け取られ得る。
【００９８】
ここで説明されるシステムおよび技法は、バックエンドコンポーネントを(たとえば、データサーバとして)含む、またはミドルウェアコンポーネント(たとえば、アプリケーションサーバ)を含む、またはフロントエンドコンポーネント(たとえば、グラフィカルユーザインターフェース、またはユーザがここで説明されるシステムおよび技法の実装形態とそれを介して対話できるWebブラウザを有する、クライアントコンピュータ)を含む、または、そのようなバックエンドコンポーネント、ミドルウェアコンポーネント、もしくはフロントエンドコンポーネントの任意の組合せを含む、コンピューティングシステムにおいて実装され得る。システムのコンポーネントは、任意の形式または媒体のデジタルデータ通信(たとえば、通信ネットワーク)によって相互接続され得る。通信ネットワークの例は、ローカルエリアネットワーク(LAN)、ワイドエリアネットワーク(WAN)、およびインターネットを含む。いくつかの実装形態では、ここで説明されるシステムおよび技法は、発話認識および他の処理がデバイス上で直接実行される埋め込みシステム上で実装され得る。
【００９９】
コンピューティングシステムはクライアントおよびサーバを含み得る。クライアントおよびサーバは、一般に互いに離れており、典型的には通信ネットワークを介して対話する。クライアントとサーバの関係は、それぞれのコンピュータ上で実行しており互いにクライアントとサーバの関係を有する、コンピュータプログラムにより生じる。
【０１００】
少数の実装形態が上で詳しく説明されたが、他の修正が可能である。たとえば、クライアントアプリケーションがデリゲートにアクセスするものとして説明されるが、他の実装形態では、デリゲートは、1つまたは複数のサーバ上で実行しているアプリケーションなどの1つまたは複数のプロセッサによって実装される他のアプリケーションによって利用され得る。加えて、図面に示される論理フローは、望ましい結果を達成するために、示される特定の順序、または逐次的な順序を必要としない。加えて、他の行動が行われてもよく、または説明されるフローから行動が削除されてもよく、説明されるシステムに、他のコンポーネントが追加されてもよく、またはそれから除去されてもよい。したがって、他の実装形態が、以下の特許請求の範囲内にある。
【符号の説明】
【０１０１】
106  コンピューティングデバイス
114  発話認識エンジン
118  検索エンジン
202  オーディオサブシステム
204  マイクロフォン
206  アナログデジタルコンバータ
208  バッファ
210  ホットワーダ
214  ホットワードモデル
218  発話認識器
220  トークナイザ
222  分析器
224  画面分析器
226  位置分析器
228  時間分析器
230  問合せログ分析器
232  問合せログ
234  応答ログ
236  問合せおよびトランスクリプション分析器
238  ナレッジグラフ
240  データルーティングコンポーネント
242  ユーザインターフェース生成器
400  コンピューティングデバイス
402  プロセッサ
404  メモリ
406  ストレージデバイス
408  高速インターフェース
410  高速拡張ポート
412  低速インターフェース
414  低速拡張ポート
416  ディスプレイ
422  ラップトップコンピュータ
424  ラックサーバシステム
450  モバイルコンピューティングデバイス
452  プロセッサ
454  ディスプレイ
456  ディスプレイインターフェース
458  制御インターフェース
460  オーディオコーデック
462  外部インターフェース
464  メモリ
466  通信インターフェース
468  トランシーバ
470  GPS受信機モジュール
472  拡張インターフェース
474  拡張メモリ
480  携帯電話
482  スマートフォン
【図１】
2021533401.tif 000003
【図２】
2021533401.tif 000004
【図３】
2021533401.tif 000005
【図４】
2021533401.tif 000006
【手続補正書】
【提出日】令和3年2月12日(2021.2.12)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
コンピュータ実施方法であって、
コンピューティングデバイスによって、第1の発話の第1のオーディオデータを受信するステップと、
前記コンピューティングデバイスによって、前記第1の発話の第1のトランスクリプションを取得するステップと、
前記コンピューティングデバイスによって、前記第1の発話の前記第1のトランスクリプションを第1の問合せとして問合せ処理システムに提供するステップと、
前記問合せ処理システムから、前記第1の問合せへの応答を受信するステップと、
前記コンピューティングデバイスによって、第2の発話の第2のオーディオデータを受信するステップと、
前記コンピューティングデバイスによって、前記第2の発話の第2のトランスクリプションを取得するステップと、
前記コンピューティングデバイスによって、前記第2の発話が前記問合せ処理システムを対象とした問合せを含むかどうかを、(i)前記第2のトランスクリプションおよび(ii)前記第1のトランスクリプションまたは前記第1の問合せへの前記応答の分析に基づいて決定するステップと、
前記第2の発話が前記問合せ処理システムを対象とした問合せを含むかどうかを決定したことに基づいて、前記コンピューティングデバイスによって、(i)前記第2の発話の前記第2のトランスクリプションを第2の問合せとして前記問合せ処理システムに提供する、または(ii)前記第2のトランスクリプションが前記問合せ処理システムに提供されないように前記第2のトランスクリプションをバイパスルーティングするように、データルーティングコンポーネントを構成するステップとを備える、方法。
【請求項２】
前記第2の発話が問合せ処理システムを対象とした問合せを含むかどうかを決定するステップが、(i)前記第2のトランスクリプションおよび(ii)前記第1のトランスクリプションの分析に基づく、請求項1に記載の方法。
【請求項３】
前記第2の発話が問合せ処理システムを対象とした問合せを含むかどうかを決定するステップが、(i)前記第2のトランスクリプションおよび(ii)前記第1の問合せへの前記応答の分析に基づく、請求項1または2に記載の方法。
【請求項４】
前記第2の発話が問合せ処理システムを対象とした問合せを含むかどうかを決定するステップが、前記第2のトランスクリプション、前記第1のトランスクリプション、および前記第1の問合せへの前記応答の分析に基づく、請求項1から3のいずれか一項に記載の方法。
【請求項５】
前記第2の発話が前記問合せ処理システムを対象とした問合せを含むかどうかを決定するステップが、前記第2の発話が前記問合せ処理システムを対象とした問合せを含むと決定するステップと、
前記第2の発話の前記第2のトランスクリプションを第2の問合せとして前記問合せ処理システムに提供するように前記データルーティングコンポーネントを構成するステップとを備える、請求項1から4のいずれか一項に記載の方法。
【請求項６】
前記第2の発話が前記問合せ処理システムを対象とした問合せを含むかどうかを決定するステップが、前記第2の発話が前記問合せ処理システムを対象とした問合せを含まないと決定するステップと、
前記第2のトランスクリプションが前記問合せ処理システムに提供されないように、前記第2のトランスクリプションをバイパスルーティングするように前記データルーティングコンポーネントを構成するステップとを備える、請求項1から5のいずれか一項に記載の方法。
【請求項７】
前記第2の発話が問合せ処理システムを対象とした問合せを含むかどうかを決定するステップが、
(i)前記第2のトランスクリプションおよび(ii)前記第1のトランスクリプションまたは前記第1の問合せへの前記応答をトークン化するステップと、
(ii)前記第2のトランスクリプションの用語と(ii)前記第1のトランスクリプションまたは前記第1の問合せへの前記応答の用語を比較するステップとを備える、請求項1から6のいずれか一項に記載の方法。
【請求項８】
(i)前記第2のトランスクリプションの前記用語と(ii)前記第1のトランスクリプションまたは前記第1の問合せの前記応答の前記用語を比較するステップが、ナレッジグラフにおける、(i)前記第2のトランスクリプションの前記用語と(ii)前記第1のトランスクリプションまたは前記第1の問合せへの前記応答の前記用語との間の関係を決定するステップを備える、請求項7に記載の方法。
【請求項９】
前記第2の発話が問合せ処理システムを対象とした問合せを含むかどうかを決定するステップが、(i)前記第2のトランスクリプションの文法構造と(ii)前記第1のトランスクリプションまたは前記第1の問合せへの前記応答の文法構造を比較することと、
(i)前記第2のトランスクリプションの前記文法構造と(ii)前記第1のトランスクリプションまたは前記第1の問合せへの前記応答の前記文法構造を比較することに基づいて、前記第2の発話が前記問合せ処理システムを対象とした問合せを含むかどうかを決定することとに基づく、請求項1から8のいずれか一項に記載の方法。
【請求項１０】
前記第2の発話が問合せ処理システムを対象とした問合せを含むかどうかを決定するステップが、
前記第2のトランスクリプションをトークン化するステップと、
前記第2のトランスクリプションの用語が代名詞を含むと決定するステップと、
前記第2のトランスクリプションの前記用語が代名詞を含むと決定したことに基づいて、前記第2の発話が前記問合せ処理システムを対象とした問合せを含むと決定するステップと
を備える、請求項1から9のいずれか一項に記載の方法。
【請求項１１】
ユーザインターフェース上のコンテンツを決定するステップと、
前記ユーザインターフェースの前記コンテンツに基づいて、前記第2の発話が前記問合せ処理システムを対象とした問合せを含むかどうかを決定するステップとを備える、請求項1から10のいずれか一項に記載の方法。
【請求項１２】
マイクロフォンを介して前記第1の発話および前記第2の発話を検出したユーザデバイスの位置を決定するステップと、
前記マイクロフォンを介して前記第1の発話および前記第2の発話を検出した前記ユーザデバイスの前記位置に基づいて、前記第2の発話が前記問合せ処理システムを対象とした問合せを含むかどうかを決定するステップとを備える、請求項1から11のいずれか一項に記載の方法。
【請求項１３】
前記コンピューティングデバイスが前記第2の発話の前記第2のオーディオデータを受信する時間を決定するステップと、
前記コンピューティングデバイスが前記第2の発話の前記第2のオーディオデータを受信する前記時間に基づいて、前記第2の発話が前記問合せ処理システムを対象とした問合せを含むかどうかを決定するステップとを備える、請求項1から12のいずれか一項に記載の方法。
【請求項１４】
(i)前記第2のトランスクリプションおよび(ii)前記第1のトランスクリプションまたは前記第1の問合せへの前記応答を分析するステップが、前記第2のトランスクリプションを問合せログの中の1つまたは複数の問合せと比較するステップを備え、
前記第2の発話が前記問合せ処理システムを対象とした問合せを含むかどうかを決定するステップが、前記第2のトランスクリプションを前記問合せログの中の前記1つまたは複数の問合せと比較することに基づく、請求項1から13のいずれか一項に記載の方法。
【請求項１５】
前記コンピューティングデバイスによる出力のために、前記第1の問合せへの前記応答を提供するステップとを備える、請求項1から14のいずれか一項に記載の方法。
【請求項１６】
1つまたは複数のコンピュータと、
前記1つまたは複数のコンピュータによって実行されると、前記1つまたは複数のコンピュータに請求項1から15のいずれか一項に記載の方法を行わせるように動作可能な命令を記憶した、1つまたは複数のストレージデバイスとを備える、システム。
【請求項１７】
実行されると、1つまたは複数のコンピュータに請求項1から15のいずれか一項に記載の方法を行わせる、前記1つまたは複数のコンピュータによって実行可能な命令を備えるソフトウェアを記憶した、コンピュータ可読記憶媒体。
【国際調査報告】
2021533401.tif 000007
2021533401.tif 000008
2021533401.tif 000009