(58)【調査した分野】(Int.Cl.,DB名)
前記第1の音声信号メトリック値は、信号対ノイズ比、スペクトル重心計測値、音声エネルギーレベル、スペクトルフラックス、特定のパーセンタイル周波数、周期性、明瞭性又は調和性のうちの少なくとも1つを含む、請求項1〜6のいずれか一項に記載のシステム。
【発明を実施するための形態】
【0005】
詳細な説明
本開示は、複数の音声対応デバイスによって検出される音声入力を扱う音声対応デバイスを選択するためのアーキテクチャ及び技術を記載する。一部の例では、音声対応デバイスが各々ユーザに近い範囲内に位置するために、複数の音声対応デバイスが、ほぼ同時にユーザからの音声入力を検出する場合がある。アーキテクチャ及び技術は、音声対応デバイスに関する多様な種類の音声信号のメトリック値を分析して、音声入力の処理を扱う音声対応デバイスを指定することができる。これは、重複する入力処理を回避することによって、ユーザエクスペリエンスを高めることができる。さらに、これは最適な音声信号が処理されることを可能にし得る。
【0006】
一部の実装形態では、サービスプロバイダが、音声入力を検出する複数の音声対応デバイスを識別することができる。音声対応デバイスは、互いに近い範囲内に配置されてよく、よって音声入力をほぼ同時に検出する場合がある。一部の例では、音声対応デバイスの一部又は全部は、複数の音声信号(例えば異なる注視方向に関連付けられたビーム形成音声信号)を特定するために入力信号を提供するセンサアレイ(例えばマイクロフォンアレイ)を含む。サービスプロバイダは、音声対応デバイスから受信した音声信号メトリック値に基づいて、音声入力を扱う1つ又は複数の音声対応デバイスを選択することができる。例えば各々の音声対応デバイスは、音声対応デバイスにおいて特定された音声信号に関して、サービスプロバイダに少なくとも1つの音声信号メトリック値を提供することができる。
【0007】
音声信号メトリック値は、音声信号の特徴を示すことができる。例えば音声信号メトリック値には、信号対ノイズ比、スペクトル重心計測値、音声エネルギーレベル、スペクトルフラックス、特定のパーセンタイル周波数、周期性、明瞭性、調和性などが含まれてよい。音声信号メトリック値は、1つの音声信号に固有である、又は複数の音声信号に対して適用可能な場合がある。一例として、音声対応デバイスは、複数のビーム形成音声信号を特定し、最も高い値を有する音声信号メトリック値に対応付けられたビーム形成音声信号を選択することができる。ここで、音声対応デバイスは、選択されたビーム形成音声信号の音声信号メトリック値をサービスプロバイダに送信することで、サービスプロバイダが、音声入力の処理を扱う音声対応デバイスを選択することを可能にすることができる。別の例として、音声対応デバイスは、音声対応デバイスにおいて特定された各々のビーム形成音声信号に関して音声信号メトリック値を送信する場合もある。さらに別の例として、音声対応デバイスは、音声対応デバイスにおいて特定されたビーム形成音声信号に関して平均の音声信号メトリック値を送信する場合もある。他の例では、音声対応デバイスは、他のタイプの音声信号メトリック値(例えば、重み付けされた音声信号メトリック値など)を送信する場合もある。
【0008】
いずれの状況においても、サービスプロバイダは、音声信号メトリック値に基づいて音声対応デバイスをランク付けすることができる。例えば、第1の音声対応デバイスにおいて特定された音声信号に関する信号対ノイズ比が、第2の音声対応デバイスにおいて特定された音声信号に関する信号対ノイズ比より高い(より大きい)場合、第1の音声対応デバイスは、第2の音声対応デバイスより高くランク付けされてよい。このランキングに基づいて、サービスプロバイダは、音声入力の処理を扱う音声対応デバイスを選択することができる。例えば、サービスプロバイダは、最も高い(最大の)音声信号メトリック値に基づいて音声対応デバイスを選択することができる。サービスプロバイダは、選択された音声対応デバイスからの音声信号を処理し、選択されない音声対応デバイスからの音声信号は無視することができる。例示されるように、気象情報に関するユーザリクエストが複数の音声対応デバイスによって検出され、サービスプロバイダが特定の音声対応デバイスを選択した場合、サービスプロバイダは、選択された音声対応デバイスからの音声信号に対して発話認識技術を実践し、選択された音声対応デバイスを介して提供されるべき気象情報を含む応答をもたらすことができる。選択されない音声対応デバイスからのいかなる音声信号もさらに処理されない場合がある。
【0009】
この考察が強調するように、本明細書に記載されるアーキテクチャ及び技術は、ユーザを取り巻く場合がある複数の音声対応デバイスによってユーザエクスペリエンスを高めることができる。例えば、複数の音声対応デバイスによって検出された音声入力を扱う音声対応デバイスを選択することによって、アーキテクチャ及び技術は、発話処理及び/又は応答情報の重複を回避することができる。さらに発話処理及び/又は応答情報の重複を回避することによって、アーキテクチャ及び技術は、特定の量の処理及び/又はいくつかの通信を削減することができる(例えば入力を処理する及び/又は応答を提供するための音声対応デバイスとの通信を削減する)。加えて多くの例では、アーキテクチャ及び技術は、最適な音声信号(例えば最適な特性の信号)に対応付けられた音声対応デバイスを選択することができる。
【0010】
多くの例では、音声対応デバイスを選択するための技術は、サービスプロバイダによって行われるように考察されるが、この技術は追加として、又は代替として、音声対応デバイス及び/又は別のコンピューティングデバイス(例えばラップトップコンピュータ、スマートフォン、第3者など)によって行われる場合もある。
【0011】
この簡単な導入部は、読み手の便宜のために提供されており、特許請求の範囲や以下のセクションを限定することは意図されていない。さらに以下に詳細に記載される技術は、いくつかの方法で、かついくつかの文脈において履行され得る。一例としての実装形態及び文脈が、以下でより詳細に説明されるように、以下の図面を参照して提供されている。しかしながら以下の実装形態及び文脈は、多くの中の一部である。
【0012】
アーキテクチャの一例
図1は、本明細書に記載される技術が実装され得るアーキテクチャ100を一例として示す。アーキテクチャ100は、複数の音声対応デバイス104(1)−(N)(まとめて「音声対応デバイス104))と通信することで、様々な処理を促進するように構成されている。例えばサービスプロバイダ102は、1つ又は複数のユーザ106(以後「ユーザ106」)によって提供された音声入力に関して音声対応デバイス104から音声信号を受信することができる。サービスプロバイダ102は、この音声信号を処理して、ユーザ106のためにタスクを実行する、ユーザ106に対する応答を考案するなどできる。一部の例では、サービスプロバイダ102は、音声対応デバイス104のうちのいくつかのデバイスによって検出された音声入力を扱う音声対応デバイス104のうちの1つを選択することができる。追加として又は代替として、一部の例ではサービスプロバイダ102は、音声出力を扱う、音声対応デバイス104のうちの同一の1つ又は異なる1つを選択する場合もある。サービスプロバイダ102と、音声対応デバイス104は、1つ又は複数のネットワーク108を介して通信することができる。1つ又は複数のネットワーク108は、例えばセルラーネットワーク、無線ネットワーク、ローカルエリアネットワーク(LAN)、ワイドエリアネットワーク(WAN)、パーソナルエリアネットワーク(PAN)、インターネットなど、任意の1つのネットワーク又は複数の異なるタイプのネットワーク組み合わせを含む場合がある。
図1に図示されていないが、音声対応デバイス104の各々は、無線ルータ、セルタワーなどの無線アクセスポイントに接続されてよい。例えば音声対応デバイス104の各々は、ユーザ106の住居内に位置する無線ルータに無線接続されてよい。あるいは又は追加として、音声対応デバイス104は、有線接続を介して互いに接続される場合もある。
【0013】
サービスプロバイダ102は、1つ又は複数のサーバ、デスクトップコンピュータ、ラップトップコンピュータなどを含めた1つ又は複数のコンピューティングデバイスとして実装されてよい。一例において、サービスプロバイダ102は、サーバクラスタ、サーバファーム、データセンタ、メインフレーム、クラウドコンピューティング環境又はその組み合わせにおいて構成される。例示として、サービスプロバイダ102は、ストレージ、コンピューティング、ネットワーキングなどのサービスを提供する分散コンピューティングリソース(例えばクラウドコンピューティング、ホスト型コンピューティングなど)として動作する任意の数のデバイスを含んでよい。
【0014】
サービスプロバイダ102は、ユーザ106とインタラクトする際、音声対応デバイス104を補助するために多様な種類の動作を行うことができる。サービスプロバイダ102は一般に、音声対応デバイス104から音声信号及び他の情報を受信し、(例えば発話認識、自然言語処理(NPL)などを利用して)音声信号及び/又は他の情報を処理し、処理された音声信号に基づいてタスクを実行する、音声対応デバイス104のために応答を考案することなどをすることができる。例えばユーザ106が、音声対応デバイス104(N)に「Tom Pettyをかけて」とリクエストした場合、サービスプロバイダ102は、音声対応デバイス104(N)からの音声信号を処理し、ユーザリクエストを理解すると、音声対応デバイス104(N)にTom Pettyによる歌を再生するように命令する。
【0015】
一部の例では、サービスプロバイダ102は、同一音源からの音声入力を検出する複数の音声対応デバイスの間を調停する場合もある。そうするために、サービスプロバイダ102は、音声対応デバイスにおいて特定された音声信号に関する音声信号メトリック値を分析することができる。一例として、音声対応デバイス104(1)が廊下にあるキャビネット上に配置され、音声対応デバイス104(N)が、廊下に通じている台所のテーブルの上に配置されると仮定する。またユーザ106が、廊下を台所まで進みながら「天気はどうだろう?」と言い、音声対応デバイス104(1)及び104(N)の各々が、この発話入力を検出したと仮定する。ここで、音声対応デバイス104(1)及び104(N)の各々は、サービスプロバイダ102との通信を開始して、それぞれの音声対応デバイスにおいて特定された音声信号及び/又はその音声信号に関する音声信号メトリック値を送信することによってこの発話入力を処理することができる。各々の音声信号メトリック値は一般に、対応付けられた音声信号の特徴を示すことができる。
図1に例示されるように、音声対応デバイス104(1)は、1つ又は複数の音声信号メトリック値110(1)をサービスプロバイダ102に送信することができ、音声対応デバイス104(N)は、1つ又は複数の音声信号メトリック値110(M)を送信することができる。サービスプロバイダ102は、
図1において112で示されるように、音声信号メトリック値に基づいて音声対応デバイス104(1)及び104(N)をランク付けすることができる。サービスプロバイダ102は、このランキングから音声対応デバイス(例えば最上位にランク付けされたデバイス)を選択することができる。サービスプロバイダ102はその後、選択された音声対応デバイスからの音声信号を処理し、ユーザ106のためにタスクを実行することができる。この例では、ユーザ106は、気象情報について尋ねており、したがってサービスプロバイダ102は、話される音声「現在シアトルでは85度です」として出力される気象情報を音声対応デバイス104(1)に提供する。一方では、サービスプロバイダ102は、選択されない音声対応デバイス104(N)からの音声信号は無視する(又は処理しない)ことができる。
【0016】
音声対応デバイス104の各々は、例えばラップコンピュータ、デスクトップコンピュータ、サーバ、スマートフォン、電子読み取りデバイス、モバイルハンドセット、パーソナルデジタルアシスタント(PDA)、携帯型ナビゲーション装置、携帯型ゲーム機器、タブレットコンピュータ、時計、携帯型メディアプレイヤ、ウエラブルコンピューティングデバイス(例えば時計、光学ヘットマウントディスプレイ(OHMD)など)、テレビ、コンピュータモニタ又はディスプレイ、セットトップボックス、車両内のコンピュータシステム、電気器具、カメラ、ロボット、ホログラムシステム、セキュリティシステム、サーモスタット、煙検知器、インターコム、ホームメディアシステム、照明システム、暖房装置、換気空調(HVAC)システム、ホームオートメーションシステム、プロジェクタ、現金自動預け払い機(ATM)、ボイスコマンドデバイス(VCD)などのコンピューティングデバイスとして実装されてよい。一部の例では、コンピューティングデバイスは、携帯型デバイスを備えてよく、その一方で他の例では、コンピューティングデバイスは、固定式のデバイスである場合もある。音声対応デバイス104は、同一タイプのデバイスとして
図1に示されているが、音声対応デバイス104の各々は、任意の数の構成要素を有するように構成されたいずれのタイプのデバイスでもよい。
【0017】
一例である
図1のアーキテクチャ100では、デバイス調停技術は、サービスプロバイダ102によって実行されるものとして説明されている。しかしながら、他の例では、この技術は、音声対応デバイス104のうちの1つなど、他のデバイスによって実践される場合もある。例示するために、音声対応デバイス104(1)と104(N)が共に、同一音源から音声入力を検出する場合、音声入力を扱う特定のデバイスを選択するために、音声対応デバイス104(1)が調停器として指定されてよい。ここで、音声対応デバイス104(1)は、音声対応デバイス104(N)と通信して(例えば無線又は有線接続を介して)、音声信号及び/又は音声信号メトリック値を受信することができる。音声対応デバイス104(1)は、音声対応デバイス104のうちの1つを選択するために、サービスプロバイダ102を参照して上記で考察した調停技術を実行することができる。一部の例では、音声対応デバイス104(1)は、音声対応デバイス104(N)のための中継器又は迂回中継接続として作用することができる(例えば音声対応デバイス104(N)に変わってサービスプロバイダ102と通信する)。一方、他の例では、音声対応デバイス104(N)が、音声対応デバイス104(1)を介して通信しない場合もある。
【0018】
サービスプロバイダの一例
図2は、
図1のサービスプロバイダ102の構成要素を一例として示している。上記で考察したように、サービスプロバイダ102は、1つ又は複数のコンピューティングデバイスとして実装されてよい。1つ又は複数のコンピューティングデバイスには、1つ又は複数のプロセッサ202,メモリ204及び1つ又は複数のネットワークインターフェース206が装備されてよい。1つ又は複数のプロセッサ202は、中央処理装置(CPU)、グラフィックプロセッシングユニット(GPU)、マイクロプロセッサ、デジタル信号プロセッサなどを含んでよい。
【0019】
メモリ204は、1つ又は複数の「モジュール」として構成されたソフトウェア及び/又はファームウェアの機能性を含んでよい。用語「モジュール」は、説明の目的でソフトウェア及び/又はファームウェアの区分の一例を表すことが意図されており、いかなる種類の要件も、又は必要とされる方法、方式又は必須の編成も表すことは意図されていない。したがって種々の「モジュール」が説明されるが、その機能性及び/又は同様の機能性は、異なるように構成される場合もある(例えばより少ない数のモジュールに組み込まれる、多数のモジュールに分けられるなど)。
図2に例示されるように、メモリ204は、ウエイクワードモジュール208、発話認識モジュール210、タスクモジュール212及び調停モジュール214を含んでよい。モジュール208、210、212及び/又は214は、様々な動作を行うために、1つ又は複数のプロセッサ202によって実行可能であってよい。
【0020】
ウエイクワードモジュール208は、音声信号の中の特定の単語又はフレーズ(例えば「ウエイク」ワード、あるいはコンピューティングデバイスとのインタラクションを開始するために話される他のキーワード又はフレーズ)を検出するように構成されてよい。例えばウエイクワードモジュール208は、システムを起動する(例えば覚醒させる/始動する)受信した音声信号の中の潜在的なキーワードを識別することができる。ウエイクワードモジュール208は、1つ又は複数のビーム形成音声信号を受信することで、ビーム形成音声信号の一部が、検出すべき単語又はフレーズに相当する情報を含む可能性があるかを判定することができる。音声信号データストア216は、音声対応デバイス104から受信した1つ又は複数の音声信号を格納することができる。潜在的なウエイクワードが検出されると、ビーム形成音声信号は、発話認識モジュール210に渡され、どの単語又はフレーズが存在するかを特定することができる。
【0021】
ウエイクワードモジュール208は、ウエイクワードが検出されたかどうかを示すウエイクワード結果を提供することができる。ウエイクワードの検出ができない場合は、例えばエラーによる場合、又はウエイクワードが検出されなかったためである。ウエイクワードが検出された一部の実装形態では、ウエイクワード結果はまた、潜在的なウエイクワードを含む場合がある。追加として、又は代替として、ウエイクワード結果は、ウエイクワードの認識の信頼度を示す認識信頼度スコアを含んでよい。認識は予測であることから、認識信頼度スコアは、認識の予測における信頼度の度合いを示すことができる。一部の例では、ウエイクワード結果が、サービスプロバイダ102の別のモジュール及び/又は音声対応デバイス104のうちの1つのモジュール(例えばビーム選択において使用されるビームセレクタモジュール)などの別の構成要素に(例えばフィードバックとして)提供される場合もある。さらに一部の例では、サービスプロバイダ102の別のモジュール(例えば発話認識モジュール210)及び/又は音声対応デバイス104のうちの1つのモジュールからの出力が、ウエイクワードモジュール208に提供されてウエイクワードの検出を支援する場合もある。
【0022】
一部の例では、音声対応デバイス104は、継続的に発話を聞いてウエイクワードを検出する場合もある。ここで、音声対応デバイス104は、ウエイクワードを識別するために、ビーム形成音声信号をサービスプロバイダ102に継続的に提供する場合がある。ウエイクワードを検出すると、さらなる処理が実行されてよい。他の例では、ウエイクワードモジュール208が、音声対応デバイス104のうちの1つに局所的に実装される場合もある。ここで、音声対応デバイス104のうちの1つは、発話を聞いてウエイクワードを検出し、ウエイクワードを検出すると、サービスプロバイダ102に処理を渡すことができる(例えば発話認識モジュール210に処理を渡す)。
【0023】
発話認識モジュール210は、音声信号に対して多様な発話認識技術(時には、自動発話認識(ASR)と呼ばれる)を実行することができる。発話認識モジュール210は、音声信号の中の単語の認識に関して書き起こしたテキスト又は他の出力を提供することができる。発話認識モジュール210は、音声信号が発話認識に関して容認されたかどうか、音声信号からの単語が認識されたかどうか、認識された単語における信頼度(例えば単語を認識する信頼度を示す認識信頼度スコア)などを示す結果を提供することができる。一例において、認識信頼度スコアは、単語が正確に検出されたことの信頼度のレベルを示すことができる。一部の例では、この結果は、サービスプロバイダ102の別のモジュールに及び/又は音声対応デバイス104のうちの1つのモジュール(例えばビーム選択において使用されるビームセレクタモジュール)に(例えばフィードバックとして)提供されてよい。単語が発話認識モジュール210によって検出された場合、書き起こしたテキスト(及び/又は音声信号)がタスクモジュール212に渡されてよい。
【0024】
タスクモジュール212は、発話認識モジュール210(及び/又は他のモジュール)からの情報を分析して入力を解釈する及び/又はタスクを実行するように構成されてよい。一部の例では、タスクモジュール212は、自然言語処理(NLP)技術を採用して、書き起こしたもの(例えばテキスト)の意味を判別する場合もある。この意味に基づいて、タスクモジュール212は、実行すべき及び/又は提供すべき応答を特定することができる。例えば 音声対応デバイスにおいて受信された「電池の注文をしてください」というリクエストに応答して、タスクモジュール212は、電子商取引サイトを通して電池を注文するというタスクを実行し、その後音声対応デバイスに命令を送信して、電池が注文されたことの指示(例えば「了解しました。電池の注文をしました」という音声出力)を提供することができる。他の例では、例えばカレンダーに約束を設定する、電話をかける、気象情報を提供する、音楽をかけるなどの他のタイプのタスクが実行される場合もある。さらに、タスクが行われたことを示すために照明を稼働させる、特定の可聴音(例えばビープ音)を提供するなど、他のタイプの応答が提供される場合もある。
【0025】
調停モジュール214は、入力及び/又は出力を扱う音声対応デバイスを選択するように構成されてよい。上記で指摘したように、一部の例では、複数の音声対応デバイスが、ユーザからの同一発声(又は1つの音源からの同じ音)を検出する場合があり、これは結果として、音声対応デバイスの各々がこの発声を扱うことを試みるようになる場合がある。そのような例では、サービスプロバイダ102が、ユーザとのインタラクションを扱うのに最適な音声対応デバイスを選択するために、音声対応デバイスの間を調停する場合がある。さらに、これは、最適な信号(例えばその発声を最も正確に表す信号)が処理されることを可能にし得る。
【0026】
一部の例は、音声対応デバイスを選択するために、調停モジュール214は、最初の処理を行い、潜在的に選択され得る音声対応デバイスを識別することができる(例えばその間を調停するための音声対応デバイスを識別する)。すなわち、調停モジュール214は、そこから選択するための一群の音声対応デバイスを特定することができる。例えば複数の音声対応デバイスが家の中に配置される場合、調停モジュール214は最初の処理を行い、ユーザとインタラクトするのに恐らく最適であり得る複数のデバイスのサブセットを識別することができる。調停モジュール214は、実行時に(例えば調停プロセスが実施されるべきときにリアルタイムで)及び/又はあらかじめ、最初の処理を行うことができる。
【0027】
一例において、この最初の処理は、互いに対して及び/又は音源に対して所定の距離の範囲内/近い範囲内に配置された音声対応デバイスを選択することができる。例えば、複数の音声対応デバイスが、そのデバイスに関して全地球測位システム(GPS)センサから識別された位置に基づいて 互いに対して近い範囲内に(例えば同じ部屋の中、互いから数フィート離れて)配置されていると判定される場合がある。あるいは又は追加として、複数の音声対応デバイスが、当該デバイスが同一の無線アクセスポイントに接続されていることに基づいて互いに対して近い範囲内に配置されていると判定される場合もある。ここで、無線アクセスポイントは、例えば部屋、家など特定のエリアに関して適用範囲を提供することができる。さらに、複数の音声対応デバイスが、無線アクセスポイントに対する信号の強度に基づいて、互いに対して近い範囲内に配置されていると判定される場合もある。例示するために、無線アクセスポイントへの音声対応デバイスに関する無線接続が、強度閾値(例えば相対的に強い信号を指す)を超えており、かつ同一の無線アクセスポイントへの別の音声対応デバイスに関する無線接続も強度閾値を超えている場合、2つのデバイスは、互いに対して近い範囲内にあると判定されてよい。所定の距離/近さは、管理者、サービスプロバイダ102及びエンドユーザなどによって設定されてよい。所定の距離/近さは、特定のデシベルレベルで話す際、音声対応デバイスによって聞くことができる平均的な距離(経時的に測定される)など任意の値に設定されてよい。
【0028】
別の例では、最初の処理は、音声信号をほぼ同時に特定した音声対応デバイスを選択する場合もある。例示するために、デバイスが各々、互いの閾値の時間の範囲内で(例えば同一スパン時間−ウィンドウ時間の範囲内で)音声信号を生成した場合、2つの音声対応デバイスが選択されてよい。この選択は、音声信号に関するタイムスタンプに基づいてよい。各々のタイムスタンプは、音声信号が生成された時間を指すことができる。音声信号が所定の時間内に互いに接近して生成された場合、これは、例えばこれらのデバイスがユーザからの同一の発声を聞いたことを指すことができる。閾値の時間は、管理者、サービスプロバイダ102、エンドユーザなどによって設定されてよい。
【0029】
さらに別の例では、最初の処理は、同一のユーザアカウントに対応付けられた音声対応デバイスを選択することができる。例示するために、複数の音声対応デバイスが各々、例えばコンテンツにアクセスするために形成されたアカウント、音声対応デバイスにアクセスするためのアカウント、又は任意の他のアカウントなど同一のユーザアカウントに結びつけられた(登録された)場合、複数の音声対応デバイスが選択されてよい。
【0030】
別の例では、最初の処理は、互いに対して閾値の類似性を有する音声信号を特定した(例えばこれらのデバイスが同一の発声を聞いたことを示す)音声対応デバイスを選択する場合もある。音声信号間の類似性の大きさは、例えばカルバック・ライブラー(KL)距離/ダイバージェンス、動的時間伸縮法、ユークリッド距離に基づいたクラスタ内/クラスタ間の差(例えばクラスタ内/クラスタ間相関関係)などの技術を利用した統計的な分析を通じて判定されてよい。
【0031】
別の例では、最初の処理は、特定の閾値を各々上回る(例えばデバイスが正確に単語を認識したことを示す)認識信頼度スコア(音声信号に関する)に対応付けられた音声対応デバイスを選択する場合もある。例示するために、各々のデバイスが音声信号の中の特定の単語を認識し、各々のデバイスが特定の閾値を上回る信頼度の値を有する場合(単語を正確に認識していることを示す)、複数の音声対応デバイスが選択されてよい。閾値を超える信頼度の値は、デバイスが、音声信号がこの単語を含む確度が相対的に高いとしたことを示すことができる。
【0032】
いずれの状況でも、音声対応デバイスを選択するために、調停モジュール214は、同一の音を検出する複数の音声対応デバイスを概ねランク付けすることができる。このランキングは、複数の音声対応デバイスからの音声信号のランキングを含むことができる。このランキングは、様々な情報に基づいていてよい。例えば、音声対応デバイスは、音声対応デバイスから受信した音声信号メトリック値に基づいてランク付けされてよい。このリストの最上位に(又はランキングの最上位に向かって)ランク付けされた音声対応デバイスが音声入力を扱うために選択されてよい。音声信号メトリック値には、信号対ノイズ比、スペクトル重心計測値、音声エネルギーレベル、スペクトルフラックス、特定のパーセンタイル周波数、周期性、明瞭性、調和性などが含まれてよい。音声信号メトリック値は、音声信号メトリック値データストア218に格納されてよい。音声信号メトリック値を
図3を参照して以下でさらに詳細に説明する。
【0033】
音声対応デバイスのランキングの一例として、調停モジュール214が、音声対応デバイスの各々から音声信号メトリック値を受信することができる。各々の音声信号メトリック値は、それぞれの音声対応デバイスによって特定された複数の音声信号の中から最も高い値を有する音声信号メトリック値を表すことができる。例示するために、第1の音声対応デバイスは、発声を処理するための音声信号を選択し(
図3を参照して以下に詳細に説明されるような最適な音声信号)、この音声信号に関する音声信号メトリック値をサービスプロバイダ102に送信することができる。同様に、同一の発声を検出する第2の音声対応デバイスは、処理するための音声信号を選択し(最適な音声信号)、この音声信号に関する音声信号メトリック値をサービスプロバイダ102に送信することができる。サービスプロバイダ102は、それぞれの音声信号メトリック値に従って2つの音声対応デバイスをランク付けすることができる。例えば、第1の音声対応デバイスが、第2の音声対応デバイスよりも、より大きなSNR値に対応付けられている場合、第1の音声対応デバイスは、より上位にランク付けされてよく(リストの最上位に向かって)、第2の音声対応デバイスを制して選択されてよい。
【0034】
別の例として、調停モジュール214は、各々のそれぞれの音声対応デバイスに関する音声信号のメトリックに基づいて、音声対応デバイスをランク付けする場合もある。ここで、各々の音声対応デバイスが、選択された音声信号(例えばこのデバイスにおける最適な音声信号)に関する音声信号メトリック値を提供する代わりに、各々の音声対応デバイスは、音声対応デバイスの複数の音声信号(例えば特定された音声信号の一部又は全て)の各々に関する音声信号メトリック値を提供する場合もある。このように、ランキングは、音声対応デバイスの各々に関して複数のエンティティを含む場合がある(例えば、特定のデバイスを最初に第1の音声信号メトリック値に関してランク付けし、2回目には第2の音声信号メトリック値に関してランク付けする)。
【0035】
さらに別の例として、調停モジュール214が、複数の音声信号メトリック値(例えば異なるタイプの音声信号メトリック値)に基づいて各々の音声対応デバイスをランク付けする場合もある。例示するために、音声対応デバイスは、音声対応デバイスに関するSNR値と、音声対応デバイスに関するスペクトル重心計測に従ってランク付けされてよい。一部の例では、異なるタイプの音声信号メトリック値は異なるように重み付けされてよい。
【0036】
別の一例として、調停モジュール214は、平均的な音声信号メトリック値に基づいて音声対応デバイスをランク付けする場合もある。ここで、各々の音声対応デバイスは、音声対応デバイスに関する複数の音声信号にわたる平均の音声信号メトリック値を送信することができる。例示するために、音声対応デバイスが、3つのビーム形成音声信号を特定した場合、音声対応デバイスは、この3つのビームに関する平均の音声信号メトリック値(例えば平均のSNR)を送信することができる。一部の例では、平均の音声信号メトリック値が、別の音声対応デバイスより特定の音声対応デバイスに関して高い場合、これは、その音声対応デバイスが他の音声対応デバイスより音源に近いことを示す場合がある。
【0037】
一部の例では、調停モジュール214は、重み付けされた音声信号メトリック値に基づいて音声対応デバイスをランク付けする場合もある。例示するために、音声対応デバイスは、音声対応デバイスに関する音声信号に関して最適な音声信号メトリック値(例えば最大/最も高い音声信号メトリック値、又は一部の例では、最小/最も低い音声信号メトリック値)に対応付けられた音声信号を選択することができる。最適な音声信号メトリック値は、音声対応デバイスの音声信号にとって最適な音声信号メトリック値(例えば最大/最も高い音声信号メトリック値)と、最も適さない音声信号メトリック値(例えば最小/最も低い音声信号メトリック値)との差(相違)によって重み付けされてよい。重み付けされた音声信号メトリック値は、サービスプロバイダ102に送信され、複数の音声対応デバイスをランク付けすることができる。
【0038】
さらに、一部の例では調停モジュール214は、履歴統計に基づいて音声信号及び/又は音声対応デバイスをランク付けする場合もある。例えば音声信号の音声信号メトリック値は、多様な音声対応デバイスから経時的に集められてよい。音声対応デバイスからの特定のビーム形成音声信号が履歴的に、その音声対応デバイスに関する、又は複数の音声対応デバイスにわたって最適な信号である(例えば特定の信号が最も高いSNRを有することによって)と判定された場合、調停モジュール214は、この特定のビーム形成音声信号に対してより大きな重み付けを適用し、その結果、特定のビーム形成音声信号は、別のビーム形成音声より高くランク付けされることになる。このように調停モジュール214は、どの音声信号及び/又は音声対応デバイスが使用するのに概ね最適であるかを経時的に学習することができる。例示するために、調停モジュール214は、壁のすぐ隣に配置された音声対応デバイスの3つの特定のビーム形成音声信号が概ね相対的に良好な音声信号であるのに対して、3つの他のビーム形成音声信号は、相対的に品質の低い信号であることを学習することができる。別の実例において、調停モジュール214は、ユーザが概ね同じ場所で話すため、特定のビーム形成音声信号が概ね相対的に最適な音声信号であることを学習する場合もある。
【0039】
いずれに状況においても、調停モジュール214は、音声対応デバイスを選択するためにランキングを利用することができる。一部の例では、ランキングの最上位(又は、最上位に向かって、すなわち最上位の前後の特定の位置に)現れる音声対応デバイスが、処理を扱うために選択されてよい。さらに、音声対応デバイスがランキングに複数回現れる一部の例では(複数の音声信号メトリック値に関して)、調停モジュール214は、このランキングの上位N個の場所に最も現れる音声対応デバイスを選択することができる。Nは、3より大きな整数であってよい。例示するために、調停モジュール214は、ランキング内の最上位の3つの位置のうちの2つを占める第1の音声対応デバイスを選択することができる。
【0040】
一部の例では、調停モジュール214が、ランキングから最適な音声対応デバイスを特定することができない場合、調停モジュール214は、異なる情報に関してランキング動作を繰り返す場合もある。例えば2つの音声対応デバイスが共にSNRに基づいたランキングにおける最上位の位置を占める場合(又は上位N個の場所を各々占める場合)、調停モジュール214は、音声エネルギーレベルに基づいて再度2つの音声対応デバイスをランク付けしてよい。
【0041】
多くの動作が、サービスプロバイダ102によって行われるように本明細書に記載されるが、これらの動作のいずれも、例えば音声対応デバイス104のうちの任意の1つなど、他のデバイスによって行われる場合もある。このように、音声対応デバイス104のうちの任意の1つは、モジュール208、210、212及び/又は214のいずれかを含むことで、処理を局所的に行うことができる。一例として、調停モジュール214は、音声対応デバイス104のうちの1つのメモリに格納され、音声対応デバイス104における局所的処理を行うことで、入力及び/又は出力を扱う音声対応デバイスを選択することができる。追加として、又は代替として、モジュール208、210、212及び/又は214のいずれかは、例えば複数のサービスプロバイダなど様々な異なるコンピューティングデバイスにわたって実装されてよい。さらに、種々の動作がモジュールによって実行されるように記載されるが、これらの動作のいずれか、及び/又は本明細書に記載される他の技術は、例えばフィールドプログラマブルゲートアレイ(FPGA)、特定プログラム向け集積回路(ASIC)、システムオンチップシステム(SOC)、結合プログラム可能論理回路(CPLD)等の1つ又は複数のハードウェアロジックコンポーネントとして実装されてよい。
【0042】
音声対応デバイスの一例
図3は、
図1の音声対応デバイス104のうちの1つの構成要素の一例を示す。音声対応デバイス104は、1つ又は複数のプロセッサ302と、メモリ304と、1つ又は複数のネットワークインターフェース306と、1つ又は複数のマイクロフォン308(以後「マイクロフォン308」)とを含んでよい。1つ又は複数のプロセッサ302は、中央処理装置(CPU)、グラフィックプロセッシングユニット(GPU)、マイクロプロセッサ、デジタル信号プロセッサなどを含んでよい。例示されていないが、音声対応デバイス104は、1つ又は複数の入/出力デバイス(例えばマウス、キーボードなど)、1つ又は複数のカメラ(例えば後方向き、前方向きなど)、1つ又は複数のディスプレイ(例えばタッチスクリーン、液晶ディスプレイ(LCD)、発光ダイオード(LED)ディスプレイ、有機LEDディスプレイ、プラズマディスプレイ、電子ペーパディスプレイなど)、1つ又は複数のセンサ(例えば加速度計、磁力計など)、1つ又は複数のスピーカ、1つ又は複数の照明などを含んでよい。音声対応デバイス104の任意の数の構成要素を使用して、ユーザから入力を受信する及び/又は応答を出力することができる。例えばマイクロフォン308は、ユーザからの発話を検出し、スピーカ又は照明が、この発話入力に対してタスクが行われたことの指示(例えば「あなたのために製品を注文しました」という音声出力、照明を使用可能にするなど)によって応答することができる。さらに、1つ又は複数のネットワークインターフェース306は、1つ又は複数のネットワークを介して通信することができる(例えば音声信号、音声信号メトリック値などの情報を受信する、又はサービスプロバイダ102に情報を送信するなど)。
【0043】
マイクロフォン308は、音声を受信するように構成されたセンサ(例えばトランスデューサを含んでよい。マイクロフォン308は、音声入力(例えば音)に関する入力信号を生成することができる。例えばマイクロフォン308は、ユーザの発声に関するデジタル入力信号を決定することができる。一部の例では、マイクロフォン308は、特定の配列で実装される。この配列は、直線幾何学形状、円形幾何学形状、又は任意の他の構成などの幾何学的パターンで配列されてよい。例えば所与の地点に関して、4つのセンサの配列は、90度の増加量で(例えば0、90、180、270)円形パターンで配置されることで、4方向から音を受信することができる。マイクロフォン308は、平面構成であってよい、又は非平面の三次元領域内に離間して位置決めされてよい。一部の実装形態では、マイクロフォン308は、データ通信において空間的に本質的に異なるセンサの配列を含む場合もある。例えば、ネットワーク接続されたセンサの配列が含まれる場合がある。マイクロフォン308は、無指向性マイクロフォン、指向性マイクロフォン(例えばショットガンマイクロフォン)などを含んでよい。
【0044】
メモリ304は、ビームフォーマーモジュール310、音声信号メトリックモジュール312及びビームセレクタモジュール314を含んでよい。ビームフォーマーモジュール310は、マイクロフォン308から入力信号を受信し、この入力信号に対して信号処理を行って音声信号を生成することができる。例えばビームフォーマーモジュール310は、受信した入力信号、及び複数のビーム形成音声信号の各々の関する異なるセットのフィルタを利用して、複数のビーム形成音声信号を形成する(例えば特定する)ことができる。ビームフォーマーモジュール310は、複数のビーム形成音声信号の各々を特定の注視方向(特定の方向と呼ばれる場合もある)を有するように特定することができ、この注視方向に関して、注視方向以外の方向からセンサアレイ(例えばマイクロフォン308)によって検出された波形は、注視方向からセンサアレイによって検出された波形に対して抑制される。複数のビーム形成信号の各々の注視方向は、互いから等しく離間されてよい。このように各々のビーム形成音声信号は、異なる注視方向に相当し得る。
【0045】
一部の例では、ビーム形成技術は、適応性のある又は可変のビーム形成技術を実装する適応性のある又は可変のビームフォーマーを利用することによって採用されてよい。さらに一部の例では、複数のビームフォーマーモジュール(例えば複数の固定式ビームフォーマーモジュール)が設けられる。各々のビームフォーマーモジュールは、一揃いのフィルタ重み及び/又は遅延を利用して、特定の注視方向に相当するビーム形成音声信号を特定する。例えば、各々のビーム形成音声信号が異なる注視方向に相当する6つのビーム形成音声信号を特定するために、6つの固定式ビームフォーマーモジュールが設けられる。固定式のビームフォーマーが使用されても、適応性のあるビームフォーマーが使用されても、結果として生じる複数のビーム形成音声信号は、形式y(n)(k)による数字の配列で表されてよい。
{y(1)(k),y(2)(k),...,y(N)(k)},
【0046】
ここで「k」は、時間指標であり、「n」は、n番目のビーム形成音声信号(及びn番目の注視方向)に相当する音声ストリーム指標である(又は注視方向指標)。
【0047】
一実装形態において、ビームフォーマーモジュール310は、各々のアレイセンサ間の遅延を利用して、センサアレイにわたるソース信号の方向の伝播遅延における差を補償するように適合された遅延和タイプのビームフォーマーとして実装される。ビームフォーマーの重みと遅延を調節することによって、所望される方向(又は場所)から(例えば、発話認識システムに対して命令及び/又は入力を提供する人など、話している人の方向から)発生するソース信号は同相で合計され、他の信号(例えばノイズ、発話以外など)は、相殺するような干渉を受ける。遅延和ビームフォーマーの重み及び/又は遅延を調節又は選択することによって、そのビーム形成音声信号出力の形状を制御することができる。他のタイプのビームフォーマーモジュールも同様に利用されてよい。
【0048】
ビーム形成技術の一例は、2014年7月30日に出願された「Method and System for Beam Selection in Microphone Array Beamformers」というタイトルの米国特許出願第14/447,498号、及び2015年6月1日に出願された「Feedback Based Beamformed Signal Selection」というタイトルの米国特許出願第14/727,504号において説明されており、その両方の全体が参照により本明細書に組み込まれる。
【0049】
音声信号メトリックモジュール312は、ビームフォーマーモジュール310によって提供された複数の音声信号(例えばビーム形成音声信号)の各々に関して音声信号メトリック値を特定することができる。一部の実施形態において、各々の音声信号メトリック値は、ビーム形成音声信号の複数のフレームのうちの1つのサンプルに基づいて特定される。例えば信号対ノイズ比は、複数のビーム形成音声信号の各々に関する複数のフレームに対して特定されてよい。音声信号メトリック値 は、各々のフレームに関する複数のビーム形成音声信号の各々に関して特定されてよく、結果として形式f(n)(k)による数字の配列が生じる。
{f(1)(k),f(2)(k),...,f(N)(k)},
【0050】
ここで「k」は、時間指標であり、「n」は、n番目のビーム形成音声信号に相当する音声ストリーム指標である(又は注視方向指標)。
【0051】
音声信号メトリック値には、信号対ノイズ比(SNR)、スペクトル重心計測値(例えばピークスペクトル重心計測値)、音声エネルギーレベル(例えば4Hz変調エネルギー)、スペクトルフラックス、特定のパーセンタイル周波数(例えば第90パーセンタイル周波数)周期性、明瞭性、調和性などが含まれてよい。スペクトル重心計測値は一般に、スペクトルの重心質量に関する計測値を提供する。スペクトルフラックスは、スペクトル変化の速度に関する計測値を提供する。特定のパーセンタイルの周波数は一般に、全体の出力のうちの少なくとも特定のパーセンテージ(例えば90%)をカバーする最小の周波数ビンに基づいた計測値を提供する。周期性は一般に、騒音の多い環境でのピッチ検出に使用され得る計測値を提供する。明瞭性は一般に、有声セグメントに関する高い値と、背景ノイズに関する低い値とを有する計測値を提供する。調和性は、有声セグメントに関する高い値と、背景ノイズに関する低い値とを概ね提供する別の計測値を提供する。音声エネルギーレベル(例えば4Hz変調エネルギー)は一般に、話している速度に起因して発話に関する高い値を有する計測値を提供する。他の実施形態において、短時間の時間ウィンドウ(典型的には1フレーム以下)にわたる生のビーム形成データの一部の機能である任意の別の音声信号メトリック値が特定される場合もある。一部の例では、音声信号メトリック値は、ビーム形成音声信号の複数のフレームのサンプルに基づいて特定されてよい。さらに、一部の例では、音声信号メトリック値は、信号の特徴と呼ばれる場合もある。
【0052】
一部の実装形態では、音声信号メトリック値は、以下の表に従って定義されてよい。
【0054】
一部の例では、音声信号メトリックモジュール312は、特定のビーム形成音声信号に対する音声信号メトリック値を特定することができる。一例として、SNR値が、特定の注視方向に対応付けられたビーム形成音声信号に関して特定されてよい。他の例では、音声信号メトリック値が、複数のビーム形成音声信号に関して特定される場合がある。一例として、音声対応デバイスに関する任意の数のビーム形成音声信号にわたる平均SNR値など、平均の音声信号メトリック値が、音声対応デバイスに関して特定された複数のビーム形成音声信号に関して特定される場合がある。
【0055】
さらに一部の例では、音声信号メトリックモジュール312は、音声信号メトリック値を重み付けしてよい。一例として、音声信号メトリック値に、音声対応デバイスに関するビーム形成音声信号の中から、最も大きな値を有する(同一タイプの)音声信号メトリック値と、最も小さい値を有する(同一タイプの)音声信号メトリック値との差を掛ける場合がある。例示するために、SNR値は、音声対応デバイスに関するビーム形成音声信号の中から、最大のSNR値と最小のSNR値との差によって重み付けされてよい。最大音声信号メトリック値と最小音声信号メトリック値との差(相違)は、(例えばどのくらい高精度にビームフォーマーを指向させるべきかという)ビームフォーマーの指向性の計測値であってよい。例えば、比較的大きな差は、ビームフォーマーが高指向性である(例えば比較的良好に音源の方向を検出することができ、より望ましいビームフォーマーである)ことを指す場合があるのに対して、比較的小さい差は、ビームフォーマーがあまり指向性を有さないことを指す場合がある(例えば音源の方向をあまり十分に検出できず、あまり望ましくないビームフォーマーである)。一部の例では、ビームフォーマーの指向性は、環境的条件によって影響を受ける場合がある(例えば壁、干渉する物体などのすぐ隣に位置決めされるなど)のに対して、他の例では、指向性は、ビームフォーマー及び/又は関連する音声対応デバイスのハードウェア及び/又はソフトウェアデバイスの特徴である場合もある。例えば音声対応デバイスが壁のすぐ隣に位置決めされる場合、音声対応デバイスにおいて検出される前に音声入力は壁から反射されるため、ビーム形成音声信号の音声信号メトリック値の間には、相対的に小さな変動が生じ得る。
【0056】
加えて又は代替として、音声信号メトリック値312は、複数のフレームにわたる複数の音声信号メトリック値 の時間的に平滑化された機能に基づいて、複数の音声信号メトリック値の各々に関して、時間的に平滑化された音声信号メトリック値(「平滑化された音声信号メトリック値」又は「平滑化された特性」とも呼ばれる)を特定することができる。一部の実施形態において、平滑化された音声信号メトリック値Sは、複数のフレームにわたる音声信号メトリック値に基づいて決定される。例えば平滑化された音声信号メトリック値Sは、信号特徴データの3つのフレームほどの少数から、信号特徴データの1千フレーム以上もの多くのものに基づいている場合がある。平滑化された音声信号メトリック値Sは、複数のビーム形成音声信号の各々に関して特定されてよく、形式S(n)(k)による数字の配列が生じる。
{S(1)(k),S(2)(k),...,S(N)(k)},
【0057】
一般に、音声信号メトリック値は統計値である。音声信号メトリック値は、ビーム形成信号から抽出された特定の信号特性の変化を集約することができる。音声信号メトリック値の一例は、特定の持続期間にわたって信号の最大値を示す音声信号メトリック値のピークであってよい。そのような音声信号メトリック値を、経時的に平滑化して(例えば平均をとる、移動平均をとる、又は重み付け平均をとる)音声信号メトリック値におけるいかなる短い持続時間の雑音も低減させることができる。
【0058】
一部の実施形態において、平滑化された音声信号メトリック値Sを特定するための時間的に平滑化する技術は、以下の関係式に基づいて得ることができる。
S(k)=alpha*S(k-1)+(1-alpha)*f(k)
【0059】
この例では、アルファは、平滑化因数又は時間定数である。上記によると、現在のフレームにおける平滑化された音声信号メトリック値Sの決定は(例えばS(k))、先のフレームに相当する平滑化された音声信号メトリック値S(例えばS(k−1))に第1の時間定数(例えばalpha)を掛けることによって最初の積を求めることと、現在のフレーム(例えばf(k))における音声信号メトリック値に、第2の時間定数(例えば(1ーalpha))を掛けることによって第2の積を求め、この場合第1の時間定数及び第2の時間定数の合計は1になることと、最初の積(例えばalpha*S(k-1))に第2n積(例えば(1-alpha)*f(k))を加えることとを含む。
【0060】
一部の実施形態において、平滑化する技術は、音声信号メトリック値に応じて異なるように適用されてよい。例えば平滑化された音声信号メトリック値Sを特定するための別の時間的な平滑化技術を、以下のプロセスに基づいて得ることができる。
(f(k)>S(k))ならば、
S(k)=alpha_attack*S(k-l)+(1-alpha_attack)*f(k)
そうでなければ、
S(k)=alpha_release*S(k-l)+(l-alpha_release)*f(k)
【0061】
この例では、alpha_attackは、アタック時間定数であり、alpha_releaseは、リリース時間定数である。一般に、アタック時間定数は、リリース時間定数より速い。アタック時間定数が、リリース時間定数より速いならば、平滑化された音声信号メトリック値S(k)が、信号特性の相対的に高いピーク値(例えばf(k)>S(k)のとき) を迅速にたどることが可能になり、その一方で音声信号メトリック値の相対的に低いピーク値(例えばf(k)<S(k)のとき)をたどるのは比較的ゆっくりである。他の実施形態では、同様の技術を利用して、最小限の発話信号を追跡することもできる。一般に、アタックは、音声信号メトリック値f(k)により高い重みが与えられ、先のフレームの平滑化された音声信号メトリック値により小さい重みが与えられる場合に、より速くなる。したがってより小さいアルファはより速いアタックを提供する。
【0062】
ビームセレクタモジュール314は、音声信号(例えばビーム形成音声信号)及び/又は音声信号メトリック値を受信し、さらなる処理のために特定の音声信号を選択することができる。ビームセレクタモジュール314は一般に、捕捉した音声入力(例えばユーザの発声)の音源に最も近い音声を提供する音声信号を選択することができる。ビームセレクタモジュール314は、多様な情報を利用して音声信号のうちの1つの選択するように構成されてよい。例えばビームセレクタモジュール314は、音声対応デバイス104に関する複数のビーム形成音声信号の中から最大の音声信号メトリック値に対応付けられたビーム形成音声信号を選択することができる。例示するために、ビームセレクタモジュール312は、その対応する音声信号メトリック値に基づいて複数のビーム形成音声信号をランク付けすることができる。ビームセレクタモジュール314はその後、例えば複数のビーム形成音声信号の中から最大のSNR値に対応付けられたビーム形成音声信号を選択することができる。選択されたビーム形成音声信号は、音声入力の処理(例えば発話認識など)のために使用されてよい。一例として、選択されたビーム形成音声信号(及び/又は対応付けられた音声信号メトリック値)は、処理のためにサービスプロバイダ102に送信されてよい。一部の例ではビームセレクタモジュール314は、選択のために平滑化された音声信号メトリック値を利用する。
【0063】
一部の実施形態では、ビームセレクタモジュール314は、ビーム形成音声信号が声(又は発話)を含むと判定された場合、最大の平滑化された音声信号を有するビーム形成音声信号を選択する場合もある。声及び/又は発話検出は、ボイスアクティビティ検出器を利用することを含め、様々な方法で検出されてよい。一例として、ビームセレクタモジュール314は、候補のビーム形成音声信号が声及び/又は発話を含むかどうかを最初に判定し、その後、声及び/又は発話を実際に含む候補のビーム形成音声信号から特定のビーム形成音声信号を選択することができる。一部の例ではビームセレクタモジュール314は、候補のビーム形成音声信号の平滑化された音声信号メトリック値を最初に特定することができる。ビームセレクタモジュール314はその後、最大値を有する平滑化された音声信号メトリック値を有するビーム形成音声信号が声及び/又は発話を含むかどうかを判定することができる。そうである場合、最大値を有する平滑化された音声信号を有するビーム形成音声信号をさらなる処理のために選択することができる。そうではなかった場合、ビームセレクタモジュール314は、次に最も高い平滑化された音声信号メトリック値を有するビーム形成音声信号が声及び/又は発話を含むかどうかを判定することができる。そうである場合、そのビーム形成音声信号をさらなる処理のために選択することができる。そうではなかった場合、ビームセレクタモジュール314は、声及び/又は発話を含むビーム形成音声信号が特定されるまで、平滑化された音声信号メトリック値の大きい順にビーム形成信号を評価し続けることができる。そのようなビーム形成音声信号をさらなる処理のために選択することができる。
【0064】
一部の例では、より強固なビーム選択を促進するために、ビームセレクタモジュール314は、例えば発話認識モジュール、ウエイクワードモジュールなどの1つ又は複数の発話処理要素からのフィードバックに基づいてビーム形成音声信号を選択する場合もある。このフィードバックは、音声信号が発話認識に関して容認されたかどうか、単語が音声信号から認識されたかどうか、認識された単語における信頼度(例えば発話認識モジュールによって認識された単語がどのくらい正確であり得るか)、タスク及び/又は応答が音声信号に対して開始されたかどうか(例えば歌を再生する、カレンダーイベントを追加するなど)、音声信号の中でウエイクワードが検出されたかどうか、ウエイクワードの認識の信頼度を示す情報を含んでよい。ビームセレクタモジュール312は、このフィードバックを利用して、ビーム形成音声信号をランク付け及び/又は選択することができる。例えばウエイクワードを検出したビーム形成音声信号は、ウエイクワードを検出し、かつこれを識別したビーム形成音声信号より下にランク付けされてよい。同様に、発話認識モジュールを介する高い信頼度の認識検出をもたらすデータを提供したビーム形成音声信号は、より低い信頼度の認識をもたらすデータを提供したビーム形成音声信号より高くランク付けされてよい。
【0065】
多くの動作が、音声対応デバイス104によって行われるように本明細書に記載されるが、これらの動作のいずれも、例えば任意のサービスプロバイダ102など、他のデバイスによって行われる場合ある。したがって、サービスプロバイダ102は、モジュール310、312及び/又は314のいずれかを含んでよい。例えば、サービスプロバイダ102は、音声対応デバイス104からビーム形成音声信号を受信し、各々のビーム形成音声信号に関して音声信号メトリック値を特定してよい。さらに、種々の動作がモジュールによって実行されるように記載されるが、これらの動作のいずれか、及び/又は本明細書に記載される他の技術は、例えばフィールドプログラマブルゲートアレイ(FPGA)、特定プログラム向け集積回路(ASIC)、システムオンチップシステム(SOC)、結合プログラム可能論理回路(CPLD)等の1つ又は複数のハードウェアロジックコンポーネントとして実装されてよい。
【0066】
メモリ204及び/又は304(ならびに本明細書に記載される他のメモリ)は、コンピューティング可読媒体(例えば記憶媒体)のうちの1つ又はその組み合わせを含んでよい。コンピュータ可読媒体には、コンピュータ可読命令、データ構造、プログラムモジュール、又は他のデータ等の、情報を記憶するための任意の方法又は技術において実装される揮発性及び不揮発性の取り外し可能及び取り外し不可能な媒体が含まれる。コンピュータ可読媒体の例には、これに限定するものではないが相変化メモリ(PRAM)、スタティックランダムアクセスメモリ(SRAM)、ダイナミックランダムアクセスメモリ(DRAM)、他の種類のランダムアクセスメモリ(RAM)、読み出し専用メモリ(ROM)、電気的消去可能プログラム可能読み出し専用メモリ(EEPROM)、フラッシュメモリ、もしくは他のメモリ技術、コンパクトディスク読み出し専用メモリ(CD−ROM)、デジタル多用途ディスク(DVD)、もしくは他の光記憶装置、磁気カセット、磁気テープ、磁気ディスク記憶装置、もしくは他の磁気記憶装置、又はコンピューティングデバイスによるアクセスのための情報を記憶するのに使用することができる任意の他の非一時的媒体が含まれる。本明細書で定義されるように、コンピュータ可読媒体には、例えば非一時的媒体を用いない変調されたデータ信号及び搬送波等の一時的通信媒体は含まれない。このように、コンピュータ可読媒体は、非一時的コンピューティング可読媒体を備える。
【0067】
プロセスの一例
図4及び
図5は、本明細書に記載される技術を採用するためのプロセス400及び500を一例として示す。例示し易くするために、プロセス400及び500は、
図1のアーキテクチャ100において実施されるように説明される。例えばプロセス400及び500の個々の動作のうちの1つ又は複数は、サービスプロバイダ102及び/又は音声対応デバイス104のいずれかによって実行されてよい。しかしながらプロセス400及び500は、他のアーキテクチャにおいて実行される場合もある。さらにアーキテクチャ100は、他のプロセスを実行するのに使用される場合もある。
【0068】
プロセス400及び500は、論理フローグラフとして例示されており、その各々の動作は、ハードウェア、ソフトウェア及びその組み合わせに実装することができる動作のシーケンスを表している。ソフトウェアに関連して、動作は、1つ又は複数のプロセッサによって実行される際、コンピュータデバイスに列挙される動作を行わせるように1つ又は複数のプロセッサを構成する、1つ又は複数のコンピュータ可読記憶媒体に記憶されたコンピュータ実行可能命令を表す。一般に、コンピュータ実行可能命令には、特定の機能を実施する又は特定の抽象データ型を実装する、ルーチン、プログラム、オブジェクト、構成要素、データ構造などが含まれる。動作が記載される順序は、限定として解釈されることを意図するものではなく、任意の数の記載される動作を、任意の順序で及び/又は並行して組み合わせることでプロセスを実現することができる。さらに、任意の数の動作を省略する場合もある。
【0069】
図4は、複数の音声対応デバイス間を調停するためのプロセス400を一例として示す。
【0070】
402において、複数の音声対応デバイスを特定する。これは、単一の発声からほぼ同時に(互いの閾値の時間の範囲内で)音声入力を受信した第1の音声対応デバイスと第2の音声対応デバイスを特定する(又は特定する)ことを含んでよい。
【0071】
404において、1つ又は複数の音声信号の音声信号メトリック値を、各々の音声対応デバイスから受信してよい。音声信号メトリック値は、特定の音声対応デバイスにおいて受信された音声入力に対応付けられたビーム形成音声信号に関するものであってよい。音声信号メトリック値には、信号対ノイズ比、スペクトル重心計測値、音声エネルギーレベル(例えば4Hz変調エネルギー)、スペクトルフラックス、特定のパーセンタイル周波数(例えば第90パーセンタイル周波数)周期性、明瞭性、調和性などが含まれてよい。一例において、動作404は、複数の音声信号メトリック値の中から最適な値を有する音声信号メトリック値を受信することを含んでよく、この場合、複数の音声信号メトリック値の各々は、特定の音声対応デバイスによって特定された異なるビーム形成音声信号に対応付けられる。最適な値を有する音声信号メトリック値は、最も高い(最大)値を有する音声信号であってよい。あるいは、最適な値を有する音声信号メトリック値は、最も低い(最小)値を有する音声信号である場合もある。別の例では、動作404は、特定の音声対応デバイスに関する複数の音声信号メトリック値の中から平均の音声信号メトリック値を受信することを含んでよい。さらに別の例において、動作404は、特定の音声対応デバイスに関する複数の音声信号メトリック値を受信することを含む場合もある。一部の例において、音声信号メトリック値は、例えば、音声対応デバイスに関する複数の音声信号メトリック値の中から最適な値(最高値、又は一部の例では最低値)を有する音声信号メトリック値と、最も不適切な値(最低値、又は一部の例では最高値)を有する音声信号メトリック値との差によって重み付けされてよい。
【0072】
406において、複数の音声対応デバイスをランク付けしてよい。動作406は、複数の音声対応デバイスのうちの個々の1つに関する音声信号メトリック値に基づいてよい。一部の例では、音声対応デバイスは、異なる音声信号メトリック値、異なるランキング技術などに対して複数回ランク付けされる場合もある
【0073】
408において、特定の音声対応デバイスを、選択された音声対応デバイスとして働くように選択してよい。一例として、動作408は、ランキングの最上位に現れる音声対応デバイスを選択することができる。別の例として、動作408は、ランキングのN個の場所に最も現れる音声対応デバイスを選択する場合があり、この場合Nは3より大きい整数である。
【0074】
410において、選択された音声対応デバイスの音声信号が処理されるようにすることができる。一部の例では、動作410は、選択された音声対応デバイスの音声信号を処理するためにサービスプロバイダに命令を送信することを含む(例えば音声対応デバイスが調停プロセスを行う場合)。他の例では、動作410は、選択された音声対応デバイスの音声信号を処理することを含む(例えばサービスプロバイダが調停プロセスを行う場合)。
【0075】
412において、処理された音声信号に少なくとも一部基づいてタスクを実行してよい。例えばタスクは、ユーザによってリクエストされている機能を果たすことを含んでよい。
【0076】
414において、選択された音声対応デバイスに、タスクに関する指示を出力させることができる。一部の例では、動作414は、選択された音声対応デバイスに命令を送信することを含む。この命令は、選択された音声対応デバイスが、タスクが完了したことの指示を出力するようにリクエストすることができる。他の例では、動作414は、特定の指示を出力することを含む(例えば発話出力を供給する、応答を表示する、照明を使用可能にするなど)。
【0077】
図5は、その間を調停する音声対応デバイスを選択するために最初の処理を行うためのプロセス500を一例として示す図である。一部の場合において、プロセス500は、
図4のプロセス400の前に実行されてよい。他の例では、プロセス500は、他の時に行われる場合もある。
【0078】
502において、音声対応デバイスに対応付けられた音声信号が生成された時間を特定してよい。動作502は、複数の音声対応デバイスの各々に対して繰り返されてよい。
【0079】
504において、音声対応デバイスの場所を特定してよい。動作504は、複数の音声対応デバイスの各々に対して繰り返されてよい。
【0080】
506において、音声対応デバイスに対応付けられたアカウントを特定してよい。例えば、動作506は、音声対応デバイスが登録されたユーザアカウントを確認することができる。動作506は、複数の音声対応デバイスの各々に対して繰り返されてよい。
【0081】
508において、第1の音声対応デバイスに対応付けられた音声信号と、第2の音声対応デバイスに対応付けられた音声信号との類似性を特定してよい。
【0082】
510において、音声対応デバイスに対応付けられた音声信号に関する認識信頼度スコアを特定してよい。認識信頼度スコアは、その音声信号に関する単語の認識に関する信頼度のレベルを示すことができる。動作510は、複数の音声対応デバイスの各々に対して繰り返されてよい。
【0083】
512において、音源の場所を特定してよい。例えば、ソースローカリゼーションアルゴリズムを利用して、ユーザが位置する場所(例えば音声対応デバイスに対する)を判定することができる。ソースローカリゼーションアルゴリズムは、位相変換を伴う方向制御された応答パワー(SRP PHAT)、位相変換を伴う一般化相互相関(GCC PHAT)、位相変換を伴う最小分散無歪み応答(MVDR PHAT)などを含んでよい。
【0084】
514において最初の処理を実行してよい。この最初の処理は、その間を調停する音声対応デバイスを選択することができる。最初の処理は、動作502〜512の1つ又は複数の決定に基づいてよい。例えば、対応付けられた音声信号が同時に生成される、又は互いの閾値の時間の範囲内(例えば互いの1秒の範囲内、数分の1秒の範囲内など)で生成された場合、すなわちデバイスが互いに近接して配置され、デバイスが同じアカウントに対応付けられている、デバイスからの音声信号が閾値の類似性を有する、デバイスからの音声信号に関する認識信頼度スコアが各々閾値を超えている、デバイスが音源(例えばユーザ)に対して所定の近さの範囲内に位置するなどした場合、複数の音声対応デバイスが選択されてよい。
【0085】
動作502〜512は、最初の選択処理を実行することに関連してされているが、一部の例では、動作502〜512は、他の関連で実行される場合もある。例えば動作502〜512の決定のうちの1つ又は複数は、プロセス400の動作408における音声対応デバイスの選択を支援するために利用されてよい。
【0086】
本開示の実施形態は、以下の条項を考慮して、説明することができる。
【0087】
段落A:コンピューティングデバイスによって、第1の音声対応デバイス及び第2の音声対応デバイスがほぼ同時に音声入力を受信したことを特定することと、コンピューティングデバイスによって、第1の音声対応デバイスから、第1のビーム形成音声信号に対応付けられた信号対ノイズ比を示す第1の音声信号メトリック値を受信し、該第1のビーム形成音声信号は、第1の音声対応デバイスにおいて受信した音声入力に関して、第1の音声対応デバイスにおいて特定されており、該第1のビーム形成音声信号は、第1の音声対応デバイスに対する方向に関して特定されることと、コンピューティングデバイスによって、第2の音声対応デバイスから、第2のビーム形成音声信号に対応付けられた信号対ノイズ比を示す第2の音声信号メトリック値を受信し、該第2のビーム形成音声信号は、第2の音声対応デバイスにおいて受信した音声入力に関して、第2の音声対応デバイスにおいて特定されており、該第2のビーム形成音声信号は、第2の音声対応デバイスに対する方向に関して特定されることと、コンピューティングデバイスによって、第1のビーム形成音声信号に対応付けられた信号対ノイズ比が、第2のビーム形成音声信号に対応付けられた信号対ノイズ比より大きいと判定することと、コンピューティングデバイスによって、1つ又は複数の発話認識技術を用いて第1のビーム形成音声信号を処理することと、コンピューティングデバイスによって、音声入力に対応付けられたタスクを実行することと、コンピューティングデバイスによって、第1の音声対応デバイスに、第1の音声対応デバイスがタスクが完了したことの指示を出力することをリクエストする命令を送信することとを含む方法。
【0088】
段落B:第1の音声信号メトリック値の信号対ノイズ比が、複数の異なるビーム形成音声信号に関して最大の信号対ノイズ比であり、複数の異なるビーム形成音声信号は、第1のビーム形成音声信号を含んでおり、複数の異なるビーム形成音声信号の各々は、第1の音声対応デバイスにおいて特定されている、段落Aに記載の方法。
【0089】
段落C:第1の音声信号メトリック値の信号対ノイズ比が、複数の異なるビーム形成音声信号に関して平均の信号対ノイズ比であり、複数の異なるビーム形成音声信号は、第1のビーム形成音声信号を含んでおり、複数のビーム形成音声信号の各々は、第1の音声対応デバイスにおいて特定されている、段落A又はBに記載の方法。
【0090】
段落D:第1の音声信号メトリック値の信号対ノイズ比が、複数の異なるビーム形成音声信号に関する最も高い値を有する信号対ノイズ比と、最も低い値を有する信号対ノイズ比との差によって重み付けされ、複数の異なるビーム形成音声信号は、第1のビーム形成音声信号を含んでおり、複数の異なるビーム形成音声信号の各々は、第1の音声対応デバイスにおいて特定されている、段落A〜Cのいずれかに記載の方法。
【0091】
段落E:1つ又は複数のプロセッサと、1つ又は複数のプロセッサに通信可能に結合されたメモリであって、1つ又は複数のプロセッサによって実行される際、1つ又は複数のプロセッサに、第1の音声対応デバイスに対応付けられた第1の音声信号に対応付けられた第1の音声信号メトリック値を識別することと、第2の音声対応デバイスに対応付けられた第2の音声信号に対応付けられた第2の音声信号メトリック値を識別することと、第1の音声信号メトリック値と、第2の音声信号メトリック値とに少なくとも一部基づいて、第1の音声対応デバイスを選択することと、第1の音声信号を処理することとを含む動作を実行させる実行可能命令を記憶する前記メモリとを備えるシステム。
【0092】
段落F:前記動作はさらに、第1の音声信号及び第2の音声信号が互いの閾値の時間の範囲内で生成されたことを特定することを含む、段落Eに記載のシステム。
【0093】
段落G:前記動作はさらに、第1の音声信号及び第2の音声信号が互いの所定の距離の範囲内に配置されていると特定することを含む、段落E又はFに記載のシステム。
【0094】
段落H:動作はさらに、第1の音声対応デバイス及び第2の音声対応デバイスが同じアカウントに対応付けられていることを特定することを含む、段落E〜Gのいずれかに記載のシステム。
【0095】
段落I:動作はさらに、第1の音声信号及び第2の音声信号が、互いに対して閾値の類似性を有することを特定することを含む、段落E〜Hのいずれかに記載のシステム。
【0096】
段落J:動作はさらに、第1の音声信号に関する第1の認識信頼度スコアと、第2の音声信号に関する第2の認識信頼度スコアとが、各々閾値を超えており、第1の認識信頼度スコアは、特定の単語が第1の音声信号の中で正確に検出される信頼度のレベルを指しており、第2の認識信頼度スコアは、特定の単語又は異なる単語が第2の音声信号の中で正確に検出される信頼度のレベルを指していることを含む、段落E〜Iのいずれかに記載のシステム
【0097】
段落K:第1の音声信号メトリック値は、信号対ノイズ比、スペクトル重心計測値、音声エネルギーレベル、スペクトルフラックス、特定のパーセンタイル周波数、周期性、明瞭性又は調和性のうちの1つを含む、段落E〜Jのいずれかに記載のシステム。
【0098】
段落L:第1の音声信号メトリック値は、複数の音声信号メトリック値の中で最も高く、複数の音声信号メトリック値の各々は、第1の音声対応デバイスにおいて特定された音声信号に対応付けられている、段落E〜Kのいずれかに記載のシステム。
【0099】
段落M:第1の音声信号メトリック値は、複数の音声信号メトリック値に関する平均の音声信号メトリック値を含んでおり、複数の音声信号メトリック値の各々は、第1の音声対応デバイスにおいて特定された音声信号に対応付けられている、段落E〜Lのいずれかに記載のシステム。
【0100】
段落N:第1の音声信号メトリック値は、複数の音声信号メトリック値の中の最も高い値を有する音声信号メトリック値と最も低い値を有する音声信号メトリック値との差によって重み付けされており、複数の音声信号メトリック値の各々は、第1の音声対応デバイスにおいて特定された第1の音声信号又は異なる音声信号に対応付けられている、段落E〜Mのいずれかに記載のシステム。
【0101】
段落O:動作はさらに、第1の音声信号に対応付けられたタスクを実行することと、第1の音声対応デバイスに、第1の音声対応デバイスがタスクが完了したことの指示を出力することをリクエストする命令を送信することとを含む、段落E〜Nのいずれかに記載のシステム。
【0102】
段落P:1つ又は複数のプロセッサと、1つ又は複数のプロセッサに通信可能に結合されたメモリであって、1つ又は複数のプロセッサによって実行される際、1つ又は複数のプロセッサに、第1の音声対応デバイス及び第2の音声対応デバイスがほぼ同時に音声入力を受信したことを特定することと、第1の音声対応デバイスの第1のビーム形成音声信号に関する第1の音声信号メトリック値と、第2の音声対応デバイスの第2のビーム形成音声信号に関する第2の音声信号メトリック値とに少なくとも一部基づいて、第1の音声対応デバイス及び第2の音声対応デバイスをランク付けすることと、音声入力を処理することを続けるように第1の音声対応デバイスを選択することと、第1のビーム形成音声信号が処理されるようにすることとを含む動作を実行するようにさせる実行可能命令を記憶する前記メモリとを備えるシステム。
【0103】
段落Q:システムが第1の音声対応デバイスを備え、該第1の音声対応デバイスがさらに、複数のマイクロフォンを含むマイクロフォンアレイを備え、複数のマイクロフォンの各々が、音声入力に関して入力信号を特定するように構成されており、前記動作がさらに、複数のマイクロフォンからの入力信号に少なくとも一部基づいて複数のビーム形成音声信号を特定し、複数のビーム形成音声信号の各々は、第1の音声対応デバイスに対する方向に関して特定されており、複数のビーム形成音声信号は、第1のビーム形成音声信号を含んでいることと、第1の音声信号メトリック値を特定することとを含む、段落Pに記載のシステム。
【0104】
段落R:動作がさらに、第1の音声信号メトリック値に少なくとも一部基づいて、複数のビーム形成音声信号の中から第1のビーム形成音声信号を選択することをさらに含む、段落P又はQに記載のシステム。
【0105】
段落S:動作はさらに、第1のビーム形成音声信号に関する第3の音声信号メトリック値を識別することをさらに含み、第1の音声対応デバイスのランク付けがさらに、第3の音声信号メトリック値に少なくとも一部基づいている、段落P〜Rのいずれかに記載のシステム。
【0106】
段落T:動作はさらに、複数の音声信号メトリック値の中の最も高い値を有する音声信号メトリック値と最も低い値を有する音声信号メトリック値との差を求め、複数の音声信号メトリック値の各々は、第1の音声対応デバイスにおいて特定された音声信号に対応付けられていることと、この差に少なくとも一部基づいて、第1の音声信号メトリック値を重み付けして重み付けされた第1の音声信号メトリック値を生成し、第1の音声対応デバイスのランキングは、重み付けされた第1の音声信号メトリック値に少なくとも一部基づいていることとを含む、段落P〜Sのいずれかに記載のシステム。
【0107】
結論
いくつかの実施形態が、構造的特徴及び/又は方法論的行為に特有の言語で説明されているが、本開示は必ずしも上述の特定の特徴又は行為に限定されないことを理解されたい。むしろ、特定の特徴及び動作は、これらの実施形態を実施する例示的な形態として本明細書に開示される。