(57)【要約】  音声駆動式のコンピューティング環境においてコンピューティングデバイスの間で信号処理を調整することが、提供される。第1のおよび第2のデジタルアシスタントが、入力オーディオ信号を検出し、信号品質チェッカを実行し、第1のおよび第2のデジタルアシスタントが入力オーディオ信号を処理するように動作可能であるというインジケーションを提供し得る。システムが、さらなる処理のための第1のデジタルアシスタントを選択し得る。システムは、コマンドを含むデータパケットを第1のデジタルアシスタントから受信し得る。システムは、複数のネットワーク接続されたデバイスのうちから選択されたネットワーク接続されたデバイスのために、データパケットに基づいてアクションデータ構造を生成し、選択されたネットワーク接続されたデバイスにアクションデータ構造を送信し得る。
2021513693.tif 000002
【特許請求の範囲】
【請求項１】
音声駆動式のコンピューティング環境においてコンピューティングデバイスの間で信号処理を調整するためのシステムであって、
第1のデジタルアシスタントコンピューティングデバイスおよび第2のデジタルアシスタントコンピューティングデバイスを含む複数のデジタルアシスタントコンピューティングデバイスであって、前記複数のデジタルアシスタントコンピューティングデバイスが、複数のネットワーク接続されたデバイスを制御するように動作可能である、複数のデジタルアシスタントコンピューティングデバイスと、
オーケストレータコンポーネントおよびダイレクトアクションアプリケーションプログラミングインターフェース(ダイレクトアクションAPI)を実行するための1つまたは複数のプロセッサおよびメモリを含むデータ処理システムであって、前記データ処理システムが、前記第1のデジタルアシスタントコンピューティングデバイスをプライマリ信号プロセッサとして設定し、前記第2のデジタルアシスタントコンピューティングデバイスをセカンダリ信号プロセッサとして設定するための、データ処理システムと、
前記第1のデジタルアシスタントコンピューティングデバイスのセンサによって入力オーディオ信号を検出するための前記第1のデジタルアシスタントコンピューティングデバイスと、
前記第1のデジタルアシスタントコンピューティングデバイスの前記センサによって検出された前記入力オーディオ信号が信号処理のための閾値を満たすと判定し、前記第1のデジタルアシスタントコンピューティングデバイスが前記入力オーディオ信号を処理するように動作可能であるというインジケーションを前記データ処理システムに送信するために前記第1のデジタルアシスタントコンピューティングデバイスによって実行される信号品質チェッカと、
前記第2のデジタルアシスタントコンピューティングデバイスのセンサによって前記入力オーディオ信号を検出するための前記第2のデジタルアシスタントコンピューティングデバイスと、
前記第2のデジタルアシスタントコンピューティングデバイスの前記センサによって検出された前記入力オーディオ信号が信号処理のための前記閾値を満たすと判定し、前記第2のデジタルアシスタントコンピューティングデバイスが前記入力オーディオ信号を処理するように動作可能であるというインジケーションを前記データ処理システムに送信するために前記第2のデジタルアシスタントコンピューティングデバイスによって実行される前記信号品質チェッカと、
前記データ処理システムの前記オーケストレータコンポーネントであって、
前記第1のデジタルアシスタントコンピューティングデバイスからの前記インジケーションおよび前記第2のデジタルアシスタントコンピューティングデバイスからの前記インジケーションを受信し、
前記プライマリ信号プロセッサとして設定された前記第1のデジタルアシスタントコンピューティングデバイス、および前記第1のデジタルアシスタントコンピューティングデバイスが前記入力オーディオ信号を処理するように動作可能であるという前記インジケーションに基づいて、前記入力オーディオ信号を処理するために第1のデジタルアシスタントを選択し、
前記入力オーディオ信号を処理するように前記第1のデジタルアシスタントコンピューティングデバイスに命令し、
前記第2のデジタルアシスタントコンピューティングデバイスが前記入力オーディオ信号を処理することを防止するために前記第2のデジタルアシスタントコンピューティングデバイスにスタンバイモードになるように命令するための、前記オーケストレータコンポーネントと、
前記ダイレクトアクションAPIであって、
前記第1のデジタルアシスタントコンピューティングデバイスからコマンドを含むデータパケットを受信することであって、前記コマンドが、前記入力オーディオ信号に基づいて前記第1のデジタルアシスタントコンピューティングデバイスによって生成される、ことと、
前記複数のネットワーク接続されたデバイスのうちから選択されたネットワーク接続されたデバイスのために、前記コマンドに基づいてアクションデータ構造を生成することと、
前記ネットワーク接続されたデバイスを制御するために前記ネットワーク接続されたデバイスに前記アクションデータ構造を送信することとを行うための、前記ダイレクトアクションAPIとを含む、
システム。
【請求項２】
前記複数のデジタルアシスタントコンピューティングデバイスが、異種のデバイスであり、
前記第1のデジタルアシスタントコンピューティングデバイスが、第1の種類のデバイスを含み、
前記第2のデジタルアシスタントコンピューティングデバイスが、第2の種類のデバイスを含む、
請求項1に記載のシステム。
【請求項３】
前記第1のデジタルアシスタントコンピューティングデバイス、前記第2のデジタルアシスタントコンピューティングデバイス、および前記ネットワーク接続されたデバイスの各々が、アシスタントソフトウェア開発キットを用いて構成され、
前記第1の種類のデバイスが、スピーカデバイス、テレビデバイス、モバイルデバイス、およびウェアラブルデバイスのうちの少なくとも1つを含み、
前記第2の種類のデバイスが、前記スピーカデバイス、前記テレビデバイス、前記モバイルデバイス、および前記ウェアラブルデバイスのうちの少なくとも1つを含み、
前記ネットワーク接続されたデバイスが、前記スピーカデバイス、前記テレビデバイス、前記モバイルデバイス、前記ウェアラブルデバイス、デジタルランプ、デジタルサーモスタット、デジタル家電、およびデジタル自動車のうちの少なくとも1つを含む、
請求項2に記載のシステム。
【請求項４】
前記第1のデジタルアシスタントコンピューティングデバイスの1つまたは複数の特徴を取得するために前記第1のデジタルアシスタントコンピューティングデバイスにポーリングし、
前記第2のデジタルアシスタントコンピューティングデバイスの前記1つまたは複数の特徴を取得するために第2のデジタルアシスタントコンポーネントにポーリングし、
前記第1のデジタルアシスタントコンピューティングデバイスの前記1つまたは複数の特徴および前記第2のデジタルアシスタントコンピューティングデバイスの前記1つまたは複数の特徴の比較に基づいて、前記第1のデジタルアシスタントコンピューティングデバイスをプライマリ信号プロセッサとして設定し、前記第2のデジタルアシスタントコンピューティングデバイスをセカンダリ信号プロセッサとして設定すると決定し、
前記第1のデジタルアシスタントコンピューティングデバイスを前記プライマリ信号プロセッサとして設定し、前記第2のデジタルアシスタントコンピューティングデバイスを前記セカンダリ信号プロセッサとして設定するための前記データ処理システムを含む、
請求項1から3のいずれか一項に記載のシステム。
【請求項５】
前記メモリ内の集中化されたアカウントに、前記第1のデジタルアシスタントコンピューティングデバイスと前記ネットワーク接続されたデバイスとの間の第1のリンク、および前記第2のデジタルアシスタントコンピューティングデバイスと前記ネットワーク接続されたデバイスとの間の第2のリンクを記憶し、
前記第1のデジタルアシスタントコンピューティングデバイスの選択に応じて、前記第1のリンクに基づいて、前記集中化されたアカウントにアクセスして前記アクションデータ構造の生成のための情報を取り出すための前記データ処理システムを含む、
請求項1から4のいずれか一項に記載のシステム。
【請求項６】
前記集中化されたアカウントが、前記第1のデジタルアシスタントおよび第2のデジタルアシスタントのうちの少なくとも1つへのリンクを有する複数の異種のネットワーク接続されたデバイスに関連する情報を記憶し、前記システムが、
前記第1のデジタルアシスタントコンピューティングデバイスによって検出された前記入力オーディオ信号の特徴の第1の値を前記第2のデジタルアシスタントコンピューティングデバイスによって検出された前記入力オーディオ信号の前記特徴の第2の値と比較し、
前記比較に基づいて、前記複数のネットワーク接続されたデバイスから前記ネットワーク接続されたデバイスを選択するための前記データ処理システムを含む、
請求項5に記載のシステム。
【請求項７】
機械学習モデルに基づいて、前記第1のデジタルアシスタントコンピューティングデバイスを前記プライマリ信号プロセッサとして設定すると決定するための前記データ処理システムを含む、
請求項1から6のいずれか一項に記載のシステム。
【請求項８】
前記第1のデジタルアシスタントコンピューティングデバイスの状態の変化を検出し、
前記第1のデジタルアシスタントコンピューティングデバイスの前記状態の前記変化に基づいて、前記第2のデジタルアシスタントコンピューティングデバイスを前記プライマリ信号プロセッサに切り替え、前記第1のデジタルアシスタントコンピューティングデバイスを前記セカンダリ信号プロセッサに切り替えるための前記データ処理システムを含む、
請求項1から7のいずれか一項に記載のシステム。
【請求項９】
機械学習モデルに基づいて信号処理のための前記閾値を決定し、
前記閾値を前記メモリ内の集中化されたアカウントに記憶するための前記データ処理システムを含む、
請求項1から8のいずれか一項に記載のシステム。
【請求項１０】
第2の入力オーディオ信号を受け取るための前記第1のデジタルアシスタントコンピューティングデバイスの前記センサと、
前記第1のデジタルアシスタントコンピューティングデバイスの前記センサによって検出された前記第2の入力オーディオ信号が信号処理のための前記閾値を満たすことができないと判定し、前記第1のデジタルアシスタントコンピューティングデバイスが前記第2の入力オーディオ信号を処理するように動作可能でないというインジケーションを前記データ処理システムに送信するために前記第1のデジタルアシスタントコンピューティングデバイスによって実行される前記信号品質チェッカと、
前記第2の入力オーディオ信号を受け取るための前記第2のデジタルアシスタントコンピューティングデバイスの前記センサと、
前記第2のデジタルアシスタントコンピューティングデバイスの前記センサによって検出された前記第2の入力オーディオ信号が信号処理のための前記閾値を満たすと判定し、前記第2のデジタルアシスタントコンピューティングデバイスが前記第2の入力オーディオ信号を処理するように動作可能であるというインジケーションを前記データ処理システムに送信するために前記第2のデジタルアシスタントコンピューティングデバイスによって実行される前記信号品質チェッカと、
前記データ処理システムであって、
前記第1のデジタルアシスタントコンピューティングデバイスから、前記第1のデジタルアシスタントコンピューティングデバイスが前記第2の入力オーディオ信号を処理するように動作可能でないという前記インジケーションを受信し、
前記第2のデジタルアシスタントコンピューティングデバイスから、前記第2のデジタルアシスタントコンピューティングデバイスが前記第2の入力オーディオ信号を処理するように動作可能であるという前記インジケーションを受信し、
前記第1のデジタルアシスタントコンピューティングデバイスが前記第2の入力オーディオ信号を処理するように動作可能でなく、前記第2のデジタルアシスタントコンピューティングデバイスが前記第2の入力オーディオ信号を処理するように動作可能であることに基づいて、前記第2の入力オーディオ信号を処理するために前記第2のデジタルアシスタントコンピューティングデバイスを選択するための、
前記データ処理システムと、
前記第2のデジタルアシスタントコンピューティングデバイスから第2のコマンドを含むデータパケットを受信するための前記ダイレクトアクションAPIとを含む、
請求項1から9のいずれか一項に記載のシステム。
【請求項１１】
音声駆動式のコンピューティング環境においてコンピューティングデバイスの間で信号処理を調整する方法であって、
第1のデジタルアシスタントコンピューティングデバイスのセンサにより前記第1のデジタルアシスタントコンピューティングデバイスによって入力オーディオ信号を検出するステップと、
前記第1のデジタルアシスタントコンピューティングデバイスによって実行される信号品質チェッカによって、前記第1のデジタルアシスタントコンピューティングデバイスの前記センサによって検出された前記入力オーディオ信号が信号処理のための閾値を満たすと判定するステップと、
前記第1のデジタルアシスタントコンピューティングデバイスが前記入力オーディオ信号を処理するように動作可能であるというインジケーションを、1つまたは複数のプロセッサおよびメモリを含むデータ処理システムに送信するステップと、
第2のデジタルアシスタントコンピューティングデバイスのセンサにより前記第2のデジタルアシスタントコンピューティングデバイスによって前記入力オーディオ信号を検出するステップと、
前記第2のデジタルアシスタントコンピューティングデバイスによって実行される信号品質チェッカによって、前記第2のデジタルアシスタントコンピューティングデバイスの前記センサによって検出された前記入力オーディオ信号が信号処理のための前記閾値を満たすと判定するステップと、
前記第2のデジタルアシスタントコンピューティングデバイスが前記入力オーディオ信号を処理するように動作可能であるというインジケーションを前記データ処理システムに送信するステップと、
前記第1のデジタルアシスタントコンピューティングデバイスからの前記インジケーションおよび前記第2のデジタルアシスタントコンピューティングデバイスからの前記インジケーションを前記データ処理システムによって受信するステップと、
プライマリ信号プロセッサとして設定された前記第1のデジタルアシスタントコンピューティングデバイス、および前記第1のデジタルアシスタントコンピューティングデバイスが前記入力オーディオ信号を処理するように動作可能であるという前記インジケーションに基づいて、前記データ処理システムによって、前記入力オーディオ信号を処理するために第1のデジタルアシスタントを選択するステップと、
前記データ処理システムによって、前記入力オーディオ信号を処理するように前記第1のデジタルアシスタントコンピューティングデバイスに命令するステップと、
前記データ処理システムによって、前記第2のデジタルアシスタントコンピューティングデバイスが前記入力オーディオ信号を処理することを防止するために前記第2のデジタルアシスタントコンピューティングデバイスにスタンバイモードになるように命令するステップと、
前記データ処理システムによって、前記第1のデジタルアシスタントコンピューティングデバイスからコマンドを含むデータパケットを受信するステップであって、前記コマンドが、前記入力オーディオ信号に基づいて前記第1のデジタルアシスタントコンピューティングデバイスによって生成される、ステップと、
複数のネットワーク接続されたデバイスのうちから選択されたネットワーク接続されたデバイスのために前記データ処理システムによって、前記コマンドに基づいてアクションデータ構造を生成するステップと、
前記データ処理システムによって、ネットワーク接続されたデバイスを制御するために前記ネットワーク接続されたデバイスに前記アクションデータ構造を送信するステップとを含む、
方法。
【請求項１２】
前記第1のデジタルアシスタントコンピューティングデバイスが、第1の種類のデバイスを含み、前記第2のデジタルアシスタントコンピューティングデバイスが、第2の種類のデバイスを含み、
前記第1のデジタルアシスタントコンピューティングデバイス、前記第2のデジタルアシスタントコンピューティングデバイス、および前記ネットワーク接続されたデバイスの各々が、アシスタントソフトウェア開発キットを用いて構成され、
前記第1の種類のデバイスが、スピーカデバイス、テレビデバイス、モバイルデバイス、およびウェアラブルデバイスのうちの少なくとも1つを含み、
前記第2の種類のデバイスが、前記スピーカデバイス、前記テレビデバイス、前記モバイルデバイス、および前記ウェアラブルデバイスのうちの少なくとも1つを含み、
前記ネットワーク接続されたデバイスが、前記スピーカデバイス、前記テレビデバイス、前記モバイルデバイス、前記ウェアラブルデバイス、デジタルランプ、デジタルサーモスタット、デジタル家電、およびデジタル自動車のうちの少なくとも1つを含む、
請求項11に記載の方法。
【請求項１３】
前記第1のデジタルアシスタントコンピューティングデバイスの1つまたは複数の特徴を取得するために前記第1のデジタルアシスタントコンピューティングデバイスにポーリングするステップと、
前記第2のデジタルアシスタントコンピューティングデバイスの前記1つまたは複数の特徴を取得するために第2のデジタルアシスタントコンポーネントにポーリングするステップと、
前記第1のデジタルアシスタントコンピューティングデバイスの前記1つまたは複数の特徴および前記第2のデジタルアシスタントコンピューティングデバイスの前記1つまたは複数の特徴の比較に基づいて、前記第1のデジタルアシスタントコンピューティングデバイスをプライマリ信号プロセッサとして設定し、前記第2のデジタルアシスタントコンピューティングデバイスをセカンダリ信号プロセッサとして設定すると決定するステップと、
前記第1のデジタルアシスタントコンピューティングデバイスを前記プライマリ信号プロセッサとして設定し、前記第2のデジタルアシスタントコンピューティングデバイスを前記セカンダリ信号プロセッサとして設定するステップとを含む、
請求項11または12に記載の方法。
【請求項１４】
前記データ処理システムによって、前記メモリ内の集中化されたアカウントに、前記第1のデジタルアシスタントコンピューティングデバイスと前記ネットワーク接続されたデバイスとの間の第1のリンク、および前記第2のデジタルアシスタントコンピューティングデバイスと前記ネットワーク接続されたデバイスとの間の第2のリンクを記憶するステップと、
前記データ処理システムによって、前記第1のデジタルアシスタントコンピューティングデバイスの選択に応じて、前記第1のリンクに基づいて、前記集中化されたアカウントにアクセスして前記アクションデータ構造の生成のための情報を取り出すステップとを含む、
請求項11から13のいずれか一項に記載の方法。
【請求項１５】
機械学習モデルに基づいて、前記第1のデジタルアシスタントコンピューティングデバイスを前記プライマリ信号プロセッサとして設定すると決定するステップを含む、
請求項11から14のいずれか一項に記載の方法。
【請求項１６】
前記第1のデジタルアシスタントコンピューティングデバイスの状態の変化を検出するステップと、
前記第1のデジタルアシスタントコンピューティングデバイスの前記状態の前記変化に基づいて、前記第2のデジタルアシスタントコンピューティングデバイスを前記プライマリ信号プロセッサに切り替えるステップと、
前記第1のデジタルアシスタントコンピューティングデバイスをセカンダリ信号プロセッサに切り替えるステップとを含む、
請求項11から15のいずれか一項に記載の方法。
【請求項１７】
機械学習モデルに基づいて信号処理のための前記閾値を決定するステップと、
前記閾値を前記メモリ内の集中化されたアカウントに記憶するステップとを含む、
請求項11から16のいずれか一項に記載の方法。
【請求項１８】
前記第1のデジタルアシスタントコンピューティングデバイスの前記センサによって第2の入力オーディオ信号を受け取るステップと、
前記第1のデジタルアシスタントコンピューティングデバイスによって実行される前記信号品質チェッカによって、前記第1のデジタルアシスタントコンピューティングデバイスの前記センサによって検出された前記第2の入力オーディオ信号が信号処理のための前記閾値を満たすことができないと判定するステップと、
前記第1のデジタルアシスタントコンピューティングデバイスによって前記データ処理システムに、前記第1のデジタルアシスタントコンピューティングデバイスが前記第2の入力オーディオ信号を処理するように動作可能でないというインジケーションを送信するステップと、
前記第2のデジタルアシスタントコンピューティングデバイスの前記センサによって前記第2の入力オーディオ信号を受け取るステップと、
前記第2のデジタルアシスタントコンピューティングデバイスによって実行される前記信号品質チェッカによって、前記第2のデジタルアシスタントコンピューティングデバイスの前記センサによって検出された前記第2の入力オーディオ信号が信号処理のための前記閾値を満たすと判定するステップと、
前記第2のデジタルアシスタントコンピューティングデバイスによって前記データ処理システムに、前記第2のデジタルアシスタントコンピューティングデバイスが前記第2の入力オーディオ信号を処理するように動作可能であるというインジケーションを送信するステップと、
前記第1のデジタルアシスタントコンピューティングデバイスが前記第2の入力オーディオ信号を処理するように動作可能でないという前記インジケーションを前記第1のデジタルアシスタントコンピューティングデバイスから前記データ処理システムによって受信するステップと、
前記第2のデジタルアシスタントコンピューティングデバイスが前記第2の入力オーディオ信号を処理するように動作可能であるという前記インジケーションを前記第2のデジタルアシスタントコンピューティングデバイスから前記データ処理システムによって受信するステップと、
前記第1のデジタルアシスタントコンピューティングデバイスが前記第2の入力オーディオ信号を処理するように動作可能でなく、前記第2のデジタルアシスタントコンピューティングデバイスが前記第2の入力オーディオ信号を処理するように動作可能であることに基づいて、前記データ処理システムによって、前記第2の入力オーディオ信号を処理するために前記第2のデジタルアシスタントコンピューティングデバイスを選択するステップと、
ダイレクトアクションアプリケーションプログラミングインターフェース(ダイレクトアクションAPI)によって、前記第2のデジタルアシスタントコンピューティングデバイスから第2のコマンドを含むデータパケットを受信するステップとを含む、
請求項11から17のいずれか一項に記載の方法。
【請求項１９】
デジタルアシスタントコンピューティングデバイスであって、
入力オーディオ信号を検出するためのセンサと、
オーディオドライバと、
プリプロセッサコンポーネントによって実行される信号品質チェッカと、
前記センサおよび前記オーディオドライバに結合された前記プリプロセッサコンポーネントであって、前記プリプロセッサコンポーネントが、
前記デジタルアシスタントコンピューティングデバイスの前記センサによって検出された前記入力オーディオ信号が信号処理のための閾値を満たすと判定し、
ネットワークを介してデータ処理システムに、前記デジタルアシスタントコンピューティングデバイスが前記入力オーディオ信号を処理するように動作可能であるというインジケーションを送信して、前記データ処理システムに、
前記デジタルアシスタントコンピューティングデバイスから前記インジケーションを受信することと、
前記デジタルアシスタントコンピューティングデバイスがプライマリ信号プロセッサとして設定され、前記入力オーディオ信号を検出する第2のデジタルコンピューティングデバイスがセカンダリ信号プロセッサとして設定されると決定することであって、前記第2のデジタルコンピューティングデバイスが、前記入力オーディオ信号を処理するように動作可能である、ことと、
前記プライマリ信号プロセッサとして設定された前記デジタルアシスタントコンピューティングデバイス、および前記デジタルアシスタントコンピューティングデバイスが前記入力オーディオ信号を処理するように動作可能であるという前記インジケーションに基づいて、前記入力オーディオ信号を処理するためにデジタルアシスタントを選択することとを行わせ、
前記入力オーディオ信号を処理する命令を前記デジタルアシスタントコンピューティングデバイスに送信し、
第2のデジタルアシスタントコンピューティングデバイスが前記入力オーディオ信号を処理することを防止するためにスタンバイモードになる命令を前記第2のデジタルアシスタントコンピューティングデバイスに送信し、
前記デジタルアシスタントコンピューティングデバイスの前記プリプロセッサコンポーネントが、
前記入力オーディオ信号を処理する前記命令を受信し、
前記入力オーディオ信号に基づいてコマンドを含むデータパケットを生成し、
前記データ処理システムに前記データパケットを送信して、前記データ処理システムに、
複数のネットワーク接続されたデバイスのうちから選択されたネットワーク接続されたデバイスのために、前記デジタルアシスタントコンピューティングデバイスから受信された前記コマンドに基づいてアクションデータ構造を生成させ、
前記ネットワーク接続されたデバイスを制御するために前記ネットワーク接続されたデバイスに前記アクションデータ構造を送信させるための、前記プリプロセッサコンポーネントとを含む、
デジタルアシスタントコンピューティングデバイス。
【請求項２０】
オーディオドライバと、
スピーカコンポーネントと、
前記ネットワーク接続されたデバイスに送信された前記アクションデータ構造のステータスのインジケーションを受信し、前記スピーカコンポーネントに前記ステータスの前記インジケーションに対応するオーディオ出力を送出させるための出力オーディオ信号を生成するように前記オーディオドライバに命令するための前記プリプロセッサコンポーネントとを含む、
請求項19に記載のデバイス。
【発明の詳細な説明】
【技術分野】
【０００１】
音声駆動式のコンピューティング環境においてコンピューティングデバイスの間で信号処理を調整することが、提供される
【背景技術】
【０００２】
コンピューティングデバイスは、範囲内の別のコンピューティングデバイスによってワイヤレスで発見可能であり得る。しかし、比較的多数のコンピューティングデバイスが発見可能な範囲内にあるとき、コンピューティングデバイスは、それぞれ互いに接続する可能性があり、それによって、コンピューティングデバイスの間の望ましくない干渉のリスクを引き起こし、不必要なネットワーク帯域幅の使用およびプロセッサの利用を増やす。
【発明の概要】
【課題を解決するための手段】
【０００３】
少なくとも1つの態様は、音声駆動式のコンピューティング環境においてコンピューティングデバイスの間で信号処理を調整するためのシステムを対象とする。システムは、第1のデジタルアシスタントコンピューティングデバイスおよび第2のデジタルアシスタントコンピューティングデバイスを含む複数のデジタルアシスタントコンピューティングデバイスを含み得る。複数のデジタルアシスタントコンピューティングデバイスは、複数のネットワーク接続されたデバイスを制御するように動作可能であり得る。システムは、オーケストレータ(orchestrator)コンポーネントおよびダイレクトアクションアプリケーションプログラミングインターフェース(「API」)を実行するための1つまたは複数のプロセッサおよびメモリを含むデータ処理システムを含み得る。データ処理システムは、第1のデジタルアシスタントコンピューティングデバイスをプライマリ信号プロセッサとして設定し、第2のデジタルアシスタントコンピューティングデバイスをセカンダリ信号プロセッサとして設定し得る。システムは、入力オーディオ信号を検出するための第1のデジタルアシスタントコンピューティングデバイスのセンサを含み得る。システムは、第1のデジタルアシスタントコンピューティングデバイスのセンサによって検出された入力オーディオ信号が信号処理のための閾値を満たすと判定するための第1のデジタルアシスタントコンピューティングデバイスによって実行される信号品質チェッカを含み得る。信号品質チェッカは、第1のデジタルアシスタントコンピューティングデバイスが入力オーディオ信号を処理するように動作可能であるというインジケーションをデータ処理システムに送信することができる。システムは、入力オーディオ信号を検出するための第2のデジタルコンピューティングデバイスのセンサを含み得る。システムは、第2のデジタルアシスタントコンピューティングデバイスのセンサによって検出された入力オーディオ信号が信号処理のための閾値を満たすと判定するための第2のデジタルアシスタントコンピューティングデバイスによって実行される信号品質チェッカを含み得る。第2のデジタルアシスタントコンピューティングデバイスは、データ処理システムに、第2のデジタルアシスタントコンピューティングデバイスが入力オーディオ信号を処理するように動作可能であるというインジケーションを送信することができる。データ処理システムのオーケストレータコンポーネントは、第1のデジタルアシスタントコンピューティングデバイスからのインジケーションおよび第2のデジタルアシスタントコンピューティングデバイスからのインジケーションを受信することができる。データ処理システムのオーケストレータコンポーネントは、プライマリ信号プロセッサとして設定された第1のデジタルアシスタントコンピューティングデバイス、および第1のデジタルアシスタントコンピューティングデバイスが入力オーディオ信号を処理するように動作可能であるというインジケーションに基づいて、入力オーディオ信号を処理するために第1のデジタルアシスタントを選択することができる。データ処理システムのオーケストレータコンポーネントは、入力オーディオ信号を処理するように第1のデジタルアシスタント��ンピューティングデバイスに命令することができる。データ処理システムのオーケストレータコンポーネントは、第2のデジタルアシスタントコンピューティングデバイスが入力オーディオ信号を処理することを防止するために第2のデジタルアシスタントコンピューティングデバイスにスタンバイモードになるように命令することができる。ダイレクトアクションAPIは、第1のデジタルアシスタントコンピューティングデバイスからコマンドを含むデータパケットを受信することができる。コマンドは、入力オーディオ信号に基づいて第1のデジタルアシスタントコンピューティングデバイスによって生成され得る。ダイレクトアクションAPIは、複数のネットワーク接続されたデバイスのうちから選択されたネットワーク接続されたデバイスのために、コマンドに基づいてアクションデータ構造を生成することができる。ダイレクトアクションAPIは、ネットワーク接続されたデバイスを制御するためにネットワーク接続されたデバイスにアクションデータ構造を送信することができる。
【０００４】
少なくとも1つの態様は、音声駆動式のコンピューティング環境においてコンピューティングデバイスの間で信号処理を調整する方法を対象とする。方法は、第1のデジタルアシスタントコンピューティングデバイスのセンサが入力オーディオ信号を検出するステップを含み得る。方法は、第1のデジタルアシスタントコンピューティングデバイスによって実行される信号品質チェッカが、第1のデジタルアシスタントコンピューティングデバイスのセンサによって検出された入力オーディオ信号が信号処理のための閾値を満たすと判定するステップを含み得る。方法は、第1のデジタルアシスタントコンピューティングデバイスが入力オーディオ信号を処理するように動作可能であるというインジケーションを、第1のデジタルアシスタントコンピューティングデバイスが1つまたは複数のプロセッサおよびメモリを含むデータ処理システムに送信するステップを含み得る。方法は、第2のデジタルコンピューティングデバイスのセンサによって入力オーディオ信号を検出するステップを含み得る。方法は、第2のデジタルアシスタントコンピューティングデバイスによって実行される信号品質チェッカによって、第2のデジタルアシスタントコンピューティングデバイスのセンサによって検出された入力オーディオ信号が信号処理のための閾値を満たすと判定するステップを含み得る。方法は、第2のデジタルアシスタントコンピューティングデバイスが入力オーディオ信号を処理するように動作可能であるというインジケーションをデータ処理システムに送信するステップを含み得る。方法は、第1のデジタルアシスタントコンピューティングデバイスからのインジケーションおよび第2のデジタルアシスタントコンピューティングデバイスからのインジケーションをデータ処理システムによって受信するステップを含み得る。方法は、プライマリ信号プロセッサとして設定された第1のデジタルアシスタントコンピューティングデバイス、および第1のデジタルアシスタントコンピューティングデバイスが入力オーディオ信号を処理するように動作可能であるというインジケーションに基づいて、データ処理システムによって選択するステップを含み得る。第1のデジタルアシスタントは、入力オーディオ信号を処理する。方法は、データ処理システムが、入力オーディオ信号を処理するように第1のデジタルアシスタントコンピューティングデバイスに命令するステップを含み得る。方法は、データ処理システムが、第2のデジタルアシスタントコンピューティングデバイスが入力オーディオ信号を処理することを防止するために第2のデジタルアシスタントコンピューティングデバイスにスタンバイモードになるように命令するステップを含み得る。方法は、データ処理システムが第1のデジタルアシスタントコンピューティングデバイスからコマンドを含むデータパケットを受信することを含み得る。コマンドは、入力オーディオ信号に基づいて第1のデジタルアシスタントコンピューティングデバイスによって生成され得る。方法は、データ処理システムが、複数のネットワーク接続されたデバイスのうちから選択されたネットワーク接続されたデバイスのために、コマンドに基づいてアクションデータ構造を生成するステップを含み得る。方法は、データ処理システムが、ネットワーク接続されたデバイスを制御するためにネットワーク接続されたデバイスにアクションデータ構造を送信するステップを含み得る。
【０００５】
少なくとも1つの態様は、デジタルアシスタントコンピューティングデバイスを対象とする。デジタルアシスタントコンピューティングデバイスは、入力オーディオ信号を検出するためのセンサを含み得る。デジタルアシスタントコンピューティングデバイスは、オーディオドライバと、プリプロセッサコンポーネントによって実行される信号品質チェッカとを含み得る。プリプロセッサコンポーネントは、センサおよびオーディオドライバに結合され得る。プリプロセッサコンポーネントは、デジタルアシスタントコンピューティングデバイスのセンサによって検出された入力オーディオ信号が信号処理のための閾値を満たすと判定し得る。プリプロセッサコンポーネントは、ネットワークを介してデータ処理システムに、デジタルアシスタントコンピューティングデバイスが入力オーディオ信号を処理するように動作可能であるというインジケーションを送信して、データ処理システムにデジタルアシスタントコンピューティングデバイスからのインジケーションを受信させることができる。データ処理システムは、デジタルコンピューティングデバイスがプライマリ信号プロセッサとして設定され、入力オーディオ信号を検出する第2のデジタルコンピューティングデバイスがセカンダリ信号プロセッサとして設定されると決定することができる。第2のデジタルコンピューティングデバイスは、入力オーディオ信号を処理するように動作可能であり得る。データ処理システムは、プライマリ信号プロセッサとして設定されたデジタルアシスタントコンピューティングデバイス、およびデジタルアシスタントコンピューティングデバイスが入力オーディオ信号を処理するように動作可能であるというインジケーションに基づいて、入力オーディオ信号を処理するためにデジタルアシスタントを選択することができる。データ処理システムは、入力オーディオ信号を処理する命令をデジタルアシスタントコンピューティングデバイスに送信することができる。データ処理システムは、第2のデジタルアシスタントコンピューティングデバイスが入力オーディオ信号を処理することを防止するためにスタンバイモードになる命令を第2のデジタルアシスタントコンピューティングデバイスに送信することができる。デジタルアシスタントコンピューティングデバイスのプリプロセッサコンポーネントは、入力オーディオ信号を処理する命令を受信することができる。デジタルアシスタントコンピューティングデバイスのプリプロセッサコンポーネントは、入力オーディオ信号に基づいてコマンドを含むデータパケットを生成することができる。デジタルアシスタントコンピューティングデバイスのプリプロセッサコンポーネントは、データ処理システムにデータパケットを送信して、データ処理システムに、複数のネットワーク接続されたデバイスのうちから選択されたネットワーク接続されたデバイスのために、デジタルコンピューティングデバイスから受信されたコマンドに基づいてアクションデータ構造を生成させることができる。データ処理システムは、ネットワーク接続されたデバイスを制御するためにネットワーク接続されたデバイスにアクションデータ構造を送信することができる。
【０００６】
データ処理システムは、オーディオ入力信号が第2のデジタルアシスタントコンピューティングデバイスを使用する命令を含むと判定する可能性があり、入力オーディオ信号を処理するために第1のデジタルアシスタントを選択するステップは、第2のデジタルアシスタントコンピューティングデバイスを使用する命令を覆すことを含む可能性がある。
【０００７】
複数のデジタルアシスタントコンピューティングデバイスは、異種のデバイスである可能性がある。たとえば、第1のデジタルアシスタントコンピューティングデバイスは、第1の種類のデバイスを含む可能性があり、第2のデジタルアシスタントコンピューティングデバイスは、第2の種類のデバイスを含む。
【０００８】
第1のデジタルアシスタントコンピューティングデバイス、第2のデジタルアシスタントコンピューティングデバイス、およびネットワーク接続されたデバイスの各々は、アシスタントソフトウェア開発キットを用いて構成される可能性がある。第1の種類のデバイスは、スピーカデバイス、テレビデバイス、モバイルデバイス、およびウェアラブルデバイスのうちの少なくとも1つを含む可能性がある。第2の種類のデバイスは、スピーカデバイス、テレビデバイス、モバイルデバイス、およびウェアラブルデバイスのうちの少なくとも1つを含む可能性がある。ネットワーク接続されたデバイスは、スピーカデバイス、テレビデバイス、モバイルデバイス、ウェアラブルデバイス、デジタルランプ、デジタルサーモスタット、デジタル家電、およびデジタル自動車のうちの少なくとも1つを含む可能性がある。
【０００９】
方法は、データ処理システムにおいて、第1のデジタルアシスタントコンピューティングデバイスの1つまたは複数の特徴を取得するために第1のデジタルアシスタントコンピューティングデバイスにポーリングするステップと、第2のデジタルアシスタントコンピューティングデバイスの1つまたは複数の特徴を取得するために第2のデジタルアシスタントコンポーネントにポーリングするステップと、第1のデジタルアシスタントコンピューティングデバイスの1つまたは複数の特徴および第2のデジタルアシスタントコンピューティングデバイスの1つまたは複数の特徴の比較に基づいて、第1のデジタルアシスタントコンピューティングデバイスをプライマリ信号プロセッサとして設定し、第2のデジタルアシスタントコンピューティングデバイスをセカンダリ信号プロセッサとして設定すると決定するステップと、第1のデジタルアシスタントコンピューティングデバイスをプライマリ信号プロセッサとして設定するステップと、第2のデジタルアシスタントコンピューティングデバイスをセカンダリ信号プロセッサとして設定するステップとをさらに含む可能性がある。
【００１０】
方法は、データ処理システムによって、メモリ内の集中化されたアカウントに、第1のデジタルアシスタントコンピューティングデバイスとネットワーク接続されたデバイスとの間の第1のリンク、および第2のデジタルアシスタントコンピューティングデバイスとネットワーク接続されたデバイスとの間の第2のリンクを記憶するステップをさらに含む可能性がある。データ処理システムは、第1のデジタルアシスタントコンピューティングデバイスの選択に応じて、第1のリンクに基づいて、集中化されたアカウントにアクセスしてアクションデータ構造の生成のための情報を取り出す可能性がある。
【００１１】
集中化されたアカウントは、第1のデジタルアシスタントおよび第2のデジタルアシスタントのうちの少なくとも1つへのリンクを有する複数の異種のネットワーク接続されたデバイスに関連する情報を記憶する可能性がある。
【００１２】
データ処理システムは、機械学習モデルに基づいて、第1のデジタルアシスタントコンピューティングデバイスをプライマリ信号プロセッサとして設定すると決定する可能性がある。
【００１３】
データ処理システムは、第1のデジタルアシスタントコンピューティングデバイスの状態の変化を検出し、第1のデジタルアシスタントコンピューティングデバイスの状態の変化に基づいて、第2のデジタルアシスタントコンピューティングデバイスをプライマリ信号プロセッサに切り替え、第1のデジタルアシスタントコンピューティングデバイスをセカンダリ信号プロセッサに切り替える可能性がある。
【００１４】
データ処理システムは、機械学習モデルに基づいて、信号処理のための閾値を決定し、閾値をメモリ内の集中化されたアカウントに記憶する可能性がある。
【００１５】
第1のデジタルアシスタントコンピューティングデバイスのセンサは、第2の入力オーディオ信号を受け取る可能性がある。第1のデジタルアシスタントコンピューティングデバイスによって実行される信号品質チェッカは、第1のデジタルアシスタントコンピューティングデバイスのセンサによって検出された第2の入力オーディオ信号が信号処理のための閾値を満たすことができないと判定する可能性があり、第1のデジタルアシスタントコンピューティングデバイスが第2の入力オーディオ信号を処理するように動作可能でないというインジケーションをデータ処理システムに送信する可能性がある。第2のデジタルアシスタントコンピューティングデバイスのセンサは、第2の入力オーディオ信号を受け取る可能性がある。第2のデジタルアシスタントコンピューティングデバイスによって実行される信号品質チェッカは、第2のデジタルアシスタントコンピューティングデバイスのセンサによって検出された第2の入力オーディオ信号が信号処理のための閾値を満たすと判定する可能性があり、第2のデジタルアシスタントコンピューティングデバイスが第2の入力オーディオ信号を処理するように動作可能であるというインジケーションをデータ処理システムに送信する可能性がある。データ処理システムは、第1のデジタルアシスタントコンピューティングデバイスから、第1のデジタルアシスタントコンピューティングデバイスが第2の入力オーディオ信号を処理するように動作可能でないというインジケーションを受信し、第2のデジタルアシスタントコンピューティングデバイスから、第2のデジタルアシスタントコンピューティングデバイスが第2の入力オーディオ信号を処理するように動作可能であるというインジケーションを受信し、第1のデジタルアシスタントコンピューティングデバイスが第2の入力オーディオ信号を処理するように動作可能でなく、第2のデジタルアシスタントコンピューティングデバイスが第2の入力オーディオ信号を処理するように動作可能であることに基づいて、第2の入力オーディオ信号を処理するために第2のデジタルアシスタントコンピューティングデバイスを選択する可能性がある。ダイレクトアクションAPIは、第2のデジタルアシスタントコンピューティングデバイスから第2のコマンドを含むデータパケットを受信する可能性がある。
【００１６】
少なくとも1つの態様は、音声駆動式のコンピューティング環境においてコンピューティングデバイスの間で信号処理を調整する方法を実行するように構成されるシステムを対象とする。たとえば、システムは、第1のデジタルアシスタントコンピューティングデバイスおよび第2のデジタルアシスタントコンピューティングデバイスを含む複数のデジタルアシスタントコンピューティングデバイスを含み得る。システムは、第1のデジタルアシスタントコンピューティングデバイスおよび第2のデジタルアシスタントコンピューティングデバイスの両方によって制御可能なインターフェースを実行するネットワーク接続されたデバイスを含み得る。システムは、オーケストレータコンポーネントおよびダイレクトアクションアプリケーションプログラミングインターフェース(「API」)を実行するための1つまたは複数のプロセッサおよびメモリを含むデータ処理システムを含み得る。データ処理システムは、第1のデジタルアシスタントコンピューティングデバイスをプライマリ信号プロセッサとして設定し、第2のデジタルアシスタントコンピューティングデバイスをセカンダリ信号プロセッサとして設定し得る。システムは、入力オーディオ信号を検出するための第1のデジタルアシスタントコンピューティングデバイスのセンサを含み得る。システムは、第1のデジタルアシスタントコンピューティングデバイスのセンサによって検出された入力オーディオ信号が信号処理のための閾値を満たすと判定するための第1のデジタルアシスタントコンピューティングデバイスによって実行される信号品質チェッカを含み得る。信号品質チェッカは、第1のデジタルアシスタントコンピューティングデバイスが入力オーディオ信号を処理するように動作可能であるというインジケーションをデータ処理システムに送信することができる。システムは、入力オーディオ信号を検出するための第2のデジタルコンピューティングデバイスのセンサを含み得る。システムは、第2のデジタルアシスタントコンピューティングデバイスのセンサによって検出された入力オーディオ信号が信号処理のための閾値を満たすと判定するための第2のデジタルアシスタントコンピューティングデバイスによって実行される信号品質チェッカを含み得る。第2のデジタルアシスタントコンピューティングデバイスは、データ処理システムに、第2のデジタルアシスタントコンピューティングデバイスが入力オーディオ信号を処理するように動作可能であるというインジケーションを送信することができる。データ処理システムのオーケストレータコンポーネントは、第1のデジタルアシスタントコンピューティングデバイスからのインジケーションおよび第2のデジタルアシスタントコンピューティングデバイスからのインジケーションを受信することができる。データ処理システムのオーケストレータコンポーネントは、プライマリ信号プロセッサとして設定された第1のデジタルアシスタントコンピューティングデバイス、および第1のデジタルアシスタントコンピューティングデバイスが入力オーディオ信号を処理するように動作可能であるというインジケーションに基づいて、入力オーディオ信号を処理するために第1のデジタルアシスタントを選択することができる。データ処理システムのオーケストレータコンポーネントは、入力オーディオ信号を処理するように第1のデジタルアシスタントコンピューティングデバイスに命令することができる。データ処理システムのオーケストレータコンポーネントは、第2のデジタルアシスタントコンピューティングデバイスが入力オーディオ信号を処理することを防止するために第2のデジタルアシスタントコンピューティングデバイスにスタンバイモードになるように命令することができる。ダイレクトアクションAPIは、第1のデジタルアシスタントコンピューティングデバイスからコマンドを含むデータパケットを受信することができる。コマンドは、入力オーディオ信号に基づいて第1のデジタルアシスタントコンピューティングデバイスによって生成され得る。ダイレクトアクションAPIは、コマンドに基づいてアクションデータ構造を生成することができる。ダイレクトアクションAPIは、ネットワーク接続されたデバイスを制御するためにネットワーク接続されたデバイスにアクションデータ構造を送信することができる。
【００１７】
少なくとも1つの態様は、音声駆動式のコンピューティング環境においてコンピューティングデバイスの間で信号処理を調整する方法を実行するように構成されたデジタルアシスタントデバイスを対象とする。たとえば、デジタルアシスタントデバイスは、入力オーディオ信号を検出するためのセンサを含み得る。デジタルアシスタントデバイスは、オーディオドライバと、プリプロセッサコンポーネントによって実行される信号品質チェッカとを含み得る。プリプロセッサコンポーネントは、センサおよびオーディオドライバに結合され得る。プリプロセッサコンポーネントは、デジタルアシスタントコンピューティングデバイスのセンサによって検出された入力オーディオ信号が信号処理のための閾値を満たすと判定し得る。プリプロセッサコンポーネントは、ネットワークを介してデータ処理システムに、デジタルアシスタントコンピューティングデバイスが入力オーディオ信号を処理するように動作可能であるというインジケーションを送信して、データ処理システムにデジタルアシスタントコンピューティングデバイスからのインジケーションを受信させることができる。データ処理システムは、デジタルコンピューティングデバイスがプライマリ信号プロセッサとして設定され、入力オーディオ信号を検出する第2のデジタルコンピューティングデバイスがセカンダリ信号プロセッサとして設定されると決定することができる。第2のデジタルコンピューティングデバイスは、入力オーディオ信号を処理するように動作可能であり得る。データ処理システムは、プライマリ信号プロセッサとして設定されたデジタルアシスタントコンピューティングデバイス、およびデジタルアシスタントコンピューティングデバイスが入力オーディオ信号を処理するように動作可能であるというインジケーションに基づいて、入力オーディオ信号を処理するためにデジタルアシスタントを選択することができる。データ処理システムは、入力オーディオ信号を処理する命令をデジタルアシスタントコンピューティングデバイスに送信することができる。データ処理システムは、第2のデジタルアシスタントコンピューティングデバイスが入力オーディオ信号を処理することを防止するためにスタンバイモードになる命令を第2のデジタルアシスタントコンピューティングデバイスに送信することができる。デジタルアシスタントコンピューティングデバイスのプリプロセッサコンポーネントは、入力オーディオ信号を処理する命令を受信することができる。デジタルアシスタントコンピューティングデバイスのプリプロセッサコンポーネントは、入力オーディオ信号に基づいてコマンドを含むデータパケットを生成することができる。デジタルアシスタントコンピューティングデバイスのプリプロセッサコンポーネントは、データ処理システムにデータパケットを送信して、データ処理システムに、デジタルコンピューティングデバイスから受信されたコマンドに基づいてアクションデータ構造を生成させることができる。データ処理システムは、ネットワーク接続されたデバイスを制御するためにネットワーク接続されたデバイスにアクションデータ構造を送信することができる。
【００１８】
デジタルアシスタントデバイスは、オーディオドライバおよびスピーカコンポーネントを含む可能性がある。プリプロセッサコンポーネントは、ネットワーク接続されたデバイスに送信されたアクションデータ構造のステータスのインジケーションを受信し、スピーカコンポーネントにステータスのインジケーションに対応するオーディオ出力を送出させるための出力オーディオ信号を生成するようにオーディオドライバに命令する可能性がある。
【００１９】
これらのおよびその他の態様および実装が、下で詳細に検討される。上述の情報および下記の詳細な説明は、様々な態様および実装の例示的な例を含み、特許請求される態様および実装の本質および特徴を理解するための概要または枠組みを提供する。図面は、様々な態様および実装を例示し、さらに理解させ、本明細書の一部に組み込まれ、本明細書の一部を構成する。
【００２０】
添付の図面は、正しい縮尺で描かれるように意図されていない。様々な図面における同様の参照番号および参照名称は、同様の要素を示す。明瞭にする目的で、あらゆる図面においてあらゆるコンポーネントがラベル付けされるとは限らない可能性がある。
【図面の簡単な説明】
【００２１】
【図１】音声駆動式のコンピューティング環境においてコンピューティングデバイスの間で信号処理を調整するためのシステムの図である。
【図２】音声駆動式のコンピューティング環境においてコンピューティングデバイスの間で信号処理を調整するためのシステムの動作の図である。
【図３】音声駆動式のコンピューティング環境においてコンピューティングデバイスの間で信号処理を調整する方法の図である。
【図４】本明細書において説明され、図示されるシステムおよび方法の要素を実装するために使用され得るコンピュータシステムのための大まかなアーキテクチャを示すブロック図である。
【発明を実施するための形態】
【００２２】
以下は、コンピュータネットワークによってパケット化されたアクション(packetized action)をルーティングする方法、装置、およびシステムに関連する様々な概念ならびにそれらの方法、装置、およびシステムの実装のより詳細な説明である。上で導入され、下でより詳細に検討される様々な概念は、多数の方法のいずれかで実装される可能性がある。
【００２３】
本開示は、概して、デジタル音声アシスタントコンピューティングデバイスの間で信号処理を調整することを対象とする。たとえば、複数のネットワーク接続されたデバイスが、部屋の中に置かれ、オンモード、常にオンモード、発見可能モード、または常に発見可能モードであり得る。ネットワーク接続されたデバイスが発見可能であるとき、デジタルアシスタントコンピューティングデバイスは、命令またはコマンドに応答してネットワーク接続されたデバイスを制御しようと試みることができる。複数のデジタルアシスタントコンピューティングデバイスが部屋の中に置かれる場合、各デジタルアシスタントコンピューティングデバイスは、音声の問い合わせに応答して同じネットワーク接続されたデバイスとインタラクションしようと試みるかまたは同じネットワーク接続されたデバイスを制御しようと試みる可能性がある。さらに、デジタルアシスタントコンピューティングデバイスのうちの1つまたは複数によって制御され得る複数のネットワーク接続されたデバイスが存在する場合、システムは、誤ったネットワーク接続されたデバイスを誤って制御する可能性がある。したがって、複数のデジタルアシスタントコンピューティングデバイスが音声コマンドを受け取ることと複数のネットワーク接続されたデバイスを制御することとの両方が可能である音声に基づくコンピューティング環境においては、冗長な処理が原因でコンピューティングリソースが無駄にされる可能性があり、または誤ったネットワーク接続されたデバイスに送信された冗長なコマンドが原因で誤りが生じる可能性がある。たとえば、音声コマンドが居間の温度を高くするためのものであり、2つのデジタルアシスタントコンピューティングデバイスが音声コマンドを検出した場合、それらのデジタルアシスタントコンピューティングデバイスは、意図せずに両方とも、温度を上げるために家の複数のサーモスタット(たとえば、居間のサーモスタットおよび寝室のサーモスタット)に命令を送信する可能性があり、それによって、サーモスタットに温度を2回上げさせるか、複数のサーモスタットに温度を上げさせるか、または誤ったサーモスタットに命令を無視させ、それによって、コンピューティングリソースを無駄にする結果となる。
【００２４】
本解決方法のシステムおよび方法は、デジタル音声アシスタントコンピューティングデバイスまたはネットワーク接続されたデバイスの間で信号処理を調整する。デジタル音声アシスタントコンピューティングデバイスは、それぞれ、同じ入力オーディオ信号を検出し、集中的なデータ処理システムにインジケーションを送信することができる。データ処理システムは、入力オーディオ信号または入力オーディオ信号を運ぶデータパケットを解析し、複数のネットワーク接続されたデバイスのうちからネットワーク接続されたデバイスを選択し、選択されたネットワーク接続されたデバイスのためのアクションデータ構造を生成することができる。データ処理システムは、所望のアクションを実行するために対応するネットワーク接続されたデバイスにアクションデータ構造を送信することができる。
【００２５】
データ処理システムは、アクションを実行するためのデジタルアシスタントコンピューティングデバイスまたはネットワーク接続されたデバイスのうちの1つを選択するために機械学習を使用し得る。たとえば、所望のアクションを実行し得る複数のネットワーク接続されたデバイスが、存在する可能性がある。データ処理システムは、所望のアクションを実行するためのネットワーク接続されたデバイスを選択するために機械学習を使用し得る。場合によっては、データ処理システムは、アクションを実行するためのネットワーク接続されたコンピューティングデバイスのうちの1つを選択するために均衡を破る(tie-breaking)論理を利用し得る。
【００２６】
図1は、音声駆動式のコンピューティング環境においてコンピューティングデバイスの間で信号処理を編成するための例示的なシステム100を示す。システム100は、コンテンツ選択インフラストラクチャを含み得る。システム100は、データ処理システム102を含み得る。データ処理システム102は、ネットワーク105を介してデジタルアシスタントコンピューティングデバイス104またはネットワーク接続されたデバイス106のうちの1つまたは複数と通信することができる。ネットワーク105は、インターネット、ローカルエリアネットワーク、広域ネットワーク、メトロエリアネットワーク、またはその他のエリアネットワークなどのコンピュータネットワーク、イントラネット、衛星ネットワーク、および音声またはデータモバイル電話ネットワークなどのその他の通信ネットワークを含み得る。ネットワーク105は、少なくとも1つのデジタルアシスタントコンピューティングデバイス104上で提示、出力、レンダリング、または表示され得るウェブページ、ウェブサイト、ドメイン名、またはユニフォームリソースロケータなどの情報リソースにアクセスするために使用され得る。たとえば、ネットワーク105を介して、デジタルアシスタントコンピューティングデバイス104のユーザは、データ処理システム102によって提供される情報もしくはデータにアクセスするか、ネットワーク接続されたデバイス106とインタラクションすることができる。
【００２７】
ネットワーク105は、任意の種類または形態のネットワークである可能性があり、以下、すなわち、ポイントツーポイントネットワーク、ブロードキャストネットワーク、広域ネットワーク、ローカルエリアネットワーク、電気通信ネットワーク、データ通信ネットワーク、コンピュータネットワーク、ATM(非同期転送モード)ネットワーク、SONET(同期光ネットワーク)ネットワーク、SDH(同期デジタルハイアラーキ: Synchronous Digital Hierarchy)ネットワーク、ワイヤレスネットワーク、および有線ネットワークのいずれかを含む可能性がある。ネットワーク105は、赤外線チャネルまたは衛星帯域などのワイヤレスリンクを含む可能性がある。ネットワーク105のトポロジーは、バス型、スター型、またはリング型ネットワークトポロジーを含む可能性がある。ネットワークは、アドバンストモバイル電話プロトコル(「AMPS: advanced mobile phone protocol」)、時分割多元接続(「TDMA」)、符号分割多元接続(「CDMA(登録商標)」)、移動体通信用グローバルシステム(「GSM(登録商標): global system for mobile communication」)、汎用パケット無線サービス(「GPRS: general packet radio services」)、またはユニバーサル移動体通信システム(「UMTS: universal mobile telecommunications system」)を含むモバイルデバイスの間で通信するために使用される任意の1つのプロトコルまたは複数のプロトコルを使用するモバイル電話ネットワークを含む可能性がある。異なる種類のデータが、異なるプロトコルによって送信される可能性があり、または同じ種類のデータが、異なるプロトコルによって送信される可能性がある。
【００２８】
システム100は、1つまたは複数のデジタルアシスタントコンピューティングデバイス104を含み得る。デジタルアシスタントコンピューティングデバイス104は、音声に基づくインタラクションを提供するためのデジタルアシスタントソフトウェア開発キットまたは機能によって構成されるラップトップ、デスクトップ、タブレット、コンピューティングデバイス、ローカルコンピューティングデバイス、スマートフォン、ポータブルコンピュータ、またはスピーカを含み得るかまたは指し得る。デジタルアシスタントコンピューティングデバイス104は、ディスプレイを含む可能性があり、または含まない可能性があり、たとえば、コンピューティングデバイスは、マイクロフォンおよびスピーカなどの限られた種類のユーザインターフェースを含む可能性がある。場合によっては、デジタルアシスタントコンピューティングデバイス104の主なユーザインターフェースは、マイクロフォンおよびスピーカ、または音声インターフェースである可能性がある。
【００２９】
デジタルアシスタントコンピューティングデバイス104はハードウェアデバイスを指し得るが、場合によっては、デジタルアシスタントコンピューティングデバイス104は、ハードウェアコンポーネントとソフトウェアコンポーネントとの組合せを指し得る。場合によっては、デジタルアシスタントコンピューティングデバイス104は、本開示のシステムおよび方法に関連する1つまたは複数の機能を実行するように構成されるコンピューティングデバイス104上で実行されるアプリケーションなどのソフトウェアコンポーネントまたはモジュールを指し得る。
【００３０】
デジタルアシスタントコンピューティングデバイス104は、少なくとも1つの光源126、センサ128、トランスデューサ130、オーディオドライバ132、もしくはプリプロセッサ134を含むか、少なくとも1つの光源126、センサ128、トランスデューサ130、オーディオドライバ132、もしくはプリプロセッサ134とインターフェースを取るか、またはそうでなければ少なくとも1つの光源126、センサ128、トランスデューサ130、オーディオドライバ132、もしくはプリプロセッサ134と通信することができる。光源126は、ライトインジケータ、発光ダイオード(「LED」)、有機発光ダイオード(「OLED」)、または視覚的もしくは光学的出力を提供するように構成されたその他の視覚的インジケータを含むことができる。センサ128は、たとえば、環境光センサ、近接センサ、温度センサ、加速度計、ジャイロスコープ、モーションディテクタ、GPSセンサ、位置センサ、マイクロフォン、またはタッチセンサを含み得る。トランスデューサ130は、スピーカまたはマイクロフォンを含み得る。オーディオドライバ132は、ハードウェアトランスデューサ130にソフトウェアインターフェースを提供することができる。オーディオドライバは、対応する音響波または音波を生成するようにトランスデューサ130を制御するためにデータ処理システム102によって提供されるオーディオファイルまたはその他の命令を実行することができる。プリプロセッサ134は、キーワードを検出し、キーワードに基づいてアクションを実行するように構成されたハードウェアを有する処理ユニットを含み得る。プリプロセッサ134は、さらなる処理のためにデータ処理システム102に語を送信する前に1つまたは複数の語をフィルタリングして取り除くかまたは語を修正することができる。プリプロセッサ134は、マイクロフォンによって検出されたアナログオーディオ信号をデジタルオーディオ信号に変換し、デジタルオーディオ信号を運ぶ1つまたは複数のデータパケットをネットワーク105を介してデータ処理システム102に送信することができる。場合によっては、プリプロセッサ134は、そのような送信を実行するための命令を検出することに応じて入力オーディオ信号の一部またはすべてを運ぶデータパケットを送信することができ
る。命令は、たとえば、入力オーディオ信号を含むデータパケットをデータ処理システム102に送信するためのトリガキーワードまたはその他のキーワードまたは承認を含み得る。プリプロセッサ134は、入力信号を検出し、入力信号が信号処理のための閾値を満たすかどうかを判定する信号品質チェッカ136を含むかまたは実行することができる。
【００３１】
デジタルアシスタントコンピューティングデバイス104は、(センサ128を介して)デジタルアシスタントコンピューティングデバイス104に音声の問い合わせをオーディオ入力として入力し、トランスデューサ130(たとえば、スピーカ)から出力された、データ処理システム102からローカルクライアントデジタルアシスタントコンピューティングデバイス104に提供され得るコンピュータによって生成された音声の形態のオーディオ出力を受け取るエンドユーザに関連付けられ得る。コンピュータによって生成された音声は、本物の人からの録音またはコンピュータによって生成された言葉を含み得る。
【００３２】
デジタルアシスタントコンピューティングデバイス104は、音声入力またはその他の入力を使用してユーザがデジタルアシスタントコンピューティングデバイス104とインタラクションすることを可能にするための位置に位置付けられ得る。デジタルアシスタントコンピューティングデバイス104は、データ処理システム102などの遠隔のサーバから離れて置かれ得る。デジタルアシスタントコンピューティングデバイス104は、ユーザが音声入力を使用してデジタルアシスタントコンピューティングデバイス104とインタラクションすることができる家、分譲マンション、アパート、オフィス、ホテルの部屋、モール、小個室、またはその他の建物もしくは住居内に位置付けられ得る一方、データ処理システム102は、たとえば、データセンター内に遠隔に置かれ得る。
【００３３】
システム100は、ユーザから入力オーディオ信号を受け取るように動作可能である複数のデジタルアシスタントコンピューティングデバイス104を含み得る。たとえば、第1のデジタルアシスタントコンピューティングデバイス104および第2のデジタルアシスタントコンピューティングデバイス104が、第1のデジタルアシスタントコンピューティングデバイス104と第2のデジタルアシスタントコンピューティングデバイス104との両方が入力オーディオ信号を検出することができるようにエリア、領域、または部屋内に配置されるか、位置付けられるか、またはそうでなければ置かれることが可能である。入力オーディオ信号は、エンドユーザによって与えられるかまたは発話される音声または音響波を含み得る。入力オーディオ信号は、第1のデジタルアシスタントコンピューティングデバイス104と第2のデジタルアシスタントコンピューティングデバイス104との両方によって検出され得る。入力オーディオ信号は、第1のデジタルアシスタントコンピューティングデバイス104または第2のデジタルアシスタントコンピューティングデバイス104のうちの1つが入力オーディオ信号を処理すべきであることを指定する識別情報を含まない可能性がある。
【００３４】
場合によっては、入力オーディオ信号は、第1のデジタルアシスタントコンピューティングデバイス104または第2のデジタルアシスタントコンピューティングデバイス104のうちのどちらが入力オーディオ信号を処理すべきであるかを指定する識別情報を含み得る。識別情報は、「first」、「home」、「living room」、または「kitchen」などの第1のまたは第2のデジタルアシスタントコンピューティングデバイス104に割り振られたラベルまたはその他の識別子を含み得る。識別情報は、英数字の値を含み得る。場合によっては、入力オーディオ信号がさらなる処理のために使用する第1のまたは第2のデジタルコンピューティングデバイス104のうちの1つを選択するために使用され得る識別情報を含む場合、データ処理システム102は、さらなる信号処理を実行するように対応するデジタルアシスタントコンピューティングデバイスに命令することができる。場合によっては、データ処理システム102は、識別情報を覆し、入力オーディオ信号内で特定されない可能性があるデジタルアシスタントコンピューティングデバイス104を選択することを決定し得る。データ処理システム102は、ポリシーに基づいて、入力オーディオ信号内で特定されなかったデジタルアシスタントコンピューティングデバイスが入力オーディオ信号内で特定されたデジタルアシスタントコンピューティングデバイスに比べて入力オーディオ信号を処理するのにより適している可能性があると判定し得る。入力オーディオ信号内で特定されなかったデジタルアシスタントコンピューティングデバイスは、そのデジタルアシスタントコンピューティングデバイスが入力オーディオ信号のより高い品質のバージョンを検出した可能性がある(たとえば、入力オーディオ信号のソースがより近くにある可能性があるか、もしくはマイクロフォンがより高い品質である可能性がある)ため、より高速なプロセッサを有する可能性があるため、より多くの利用可能なメモリを有する可能性があるため、より高速なネットワーク接続を有する可能性があるため、より多くのバッテリ電力が残っているかもしくはコンセントに接続されている可能性があるため、またはより多くのもしくはより高い品質の入力/出力インターフェース(たとえば、複数のマイクロフォン、スピーカ、ディスプレイ、タ
ッチインターフェース、ジェスチャインターフェース、センサ、キーボード、もしくはマウス)を有する可能性があるために入力オーディオ信号を処理するのにより適している可能性がある。このようにして、システム100は、入力オーディオ信号のより正確な処理を容易にし得る。
【００３５】
デジタルアシスタントコンピューティングデバイス104は、信号品質チェッカ136を含むか、信号品質チェッカ136にアクセスするか、またはそうでなければ信号品質チェッカ136とインタラクションすることができる。信号品質チェッカ136は、ハードウェアまたはソフトウェアコンポーネントまたはモジュールを指し得る。信号品質チェッカ136は、1つまたは複数のプロセッサ、回路、論理アレイ、アプリケーション、プログラム、アプリケーションプログラミングインターフェース、またはその他のコンポーネントもしくはモジュールを含み得る。信号品質チェッカ136は、プリプロセッサ134、センサ128、トランスデューサ130、またはオーディオドライバ132と通信するように構成された少なくとも1つの処理ユニットもしくはプログラマブル論理アレイエンジンなどのその他の論理デバイスまたはモジュールを含み得る。信号品質チェッカ136およびプリプロセッサ134は、単一のコンポーネントであるか、またはデジタルアシスタントコンピューティングデバイス104の一部であることが可能である。デジタルアシスタントコンピューティングデバイス104は、1つまたは複数のプロセッサ、論理デバイス、または回路などのハードウェア要素を含み得る。
【００３６】
信号品質チェッカ136は、検出された入力オーディオ信号を受信し、入力オーディオ信号の品質パラメータを決定するために入力オーディオ信号を分析することができる。信号品質チェッカ136は、入力オーディオ信号の品質パラメータが閾値を満たすかどうかを判定することができる。信号品質チェッカ136は、検出された入力オーディオ信号がさらなる信号処理のために十分な品質であるかどうかを判定することができる。
【００３７】
入力オーディオ信号を処理するために、デジタルアシスタントコンピューティングデバイス104は、特定の品質レベルの入力オーディオ信号を検出することができる。たとえば、デジタルアシスタントコンピューティングデバイス104によって検出された入力オーディオ信号が低いまたは悪い品質を有する場合、入力オーディオ信号に対するデジタルアシスタントコンピューティングデバイス104による下流の処理は、誤りがあるか、信頼できないか、失敗するか、または余分なプロセッサもしくはメモリの利用を必要とする可能性がある。場合によっては、下流の処理は、エンドユーザに特定の語を繰り返すことを求めるオーディオプロンプトなどの追加のプロンプトを生成する可能性がある。場合によっては、誤った下流の処理は、誤った命令またはコマンドを有するアクションデータ構造が誤ったネットワーク接続されたデバイス106に送信される結果をもたらす可能性がある。したがって、システム100が複数のデジタルアシスタントコンピューティングデバイス104を含む可能性があるので、複数のデジタルアシスタントコンピューティングデバイス104によって受け取られた入力オーディオ信号の品質をチェックし、さらなる信号処理のためのデジタルアシスタントコンピューティングデバイス104のうちの1つを選択することは、信号処理の正確さを高め、正しい命令およびコマンドを有するアクションデータ構造を生成しながら、誤りを減らし、プロセッサの利用を減らし、メモリの消費を減らす可能性がある。
【００３８】
品質パラメータは、たとえば、信号対雑音比(たとえば、デシベルで測定されたノイズフロアに対する比としての信号強度)、サンプルレート、スプリアスフリーダイナミックレンジ(spurious-free dynamic range)(たとえば、最も強いスプリアス信号(spurious signal)に対する基本波信号(fundamental signal)の強度比。次に大きな雑音もしくは高調波歪成分の2乗平均平方根(「RMS」)の値に対するアナログ-デジタルコンバータの入力における搬送波もしくは最大信号成分のRMSの値の比として定義され得る)、全高調波歪率(たとえば、入力オーディオ信号内に存在する高調波歪の測定値であり、基本周波数の電力に対する高調波成分の電力の合計の比として定義され得る)、周波数範囲、またはダイナミックレンジを含み得る。さらなる品質パラメータは、(たとえば、基準の文字起こしを音声認識器によって出力された文字起こしと比較することによって計算された)単語誤り率、単語認識精度(word accuracy)、または単語認識精度に関連する信頼レベル(たとえば、プリプロセッサ134が入力信号内の単語を正しく認識した、プリプロセッサ134によって割り振られた尤度)などの音声認識品質の測定基準に基づくことが可能である。
【００３９】
たとえば、信号品質チェッカ136は、入力オーディオ信号が閾値を満たすかどうかを判定するために入力オーディオ信号にポリシーを適用することができる。信号品質チェッカ136は、データ処理システム102からポリシーを取得することができる。信号品質チェッカ136は、1つまたは複数のポリシーおよびポリシーを適用するために使用する関連する閾値を記憶することができるアカウントデータ構造118または閾値データ構造120からポリシーを受け取ることができる。たとえば、ポリシーは、信号対雑音比を閾値の信号対雑音比と比較することであることが可能である。閾値のSNRは、動的であることが可能である。閾値のSNRは、履歴的な機械学習モデルに基づいて設定され得る。閾値のSNRは、デジタルアシスタントコンピューティングデバイス104の種類のためにカスタマイズされ得る。閾値のSNRは、デジタルアシスタントコンピューティングデバイスの特徴(たとえば、マイクロフォンの数またはマイクロフォンのその他の特徴)に基づいてカスタマイズし得る。閾値のSNRは、同じデジタルアシスタントコンピューティングデバイス104の複数のマイクロフォンから検出された複数の入力オーディオ信号を組み合わせるかまたは合計することによって決定された集約入力オーディオ信号に適用され得る。閾値のSNRは、たとえば、-18dB、-15dB、-12dB、-9dB、-6dB、-3dB、0dB、3dB、6dB、または何らかのその他の値であることが可能である。
【００４０】
入力信号の信号対雑音比が閾値以上である場合、信号品質チェッカ136は、第1のデジタルアシスタントコンピューティングデバイス104によって検出された入力信号が閾値を満たすと判定する。信号品質チェッカ136が入力オーディオ信号の品質パラメータが閾値を満たすと判定する場合、信号品質チェッカ136は、過度の誤りなく入力オーディオ信号を信頼可能なようにおよび正確に処理するのに十分な品質で入力オーディオ信号が検出されるので、第1のデジタルアシスタントコンピューティングデバイス104が入力オーディオ信号を処理するように動作可能であると判定し得る。
【００４１】
場合によっては、信号品質チェッカ136は、検出された入力オーディオ信号の品質を判定するために入力オーディオ信号の一部を分析し得る。信号品質チェッカ136は、完全な検出された入力オーディオ信号を分析し得る。信号品質チェッカ136は、入力オーディオ信号の所定の部分(たとえば、最初の1秒、最初の2秒、3秒、4秒、5秒、10秒)を分析し得る。場合によっては、信号品質チェッカ136は、検出された入力オーディオ信号の品質が十分であるかどうかを判定するために検出された入力オーディオ信号の一部に対してスピーチトゥテキスト認識を実行し得る。
【００４２】
場合によっては、デジタルアシスタントコンピューティングデバイス104は、データ処理システム102に入力オーディオ信号を送信することができ、データ処理システム102が、信号品質のチェックを実行することができる。たとえば、信号品質チェッカ136は、データ処理システム102上で実行され得る。デジタルアシスタントコンピューティングデバイス104は、データ処理システム102に入力オーディオ信号の所定の部分(たとえば、最初の1秒、2秒、3秒、または5秒)を送信することができ、データ処理システム102が、信号に対して信号品質のチェックを実行することができる。信号品質のチェックを実行すると、データ処理システム102は、入力オーディオ信号に対してさらなる処理を実行するようにデジタルアシスタントコンピューティングデバイス104のうちの1つに命令することができる。
【００４３】
信号品質チェッカ136は、データ処理システム102にインジケーションを送信することができる。信号品質チェッカ136は、デジタルアシスタントコンピューティングデバイス104が入力オーディオ信号を処理するように動作可能であるというインジケーションを送信することができる。信号品質チェッカ136が入力オーディオ信号が下流の処理を信頼可能なようにおよび正確に実行するのに十分な品質で検出されたと判定する場合、信号品質チェッカ136は、判定に応じて、デジタルアシスタントコンピューティングデバイス104が入力オーディオ信号を処理するように動作可能であると送信し得る。
【００４４】
信号品質チェッカ136は、デジタルアシスタントコンピューティングデバイス104が入力オーディオ信号を処理するように動作可能でないというインジケーションを送信することができる。信号品質チェッカ136が検出された入力オーディオ信号が十分な品質でない(たとえば、SNRが閾値未満である)と判定する場合、信号品質チェッカ136は、判定に応じて、デジタルアシスタントコンピューティングデバイスが検出された入力オーディオ信号を処理するように動作可能でないというインジケーションを送信し得る。
【００４５】
システム100は、少なくとも1つのネットワーク接続されたデバイス106を含むか、少なくとも1つのネットワーク接続されたデバイス106にアクセスするか、またはそうでなければ少なくとも1つのネットワーク接続されたデバイス106とインタラクションすることができる。ネットワーク接続されたデバイス106は、第三者デバイスを指し得る。ネットワーク接続されたデバイス106は、たとえば、デジタルアシスタントコンピューティングデバイス104またはデータ処理システム102とネットワーク105を介して通信するためのプロセッサまたは回路を有するコンピューティングデバイスなどの少なくとも1つの論理デバイスを含み得る。ネットワーク接続されたデバイス106は、少なくとも1つの計算リソース、サーバ、プロセッサ、またはメモリを含み得る。たとえば、ネットワーク接続されたデバイス106は、少なくとも1つのデータセンターに置かれた複数の計算リソースまたはサーバを含み得る。ネットワーク接続されたデバイス106は、モノのインターネットデバイスを含むかまたは指し得る。ネットワーク接続されたデバイス106は、たとえば、スピーカデバイス、テレビデバイス、モバイルデバイス、ウェアラブルデバイス、デジタルランプ、デジタルサーモスタット、デジタル家電、またはデジタル自動車のうちの少なくとも1つを含み得る。たとえば、デジタルアシスタントコンピューティングデバイス104は、デジタルランプを含むネットワーク接続されたデバイス106の出力される光の強さのレベルを制御し得る。デジタルアシスタントコンピューティングデバイス104は、光の強さを調整する(たとえば、強さを下げる、強さを上げる、光源をオフにする、または光源をオンにする)ためのコマンドを有するエンドユーザからの入力オーディオ信号を検出し、それから、(たとえば、データ処理システム102を介して)ネットワーク接続されたデバイス106にコマンドを与えることができる。
【００４６】
システム100は、少なくとも1つのデータ処理システム102を含み得る。データ処理システム102は、たとえば、デジタルアシスタントコンピューティングデバイス104またはネットワーク接続されたデバイス106とネットワーク105を介して通信するためのプロセッサを有するコンピューティングデバイスなどの少なくとも1つの論理デバイスを含み得る。データ処理システム102は、少なくとも1つの計算リソース、サーバ、プロセッサ、またはメモリを含み得る。たとえば、データ処理システム102は、少なくとも1つのデータセンターに置かれた複数の計算リソースまたはサーバを含み得る。データ処理システム102は、複数の論理的にグループ分けされたサーバを含み、分散型コンピューティング技術を促進することができる。サーバの論理的グループは、データセンター、サーバファーム、またはマシンファームと呼ばれる可能性がある。また、サーバは、地理的に散らされ得る。データセンターまたはマシンファームは、単一のエンティティとして管理される可能性があり、またはマシンファームは、複数のマシンファームを含むことが可能である。各マシンファーム内のサーバは、異種であることができる-サーバまたはマシンのうちの1つまたは複数が、1つまたは複数の種類のオペレーティングシステムプラットフォームに応じて動作することができる。
【００４７】
マシンファーム内のサーバは、関連するストレージシステムと一緒に高密度ラックシステムに収容され、エンタープライズデータセンターに置かれ得る。たとえば、このようにしてサーバをまとめることは、サーバおよび高性能ストレージシステムを局所的な高性能ネットワーク上に置くことによってシステムの管理の容易性、データセキュリティ、システムの物理的セキュリティ、およびシステムの性能を改善する可能性がある。サーバおよびストレージシステムを含み、それらを高度なシステム管理ツールに結合するデータ処理システム102のコンポーネントのすべてまたは一部の集中化は、電力および処理の要件を減らし、帯域幅の使用を削減する、サーバリソースのより効率的な使用を可能にする。
【００４８】
データ処理システム102は、少なくとも1つのインターフェース108を含むか、少なくとも1つのインターフェース108とインターフェースを取るか、またはそうでなければ少なくとも1つのインターフェース108と通信することができる。データ処理システム102は、少なくとも1つの自然言語プロセッサコンポーネント110を含むか、少なくとも1つの自然言語プロセッサコンポーネント110とインターフェースを取るか、またはそうでなければ少なくとも1つの自然言語プロセッサコンポーネント110と通信することができる。データ処理システム102は、少なくとも1つのオーケストレータコンポーネント112を含むか、少なくとも1つのオーケストレータコンポーネント112とインターフェースを取るか、またはそうでなければ少なくとも1つのオーケストレータコンポーネント112と通信することができる。オーケストレータコンポーネント112は、デジタルアシスタントコンピューティングデバイスの間で信号処理を調整することができる。データ処理システム102は、少なくとも1つのダイレクトアクションアプリケーションプログラミングインターフェース(「ダイレクトアクションAPI」)114を含むか、少なくとも1つのダイレクトアクションAPI 114とインターフェースを取るか、またはそうでなければ少なくとも1つのダイレクトアクションAPI 114と通信することができる。データ処理システム102は、少なくとも1つのデータリポジトリ116を含むか、少なくとも1つのデータリポジトリ116とインターフェースを取るか、またはそうでなければ少なくとも1つのデータリポジトリ116と通信することができる。
【００４９】
データリポジトリ116は、1つまたは複数のローカルまたは分散型データベースを含むことができ、データベース管理システムを含むことができる。データリポジトリ116は、コンピュータデータストレージまたはメモリを含むことができ、1つもしくは複数のアカウント118、1つもしくは複数の閾値120、1つもしくは複数のモデル122、または1つもしくは複数のテンプレート124を記憶することができる。アカウントデータ構造118は、デジタルアシスタントコンピューティングデバイス104またはネットワーク接続されたデバイス106に関連する情報を含み得る中心のアカウントまたは集中化されたアカウントを指し得る。情報は、ステータス情報、モード情報、リンク、またはプロファイル情報を含み得る。閾値データ構造120は、検出されたオーディオ信号の品質が信号処理のために十分であるかどうかを判定するために信号品質チェッカ136によって使用され得る閾値に関する値を含むことができる。閾値は、数値または英数字の値を含み得る。テンプレート124は、アクションデータ構造を生成するためにダイレクトアクションAPI 114によって使用されるフィールドおよび値を含み得る。モデル122は、機械学習モデルを指し得る。たとえば、機械学習モデル122は、デジタルアシスタントコンピューティングデバイス104に関連する履歴的インジケーションに基づいて生成され得る。機械学習モデルは、デジタルアシスタントコンピューティングデバイス104によって検出された入力オーディオ信号に関する履歴的な品質パラメータ値に基づいて生成され得る。機械学習モデルは、デジタルアシスタントコンピューティングデバイス104に関連する特徴または構成に基づいて生成され得る。
【００５０】
インターフェース108、NLPコンポーネント110、オーケストレータコンポーネント112、またはダイレクトアクションAPI 114は、データベースリポジトリまたはデータリポジトリ116と通信するように構成された少なくとも1つの処理ユニットもしくはプログラマブル論理アレイエンジンなどのその他の論理デバイスまたはモジュールをそれぞれ含み得る。インターフェース108、自然言語プロセッサコンポーネント110、オーケストレータコンポーネント112、ダイレクトアクションAPI 114、またはデータリポジトリ116は、別々のコンポーネント、単一のコンポーネント、またはデータ処理システム102の一部であることが可能である。システム100およびデータ処理システム102などのそのコンポーネントは、1つまたは複数のプロセッサ、論理デバイス、または回路などのハードウェア要素を含むことができる。
【００５１】
データ処理システム102は、複数のコンピューティングデバイス104に関連する匿名のコンピュータネットワーク活動情報を取得することができる。デジタルアシスタントコンピューティングデバイス104のユーザは、デジタルアシスタントコンピューティングデバイス104に対応するネットワーク活動情報を取得することをデータ処理システム102に肯定的に認可することが可能である。たとえば、データ処理システム102は、1つまたは複数の種類のネットワーク活動情報を取得することに同意するようにデジタルアシスタントコンピューティングデバイス104のユーザに促すことができる。デジタルアシスタントコンピューティングデバイス104のユーザのアイデンティティ(identity)は、匿名のままであることができ、コンピューティングデバイス104は、一意識別子(たとえば、データ処理システムまたはコンピューティングデバイスのユーザによって提供されるユーザまたはコンピューティングデバイスの一意識別子)に関連付けられ得る。データ処理システムは、各観測値(observation)を対応する一意識別子と関連付けることができる。
【００５２】
データ処理システム102は、たとえば、データパケットを使用して情報を受信および送信するように設計されたか、構成されたか、構築されたか、または動作可能であるインターフェース108を含み得る。インターフェース108は、ネットワークプロトコルなどの1つまたは複数のプロトコルを使用して情報を受信および送信することができる。インターフェース108は、ハードウェアインターフェース、ソフトウェアインターフェース、有線インターフェース、またはワイヤレスインターフェースを含み得る。インターフェース108は、あるフォーマットから別のフォーマットにデータを変換するかまたはフォーマットすることを容易にし得る。たとえば、インターフェース108は、ソフトウェアコンポーネントなどの様々なコンポーネントの間で通信するための定義を含むアプリケーションプログラミングインターフェースを含み得る。インターフェース108は、ネットワーク105を介してデジタルアシスタントコンピューティングデバイス104またはネットワーク接続されたデバイス106のうちの1つまたは複数と通信することができる。
【００５３】
データ処理システム102は、入力オーディオ信号をデータ処理システム102のインターフェース108に伝達し、出力オーディオ信号をレンダリングするようにデジタルアシスタントコンピューティングデバイスのコンポーネントを駆動するためのアプリなどの、デジタルアシスタントコンピューティングデバイス104にインストールされたアプリケーション、スクリプト、またはプログラムとインターフェースを取ることができる。データ処理システム102は、オーディオ入力信号を含むかまたは特定するデータパケットまたはその他の信号を受信することができる。
【００５４】
データ処理システム102は、デジタルアシスタントコンピューティングデバイス104からインジケーションを受信し、入力オーディオ信号を処理するためのデジタルアシスタントコンピューティングデバイス104のうちの1つを選択し、検出された入力オーディオ信号を処理するように選択されたデジタルアシスタントコンピューティングデバイス104に命令するように設計され、構築され、動作可能なオーケストレータコンポーネント112を含むか、そのようなオーケストレータコンポーネント112とインターフェースを取るか、またはそのようなオーケストレータコンポーネント112にアクセスすることができる。オーケストレータコンポーネント112は、同じネットワーク接続されたデバイス106を制御するためのコマンドを運ぶ同じ入力オーディオ信号をそれぞれが検出した複数のデジタルアシスタントコンピューティングデバイス104を含むシステム100の全体的なプロセッサ、メモリ、および帯域幅の利用を減らすために信号処理を調整することができる。両方のデジタルアシスタントコンピューティングデバイス104が同じ検出された入力オーディオ信号を処理することを可能にするのではなく、オーケストレータコンポーネント112が、入力オーディオ信号を解析し、コマンドを含むデータパケットを生成する下流の処理を実行し、データパケットをデータ処理システム102に送信するためのデジタルアシスタントコンピューティングデバイス104のうちの1つを選択することができ、データ処理システム102が、コマンドを特定するためのさらなる自然言語処理を適用し、アクションデータ構造を生成し、ネットワーク接続されたデバイス106を制御するために対応するネットワーク接続されたデバイス106にアクションデータ構造を送信することができる。
【００５５】
オーケストレータコンポーネント112は、入力オーディオ信号を検出した各デジタルアシスタントコンピューティングデバイス104からインジケーションを受信することができる。場合によっては、オーケストレータコンポーネント112は、デジタルアシスタントコンピューティングデバイス104が入力オーディオ信号に対してさらなる処理を実行する前にインジケーションを受信することができる。たとえば、オーケストレータコンポーネント112は、デジタルアシスタントコンピューティングデバイス104が入力オーディオ信号を解析して入力オーディオ信号をデータパケットに変換し、自然言語処理、フィルタリングを実行するか、またはそれ以外の方法で入力オーディオ信号を処理する前にインジケーションを受信することができる。デジタルアシスタントコンピューティングデバイス104は、インジケーションを送信し、入力オーディオ信号に対してさらなる処理を実行する前にデータ処理システム102からの命令を待つことができる。デジタルアシスタントコンピューティングデバイス104は、(たとえば、信号品質チェッカ136を介して)データ処理システム102がさらなる命令を与えるまでさらなる下流の処理を遮断するか、一時停止するか、または保留することができ、それによって、無駄なコンピューティングリソースの利用を防止または削減する。
【００５６】
オーケストレータコンポーネント112が受信するインジケーションは、タイムスタンプ、アカウント識別子、および位置情報を含み得る。オーケストレータコンポーネント112は、タイムスタンプ、アカウント識別子、および位置情報を使用して、まちまちの品質レベルであっても、複数のデジタルアシスタントコンピューティングデバイス104によって検出された入力信号が同じ入力オーディオ信号であると判定し得る。タイムスタンプは、入力オーディオ信号がデジタルアシスタントコンピューティングデバイス104によって検出された時間を示すことができる。オーケストレータコンポーネント112は、複数のインジケーションに関連するタイムスタンプを比較して、デジタルアシスタントコンピューティングデバイス104が同じ入力オーディオ信号を検出したと判定し得る。オーケストレータコンポーネント112は、さらにタイムスタンプおよびアカウント識別子を比較して、インジケーションが同じ入力オーディオ信号に対応するかどうかを判定し得る。オーケストレータコンポーネント112は、さらにタイムスタンプ、アカウント識別子、各インジケーションに関連する位置情報を比較して、インジケーションが同じ入力オーディオ信号に対応するかどうかを判定し得る。たとえば、インジケーションがタイムスタンプ3:34:10 PMに始まり、同じワイヤレスゲートウェイに関連する同じインターネットプロトコルアドレスに対応する位置を有する入力オーディオ信号に対応する場合、オーケストレータコンポーネント112は、インジケーションが同じ入力オーディオ信号に関連付けられると判定し得る。別の例において、タイムスタンプは、入力オーディオ信号の開始タイムスタンプおよび入力オーディオ信号の継続時間を含み得る。オーケストレータコンポーネント112は、開始タイムスタンプ、継続時間、およびアカウント識別子を比較して、複数のデジタルアシスタントコンピューティングデバイスが同じ入力オーディオ信号を検出したかどうかを判定することができる。
【００５７】
アカウント識別子は、デジタルアシスタントコンピューティングデバイス104を構成またはセットアップするために使用されたアカウントまたはプロファイルに対応し得る。アカウントは、デジタルアシスタントコンピューティングデバイス104を有効化するかまたはデジタルアシスタントコンピューティングデバイス104にログインするために使用され得る。デジタルアシスタントコンピューティングデバイス104は、アカウントにリンクされ得る。アカウント情報は、データ処理システム102内のデータリポジトリ116上のアカウントデータ構造118に記憶され得る。1つまたは複数のデジタルアシスタントコンピューティングデバイス104が、アカウントデータ構造118に記憶された同じアカウントにリンクされ得る。1つまたは複数のネットワーク接続されたデバイス106が、同じアカウントにリンクされ得る。アカウントは、英数字の値などの識別子を含み得る。
【００５８】
オーケストレータコンポーネント112は、第1のデジタルアシスタントコンピューティングデバイス104が入力オーディオ信号を処理するように動作可能であるというインジケーションを第1のデジタルアシスタントコンピューティングデバイス104から受信することができる。オーケストレータコンポーネント112は、第2のデジタルアシスタントコンピューティングデバイス104が入力オーディオ信号を処理するように動作可能であるというインジケーションを第2のデジタルアシスタントコンピューティングデバイス104からさらに受信することができる。場合によっては、オーケストレータコンポーネント112は、第1のまたは第2のデジタルアシスタントコンピューティングデバイス104のうちの少なくとも1つが入力オーディオ信号を処理するように動作可能でないというインジケーションを第1のまたは第2のデジタルアシスタントコンピューティングデバイス104のうちの少なくとも1つから受信することができる。
【００５９】
オーケストレータコンポーネント112が第1のデジタルアシスタントコンピューティングデバイス104と第2のデジタルアシスタントコンピューティングデバイス104との両方が同じ入力オーディオ信号を処理するように動作可能であるというインジケーションを受信する場合、オーケストレータコンポーネント112は、さらなる信号処理を実行するための第1のデジタルアシスタントコンピューティングデバイス104または第2のデジタルアシスタントコンピューティングデバイス104のうちの1つを選択することができる。たとえば、オーケストレータコンポーネント112は、第1のデジタルアシスタントコンピューティングデバイス104または第2のデジタルアシスタントコンピューティングデバイス104のうちの一方をプライマリ信号プロセッサとして割り振るかまたは設定し、第1のデジタルアシスタントコンピューティングデバイス104または第2のデジタルアシスタントコンピューティングデバイス104のうちの他方をセカンダリ信号プロセッサとして割り振るかまたは設定することができる。オーケストレータコンポーネント112は、デフォルトで、プライマリ信号プロセッサが入力オーディオ信号を処理するように動作可能であるというインジケーションを受信することに応じてプライマリ信号プロセッサを選択し得る。
【００６０】
オーケストレータコンポーネント112は、第1のデジタルアシスタントコンピューティングデバイス104または第2のデジタルアシスタントコンピューティングデバイス104のうちの一方をプライマリ信号プロセッサとして設定し、第1のデジタルアシスタントコンピューティングデバイス104または第2のデジタルアシスタントコンピューティングデバイス104のうちの他方をセカンダリ信号プロセッサとして設定することができる。オーケストレータコンポーネント112は、1つまたは複数のデジタルアシスタントコンピューティングデバイス104に関連する特徴を取得するためにアカウント識別子に関連する1つまたは複数のデジタルアシスタントコンピューティングデバイス104にポーリングし、特徴の分析に基づいて1つまたは複数のデジタルアシスタントコンピューティングデバイス104のうちの1つをプライマリ信号プロセッサとして設定することができる。たとえば、オーケストレータコンポーネント112は、第1のデジタルアシスタントコンピューティングデバイスの1つまたは複数の特徴を取得するために第1のデジタルアシスタントコンピューティングデバイスにポーリングすることができる。オーケストレータコンポーネント112は、第2のデジタルアシスタントコンピューティングデバイス104の1つまたは複数の特徴を取得するために第2のデジタルアシスタントコンピューティングデバイス104にポーリングすることができる。オーケストレータコンポーネント112は、第1のデジタルアシスタントコンピューティングデバイス104の1つまたは複数の特徴および第2のデジタルアシスタントコンピューティングデバイス104の1つまたは複数の特徴の比較に基づいて、第1のデジタルアシスタントコンピューティングデバイス104をプライマリ信号プロセッサとして設定し、第2のデジタルアシスタントコンピューティングデバイス104をセカンダリ信号プロセッサとして設定すると決定し得る。そのとき、オーケストレータコンポーネント112は、第1のデジタルアシスタントコンピューティングデバイス104をプライマリ信号プロセッサとして設定し、第2のデジタルアシスタントコンピューティングデバイス104をセカンダリ信号プロセッサとして設定することができる。
【００６１】
特徴は、デバイスの種類もしくはデバイスの構成を含むかまたはデバイスの種類もしくはデバイスの構成に基づくことが可能である。たとえば、デバイスの種類は、スピーカデバイス、テレビデバイス、モバイルデバイス、およびウェアラブルデバイスを含み得る。オーケストレータコンポーネント112は、特定の種類のデバイスをその他の種類のデバイスよりも優先し得る。たとえば、デバイスの種類の優先度は、Table 1(表1)の通りであることが可能である。
【００６２】
【表１】
2021513693.tif 000003
【００６３】
デバイスの種類は、特定のデバイスについての特定の情報を必要とすることなくその種類のデバイスの共通の特徴に基づいて速い決定が行われることを可能にする可能性がある。追加的にまたは代替的に、データ処理システム102は、デバイスの特徴またはデバイスの現在の構成に基づいてデバイスをランク付けし得る。特徴は、プロセッサの速度、マイクロフォンの品質、マイクロフォンの数、スピーカの品質、入力/出力インターフェースの種類、デバイスの年式、またはデバイスのネットワークの速度を指し得る。現在の構成は、デバイスがコンセントに接続されているのかまたはバッテリを使い果たそうとしているのか、オペレーティングシステムのバージョン、またはアプリケーションのバージョンを指し得る。
【００６４】
オーケストレータコンポーネント112は、デジタルアシスタントコンピューティングデバイス104をプライマリ信号プロセッサまたはセカンダリ信号プロセッサとして設定すると決定するためにデジタルアシスタントコンピューティングデバイス104の特徴または構成にポリシーを適用し得る。たとえば、デジタルアシスタントコンピューティングデバイス104がコンセントに接続されており、専用のデジタルアシスタントコンピューティングデバイス(たとえば、設計によって主な目的が音声に基づくデジタルアシスタントとして働くことであるコンピューティングデバイス)である場合、データ処理システム102は、専用のデジタルアシスタントコンピューティングデバイスをプライマリ信号プロセッサであるように設定し得る。別の例においては、第1のデジタルアシスタントコンピューティングデバイス104がコンセントに接続されており、第2のデジタルアシスタントコンピューティングデバイス104がコンセントに接続されていないが、バッテリ電力を使い果たそうとしているウェアラブルデバイスである場合、データ処理システム102は、第1のデジタルアシスタントコンピューティングデバイス104をプライマリ信号プロセッサとして設定し、第2のデジタルアシスタントコンピューティングデバイス104をセカンダリ信号プロセッサとして設定し得る。別の例においては、第1のデジタルデバイスと第2のデジタルデバイスとの両方がコンセントに接続されているが、第1のデジタルアシスタントコンピューティングデバイスがより高い品質のマイクロフォンおよびより多くのメモリを有するより高速なハードウェアプロセッサを有する場合、オーケストレータコンポーネント112は、第1のデジタルアシスタントコンピューティングデバイス104をプライマリ信号プロセッサとして設定し得る。
【００６５】
オーケストレータコンポーネント112は、デジタルアシスタントコンピューティングデバイスを主またはセカンダリ信号プロセッサとして動的に設定し得る。オーケストレータコンポーネント112は、第1のデジタルアシスタントコンピューティングデバイスの状態(たとえば、特徴または構成)の変化を検出し得る。オーケストレータコンポーネント112は、第1のデジタルアシスタントコンピューティングデバイスの状態の変化に基づいて、第2のデジタルアシスタントコンピューティングデバイスをプライマリ信号プロセッサに切り替え、第1のデジタルアシスタントコンピューティングデバイスをセカンダリ信号プロセッサに切り替え得る。状態の変化は、特徴または構成の変化を指し得る。状態の変化は、ソフトウェアのバージョンが旧式になること、デバイスがコンセントから抜かれること、バッテリ電力レベルが低く(たとえば、20%未満に)なること、バッテリレベルがプライマリ信号プロセッサのバッテリレベルよりも高くなること、またはコンポーネントが診断検査で不合格になること(たとえば、マイクロフォンが不良であるかもしくは高い雑音のレベルを検出する)を含み得る。
【００６６】
オーケストレータコンポーネント112は、機械学習アルゴリズム、モデル、またはプロセスを使用して、1つまたは複数のデジタルアシスタントコンピューティングデバイス104のうちの1つを主デジタルアシスタントコンピューティングデバイスとして設定することができる。オーケストレータコンポーネント112は、機械学習モデルに基づいて、第1のデジタルアシスタントコンピューティングデバイスをプライマリ信号プロセッサとして設定すると決定し得る。機械学習モデルは、データリポジトリ116内のモデルデータ構造122に記憶され得る。機械学習モデル122は、デジタルアシスタントコンピューティングデバイス104に関連する履歴的インジケーションに基づいて生成され得る。機械学習モデルは、デジタルアシスタントコンピューティングデバイス104によって検出された入力オーディオ信号に関する履歴的な品質パラメータ値に基づいて生成され得る。機械学習モデルは、デジタルアシスタントコンピューティングデバイス104に関連する特徴または構成に基づいて生成され得る。
【００６７】
たとえば、機械学習アルゴリズムまたはモデルは、デジタルアシスタントコンピューティングデバイスが入力オーディオ信号を処理するように動作可能であったかどうか、デバイスの特徴(たとえば、マイクロフォンの品質またはマイクロフォンの数、プロセッサの速度、利用可能なメモリ)、現在の構成(たとえば、ソフトウェアのバージョン、コンセントに接続されているのかまたはバッテリで動作しているのかどうか)、および入力オーディオ信号を与えたエンドユーザによって望まれるようにネットワーク接続されたデバイス106を成功裏に制御するアクションデータ構造を作成することに関する履歴的インジケーションのうちの2つ以上の組合せに基づいて生成され得る。オーケストレータコンポーネント112は、アクションデータ構造がネットワーク接続されたデバイス106を成功裏に制御したかどうかを判定するためのフィードバックを受け取り得る。フィードバックは、直接的なフィードバックまたは間接的なフィードバックの形態であることが可能である。直接的なフィードバックは、ユーザが「no, that is not correct」または「stop」または「undo」と言うことを含み得る。間接的なフィードバックは、たとえば、アクションデータ構造が望まれるようにネットワーク接続されたデバイス106を調整することに失敗することに応じてユーザがネットワーク接続されたデバイス106を手動で調整すること、またはユーザが同じ命令を繰り返す第2の入力オーディオ信号を手動で与えることを含み得る。
【００６８】
オーケストレータコンポーネント112は、機械学習モデルまたはアルゴリズムを使用して信号処理に関する閾値を決定することができる。オーケストレータコンポーネント112は、メモリ(たとえば、データリポジトリ116)内の集中化されたアカウントデータ構造118に、またはデジタルアシスタントコンピューティングデバイス104のローカルメモリに閾値を記憶し得る。
【００６９】
オーケストレータコンポーネント112は、デジタルアシスタントコンピューティングデバイスが入力オーディオ信号を処理するように動作可能であったかどうか、デバイスの特徴(たとえば、マイクロフォンの品質またはマイクロフォンの数、プロセッサの速度、利用可能なメモリ)、現在の構成(たとえば、ソフトウェアのバージョン、コンセントに接続されているのかまたはバッテリで動作しているのかどうか)、および入力オーディオ信号を与えたエンドユーザによって望まれるようにネットワーク接続されたデバイス106を成功裏に制御するアクションデータ構造を作成することに関する履歴的インジケーションのうちの1つまたは複数に基づいて生成された機械学習モデルに基づいて使用する閾値を決定し得る。たとえば、SNRの閾値が前に-15dBに設定され、受け取られたフィードバックが肯定的であった場合、オーケストレータコンポーネント112は、閾値を-15dBに保つかまたはSNRの閾値を-16dBにさらに下げると決定し得る。別の例においては、SNRの閾値が前に-15dBであり、フィードバックが否定的であった場合、オーケストレータコンポーネント112は、たとえば、最小の閾値を-15dBから-12dBに上げ得る。場合によっては、オーケストレータコンポーネント112は、複数のアカウントに関連する複数のデジタルアシスタントコンピューティングデバイス104からの集約されたデータに基づいて特定のデジタルアシスタントコンピューティングデバイス104に関する閾値を設定し得る。
【００７０】
プライマリ信号プロセッサとして選択する1つまたは複数のデジタルアシスタントコンピューティングデバイス104のうちの1つを選択すると、オーケストレータコンポーネント112は、第1のデジタルアシスタントコンピューティングデバイス104のうちの1つに入力信号を処理するように命令し、同じ入力信号を受け取り、インジケーションを送った1つまたは複数のその他のデジタルアシスタントコンピューティングデバイス104にスタンバイモードになるように命令することができる。たとえば、オーケストレータコンポーネント112は、入力オーディオ信号を処理するように第1のデジタルアシスタントコンピューティングデバイス104に命令することができる。オーケストレータコンポーネント112は、第2のデジタルアシスタントコンピューティングデバイス104が入力オーディオ信号を処理することを防止するために第2のデジタルアシスタントコンピューティングデバイス104にスタンバイモードになるようにさらに命令することができる。
【００７１】
第1のデジタルアシスタントコンピューティングデバイス104は、入力オーディオ信号を処理する命令を受信すると、入力オーディオ信号の下流のプロセスを進め、入力オーディオ信号に基づいてデータパケットを生成することができる。プリプロセッサ134は、キーワードを検出し、キーワードに基づいてアクションを実行するように構成され得る。プリプロセッサ134は、さらなる処理のためにデータ処理システム102に語を送信する前に1つまたは複数の語をフィルタリングして取り除くかまたは語を修正することができる。プリプロセッサ134は、マイクロフォンによって検出されたアナログオーディオ信号をデジタルオーディオ信号に変換し、デジタルオーディオ信号を運ぶ1つまたは複数のデータパケットをネットワーク105を介してデータ処理システム102に送信することができる。場合によっては、プリプロセッサ134は、そのような送信を実行する命令を検出することに応じて入力オーディオ信号の一部またはすべてを運ぶデータパケットを送信することができる。命令は、たとえば、入力オーディオ信号を含むデータパケットをデータ処理システム102に送信するためのトリガキーワードまたはその他のキーワードまたは承認を含み得る。場合によっては、プリプロセッサ134は、残りのオーディオ信号をデータ処理システムに送信する前にホットワード「okay device」または「hey device」または「device」などの特定の語をフィルタリングして取り除くことができる。場合によっては、プリプロセッサ134は、さらなる語をフィルタリングして取り除くか、またはさらなる処理のためにデータ処理システムに送信するキーワードを生成し得る。プリプロセッサ134は、ネットワーク接続されたデバイス106を制御するコマンドを含み得るデータパケットを生成し、データパケットをデータ処理システム102に送信することができる。
【００７２】
したがって、デジタルアシスタントコンピューティングデバイス104のうちの1つのみに入力オーディオ信号をフィルタリングし、データパケットに変換するためのさらなる処理を実行させることによって、オーケストレータコンポーネント112は、システム100におけるコンピューティング処理を削減するために信号処理を調整することができる。データ処理システム102(たとえば、NLPコンポーネント110およびダイレクトアクションAPI 114)は、第1のデジタルアシスタントコンピューティングデバイスからコマンドを含むデータパケットを受信し得る。データ処理システム102は、コマンドに基づいてアクションデータ構造を生成し、ネットワーク接続されたデバイスを制御するためにネットワーク接続されたデバイスにアクションデータ構造を送信し得る。
【００７３】
たとえば、データ処理システム102は、オーディオ信号に基づいて生成されたデータパケットを受信または取得し、データパケットを解析するためのNLPコンポーネント110を実行するかまたは走らせることができる。たとえば、NLPコンポーネント110は、人とコンピュータとの間のインタラクションを提供することができる。NLPコンポーネント110は、自然言語を理解し、データ処理システム102が人間のまたは自然言語入力から意味を導出することを可能にするための技術を用いて構成され得る。NLPコンポーネント110は、統計的機械学習などの機械学習に基づく音声認識技術を含むかまたはそのような音声認識技術を用いて構成され得る。NLPコンポーネント110は、入力オーディオ信号を解析するために決定木、統計モデル、または確率モデルを利用することができる。NLPコンポーネント110は、たとえば、固有表現認識(たとえば、テキストのストリームが与えられたものとして、テキスト内のどのアイテムが人または場所などの適切な名前にマッピングされるか、およびそれぞれのそのような名前の種類が人、場所、または組織などのどれであるのかを決定すること)、自然言語生成(たとえば、コンピュータデータベースからの情報または意味的意図(semantic intent)を理解可能な人間の言語に変換すること)、自然言語理解(たとえば、テキストをコンピュータモジュールが操作することができる一階論理構造などのより整然とした表現に変換すること)、機械翻訳(たとえば、ある人間の言語から別の人間の言語に自動的に翻訳すること)、形態素分割(たとえば、考慮されている言語の言葉の形態または構造の複雑さに基づいて困難であり得る、単語を個々の形態素に分け、形態素のクラスを特定すること)、質問応答(たとえば、特定的であるかまたは自由であることが可能である人間の言語の質問に対する答えを決定すること)、意味処理(たとえば、特定された単語を同様の意味を有するその他の単語に関連付けるために、単語を特定し、その単語の意味を符号化した後に行われる得る処理)などの機能を実行することができる。
【００７４】
場合によっては、プリプロセッサ134は、入力オーディオ信号を認識可能なテキストに変換し得る。たとえば、プリプロセッサ134は、NLPコンポーネント110の1つまたは複数の機能を含み得る。場合によっては、データ処理システム102は、(たとえば、NLPコンポーネント110によって)入力信号を(たとえば、データリポジトリ116内の)オーディオ波形の記憶された代表的な組と比較し、最も近い一致を選択することによって、データパケットによって運ばれたオーディオ入力信号を認識されたテキストに変換する。オーディオ波形の組は、データリポジトリ116、またはデータ処理システム102がアクセス可能なその他のデータベースに記憶され得る。代表的な波形が、ユーザの大きな組全体で生成され、それから、ユーザからの発話サンプルによって増強される可能性がある。オーディオ信号が認識されたテキストに変換された後、NLPコンポーネント110は、たとえば、ユーザ全体にわたって訓練することによってまたは手動で指定することによって、データ処理システム102が提供することができるアクションと関連付けられる単語にテキストをマッチングする。
【００７５】
NLPコンポーネント110は、入力オーディオ信号を運ぶデータパケットを取得することができる。入力オーディオ信号から、NLPコンポーネント110は、少なくとも1つの要求または要求に対応する少なくとも1つのトリガキーワードを特定することができる。要求は、入力オーディオ信号の意図または主題を示すことができる。トリガキーワードは、行われる可能性が高いアクションの種類を示すことができる。たとえば、NLPコンポーネント110は、データパケットを解析して、夜に食事会に参加し、映画を見るために家を出る少なくとも1つの要求を特定し得る。トリガキーワードは、行われるアクションを示す少なくとも1つの単語、語句、語根もしくは部分的な単語、または派生語を含み得る。たとえば、入力オーディオ信号からのトリガキーワード「go」または「to go to」は、輸送の必要性を示し得る。この例において、入力オーディオ信号(または特定された要求)は、輸送の意図を直接表さないが、トリガキーワードが、輸送が要求によって示される少なくとも1つのその他のアクションの補助的なアクションであることを示す。
【００７６】
NLPコンポーネント110は、要求およびトリガキーワードを特定するか、判定するか、取り出すか、またはそれ以外の方法で取得するために入力オーディオ信号(または入力オーディオ信号を運ぶデータパケット)を解析することができる。たとえば、NLPコンポーネント110は、トリガキーワードまたは要求を特定するために入力オーディオ信号に意味処理技術を適用することができる。NLPコンポーネント110は、第1のトリガキーワードおよび第2のトリガキーワードなどの1つまたは複数のトリガキーワードを含むトリガ語句を特定するために入力オーディオ信号に意味処理技術を適用することができる。たとえば、入力オーディオ信号は、文「turn off the digital lamp」、「turn up the temperature in the living room」、「play my study playlist on the speaker」、または「I need someone to do my laundry and my dry cleaning」を含み得る。NLPコンポーネント110は、トリガ語句を特定するために文を含むデータパケットに意味処理技術またはその他の自然言語処理技術を適用することができる。トリガ語句は、たとえば、「turn up the temperature」、「play」、「turn off」、「do my laundry」、または「do my dry cleaning」を含み得る。NLPコンポーネント110は、洗濯およびドライクリーニングなどの複数のトリガキーワードをさらに特定し得る。たとえば、NLPコンポーネント110は、トリガ語句がトリガキーワードおよび第2のトリガキーワードを含むと判定し得る。
【００７７】
NLPコンポーネント110は、トリガキーワードを特定するために入力オーディオ信号をフィルタリングすることができる。たとえば、入力オーディオ信号を運ぶデータパケットは、「It would be great if I could get someone that could help me go to the airport」を含むことが可能であり、その場合、NLPコンポーネント110は、以下の通りの1つまたは複数の語、すなわち、「it」、「would」、「be」、「great」、「if」、「I」、「could」、「get」、「someone」、「that」、「could」、または「help」をフィルタリングして取り除くことができる。これらの語をフィルタリングして取り除くことによって、NLPコンポーネント110は、「go to the airport」などのトリガキーワードをより正確で信頼性高く特定し、これがタクシーまたは相乗りサービスの要求であると判定する可能性がある。
【００７８】
場合によっては、NLPコンポーネントは、入力オーディオ信号を運ぶデータパケットが1つまたは複数の要求を含むと判定し得る。たとえば、入力オーディオ信号は、文「I need someone to do my laundry and my dry cleaning」を含み得る。NLPコンポーネント110は、これがランドリーサービスおよびドライクリーニングサービスの要求であると判定し得る。NLPコンポーネント110は、これがランドリーサービスとドライクリーニングサービスとの両方を提供することができるサービスプロバイダの単一の要求であると判定し得る。NLPコンポーネント110は、これが2つの要求、すなわち、ランドリーサービスを行うサービスプロバイダの第1の要求およびドライクリーニングサービスを提供するサービスプロバイダの第2の要求であると判定し得る。場合によっては、NLPコンポーネント110は、複数の判定された要求を単一の要求へと組み合わせ、単一の要求を第三者デバイス146に送信することができる。場合によっては、NLPコンポーネント110は、個々の要求を別のサービスプロバイダデバイスに送信するか、または両方の要求を同じ第三者デバイス146に別々に送信することができる。
【００７９】
データ処理システム102は、要求に応答してトリガキーワードに基づいてアクションデータ構造を生成するように設計され、構築されたダイレクトアクションAPI 114を含み得る。データ処理システム102のプロセッサは、カーシェアリングサービスの自動車などのサービスまたは製品を注文するためにネットワーク接続されたデバイス106またはその他のサービスプロバイダに提供するデータ構造を生成するスクリプトを実行するためにダイレクトアクションAPI 114を呼び出すことができる。ダイレクトアクションAPI 114は、ネットワーク接続されたデバイスまたはその他の第三者デバイスがカーシェアリングサービスの自動車を予約するなどの動作を実行することを可能にするために場所、時間、ユーザアカウント、物流、またはその他の情報を決定するために、データリポジトリ116からのデータと、デジタルアシスタントコンピューティングデバイス104からエンドユーザの同意の下に受信されたデータとを取得することができる。ダイレクトアクションAPI 114を使用して、データ処理システム102は、この例においてはカーシェアリングの受け取り予約をすることによってコンバージョンを完了するために第三者デバイスと通信することもできる。
【００８０】
ダイレクトアクションAPI 114は、ユーザの要求を満たすために必要とされるパラメータを特定するコードまたはダイアログスクリプトを実行することができる。そのようなコードは、たとえば、データリポジトリ116内で、ホームオートメーションサービスの名前、ネットワーク接続されたデバイス106のラベル、もしくは第三者サービスなどの追加的な情報を検索することができ、またはネットワーク接続されたデバイス106の意図される制御もしくは要求されたタクシーの目的地などの質問をエンドユーザにするためにデジタルアシスタントコンピューティングデバイス104においてレンダリングするためのオーディオ出力を提供することができる。ダイレクトアクションAPI 114は、パラメータを決定することができ、情報を、制御命令としてネットワーク接続されたデバイス106に送信され得るアクションデータ構造へとパッケージングすることができる。
【００８１】
ダイレクトアクションAPI 114は、アクションデータ構造を生成または構築するためにNLPコンポーネント110またはデータ処理システム102のその他のコンポーネントから命令またはコマンドを受信することができる。ダイレクトアクションAPI 114は、データリポジトリ116に記憶されたテンプレートリポジトリ124からのテンプレートを選択するためにアクションの種類を決定することができる。アクションの種類は、サーモスタットを調整すること、光の強さを調整すること、スピーカで音楽を再生すること、テレビで動画を再生すること、キッチン家電(たとえば、コーヒーメーカ、電気ケトル、オーブン、電子レンジ、冷蔵庫、コンロ、ロボット掃除機)を制御すること、自動車を始動すること、または自動車のサーモスタットを調整することなどのネットワーク接続されたデバイス106に関連する制御アクションを含み得る。アクションの種類は、たとえば、サービス、製品、予約、またはチケットを含み得る。アクションの種類は、サービスまたは製品の種類をさらに含み得る。たとえば、サービスの種類は、カーシェアリングサービス、食品配達サービス、ランドリーサービス、メイドサービス、修理サービス、家事サービス、デバイスオートメーションサービス、またはメディアストリーミングサービスを含み得る。製品の種類は、たとえば、服、靴、おもちゃ、電子機器、コンピュータ、本、または宝飾品を含み得る。予約の種類は、たとえば、夕食の予約またはヘアサロンの予約を含み得る。チケットの種類は、たとえば、映画のチケット、スポーツ会場のチケット、または航空券を含み得る。場合によっては、サービス、製品、予約、またはチケットの種類は、価格、場所、配送の種類、入手のしやすさ、またはその他の属性に基づいてカテゴリ分けされ得る。
【００８２】
NLPコンポーネント110は、要求および要求に対応するトリガキーワードを特定するために入力オーディオ信号に基づいて生成されたデータパケットを解析し、アクションデータ構造をトリガキーワードおよびアカウント118に基づいてダイレクトアクションAPIに生成させるためにダイレクトアクションAPI 114に要求およびトリガキーワードを与えることができる。ダイレクトアクションAPI 114は、アカウント118を使用して、アカウント識別子にリンクされるネットワーク接続されたデバイス106を特定することができる。
【００８３】
ダイレクトアクションAPI 114は、要求の種類を特定すると、テンプレートリポジトリ124からの対応するテンプレートにアクセスすることができる。テンプレートは、(乗車場所でエンドユーザを乗せ、エンドユーザを目的地に輸送するためにタクシーを送る動作などの)第三者デバイス146のデジタルアシスタントコンピューティングデバイス104によって検出された入力オーディオによって要求される動作をさらに実行するためにダイレクトアクションAPI 114によってデータを投入され得る構造化されたデータセットのフィールドを含み得る。ダイレクトアクションAPI 114は、トリガキーワードおよび要求の1つまたは複数の特徴に一致するテンプレートを選択するためにテンプレートリポジトリ124内の検索を実行することができる。たとえば、要求がサーモスタットなどのネットワーク接続されたデバイス106を制御することに対応する場合、データ処理システム102は、以下のフィールド、すなわち、一意デバイス識別子および新しい温度値のうちの1つまたは複数を含み得るサーモスタットのテンプレートを選択することができる。別の例においては、要求が目的地までの車または乗車の要求に対応する場合、データ処理システム102は、カーシェアリングサービスのテンプレートを選択することができる。カーシェアリングサービスのテンプレートは、以下のフィールド、すなわち、デバイス識別子、乗車場所、目的地、乗客数、またはサービスの種類のうちの1つまたは複数を含み得る。
【００８４】
ダイレクトアクションAPI 114は、フィールドに値を投入することができる。フィールドに値を投入するために、ダイレクトアクションAPI 114は、デジタルアシスタントコンピューティングデバイス104の1つもしくは複数のセンサ128、デバイス104のユーザインターフェース、対応するネットワーク接続されたデバイス106、またはデータリポジトリ116にピンを打つか、ポーリングするか、またはそれ以外の方法で情報を取得することができる。たとえば、ダイレクトアクションAPI 114は、GPSセンサなどの位置センサを使用してソースの位置を検出することができる。ダイレクトアクションAPI 114は、デジタルアシスタントコンピューティングデバイス104のエンドユーザに調査、プロンプト、または問い合わせを送ることによってさらなる情報を取得することができる。ダイレクトアクションAPI 114は、データ処理システム102のインターフェース108およびデジタルアシスタントコンピューティングデバイス104のユーザインターフェース(たとえば、オーディオインターフェース、音声に基づくユーザインターフェース、ディスプレイ、またはタッチスクリーン)を介して調査、プロンプト、または問い合わせを送ることができる。したがって、ダイレクトアクションAPI 114は、トリガキーワードまたは要求に基づいてアクションデータ構造のためのテンプレートを選択し、1つもしくは複数のセンサ128によって検出されたかまたはユーザインターフェースを介して取得された情報をテンプレートの1つまたは複数のフィールドに投入し、第三者デバイスまたはネットワーク接続されたデバイス106による動作の実行を容易にするためにアクションデータ構造を生成するか、作成するか、またはそうでなければ構築することができる。
【００８５】
アクションデータ構造を構築するかまたは生成するために、データ処理システム102は、値を投入する選択されたテンプレートの1つまたは複数のフィールドを特定することができる。フィールドは、数値、文字列、ユニコード値、ブール論理、2進値、16進値、識別子、位置座標、地理的地域、タイムスタンプ、またはその他の値を投入され得る。フィールドまたはデータ構造自体は、データのセキュリティを保つために暗号化またはマスクされ得る。
【００８６】
テンプレートのフィールドを決定すると、データ処理システム102は、アクションデータ構造を作成するためにテンプレートのフィールドに投入するためのフィールドの値を特定することができる。データ処理システム102は、データリポジトリ116に対して検索またはその他の問い合わせ動作を実行することによってフィールドの値を取得するか、取り出すか、決定するか、またはそうでなければ特定することができる。
【００８７】
データ処理システム102は、(たとえば、ダイレクトアクションAPI 114またはインターフェース108を介して)対応するネットワーク接続されたデバイス106にアクションデータ構造を送信することができる。したがって、複数のデジタルアシスタントコンピューティングデバイス104がユーザからの入力オーディオ信号を検出し、ネットワーク接続されたデバイス106を制御するためのコマンドを有するデータパケットを生成し得るが、データ処理システム102は、単一のデジタルアシスタントコンピューティングデバイス104にデータパケットを生成するためのさらなる処理を実行するように命令することができ、データ処理システム102が、アクションデータ構造を生成し、ネットワーク105を介してネットワーク接続されたデバイス106に送信することができる。データ処理システム102は、ネットワーク接続されたデバイス106にアクションデータ構造を送信するとき、1つまたは複数のデジタルアシスタントコンピューティングデバイス104を迂回することができる。データ処理システム102は、第1のおよび第2のデジタルアシスタントコンピューティングデバイス104を迂回し、アクションデータ構造をネットワーク105を介してネットワーク接続されたデバイス106に直接送信することができる。データ処理システム102は、アクションデータ構造を第1のデジタルアシスタントコンピューティングデバイス104に送信するかまたはそれ以外の方法で第1のデジタルアシスタントコンピューティングデバイス104と通信することなく、少なくとも第1のデジタルアシスタントコンピューティングデバイス104を迂回し、ネットワーク接続されたデバイス106にアクションデータ構造を送信することができる。データ処理システム102は、アクションデータ構造を生成した後、アクションデータ構造がネットワーク接続されたデバイス106に送信されるまで、第1のデジタルアシスタントコンピューティングデバイス104と通信しない可能性がある。
【００８８】
データ処理システム102は、コマンドを生成した第1のデジタルアシスタントコンピューティングデバイス104にステータスの更新を与えることができる。ステータスの更新は、アクションデータ構造が生成され、ネットワーク接続されたデバイス106に送信されたことを示し得る。ステータスの更新は、アクションデータ構造がネットワーク接続されたデバイス106によって実行されようとしていること、ネットワーク接続されたデバイス106によって現在実行されていること、アクションデータ構造の進捗度、またはアクションデータ構造がネットワーク接続されたデバイス106によってちょうど完了されたことを示し得る。ステータスの更新は、ネットワーク接続されたデバイス106の位置を特定することができないことまたはネットワーク接続されたデバイス106の機能不全などの、アクションデータ構造を実行することに関連する誤りおよび失敗を示し得る。
【００８９】
第1のデジタルアシスタントコンピューティングデバイスは、(たとえば、プリプロセッサによって)ネットワーク接続されたデバイスに送信されたアクションデータ構造のステータスのインジケーションを受信し、スピーカコンポーネント(たとえば、トランスデューサ130)にステータスのインジケーションに対応するオーディオ出力を送出させるための出力オーディオ信号を生成するようにオーディオドライバ132に命令することができる。
【００９０】
データ処理システム102は、デバイスにポーリングすることに基づいてまたはセットアップもしくは構成プロセスに基づいて複数のデジタルアシスタントコンピューティングデバイスを特定することができる。データ処理システムは、データリポジトリ116内の集中化されたアカウント118に、第1のデジタルアシスタントコンピューティングデバイスとネットワーク接続されたデバイスとの間の第1のリンク、および第2のデジタルアシスタントコンピューティングデバイスとネットワーク接続されたデバイスとの間の第2のリンクを記憶することができる。アクションデータ構造を生成し、送信するために、データ処理システム102は、第1のデジタルアシスタントコンピューティングデバイスの選択に応じて、第1のリンクに基づいて、集中化されたアカウント118にアクセスしてアクションデータ構造の生成のための情報を取り出すことができる。集中化されたアカウント118は、第1のデジタルアシスタントおよび第2のデジタルアシスタントのうちの少なくとも1つへのリンクを有する複数の異種のネットワーク接続されたデバイスに関連する情報を含むかまたは記憶することができる。異種のネットワーク接続されたデバイスは、異なるコンポーネント、ソフトウェア、または機能を有することが可能である異なる種類のネットワーク接続されたデバイス(たとえば、ネットワーク接続されたコーヒーメーカ対ネットワーク接続されたロボット掃除機)を指し得る。
【００９１】
場合によっては、システム100は、アクションデータ構造を遂行するかまたは実行することができ得る複数のネットワーク接続されたデバイスを含むことができる。データ処理システム102が(たとえば、アカウント118を介して)アクションデータ構造を遂行するかまたは実行することができる複数のネットワーク接続されたデバイス106を特定する場合、オーケストレータコンポーネント112が、ネットワーク接続されたデバイス106のうちの1つを選択し得る。オーケストレータコンポーネント112は、アクションデータ構造を実行するためのネットワーク接続されたデバイス106を選択するためにポリシーを使用することができる。ポリシーは、ネットワーク接続されたデバイスの特徴または構成に基づくことができる。オーケストレータコンポーネント112は、アカウントにリンクされた利用可能なネットワーク接続されたデバイス106にポーリングし、特徴(たとえば、利用可能な入力/出力インターフェース、バッテリ、電源への接続、プロセッサの速度、利用可能なメモリ、または入力オーディオ信号を検出したデジタルアシスタントコンピューティングデバイスとの近さ)を特定することができる。
【００９２】
アクションデータ構造を実行するためのネットワーク接続されたデバイス106を選択するために、オーケストレータコンポーネント112は、モデルデータ構造122からの機械学習モデルを使用することができる。機械学習モデルは、ネットワーク接続されたデバイス106の特徴または特色についての情報およびデバイス106に関連するフィードバックを含み得る。フィードバックは、デバイス106がアクションデータ構造を成功裏に実行したかどうかを示し得る。引き分けの場合、Table 1(表1)に示されるように、特定の種類のネットワーク接続されたデバイス106が、その他のネットワーク接続されたデバイス106よりも高くランク付けされることが可能であり、データ処理システムは、アクションデータ構造を実行するためにより高くランク付けされたデバイス106を選択することができる。
【００９３】
データ処理システム102は、入力オーディオ信号がそれぞれのデジタルアシスタントコンピューティングデバイスによって検出されるとき、入力オーディオ信号に関連する特徴の比較に基づいて複数のネットワーク接続されたデバイスからネットワーク接続されたデバイスを選択することができる。たとえば、データ処理システムは、第1のデジタルアシスタントコンピューティングデバイスのセンサによって検出された入力オーディオ信号の特徴(またはパラメータもしくは測定基準)の第1の値を特定、決定、算定、または計算することができる。データ処理システム102は、第2のデジタルアシスタントコンピューティングデバイスのセンサによって検出された入力オーディオ信号の特徴(またはパラメータもしくは測定基準)の第2の値を特定、決定、算定、または計算することができる。データ処理システム102は、第1の値を第2の値と比較することができる。データ処理システムは、比較に基づいて複数のネットワーク接続されたデバイスのうちからネットワーク接続されたデバイスを選択することができる。
【００９４】
入力オーディオ信号の特徴(または測定基準もしくはパラメータ)は、音の1つまたは複数の特徴を含み得る。特徴は、たとえば、音量、振幅、音圧、強度、ラウドネス(loudness)、周波数、波長、高さ、速度、または方向を含み得る。特徴の値は、たとえば、音量、振幅、または強度に関してデシベル(「dB」)で測定され得る。特徴の値は、たとえば、周波数に関してヘルツ(たとえば、1/秒)で測定され得る。特徴の値は、たとえば、波長に関して距離の単位(たとえば、メートルまたはセンチメートル)で測定され得る。
【００９５】
特徴が方向である場合、値は、所定の軸に対する水平角または鉛直角を含み得る。方向を決定するために、デジタルアシスタントコンピューティングデバイス104(またはデータ処理システム102)は、音響源の位置特定を実行することができる。音響源の位置特定は、音圧または粒子の速度(particle velocity)などの特徴を含み得る音場の測定値を前提として音源(たとえば、ユーザなどの入力オーディオ信号の発生源)の位置を特定することを含み得る。粒子の速度は、音源の方向を与え得るベクトルとして測定されることが可能である。デジタルアシスタントコンピューティングデバイス104またはデータ処理システム102は、複数のセンサを使用し、センサが入力オーディオ信号を検出するときの間の時間差(たとえば、入力オーディオ信号の到着の時間差。三角測量)を判定して方向を決定することもできる。データ処理システムは、異なる位置の複数のセンサから計算された特徴の値を比較することによって方向を決定することができる。データ処理システムは、話者(たとえば、ユーザ)によって送出された音波の直接経路の長さと反響経路の長さとの比に基づいて方向を決定するかまたは音の位置特定を実行することができる。
【００９６】
たとえば、入力オーディオ信号は、「turn off the light」コマンドを含み得る。入力オーディオ信号は、ネットワーク接続されたデバイスに関する一意識別子を与えない可能性がある(たとえば、図2に示される部屋234は、部屋中に置かれた複数の接続されたランプ208を含み得る)。コマンドの曖昧さが原因で、データ処理システムは、複数の接続されたランプ208から1つまたは複数の接続されたランプ208を選択するためにポリシー、モデル、機械学習、またはその他の技術を適用し得る。たとえば、部屋234内に複数のデジタルアシスタントコンピューティングデバイスが置かれている場合、データ処理システムは、異なるデジタルアシスタントコンピューティングデバイスによって検出された入力オーディオ信号の振幅に基づいて、どのデジタルアシスタントコンピューティングデバイスがユーザのより近くに置かれているかを判定することができる。データ処理システムは、最も大きな振幅を有する入力オーディオ信号を検出したデジタルアシスタントコンピューティングデバイスがユーザに最も近いデジタルアシスタントコンピューティングデバイスであると判定し得る。そのとき、データ処理システムは、選択されたデジタルアシスタントコンピューティングデバイスの最も近くに置かれている接続されたランプ208を特定することができる。そして、データ処理システムは、ユーザに最も近いデジタルアシスタントコンピューティングデバイスの最も近くに置かれている接続されたランプ208を制御すると決定することができる。
【００９７】
別の例において、データ処理システム102は、音の方向を決定することができる。データ処理システム102は、音の方向を使用してネットワーク接続されたデバイス106を特定することができる。たとえば、部屋内に3つのネットワーク接続されたデバイス106が置かれている場合、ユーザは、ユーザが制御したいネットワーク接続されたデバイス106の方を向き、それから、コマンドを発話する可能性がある。ネットワーク接続されたデバイス106は、音の音量を検出するためのマイクロフォンを含み得る。しかし、ネットワーク接続されたデバイス106は、入力オーディオ信号を解析する、入力オーディオ信号をデータパケットに変換する、または任意の自然言語プロセスを実行するためのプロセッサを含む可能性があり、または含まない可能性がある。ネットワーク接続されたデバイス106は、入力オーディオ信号の振幅を測定し、データ処理システム102にインジケーションを提供することができる最小限の信号処理回路を含み得る。したがって、ネットワーク接続されたデバイス106の各々が入力オーディオ信号の振幅を測定し、データ処理システム102に振幅値を提供した場合、データ処理システム102は、最も大きな振幅を有する入力オーディオ信号を検出したネットワーク接続されたデバイスを選択し得る。
【００９８】
データ処理システム102は、(オーケストレータコンポーネント112によって)話者(たとえば、入力オーディオ信号を与えるユーザ)の位置に基づいて複数のネットワーク接続されたデバイス106からネットワーク接続されたデバイス106を選択し得る。データ処理システム102は、入力オーディオ信号内で与えられたコマンドを実行することができる、話者と同じ部屋の中に置かれた1つまたは複数のネットワーク接続されたデバイス106を選択すると決定し得る。データ処理システム102は、話者のある距離(または半径)以内の1つまたは複数のネットワーク接続されたデバイス106を選択すると決定し得る。距離は、予め決められているか、固定であるか、コマンドに基づいて選択されるか、ネットワーク接続されたデバイス106の種類に基づいて選択されるか、または入力オーディオ信号の特徴に基づいて動的に決定されることが可能である(たとえば、入力オーディオ信号がささやきのように閾値未満の小さな振幅を有する場合、より小さな半径であり、入力オーディオ信号が閾値よりも大きな振幅を有する場合、より大きな半径である)。たとえば、話者が照明を消すように大声で言う場合、データ処理システム102は、家全体のすべての照明を消し得る。話者が照明を消せと言うために通常の声を用いる場合、データ処理システム102は、話者と同じ部屋内のすべての照明を消すと決定し得る。ユーザが照明を消すようにささやく場合、データ処理システム102は、話者またはユーザに最も近い照明(たとえば、ナイトテーブルの上のテーブルランプ)だけを消し得る。
【００９９】
データ処理システム102は、意味分析を使用してコマンドを実行するように構成された複数のネットワーク接続されたデバイス106からネットワーク接続されたデバイス106を選択することができる。データ処理システム102は、選択するネットワーク接続されたデバイス106を決定するために入力オーディオ信号内のコンテキスト情報(contextual information)を特定し得る。たとえば、入力オーディオ信号は、たとえ一意識別子ではないとしても、コマンドを実行するための所望のネットワーク接続されたデバイスの識別子を含み得る。たとえば、識別子は、「lower the light」であることが可能である。データ処理システム102は、部屋234内に複数の接続されたランプ208が置かれている可能性があるが、接続されたランプ208のサブセットのみが出力される光の強さを低くすることができると(たとえば、ステータス情報に関してネットワーク接続されたデバイス106にポーリングすることによって)判定し得る。したがって、データ処理システム102は、まず、暗くすることができないランプをフィルタリングして取り除き得る。暗くされ得る残りのランプの中で、データ処理システム102は、各ランプの現在の出力強度レベルを判定し得る。それから、データ処理システム102は、暗くすることができるランプのうちの1つのみが比較的暗くされ得ないと判定し得る。したがって、削除のプロセスによって、データ処理システム102は、話者が制御したかった接続されたネットワークデバイス106を特定することができる。
【０１００】
その他のインジケーションは、たとえば、話者が制御したかったネットワーク接続されたデバイス106に関連するコンテキスト情報を提供することを含み得る。たとえば、コマンドは、「turn off the light next to the television」であることが可能である。データ処理システム102は、どの接続されたランプ208がテレビ(たとえば、接続されたマルチメディアディスプレイ212)の近くにあるかを判定し得る。たとえば、データ処理システム102は、近接センサ、設定、スピーカ出力を分析すること、またはプロンプトへの応答に基づいてランプ208が接続されたマルチメディアディスプレイ212の近くにあると判定し得る。
【０１０１】
データ処理システム102は、機械学習モデルに基づいてコマンドを実行するように構成された複数のネットワーク接続されたデバイス106のうちから選択するネットワーク接続されたデバイス106を決定することができる。データ処理システム102は、入力値(たとえば、入力オーディオ信号に関連する特色もしくは特徴または入力オーディオ信号の供給の周辺のコンテキスト)および対応する出力値(たとえば、どのネットワーク接続されたデバイス106が選択されるか)を使用してモデルを生成し得る。データ処理システム102は、入力オーディオ信号に関連する特色に基づいて機械学習モデルを生成し得る。データ処理システム102は、フィードバックに基づいてモデルを生成し得る。特色は、入力オーディオ信号の特徴、時刻、曜日、部屋234内のその他の接続されたデバイス106のステータス(たとえば、スピーカ210が音楽を再生しているか、どの音量で再生しているか、およびどの種類の音楽を再生しているか、テレビ212がついているか、またはユーザが電話をかけるために接続された電気通信デバイス216を使用しているか)を含み得る。フィードバックは、正しいネットワーク接続されたデバイスが選択されたことを示すフィードバック、または誤ったネットワーク接続されたデバイスが選択されたことを示すフィードバックを含み得る。データ処理システム102は、特色をモデルに入力し、特色を、履歴的に話者が制御するためにどのネットワーク接続されたデバイス106を特定したかまたは決定したかと相互に関連付けることが可能である。たとえば、朝の6 AMに、話者は、コマンド「turn on the lamp on the left nightstand」を与え得る。次の日、話者は、6 AMに、コマンド「turn on the lamp」を与え得る。データ処理システム102は、6 AMに受け取られた以前のランプに関連するコマンドに基づいて、その話者が6 AMに左のナイトテーブルの上のテーブルランプのランプを点けることを望んだと判定し得る。データ処理システム102は、6 AM前後(たとえば、プラスまたはマイナス1分、2分、5分、10分、20分)に与えられたコマンド「turn on the lamp」がコマンド「turn on the lamp on the left nightstand」を指す可能性が高いと予測し得る。したがって、データ処理システム102は、同じネットワーク接続されたデバイス106を選択し、選択されたネットワーク接続されたデバイス106のためのアクションデータ構造を生成し得る。データ処理システム102は、環境光センサなどのその他のセンサからの情報を使用して、どの部屋が暗いかを判定し、その部屋内の照明を点けることもできる。
【０１０２】
図2は、音声駆動式のコンピューティング環境においてコンピューティングデバイスの間で信号処理を編成するためのシステムの動作の図である。システム200は、図1に示されたシステム100または図4に示されるシステム400の1つまたは複数のコンポーネントを含み得る。システム200は、部屋234内に置かれた複数のデジタルアシスタントコンピューティングデバイス202および204を含み得る。部屋234は、たとえば、居間、寝室、台所、ダイニングルーム、地下室、オフィス、ロビー、モール、小売店、レストラン、公園、屋外空間、自動車、またはモーターホーム(motorhome)を含む任意の種類またはサイズの物理的空間を含み得る。第1のデジタルアシスタントコンピューティングデバイス202は、図1に示されたデジタルアシスタントコンピューティングデバイス104の1つまたは複数のコンポーネントまたは機能を含み得る。第1のデジタルアシスタントコンピューティングデバイス202は、スピーカデバイスまたは専用のデジタルアシスタントコンピューティングデバイスを含み得る。第2のデジタルアシスタントコンピューティングデバイス204は、図1に示されたデジタルアシスタントコンピューティングデバイス104の1つまたは複数のコンポーネントまたは機能を含み得る。第2のデジタルアシスタントコンピューティングデバイス204は、デジタルアシスタントアプリケーションを実行するスマートフォンを含み得る。第1のおよび第2のデジタルアシスタントコンピューティングデバイス204は、一意識別子を有し、ユーザ232に関連する中心のアカウントにリンクされ得る。
【０１０３】
システム200は、接続された電気通信デバイス216(たとえば、接続された電話)、接続されたサーモスタット206、接続されたランプ208、接続されたスピーカ210(もしくはサウンドシステム)、または接続されたマルチメディアディスプレイ212(もしくはスマートテレビ)などの部屋234内に置かれた複数のネットワーク接続されたデバイス106を含み得る。インターネットに接続されたデバイスは、データ処理システム102を介してデジタルアシスタントコンピューティングデバイス202または204によって引き続き制御可能でありながら部屋234の外部または部屋234の遠隔に置かれ得る。インターネットに接続されたデバイス206、208、210、212、または216は、ワイヤレスゲートウェイ214(たとえば、ネットワークルータ、ワイヤレスルータ、またはモデム)を介してネットワーク105に接続することが可能であり、ワイヤレスゲートウェイ214は、ネットワーク105へのアクセスを提供することができる。インターネットに接続されたデバイス206、208、210、212、または216は、データ処理システム102を介して監視、管理、または制御され得る。場合によっては、インターネットに接続されたデバイス206、208、210、212、または216は、データ処理システム102を介して第1のまたは第2のデジタルアシスタントコンピューティングデバイス202または204によって監視、管理、または制御され得る。インターネットに接続されたデバイス206、208、210、212、または216は、ユーザ232にリンクされ得る、一意識別子を有する中心のアカウントにリンクされ得る。
【０１０４】
ACT 218において、部屋234内にいるユーザ232が、コマンドまたは問い合わせを発話し得る。ユーザは、入力オーディオ信号に対応する音響波を生成し得る。ACT 218において、入力オーディオ信号は、第1のデジタルアシスタントコンピューティングデバイス202と第2のデジタルアシスタントコンピューティングデバイス204との両方によって検出され得る。例示的な入力オーディオ信号218は、コマンド「play today's news clips on the television」を含み得る。デバイス202とデバイス204との両方がユーザ232の検出の近さ以内にあるので、デバイス202とデバイス204との両方がACT 218において入力オーディオ信号を検出し得る。両方のデバイスが、入力オーディオ信号をリスニングし、入力オーディオ信号を処理するように構成され得る。
【０１０５】
第1のおよび第2のデジタルコンピューティングデバイス202および204は、入力オーディオ信号に対して初期処理を実行し、デジタルコンピューティングデバイス202および204が部屋232内のネットワーク接続されたデバイスを成功裏に制御するためのアクションデータ構造を生成するために使用される可能性が高いことがあり得るデータパケットをそれぞれ生成することができるように入力オーディオ信号が十分な品質で検出されたと判定し得る。初期処理は、信号品質チェックプロセスを指すかまたは信号品質チェックプロセスを含み得る。
【０１０６】
ACT 220において、第1のデジタルアシスタントコンピューティングデバイス202が、第1のデジタルアシスタントコンピューティングデバイス202が入力オーディオ信号218を処理するように動作可能であるという第1のインジケーションをデータ処理システム102のオーケストレータコンポーネント112に送信し得る。第1のインジケーションは、信号品質チェックプロセスに応答して生成され得る。ACT 222において、オーケストレータコンポーネント112は、ポリシーに基づいて、入力オーディオ信号218を処理するように第1のデジタルアシスタントコンピューティングデバイス202に命令すると決定し得る。
【０１０７】
ACT 226において、データ処理システム102が、第2のデジタルアシスタントコンピューティングデバイス204が入力オーディオ信号を処理するように動作可能であることを示す第2のデジタルアシスタントコンピューティングデバイス204からの第2のインジケーションを受信する。しかし、システム200における処理を削減するために、データ処理システム102は、(たとえば、オーケストレータコンポーネント112を介して)ACT 228において第2のデジタルアシスタントコンピューティングデバイスにスタンバイモードになるように命令することができる。スタンバイモードは、現在の入力オーディオ信号218をさらに処理しないようにデバイス204に留意させるかまたは命令し得る。スタンバイモードは、条件がトリガされたかまたはイベントがトリガされるまで後続の入力オーディオ信号をさらに処理しないようにデバイス204に留意させるかまたは命令し得る。スタンバイモードは、デバイス204にデータパケットを生成させないことが可能である。スタンバイモードにおいて、デバイス204は、後続の入力オーディオ信号に対して信号品質のチェックを実行し、データ処理システム102にインジケーションを送信する可能性があり、またはそれらを行わない可能性がある。スタンバイモードは、デバイス204の1つまたは複数のコンポーネントまたは機能を無効化し得る。
【０１０８】
デバイス204は、所定の時間間隔(たとえば、1分、2分、3分、5分、10分、15分、または30分)の間、スタンバイモードになるように(228によって)命令され得る。デバイス204は、デバイス204が部屋232の周りに確立された仮想的な地理フェンス(geographical fence)の外などに移動するかまたは位置を変えるまでスタンバイモードになるように(228によって)命令され得る。
【０１０９】
ACT 224において、第1のデジタルアシスタントコンピューティングデバイス202が、ACT 222の命令に応じて、入力オーディオ信号218の下流の処理を実行し、コマンドを運ぶデータパケットを提供し得る。ACT 224において、第1のデジタルアシスタントコンピューティングデバイス202が、コマンドを運ぶデータパケットをデータ処理システム102に送信し得る。NLPコンポーネント110およびダイレクトアクションAPI 114が、データパケットを処理してアクションデータ構造を作成し、対応するネットワーク接続されたコンピューティングデバイスにACT 230においてアクションデータ構造を送信し得る。たとえば、データ処理システム102は、トリガキーワード「play」、「television」、および「news clips」を特定し得る。データ処理システム102は、一意識別子を有するアカウントにリンクされた接続されたマルチメディアディスプレイ212を特定するために、データリポジトリ116に記憶されたアカウントデータ構造118内の検索を実行し得る。データ処理システム102は、(たとえば、履歴的な使用に基づいて、または削除のプロセスによって)「television」が「接続されたマルチメディアディスプレイ212」に対応すると判定し得る。データ処理システム102は、コンテンツセレクタを使用してまたはニュースクリップに関して動画プラットフォーム上で問い合わせを実行してニュースクリップを特定し得る。データ処理システム102は、ニュースクリップへのリンクまたはポインタを有するアクションデータ構造を生成し、接続されたマルチメディアディスプレイ212にニュースクリップをレンダリングまたは再生させるために接続されたマルチメディアディスプレイ212にアクションデータ構造を送信することができる。データ処理システム102は、ネットワーク接続されたデバイス106にアクションデータ構造を送信するとき、1つまたは複数のデジタルアシスタントコンピューティングデバイス104を迂回することができる。データ処理システム102は、第1のおよび第2のデジタルアシスタントコンピューティングデバイス104を迂回し、アクションデータ構造をネットワーク105を介してネットワーク接続されたデバイス106に直接送信することができる。データ処理システム102は、アクションデータ構造を第1のデジタルアシスタントコンピューティングデバイス104に送信するかまたはそれ以外の方法で第1のデジタルアシスタントコンピューティングデバイス104と通信することなく、少なくとも第1のデジタルアシスタントコンピューティングデバイス104を迂回し、ネットワーク接続されたデバイス106にアクションデータ構造を送信することができる。データ処理システム102は、アクションデータ構造を生成した後、アクションデータ構造がネットワーク接続されたデバイス106に送信されるまで、第1のデジタルアシスタントコンピューティングデバイス104と通信しない可能性がある。
【０１１０】
データ処理システム102は、コマンドを生成した第1のデジタルアシスタントコンピューティングデバイス202にステータスの更新を与えることができる。ステータスの更新は、アクションデータ構造が生成され、ディスプレイ212に送信されたことを示し得る。ステータスの更新は、ニュースクリップが再生されようとしているか、再生されているか、またはディスプレイ212上での再生をちょうど完了したことを示し得る。ステータスの更新は、アカウント内にリンクされたディスプレイがないことが原因でディスプレイ212の位置を特定することができないなど、アクションデータ構造を実行することに関連する誤りまたは失敗を示す可能性がある。
【０１１１】
第1のデジタルアシスタントコンピューティングデバイスは、(たとえば、プリプロセッサによって)ネットワーク接続されたデバイスに送信されたアクションデータ構造のステータスのインジケーションを受信し、スピーカコンポーネントにステータスのインジケーションに対応するオーディオ出力を送出させるための出力オーディオ信号を生成するようにオーディオドライバに命令することができる。
【０１１２】
したがって、オーケストレータコンポーネント112は、システム200におけるリソースの利用を削減するために信号処理を調整することができ、したがって、すべてのデジタルアシスタントコンピューティングデバイス202または204が、入力オーディオ信号を処理して、データ処理システムに送信するための文法を用いてデータパケットを生成するとは限らず、またすべてのネットワーク接続されたデバイスが、アクションデータ構造を受信してアクションデータ構造を実行するとは限らない。
【０１１３】
図3は、音声駆動式のコンピューティング環境においてコンピューティングデバイスの間で信号処理を編成する例示的な方法の図である。方法300は、図1に示されたシステム100、図2に示されたシステム200、または図4に示されるシステム400の1つまたは複数のコンポーネント、システム、または要素によって実行され得る。方法300は、ACT 302において入力オーディオ信号を検出することを含み得る。入力オーディオ信号は、1つまたは複数のデジタルアシスタントコンピューティングデバイスによって検出され得る。たとえば、第1のおよび第2のデジタルアシスタントコンピューティングデバイスは、ACT 302において同じ入力オーディオ信号をそれぞれ検出し得る。
【０１１４】
ACT 304において、方法300は、検出された入力信号が信号処理のために十分であるかどうかを判定することを含み、インジケーションを送信することができる。1つまたは複数のデジタルアシスタントコンピューティングデバイスは、検出された入力オーディオ信号が信頼できる下流の処理のために十分な品質であるかどうかを判定するために信号品質チェックプロセスを実行することができる。たとえば、第1のデジタルアシスタントコンピューティングデバイスは、検出された入力オーディオ信号のSNRを判定し、SNRが閾値を満たす(たとえば、-3dB以上である)と判定し得る。第2のデジタルアシスタントコンピューティングデバイスは、第2のデジタルアシスタントコンピューティングデバイスによって検出された検出された入力オーディオ信号のSNRがやはり閾値を満たすと判定し得る。第1のおよび第2のデジタルアシスタントコンピューティングデバイスは、検出された入力オーディオ信号の品質が信号品質のチェックを満たすので、デバイスが検出された入力オーディオ信号を処理するように動作可能であることを示すそれぞれのインジケーションをデータ処理システムに送信し得る。場合によっては、1つまたは複数のデジタルアシスタントコンピューティングデバイスのうちの1つのみが、信号品質のチェックに受かる十分な品質で入力オーディオ信号を検出する可能性がある。
【０１１５】
ACT 306において、データ処理システムは、さらなる処理のためのデジタルアシスタントコンピューティングデバイスのうちの1つを選択し得る。たとえば、データ処理システムは、さらなる処理を実行するための第1のデジタルアシスタントコンピューティングデバイスを選択し得る。データ処理システムは、第1のデジタルアシスタントコンピューティングデバイスがプライマリ信号プロセッサとして確立されていることに基づいて第1のデジタルアシスタントコンピューティングデバイスを選択し得る。たとえば、第1のデジタルアシスタントコンピューティングデバイスと第2のデジタルアシスタントコンピューティングデバイスとの両方が入力オーディオ信号を処理するように動作可能であるが、データ処理システムは、デジタルアシスタントコンピューティングデバイスがプライマリ信号プロセッサとして設定されていることに基づいてデジタルアシスタントコンピューティングデバイスのうちの1つを選択し得る。
【０１１６】
ACT 308において、データ処理システムは、さらなる処理を実行するように第1のデジタルアシスタントに命令し、スタンバイモードになるかまたはさらなる処理を実行しないように第2のデジタルアシスタントコンピューティングデバイスに命令することができる。スタンバイモードは、現在の入力オーディオ信号を処理しないことを指し得る。
【０１１７】
ACT 310において、データ処理システムは、コマンドを有するデータパケットを受信し得る。データパケットは、選択された第1のコンピューティングデバイスによって生成され得る。ACT 312において、データ処理システムは、複数のネットワーク接続されたデバイスのうちからネットワーク接続されたデバイスを選択し、データパケットに基づいて選択されたネットワーク接続されたデバイスのためのアクションデータ構造を生成することができる。アクションデータ構造は、選択されたネットワーク接続されたデバイスを制御するための命令を用いて生成され得る。データ処理システムは、1つまたは複数のポリシー、特徴、機械学習技術、発見的方法、または規則を使用してネットワーク接続されたデバイスを選択し得る。ACT 314において、データ処理システムは、選択されたネットワーク接続されたデバイスにアクションデータ構造を送信し得る。
【０１１８】
図4は、例示的なコンピュータシステム400のブロック図である。コンピュータシステムまたはコンピューティングデバイス400は、システム100、またはデータ処理システム102などのそのシステム100のコンポーネントを含むかまたはそれらを実装するために使用され得る。コンピューティングデバイス400は、インテリジェントなパーソナルアシスタントまたは音声に基づくデジタルアシスタントを含むか、提供するか、またはそのアシスタントとインターフェースを取ることが可能である。コンピューティングシステム400は、情報を伝達するためのバス405またはその他の通信コンポーネントと、情報を処理するためのバス405に結合されたプロセッサ410または処理回路とを含む。また、コンピューティングシステム400は、情報を処理するためのバスに結合された1つまたは複数のプロセッサ410または処理回路を含み得る。コンピューティングシステム400は、情報およびプロセッサ410によって実行される命令を記憶するためのバス405に結合されたランダムアクセスメモリ(RAM)またはその他のダイナミックストレージデバイスなどのメインメモリ415も含む。メインメモリ415は、データリポジトリ145であるかまたはデータリポジトリ145を含むことが可能である。メインメモリ415は、位置情報、一時的な変数、またはプロセッサ410による命令の実行中のその他の中間情報を記憶するためにも使用され得る。コンピューティングシステム400は、静的な情報およびプロセッサ410のための命令を記憶するためのバス405に結合された読出し専用メモリ(ROM)420またはその他のスタティックストレージデバイスをさらに含む可能性がある。ソリッドステートデバイス、磁気ディスク、または光ディスクなどのストレージデバイス425が、情報および命令を永続的に記憶するためにバス405に結合され得る。ストレージデバイス425は、データリポジトリ145を含むかまたはデータリポジトリ145の一部であることが可能である。
【０１１９】
コンピューティングシステム400は、ユーザに対して情報を表示するための液晶ディスプレイまたはアクティブマトリックスディスプレイなどのディスプレイ435にバス405を介して結合される可能性がある。英数字およびその他のキーを含むキーボードなどの入力デバイス430が、プロセッサ410に情報およびコマンド選択を伝達するためにバス405に結合される可能性がある。入力デバイス430は、タッチスクリーンディスプレイ435を含み得る。入力デバイス430は、プロセッサ410に方向情報およびコマンド選択を伝達するためおよびディスプレイ435上でカーソルの動きを制御するためのマウス、トラックボール、またはカーソル方向キーなどのカーソルコントロールも含み得る。ディスプレイ435は、たとえば、図1のデータ処理システム102、クライアントコンピューティングデバイス150、またはその他のコンポーネントの一部であることが可能である。
【０１２０】
本明細書において説明されるプロセス、システム、および方法は、メインメモリ415に含まれる命令の配列をプロセッサ410が実行することに応じてコンピューティングシステム400によって実施され得る。そのような命令は、ストレージデバイス425などの別のコンピュータ可読媒体からメインメモリ415に読まれ得る。メインメモリ415に含まれる命令の配列の実行は、コンピューティングシステム400に本明細書において説明される例示的なプロセスを実行させる。マルチプロセッシング配列の1つまたは複数のプロセッサも、メインメモリ415に含まれる命令を実行するために使用される可能性がある。配線による回路が、本明細書において説明されるシステムおよび方法と一緒にソフトウェア命令の代わりにまたはソフトウェア命令と組み合わせて使用され得る。本明細書において説明されるシステムおよび方法は、ハードウェア回路とソフトウェアとのいかなる特定の組合せにも限定されない。
【０１２１】
例示的なコンピューティングシステムが図4に示されたが、本明細書に記載の動作を含む対象は、本明細書において開示された構造およびそれらの構造的均等物を含む、その他の種類のデジタル電子回路、またはコンピュータソフトウェア、ファームウェア、もしくはハードウェア、またはそれらのうちの1つもしくは複数の組合せで実装され得る。
【０１２２】
本明細書において検討されたシステムがユーザについての個人情報を収集するか、または個人情報を利用する可能性がある状況に関して、ユーザは、プログラムまたは特徴が個人情報(たとえば、ユーザのソーシャルネットワーク、ソーシャルなアクションもしくは活動、ユーザのプリファレンス、またはユーザの位置についての情報)を収集する可能性があるかどうかを制御するか、あるいはユーザにより関連性がある可能性があるコンテンツをコンテンツサーバもしくはその他のデータ処理システムから受け取るべきかどうかまたはどのようにして受け取るべきかを制御する機会を与えられる可能性がある。さらに、パラメータを生成するときに個人を特定することができる情報が削除されるように、特定のデータが、それが記憶されるかまたは使用される前に1つまたは複数の方法で匿名化される可能性がある。たとえば、ユーザのアイデンティティが、個人を特定することができる情報がユーザに関して決定され得ないように匿名化される可能性があり、または(都市、郵便番号、もしくは州のレベルまでなど)位置情報が取得される場合に、ユーザの地理的位置が、ユーザの特定の位置が決定され得ないように一般化される可能性がある。したがって、ユーザは、情報がユーザについてどのように収集され、コンテンツサーバによって使用されるかを制御する可能性がある。
【０１２３】
本明細書に記載の対象および動作は、本明細書において開示された構造およびそれらの構造的均等物を含むデジタル電子回路、またはコンピュータソフトウェア、ファームウェア、もしくはハードウェア、またはそれらのうちの1つもしくは複数の組合せで実装され得る。本明細書に記載の対象は、1つまたは複数のコンピュータプログラム、たとえば、データ処理装置による実行のために、またはデータ処理装置の動作を制御するために1つまたは複数のコンピュータストレージ媒体上に符号化されたコンピュータプログラム命令の1つまたは複数の回路として実装され得る。代替的にまたは追加的に、プログラム命令は、データ処理装置による実行のために好適な受信機装置に送信するために情報を符号化するように生成される人為的に生成された伝播信号、たとえば、機械によって生成された電気的信号、光学的信号、または電磁的信号上に符号化され得る。コンピュータストレージ媒体は、コンピュータ可読ストレージデバイス、コンピュータ可読ストレージ基板、ランダムもしくはシリアルアクセスメモリアレイもしくはデバイス、またはそれらのうちの1つもしくは複数の組合せであるか、あるいはそれらに含まれることが可能である。コンピュータストレージ媒体は、伝播信号ではないが、人為的に生成された伝播信号に符号化されたコンピュータプログラム命令の送信元または送信先であることが可能である。コンピュータストレージ媒体は、1つまたは複数の別個のコンポーネントまたは媒体(たとえば、複数のCD、ディスク、もしくはその他のストレージデバイス)であるか、またはそれらに含まれることも可能である。本明細書に記載の動作は、1つもしくは複数のコンピュータ可読ストレージデバイスに記憶された、またはその他のソースから受信されたデータに対してデータ処理装置によって実行される動作として実装され得る。
【０１２４】
用語「データ処理システム」、「コンピューティングデバイス」、「コンポーネント」、または「データ処理装置」は、例として、1つのプログラミング可能なプロセッサ、1台のコンピュータ、1つのシステムオンチップ、またはそれらの複数もしくは組合せを含む、データを処理するための様々な装置、デバイス、およびマシンを包含する。装置は、専用の論理回路、たとえば、FPGA(フィールドプログラマブルゲートアレイ)またはASIC(特定用途向け集積回路)を含み得る。装置は、ハードウェアに加えて、問題にしているコンピュータプログラムのための実行環境を作成するコード、たとえば、プロセッサのファームウェア、プロトコルスタック、データベース管理システム、オペレーティングシステム、クロスプラットフォームランタイム環境、仮想マシン、またはそれらのうちの1つもしくは複数の組合せを構成するコードも含み得る。装置および実行環境は、ウェブサービスインフラストラクチャ、分散コンピューティングインフラストラクチャ、およびグリッドコンピューティングインフラストラクチャなどの様々な異なるコンピューティングモデルインフラストラクチャを実現することができる。たとえば、ダイレクトアクションAPI 114、コンテンツセレクタコンポーネント118、またはNLPコンポーネント110、およびその他のデータ処理システム102のコンポーネントは、1つまたは複数のデータ処理装置、システム、コンピューティングデバイス、またはプロセッサを含むかまたは共有することが可能である。
【０１２５】
コンピュータプログラム(プログラム、ソフトウェア、ソフトウェアアプリケーション、アプリ、スクリプト、またはコードとしても知られる)は、コンパイラ型言語もしくはインタープリタ型言語、宣言型言語もしくは手続き型言語を含む任意の形態のプログラミング言語で記述可能であり、独立型プログラムとしての形態、またはモジュール、コンポーネント、サブルーチン、オブジェクト、もしくはコンピューティング環境での使用に好適なその他の単位としての形態を含む任意の形態で展開され得る。コンピュータプログラムは、ファイルシステム内のファイルに対応し得る。コンピュータプログラムは、その他のプログラムもしくはデータを保持するファイルの一部(たとえば、マークアップ言語のドキュメントに記憶された1つもしくは複数のスクリプト)、問題にしているプログラムに専用の単一のファイル、または複数の連携されたファイル(たとえば、1つもしくは複数のモジュール、サブプログラム、もしくはコードの一部を記憶するファイル)に記憶され得る。コンピュータプログラムは、1つのコンピュータ上で、または1つの場所に置かれるか、もしくは複数の場所全体に分散され、通信ネットワークによって相互に接続される複数のコンピュータ上で実行されるように展開され得る。
【０１２６】
本明細書に記載のプロセスおよび論理フローは、入力データに対して演算を行い、出力を生成することによってアクションを行うために1つまたは複数のコンピュータプログラム(たとえば、データ処理システム102のコンポーネント)を1つまたは複数のプログラミング可能なプロセッサが実行することによって実行され得る。また、プロセスおよび論理フローは、専用の論理回路、たとえば、FPGA(フィールドプログラマブルゲートアレイ)またはASIC(特定用途向け集積回路)によって実行されることが可能であり、さらに、装置は、それらの専用の論理回路として実装されることが可能である。コンピュータプログラム命令およびデータを記憶するのに適したデバイスは、例として、半導体メモリデバイス、たとえば、EPROM、EEPROM、およびフラッシュメモリデバイス、磁気ディスク、たとえば、内蔵ハードディスクまたはリムーバブルディスク、光磁気ディスク、ならびにCD-ROMディスクおよびDVD-ROMディスクを含む、すべての形態の不揮発性メモリ、媒体、およびメモリデバイスを含む。プロセッサおよびメモリは、専用論理回路によって補完され得るか、または専用論理回路に組み込まれ得る。
【０１２７】
本明細書に記載の対象は、バックエンドコンポーネントを、たとえば、データサーバとして含むか、またはミドルウェアコンポーネント、たとえば、アプリケーションサーバを含むか、またはフロントエンドコンポーネント、たとえば、ユーザが本明細書に記載の対象の実装とインタラクションすることができるグラフィカルユーザインターフェースもしくはウェブブラウザを有するクライアントコンピュータを含むか、または1つもしくは複数のそのようなバックエンドコンポーネント、ミドルウェアコンポーネント、もしくはフロントエンドコンポーネントの組合せを含むコンピューティングシステムに実装され得る。システムのコンポーネントは、任意の形態または媒体のデジタルデータ通信、たとえば、通信ネットワークによって相互に接続されることが可能である。通信ネットワークの例は、ローカルエリアネットワーク(「LAN」)および広域ネットワーク(「WAN」)、インターネットワーク(たとえば、インターネット)、ならびにピアツーピアネットワーク(たとえば、アドホックピアツーピアネットワーク)を含む。
【０１２８】
システム100またはシステム400などのコンピューティングシステムは、クライアントおよびサーバを含み得る。クライアントおよびサーバは、概して互いに離れており、通常は通信ネットワーク(たとえば、ネットワーク105)を通じてインタラクションする。クライアントとサーバとの関係は、それぞれのコンピュータ上で実行されており、互いにクライアント-サーバの関係にあるコンピュータプログラムによって生じる。一部の実装において、サーバは、(たとえば、クライアントデバイスとインタラクションするユーザに対してデータを表示し、そのようなユーザからユーザ入力を受け取る目的で)クライアントデバイスにデータ(たとえば、コンテンツアイテムを表すデータパケット)を送信する。クライアントデバイスにおいて生成されたデータ(たとえば、ユーザインタラクションの結果)は、サーバにおいてクライアントデバイスから受信され得る(たとえば、デジタルアシスタントコンピューティングデバイス104またはコンテンツプロバイダコンピューティングデバイス106または第三者デバイス146からデータ処理システム102によって受信され得る)。
【０１２９】
動作が特定の順序で図面に示されているが、そのような動作は、示された特定の順序でまたは逐次的順序で実行される必要があるわけではなく、すべての示された動作が、実行される必要があるわけではない。本明細書に記載のアクションは、異なる順序で実行され得る。
【０１３０】
様々なシステムコンポーネントの分割は、すべての実装において分割を必要とするわけではなく、説明されたプログラムコンポーネントは、単一のハードウェアまたはソフトウェア製品に含まれ得る。たとえば、NLPコンポーネント110またはコンテンツセレクタコンポーネント118は、単一のコンポーネント、アプリ、もしくはプログラム、または1つもしくは複数の処理回路を有する論理デバイス、またはデータ処理システム102の1つもしくは複数のサーバの一部であることが可能である。
【０１３１】
今やいくつかの例示的な実装を説明したが、以上は例示的であり、限定的でなく、例として提示されたことは明らかである。特に、本明細書において提示された例の多くは方法の行為またはシステムの要素の特定の組合せを含むが、それらの行為およびそれらの要素は、同じ目的を達成するためにその他の方法で組み合わされる可能性がある。1つの実装に関連して検討された行為、要素、および特徴は、その他の実装または実装の同様の役割から除外されるように意図されていない。
【０１３２】
本明細書において使用された言葉遣いおよび用語は、説明を目的としており、限定と見なされるべきでない。本明細書における「〜を含む(including)」、「〜を含む(comprising)」、「〜を有する(having)」、「〜を含む(containing)」、「〜を含む(involving)」、「〜によって特徴付けられる(characterized by)」、「〜ことを特徴とする(characterized in that)」、およびこれらの変化形の使用は、その前に列挙された項目、それらの項目の均等物、および追加的な項目、ならびにその前に列挙された項目だけからなる代替的な実装を包含するように意図される。1つの実装において、本明細書に記載のシステムおよび方法は、説明された要素、行為、またはコンポーネントのうちの1つ、2つ以上のそれぞれの組合せ、またはすべてからなる。
【０１３３】
本明細書において単数形で言及されたシステムおよび方法の実装または要素または行為へのすべての言及は、複数のこれらの要素を含む実装も包含する可能性があり、本明細書における任意の実装または要素または行為への複数形のすべての言及は、単一の要素のみを含む実装も包含する可能性がある。単数形または複数形の言及は、今開示されたシステムまたは方法、それらのコンポーネント、行為、または要素を単一のまたは複数の構成に限定するように意図されていない。任意の情報、行為、または要素に基づいている任意の行為または要素への言及は、行為または要素が少なくとも一部には任意の情報、行為、または要素に基づく実装を含む可能性がある。
【０１３４】
本明細書において開示された任意の実装は、任意のその他の実装または実施形態と組み合わされる可能性があり、「実装」、「いくつかの実装」、「1つの実装」などの言及は、必ずしも相互排他的ではなく、実装に関連して説明された特定の特徴、構造、または特色が少なくとも1つの実装または実施形態に含まれる可能性があることを示すように意図される。本明細書において使用されるそのような用語は、必ずしもすべてが同じ実装に言及しているとは限らない。任意の実装は、本明細書において開示された態様および実装に合致する任意の方法で包括的または排他的に任意のその他の実装と組み合わされる可能性がある。
【０１３５】
「または(or)」との言及は、「または(or)」を使用して記載された任意の項が記載された項のうちの1つ、2つ以上、およびすべてのいずれかを示す可能性があるように包括的であると見なされる可能性がある。たとえば、「『A』および『B』のうちの少なくとも一方」との言及は、「A」のみ、「B」のみ、および「A」と「B」との両方を含み得る。「〜を含む(comprising)」またはその他の非限定的用語(open terminology)と関連して使用されるそのような言及は、追加的な項を含み得る。
【０１３６】
図面、詳細な説明、または任意の請求項の技術的な特徴が後に参照符号を付されている場合、参照符号は、図面、詳細な説明、および請求項を理解しやすくするために含められた。したがって、参照符号があることもないことも、いかなる請求項の要素の範囲に対するいかなる限定的な効果も持たない。
【０１３７】
本明細書に記載のシステムおよび方法は、それらの特徴を逸脱することなくその他の特定の形態で具現化される可能性がある。上述の実装は、説明されたシステムおよび方法の限定ではなく、例示的である。したがって、本明細書に記載のシステムおよび方法の範囲は、上述の説明ではなく添付の請求項によって示され、請求項の均等の意味および範囲内に入る変更は、それに包含される。
【符号の説明】
【０１３８】
100  システム
102  データ処理システム
104  デジタルアシスタントコンピューティングデバイス
105  ネットワーク
106  ネットワーク接続されたデバイス
108  インターフェース
110  自然言語プロセッサコンポーネント
112  オーケストレータコンポーネント
114  ダイレクトアクションAPI
116  データリポジトリ
118  アカウントデータ構造
120  閾値データ構造
122  モデル
124  テンプレート
126  光源
128  センサ
130  トランスデューサ
132  オーディオドライバ
134  プリプロセッサ
136  信号品質チェッカ
146  第三者デバイス
150  クライアントコンピューティングデバイス
200  システム
202  デジタルアシスタントコンピューティングデバイス
204  デジタルアシスタントコンピューティングデバイス
206  接続されたサーモスタット、インターネットに接続されたデバイス
208  接続されたランプ、インターネットに接続されたデバイス
210  接続されたスピーカ、インターネットに接続されたデバイス
212  接続されたマルチメディアディスプレイ、インターネットに接続されたデバイス
214  ワイヤレスゲートウェイ
216  接続された電気通信デバイス、インターネットに接続されたデバイス
218  入力オーディオ信号
232  ユーザ
234  部屋
300  方法
400  システム
405  バス
410  プロセッサ
415  メインメモリ
420  読出し専用メモリ(ROM)
425  ストレージデバイス
430  入力デバイス
435  ディスプレイ、タッチスクリーンディスプレイ
【図１】
2021513693.tif 000004
【図２】
2021513693.tif 000005
【図３】
2021513693.tif 000006
【図４】
2021513693.tif 000007
【手続補正書】
【提出日】令和2年12月4日(2020.12.4)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
音声駆動式のコンピューティング環境においてコンピューティングデバイスの間で信号処理を調整するためのシステムであって、
第1のデジタルアシスタントコンピューティングデバイスおよび第2のデジタルアシスタントコンピューティングデバイスを含む複数のデジタルアシスタントコンピューティングデバイスであって、前記複数のデジタルアシスタントコンピューティングデバイスが、複数のネットワーク接続されたデバイスを制御するように動作可能である、複数のデジタルアシスタントコンピューティングデバイスと、
オーケストレータコンポーネントおよびダイレクトアクションアプリケーションプログラミングインターフェース(ダイレクトアクションAPI)を実行するための1つまたは複数のプロセッサおよびメモリを含むデータ処理システムであって、前記データ処理システムが、前記第1のデジタルアシスタントコンピューティングデバイスをプライマリ信号プロセッサとして設定し、前記第2のデジタルアシスタントコンピューティングデバイスをセカンダリ信号プロセッサとして設定するための、データ処理システムと、
前記第1のデジタルアシスタントコンピューティングデバイスのセンサによって入力オーディオ信号を検出するための前記第1のデジタルアシスタントコンピューティングデバイスと、
前記第1のデジタルアシスタントコンピューティングデバイスの前記センサによって検出された前記入力オーディオ信号が信号処理のための閾値を満たすと判定し、前記第1のデジタルアシスタントコンピューティングデバイスが前記入力オーディオ信号を処理するように動作可能であるというインジケーションを前記データ処理システムに送信するために前記第1のデジタルアシスタントコンピューティングデバイスによって実行される信号品質チェッカと、
前記第2のデジタルアシスタントコンピューティングデバイスのセンサによって前記入力オーディオ信号を検出するための前記第2のデジタルアシスタントコンピューティングデバイスと、
前記第2のデジタルアシスタントコンピューティングデバイスの前記センサによって検出された前記入力オーディオ信号が信号処理のための前記閾値を満たすと判定し、前記第2のデジタルアシスタントコンピューティングデバイスが前記入力オーディオ信号を処理するように動作可能であるというインジケーションを前記データ処理システムに送信するために前記第2のデジタルアシスタントコンピューティングデバイスによって実行される前記信号品質チェッカと、
前記データ処理システムの前記オーケストレータコンポーネントであって、
前記第1のデジタルアシスタントコンピューティングデバイスからの前記インジケーションおよび前記第2のデジタルアシスタントコンピューティングデバイスからの前記インジケーションを受信し、
前記プライマリ信号プロセッサとして設定された前記第1のデジタルアシスタントコンピューティングデバイス、および前記第1のデジタルアシスタントコンピューティングデバイスが前記入力オーディオ信号を処理するように動作可能であるという前記インジケーションに基づいて、前記入力オーディオ信号を処理するために第1のデジタルアシスタントを選択し、
前記入力オーディオ信号を処理するように前記第1のデジタルアシスタントコンピューティングデバイスに命令し、
前記第2のデジタルアシスタントコンピューティングデバイスが前記入力オーディオ信号を処理することを防止するために前記第2のデジタルアシスタントコンピューティングデバイスにスタンバイモードになるように命令するための、前記オーケストレータコンポーネントと、
前記ダイレクトアクションAPIであって、
前記第1のデジタルアシスタントコンピューティングデバイスからコマンドを含むデータパケットを受信することであって、前記コマンドが、前記入力オーディオ信号に基づいて前記第1のデジタルアシスタントコンピューティングデバイスによって生成される、ことと、
前記複数のネットワーク接続されたデバイスのうちから選択されたネットワーク接続されたデバイスのために、前記コマンドに基づいてアクションデータ構造を生成することと、
前記ネットワーク接続されたデバイスを制御するために前記ネットワーク接続されたデバイスに前記アクションデータ構造を送信することとを行うための、前記ダイレクトアクションAPIとを含む、
システム。
【請求項２】
前記複数のデジタルアシスタントコンピューティングデバイスが、異種のデバイスであり、
前記第1のデジタルアシスタントコンピューティングデバイスが、第1の種類のデバイスを含み、
前記第2のデジタルアシスタントコンピューティングデバイスが、第2の種類のデバイスを含む、
請求項1に記載のシステム。
【請求項３】
前記第1のデジタルアシスタントコンピューティングデバイス、前記第2のデジタルアシスタントコンピューティングデバイス、および前記ネットワーク接続されたデバイスの各々が、アシスタントソフトウェア開発キットを用いて構成され、
前記第1の種類のデバイスが、スピーカデバイス、テレビデバイス、モバイルデバイス、およびウェアラブルデバイスのうちの少なくとも1つを含み、
前記第2の種類のデバイスが、前記スピーカデバイス、前記テレビデバイス、前記モバイルデバイス、および前記ウェアラブルデバイスのうちの少なくとも1つを含み、
前記ネットワーク接続されたデバイスが、前記スピーカデバイス、前記テレビデバイス、前記モバイルデバイス、前記ウェアラブルデバイス、デジタルランプ、デジタルサーモスタット、デジタル家電、およびデジタル自動車のうちの少なくとも1つを含む、
請求項2に記載のシステム。
【請求項４】
前記第1のデジタルアシスタントコンピューティングデバイスの1つまたは複数の特徴を取得するために前記第1のデジタルアシスタントコンピューティングデバイスにポーリングし、
前記第2のデジタルアシスタントコンピューティングデバイスの前記1つまたは複数の特徴を取得するために第2のデジタルアシスタントコンポーネントにポーリングし、
前記第1のデジタルアシスタントコンピューティングデバイスの前記1つまたは複数の特徴および前記第2のデジタルアシスタントコンピューティングデバイスの前記1つまたは複数の特徴の比較に基づいて、前記第1のデジタルアシスタントコンピューティングデバイスをプライマリ信号プロセッサとして設定し、前記第2のデジタルアシスタントコンピューティングデバイスをセカンダリ信号プロセッサとして設定すると決定し、
前記第1のデジタルアシスタントコンピューティングデバイスを前記プライマリ信号プロセッサとして設定し、前記第2のデジタルアシスタントコンピューティングデバイスを前記セカンダリ信号プロセッサとして設定するための前記データ処理システムを含む、
請求項1に記載のシステム。
【請求項５】
前記メモリ内の集中化されたアカウントに、前記第1のデジタルアシスタントコンピューティングデバイスと前記ネットワーク接続されたデバイスとの間の第1のリンク、および前記第2のデジタルアシスタントコンピューティングデバイスと前記ネットワーク接続されたデバイスとの間の第2のリンクを記憶し、
前記第1のデジタルアシスタントコンピューティングデバイスの選択に応じて、前記第1のリンクに基づいて、前記集中化されたアカウントにアクセスして前記アクションデータ構造の生成のための情報を取り出すための前記データ処理システムを含む、
請求項1に記載のシステム。
【請求項６】
前記集中化されたアカウントが、前記第1のデジタルアシスタントおよび第2のデジタルアシスタントのうちの少なくとも1つへのリンクを有する複数の異種のネットワーク接続されたデバイスに関連する情報を記憶し、前記システムが、
前記第1のデジタルアシスタントコンピューティングデバイスによって検出された前記入力オーディオ信号の特徴の第1の値を前記第2のデジタルアシスタントコンピューティングデバイスによって検出された前記入力オーディオ信号の前記特徴の第2の値と比較し、
前記比較に基づいて、前記複数のネットワーク接続されたデバイスから前記ネットワーク接続されたデバイスを選択するための前記データ処理システムを含む、
請求項5に記載のシステム。
【請求項７】
機械学習モデルに基づいて、前記第1のデジタルアシスタントコンピューティングデバイスを前記プライマリ信号プロセッサとして設定すると決定するための前記データ処理システムを含む、
請求項1に記載のシステム。
【請求項８】
前記第1のデジタルアシスタントコンピューティングデバイスの状態の変化を検出し、
前記第1のデジタルアシスタントコンピューティングデバイスの前記状態の前記変化に基づいて、前記第2のデジタルアシスタントコンピューティングデバイスを前記プライマリ信号プロセッサに切り替え、前記第1のデジタルアシスタントコンピューティングデバイスを前記セカンダリ信号プロセッサに切り替えるための前記データ処理システムを含む、
請求項1に記載のシステム。
【請求項９】
機械学習モデルに基づいて信号処理のための前記閾値を決定し、
前記閾値を前記メモリ内の集中化されたアカウントに記憶するための前記データ処理システムを含む、
請求項1に記載のシステム。
【請求項１０】
第2の入力オーディオ信号を受け取るための前記第1のデジタルアシスタントコンピューティングデバイスの前記センサと、
前記第1のデジタルアシスタントコンピューティングデバイスの前記センサによって検出された前記第2の入力オーディオ信号が信号処理のための前記閾値を満たすことができないと判定し、前記第1のデジタルアシスタントコンピューティングデバイスが前記第2の入力オーディオ信号を処理するように動作可能でないというインジケーションを前記データ処理システムに送信するために前記第1のデジタルアシスタントコンピューティングデバイスによって実行される前記信号品質チェッカと、
前記第2の入力オーディオ信号を受け取るための前記第2のデジタルアシスタントコンピューティングデバイスの前記センサと、
前記第2のデジタルアシスタントコンピューティングデバイスの前記センサによって検出された前記第2の入力オーディオ信号が信号処理のための前記閾値を満たすと判定し、前記第2のデジタルアシスタントコンピューティングデバイスが前記第2の入力オーディオ信号を処理するように動作可能であるというインジケーションを前記データ処理システムに送信するために前記第2のデジタルアシスタントコンピューティングデバイスによって実行される前記信号品質チェッカと、
前記データ処理システムであって、
前記第1のデジタルアシスタントコンピューティングデバイスから、前記第1のデジタルアシスタントコンピューティングデバイスが前記第2の入力オーディオ信号を処理するように動作可能でないという前記インジケーションを受信し、
前記第2のデジタルアシスタントコンピューティングデバイスから、前記第2のデジタルアシスタントコンピューティングデバイスが前記第2の入力オーディオ信号を処理するように動作可能であるという前記インジケーションを受信し、
前記第1のデジタルアシスタントコンピューティングデバイスが前記第2の入力オーディオ信号を処理するように動作可能でなく、前記第2のデジタルアシスタントコンピューティングデバイスが前記第2の入力オーディオ信号を処理するように動作可能であることに基づいて、前記第2の入力オーディオ信号を処理するために前記第2のデジタルアシスタントコンピューティングデバイスを選択するための、
前記データ処理システムと、
前記第2のデジタルアシスタントコンピューティングデバイスから第2のコマンドを含むデータパケットを受信するための前記ダイレクトアクションAPIとを含む、
請求項1に記載のシステム。
【請求項１１】
音声駆動式のコンピューティング環境においてコンピューティングデバイスの間で信号処理を調整する方法であって、
第1のデジタルアシスタントコンピューティングデバイスのセンサにより前記第1のデジタルアシスタントコンピューティングデバイスによって入力オーディオ信号を検出するステップと、
前記第1のデジタルアシスタントコンピューティングデバイスによって実行される信号品質チェッカによって、前記第1のデジタルアシスタントコンピューティングデバイスの前記センサによって検出された前記入力オーディオ信号が信号処理のための閾値を満たすと判定するステップと、
前記第1のデジタルアシスタントコンピューティングデバイスが前記入力オーディオ信号を処理するように動作可能であるというインジケーションを、1つまたは複数のプロセッサおよびメモリを含むデータ処理システムに送信するステップと、
第2のデジタルアシスタントコンピューティングデバイスのセンサにより前記第2のデジタルアシスタントコンピューティングデバイスによって前記入力オーディオ信号を検出するステップと、
前記第2のデジタルアシスタントコンピューティングデバイスによって実行される信号品質チェッカによって、前記第2のデジタルアシスタントコンピューティングデバイスの前記センサによって検出された前記入力オーディオ信号が信号処理のための前記閾値を満たすと判定するステップと、
前記第2のデジタルアシスタントコンピューティングデバイスが前記入力オーディオ信号を処理するように動作可能であるというインジケーションを前記データ処理システムに送信するステップと、
前記第1のデジタルアシスタントコンピューティングデバイスからの前記インジケーションおよび前記第2のデジタルアシスタントコンピューティングデバイスからの前記インジケーションを前記データ処理システムによって受信するステップと、
プライマリ信号プロセッサとして設定された前記第1のデジタルアシスタントコンピューティングデバイス、および前記第1のデジタルアシスタントコンピューティングデバイスが前記入力オーディオ信号を処理するように動作可能であるという前記インジケーションに基づいて、前記データ処理システムによって、前記入力オーディオ信号を処理するために第1のデジタルアシスタントを選択するステップと、
前記データ処理システムによって、前記入力オーディオ信号を処理するように前記第1のデジタルアシスタントコンピューティングデバイスに命令するステップと、
前記データ処理システムによって、前記第2のデジタルアシスタントコンピューティングデバイスが前記入力オーディオ信号を処理することを防止するために前記第2のデジタルアシスタントコンピューティングデバイスにスタンバイモードになるように命令するステップと、
前記データ処理システムによって、前記第1のデジタルアシスタントコンピューティングデバイスからコマンドを含むデータパケットを受信するステップであって、前記コマンドが、前記入力オーディオ信号に基づいて前記第1のデジタルアシスタントコンピューティングデバイスによって生成される、ステップと、
複数のネットワーク接続されたデバイスのうちから選択されたネットワーク接続されたデバイスのために前記データ処理システムによって、前記コマンドに基づいてアクションデータ構造を生成するステップと、
前記データ処理システムによって、ネットワーク接続されたデバイスを制御するために前記ネットワーク接続されたデバイスに前記アクションデータ構造を送信するステップとを含む、
方法。
【請求項１２】
前記第1のデジタルアシスタントコンピューティングデバイスが、第1の種類のデバイスを含み、前記第2のデジタルアシスタントコンピューティングデバイスが、第2の種類のデバイスを含み、
前記第1のデジタルアシスタントコンピューティングデバイス、前記第2のデジタルアシスタントコンピューティングデバイス、および前記ネットワーク接続されたデバイスの各々が、アシスタントソフトウェア開発キットを用いて構成され、
前記第1の種類のデバイスが、スピーカデバイス、テレビデバイス、モバイルデバイス、およびウェアラブルデバイスのうちの少なくとも1つを含み、
前記第2の種類のデバイスが、前記スピーカデバイス、前記テレビデバイス、前記モバイルデバイス、および前記ウェアラブルデバイスのうちの少なくとも1つを含み、
前記ネットワーク接続されたデバイスが、前記スピーカデバイス、前記テレビデバイス、前記モバイルデバイス、前記ウェアラブルデバイス、デジタルランプ、デジタルサーモスタット、デジタル家電、およびデジタル自動車のうちの少なくとも1つを含む、
請求項11に記載の方法。
【請求項１３】
前記第1のデジタルアシスタントコンピューティングデバイスの1つまたは複数の特徴を取得するために前記第1のデジタルアシスタントコンピューティングデバイスにポーリングするステップと、
前記第2のデジタルアシスタントコンピューティングデバイスの前記1つまたは複数の特徴を取得するために第2のデジタルアシスタントコンポーネントにポーリングするステップと、
前記第1のデジタルアシスタントコンピューティングデバイスの前記1つまたは複数の特徴および前記第2のデジタルアシスタントコンピューティングデバイスの前記1つまたは複数の特徴の比較に基づいて、前記第1のデジタルアシスタントコンピューティングデバイスをプライマリ信号プロセッサとして設定し、前記第2のデジタルアシスタントコンピューティングデバイスをセカンダリ信号プロセッサとして設定すると決定するステップと、
前記第1のデジタルアシスタントコンピューティングデバイスを前記プライマリ信号プロセッサとして設定し、前記第2のデジタルアシスタントコンピューティングデバイスを前記セカンダリ信号プロセッサとして設定するステップとを含む、
請求項11に記載の方法。
【請求項１４】
前記データ処理システムによって、前記メモリ内の集中化されたアカウントに、前記第1のデジタルアシスタントコンピューティングデバイスと前記ネットワーク接続されたデバイスとの間の第1のリンク、および前記第2のデジタルアシスタントコンピューティングデバイスと前記ネットワーク接続されたデバイスとの間の第2のリンクを記憶するステップと、
前記データ処理システムによって、前記第1のデジタルアシスタントコンピューティングデバイスの選択に応じて、前記第1のリンクに基づいて、前記集中化されたアカウントにアクセスして前記アクションデータ構造の生成のための情報を取り出すステップとを含む、
請求項11に記載の方法。
【請求項１５】
機械学習モデルに基づいて、前記第1のデジタルアシスタントコンピューティングデバイスを前記プライマリ信号プロセッサとして設定すると決定するステップを含む、
請求項11に記載の方法。
【請求項１６】
前記第1のデジタルアシスタントコンピューティングデバイスの状態の変化を検出するステップと、
前記第1のデジタルアシスタントコンピューティングデバイスの前記状態の前記変化に基づいて、前記第2のデジタルアシスタントコンピューティングデバイスを前記プライマリ信号プロセッサに切り替えるステップと、
前記第1のデジタルアシスタントコンピューティングデバイスをセカンダリ信号プロセッサに切り替えるステップとを含む、
請求項11に記載の方法。
【請求項１７】
機械学習モデルに基づいて信号処理のための前記閾値を決定するステップと、
前記閾値を前記メモリ内の集中化されたアカウントに記憶するステップとを含む、
請求項11に記載の方法。
【請求項１８】
前記第1のデジタルアシスタントコンピューティングデバイスの前記センサによって第2の入力オーディオ信号を受け取るステップと、
前記第1のデジタルアシスタントコンピューティングデバイスによって実行される前記信号品質チェッカによって、前記第1のデジタルアシスタントコンピューティングデバイスの前記センサによって検出された前記第2の入力オーディオ信号が信号処理のための前記閾値を満たすことができないと判定するステップと、
前記第1のデジタルアシスタントコンピューティングデバイスによって前記データ処理システムに、前記第1のデジタルアシスタントコンピューティングデバイスが前記第2の入力オーディオ信号を処理するように動作可能でないというインジケーションを送信するステップと、
前記第2のデジタルアシスタントコンピューティングデバイスの前記センサによって前記第2の入力オーディオ信号を受け取るステップと、
前記第2のデジタルアシスタントコンピューティングデバイスによって実行される前記信号品質チェッカによって、前記第2のデジタルアシスタントコンピューティングデバイスの前記センサによって検出された前記第2の入力オーディオ信号が信号処理のための前記閾値を満たすと判定するステップと、
前記第2のデジタルアシスタントコンピューティングデバイスによって前記データ処理システムに、前記第2のデジタルアシスタントコンピューティングデバイスが前記第2の入力オーディオ信号を処理するように動作可能であるというインジケーションを送信するステップと、
前記第1のデジタルアシスタントコンピューティングデバイスが前記第2の入力オーディオ信号を処理するように動作可能でないという前記インジケーションを前記第1のデジタルアシスタントコンピューティングデバイスから前記データ処理システムによって受信するステップと、
前記第2のデジタルアシスタントコンピューティングデバイスが前記第2の入力オーディオ信号を処理するように動作可能であるという前記インジケーションを前記第2のデジタルアシスタントコンピューティングデバイスから前記データ処理システムによって受信するステップと、
前記第1のデジタルアシスタントコンピューティングデバイスが前記第2の入力オーディオ信号を処理するように動作可能でなく、前記第2のデジタルアシスタントコンピューティングデバイスが前記第2の入力オーディオ信号を処理するように動作可能であることに基づいて、前記データ処理システムによって、前記第2の入力オーディオ信号を処理するために前記第2のデジタルアシスタントコンピューティングデバイスを選択するステップと、
ダイレクトアクションアプリケーションプログラミングインターフェース(ダイレクトアクションAPI)によって、前記第2のデジタルアシスタントコンピューティングデバイスから第2のコマンドを含むデータパケットを受信するステップとを含む、
請求項11に記載の方法。
【請求項１９】
デジタルアシスタントコンピューティングデバイスであって、
入力オーディオ信号を検出するためのセンサと、
オーディオドライバと、
プリプロセッサコンポーネントによって実行される信号品質チェッカと、
前記センサおよび前記オーディオドライバに結合された前記プリプロセッサコンポーネントであって、前記プリプロセッサコンポーネントが、
前記デジタルアシスタントコンピューティングデバイスの前記センサによって検出された前記入力オーディオ信号が信号処理のための閾値を満たすと判定し、
ネットワークを介してデータ処理システムに、前記デジタルアシスタントコンピューティングデバイスが前記入力オーディオ信号を処理するように動作可能であるというインジケーションを送信して、前記データ処理システムに、
前記デジタルアシスタントコンピューティングデバイスから前記インジケーションを受信することと、
前記デジタルアシスタントコンピューティングデバイスがプライマリ信号プロセッサとして設定され、前記入力オーディオ信号を検出する第2のデジタルコンピューティングデバイスがセカンダリ信号プロセッサとして設定されると決定することであって、前記第2のデジタルコンピューティングデバイスが、前記入力オーディオ信号を処理するように動作可能である、ことと、
前記プライマリ信号プロセッサとして設定された前記デジタルアシスタントコンピューティングデバイス、および前記デジタルアシスタントコンピューティングデバイスが前記入力オーディオ信号を処理するように動作可能であるという前記インジケーションに基づいて、前記入力オーディオ信号を処理するためにデジタルアシスタントを選択することとを行わせ、
前記入力オーディオ信号を処理する命令を前記デジタルアシスタントコンピューティングデバイスに送信し、
第2のデジタルアシスタントコンピューティングデバイスが前記入力オーディオ信号を処理することを防止するためにスタンバイモードになる命令を前記第2のデジタルアシスタントコンピューティングデバイスに送信し、
前記デジタルアシスタントコンピューティングデバイスの前記プリプロセッサコンポーネントが、
前記入力オーディオ信号を処理する前記命令を受信し、
前記入力オーディオ信号に基づいてコマンドを含むデータパケットを生成し、
前記データ処理システムに前記データパケットを送信して、前記データ処理システムに、
複数のネットワーク接続されたデバイスのうちから選択されたネットワーク接続されたデバイスのために、前記デジタルアシスタントコンピューティングデバイスから受信された前記コマンドに基づいてアクションデータ構造を生成させ、
前記ネットワーク接続されたデバイスを制御するために前記ネットワーク接続されたデバイスに前記アクションデータ構造を送信させるための、前記プリプロセッサコンポーネントとを含む、
デジタルアシスタントコンピューティングデバイス。
【請求項２０】
オーディオドライバと、
スピーカコンポーネントと、
前記ネットワーク接続されたデバイスに送信された前記アクションデータ構造のステータスのインジケーションを受信し、前記スピーカコンポーネントに前記ステータスの前記インジケーションに対応するオーディオ出力を送出させるための出力オーディオ信号を生成するように前記オーディオドライバに命令するための前記プリプロセッサコンポーネントとを含む、
請求項19に記載のデバイス。
【国際調査報告】
2021513693.tif 000008
2021513693.tif 000009
2021513693.tif 000010