(57)【要約】  ホームアシスタント装置を制御するための方法およびシステムであって、前記方法は、オーディオ入力を受信すること（５０２）と、前記オーディオ入力に対する話者認識を実行すること（５０４）と、前記オーディオ入力が、前記ホームアシスタント装置に対する制御が許可された第１ユーザからの音声入力を含むという決定に従って、前記オーディオ入力に対して、音声からテキストへの変換を実行して、テキスト文字列を取得し（５０６）、および前記テキスト文字列で、ホームアシスタント装置をアクティブ化するための事前に定義されたトリガーワードを検索することと、および前記オーディオ入力が、前記ホームアシスタント装置からの音声入力を含むという決定に従って、前記オーディオ入力に対する音声からテキストへの変換を停止し、および前記事前に定義されたトリガーワードの検索を停止すること（５０８）とを含む。
2021508848.tif 000002
【特許請求の範囲】
【請求項１】
ホームアシスタント装置を制御するための方法であって、
１つまたは複数のプロセッサとメモリとを備えるコンピューティングシステムにおいて、
オーディオ入力を受信することと、
前記オーディオ入力に対する話者認識を実行することと、
前記オーディオ入力が、前記ホームアシスタント装置に対する制御が許可された第１ユーザからの音声入力を含むという決定に従って、
前記オーディオ入力に対して、音声からテキストへの変換を実行して、テキスト文字列を取得し、
前記テキスト文字列において、ホームアシスタント装置をアクティブ化するための事前に定義されたトリガーワードを検索し、
前記オーディオ入力が、前記ホームアシスタント装置からの音声入力を含むという決定に従って、前記オーディオ入力に対する音声からテキストへの変換を停止し、前記事前に定義されたトリガーワードの検索を停止することと、
を含む、前記ホームアシスタント装置を制御するための方法。
【請求項２】
前記テキスト文字列で、事前に定義されたトリガーワードを検索することは、
複数の所定のトリガーワードから、前記第１ユーザに対応するトリガーワードを選択することであって、前記複数の所定のトリガーワードは、前記第１ユーザを含む複数のユーザにおける異なるユーザに対応することと、  検索する事前に定義されたトリガーワードとして、前記第１ユーザに対応する前記トリガーワードを使用することと、を含む、
請求項１に記載のホームアシスタント装置を制御するための方法。
【請求項３】
前記ホームアシスタント装置を制御するための方法は、
前記オーディオ入力が、前記ホームアシスタント装置に対する制御が許可された前記第１ユーザからの音声入力を含むという決定に従って、
前記ホームアシスタント装置の複数のタスクドメインから、１つまたは複数の第１タスクドメインを選択して、前記テキスト文字列に対して意図推測を実行することであって、前記第１ユーザは、前記１つまたは複数の第１タスクドメインを制御するように許可されたことと、
前記複数のタスクドメインにおける１つまたは複数の第２タスクドメインを使用して前記テキスト入力を処理することを停止することであって、前記第１ユーザは、前記１つまたは複数の第２タスクドメインを制御するように許可されていないことと、
を含む、請求項１に記載のホームアシスタント装置を制御するための方法。
【請求項４】
前記ホームアシスタント装置を制御するための方法は、
前記ホームアシスタント装置に対応するデフォルトの音声テキスト変換モデルを取得することと、及び
前記第１ユーザによって提供された、記録された複数の音声サンプルが利用可能であるという決定に従って、前記第１ユーザによって提供された複数の音声サンプルに従って前記デフォルトの音声テキスト変換モデルを調整して、前記第１ユーザに対する第１ユーザ固有の音声テキスト変換モデルを生成することであって、前記オーディオ入力に対して、音声からテキストへの変換を実行して前記テキスト文字列を取得することは、前記第１ユーザに対する前記第１ユーザ固有の音声テキスト変換モデルを使用して、前記オーディオ入力に対して音声からテキストへの変換を実行することを含むことと、を含む、
請求項１に記載のホームアシスタント装置を制御するための方法。
【請求項５】
前記ホームアシスタント装置を制御するための方法は、
前記第１ユーザによって提供された、記録された複数の音声サンプルが利用不可能であるという決定に従って、前記デフォルトの音声テキスト変換モデルを使用して、前記オーディオ入力に対して前記音声からテキストへの変換を実行することを含む、
請求項４に記載のホームアシスタント装置を制御するための方法。
【請求項６】
前記ホームアシスタント装置を制御するための方法は、
前記第１ユーザによって提供された、記録された複数の音声サンプルが利用可能であるという決定に従って、前記第１ユーザ固有の音声テキスト変換モデルを使用して、前記オーディオ入力に対して前記音声からテキストへの変換を実行する場合、前記オーディオ入力における前記トリガーワードを認識するための第１信頼度閾値を設定することと、  前記第１ユーザによって提供された、記録された複数の音声サンプルが利用不可能であるという決定に従って、前記デフォルトの音声テキスト変換モデルを使用して、前記オーディオ入力に対して前記音声からテキストへの変換を実行する場合、前記オーディオ入力における前記トリガーワードを認識するための第２信頼度閾値を設定することと、を含む、
請求項５に記載のホームアシスタント装置を制御するための方法。
【請求項７】
前記第１ユーザ固有の音声テキスト変換モデルのための前記第１信頼度閾値は、デフォルト音声テキスト変換モデルのための前記第２信頼度閾値より高い、
請求項６に記載のホームアシスタント装置を制御するための方法。
【請求項８】
ホームアシスタント装置を制御するためのシステムであって、
１つまたは複数のプロセッサと、
命令を記憶するように構成されるメモリと、を備え、
前記命令が前記プロセッサによって実行される場合、前記プロセッサに、
オーディオ入力を受信することと、
前記オーディオ入力に対する話者認識を実行することと、
前記オーディオ入力が、前記ホームアシスタント装置に対する制御が許可された第１ユーザからの音声入力を含むという決定に従って、
前記オーディオ入力に対して、音声からテキストへの変換を実行して、テキスト文字列を取得し、    前記テキスト文字列で、ホームアシスタント装置をアクティブ化するための事前に定義されたトリガーワードを検索し、
前記オーディオ入力が、前記ホームアシスタント装置からのオーディオ入力を含むという決定に従って、前記オーディオ入力に対する音声からテキストへの変換を停止し前記事前に定義されたトリガーワードの検索を停止することと、
を含む、操作を実行させる、前記ホームアシスタント装置を制御するためのシステム。
【請求項９】
前記テキスト文字列で、前記事前に定義されたトリガーワードを検索することは、
複数の所定のトリガーワードから、前記第１ユーザに対応するトリガーワードを選択することであって、前記複数の所定のトリガーワードは、前記第１ユーザを含む複数のユーザにおける異なるユーザに対応することと、  検索する事前に定義されたトリガーワードとして、前記第１ユーザに対応するトリガーワードを使用することと、
を含む、請求項８に記載のホームアシスタント装置を制御するためのシステム。
【請求項１０】
前記操作は、
前記オーディオ入力が、前記ホームアシスタント装置に対する制御が許可された前記第１ユーザからの音声入力を含むという決定に従って、
前記ホームアシスタント装置の複数のタスクドメインから、１つまたは複数の第１タスクドメインを選択して、前記テキスト文字列に対して意図推測を実行することであって、前記第１ユーザは、前記１つまたは複数の第１タスクドメインを制御するように許可されたことと、
前記複数のタスクドメインにおける１つまたは複数の第２タスクドメインを使用して前記テキスト入力を処理することを停止することであって、前記第１ユーザは、前記１つまたは複数の第２タスクドメインを制御するように許可されていないことと、
を含む、請求項８に記載のホームアシスタント装置を制御するためのシステム。
【請求項１１】
前記操作は、
前記ホームアシスタント装置に対応するデフォルトの音声テキスト変換モデルを取得することと、  前記第１ユーザによって提供された、記録された複数の音声サンプルが利用可能であるという決定に従って、前記第１ユーザによって提供された前記複数の音声サンプルに従って前記デフォルトの音声テキスト変換モデルを調整して、前記第１ユーザに対する第１ユーザ固有の音声テキスト変換モデルを生成することであって、前記オーディオ入力に対して、音声からテキストへの変換を実行して前記テキスト文字列を取得することが、前記第１ユーザに対する前記第１ユーザ固有の音声テキスト変換モデルを使用して、前記オーディオ入力に対して音声からテキストへの変換を実行することを含むことと、
を含む、請求項８に記載のホームアシスタント装置を制御するためのシステム。
【請求項１２】
前記操作は、
前記第１ユーザによって提供された、記録された複数の音声サンプルが利用不可能であるという決定に従って、前記デフォルトの音声テキスト変換モデルを使用して、前記オーディオ入力に対して前記音声からテキストへの変換を実行することを含む、
請求項１１に記載のホームアシスタント装置を制御するためのシステム。
【請求項１３】
前記操作は、
前記第１ユーザによって提供された、記録された複数の音声サンプルが利用可能であるという決定に従って、前記第１ユーザ固有の音声テキスト変換モデルを使用して、前記オーディオ入力に対して前記音声からテキストへの変換を実行する場合、前記オーディオ入力における前記トリガーワードを認識するための第１信頼度閾値を設定することと、及び
前記第１ユーザによって提供された、記録された複数の音声サンプルが利用不可能であるという決定に従って、前記デフォルトの音声テキスト変換モデルを使用して、前記オーディオ入力に対して前記音声からテキストへの変換を実行する場合、前記オーディオ入力における前記トリガーワードを認識するための第２信頼度閾値を設定することと、を含む、
請求項１２に記載のホームアシスタント装置を制御するためのシステム。
【請求項１４】
前記第１ユーザ固有の音声テキスト変換モデルのための前記第１信頼度閾値は、前記デフォルトの音声テキスト変換モデルのための前記第２信頼度閾値より高い、
請求項１３に記載のホームアシスタント装置を制御するためのシステム。
【請求項１５】
命令を記憶するように構成される非一時的なコンピュータ読み取り可能な記憶媒体であって、前記命令が、１つまたは複数のプロセッサによって実行される場合、前記プロセッサに、
オーディオ入力を受信することと、
前記オーディオ入力に対する話者認識を実行することと、
前記オーディオ入力が、ホームアシスタント装置に対する制御が許可された第１ユーザからの音声入力を含むという決定に従って、
前記オーディオ入力に対して、音声からテキストへの変換を実行して、テキスト文字列を取得し、    前記テキスト文字列で、ホームアシスタント装置をアクティブ化するための事前に定義されたトリガーワードを検索し、
前記オーディオ入力が、前記ホームアシスタント装置からの音声入力を含むという決定に従って、前記オーディオ入力に対する音声からテキストへの変換を停止し、前記事前に定義されたトリガーワードの検索を停止することと、
を含む、操作を実行させる、前記コンピューター読み取り可能な記憶媒体。
【請求項１６】
前記テキスト文字列で、前記事前に定義されたトリガーワードを検索することは、
複数の所定のトリガーワードから、前記第１ユーザに対応するトリガーワードを選択することであって、前記複数の所定のトリガーワードは、前記第１ユーザを含む複数のユーザにおける異なるユーザに対応することと、  検索する事前に定義されたトリガーワードとして、前記第１ユーザに対応する前記トリガーワードを使用することと、
を含む、請求項１５に記載のコンピュータ読み取り可能な記憶媒体。
【請求項１７】
前記操作は、
前記オーディオ入力が、前記ホームアシスタント装置に対する制御が許可された前記第１ユーザからの音声入力を含むという決定に従って、
前記ホームアシスタント装置の複数のタスクドメインから、１つまたは複数の第１タスクドメインを選択して、前記テキスト文字列に対して意図推測を実行することであって、前記第１ユーザは、前記１つまたは複数の第１タスクドメインを制御するように許可されたことと、
前記複数のタスクドメインにおける１つまたは複数の第２タスクドメインを使用してテキスト入力を処理することを停止することであって、前記第１ユーザは、前記１つまたは複数の第２タスクドメインを制御するように許可されていないことと、
を含む、請求項１５に記載のコンピュータ読み取り可能な記憶媒体。
【請求項１８】
前記操作は、
前記ホームアシスタント装置に対応するデフォルトの音声テキスト変換モデルを取得することと、  前記第１ユーザによって提供された、記録された複数の音声サンプルが利用可能であるという決定に従って、前記第１ユーザによって提供された複数の音声サンプルに従って前記デフォルトの音声テキスト変換モデルを調整して、前記第１ユーザに対する第１ユーザ固有の音声テキスト変換モデルを生成することであって、前記オーディオ入力に対して、音声からテキストへの変換を実行して前記テキスト文字列を取得することは、前記第１ユーザに対する前記第１ユーザ固有の音声テキスト変換モデルを使用して、前記オーディオ入力に対して音声からテキストへの変換を実行することを含むことと、
を含む、請求項１５に記載のコンピュータ読み取り可能な記憶媒体。
【請求項１９】
前記操作は、
前記第１ユーザによって提供された、記録された複数の音声サンプルが利用不可能であるという決定に従って、前記デフォルトの音声テキスト変換モデルを使用して、前記オーディオ入力に対して音声からテキストへの変換を実行することを含む、請求項１８に記載のコンピュータ読み取り可能な記憶媒体。
【請求項２０】
前記操作は、
前記第１ユーザによって提供された、記録された複数の音声サンプルが利用可能であるという決定に従って、前記第１ユーザ固有の音声テキスト変換モデルを使用して、前記オーディオ入力に対して前記音声からテキストへの変換を実行する場合、前記オーディオ入力における前記トリガーワードを認識するための第１信頼度閾値を設定することと、及び
前記第１ユーザによって提供された、記録された複数の音声サンプルが利用不可能であるという決定に従って、前記デフォルトの音声テキスト変換モデルを使用して、前記オーディオ入力に対して前記音声からテキストへの変換を実行する場合、前記オーディオ入力における前記トリガーワードを認識するための第２信頼度閾値を設定することと、を含む、請求項１９に記載のコンピュータ読み取り可能な記憶媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本願は、２０１７年１２月３０日に提出された米国特許出願第６２／６１２，５５１に対して優先権を主張し、当該出願のすべての内容は参照により本明細書に組み込まれる。
本発明は、概して、デジタルアシスタントに関し、より具体的に、音声ベースの命令を使用してデジタルアシスタントを制御する方法及びシステムに関する。
【背景技術】
【０００２】
最近、アップルのＳＩＲＩ（アップルのスマート音声アシスタント）、アマゾンのＥｃｈｏ（アマゾンのスマートスピーカ）、グーグルのＧｏｏｇｌｅ  Ａｓｓｉｓｔａｎｔ（グーグルアシスタント）、マイクロソフトのＣｏｒｔａｎａ（マイクロソフトのコルタナ）などの音声ベースのデジタルアシスタントが市場に導入され、家電の制御、Ｗｅｂ検索、スケジュール、リマインダなどのさまざまなタスクを処理している。このような音声ベースのデジタルアシスタントの利点は、ユーザが装置をタッチしたり、見たりすることなく、ハンズフリーで装置を操作できることである。ユーザは、ボタンを押すか、タッチスクリーン上のアイコンを選択するか、トリガーフレーズ（例えば、プリセットされたウェイクアップコマンド）を話すことで、音声ベースのアシスタントを開始することができる。
【０００３】
音声入力を使用して音声ベースのアシスタントをアクティブ化するには、オーディオチャネルを監視して音声入力を検出する必要がある。オーディオチャネルで音声入力が検出されると、音声認識が実行され、認識された音声テキストでトリガーフレーズを検索する。認識された音声テキストでトリガーフレーズを検出した場合、音声ベースのアシスタントをアクティブ化する。ただし、音声からテキストへの処理は計算コストが高く、処理エネルギが大量に消費され、ハンドヘルド機器のバッテリ寿命が短くなる。さらに、音声認識ではノイズやエラが発生しやすく、認識精度が低下するため、必要なときにアシスタントを正常に起動できなかったり、ユーザが不要なときに誤ってアシスタントを起動したりすることになる。
【０００４】
したがって、装置で音声ベースおよび／または音声ベースのサービスを開始するために使用できる音声トリガのエネルギ効率と有効性を改善する方法を提供することは有益である。
【発明の概要】
【発明が解決しようとする課題】
【０００５】
したがって、制限された電力リソースを過度に消費せずに、「いつも聞く」音声トリガ機能を提供し、不正確な音声認識または音声からテキストへの処理による誤検知のトリガ（ｆａｌｓｅ  ｐｏｓｉｔｉｖｅ  ｔｒｉｇｇｅｒｉｎｇ）およびトリガの失敗を低減できる「いつも聞く」音声トリガ機能を提供することができる方法が必要である。また、音声アシスタントが音声出力を使用してユーザコマンドに応答することもある。音声アシスタントが音声を出力している間、オーディオ入力チャネルが開いたままである場合、音声アシスタントが提供する音声出力にトリガーフレーズが含まれている可能性があるため、音声アシスタントがその自身の出力に含まれるトリガーフレーズに応答して、自身を誤って中断する可能性がある。この問題に対してはさまざまな解決策があり、一解決策として、音声アシスタントが音声出力を生成しているときにオーディオ入力チャネルを無効（ｄｉｓａｂｌｅ）にすることである。該解決策の欠点は、ユーザが中断しようとする場合でも、ユーザが音声アシスタントを中断することができない。別の解決策としては、音声アシスタントの音声出力を事前にフィルタリングしてトリガフレーズの存在を識別（ｉｄｅｎｔｉｆｙ）し、音声アシスタントの音声出力にトリガフレーズが含まれた場合にのみオーディオ入力チャネルを無効にすることである。いくつかの実施例において、トリガフレーズを含む音声アシスタントの音声出力のプロセス全体で、オーディオ入力チャネルを無効にする。いくつかの実施例において、音声アシスタントがトリガフレーズを出力している場合にのみ、オーディオ入力チャネルを無効にする。いくつかの実施例において、話者認識を実行し、音声入力が音声アシスタントの音声出力であると認識した場合、音声アシスタントの音声出力にトリガフレーズが含まれるかどうかに関係なく、音声認識をスキップする。いくつかの実施例において、１世帯に複数のメンバが含まれ、各メンバは異なる声を持つ。音声認識がうまく機能しない場合、世帯の一部のメンバがトリガフレーズを使用して音声アシスタントを正常にトリガできず、ユーザの不満を招く可能性がある。さらに、いくつかの実施例において、各ユーザが、同じ音声アシスタントに対して、彼／彼女の自分のトリガフレーズを定義することを許可してもよい。このような場合、音声アシスタントが誤ってトリガされないように、話者を認識する必要である。さらに、話者認識は音声認識よりも少ないリソースを必要とし、無許可のユーザの音声入力が受信された場合、音声認識をスキップできる。
【課題を解決するための手段】
【０００６】
以下で説明する実施例によれば、電子装置で音声トリガを使用して音声ベースのアシスタントを起動および制御するための方法およびシステムを提供する。
【０００７】
いくつかの実施例において、音声ベースのアシスタントを制御する方法は、オーディオ入力を受信することと、前記オーディオ入力に対する話者認識を実行することと、前記オーディオ入力が、前記ホームアシスタント装置に対する制御が許可された第１ユーザからの音声入力を含むという決定に従って、前記オーディオ入力に対して、音声からテキストへの変換を実行して、テキスト文字列を取得し、および前記テキスト文字列で、ホームアシスタント装置をアクティブ化するための所定のトリガーワードを検索することと、および前記オーディオ入力が、前記ホームアシスタント装置からの音声入力を含むという決定に従って、前記オーディオ入力に対する音声からテキストへの変換を停止し、および前記事前に定義されたトリガーワードの検索を停止する（ｆｏｒｇｏｉｎｇ）こととを含む。
【０００８】
いくつかの実施例によれば、電子装置の１つまたは複数のプロセッサによって実行される１つまたは複数のプログラムを記憶するように構成されるコンピュータ読み取り可能な記憶媒体（例えば、非一時的コンピュータ可読記憶媒体）を提供し、前記１つまたは複数のプログラムは、本明細書で説明される任意の方法を実行するための命令を含む。
【０００９】
いくつかの実施例によれば、本明細書で説明される任意の方法を実行するためのコンポーネントを備える電子装置（例えば、携帯型電子装置など）を提供する。
【００１０】
いくつかの実施例によれば、１つまたは複数のプロセッサとメモリを備える電子装置（例えば、携帯型電子装置など）を提供し、前記メモリは、前記１つまたは複数のプロセッサによって実行される１つまたは複数のプログラムを記憶するように構成され、当該１つまたは複数のプログラムは、本明細書で説明される任意の方法を実行するための命令を含む。
【００１１】
いくつかの実施例によれば、電子装置で使用する情報処理機器を提供し、前記情報処理機器は、本明細書で説明される任意の方法を実行するためのコンポーネントを備える。
【図面の簡単な説明】
【００１２】
開示された各実施例をよりよく理解するために、以下の図面と併せて以下の具体的な実施形態を参照すべきであり、図面全体を通して、類似の参照番号は対応する部分を指す。
【図１】いくつかの実施例によるデジタルアシスタント（ＤＡ）の操作環境を示すブロック図である。
【図２】いくつかの実施例によるデジタルアシスタントのクライアントシステムを示すブロック図である。
【図３Ａ】いくつかの実施例による独立したデジタルアシスタントシステムまたはデジタルアシスタントサーバシステムを示すブロック図である。
【図３Ｂ】いくつかの実施例による図３Ａに示されるデジタルアシスタント機能を示すブロック図である。
【図４Ａ】いくつかの実施例によるデジタルアシスタントシステムの話者登録段階および操作段階を示すブロック図である。
【図４Ｂ】いくつかの実施例によるデジタルアシスタントシステムの話者登録段階および操作段階を示すブロック図である。
【図５】いくつかの実施例によるデジタルアシスタントシステムを制御および操作するための方法を示すフローチャートである。  類似の参照番号は、図面中の対応する部分を指す。
【発明を実施するための形態】
【００１３】
以下で説明する実施例によれば、電子装置で音声トリガを使用して音声ベースのアシスタントを起動するためのシステムおよび方法を提供する。音声ベースのデジタルアシスタント（または音声テキスト変換サービスなどの他の音声ベースのサービス）との対話は、通常ユーザが装置のアフォーダンス（ａｆｆｏｒｄａｎｃｅ）（ボタンやアイコンなど）を押してデジタルアシスタントをアクティブ化することで開始する。次に、当該装置は、光、サウンド（たとえば、ビープ音）、または音声出力（例えば、「どういうご用件ですか？」）など、デジタルアシスタントがアクティブ化されて聞いている指示をユーザに提供する。本明細書で記載するように、音声ベースのアシスタントは、ユーザによる物理的な相互作用を必要とせず、特定の所定の単語、フレーズまたはサウンドなどの音声トリガに応答してアクティブ化されることができる。例えば、ユーザは、所定のトリガフレーズ「ねえ、アシスタント！」を言うことによって、デジタルアシスタントをアクティブ化することができる。これに応答して、当該装置はビープ音、サウンド、または音声出力（例えば、「どういうご用件ですか？」など）を出力して、リスニングモードがアクティブ化されたことをユーザに示す。したがって、ユーザは、デジタルアシスタント機能を提供する装置に物理的なタッチを必要とせず、当該デジタルアシスタントとの対話を開始できる。デジタルアシスタントを１つまたは複数の他の装置（例えば、家電製品、スマートホーム装置など）に接続して、これらの装置の機能を制御することができる。
【００１４】
音声トリガで音声ベースのサービスを起動する技術において、ノンストップで、所定のトリガーワード、フレーズ、またはサウンド（本明細書では、これらのいずれかを「トリガーサウンド」と呼んでもよい）を音声ベースのサービスに聞かせる。しかしながら、ノンストップで当該音声ベースのサービス（例えば、音声ベースのデジタルアシスタント）を操作するには、かなりのオーディオ処理とバッテリ電力が必要である。いくつかの実施例において、トリガーサウンド検出器は、一組の単語、フレーズ、サウンド、および／またはそれらの組み合わせなどの様々な異なるトリガーサウンドを検出するように構成される。いくつかの実施例において、異なるユーザは、異なる所定のトリガーワードを予め定義するか、デジタルアシスタントに異なる名前を付けることができる。例えば、デジタルアシスタントは、あるユーザが言った「Ｈｅｙ、ＡＬＥＸ（ねえ、アレックス）」というフレーズ、および、別のユーザが言った「Ｗａｋｅ  ｕｐ、Ｎｏｒａ（ウェイクアップ、ノラ）」というフレーズなどのユーザによってデジタルアシスタントに定義されたフレーズに応答してもよい。
【００１５】
図１は、いくつかの実施例によるデジタルアシスタントの操作環境１００のブロック図である。「ホームアシスタント」、「デジタルアシスタント」、「バーチャルアシスタント」，「インテリジェント自動アシスタント」、「音声ベースのデジタルアシスタント」、「音声アシスタント」、または「自動デジタルアシスタント」という用語は、音声および／またはテキスト形態の自然言語入力を解釈してユーザの意図を推定し（例えば、自然言語入力に対応するタスクタイプを識別する）、推定されたユーザの意図に基づいて動作する（例えば、識別されたタスクタイプに対応するタスクを実行する）任意の情報処理システムを指す。例えば、推定されたユーザ意図に基づいて動作するために、システムは、推定されたユーザの意図を実現するように設計されたステップとパラメータを含むタスクフローを実行すること（例えば、スクタイプを識別することなど）、推定されたユーザ意図から特定の要件をタスクフローに入力し、プログラム、方法、サービス、ＡＰＩなどを呼び出すことによって当該スクフローを実行すること（例えば、サービスプロバイダに要求を送信することなど）、聞こえる（音声など）および／または見える形態でユーザへの応答出力を生成することのうちの１つまたは複数の動作を実行してもよい。
【００１６】
具体的には、開始されると、ホームアシスタントシステムは、少なくとも部分的に自然言語コマンド、要求、陳述、叙述、および／または質問の形のユーザ要求を受信することができる。通常、ユーザ要求は、情報化回答、またはデジタル装置によるタスクの実行のいずれかを求める。ユーザ要求に対する満足のいく応答は、通常、要求された情報化回答、要求されたタスクの実行、またはその２つの組み合わせである。例えば、ユーザは、デジタル装置システムに「現在の部屋の温度は？」などの質問をすることができる。ユーザの現在の位置と周囲環境の温度に基づいて、デジタル装置は「室温は８０度です。」と応答することができる。ユーザはまた、例えば、「エアコンをつけてください。」と陳述して、タスクの実行を要求することもできる。応答として、ホームアシスタントは、「はい、すぐに」という音声出力を生成することで、要求を確認したことをユーザに知らせてもよいし、次に、エアコンの所定の制御ＡＰＩを介して、部屋のエアコンをつける。ホームアシスタントと対話して情報を要求したり、さまざまなタスクを実行したりする方式は他にもたくさんある。口頭での応答とプログラムされた動作の実行に加えて、ホームアシスタントは、他の視覚的またはオーディオ形態（テキスト、アラート、音楽、ビデオ、アニメーションなど）で応答を提供することもできる。
【００１７】
図１に示されるように、いくつかの実施例において、デジタルアシスタントシステムは、クライアントサーバモデルによって実現されることができる。デジタルアシスタントシステムは、ユーザ装置（１０４ａおよび１０４ｂなど）で実行されるクライアント側部分（１０２ａおよび１０２ｂなど）（以下の「デジタルアシスタント（ＤＡ）クライアント１０２」）、およびサーバシステム１０８で実行されるサーバ側部分１０６（以下の「デジタルアシスタント（ＤＡ）サーバ１０６」）を備える。ＤＡクライアント１０２は、１つまたは複数のネットワーク１１０を介して、ＤＡサーバ１０６と通信する。ＤＡクライアント１０２は、ユーザ向けの入力および出力処理、およびＤＡサーバ１０６との通信などのクライアント側機能を提供する。ＤＡサーバ１０６は、任意の数のＤＡクライアント１０２のためのサーバ側機能を提供し、各ＤＡクライアント１０２は、対応するユーザ装置１０４（ユーザ装置ユーザ装置または電子装置とも呼ばれる）に配置される。
いくつかの実施例において、ＤＡサーバ１０６は、クライアント向けのＩ／Ｏ（入力／出力）インターフェース１１２と、１つまたは複数の処理モジュール１１４と、データおよびモデル１１６と、外部サービスへのＩ／Ｏインターフェース１１８とを備える。クライアント向けのＩ／Ｏインターフェースは、デジタルアシスタントサーバ１０６のクライアント向けの入力および出力処理を容易にする。１つまたは複数の処理モジュール１１４は、データおよびモデル１１６を利用して、自然言語入力に基づいてユーザ意図を推定し、推定されたユーザ意図に基づいてタスクを実行する。いくつかの実施例において、ＤＡサーバ１０６は、１つ（複数）のネットワーク１１０を介して、複数の外部サービス１２０（例えば、１つ（複数）のナビサービス、１つ（複数）のメッセージングサービス、１つ（複数）の情報サービス、１つ（複数）のカレンダーサービス、１つ（複数）の家電制御サービスなど）と通信することで、タスクを完了または情報を取得する。外部サービスへのＩ／Ｏインターフェース１１８は、このような通信を容易にする。
【００１８】
ユーザ装置１０４は、ホーム制御センター装置、ハンドヘルドコンピュータ、携帯情報端末（ＰＤＡ）、タブレットコンピュータ、ラップトップコンピュータ、デスクトップコンピュータ、携帯電話、スマートフォン、拡張汎用パケット無線サービス（ＥＧＰＲＳ）携帯電話、メディアプレーヤ、ナビゲーション装置、ゲーム機、テレビ、リモコン、またはこれらのデータ処理装置の任意の２つ以上の組み合わせ、または他の適切なデータ処理装置の組み合わせを含んでもよいが、これらに限定されない。ユーザ装置１０４に関するさらなる詳細は、図２に示される例示的なユーザ装置１０４の参照によって提供される。
１つ（複数）のネットワーク１１０は、ローカルエリアネットワーク（ＬＡＮ）およびインターネットなどのワイドエリアネットワーク（ＷＡＮ）を含んでもよい。１つ（複数）のネットワーク１１０は、イーサネット、汎用シリアルバス（ＵＳＢ）、ファイヤワイヤ（ＦＩＲＥＷＩＲＥ）、グローバル移動通信システム（ＧＳＭ）、拡張データＧＳＭ環境（ＥＤＧＥ）、符号分割多元接続（ＣＤＭＡ）、時分割多元接続（ＴＤＭＡ）、ブルートゥース（ＢＴ）、Ｗｉ−Ｆｉ、ＶｏＩＰ（Ｖｏｉｃｅ  ｏｖｅｒ  Ｉｎｔｅｒｎｅｔ  Ｐｒｏｔｏｃｏｌ）、Ｗｉ−ＭＡＸなどの有線または無線プロトコル、または任意の他の適切な通信プロトコルを含む任意の既知のネットワークプロトコルを使用して実現することができる。
サーバシステム１０８は、少なくとも１つのデータ処理機器および／またはコンピュータ分散ネットワークで実施することができる。いくつかの実施例において、サーバシステム１０８はまた、サーバシステム１０８の基盤となるコンピューティングリソースおよび／またはインフラストラクチャリソースを提供するために、サードパーティーサービスプロバイダ（サードパーティクラウドサービスプロバイダ（ｔｈｉｒｄ−ｐａｒｔｙ  ｃｌｏｕｄ  ｓｅｒｖｉｃｅ  ｐｒｏｖｉｄｅｒｓ）など）の様々なバーチャル装置および／またはサービスを使用する。
【００１９】
図１に示されるデジタルアシスタントシステムは、クライアント側部分（ＤＡクライアント１０２など）およびサーバ側部分（ＤＡサーバ１０６など）の両方を含むが、いくつかの実施例では、デジタルアシスタントシステムは、サーバ側部分（ＤＡサーバ１０６）のみを指す。いくつかの実施例において、デジタルアシスタントの機能は、ユーザ装置にインストールされた独立したアプリケーションとして実現することができる。さらに、デジタルアシスタントのクライアント部分とサーバ部分との間の機能の分割は、異なる実施例では異なる可能性がある。例えば、いくつかの実施例において、ＤＡクライアント１０２は、ユーザ向けの入力および出力処理機能のみを提供し、デジタルアシスタントの他のすべての機能をＤＡサーバに委任するシン・クライアント（ｔｈｉｎ−ｃｌｉｅｎｔ）である。いくつかの実施例において、ＤＡクライアント１０２は、ＤＡサーバ１０６の１つまたは複数の機能を実行または支援するように構成される。
【００２０】
図２は、いくつかの実施例によるユーザ装置１０４のブロック図である。ユーザ装置１０４は、メモリインターフェース２０２と、１つまたは複数のプロセッサ２０４と、周辺機器インターフェース２０６とを備える。ユーザ装置１０４の各コンポーネントは、１つまたは複数の通信バスまたは信号線によって結合される。ユーザ装置１０４は、様々なセンサ、サブシステム、および周辺機器インターフェース２０６に結合された周辺装置を備える。センサ、サブシステム、および周辺装置は、情報収集および／またはユーザ装置１０４の様々な機能を容易にする。
【００２１】
いくつかの実施例において、ユーザ装置１０４は、１つまたは複数の通信機能を提供する有線および／または無線通信サブシステム２２４を備える。通信サブシステム２２４は、通常、様々な通信ポート、無線周波数受信機および送信機、および／または光学（赤外線など）受信機および送信機を含む。
【００２２】
いくつかの実施例において、ユーザ装置１０４は、音声対応機能（例えば、音声認識、音声複製、デジタル録音、および電話機能など）を容易にするためのオーディオサブシステム２２６を備え、当該オーディオサブシステム２２６は、１つまたは複数のスピーカ２２８またはおよび１つまたは複数のマイクロホン２３０に結合される。いくつかの実施例において、オーディオサブシステム２２６は、音声トリガシステム２１６に結合される。いくつかの実施例において、音声トリガシステム２１６および／またはオーディオサブシステム２２６は、サウンド入力を受信および／または分析するための、例えば、１つまたは複数のアナログ−デジタル変換器、デジタル信号プロセッサ（ＤＳＰ）、サウンド検出器、メモリバッファ、コーデックなどの低電力オーディオ回路および／またはプログラムを含む（即ち、ハードウェアおよび／またはソフトウェアを含む）。いくつかの実施例において、低電力オーディオ回路（独立した低電力オーディオ回路、またはユーザ装置１０４の他のコンポーネントに加えた低電力オーディオ回路）は、音声ベースのデジタルまたは他の音声ベースのサービスなどの音声（またはサウンド）トリガ機能を、ユーザ装置１０４の１つまたは複数の態様に提供する。いくつかの実施例において、低電力オーディオ回路は、ユーザ装置１０４の他のコンポーネント（１つまたは複数のプロセッサ２０４、Ｉ／Ｏサブシステム２４０、メモリ２５０など）がシャットダウンされているとき、および／またはスタンバイモードにあるときでも、音声トリガ機能を提供することができる。いくつかの実施例において、音声トリガシステム２１６は、話者認識システムと対話または話者認識システムを含み、当該話者認識システムは、デジタルアシスタントの話者固有の音声トリガ機能を容易にする。
【００２３】
いくつかの実施例において、Ｉ／Ｏサブシステム２４０は、周辺機器インターフェース２０６にも結合される。Ｉ／Ｏサブシステム２４０は、様々な入力および出力装置（例えば、タッチスクリーンディスプレイ、タッチパッド、キーボード、赤外線ポート、ＵＳＢポート、および／またはスタイラスなどのポインタ装置）のために使用される入力および出力コントローラを含む。
【００２４】
メモリインターフェース２０２は、メモリ２５０に結合される。いくつかの実施例において、メモリ２５０は、高速ランダムアクセスメモリおよび／または不揮発性メモリ（例えば、１つまたは複数の磁気ディスクメモリ、１つまたは複数のフラッシュメモリ、１つまたは複数の光学メモリ、および／または他の不揮発性固体メモリなど）などの非一時的なコンピュータ読み取り可能な媒体を含む。
【００２５】
いくつかの実施例において、メモリ２５０は、操作システム２５２、通信モジュール２５４、グラフィカル・ユーザ・インターフェース・モジュール２５６、センサ処理モジュール２５８、音声入力処理モジュール２６０、アプリケーション２６２、およびそれらのサブセットまたはスーパーセットを記憶する。操作システム２５２は、基本的なシステムサービスを処理するための、およびハードウェア依存のタスクを実行するための命令を含む。通信モジュール２５４は、１つまたは複数の追加装置、１つまたは複数のコンピュータおよび／または１つまたは複数のサーバとの通信を容易にする。グラフィカル・ユーザ・インターフェース・モジュール２５６は、グラフィカル・ユーザ・インターフェース処理を容易にする。センサ処理モジュール２５８は、センサ関連の処理および機能（例えば、１つまたは複数のマイクロホン２２８で受信された音声入力の処理）を容易にする。音声入力処理モジュール２６０は、音声入力処理プロセスおよび機能を容易にする。アプリケーション２６２は、電子メッセージング、Ｗｅｂブラウジング、メディア処理、ナビゲーション、家電制御および／または他の処理および機能などのユーザアプリケーションの様々な機能を容易にする。いくつかの実施例において、ユーザ装置１０４は、メモリ２５０で１つまたは複数のソフトウェアアプリケーションを記憶し、各ソフトウェアアプリケーションのそれぞれは、複数の外部サービスプロバイダの少なくとも１つに関連付けられる。
【００２６】
上記のように、いくつかの実施例において、メモリ２５０はまた、クライアント側のデジタルアシスタント命令を記憶（例えば、デジタルアシスタントクライアントモジュール２６４に記憶する）、および様々なユーザデータ２６６（例えば、ユーザスピーチサンプル、ユーザボイスプリント、ユーザ固有の語彙データ、選好データ、および／またはユーザの電子アドレス帳や連絡先リスト、ＴｏＤｏリスト、買い物リスト、家電製品に対するユーザの選好などの他のデータ）を記憶することによって、デジタルアシスタントのクライアント側の機能を提供する。
【００２７】
様々な実施例において、デジタルアシスタントクライアントモジュール２６４は、ユーザ装置１０４の様々なユーザインターフェース（Ｉ／Ｏサブシステム２４４など）を介して、音声入力、テキスト入力、タッチ入力、および／またはジェスチャ入力を受信することができる。デジタルアシスタントクライアントモジュール２６４はまた、オーディオ、視覚、および／または触覚の形態の出力を提供することができる。例えば、出力は、音声、サウンド、アラート、テキストメッセージ、メニュ、グラフィック、ビデオ、アニメーション、振動、および／または上記の２つまたは２つ以上の組み合わせとして提供することができる。動作中、デジタルアシスタントクライアントモジュール２６４は、通信サブシステム２２４を使用してデジタルアシスタントサーバ（図１のデジタルアシスタントサーバ１０６など）と通信する。
【００２８】
いくつかの実施例において、デジタルアシスタントクライアントモジュール２６４は、様々なセンサ、サブシステムおよび周辺装置を利用して、ユーザ装置１０４の周囲環境から追加情報を収集することによって、ユーザ入力に関連するコンテキストを確立する。いくつかの実施例において、デジタルアシスタントクライアントモジュール２６４は、ユーザ入力に関連するコンテキスト情報またはそのサブセットをデジタルアシスタントサーバ（図１のデジタルアシスタントサーバ１０６など）に提供することにより、ユーザの意図を推定するのに役立つ。
【００２９】
いくつかの実施例において、メモリ２５０は、追加の命令またはより少ない命令を含み得る。さらに、ユーザ装置１０４の様々な機能は、１つまたは複数の信号処理および／または特定用途向け集積回路を含むハードウェアおよび／またはファームウェアで実現することができるため、ユーザ装置１０４は、図２に示されるすべてのモジュールおよびアプリケーション含む必要はない。
【００３０】
図３Ａは、いくつかの実施例による例示的なホームアシスタントシステム３００（デジタルアシスタントとも呼ばれる）のブロック図である。いくつかの実施例において、ホームアシスタントシステム３００は、独立したコンピュータシステムで実現される。いくつかの実施例において、ホームアシスタントシステム３００は、複数のコンピュータに分散される。いくつかの実施例において、例えば、図１に示されるように、ホームアシスタントのモジュールおよび機能の一部は、サーバ部分とクライアント部分に分割され、クライアント部分はユーザ装置（ユーザ装置１０４など）に配置され、１つまたは複数のネットワークを介してサーバ部分（サーバシステム１０８など）と通信する。いくつかの実施例において、ホームアシスタントシステム３００は、図１に示されるサーバシステム１０８（および／またはホームアシスタントサーバ１０６）の実施例である。いくつかの実施例において、ホームアシスタントシステム３００は、ユーザ装置（図１のユーザ装置１０４など）で実現され、それにより、クライアントサーバシステムの必要性を排除する。ホームアシスタントシステム３００は、ホームアシスタントシステムの一例にすぎず、図示されているものよりも多いまたは少ないコンポーネントを有し得、２つ以上のコンポーネントを組み合わせ得、異なるコンポーネント構成または設定を有し得ることに留意されたい。図３Ａ示される様々なコンポーネントは、１つまたは複数の信号処理および／または特定用途向け集積回路を含むハードウェア、ソフトウェア、ファームウェア、またはそれらの組み合わせで実現することができる。
【００３１】
ホームアシスタントシステム３００は、メモリ３０２と、１つまたは複数のプロセッサ３０４と、入力／出力（Ｉ／Ｏ）インターフェース３０６と、ネットワーク通信インターフェース３０８とを備える。これらのコンポーネントは、１つまたは複数の通信バスまたは信号線３１０を介して互いに通信する。
【００３２】
いくつかの実施例において、メモリ３０２は、高速ランダムアクセスメモリおよび／または不揮発性コンピュータ読み取り可能な媒体（例えば、１つまたは複数の磁気ディスクメモリ、１つまたは複数のフラッシュメモリ、１つまたは複数の光学メモリ、および／または他の不揮発性固体メモリなど）などの非一時的なコンピュータ読み取り可能な媒体を含む。
【００３３】
Ｉ／Ｏインターフェース３０６は、ホームアシスタントシステム３００の入力／出力装置３１６（例えば、ディスプレイ、キーボード、タッチスクリーン、マイクロホンなど）をユーザインターフェースモジュール３２２に結合する。Ｉ／Ｏインターフェース３０６は、ユーザインターフェースモジュール３２２と共に、ユーザ入力（例えば、音声入力、キーボード入力、タッチ入力など）を受信し、それに応じてそれらを処理する。いくつかの実施例において、ホームアシスタントが独立したユーザ装置で実現される場合、ホームアシスタントシステム３００は、図２のユーザ装置１０４に関して説明されたコンポーネントおよび通信インターフェース（１つまたは複数のマイクロホン２３０など）のいずれかを含む。いくつかの実施例において、ホームアシスタントシステム３００は、ホームアシスタントの実現方式におけるサーバ部分を表し、ユーザ装置（図２のユーザ装置１０４など）に配置されたクライアント側部分を介してユーザと対話する。
【００３４】
いくつかの実施例において、ネットワーク通信インターフェース３０８は、１つ（複数）の有線通信ポート３１２および／または無線送受信回路３１４を含む。１つ（複数）の有線通信ポートは、１つまたは複数の有線インターフェース（例えば、イーサネット、汎用シリアルバス（ＵＳＢ）、ファイヤワイヤ（ＦＩＲＥＷＩＲＥ）など）を介して通信信号を送受信する。無線回路３１４は、通常、通信ネットワークおよび他の通信装置から無線周波数信号および／または光信号を受信し、無線周波数信号および／または光信号を通信ネットワークおよび他の通信装置に送信する。無線通信は、ＧＳＭ、ＥＤＧＥ、ＣＤＭＡ、ＴＤＭＡ、Ｂｌｕｅｔｏｏｔｈ（登録商標）、Ｗｉ−Ｆｉ、ＶｏＩＰ、Ｗｉ−ＭＡＸ、または任意の他の適切な通信プロトコルなどの複数の通信規格、プロトコルおよび技術のいずれかを使用することができる。ネットワーク通信インターフェース３０８は、デジタルアシスタントシステム３００と、ネットワーク（例えば、インターネット、イントラネットおよび／またはセルラ電話ネットワーク、無線ローカルエリアネットワーク（ＬＡＮ）び／またはメトロポリタンエリアネットワーク（ＭＡＮ）などの無線ネットワークなど）との間の通信を可能にする。
【００３５】
いくつかの実施例において、メモリ３０２の非一時的コンピュータ読み取り可能な記憶媒体は、操作システム３１８、通信モジュール３２０、ユーザインターフェースモジュール３２２、１つまたは複数のアプリケーション３２４、デジタルアシスタントモジュール３２６のうちのすべてまたはサブセットを含むプログラム、モジュール、命令およびデータ構造を記憶する。１つまたは複数のプロセッサ３０４は、これらのプログラム、モジュール、命令を実行し、データ構造から／への読み取り／書き込みを行う。
【００３６】
操作システム３１８（例えば、Ｄａｒｗｉｎ、ＲＴＸＣ、ＬＩＮＵＸ、ＵＮＩＸ、ＯＳ  Ｘ、ｉＯＳ、ＷＩＮＤＯＷＳ、またはＶｘＷｏｒｋｓなどの組み込み操作システムなど）は、一般的なシステムタスク（例えば、メモリ管理、記憶装置制御、電源管理など）を制御および管理するための様々なソフトウェアコンポーネントおよび／またはドライバを含み、さまざまなハードウェア、ファームウェア、ソフトウェアコンポーネント間の通信を容易にする。
【００３７】
通信モジュール３２０は、ネットワークアシスタントインターフェース３００を介してホームアシスタントシステム３００と他の装置との間の通信を容易にする。例えば、通信モジュール３２０は、図２に示される装置１０４の通信モジュール２５４と通信することができる。通信モジュール３２０はまた、無線回路３１４および／または有線通信ポート３１２によって受信されたデータを処理するための様々なソフトウェアコンポーネントを含む。
【００３８】
いくつかの実施例において、ユーザインターフェースモジュール３２２は、Ｉ／Ｏインターフェース３０６を介してユーザからのコマンドおよび／または入力を受信し、ディスプレイにユーザインターフェースオブジェクトを提供する。
【００３９】
アプリケーション３２４は、１つまたは複数のプロセッサ３０４によって実行されるように構成されたプログラムおよび／またはモジュールを含む。例えば、デジタルアシスタントシステムが独立したユーザ装置に実現される場合、アプリケーション３２４は、ホームコントロールセンタ、ゲーム、カレンダアプリケーション、ナビゲーションアプリケーションまたはメールアプリケーションなどのユーザアプリケーションを含み得る。例えば、ホームアシスタントシステム３００がサーバファームに実現される場合、アプリケーション３２４は、リソース管理アプリケーション、診断アプリケーション、またはスケジューリングアプリケーションを含み得る。
【００４０】
メモリ３０２はさらに、ホームアシスタントモジュール（またはホームアシスタントのサーバ部分）３２６を記憶する。いくつかの実施例において、ホームアシスタントモジュール３２６は、入力／出力処理モジュール３２８、音声テキスト変換（ＳＴＴ）処理モジュール３３０、自然言語処理モジュール３３２、対話フロー処理モジュール３３４、タスクフロー処理モジュール３３６、サービス処理モジュール３３８、および話者認識モジュール３４０などのサブモジュールを含み、またはこれらのサブモジュールのサブセットまたはスーパーセットを含む。これらの各処理モジュールは、オントロジ（ｏｎｔｏｌｏｇｙ）３６０、語彙インデックス３４４、ユーザデータ３４８、タスクフローモデル３５４、サービスモデル３５６、話者音声モデル３５８などのホームアシスタント３２６のデータおよびモデルの１つまたは複数にアクセスでき、またはこれらのデータおよびモデルのサブセットまたはスーパーセットにアクセスできる。
【００４１】
いくつかの実施例において、処理モジュール（例えば、入力／出力処理モジュール３２８、話者認識モジュール３４０、ＳＴＴ処理モジュール３３０、自然言語処理モジュール３３２、対話フロー処理モジュール３３４、タスクフロー処理モジュール３３６、および／またはサービス処理モジュール３３８など）、データ、デジタルアシスタントモジュール３２６に実現されたモデルを使用することにより、ホームアシスタントシステム３００は、ユーザから受信した自然言語入力のユーザ意図を識別すること、ユーザの意図を充分に推定するために必要な情報を積極的に引き出して取得すること（例えば、単語、名称、意図の曖昧さを排除するなど）、推定された意図を実現するためのタスクフローを決定すること、および当該タスクフロを実行して推定された意図を実現することのうちの少なくとも一部を実行する。いくつかの実施例において、ホームアシスタントは、さまざまな理由でユーザに満足のいく応答を提供できなかった場合にも、適切な動作を実行する。
【００４２】
図３Ｂに示されるように、いくつかの実施例において、Ｉ／Ｏ処理モジュール３２８は、図３ＡのＩ／Ｏ装置３１６を介してユーザと対話、または図３Ａのネットワーク通信インターフェース３０８を介してユーザ装置（図１のユーザ装置１０４など）と対話することによって、ユーザ入力（音声入力など）を取得し、ユーザ入力に対する応答を提供する。代替的に、Ｉ／Ｏ処理モジュール３２８は、ユーザ入力の受信とともに、またはその直後に、ユーザ装置からのユーザ入力に関連するコンテキスト情報を取得する。コンテキスト情報は、ユーザ固有のデータ、語彙および／またはユーザ入力に関連する選好を含む。いくつかの実施例において、コンテキスト情報はさらに、ユーザ要求を受信したときの装置（図１のユーザ装置１０４など）のソフトウェアおよびハードウェア状態、および／またはユーザ要求を受信したときのユーザの周囲環境に関連する情報を含む。いくつかの実施例において、Ｉ／Ｏ処理モジュール３２８はまた、ユーザ要求に関するフォローアップ質問をユーザに送信し、ユーザからユーザ要求に関する回答を受信する。いくつかの実施例において、Ｉ／Ｏ処理モジュール３２８がユーザ要求を受信し、且つ当該ユーザ要求に音声入力が含まれた場合、Ｉ／Ｏ処理モジュール３２８は、音声入力を話者認識モジュール３４０に転送して話者を認識させ、その後、音声テキスト変換（ＳＴＴ）処理モジュール３３０に転送して音声からテキストに変換させる。いくつかの実施例において、音声からテキストへの変換を実行するために、話者認識結果に基づいて、個人固有の音声からテキストへの変換モデルを選択する。
【００４３】
いくつかの実施例において、音声からテキストへの変換処理モジュール３３０は、Ｉ／Ｏ処理モジュール３２８または話者認識モジュール３４０を介して音声入力を受信する（例えば、音声記録中で取り込んだユーザの音声）。いくつかの実施例において、音声からテキストへの変換処理モジュール３３０は、様々な音響モデルおよび言語モデルを使用して、音声入力を音素シーケンスとして認識し、最終的には１つまたは複数の言語で書いた単語またはトークン（ｔｏｋｅｎ）のシーケンスとして認識する。音声からテキストへの変換処理モジュール３３０は、任意の適切な音声認識技術、音響モデル、および言語モデル（隠れマルコフモデル（ＨＭＭ）、動的時間ワーピング（ＤＴＷ）ベースの音声認識、および他の統計および／または分析技術など）を使用して実現できる。いくつかの実施例において、音声からテキストへの処理は、サードパーティのサービスによって、またはユーザの装置で少なくとも部分的に実行することができる。音声からテキストへの変換処理モジュール３３０は、音声からテキストへの処理結果（単語シーケンスまたはトークンシーケンスなど）を取得すると、意図推定のためにその結果を自然言語処理モジュール３３２に渡す。
【００４４】
ホームアシスタント３２６の自然言語処理モジュール３３２（「自然言語プロセッサ」）は、音声からテキストへの変換処理モジュール３３０によって生成された単語シーケンスまたはトークン（「トークンシーケンス」）を取り、トークンシーケンスを、デジタルアシスタントによって認識された１つまたは複数の「実行可能な意図」に関連付けようとする。ここで使用される「実行可能な意図」は、デジタルアシスタント３２６および／またはデジタルアシスタントシステム３００（図３Ａ）によって実行され得るタスクを表し、タスクフローモデル３５４に実現された関連するタスクフローを有する。当該関連するタスクフローは、デジタルアシスタントシステム３００がタスクを実行するために実行する一連のプログラムされた動作およびステップである。デジタルアシスタントシステムの能力の範囲は、タスクフローモデル３５４に実現および記憶されたタスクフロの数とタイプ、つまり、デジタルアシスタントが実行する「実行可能な意図」の数とタイプに依存する。しかしながら、デジタルアシスタントシステム３００の有効性は、自然言語で表現されたユーザ要求から正しい「実行可能な意図」を推定するデジタルアシスタントシステムの能力にも依存する。
【００４５】
いくつかの実施例において、音声からテキストへの変換処理モジュール３３０から取得した単語シーケンスまたはトークンシーケンスに加えて、自然言語プロセッサ３３２は、ユーザ要求と関連するコンテキスト情報（例えば、Ｉ／Ｏ処理モジュール３２８からの情報）も受信する。代替的に、自然言語プロセッサ３３２は、コンテキスト情報を使用して、音声からテキストへの変換処理モジュール３３０から受信したトークンシーケンスに含まれる情報を明確化、補足、および／またはさらに定義する。例えば、当該コンテキスト情報は、ユーザ選好、ユーザ装置のハードウェアおよび／またはソフトウェア状態、ユーザ要求の前、最中、または直後に収集されたセンサ情報、デジタルアシスタントとユーザの間の以前の対話（ダイアローグなど）などを含む。
【００４６】
いくつかの実施例において、自然言語処理は、オントロジ３６０に基づく。オントロジ３６０は、複数のノードを含む階層構造（ｈｉｅｒａｒｃｈｉｃａｌ  ｓｔｒｕｃｔｕｒｅ）であり、各ノードは、「実行可能な意図」、または「実行可能な意図」の１つまたは複数の「プロパティ」、または他の「プロパティ」を表す。上記のように、「実行可能な意図」は、デジタルアシスタントシステム３００が実行できるタスク（例えば、「実行可能な」タスクまたは実行できるタスク）を表す。「プロパティ」は、実行可能な意図または別のプロパティのサブ態様に関連するパラメータを表す。オントロジ３６０において、実行可能な意図ノードとプロパティノードの間のリンケージは、プロパティノードによって表されるパラメータが、実行可能な意図ノードよって表されるタスクにどのように関係するかを定義する。
【００４７】
いくつかの実施例において、オントロジ３６０は、実行可能な意図ノードおよびプロパティノードで構成される。オントロジ３６０において、各実行可能な意図ノードは、直接または１つまたは複数の中間プロパティノードを介してつまたは複数のプロパティノードにリンクされる。同様に、各プロパティノードは、直接または１つまたは複数の中間プロパティノードを介して、１つまたは複数の実行可能な意図ノードにリンクされる。
【００４８】
実行可能な意図ノードは、リンクされたコンセプトノードとともに、「ドメイン」と呼ばれできる。現在の議論では、各ドメインはそれぞれの実行可能な意図に関連し、特定の実行可能な意図に関連するノードのグループ（およびノード間の関係）を指す。
【００４９】
いくつかの実施例において、オントロジ３６０は、デジタルアシスタントが理解し、それに対応する動作を実行できるすべてのドメインを含む（したがって、実行可能な意図も含み得る）。いくつかの実施例において、オントロジ３６０は、ドメインまたはノードを追加または削除することによって、またはオントロジ３６０内のノード間の関係を変更することなどによって変更することができる。
【００５０】
いくつかの実施例において、複数の関連する実行可能な意図に関連するノードは、オントロジ３６０の「スーパードメイン」の下にクラスタ化されることができる。例えば、「旅行」スーパードメインは、旅行に関連するプロパティノードと実行可能な意図ノードのクラスタを含んでもよい。旅行に関連する実行可能な意図ノードは、「航空会社の予約」、「ホテルの予約」、「レンタカー」、「ルートの取得」、「アトラクションを探す」などを含み得る。同じスーパードメイン（「旅行」スーパードメインなど）の実行可能な意図ノードは、多くの共通のプロパティノードを有することができる。例えば、「航空会社の予約」、「ホテルの予約」、「レンタカ」、「ルートの取得」、「アトラクションを探す」などの実行可能な意図ノードは、「出発地」、「目的地」、「出発日時」、「到着日時」および「パーティーサイズ」のうちの１つまたは複数のプロパティノードを共有できる。
【００５１】
いくつかの実施例において、オントロジ３６０内の各ノードは、単語および／またはフレーズのセットに関連し、当該単語および／またはフレーズのセットは、ノードによって表されるプロパティまたは実行可能な意図に関連する。各ノードに関連する単語および／またはフレーズのセットは、当該ノードに関連するいわゆる「語彙」である。各ノードと関連する単語および／またはフレーズのセットは、語彙インデックス３４４（図３Ｂ）に記憶でき、当該語彙インデックスは、ノードによって表されるプロパティまたは実行可能な意図に関連する。例えば、図３Ｂに戻って、「レストラン」のプロパティのノードに関連する語彙は、「食べ物」、「飲み物」、「料理」、「空腹」、「食べる」、「ピザ」、「ファーストフード」、「食事」などの単語を含み得る。別の例として、「電話をかける」という実行可能な意図ノードと関連する語彙は、「呼びかけ」、「電話」、「ダイヤル」、「ベル」、「この番号に電話する」、「…に電話をかける」などの単語およびフレーズを含み得る。代替的に、語彙インデックス３４４は、異なる言語の単語およびフレーズを含む。
【００５２】
いくつかの実施例において、図３Ｂ示される自然言語プロセッサ３３２は、音声からテキストへの変換処理モジュール３３０からのトークンシーケンス（テキスト文字列など）を受信し、トークンシーケンス内の単語に関連するノードを決定する。いくつかの実施例において、トークンシーケンスにおける単語またはフレーズが、オントロジ３６０における１つまたは複数のノードと関連すると判断した場合（語彙インデックス３４４を介して判断する）、当該単語またはフレーズは、これらのノードを「トリガ」または「アクティブ化」する。複数のノードが「トリガ」されると、アクティブ化されたノードの数および／または相対的な重要性に基づいて、自然言語プロセッサ３３２は、ユーザがデジタルアシスタントに意図したタスク（またはタスクタイプ）として実行可能な意図の１つを選択する。いくつかの実施例において、最も「トリガされた」ノードを有するドメインを選択する。いくつかの実施例において、最高の信頼値（例えば、さまざまなトリガされたノードの相対的な重要度に基づく信頼値など）を有するドメインを選択する。いくつかの実施例において、トリガされたノードの数と重要度の組み合わせに基づいてドメインを選択する。いくつかの実施例において、ホームアシスタントシステム３００が、以前にユーザーからの同様の要求を正しく解釈したかどうかなど、ノードを選択する際に他の要因も考慮する。
【００５３】
いくつかの実施例において、デジタルアシスタントシステム３００はまた、特定のエンティティの名前を語彙インデックス３４４に記憶し、これによりユーザ要求でこれらの名前の１つを検出した場合、自然言語プロセッサ３３２は、当該名前がオントロジ内のプロパティまたはサブプロパティの特定の実例を指すことを認識することができる。いくつかの実施例において、特定のエンティティの名前は、企業、レストラン、人々、映画などの名前である。いくつかの実施例において、デジタルアシスタントシステム３００は、他のデータソース（例えば、ユーザのアドレス帳または連絡先リスト、映画データベース、ミュージシャンデータベース、および／またはレストランデータベースなど）からの特定のエンティティ名称を検索および認識することができる。いくつかの実施例において、自然言語プロセッサ３３２が、トークンシーケンスにおける単語が特定のエンティティの名前（例えば、ユーザのアドレス帳または連絡先リスト内の名前など）であることを識別した場合、オントロジでユーザ要求に対して実行可能な意図を選択する際に追加の意味を与える。いくつかの実施例において、デジタルアシスタントのトリガフレーズは、名前付きエンティティとして記憶されることにより、ユーザの音声入力に当該フレーズが存在する場合、当該フレーズを識別して特定の意味を与えることができる。
【００５４】
ユーザデータ３４８は、ユーザ固有の語彙、ユーザ選好、ユーザアドレス、ユーザのデフォルトおよび第２言語、ユーザの連絡先リスト、および各ユーザの他の短期または長期情報などのユーザ固有の情報を含む。自然言語プロセッサ３３２は、ユーザ固有の情報を使用して、ユーザ入力に含まれる情報を補足して、ユーザの意図をさらに定義することができる。例えば、「私の誕生日パーティに友達を招待する」というユーザ要求の場合、自然言語プロセッサ３３２は、ユーザデータ３４８にアクセスして、「友達」が誰で、いつ、どこで「誕生日パーティ」を開催するかを決定することができ、ユーザにそのような情報を彼／彼女の要求で明示的に提供するように要求するのではない。いくつかの実施例において、ユーザデータは、話者認識トレーニングのためのユーザ固有の声紋または音声サンプルも含む。
【００５５】
自然言語プロセッサ３３２がユーザ要求基づいて実行可能な意図（またはドメイン）を識別した場合、自然言語プロセッサ３３２は、構造化クエリを生成することによって、識別された実行可能な意図を表す。いくつかの実施例において、構造化クエリは、実行可能な意図のドメインの１つまたは複数のノードのパラメータを含み、前記パラメータの少なくとも一部は、ユーザ要求で指定された特定の情報および要件で充填される。例えば、ユーザは、「７時に寿司屋での夕食の予約をしてください」と言った場合、自然言語プロセッサ３３２は、ユーザ入力に基づいて、「レストラン予約」であるという実行可能な意図を正しく識別することができる。オントロジによれば、「レストラン予約」ドメインの構造化クエリは、｛料理｝、｛時間｝、｛日付｝、｛パーティーサイズ｝などのパラメータを含み得る。ユーザ音声に含まれる情報に基づいて、自然言語プロセッサ３３２は、レストラン予約ドメインの部分構造化クエリを生成することができ、部分構造化クエリは、パラメータ｛料理＝「寿司」｝および｛時間＝「午後７時」｝を含む。ただし、本実施例では、ユーザの音声に含まれる情報がドメインと関連する構造化クエリを完了するには不十分である。したがって、｛パーティーサイズ｝や｛日付｝などの他の必要なパラメータは、現在利用可能な情報に基づく構造化クエリによって指定することができない。いくつかの実施例において、自然言語プロセッサ３３２は、受信されたコンテキスト情報を利用して、構造化クエリのいくつかのパラメータを充填する。例えば、ユーザ要求が「近くの」寿司屋である場合、自然言語プロセッサ３３２は、ユーザ装置１０４からのＧＰＳ座標を、構造化クエリの｛場所｝パラメータに充填することができる。
【００５６】
いくつかの実施例において、自然言語プロセッサ３３２は、構造化クエリ（完了したパラメータをすべて含む）をタスクフロー処理モジュール３３６（「タスクフロープロセッサ」）に渡す。タスクフロープロセッサ３３６は、自然言語プロセッサ３３２から構造化クエリを受信すること、構造化クエリを完了すること、およびユーザの最終的な要求を「完了する」ために必要な動作を実行することのうちの１つまたは複数を実行するように構成される。いくつかの実施例において、これらのタスクを完了するために必要な様々な手順は、タスクフローモデル３５４によって提供される。いくつかの実施例において、タスクフローモデル３５４は、ユーザから追加情報を取得する手順、および実行可能な意図に関連する動作を実行するタスクフローを含む。
【００５７】
上記のように、構造化クエリを完了するために、タスクフロープロセッサ３３６は、ユーザとの追加の対話を開始して、追加情報を取得し、および／または潜在的に曖昧な音声を排除する必要がある場合がある。このような対話が必要な場合、タスクフロープロセッサ３３６は、対話処理モジュール３３４（「対話プロセッサ」）を呼び出して、ユーザとの対話を行う。いくつかの実施例において、対話処理モジュール３３４は、追加情報をユーザに要求する方法（および／または時期）を決定し、ユーザ応答を受信して処理する。いくつかの実施例において、Ｉ／Ｏ処理モジュール３２８を介してユーザへの質問を提供し、ユーザからの回答を受信する。例えば、対話処理モジュール３３４は、オーディオおよび／または視覚出力を介してユーザに対話出力を提示し、音声または物理的な（タッチジェスチャなど）応答を介してユーザの入力を受信する。上記の例を続けると、タスクフロー処理モジュール３３６が対話フロー処理モジュール３３４を呼び出して、ドメイン「レストラン予約」と関連する構造化クエリの「パーティーサイズ」および「日付」情報を決定した場合、対話フロー処理モジュール３３４は、「何名様ですか？」および「どの日に？」などの質問を生成してユーザに渡す。ユーザからの回答を受信すると、対話処理モジュール３３４は、欠けている情報を構造化クエリに充填し、または情報をタスクフロープロセッサ３３６に渡して、構造化クエリからの欠けている情報を完成させる。
【００５８】
タスクフロープロセッサ３３６が実行可能な意図的構造化クエリを完了すると、タスクフロープロセッサ３３６は、実行可能な意図と関連する最終的なタスクを継続して実行する。したがって、タスクフロープロセッサ３３６は、構造化クエリに含まれる特定のパラメータに従って、タスクフローモデルにおけるステップおよび命令を実行する。例えば、「レストランの予約」の実行可能な意図のタスクフローモデルは、レストランに連絡するためのステップと命令、および実際に特定の時間に特定のパーティーサイズの予約を要求するためのステップと命令を含む。例えば、タスクフロープロセッサ３３６は、｛レストランの予約、レストラン＝ＡＢＣカフェ、日付＝２０１２．３．１２、時間＝午後７時、パーティーサイズ＝５人｝などの構造化クエリを使用して、以下のステップを実行できる。ステップ１において、ＡＢＣカフェのサーバまたはＡＢＣカフェなどの複数のレストランの予約を受信するように構成されたレストラン予約システムに登録する。ステップ２において、Ｗｅｂサイトのフォームに日付、時間、およびパーティーのサイズの情報を入力する。ステップ３において、フォームを送信する。ステップ４において、ユーザーのカレンダに予約のカレンダーエントリを作成する。以下でより詳細に説明する別の例では、タスクフロープロセッサ３３６は、例えば、写真モジュール１３２と併せて、音声入力に応答して、デジタル写真のタグ付けまたは検索に関連するステップおよび命令を実行する。
いくつかの実施例において、タスクフロープロセッサ３３６は、サービス処理モジュール３３８（「サービスプロセッサ」）の支援を利用して、ユーザ入力で要求されたタスクを完了するか、ユーザ入力で要求された情報化回答を提供する。例えば、サービスプロセッサ３３８は、タスクフロープロセッサ３３６に代わって、家電製品にコマンドを送信したり、電話をかけたり、カレンダーエントリを設定したり、マップ検索を呼び出したり、ユーザ装置にインストールされている他のユーザアプリケーションを呼び出しまたはそれらと対話したり、サードパーティーサービス（例えば、レストラン予約ポータル、ソーシャルネットワーキングウェブサイトまたはサービス、銀行ポータルなど）を呼び出しまたはそれらと対話したりすることができる。いくつかの実施例において、各サービスに必要なプロトコルおよびアプリケーションプログラミングインターフェース（ＡＰＩ）は、サービスモデル３５６における対応するサービスモデルで指定できる。サービスプロセッサ３３８は、サービスの適切なサービスモデルにアクセスし、サービスモデルによって、サービスが必要とするプロトコルとＡＰＩに従ってサービスの要求を生成する。
【００５９】
いくつかの実施例において、自然言語プロセッサ３３２、対話処理モジュール３３４およびタスクフロープロセッサ３３６は、共同で且つ反復的に使用されて、ユーザの意図を推定および定義し、情報を取得して、ユーザの意図をさらに明確化および洗練し、最後に応答を生成して（例えば、ユーザに出力を提供するか、タスクを完了する）、ユーザの意図を実現する。
【００６０】
いくつかの実施例において、ユーザの要求を満たすために必要なすべてのタスクが実行した後、デジタルアシスタント３２６は、確認応答を作成し、Ｉ／Ｏ処理モジュール３２８を介してユーザに前記応答を送信する。ユーザ要求が情報化回答を求める場合、確認応答は要求された情報をユーザに提示する。いくつかの実施例において、デジタルアシスタントはさらに、デジタルアシスタント３２６によって生成された応答にユーザが満足しているかどうかを示すようにユーザに要求する。
【００６１】
図４Ａおよび図４Ｂは、いくつかの実施例による話者認識に基づいてホームアシスタント制御するための方法およびシステムを示すブロック図である。
【００６２】
いくつかの実施例において、所定のトリガーワードは、ホームアシスタントをアクティブ化またはウェイクアップし、音声コマンドを処理するためにプリセットされた単一のワードまたはフレーズを含む。トリガーワードは、ウェイクアップワードとも呼ばれる。ホームアシスタント装置がユーザからの音声入力を受信した場合、自動音声認識（ＡＳＲ）モジュールは、音声からテキストへの変換モデルを使用して、音声入力をテキスト文字列に転記する。当該テキスト文字列にプリセットされたウェイクアップワードが含まれていることを、ホームアシスタント装置によって検出した場合、装置をウェイクアップし、次の音声コマンドの受信を準備し、および／または当該音声入力を処理して当該音声入力にすでに音声コマンドが含まれているかどうかを判断する。
【００６３】
音声入力を処理するための従来のメカニズムには、以下の問題がある。まず、周囲の環境ノイズと話者のアクセントと声質により、トリガーワードを認識するための信頼度の閾値を低く設定してトリガーワードの感度を上げると、装置は同様の音声やバックグラウンドノイズによって誤ってアクティブ化することがよくある。ただし、トリガーワードを認識するための信頼度の閾値を高く設定して、トリガーワードに対する機器の感度を下げ、認識精度を向上させると、装置は、ユーザが言ったトリガーワードによってウェイクアップしないことがよくある。デフォルトの音声からテキストへの変換モデルは、多くの人々の声と音声パターンに対応しているため、トリガーワードの認識に最適な信頼度閾値を選択することは困難である。一部の研究者は、個々のユーザの音声サンプルを使用して、ユーザ固有の音声からテキストへの変換モデルをトレーニングすることを提案している。ただし、ユーザ自分の音声サンプルのみを使用して、音声からテキストへの変換モデルを構築するために、各ユーザに十分な音声サンプルを提供させることは非現実的である。使用中に音声からテキストへの変換モデルを徐々に再トレーニングすることも、理想的とは言えない。ホームアシスタントは、通常、同じ世帯の複数のユーザによって使用され、すべての音声入力を収集し、それらをトレーニングコーパス追加するが、異なるユーザ別にそれらの音声入力を区別することなく、音声からテキストへの変換モデルの精度は向上しない。代わりに、そのような再トレーニングは、音声からテキストへの変換モデルに入力されたトレーニング資料が競合するため、世帯における音声からテキストへの変換モデルの精度を低下させる可能性がある。したがって、最も適切な音声からテキストへの変換モデルはなしで信頼スコアを調整し、最初に音声入力に対する話者認識を実行せず、ユーザの音声入力を追加して、音声からテキストへの変換モデルを継続的にトレーニングし、世帯のメンバごとに世帯のデフォルトの音声からテキストへの変換モデルにバイアスをかけることは、実際にはうまく機能しない。ホームアシスタント装置は、複数の世帯メンバからの音声入力を受信し、且つ単一の音声からテキストへの変換モデルがすべての世帯に適用されないため、パーソナルハンドヘルド装置のデジタルアシスタントとは少し異なる動作をする。さらに、音声からテキストへの変換モデルを再トレーニングすることは、デフォルトの音声からテキストへの変換モデルに単にバイアスをかけることとは異なる。それぞれのユーザからの少数の音声サンプルに基づいて、音声からテキストへの変換モデルの音響モデルに単にバイアスをかけて、それぞれのユーザに対するユーザ固有の音声からテキストへの変換モデルを生成するのと比較して、再トレーニングは、はるかに時間がかかり、さらに多くのトレーニングサンプルが必要である。
【００６４】
オーディオ入力チャネルを開いたままでトリガーワードを検索しているホームアシスタントを、トリガーワードを使用してアクティブ化することに関する別の一般的な問題は、ホームアシスタントが自分の声によってアクティブ化できることである。問題のあるシナリオは、ホームアシスタント既にアクティブ化されて、システム音声（例えば、プリセットのシミュレートされた人間の声など）を使用して音声出力を出力しているときに、システムの音声出力にトリガーワードが含まれている場合である。この問題を解決する１つの方法は、システムが音声出力を生成するときオーディオ入力チャネルをオフにすることであるか、これは、ホームアシスタントが音声出力を生成しているときに、ホームアシスタントがユーザのコマンドに応答してホームアシスタンを中断することができないことを意味する。
【００６５】
従来のホームアシスタントの別の問題は、同じ世帯の複数のユーザによるホームアシスタントの制御が許可されていることである。ただし、同じ世帯の異なるメンバ全員が、ホームアシスタントを介して制御されるすべての機能と装置にアクセスすることを望まない可能性がある。例えば、世帯の子供は、ホームアシスタントを使用して部屋のエアコンを調整できるが、家のセキュリティシステムは変更できない。別の例では、オフィスの清掃スタッフは、ホームアシスタントを使用してオフィスビルのすべてのライトをオフにすることができるが、プリンタを操作できないようにする必要がある。この問題の解決策の１つは、話者の認識を確立し、音声からテキストへの変換が完了し、ユーザ入力のテキストバージョンで意図の推定を実行してユーザの意図を確認した後、ホームアシスタントに要求したタスクを実行できないようにすることである。ただし、ホームアシスタントの意図推定機能全体を使用してユーザの意図を推定し、その後、ユーザの意図が禁止されたタスクを実行することであると判断することはもったいないことである。したがって、話者を認識し、意図推定機能のサブセットのみを使用して、当該ユーザに許可されている意図を推定する方がより有益である。つまり、ユーザがデジタルアシスタントを介してプリンタを操作することが許可されていない場合、デジタルアシスタントは、ユーザの音声入力のテキストバージョンに対して意図推定を実行するときに、プリンタ操作に関連するドメインをアクティブ化しない。デジタルアシスタントが許可されていないコマンドを受信した場合、許可されていないコマンドを理解できないように応答する。例えば、デジタルアシスタントは「申し訳ありませんが、それはできません」または「申し訳ありませんが、あなたのコマンドを理解していません」と言うことができる。このようにして、意図の推定がより速くなり、ユーザ入力の解析もより速くなる。
【００６６】
本発明において、特に、複数の世帯メンバによってホームアシスタントが使用される場合、上述の問題を解決するなめに、話者認識技術は、デジタルアシスタントシステムに統合される。音声入力の話者が確認された後、デジタルアシスタントシステムは、適切なユーザ固有の動作を実行できる。
【００６７】
いくつかの実施例において、デジタルアシスタントによって使用される自動音声認識モデルは、ユーザごとに事前に記録された音声入力サンプルを使用する世帯登録ユーザの場合に適用する。例えば、登録プロセス中に、デジタルアシスタントの許可された各ユーザは、複数の音声入力サンプルを話す必要があり、当該音声入力サンプルは、個々のユーザごとに音声からテキストへの変換モデルの音響モデルにバイアスをかけ、個々のユーザのユーザ固有の音声からテキストへの変換モデルを生成するために使用する。これらの音声サンプルは、話者認識モデルのトレーニングにも使用され、当該話者認識モデルは、世帯内の異なるユーザからの音声入力を区別し、世帯のユーザとゲストユーザを区別することができる。いくつかの実施例において、話者認識モデルを使用してデジタルアシスタントの音声を識別するために、デジタルアシスタントシステムの音声を事前に記憶および処理する。いくつかの実施例において、各世帯メンバは、デジタルアシスタント用の固有の模擬音声を選択することができ、デジタルアシスタントの各模擬音声は、デジタルアシスタントの音声を識別するために記憶および使用される。デジタルアシスタントが受信した音声入力が、世帯メンバがデジタルアシスタント用に選択した模擬音声のいずれかに一致する場合、デジタルアシスタントは、音声入力で識別されたトリガーワードを無視し、当該音声入力に対応する意図推定、または当該音声の直後に受信した音声入力に対応する意図推定を実行しない。いくつかの実施例において、家に互いに近く配置された複数のデジタルアシスタントがあり、各デジタルアシスタントの模擬音声が記憶され、１つのデジタルアシスタントのオーディオ入力チャネルで受信した音声入力が、家の任意のデジタルアシスタントの模擬音声と一致する場合、当該音声入力によって、デジタルアシスタントがアクティブ化されたり、意図推定がトリガされたりしない。いくつかの実施例において、各デジタルアシスタントの各模擬音声は、トリガーワードを検出するために、対応するユーザ固有およびアシスタント固有の音響モデルを有し、当該トリガーワードは、異なる模擬音声における異なるデジタルアシスタントからの音声サンプルの小さなセットを使用して生成されたトリガーワードである。いくつかの実施例において、デジタルアシスタントまたはそのサーバは、ウェイクアップワード検出のために使用されるシステム音声のブラックリストを維持する。これにより、デジタルシステムの意図推定プロセスが、デジタルアシスタントの自身の音声出力または隣接するデジタルアシスタントの音声出力によってトリガーされるのを回避することに役立つ。
【００６８】
いくつかの実施例において、音声入力を受信した後、話者認識プロセスが最初に実行される。話者が世帯の登録ユーザの１人として認識された場合、デジタルアシスタントまたはそのサーバは、認識された話者に関連する音声からテキストへの変換モデルを使用して音声認識を実行する。これにより、認識精度が向上する。認識精度が高いと、自動音声認識プロセスで、ウェイクアップワードを検出するための信頼値を増やす余地がより多くなる。
【００６９】
いくつかの実施例において、オーディオ入力が検出されると、オーディオ入力に対して話者認識を実行し、オーディオ入力が、世帯の登録された話者のいずれとも一致しない場合、オーディオ入力が、バックグラウンドノイズであると扱われ、捨てられる。いくつかの実施例において、ユーザ固有の音響モデルを使用する場合、バックグラウンドノイズと音声を認識するための閾値は、世帯全体が一般的なまたはデフォルトの音響モデルを使用する場合よりも高い。
【００７０】
いくつかの実施例において、デジタルアシスタントシステムは、ルックアップテーブルを参照して、音声入力した認識されたユーザが、デジタルアシスタントが実行できるすべての機能を操作またはアクセスできるかどうかを判断する。ユーザがすべての機能のサブセットにのみアクセスが許可されているという決定に従って、当該デジタルアシスタントは、当該ユーザがアクセスできるドメインを認識し、ユーザがアクセスできるドメインのみを識別して、ユーザの音声入力のテキストバージョンに対して意図推定を実行する。
いくつかの実施例において、デジタルアシスタントシステムは、各ユーザの個人設定を記憶し、ユーザがデジタルアシスタントを介していくつかの家電機器をオンにしたときに、デフォルト／最後の設定に戻ることができる。
【００７１】
いくつかの実施例において、デジタルアシスタントシステムはさらに、認識されたユーザ過去の使用データに基づいて、彼／彼女にいくつかの提案を行うことができる。
図４Ａを参照すると、いくつかの実施例において、登録段階に、デジタルアシスタントのためにルックアップテーブルを作成する。当該ルックアップテーブルは、デジタルアシスタントを介して制御可能な装置（装置Ｘ、装置Ｙなど）を含む。ホームアシスタントの場合、デジタルアシスタントを介して制御できる装置は、別の部屋のエアコン、家のオーディオシステム、ホームセキュリティシステム、キッチン家電、部屋のライトなどを含むことができる。登録プロセスは進行中である可能性があり、新しい装置は、時間の経過とともにルックアップテーブルに追加できます。いくつかの実施例において、デフォルトで、テーブルに既に登録されている既存のユーザに各新しい装置への許可を与え、新しい装置に登録したユーザは、デジタルアシスタントに、テーブル内の特定のユーザの権限を許可から不許可に変更するように要求できる。いくつかの実施例において、ユーザ登録プロセスを通じて、新しいユーザをルックアップテーブルに追加することができる。ルックアップテーブル内のすべてのユーザは、ユーザーがルックアップテーブル内のすべての装置にアクセスする権限があるかどうかに関係なく、デジタルアシスタントの制御を許可されたユーザである。ルックアップテーブルは、デジタルアシスタントに対する制御が許可されたユーザのホワイトリストとして使用される。デジタルアシスタントがルックアップテーブルに含まれないため、模擬音声は、はデジタルアシスタントをアクティブ化できず、意図推定プロセスを開始できない。
【００７２】
いくつかの実施例において、所定のウェイクアップワードを使用して意図推定プロセスをトリガするためにどのユーザの音声を使用できないかを示すためにユーザブラックリストを作成する。例えば、デジタルアシスタントはユーザのブラックリストに含まれ得、ゲストや子供の音声はブラックリストに含まれることができる。ブラックリストの使用は強力な手段であり、ユーザまたはシステムがブラックリストに含まれた場合、オーディオ音声入力中にトリガーワードが存在する場合に意図推定をトリガしないだけでなく、いくつかの実施例では、音声からテキストへの変換もスキップする。
【００７３】
いくつかの実施例において、登録プロセスで、デジタルアシスタントまたはそのサーバは、現在登録している各ユーザに、いくつかの音声入力サンプルを言うように要求し、当該音声入力サンプルは、デジタルアシスタントまたはそのサーバによって記録および記憶される。デジタルアシスタントまたはそのサーバは、記録した音声入力サンプルを使用して、自動音声認識音響モデルを各登録ユーザに適合させ、各登録ユーザの音声認識のために、ユーザ固有の音響モデルのそれぞれのセットを生成する。
【００７４】
いくつかの実施例において、音声認識モデルのデフォルトの音響モデルを個々の登録ユーザに適合させるための簡単なアプローチは、最初に登録ユーザの記録されたフレーズの音響特徴の平均値を計算することである。次に、音響モデルの話者固有の平均値（ｓｐｅａｋｅｒ−ｓｐｅｃｉｆｉｃ  ｍｅａｎｓ）と話者に依存しない平均値（ｓｐｅａｋｅｒ−ｉｎｄｅｐｅｎｄｅｎｔ  ｍｅａｎｓ）の差を決定する。いくつかの実施例において、音響モデルの話者に依存しない平均値は、デジタルアシスタントシステムによって事前に準備することができる。個々の登録ユーザによる話者固有の違いは、個々の登録ユーザの音声入力の音声認識中に適宜に取り入れられる。
【００７５】
いくつかの実施例において、最尤線形回帰（ＭＬＬＲ）、最大事後確率（ＭＡＰ）および固有音声（Ｅｉｇｅｎｖｏｉｃｅ）などのより洗練されたアプローチを使用することができる。これらの方法に関する参照情報は、ｈｔｔｐｓ：／／ｗｗｗ．ｉｎｆ．ｅｄ．ａｃ．ｕｋ／ｔｅａｃｈｉｎｇ／ｃｏｕｒｓｅｓ／ａｓｒ／２００８−９／ａｓｒ−ａｄａｐｔ−１ｘ２．ｐｄｆ、ｈｔｔｐｓ：／／ｗｉｋｉ．ｉｎｆ．ｅｄ．ａｃ．ｕｋ／ｐｕｂ／ＣＳＴＲ／ＬｉｓｔｅｎＳｅｍｅｓｔｅｒ１＿２００７＿８／ｋｕｈｎ−ｊｕｎｑｕａ−ｅｉｇｅｎｖｏｉｃｅ−ｉｃｓｌｐ１９９８．ｐｄｆで見つけることができる。
【００７６】
いくつかの実施例において、すべての登録ユーザから受信された記録されたフレーズは、話者認識モデルをトレーニングするために使用される。当該話者認識モデルは、簡単にトレーニングでき、軽量であるため、サーバの関与を必要とせずに、話者の側（例えば、ホームアシスタント装置のクライアント側）のローカルで話者認識を実行できる。いくつかの実施例において、話者が認識されると、話者認識情報を、音声入力と共にサーバに送信できる。
【００７７】
いくつかの実施例において、ユーザはトリガーワードを数回言う必要があり、話者認識は、テキスト依存の話者認識プロセスである。ユーザがウェイクアップワードをデジタルアシスタントシステムに言うと、デジタルアシスタントシステムは、トリガーワードの入力音声を事前に記録されたトリガーワードのセットと比較し、最も一致するユーザを決定する。
【００７８】
いくつかの実施例において、テキストに依存しない話者認識プロセスで、音声の全体を使用する。例えば、テキストに依存しない話者認識に関する参照情報は、ｈｔｔｐｓ：／／ｅｎ．ｗｉｋｉｐｅｄｉａ．ｏｒｇ／ｗｉｋｉ／Ｓｐｅａｋｅｒ＿ｒｅｃｏｇｎｉｔｉｏｎで見つけることができる。
【００７９】
図４Ｂを参照すると、いくつかの実施例では、デジタルアシスタントシステムの動作段階において、音声入力は、それぞれ音声認識モジュールおよび話者認識モジュールに送信される。いくつかの実施例において、話者認識モジュールが、当該話者をデジタルアシスタントの制御を許可された登録ユーザとして認識するまで、音声入力は音声認識モジュールに送信されない。
【００８０】
いくつかの実施例において、話者が認識された後、ユーザがユーザのホワイトリストに登録されたユーザの１人であり、ユーザのブラックリストに登録されていないと認識された場合、デジタルアシスタントは、アクティブ化され、意図推定を実行するように準備する。いくつかの実施例において、ユーザがホワイトリストに登録されたユーザの１人であると認識されない場合、またはユーザがユーザのブラックリストにあると認識された場合、意図推定および／または音声からテキストへの変換をスキップする。
【００８１】
いくつかの実施例において、ユーザがアクセスしようとするアシスタント制御の装置へのアクセス許可がない場合、デジタルアシスタントは、ユーザ要求を実行するための動作を実行しない。デジタルアシスタントは、ユーザがアシスタントによって制御される装置へのアクセス許可を持っていると判断した場合、デジタルアシスタントは、ユーザのコマンドに従って、指定された装置で操作を実行し、および／または当該ユーザのデフォルト／最後の設定に戻る。
【００８２】
いくつかの実施例において、認識されたユーザの過去の使用データに基づいて、デジタルアシスタントは、ユーザがアクセスを要求した装置に関する推薦またはリマインダをユーザに提供する。
【００８３】
いくつかの実施例によれば、図５は、音声トリガワードを介して、ホームアシスタントなどのデジタルアシスタントを操作するための方法を表すフローチャートである。代替的に、当該方法は、コンピュータメモリまたは非一時的コンピュータ読み取り可能な記憶媒体（例えば、ユーザ装置１０４のメモリ２５０、デジタルアシスタントシステム３００に関連するメモリ３０２）に記憶され、且つデジタルアシスタントシステムの１つまたは複数のコンピュータシステムにおける１つまたは複数のプロセッサによって実行される命令によって支配される。当該１つまたは複数のコンピュータシステムは、サーバシステム１０８、および／またはユーザ装置１０４−ａを含むが、これらに限定されない。前記コンピュータ読み取り可能な記憶媒体は、磁気ディスクまたは光ディスク記憶装置、固体記憶装置（フラッシュメモリなど）、１つまたは複数の他の不揮発性記憶装置を含み得る。コンピュータ読み取り可能な記憶媒体に記憶されたコンピュータ読み取り可能な命令は、ソースコード、アセンブリ言語コード、オブジェクトコード、１つまたは複数のプロセッサによって解釈される他の命令フォーマットのうちの１つまたは複数を含み得る。各実施例において、各方法のいくつかの操作を組み合わせてもよいし、および／またはいくつかの操作の順番を図に示す順番から変更してもよい。また、いくつかの実施例において、別個の図に示され、かつ／または別個の方法に関連して説明される操作を組み合わせて他の方法を形成してもよく、同じ図に示され、および／または同じ方法に関連して説明される操作を異なる方法として分離してもよい。さらに、いくつかの実施例において、方法における１つまたは複数の動作は、自然言語処理モジュール３３２、対話フロー処理モジュール３３４、オーディオサブシステム２２６、および／またはそれらの任意のサブモジュールなどのモジュールを含むデジタルアシスタントシステム３００および／または電子装置（ユーザ装置１０４など）のモジュールによって実行される。
【００８４】
図５は、いくつかの実施例によるデジタルアシスタントシステムが動作する方法５００を示す。いくつかの実施例において、方法５００は、１つまたは複数のプロセッサ、および１つまたは複数のプロセッサによって実行される命令を記憶するメモリを含む電子装置（電子装置１０４など）で実行される。当該方法は、オーディオ入力を受信する（５０２）ことと、前記オーディオ入力に対する話者認識を実行する（５０４）ことと、前記オーディオ入力が、前記ホームアシスタント装置に対する制御が許可された第１ユーザからの音声入力を含むという決定に従って（５０６）、前記オーディオ入力に対して、音声からテキストへの変換を実行して、テキスト文字列を取得し、および前記テキスト文字列で、ホームアシスタント装置をアクティブ化するための事前に定義されたトリガーワードを検索する（例えば、次のオーディオ入力または当該オーディオ入力の直後に続くオーディオ入力に対する意図推定を開始する）ことと、および前記オーディオ入力が、前記ホームアシスタント装置からの音声入力を含むという決定に従って（５０８）、前記オーディオ入力に対する音声からテキストへの変換を停止し、および事前に定義されたトリガーワードの検索を停止することとを含む。
【００８５】
いくつかの実施例において、前記テキスト文字列で、ホームアシスタント装置をアクティブ化するための事前に定義されたトリガーワードを検索することは、複数の所定のトリガーワードから、前記第１ユーザに対応するトリガーワードを選択することであって、前記複数の所定のトリガーワードは、前記第１ユーザを含む複数のユーザにおける異なるユーザに対応することと、および検索する事前に定義されたトリガーワードとして、前記第１ユーザに対応するトリガーワードを使用することとを含む。
【００８６】
いくつかの実施例において、前記方法は、前記オーディオ入力が、前記ホームアシスタント装置に対する制御が許可された前記第１ユーザからの音声入力を含むという決定に従って、前記ホームアシスタント装置の複数のタスクドメインから、１つまたは複数の第１タスクドメインを選択して、前記テキスト文字列に対して意図推測を実行することであって、前記第１ユーザは、前記１つまたは複数の第１タスクドメインを制御するように許可されたことと、前記複数のタスクドメインにおける１つまたは複数の第２タスクドメインを使用して前記テキスト入力を処理することを停止することであって、前記第１ユーザは、前記１つまたは複数の第２タスクドメインを制御するように許可されていないこととを含む。
【００８７】
いくつかの実施例において、前記方法は、前記ホームアシスタント装置に対応するデフォルトの音声からテキストへの変換モデルを取得することと、および前記第１ユーザによって提供された、記録された複数の音声サンプルが利用可能であるという決定に従って、前記第１ユーザによって提供された複数の音声サンプルに従って、前記デフォルトの音声からテキストへの変換モデルを調整して、前記第１ユーザに対する第１ユーザ固有の音声からテキストへの変換モデルを生成することであって、前記オーディオ入力に対して、音声からテキストへの変換を実行して前記テキスト文字列を取得することは、前記第１ユーザに対する前記第１ユーザ固有の音声からテキストへの変換モデルを使用して、前記オーディオ入力に対して音声からテキストへの変換を実行することを含むことと、を含む。いくつかの実施例において、前記第１ユーザによって提供された、記録された複数の音声サンプルが利用不可能であるという決定に従って、前記デフォルトの音声からテキストへの変換モデルを使用して、前記オーディオ入力に対して音声からテキストへの変換を実行することを含む。いくつかの実施例において、前記第１ユーザによって提供された、記録された複数の音声サンプルが利用可能であるという決定に従って、前記第１ユーザ固有の音声からテキストへの変換モデルを使用して、前記オーディオ入力に対して前記音声からテキストへの変換を実行する場合、前記オーディオ入力における前記トリガーワードを認識するための第１信頼度閾値を設定することと、および前記第１ユーザによって提供された、記録された複数の音声サンプルが利用不可能であるという決定に従って、前記デフォルトの音声からテキストへの変換モデルを使用して、前記オーディオ入力に対して前記音声からテキストへの変換を実行する場合、前記オーディオ入力における前記トリガーワードを認識するための第２信頼度閾値を設定することと、を含む。いくつかの実施例において、前記第１ユーザ固有の音声からテキストへの変換モデルのための前記第１信頼度閾値は、前記デフォルト音声からテキストへの変換モデルのための前記第２信頼度閾値より高い。
【００８８】
説明を簡単にするために、上述の説明は、具体的な実施例を参照して説明されたものである。しかしながら、上述の例示的な議論は網羅的ではなく、開示された実施例を開示された正確な形態に限定することを意図していない。上記の教示を考慮して、多くの修正および変更が可能である。選択および説明された実施例は、開示されたアイデアの原理および実際の用途を最もよく説明するためのものであり、それにより、当業者は、意図する特定の用途に適合するように様々な変更を通じてそれらを十分に活用できる。
【００８９】
本明細書では「第１」、「第２」などの用語を使用して様々な要素を説明することができるが、これらの要素はこれらの用語によって限定されるべきではないことを理解されたい。これらの用語は、ある要素を別の要素と区別するためにのみ使用される。
【００９０】
本明細書で使用される用語は、特定の実施形態を説明することのみを目的とし、特許請求の範囲を限定することを意図するものではない。実施例の説明および添付の特許請求の範囲で使用されるように、単数形「１」、「１つ」および「当該」は、文脈がそうでないことを明確に示さない限り、複数形も含むことを意図する。本明細書で使用される「および／または」という用語は、関連する列挙されたアイテムの１つまたは複数のありとあらゆる可能な組み合わせを指し、包含することも理解されたい。さらに、「含む」および／または「備える」という用語は、本明細書で使用される場合、述べられた特徴、整数、ステップ、動作、要素、および／またはコンポーネントの存在を明示するが、１つまたは複数の他の特徴、整数、ステップ、動作、要素、コンポーネント、および／またはそれらの組み合わせの存在または追加を排除しないことを理解されたい。
【００９１】
本明細書で使用される「…場合」という用語は、コンテキストに応じて、述べられた前例の条件が真である場合、「…とき」または「…と」または「決定に応答して」または「決定に従って」または「検出に応答して」を意味すると解釈することができる。同様に、「［述べられた条件が真である］と決定された場合」または「［述べられた条件が真である］の場合」または「［述べられた条件が真である］のとき」というフレーズは、コンテキストに応じて、述べられた条件が真である「と決定したとき」、または述べられた条件が真である「という決定について」、または述べられた条件が真である「決定に応答して」、または述べられた条件が真である「という決定に従って」、または述べられた条件が真である「ことを検出したとき」、または述べられた条件が真である「という検出に応答して」を意味すると解釈することができる。
【符号の説明】
【００９２】
１０４  ユーザ装置
１０８  サーバシステム
２２６  オーディオサブシステム
２５０  メモリ
３００  デジタルアシスタントシステム
３０２  メモリ
３３２  自然言語処理モジュール
３３４  対話フロー処理モジュール、
３６０  オントロジ
【図１】
2021508848.tif 000003
【図２】
2021508848.tif 000004
【図３Ａ】
2021508848.tif 000005
【図３Ｂ】
2021508848.tif 000006
【図４Ａ】
2021508848.tif 000007
【図４Ｂ】
2021508848.tif 000008
【図５】
2021508848.tif 000009
【国際調査報告】
2021508848.tif 000010
2021508848.tif 000011