IP Force 特許公報掲載プロジェクト 2022.1.31 β版

知財求人 - 知財ポータルサイト「IP Force」

▶ ソノズ インコーポレイテッドの特許一覧

特許7397920ニューラルネットワークモデルを用いた選択的ウェイクワード検出のシステム及び方法
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2023-12-05
(45)【発行日】2023-12-13
(54)【発明の名称】ニューラルネットワークモデルを用いた選択的ウェイクワード検出のシステム及び方法
(51)【国際特許分類】
   G10L 15/28 20130101AFI20231206BHJP
   G10L 15/10 20060101ALI20231206BHJP
   G10L 15/16 20060101ALI20231206BHJP
【FI】
G10L15/28 230K
G10L15/10 200W
G10L15/16
【請求項の数】 15
【外国語出願】
(21)【出願番号】P 2022101346
(22)【出願日】2022-06-23
(62)【分割の表示】P 2020550102の分割
【原出願日】2019-09-25
(65)【公開番号】P2022126805
(43)【公開日】2022-08-30
【審査請求日】2022-06-23
(31)【優先権主張番号】16/145,275
(32)【優先日】2018-09-28
(33)【優先権主張国・地域又は機関】US
(73)【特許権者】
【識別番号】506030756
【氏名又は名称】ソノズ インコーポレイテッド
(74)【代理人】
【識別番号】100101454
【弁理士】
【氏名又は名称】山田 卓二
(74)【代理人】
【識別番号】100132241
【弁理士】
【氏名又は名称】岡部 博史
(74)【代理人】
【識別番号】100183265
【弁理士】
【氏名又は名称】中谷 剣一
(72)【発明者】
【氏名】ジョアキム・ファインバーグ
(72)【発明者】
【氏名】ダニエーレ・ジャコベッロ
(72)【発明者】
【氏名】クラウス・ハルトゥング
【審査官】山下 剛史
(56)【参考文献】
【文献】米国特許出願公開第2018/0040324(US,A1)
【文献】米国特許出願公開第2018/0277113(US,A1)
【文献】特開2004-96520(JP,A)
【文献】特開2017-72857(JP,A)
【文献】特開2018-55259(JP,A)
【文献】特開2017-129860(JP,A)
(58)【調査した分野】(Int.Cl.,DB名)
G10L 15/00-15/34
(57)【特許請求の範囲】
【請求項1】
キーワードスポッティングアルゴリズムを使って、キャプチャされた音データ内の第1ウェイクワードをネットワークマイクロフォンデバイスによって識別するステップと、
第1ウェイクワードエンジンを使って、キャプチャされた音データを分析し、第1ウェイクワードの検出を確認するために、第1ウェイクワードの識別に基づいて、それぞれが少なくとも1つのウェイクワードに関連付けられた複数のウェイクワードエンジンの中から第1ウェイクワードエンジンを起動するステップと、
第1ウェイクワードエンジンが第1ウェイクワードの検出を確認したとき、第1ウェイクワードに関連付けられたボイスサービスに音データを処理させるステップと、
を含む、方法。
【請求項2】
ボイスサービスに音データを処理させた後、第1ウェイクワードエンジンを停止するステップ、をさらに含む、
請求項1に記載の方法。
【請求項3】
前記第1ウェイクワードを識別するステップは、音データ内に第1ウェイクワードが存在する確率を判断することを含み、
第1ウェイクワードエンジンは、第1ウェイクワードが音データ内に存在するか否かをキーワードスポッティングアルゴリズムよりも高い精度で判断するように構成される、
請求項1又は2に記載の方法。
【請求項4】
キーワードスポッティングアルゴリズムは、複数のボイスアシスタントサービスのそれぞれと複数のウェイクワードエンジンのそれぞれとに対応する複数のウェイクワードを認識するように構成される、
請求項1~3のいずれか一項に記載の方法。
【請求項5】
複数のウェイクワードエンジンに関して、キーワードスポッティングアルゴリズムは、演算の複雑さがより低い、及びメモリ消費量がより小さい、のうちの少なくとも1つである、
請求項1~4のいずれか一項に記載の方法。
【請求項6】
前記第1ウェイクワードを識別するステップは、ニューラルネットワークモデルを音データに適用することを含む、
請求項1~5のいずれか一項に記載の方法。
【請求項7】
ニューラルネットワークモデルは、ネットワークマイクロフォンデバイスにローカルで記憶される、
請求項6に記載の方法。
【請求項8】
ニューラルネットワークモデルは、圧縮ニューラルネットワークモデルを含む、
請求項6又は7に記載の方法。
【請求項9】
ニューラルネットワークの重みのレンジにわたって、非固定コンポーネントの平均を分布させることにより混合ガウスモデルを初期化することと、初期化された混合ガウスモデルをニューラルネットワークモデルの重みにフィットさせることと、によって、混合ガウスモデルを前記ニューラルネットワークの重みにフィットさせることによりニューラルネットワークモデルを圧縮するステップと、
ニューラルネットワークの重みを混合ガウスモデルのクラスタの周りにクラスタ化させるステップと、
ニューラルネットワークモデルを量子化するステップと、
をさらに含む、
請求項8に記載の方法。
【請求項10】
前記第1ウェイクワードエンジンを起動するステップは、ネットワークマイクロフォンデバイスを、低電力状態又は無電力状態から、高電力状態へパワーアップすることを含む、
請求項1~9のいずれか一項に記載の方法。
【請求項11】
第1ウェイクワードエンジンは、ネットワークマイクロフォンデバイスのローカルの機能を実行し、ボイス発声が遠隔ボイスアシスタントサービスからの介入を受けずにローカルで処理され得るように構成される、
請求項1~10のいずれか一項に記載の方法。
【請求項12】
第1ウェイクワードエンジンが第1ウェイクワードの検出を確認しないとき、第1ウェイクワードエンジンを停止するステップ、をさらに含む、
請求項1~11のいずれか一項に記載の方法。
【請求項13】
第1ウェイクワードエンジンを起動する前に、検出されたそれぞれの音データ内のウェイクワードのキーワードスポッティングアルゴリズムを使って、1つ又は複数の追加のネットワークマイクロフォンデバイスとの間でいずれのネットワークマイクロフォンデバイスがウェイクワードエンジンを起動するべきかを、判断された確率に基づいて調停するステップ、をさらに含む、
請求項1~12のいずれか一項に記載の方法。
【請求項14】
ネットワークマイクロフォンデバイスに、請求項1~13のいずれか一項に記載の方法を実施させるように1つ又は複数のプロセッサによって実行可能な命令を記憶する、有形の非一時的なコンピュータ読み取り可能な記憶媒体。
【請求項15】
1つ又は複数のプロセッサと、
少なくとも1つのマイクロフォンと、
請求項14に記載の有形の非一時的なコンピュータ読み取り可能な記憶媒体と、
を含む、ネットワークマイクロフォンデバイス。
【発明の詳細な説明】
【関連出願の相互参照】
【0001】
この出願は、2018年9月28日に出願された米国特許出願第16/145,275号明細書に基づく優先権を主張する。この出願の内容は、その全体が参照により本明細書に組み込まれる。
【技術分野】
【0002】
本願は、コンシューマ製品に関するものであり、特に、メディア再生システムのボイス制御に向けられた方法、システム、製品、機能、サービス、及び他の要素に関するものや、それらのいくつかの態様に関する。
【背景技術】
【0003】
2003年に、ソノズ・インコーポレイテッドが最初の特許出願のうちの1つである「複数のネットワークデバイス間のオーディオ再生を同期する方法」と題する特許出願をし、2005年にメディア再生システムの販売を開始するまで、アウトラウド設定におけるデジタルオーディオへのアクセス及び試聴のオプションは制限されていた。人々は、ソノズ無線HiFiシステムによって、1つ又は複数のネットワーク再生デバイスを介して多くのソースから音楽を実質的に無制限に体験できるようになっている。スマートフォン、タブレット、又はコンピュータにインストールされたソフトウェアコントロールアプリケーションを通じて、ネットワーク再生デバイスを備えた全ての部屋において、人々は自分が望む音楽を再生することができる。加えて、例えばコントローラを用いて、再生デバイスを有する各部屋に異なる歌をストリーミングする(stream)こともできるし、同期再生のために複数の部屋をグループ化することもできるし、同期して同じ歌を全ての部屋において聞くこともできる。
【発明の概要】
【0004】
デジタルメディアに対する関心の継続的な高まりを考えると、試聴体験を更に向上させることができるコンシューマアクセス可能な技術を更に開発することにニーズがあり続ける。
【図面の簡単な説明】
【0005】
本明細書で開示されている技術の特徴、態様、及び利点は、以下の記載、添付の特許請求の範囲、及び添付の図面を参照するとより理解しやすい。
【0006】
図1A図1Aは、本開示の技術の態様にしたがって構成されるメディア再生システムを有する環境の部分切り取り図である。
図1B図1Bは、図1Aのメディア再生システム及び1つ又は複数のネットワークの模式図である。
図2A図2Aは、例示的な再生デバイスの機能ブロック図である。
図2B図2Bは、図2Aの再生デバイスの例示的なハウジングの等角図である。
図3A図3Aは、本開示の態様に係る例示的な再生デバイス構成を示す図である。
図3B図3Bは、本開示の態様に係る例示的な再生デバイス構成を示す図である。
図3C図3Cは、本開示の態様に係る例示的な再生デバイス構成を示す図である。
図3D図3Dは、本開示の態様に係る例示的な再生デバイス構成を示す図である。
図3E図3Eは、本開示の態様に係る例示的な再生デバイス構成を示す図である。
図4A図4Aは、本開示の態様に係る例示的なコントローラデバイスの機能ブロック図である。
図4B図4Bは、本開示の態様に係るコントローラインタフェースを示す。
図4C図4Cは、本開示の態様に係るコントローラインタフェースを示す。
図5図5は、本開示の態様に係る例示的なネットワークマイクロフォンデバイスのあるコンポーネントの機能ブロック図である。
図6A図6Aは、例示的なボイス入力の図である。
図6B図6Bは、本開示の態様に係る例示的な音標本を描くグラフである。
図7図7は、本開示の態様に係る二段階ウェイクワード検出の例示的な方法のフローチャートである。
図8図8は、本開示の態様に係るキーワードスポッティング及び選択のモデルを生成するためのシステムの機能ブロック図である。
図9図9は、本開示の態様に係るソフト重み共有を介した圧縮の前後におけるニューラルネットワークモデルの重みのログ重み分布を示すチャートである。
図10図10は、本開示の態様に係るニューラルネットワークモデルの圧縮疎行列表現の例を示す。
【0007】
図面は、いくつかの例示的な実施形態を説明することを目的としているが、本発明が、図面に示した配置及び手段に限定されるものではないことは理解される。図面中、同一の符号は少なくとも概して類似した要素を識別するために使われる。特定のいかなる要素の説明をも容易にするために、部品符号の重要な桁の値はその要素が初めて紹介された図を参照する。例えば、要素103は、図1Aを参照して初めて紹介され説明される。
【発明を実施するための形態】
【0008】
I.概要
無線オーディオ再生デバイス、照明デバイス、及びホームオートメーションデバイス(例えばサーモスタット、ドアロック、等)等のスマート家電品及びデバイスを含む「スマートホーム」にとって、ボイス制御は有益であり得る。いくつかの実施例において、ネットワークマイクロフォンデバイスがスマートホームのデバイスを制御するために使用され得る。
【0009】
ネットワークマイクロフォンデバイス(「NMD])は、通常NMDの環境に存在する音を検出するように構成された、マイクロフォンアレイなどのマイクロフォンの配列を含む。検出音は、バックグラウンドノイズ(例えば、再生デバイスによって出力される音楽、又はその他の周囲のノイズ)が混じった、人のスピーチを含んでもよい。実際は、NMDは通常、検出音にフィルタをかけて人のスピーチからバックグラウンドノイズを取り除き、ボイス制御を示すボイス入力をスピーチが含むか否かを識別することを容易にする。その場合、NMDはそのボイス入力に基づいて動作してもよい。
【0010】
NMDは、通常NMDに搭載され、NMDにより検出された音が特定のウェイクワードを含むボイス入力を含むか否かを識別するウェイクワードエンジンをしばしば採用する。ウェイクワードエンジンは、1つ又は複数の識別アルゴリズムを使って特定のウェイクワードを識別する(すなわち、「スポットする」)ように構成されてもよい。このウェイクワード識別工程は一般に「キーワードスポッティング」と呼ばれる。実際には、キーワードスポッティングを容易にするため、NMDはNMDのマイクロフォンで検出された音をバッファし、次に、バッファした音をウェイクワードエンジンを使って処理してウェイクワードが存在するか否かを判断してもよい。
【0011】
ウェイクワードエンジンが検出音の中にウェイクワードをスポットしたとき、NMDは、NMDが潜在的なボイス入力を含む音を検出したことを示すウェイクワードイベント(すなわち、「ウェイクワードトリガ」)が発生したと判断してもよい。ウェイクワードイベントの発生は、通常NMDに、検出音に関与する付加的な工程を実行させる。いくつかの実施形態において、これらの付加的な工程はウェイクワードが識別されたことを示す警報(例えば可聴のチャイム、及び/又は光インジケータ)を出力すること、及び検出音データをバッファから抽出していること、を含んでもよく、その他の付加的な工程を含む可能性もある。検出音の抽出は、検出音のストリーミングを読み出して特定のフォーマットに従ってパッケージし、パッケージされた音データを適切なボイスアシスタントサービス(VAS)へ解釈のために発信することを含んでもよい。
【0012】
次に、ウェイクワードエンジンによって識別されたウェイクワードに対応するVASは、NMDから送信された音データを通信ネットワーク上で受信する。VASは従来から、ボイス入力を処理するように構成された1つ又は複数のクラウドサーバーを使って実施される遠隔サービスの形をとる(例えば、AMAZONのALEXA(登録商標)、APPLEのSIRI(登録商標)、MICROSOFTのCORTANA(登録商標)、GOOGLEのASSISTANT(登録商標)、など)。いくつかの例において、VASの特定のコンポーネントおよび機能はローカルおよび遠隔のデバイスにわたって分配されてもよい。加えて又は代わりに、VASは、NMD又はNMDを含むメディア再生システムにおいて実施されるローカルサービスの形をとってもよく、1つのボイス入力又は一定のタイプのボイス入力(例えば、初歩的なコマンド)は、遠隔VASからの介入を受けずにローカルで処理されてもよい。
【0013】
いずれの場合も、VASが検出音データを受信するとき、VASは通常このデータを処理する。処理するとは、ボイス入力を識別すること、及びボイス入力内で取得された言葉の意図を判断することを含む。VASは次に、判断された意図にしたがって、何某かの指示と共に応答をNMDに返してもよい。その指示に基づいて、NMDは1つ又は複数のスマートデバイスに動作を実行させてもよい。例えば、VASからの指示にしたがって、NMDは、再生デバイスに特定の曲を再生させてもよく、又は照明デバイスをオン/オフさせてもよく、その他の例もあり得る。場合によっては、NMD、又はNMDを備えたメディアシステム(例えば、NMD装備の再生デバイスを備えたメディア再生システム)は、複数のVASと会話するように構成されてもよい。実際にNMDは、NMDによって検出された音の中に識別された特定のウェイクワードに基づいて、1つのVASを別のものの代わりに選択してもよい。
【0014】
いくつかの実施形態において、ネットワークメディア再生システムの一部として構成された再生デバイスは、NMDのコンポーネントおよび機能を含んでもよい(すなわち、この再生デバイスは「NMDを搭載している」といえる)。この点において、そのような再生デバイスは、再生デバイスの環境に存在する、人の話し声、再生デバイス自身、又は近くの別の再生デバイスによって出力されるオーディオ、又はその他の周囲のノイズなどの音を検出するように構成されたマイクロフォンを含んでもよく、検出音をバッファしてウェイクワードの識別を容易にするコンポーネントをさらに含んでもよい。
【0015】
NMDを搭載する再生デバイスのいくつかは、再生デバイスが壁のコンセントなどに物理的に接続せずとも動作が可能となる内部電源(例えば、充電式電池)を含んでもよい。この点において、そのような再生デバイスは、本明細書で「携帯再生デバイス」と呼ばれてもよい。逆に、壁のコンセントなどからの電力に依存するように構成される再生デバイスは、本明細書では「固定再生デバイス」と呼ばれてもよいが、そのようなデバイスは実際には家又はその他の環境の中で移動が可能である。実際には、固定再生デバイスが置かれている家又はその他の環境を、ヒトは携帯再生デバイスを持ったまま頻繁に出入りする場合がある。
【0016】
場合によっては、NMD又はNMDのシステム(例えば、再生デバイスのメディア再生システム)用に、複数のボイスサービスが構成される。設定手順中に、1つ又は複数のサービスが構成可能であり、さらに追加のボイスサービスも後でシステムに構成することも可能である。したがって、NMDは、複数のボイスサービスとのインタフェースとして機能し、おそらく個々のボイスサービスからのNMDがそれぞれのボイスサービスと会話する必要性を低減する。さらに、NMDは家に存在するサービス特有のNMDと共に動作して所与のボイスコマンドを処理することができる。
【0017】
2つ又はそれ以上のボイスサービスがNMD用に構成される場合、特定のボイスサービスに対応するウェイクワードを発声することにより、特定のボイスサービスが発動され得る。例えば、AMAZONにクエリするとき、ユーザは「Alexa」というウェイクワードに続いてボイスコマンドを発声するかもしれない。他の例には、GOOGLEをクエリするための「Ok、Google」、およびAPPLEをクエリするための「Hey、Siri」が含まれる。
【0018】
場合によっては、NMDへのボイス入力を示すために汎用ウェイクワードを使用可能である。場合によっては、これは特定のいずれかのボイスサービスに紐づいたウェイクワードというより製造元固有のウェイクワードである(例えば、NMDがSONOS再生デバイスである場合の「Hey、Sonos」)。そのようなウェイクワードが与えられると、NMDはリクエストを処理するために特定のボイスサービスを識別可能である。例えば、ウェイクワードに続くボイス入力が特定のタイプのコマンド(例えば、音楽の再生)に関連する場合、ボイス入力はそのタイプのコマンド(例えば、ボイスコマンド能力を有するストリーミング音楽サービス)に関連するボイスサービスに送られる。
【0019】
キーワードスポッティングは、音データが1つ又は複数のキーワードを含むか否かを検出するために音データを常時処理することを含むから、演算の負荷および電力消費が高くなり得る。加えて、キーワードスポッティングのアルゴリズムは再生デバイスのメモリをかなり消費し得るため、メモリの要求がより大きいこと、及びキーワードスポッティングアルゴリズムのオンラインのソフトウェアアップデートがより遅いことにつながる。これらの問題の対処法の1つは、演算効率が高いように、及び/又はメモリ要求が低いように設計されたキーワードスポッティングアルゴリズムを採用することである。例えば、特定のキーワードスポッティングアルゴリズムは、アルゴリズムが取得した音データを処理する方法に基づいて、他よりも元来高効率であり得る。さらに、特定のキーワードスポッティングアルゴリズムは、例えば、キーワードを定義するためにより簡単なモデルを使うことによって、又は、取得した音データを処理するためにより簡単なフィルタを使うことによって、演算効率も高くなるように作ることができる。その結果、取得した音データをキーワードモデルと比較するとき、より少ない処理作業で済む。演算効率を向上させるためにキーワードスポッティングアルゴリズムを調節する他の例も、様々な実施形態において、採用可能である。しかし、演算負荷がより小さいキーワードスポッティングアルゴリズムはまた、通常、キーワード検出の精度が低く、誤検出(false positives)及び/又は検出漏れ(false negatives)の割合が高くなる場合がある。
【0020】
本明細書で開示するのは、これらの、及びその他の問題への対処の助けとなるシステム及び方法である。特に、ウェイクワードの検出精度を十分高く保ったままで、NMDの演算資源の使用、電力消費、及び/又はメモリ要求を軽減するために、NMDは、演算の複雑さが様々な2つ又はそれ以上のキーワードスポッティングアルゴリズムを実行する。例えば、1つ又は複数のウェイクワードを聞きわけようとしているとき、NMDは、処理力の上限が比較的低い第一のキーワードスポッティングアルゴリズムを使用する。上述の説明のとおり、第一のキーワードスポッティングアルゴリズムは、精度を犠牲にして演算の簡単さ、及び/又はメモリ消費量の低さを優先してもよい。これを考慮に入れると、第一のキーワードスポッティングアルゴリズムを使ってウェイクワードを検出することに応じて、NMDは、上限がより高い処理力の、及び/又はより大きいメモリを使用し、第一のアルゴリズムよりも精度が高い、第二のキーワードスポッティングアルゴリズムを使用することにより、第一のアルゴリズムによって検出されたウェイクワードの存在を確認する、又は誤認を見抜く。この方法によれば、演算負荷が高く、消費電力も高いキーワードスポッティングアルゴリズムを実行し続ける代わりに、NMDは、要求がより低いアルゴリズムを使った予備的なウェイクワード検出に基づいて、そのようなアルゴリズムを控えめに使用する。
【0021】
加えて、又は代わりに、第一のアルゴリズムはウェイクワード候補の予備的検出に使用され得る。識別されたウェイクワード候補に基づいて、可能性のある複数のウェイクワードエンジンの中から1つのウェイクワードエンジンが選ばれ得る。これらのウェイクワードエンジンは、演算負荷がより高く、より大きい電力およびメモリを必要とするアルゴリズムを利用してもよい。その結果、予備的検出のための第一のアルゴリズムを使って一旦適切なウェイクワード候補が検出されると、特定のウェイクワードエンジンのみを選択して起動させることが有益であり得る。いくつかの実施形態において、予備的検出に使われる第一のアルゴリズムは、ウェイクワードエンジンよりも、例えば演算負荷が小さく、より高効率であり得る。
【0022】
負荷がより小さいウェイクワード検出アルゴリズムの例としては、メモリ及び電力の消費を低減するために圧縮されたニューラルネットワークモデルが含まれる。いくつかの実施形態において、ニューラルネットワークモデルは、圧縮疎行列(CSR:compressed sparse row)表現(representation)、又は圧縮ニューラルネットワークモデルを達成するための以下で詳細に説明されるようなその他の適切な技術を使って重みを格納することが可能な、ソフト重み共有(soft-weight-shared)ニューラルネットワークモデルでもよい。
【0023】
例として、いくつかの実施形態において、NMDは、オーディオコンテンツをNMDの1つ又は複数のマイクロフォンを介してキャプチャし、NMDは、第一のアルゴリズムを使って、キャプチャしたオーディオコンテンツが、それぞれのボイスサービスに対応する複数のウェイクワードのそれぞれの中から特定のウェイクワード候補を含むか否かを判断する。キャプチャした音データが特定のウェイクワード候補を含むとの判断に応じて、NMDは、複数のウェイクワードの中から第一のウェイクワードエンジンを選択して起動する。選択されたウェイクワードエンジンは、第二のアルゴリズムを使って、キャプチャした音データの中のウェイクワード候補の存在を確認又は否定することができる。ここで、第二のアルゴリズムは第一のアルゴリズムよりも演算負荷が高くてもよい。いくつかの実施形態において、第二のアルゴリズムは、例えば異なるVASに関連したウェイクワードを検出するように構成された異なるアルゴリズム群などの可能性のある複数のウェイクワード検出アルゴリズムの中から選択されてもよい。
【0024】
いくつかの実施形態において、第二のアルゴリズムがキャプチャした音データの中にウェイクワード候補の存在を確認した場合、NMDは、特定のウェイクワードに対応するそれぞれのボイスサービスに、キャプチャしたオーディオコンテンツを処理させる。逆に、第二のアルゴリズムがキャプチャした音データ中のウェイクワード候補の存在を否定した場合、NMDは、特定のウェイクワードを検出するためにキャプチャした音データを処理することを中止する。
【0025】
ここで記述されるいくつかの実施形態が、所与の参加者、例えば「ユーザ」、及び/又はその他のエンティティ、により実行される機能について参照し得るが、この記述は説明のみを目的とすることは理解されたい。特許請求の範囲は、請求項の文言に明確に別途記載されない限り、それらの例示的な実施者による動作を必要とするものであると解釈されるべきではない。
【0026】
II.例示的な動作環境
図1A及び1Bは、本明細書で開示される1つ又は複数の実施形態が実施され得るメディア再生システム100(又は、MPS100)の構成例を示す。はじめに図1Aを参照すると、図示のMPS100は、集合的に「ホーム環境」、「スマートホーム」、又は「環境101」と呼ばれ得る複数の部屋及びスペースを有する例示的なホーム環境に関連する。環境101は、主寝室101a、主寝室101b(ここで「ニックの部屋」及ばれる)、第二の寝室101c、ファミリールームもしくはデン101d、オフィス101e、リビングルーム101f、ダイニングルーム101g、キッチン101h、及び外パティオ101iを含む、多くの部屋、スペース、及び/又は再生ゾーンを有する家を含む。ホーム環境に関係して、特定の実施形態及び例が以下で詳細に説明するが、ここで記述される技術は他のタイプの環境においても実施可能である。例えば、いくつかの実施形態において、MPS100は、1つ又は複数の商業施設(例えば、レストラン、モール、空港、ホテル、小売店その他の店舗)、1つ又は複数の車両(例えば、SUV、バス、乗用車、船、ボート、飛行機)、複数の環境(例えば、ホームと車両環境の組み合わせ)、及び/又は複数ゾーンのオーディオが望ましいその他の適切な環境において実施可能である。
【0027】
これらの部屋及びスペースの中で、MPS100は、1つ又は複数のコンピュータを含む。図1A及び図1Bを共に参照して、そのようなコンピュータは、再生デバイス102(再生デバイス102a-102oとして個々に識別される)、ネットワークマイクロフォンデバイス103(「NMD」103a-102iとして個々に識別される)、及びコントローラデバイス104a及び104b(集合的に「コントローラデバイス104」)を含み得る。図1Bを参照して、ホーム環境は、例えば1つ又は複数のスマート照明デバイス108(図1B)、スマートサーモスタット110、及びローカルコンピュータ105(図1A)などのローカルネットワークデバイスなどの追加の、及び/又は他のコンピュータを含んでもよい。以下で説明される実施形態において、1つ又は複数の様々な再生デバイス102は、ポータブル再生デバイスとして構成されるが、別の実施形態では固定再生デバイスとして構成されてもよい。例えば、ヘッドフォン102o(図1B)は、携帯再生デバイスであり、本棚の上の再生デバイス102dは固定デバイスでもよい。別の例として、「パティオ」の再生デバイス102cは、壁のコンセントなどに差し込まれていないとき、環境101内の様々なエリア、及び環境101外に移動可能となるような電池式のデバイスであってもよい。
【0028】
図1Bの参照を続けて、様々な再生デバイス、ネットワークマイクロフォンデバイス、及びコントローラデバイス102-104、及び/又はMPS100のその他のネットワークデバイスは、ポイント間接続(point-to-point connections)を介して、及び/又は、有線及び/又はネットワークラウタ109を含むLAN111を介する無線を含み得るその他の接続によって互いに連結されてもよい。例えば、「左」デバイスとして指名され得る、「デン」101d(図1A)にある再生デバイス102jは、「右」デバイスとして指名され得て、同様に「デン」101dにある再生デバイス102aとポイント間接続を有してもよい。関連した実施形態において、「左」再生デバイス102jは、例えば「フロント」デバイスとして指名され得る再生デバイス102bなどの他のネットワークデバイスと、ポイント間接続及び/又はLAN111を介したその他の接続を介して通信してもよい。
【0029】
図1Bにさらに示されるように、MPS100は、1つ又は複数のリモートコンピュータ106とワイドエリアネットワーク(「WAN])107を介して接続されてもよい。いくつかの実施形態において、それぞれのリモートコンピュータ106は、1つ又は複数のクラウドサーバーの形態を有してもよい。リモートコンピュータ106は、環境101内のコンピュータと様々な方法で会話するように構成されてもよい。例えば、リモートコンピュータ106は、ホーム環境101のオーディオなどのメディアコンテンツのストリーミング、及び/又は再生の制御を容易にするように構成されてもよい。
【0030】
いくつかの実施形態において、様々な再生デバイス、NMD、及び/又はコントローラデバイス102-104は、VASに関連した少なくとも1つのリモートコンピュータ、及びメディアコンテンツサービス(「MCS])と関連した少なくとも1つのリモートコンピュータと通信可能に接続されてもよい。例えば、図1Bに示された例において、リモートコンピュータ106aは、VAS190と関連付けられ、リモートコンピュータ106bは、MCS192と関連づけられている。図1Bの例において、単一のVAS190及び単一のMCS192が示されているが、MPS100は、複数の異なるVAS及び/又はMCSと接続されてもよい。いくつかの実施形態において、VASは、AMAZON、GOOGLE、APPLE、MICROSOFT、SONOS、又はその他のボイスアシスタントプロバイダによって運営されてもよい。いくつかの実施形態において、MCSは、SPOTIFY(登録商標)、PANDORA、AMAZON MUSIC、又はその他のメディアコンテンツサービスの1つ又は複数によって運営されてもよい。
【0031】
図1Bにさらに示されるように、リモートコンピュータ106はさらに、メディア再生機能を遠隔から促進する、デバイス及びシステムのステータス情報を管理する、MPS100のデバイスと1つ又は複数のVAS及び/又はMCSとの通信を指令する、などを含む一定の作業を実行するように構成されたリモートコンピュータ106cを含む。一例において、リモートコンピュータ106cは、1つ又は複数のSONOS無線HiFiシステムのクラウドサーバーを提供する。
【0032】
様々な実施において、1つ又は複数の再生デバイス102は、オンボードの(例えば、統合された)ネットワークマイクロフォンデバイスの形態をとってもよく、又はそれを含んでもよい。例えば、再生デバイス102a-eは、対応するNMD103a-eをそれぞれ含む、又は別途備える。NMDを含むか又は備える再生デバイスは、記載内で別途指示がない限りここでは再生デバイス又はNMDと交換可能で呼ばれ得る。場合によっては、NMD103の1つ又は複数は、独立のデバイスでもよい。例えば、NMD103fおよび103gは独立したデバイスでもよい。独立したNMDは、スピーカ又は関連する電子部品などの、再生デバイスに通常含まれるコンポーネント及び/又は機能を省略してもよい。例えば、そのような場合、独立したNMDは、オーディオ出力を生成しない、又は限定されたオーディオ出力(例えば、比較的低品質のオーディオ出力)を生成するかもしれない。
【0033】
MPS100の様々な再生デバイス及びネットワークマイクロフォンデバイス102及び103は、これらのデバイスの1つ又は複数の設定の際、ユーザによってそれぞれのデバイスにつけられる固有の名称とそれぞれ関連してもよい。例えば、図1Bの図示例に示されるように、ユーザは再生デバイス102dに、それがブックケースに物理的に置かれているため、「ブックケース」という名称をつけてもよい。同様に、NMD103fには、それがキッチン101hのアイランドカウンタートップに置かれているため、「アイランド」という名称がつけられてもよい(図1A)。再生デバイス102e、102l、102m、及び102nがそれぞれ「寝室」、「ダイニングルーム」、「リビングルーム」、及び「オフィス」と名付けられるなど、いくつかの再生デバイスは、ゾーン又は部屋に従って名称がつけられてもよい。さらに、特定の再生デバイスは、機能を記述した名称を有してもよい。例えば、再生デバイス102a及び102bは、これらのデバイスが「デン」101dのゾーンでメディアを再生している間、特定のオーディオチャンネルを提供するよう構成されるため、「右」及び「フロント」という名称がそれぞれつけられる(図1A)。「パティオ」の再生デバイス102cは、それが電池式及び/又は環境101の異なるエリアへいつでも移動可能であるため、ポータブルと名付けられてもよい。その他の名付け方法も可能である。
【0034】
上述したように、NMDは、NMDの近傍の人が話したスピーチが混じったバックグラウンドノイズを含む音などの、その環境からの音を検出して処理してもよい。例えば、NMDによって環境内で音が検出されると、NMDは、検出音を処理して、NMD向け、そして究極的に特定のVAS向けを意図したボイス入力を包含するスピーチを音が含むか否かを判断してもよい。例えば、NMDはスピーチが特定のVASと関連するウェイクワードを含むか否かを識別してもよい。
【0035】
図1Bの図示例において、NMD103は、LAN111とラウタ109を介してネットワーク上でVAS190と会話するように構成される。VAS190との会話は、例えばNMDが検出音の中にウェイクワードの候補を識別したときに開始されてもよい。識別によりウェイクワードイベントが起こり、それに続いて、NMDが検出音データをVAS190へ送信することを開始する。いくつかの実施形態において、様々なローカルネットワークデバイス102-105(図1A)、及び/又はMPS100のリモートコンピュータ106cは、様々なフィードバック、情報、指示、及び/又は関連データを、選択されたVASに関連するリモートコンピュータとやり取りしてもよい。そのようなやり取りは、ボイス入力を包含する送信されたメッセージと関連していてもよいし、独立していてもよい。いくつかの実施形態において、リモートコンピュータ及びメディア再生システム100は、ここで説明されるような通信経路を介して、及び/又はメタデータ交換チャンネルを使ってデータをやり取りしてもよい。メタデータ交換チャンネルは、2017年2月21日付けの米国特許出願第15/438,749号明細書に記載されており、この出願の名称は「メディア再生システムのボイス制御」であり、その全体がここで参照され援用される。
【0036】
音データのストリームを受信すると、VAS190は、NMDからストリーミングされたデータ内にボイス入力が存在するかを判断し、存在する場合、VAS190はまたボイス入力の根底にある意図を判断する。VAS190は次に応答をMPS100に返してもよく、それはウェイクワードイベントの原因となったNMDに直接応答を送信することを含んでもよい。応答は通常VAS190がボイス入力内に存在すると判断した意図に基づく。例として、VAS190が「ビートルズのヘイジュードを再生して」という発声を含むボイス入力を受信したことに応答して、VAS190は、ボイス入力の根底にある意図は再生を開始することと判断してもよく、さらにボイス入力の意図は「ヘイジュード」という特定の曲を再生することであると判断してもよい。これらの判断の後、VAS190は、特定のMCS192へコンテンツ(すなわち、「ヘイジュード」という曲)を読み出すコマンドを発信してもよく、次にMCS192は、このコンテンツをMPS100へ直接、又はVAS190を介して間接的に、提供する(例えばストリーミングする)。いくつかの実施形態において、VAS190は、MPS100自身にMCS192からコンテンツを読み出すコマンドをMPS100に送信してもよい。
【0037】
いくつかの実施形態において、互いに近くに位置する2つ又はそれ以上のNMDによって検出されたスピーチ内にボイス入力があると識別されたとき、NMDは、互いに調停を促進してもよい。例えば、環境101内のNMD搭載の再生デバイス102d(図1A)は、NMDを搭載する「リビングルーム」再生デバイス102mと比較的近く、102d及び102mの両方が少なくとも時によっては同じ音を検出し得る。そのような場合、遠隔VASに検出音データを提供することを担当するのが、最終的にいずれのデバイスになるのかについての調停が必要になる場合がある。NMD間の調停の例は、例えば既に参照した米国特許出願第15/438,749号明細書に記載されている。
【0038】
特定の実施形態において、NMDは、NMDを含まないかもしれない指定された再生デバイス又はデフォルトの再生デバイスに、割り当てられてもよく、又は別途関連付けられてもよい。例えば、「キッチン」101h(図1A)の「アイランド」NMD103fは、「アイランド」NMD103fに比較的近い「ダイニングルーム」再生デバイス102lに割り当てられ得る。実際に、NMDは、遠隔のVASがオーディオを再生するようにNMDからボイス入力を受信したことに応答して、割り当てられた再生デバイスにオーディオを再生するように命令してもよく、そのボイス入力は、ユーザが発生した特定の曲、アルバム、プレイリスト等を再生させるコマンドに応じて、NMDがVASに送信したものであってもよい。NMD及び再生デバイスを、指定された再生デバイス又はデフォルトの再生デバイスに割り当てることに関するさらなる詳細は、例えば既に参照した米国特許出願第15/438,749号明細書に記載されている。
【0039】
例示的なMPS100の異なるコンポーネントに関連するさらなる態様、及び異なるコンポーネントがどのように会話してユーザにメディア体験を提供し得るかについては、次のセクションで説明され得る。ここでの説明は概して例示的なMPS100を参照するかもしれないが、ここで説明される技術は、上述のホーム環境、その他の中の応用に限定されない。例えば、ここで説明される技術は、再生デバイス、ネットワークマイクロフォンデバイス、及び/又はコントローラデバイス102-104のいずれかをより多く含む、又はより少なく含む他のホーム環境構成において便利かもしれない。例えば、ここの技術は単一の再生デバイス102及び/又は単一のNMD103を有する環境内で利用されてもよい。そのような場合のいくつかの例において、LAN111(図1B)は無くてもよく、単一の再生デバイス102及び/又は単一のNMD103がリモートコンピュータ106a-dと直接通信してもよい。いくつかの実施形態において、テレコミュニケーションネットワーク(例えば、LTEネットワーク、5Gネットワークなど)は様々な再生デバイス、ネットワークマイクロフォンデバイス、及びコントローラデバイス102-104と、LANに依存せずに通信してもよい。
【0040】
a.例示的な再生、及びネットワークマイクロフォンデバイス
図2Aは、図1A及び図1BのMPS100の再生デバイス102の1つのある態様を示す機能ブロック図である。図示されるように、再生デバイス102は、それぞれが以下で詳細に説明される様々なコンポーネントを含み、再生デバイス102の様々なコンポーネントは、システムバス、通信ネットワーク、又はその他の接続メカニズムを介して互いに連結されることができる。図2Aに図示された例において、再生デバイス102は、図1Aに示される複数のNMD103の1つなどのNMDの機能をサポートするコンポーネントを含むから、「NMD搭載の」再生デバイスと呼ばれてもよい。
【0041】
図示されるように、再生デバイス102は、メモリ213に記憶された命令に従って入力データを処理するように構成されたクロック駆動のコンピュータコンポーネントであり得る少なくとも1つのプロセッサ212を含む。メモリ213は、プロセッサ212によって実行可能な命令を記憶するように構成された有形の非一時的なコンピュータ読み取り可能記録媒体であってもよい。例えば、メモリ213は、ある機能を実行するためにプロセッサ212によって実行可能なソフトウェアコード214をロードすることができるデータストレージであってもよい。
【0042】
一例において、機能は、別の再生デバイスであり得るオーディオソースから再生デバイス102がオーディオデータを読み出すステップを含んでもよい。別の例において、機能は、再生デバイス102がオーディオデータ、検出音データ(例えば、ボイス入力に対応する)、及び/又はその他の情報を、ネットワーク内の別のデバイスに少なくとも1つのネットワークインタフェース224を介して送信することを含んでもよい。さらに別の例において、機能は再生デバイス102が1つ又は複数の他の再生デバイスに、再生デバイス102と同期してオーディオを再生させることを含んでもよい。さらに別の例において、機能は再生デバイス102が1つ又は複数の他の再生デバイスとペアリングされる、又はその他の方法で接続され、マルチチャンネルオーディオ環境を作ることを容易にすることを含んでもよい。多くの他の例示的な機能が可能であり、そのいくつかが以下で説明される。
【0043】
直前に言及したとおり、ある機能は、再生デバイス102がオーディオコンテンツの再生を1つ又は複数の他の再生デバイスと同期させることを含んでいてもよい。同期した再生の間、同期した再生デバイス同士のオーディオコンテンツの再生の遅延に、聴取者が気づかない場合がある。2004年4月4日付けの「複数の独立クロックデジタルデータ処理デバイス間の作業を同期するシステム及び方法」と題する米国特許第8,234,395号の全体が本明細書に参照として援用されており、それは再生デバイス間のオーディオ再生を同期することのより詳細な例を提供している。
【0044】
オーディオ再生を容易にするために、再生デバイス102は、概して再生デバイス102がオーディオをレンダリングするより前にオーディオを処理するように構成されるオーディオ処理コンポーネント216を含む。この点において、オーディオ処理コンポーネント216は、1つ又は複数のデジタルからアナログへのコンバータ(「DAC」)、1つ又は複数のオーディオ処理コンポーネント、1つ又は複数のオーディオ強化コンポーネント、1つ又は複数のデジタル信号プロセッサ(「DSP」)、及びその他、などを含んでもよい。いくつかの実施形態において、1つ又は複数のオーディオ処理コンポーネント216は、プロセッサ212のサブコンポーネントでもよい。動作中、オーディオ処理コンポーネント216は、アナログ及び/又はデジタルのオーディオを受信し、処理する及び/又はその他の方法で意図的にオーディオを変換して再生用のオーディオ信号を生成する。
【0045】
生成されたオーディオ信号は次に、増幅用の1つ又は複数の増幅器217に提供されてもよく、増幅器217に動作可能に接続された1つ又は複数のスピーカ218を通して再生されてもよい。オーディオ増幅器217は、オーディオ信号を1つ又は複数のスピーカ218を駆動するためのレベルまで増幅するように構成されたコンポーネントを含んでもよい。
【0046】
それぞれのスピーカ218は、個々のトランスデューサ(例えば、「ドライバ」)含んでもよく、又はスピーカ218が1つ又は複数のドライバを備えた筐体を含む完全なスピーカシステムを含んでもよい。スピーカ218の、ある特有のドライバは、例えば、サブウーファ(例えば、低周波数用)、ミッドレンジドライバ(例えば、中周波数用)、及び/又はツイータ(例えば、高周波数用)を含んでもよい。場合によっては、トランスデューサはオーディオ増幅器217の個々の対応するオーディオ増幅器によって駆動されてもよい。いくつかの実施形態において、再生デバイスがスピーカ218を含まなくてもよく、代わりに再生デバイスを外部スピーカに接続するためのスピーカインタフェースを含んでもよい。ある実施形態において、再生デバイスは、スピーカ218もオーディオ増幅器217も含まなくてもよく、代わりに再生デバイスを外部オーディオ増幅器又はオーディオビジュアルレシーバに接続するためのオーディオインタフェース(図示せず)を含んでもよい。
【0047】
再生デバイス102による再生のためにオーディオ信号を生成することに加えて、オーディオ処理コンポーネント216は、再生のためにネットワークインタフェース224を介して1つ又は複数の他の再生デバイスへ送られるオーディオを処理するように構成されてもよい。以下で説明されるように、例示的なシナリオにおいて、再生デバイス102によって処理される及び/又は再生されるオーディオコンテンツは、再生デバイス102(図示せず)のオーディオライン入力インタフェース(例えば、オーディオを検出する3.5ミリメートルオーディオライン入力接続)を介して、又はネットワークインタフェース224を介して、外部ソースから受信されてもよい。
【0048】
図示されるように、少なくとも1つのネットワークインタフェース224は、1つ又は複数の無線インタフェース225、及び/又は1つ又は複数の有線インタフェース226の形態をとってもよい。無線インタフェースは、他のデバイス(例えば、他の再生デバイス、NMD、及び/又はコントローラデバイス)と通信プロトコル(例えば、IEEE802.11a、802.11b、802.11g、802.11n、802.11ac、802.15、4Gモバイル通信スタンダード、その他のあらゆる無線通信規格)に従って無線で通信するようなネットワークインタフェースの機能を再生デバイス102に提供してもよい。有線インタフェースは、通信プロトコル(例えば、IEEE802.3)に従って有線で通信するようなネットワークインタフェースの機能を再生デバイス102に提供してもよい。図2Aに示されるネットワークインタフェース224は、有線及び無線の両方のインタフェースを含むが、いくつかの実施形態において、再生デバイス102は、無線インタフェースのみ、又は有線インタフェースのみを含んでもよい。
【0049】
概して、ネットワークインタフェース224は、再生デバイス102とデータネットワーク内の1つ又は複数の他のデバイスとの間のデータフローを容易にする。例えば、再生デバイス102は、データネットワーク上で、1つ又は複数の他の再生デバイス、LAN内のネットワークデバイス、及び/又はインターネットなどのWAN上でオーディオコンテンツソースからオーディオコンテンツを受信するように構成されてもよい。一例において、再生デバイス102によって送信及び受信されるオーディオコンテンツ及びその他の信号は、インターネットプロトコル(IP)に基づくソースアドレス及びIPに基づく目的地アドレスを含むデジタルパケットデータの形態で送信されてもよい。そのような場合、ネットワークインタフェース224は、再生デバイス102に向かうデータが再生デバイス102によって適切に受信され処理されるようにデジタルパケットデータを解析するように構成されてもよい。
【0050】
図2Aに示されるように、再生デバイス102はまた、1つ又は複数のマイクロフォン222と動作するように接続されたボイス処理コンポーネント220を含む。マイクロフォン222は、再生デバイス102の環境内の音(すなわち、音響波)を検出し、それが次にボイス処理コンポーネント220に提供されるように構成される。より具体的には、以下でより詳細に説明されるように、各マイクロフォン222は、音を検出し、その音を、検出音を表現するデジタル又はアナログ信号に変換するように構成され、その信号は次にボイス処理コンポーネント220に検出音に基づく様々な機能を実行させ得る。1つの実施形態において、マイクロフォン222は、マイクロフォンのアレイ(例えば、6個のマイクロフォンのアレイ)として配置される。いくつかの実施形態において、再生デバイス102は、6個以上のマイクロフォン(例えば、8個のマイクロフォン又は12個のマイクロフォン)を含み、又は6個以下のマイクロフォン(例えば4個のマイクロフォン、2個のマイクロフォン、又は1個のマイクロフォン)を含む。
【0051】
動作中、ボイス処理コンポーネント220は、概してマイクロフォン222を介して受信された音を検出して処理し、検出音内のボイス入力の候補を識別し、及び検出音データを抽出するように構成され、検出音データ内で識別されたボイス入力をVAS190(図1B)などのVASが処理できるようにする。ボイス処理コンポーネント220は、1つ又は複数のアナログからデジタルへのコンバータ、音響エコー除去器(「AEC」)、空間プロセッサ(例えば、1つ又は複数のマルチチャンネルウィーンフィルタ(Wiener filters)、1つ又は複数のその他のフィルタ、及び/又は1つ又は複数のビーム形成コンポーネント)、1つ又は複数のバッファ(例えば、1つ又は複数のサーキュラバッファ)、1つ又は複数のウェイクワードエンジン、1つ又は複数のボイス抽出器、及び/又は1つ又は複数のスピーチ処理コンポーネント(例えば、特定のユーザ又は家に関連した特定のグループのユーザの声を認識するように構成されたコンポーネント)、やその他の例示的なボイス処理コンポーネントを含んでもよい。例示的な実施形態において、ボイス処理コンポーネント220は、1つ又は複数のDSP、又はDSPの1つ又は複数のモジュールを含んでもよい、又はその形態をとってもよい。その点において、特定のボイス処理コンポーネント220は、特定の機能を達成するために修正や、別途チューニングされ得る特定のパラメータ(例えば、ゲイン及び/又はスペクトラルパラメータ)と共に構成されてもよい。いくつかの実施形態において、ボイス処理コンポーネント220の1つ又は複数は、プロセッサ212のサブコンポーネントでもよい。
【0052】
いくつかの実施形態において、ボイス処理コンポーネント220は、MPS100のユーザアカウントと関連し得るユーザのボイスプロフィールを検出して記憶してもよい。例えば、ボイスプロフィールは、コマンド情報のセット又はデータテーブルの中に記憶される変数として記憶されてもよく、及び/又は変数と比較されてもよい。ボイスプロフィールは、ユーザのボイスのトーン又は周波数の態様、及び/又は既に参照した米国特許出願第15/438,749号明細書に記載されるものなどのユーザのボイスのその他の固有の態様を含んでもよい。
【0053】
図2Aにさらに示されるように、再生デバイス102はパワーコンポーネント227も含む。パワーコンポーネント227は、再生デバイス102を物理的に電気コンセント又はその他の外部パワーソースに接続されるパワーケーブルなどを介してパワーソース(図示せず)と接続され得る少なくとも1つの外部パワーソースインタフェース228を含む。その他のパワーコンポーネントは、例えばトランスフォーマ、コンバータ、及び電力パワーをフォーマットするように構成された類似のコンポーネントを含んでもよい。
【0054】
いくつかの実施形態において、再生デバイス102のパワーコンポーネント227は、再生デバイス102を外部パワーソースに物理的に接続することなく電力供給するように構成された内部パワーソース229(例えば、1つ又は複数のバッテリ)をさらに含んでもよい。内部パワーソース229を備える場合、再生デバイス102は外部パワーソースに依存しないで動作できる。そのような実施形態において、外部パワーソースインタフェース228は、内部パワーソース229の充電を容易にするように構成されてもよい。既に説明したとおり、内部パワーソースを含む再生デバイスは、ここで「携帯再生デバイス」と呼ばれてもよい。逆に、外部パワーソースを使って動作する再生デバイスは、ここで「固定再生デバイス」と呼ばれてもよいが、そのようなデバイスは実際には家又はその他の環境内で移動可能である。
【0055】
再生デバイス102はさらに、1つ又は複数のコントローラデバイス104によって容易にされるユーザの対話から独立した、又はそれと関連したユーザの対話を容易にし得るユーザインタフェース240を含む。様々な実施形態において、ユーザインタフェース240は、1つ又は複数の物理的なボタンを含む、及び/又はタッチ感応スクリーン及び/又は表面の上に提供されるグラフィカルインタフェースやその他のユーザが直接入力を提供するためのものをサポートする。ユーザインタフェース240はさらに、視覚的及び/又は聴覚的フィードバックをユーザに提供するために光源(例えば、LED)及びスピーカの1つ又は複数を含んでもよい。
【0056】
図解のための例として、図2Bは、ハウジング230の上部234の制御エリア232の形態をとるユーザインタフェースを含む再生デバイス102の例示的なハウジング230を示す。制御エリア232は、オーディオ再生、音量レベル、及びその他の機能を制御するためのボタン236a-cを含む。制御エリア232はまた、マイクロフォン222をオン状態かオフ状態に切り替えるためのボタン236dを含む。
【0057】
図2Bにさらに示されるように、制御エリア232は少なくとも部分的にハウジング230の上部234に形成され、マイクロフォン222(図2Bでは、見えない)が再生デバイス102の環境内で受信する音が通る開口によって囲まれる。マイクロフォン222は、上部234に沿った、及び/又はその中の、又はハウジング230のその他のエリアなどの様々な場所に配置されてもよく、再生デバイス102からみて1つ又は複数の方向からの音を検出する。
【0058】
例示として、ソノズ・インコーポレイテッドは、「PLAY:1」、「PLAY:3」、「PLAY:5」、「PLAYBAR」、「CONNECT:AMP」、「PLAYBASE]、「BEAM」、「CONNECT」、及び「SUB」を含む、ここで開示される実施形態のいくつかを実施可能な再生デバイスを現在販売提供している(又は、していた)。他の過去、現在、及び/又は将来のいずれの再生デバイスにおいても、追加的に又は代替的に本明細書で開示された実施例の再生デバイスに実装して使用することができる。更に、再生デバイスは、図2A又は図2Bに示された特定の例、又は提供されるソノズ製品に限定されないことは理解されるべきである。例えば、再生デバイスは、ネットワークインタフェースなどを介してメディア再生システム100の一部として動作可能な有線又は無線のヘッドフォンを含んでもよい、又は別途その形態をとってもよい。別の例において、再生デバイスは、パーソナルモバイルメディア再生デバイス用のドッキングステーションを含むか、又は、それらと会話してもよい。更に別の例において、再生デバイスは、別のデバイス又はコンポーネント、例えば、テレビ、照明器具、又は屋内又は屋外で使用するためのいくつかの他のデバイスと一体化されてもよい。
【0059】
b.例示的な再生デバイス構成
図3A-3Eは、再生デバイスの構成例を示す。はじめに図3Aを参照して、いくつかの例において、単一の再生デバイスが1つのゾーンに属していてもよい。例えば、「パティオ」の再生デバイス102c(図1A)は「ゾーンA」に属してもよい。以下で説明するいくつかの実施例において、複数の再生デバイスが「結合」され(bonded)、一緒に1つのゾーンを形成する「結合ペア」を形成してもよい。例えば、図3Aにおいて「ベッド1」と名付けられた再生デバイス102f(図1A)が、図3Aの「ベッド2」と名付けられた再生デバイス102g(図1A)に結合されて「ゾーンB」を形成してもよい。結合された再生デバイスは、異なる再生担当を有してもよい(例えば、チャンネル担当)。以下で説明される別の実施例において、複数の再生デバイスは併合され(merged)、1つのゾーンを形成してもよい。例えば、「ブックケース」と名付けられた再生デバイス102dが「リビングルーム」と名付けられた再生デバイス102mと併合されて「ゾーンC」を形成してもよい。併合された再生デバイス102d及び102mには、特に異なる再生担当を割り当てられない場合もある。すなわち、併合された再生デバイス102d及び102mは、オーディオコンテンツを同期して再生することを除けば、まるで併合されていないかのようにオーディオコンテンツをそれぞれが再生してもよい。
【0060】
制御の目的で、MPS100の各ゾーンは、単一のユーザインタフェース(UI)エンティティとして示されてもよい。例えば、コントローラデバイス104によって表示されるように、「ゾーンA」は「ポータブル」と名付けられた単一のエンティティとして提供されてもよい。「ゾーンC」は「オフィス」と名付けられた単一のエンティティとして提供されてもよい。「ゾーンB」は「ステレオ」と名付けられた単一のエンティティとして提供され、「ゾーンC」は「リビングルーム」と名付けられた単一のエンティティとして提供されてもよい。
【0061】
様々な実施形態において、ゾーンはそのゾーンに属する再生デバイスの1つの名前を踏襲してもよい。例えば、「ゾーンC」は「リビングルーム」デバイス102m(図示のとおり)の名前を踏襲してもよい。別の例において、「ゾーンC」は代わりに「ブックケース」デバイス102dの名前を踏襲してもよい。さらなる例において、「ゾーンC」は「ブックケース」デバイス102dと「リビングルーム」デバイス102mとの何らかの組み合わせである名前を使ってもよい。選択される名前はコントローラデバイス104の入力を介してユーザによって選択されてもよい。いくつかの実施形態において、ゾーンはそのゾーンに属するデバイス以外の名前が与えられてもよい。例えば、図3Aの「ゾーンB」は「ステレオ」と名付けられるが、「ゾーンB」のデバイスがどれもこの名前を有していない。一態様において、「ゾーンB」は、「ベッド1」及び「ベッド2」の構成デバイスからなる、「ステレオ」という名の単一のデバイスを示す単一のUIエンティティである。1つの実施形態において、「ベッド1」デバイスは、主寝室101h(図1A)の再生デバイス102fであってもよく、「ベッド2」デバイスは、同じく主寝室101h(図1A)の再生デバイス102gであってもよい。
【0062】
上述のとおり、結合された再生デバイスは、特定のオーディオチャンネルの再生担当などの異なる再生担当を有してもよい。例えば、図3Bに示すように、オーディオコンテンツのステレオ効果を生み出す又は強化するように「ベッド1」及び「ベッド2」デバイス102f及び102gが結合されてもよい。この例において、「ベッド1」再生デバイス102fは、左チャンネルのオーディオコンポーネントを再生するように構成されてもよく、「ベッド2」再生デバイス102gは、右チャンネルのオーディオコンポーネントを再生するように構成されてもよい。いくつかの実施例において、そのようなステレオ結合は「ペアリング」と呼ばれてもよい。
【0063】
加えて、結合されるように構成された再生デバイスは追加の及び/又は異なるスピーカドライバをそれぞれ有してもよい。図3Cに示されるように、「フロント」と名付けられた再生デバイス102bは「サブ」と名付けられた再生デバイス102kと結合されてもよい。「フロント」デバイス102bは中間周波から高周波のレンジを提供し、「サブ」デバイス102kが例えばサブウーファとして低周波を提供してもよい。結合が解除されるとき、「フロント」デバイス102bが全周波レンジを提供するように構成されてもよい。別の例として、図3Dは、それぞれ「右」及び「左」デバイス102a及び102jとしてさらに結合された「フロント」及び「サブ」デバイス102b及び102kを示す。いくつかの実施例において、「右」及び「左」デバイス102a及び102jは、ホームシアターシステムのサラウンド又は「サテライト」チャンネルを形成してもよい。結合された再生デバイス102a、102b、102j、及び102kは単一の「ゾーンD」(図3A)を形成してもよい。
【0064】
いくつかの実施形態において、再生デバイスは「併合」されることもできる。結合された再生デバイスとは対照的に、併合された再生デバイスは、割り当てられた再生担当を有さなくてもよく、それぞれの再生デバイスが可能なオーディオコンテンツの全レンジをそれぞれが提供してもよい。それにもかかわらず、併合されたデバイスは単一のUIエンティティ(すなわち上述のとおり、1つのゾーン)を示してもよい。例えば、図3Eには、「リビングルーム」の再生デバイス102d及び102mが併合され、その結果これらのデバイスが「ゾーンC」という単一のUIエンティティとして代表して示されている。一実施形態において、再生デバイス102d及び102mは、それぞれの再生デバイス102d及び102mが可能なオーディオコンテンツの全レンジをそれぞれが出力し、オーディオを同期して再生してもよい。
【0065】
いくつかの実施例において、独立したNMDは、1つのゾーンの中に単独で存在し得る。例えば、図1AのNMD103hが「クローゼット」と名付けられ、図3Aの「ゾーンI」を形成する。NMDはまた、別のデバイスと結合又は併合されてゾーンを形成してもよい。例えば、「アイランド」と名付けられたNMDデバイス103fは再生デバイス102i「キッチン」と結合されて、一緒に、それもまた「キッチン」と名付けられる「ゾーンF」を形成してもよい。NMDと再生デバイスとを指名された又はデフォルトのデバイスとして関連づけることに関するさらなる詳細は、例えば既に参照した米国特許出願第15/438,749号明細書に記載されている。いくつかの実施例において、独立したNMDは1つのゾーンに割り当てられなくてもよい。
【0066】
個々の、結合された、及び/又は併合されたデバイスのゾーンは、オーディオを同期して再生する再生デバイスのセットを形成するように構成されてもよい。そのような再生デバイスのセットは、「グループ」、「ゾーングループ」、「同期グループ」、又は「再生グループ」と呼ばれてもよい。コントローラデバイス104を介して提供された入力に応答して、再生デバイスは動的にグループ化及びグループ解除されて新しい、又は異なるグループを形成し、オーディオコンテンツを同期して再生してもよい。例えば、図3Aを参照して、「ゾーンA」が「ゾーンB」とグループ化されて2つのゾーンの再生デバイスを含むゾーングループを形成してもよい。別の例として、「ゾーンA」は1つ又は複数の他の「ゾーンC-I」とグループ化されてもよい。「ゾーンA-I」は多数の方法でグループ化及びグループ解除ができる。例えば、「ゾーンA-I」のうちの3つ、4つ、5つ、又はそれ以上(例えば全部)がグループ化できる。グループ化されると、既に参照した米国特許第8,234,395号明細書に説明されるように、個々の、及び/又は結合された再生デバイスはオーディオを互いに同期して再生してもよい。上述され、以下でより詳細に説明されるように、グループ化されて結合されたデバイスは、トリガイベントに応答して発生する携帯再生デバイスと固定再生デバイスとの間の関係の例示的なタイプである。
【0067】
様々な実施例において、例えば図3Aに示される「ダイニングルーム+キッチン」のように、ある環境の中のゾーンには、グループ内のゾーンのデフォルトの名前又はゾーングループ内のゾーン名の組み合わせであり得る特定の名称が割り当てられ得る。いくつかの実施形態において、また図3Aに示される「ニックの部屋」のように、ゾーングループにはユーザが選択した固有の名前が与えられてもよい。「ニックの部屋」という名称は、部屋の名称である「主寝室」などのゾーングループの旧名称からユーザが選択して改名したものかもしれない。
【0068】
図2Aの参照に戻って、メモリ213に、定期的に更新されて再生ゾーン、再生デバイス、及び/又はそれらと関連するゾーングループの状態を記述するために使われるあるデータが1つ又は複数の状態変数(state variable)として記憶されてもよい。メモリ213はまた、メディアシステム100の他のデバイスの状態に関連し、時々デバイス間で共有され得るデータを含んでもよく、デバイスの1つ又は複数がシステムに関連する最新のデータを有することになる。
【0069】
いくつかの実施形態において、再生デバイス102のメモリ213は状態と関連する様々な変数タイプのインスタンスを記憶してもよい。変数インスタンス(variables instances)はタイプに対応する識別子(identifier:例えば、タグ)とともに記憶されてもよい。例えば、特定の識別子は、あるゾーンの再生デバイスを識別する第一のタイプ「a1」、ゾーンに結合されていてもよい再生デバイスを識別する第二のタイプ「b1」、及びゾーンが属し得るゾーングループを識別する第三のタイプ「c1」であってもよい。関連する例として、図1Aにおいて「パティオ」と関連する識別子は、「パティオ」が特定のゾーンにあってゾーングループに入っていない唯一の再生デバイスであることを示していてもよい。「リビングルーム」に関連する識別子は、「リビングルーム」が他のゾーンとグループ化されていないが、結合された再生デバイス102a、102b、102j、及び10kを含んでいることを示していてもよい。「ダイニングルーム」と関連する識別子は、「ダイニングルーム」が「ダイニングルーム+キッチン」のグループの一部であり、デバイス103f及び102iが結合されていることを示していてもよい。「キッチン」と関連する識別子は、「キッチン」が、「ダイニングルーム+キッチン」ゾーングループの一部であることにより、同じ又は類似した情報を示していてもよい。他の例示的なゾーン変数及び識別子は、以下で説明される。
【0070】
さらに別の例において、MPS100は、図3Aに示される「エリア」に関連する識別子などのように、ゾーン及びゾーングループの他の関連性を表す変数又は識別子を含んでもよい。あるエリアはゾーングループ及び/又はゾーングループに属さないゾーンのクラスタを含んでもよい。例えば、図3Aは、「第一のエリア」と名付けられた第一のエリア及び「第二のエリア」と名付けられた第二のエリアを示す。「第一のエリア」は、「パティオ」、「デン」、「ダイニングルーム」、「キッチン」、及び「バスルーム」のゾーン及びゾーングループを含む。「第二のエリア」は、「バスルーム」、「ニックの部屋」、「寝室」、及び「リビングルーム」のゾーン及びゾーングループを含む。一態様において、「エリア」は、別のクラスタの1つ又は複数のゾーン及び/又はゾーングループを共有するゾーングループ及び/又はゾーンのクラスタを発動するために使われてもよい。この点において、そのような「エリア」は別のゾーングループとゾーンを共有しないゾーングループと異なる。「エリア」を実装する技術のさらなる例は、例えば2017年8月21日付けの「名前に基づく部屋の関連付け」と題する米国特許出願第15/682,506号明細書、及び2007年9月11日付けの「マルチゾーンメディアシステムの制御とグループ作成操作」と題する米国特許第8,483,853号明細書に記載がある。これらの出願はその全体がここに参照され援用される。いくつかの実施例において、MPS100は、「エリア」を実装しなくてもよい。その場合、システムは「エリア」に関連する変数を記憶しなくてもよい。
【0071】
メモリ213はさらに、他のデータを記憶するように構成されてもよい。そのようなデータは、再生デバイス102、又はその再生デバイス(又は別の再生デバイス)が関連し得る再生キュー(playback queue)によってアクセス可能なオーディオソースに関連してもよい。以下で説明される実施形態において、ボイス入力を処理するとき、メモリ213は、特定のVASを選択するための一セットのコマンドデータを記憶するように構成される。
【0072】
動作中、図1Aの環境における1つ又は複数の再生ゾーンは、それぞれ異なるオーディオコンテンツを再生していてもよい。例えば、ユーザは、「パティオ」ゾーンでグリルしながら、再生デバイス102cによって再生されるヒップホップ音楽を聞くことができる。一方、別のユーザは、「キッチン」ゾーンで食事を準備しながら、再生デバイス102iによって再生されるクラシック音楽を聞くことができる。別の例では、再生ゾーンは、同じオーディオコンテンツを別の再生ゾーンと同期して再生してもよい。例えば、ユーザは「オフィス」ゾーンにいてもよく、「オフィス」ゾーンの再生デバイス102nが、「パティオ」ゾーンの再生デバイス102cで再生されている音楽と同じヒップホップ音楽を再生してもよい。そのような場合、再生デバイス102c及び102dは、ヒップホップ音楽を同期して再生しているため、ユーザは、異なる再生ゾーン間を移動してもアウト-ラウドで再生されるオーディオコンテンツをシームレス(又は少なくともほぼシームレス)に楽しむことができる。再生ゾーン間の同期は、前述の米国特許第8,234,395号明細書で述べられているような再生デバイス間の同期と同様の方法で行ってもよい。
【0073】
上に示唆したように、MPS100のゾーン構成は、動的に変更してもよい。したがって、MPS100は、多くの構成をサポートしてもよい。例えば、ユーザが1つ又は複数の再生デバイスを、物理的にゾーンに移動させるか、又はゾーンから移動させる場合、MPS100は変更に対応するように再構成されてもよい。例えば、ユーザが再生デバイス102cを「パティオ」ゾーンから「オフィス」ゾーンに物理的に移動させる場合、「オフィス」ゾーンは、そこから再生デバイス102cと再生デバイス102nとの両方を含んでもよい。場合によっては、ユーザは例えばコントローラデバイス104及び/又はボイス入力を使って、移動された再生デバイス102cを「オフィス」ゾーンとペアにする又はグループ化する、及び/又は、「オフィス」ゾーンの再生デバイスの名称変更をしてもよい。別の例として、1つ又は複数の再生デバイスが、ホーム環境において、再生ゾーンを未だ設定していない特定のエリアに移動させられた場合、移動された再生デバイスは名称変更されてもよく、又は特定の空間の再生ゾーンに関連づけられてもよい。
【0074】
更に、MPS100の異なる再生ゾーンは、動的にゾーングループに組み合わされてもよいし、又は別々の再生ゾーンに分割されてもよい。例えば、「ダイニングルーム」ゾーンと「キッチン」ゾーンとがディナーパーティ用のゾーングループに組み合わされることによって、再生デバイス102iと102lとがオーディオコンテンツを同期して再生することができる。一方、「デン」ゾーンの結合された再生デバイスは、(i)テレビゾーンと(ii)別のリスニングゾーンとに分割されてもよい。テレビゾーンは、「フロント」再生デバイス102bを含んでもよい。リスニングゾーンは、「右」、「左」、及び「サブ」再生デバイス102a、102j、及び102kを含んでもよく、それらは上述のとおり、グループ化、ペア化、又は併合されてもよい。「デン」ゾーンをそのように分割することにより、一人のユーザがリビングルームのあるエリアのリスニングゾーンで音楽を聴き、別のユーザがリビングルーム空間の別のエリアでテレビを見ることが可能となり得る。関連した例において、テレビゾーンとリスニングゾーンとに分割される前に「デン」ゾーンを制御するために、ユーザはNMD103a又は103b(図1B)のいずれも利用し得る。一旦分割されると、リスニングゾーンは例えばNMD103aの近傍のユーザによって制御され、テレビゾーンは例えばNMD103bの近傍のユーザによって制御されてもよい。しかし、上述のとおり、いずれのNMD103もMPS100の様々な再生及びその他のデバイスを制御するように構成されてもよい。
【0075】
c.例示的なコントローラデバイス
図4Aは、図1AのMPS100のコントローラデバイス104の選択された1つのある態様を示す機能ブロック図である。そのようなコントローラデバイスはここで、「コントロールデバイス」、又は「コントローラ」とも呼ばれ得る。図4Aに示されるコントローラデバイスは概して、プロセッサ412、プログラムソフトウェア414を記憶するメモリ413、少なくとも1つのネットワークインタフェース424、及び1つ又は複数のマイクロフォン422、などの上述のネットワークデバイスの特定のコンポーネントに類似したコンポーネントを含んでもよい。1つの例において、コントローラデバイスは、MPS100の専用のコントローラデバイスであってもよい。別の例では、コントローラデバイスは、例えばiPhone(登録商標)、iPad(登録商標)、又はその他のスマートフォン、タブレット又はネットワークデバイス(例えば、PCやMac(登録商標)などのネットワーク接続されたコンピュータ)などの、メディア再生システムのコントローラアプリケーションソフトウェアが搭載されていてもよいネットワークデバイスであり得る。
【0076】
コントローラデバイス104のメモリ413は、コントローラアプリケーションソフトウェア及びMPS100、及び/又はシステム100のユーザに関連したその他のデータを記憶するように構成されてもよい。メモリ413には、MPS100のユーザアクセス、制御、及び/又は構成を容易にするなどの一定の機能を達成するためにプロセッサ412によって実行可能なソフトウェア414の指示が搭載されてもよい。上述のように、コントローラデバイス104は他のネットワークデバイスとワイヤレスインタフェースなどの形態をとり得るネットワークインタフェース424上で通信するように構成される。
【0077】
1つの例において、システム情報(例えば、状態変数など)は、ネットワークインタフェース424を介してコントローラデバイス104とその他のデバイスとの間で伝達されてもよい。例えば、コントローラデバイス104はMPS100の再生ゾーンとゾーングループの構成を再生デバイス、NMD、又はその他のネットワークデバイスから受信してもよい。同様に、コントローラデバイス104は、そのようなシステム情報を再生デバイス、又はその他のネットワークデバイスへネットワークインタフェース424を介して送信してもよい。場合によっては、他のネットワークデバイスは、別のコントローラデバイスでもよい。
【0078】
コントローラデバイス104はまた、音量制御及びオーディオ再生制御などの再生デバイスの制御コマンドを、ネットワークインタフェース424を介して再生デバイスへ伝達してもよい。上述のとおり、MPS100の構成変更もコントローラデバイス104を使ってユーザによって実行されてもよい。構成変更は、1つ又は複数の再生デバイスの追加/削除、1つ又は複数のゾーンのゾーングループへの追加/削除、結合又は併合再生デバイスの形成、結合又は併合再生デバイスからの1つ又は複数の再生デバイスの分離、その他、を含んでもよい。
【0079】
図4Aに示されるように、コントローラデバイス104はまた、概してユーザアクセス及びMPS100の制御を容易にするように構成されるユーザインタフェース440を含む。ユーザインタフェース440は、図4B及び4Cに示されるコントローラインタフェース440a及び440bなどの様々なグラフィカルコントローラインタフェースを提供するように構成されるタッチ感応スクリーンディスプレイ又はその他のインタフェースを含んでもよい。図4B及び4Cを共に参照して、コントローラインタフェース440a及び440bは再生制御領域442、再生ゾーン領域443、再生ステータス領域444、再生キュー領域446、及びソース領域448を含む。図示のユーザインタフェースは、図4Aに示され、MPS100などのメディア再生システムを制御するためにユーザによってアクセスされるコントローラデバイスなどのネットワークデバイス上に提供され得るインタフェースの一例にすぎない。異なるフォーマット、スタイル、及び対話型シーケンスによるその他のユーザインタフェースが、1つ又は複数のネットワークデバイス上において代わりに実施され、類似した制御アクセスをメディア再生システムに提供してもよい。
【0080】
再生制御領域442(図4B)は、選択されると、選択された再生ゾーン又はゾーングループにある再生デバイスに、再生または停止、早送り、巻き戻し、次へスキップ、前へスキップ、シャッフルモードの開始/終了、リピートモードの開始/終了、クロスフェードモードの開始/終了、などをさせる選択可能なアイコン(例えば、タッチの方法で、又はカーソルを使って)を含んでもよい。再生制御領域442はまた、選択されると、イコライザの設定、及び再生音量、その他種々の変更を行う選択可能アイコンを含んでもよい。
【0081】
再生ゾーン領域443(図4C)は、MPS100内の再生ゾーンの表示を含んでもよい。再生ゾーン領域443はまた、図示の「ダイニングルーム+キッチン」ゾーングループなどのゾーングループの表示を含んでもよい。いくつかの実施例において、再生ゾーンのグラフィカルな表示が、例えば、結合されたゾーンの作成、ゾーングループの作成、ゾーングループの分割、ゾーングループの名称変更、その他など、MPS100内の再生ゾーンを管理又は構成するための追加の選択可能なアイコンを表示させるように選択可能でもよい。
【0082】
例えば、図示のように「グループ」アイコンは再生ゾーンのグラフィカル表示のそれぞれに提供されてもよい。特定のゾーンのグラフィカル表示内に提供される「グループ」アイコンは、特定のゾーンとグループ化されるためのMPS100の1つ又は複数の他のゾーンの選択肢を表示するために選択可能でもよい。一旦グループ化されると、特定のゾーンとグループ化されたゾーン内の再生デバイスは、特定のゾーンの再生デバイスと同期してオーディオコンテンツを再生するように構成される。類似的に、「グループ」アイコンはゾーングループのグラフィカル表示内に提供されてもよい。この場合、「グループ」アイコンは、ゾーングループから削除されるゾーングループ内の1つ又は複数のゾーンの選択をはずす選択肢を表示するために選択可能でもよい。ユーザインタフェースを介して、ゾーンをグループ化及びグループ解除をするための他の対話及び実施もまた可能である。再生ゾーン領域443(図4C)内の再生ゾーンの表示は、再生ゾーン又はゾーングループの構成が変更されるとともに動的に更新されてもよい。
【0083】
再生ステータス領域444(図4B)は、現在再生されているオーディオコンテンツ、前に再生されたオーディオコンテンツ、又は選択された再生ゾーン又はゾーングループ内で次に再生するように予定されているオーディオコンテンツ、のグラフィック表示を含んでもよい。選択可能な再生ゾーン又は再生グループは、コントローラインタフェース上で、例えば、再生ゾーン領域443及び/又は再生ステータス領域444内で視覚的に区別されてもよい。グラフィック表示は、トラックタイトル、アーティスト名、アルバム名、アルバム年、トラック長さ、及び/又はMPS100を、ユーザインタフェースを介して制御するときに、ユーザにとって有益かもしれない他の関連情報を含んでもよい。
【0084】
再生キュー領域446は、選択された再生ゾーン又はゾーングループに関連付けられた再生キュー内のオーディオコンテンツのグラフィック表示を含んでもよい。いくつかの実施形態において、それぞれの再生ゾーン又はゾーングループは、再生ゾーン又はゾーングループによって再生される0以上のオーディオアイテムに対応する情報を含む再生キューに関連付けられてもよい。例えば、再生キュー内のそれぞれのオーディオアイテムは、ユー・アール・アイ(URI)、ユー・アール・エル(URL)、又は再生ゾーン又はゾーングループ内の再生デバイスによって使用可能な他の識別子を含んでもよい。これらによって、ローカルオーディオコンテンツソース又はネットワークオーディオコンテンツソース、からオーディオアイテムを見つけ、及び/又は取り出し、再生デバイスによってそれを次に再生することができる。
【0085】
ある例では、プレイリストが再生キューに追加されてもよい。この場合、プレイリスト内のそれぞれのオーディオアイテムに対応する情報が再生キューに追加されてもよい。別の例では、再生キュー内のオーディオアイテムは、プレイリストとして保存されてもよい。更に別の例では、再生デバイスがストリーミングオーディオコンテンツ、例えば、再生時間を有する個別のオーディオアイテムよりも、停止しない限り連続して再生され得るインターネットラジオを再生し続けているとき、再生キューは、空であってもよいし、又は埋まっているが「未使用」であってもよい。別の実施形態では、再生キューは、インターネットラジオ及び/又は他のストリーミングオーディオコンテンツアイテムを含むことができ、且つ再生ゾーン又はゾーングループがそれらのアイテムを再生しているとき「使用中」とすることができる。他の例も可能である。
【0086】
再生ゾーン又はゾーングループが「グループ化される」、又は「グループ解除される」とき、影響を受ける再生ゾーン又はゾーングループに関連した再生キューは、クリアされてもよいし、又は再び関連付けられてもよい。例えば、第一の再生キューを含む第一の再生ゾーンが、第二の再生キューを含む第二の再生ゾーンとグループ化された場合、形成されたゾーングループは、関連付けられた再生キューを有してもよい。関連付けられた再生キューは、最初は空であるか、(例えば、第二の再生ゾーンが第一の再生ゾーンに追加された場合、)第一の再生キューのオーディオアイテムを含むか、(例えば、第一の再生ゾーンが第二の再生ゾーンに追加された場合、)第二の再生キューのオーディオアイテムを含むか、又は第一の再生キューと第二の再生キューとの両方のオーディオアイテムを組み合わせられてもよい。その後、形成されたゾーングループがグループ解除された場合、その結果の第一の再生ゾーンは、前の第一の再生キューと再び関連付けられてもよいし、空の新しい再生キューに関連付けられてもよいし、あるいはゾーングループがグループ解除される前にゾーングループに関連付けられていた再生キューのオーディオアイテムを含む新しい再生キューに関連付けられてもよい。同様に、グループ解除された第二の再生ゾーンは、前の第二の再生キューと再び関連付けられてもよいし、空の新しい再生キューに関連付けられてもよいし、あるいはゾーングループがグループ解除される前にゾーングループに関連付けられていた再生キューのオーディオアイテムを含む新しい再生キューに関連付けられてもよい。その他の例もまた可能である。
【0087】
図4B及び4Cを引き続き参照して、再生キュー領域446(図4B)内のオーディオコンテンツのグラフィック表示は、トラックタイトル、アーティスト名、トラックの長さ、及び/又は再生キュー内のオーディオコンテンツに関連付けられた他の関連情報を含んでもよい。ある例においては、オーディオコンテンツのグラフィック表示は、追加の選択可能なアイコンを選択して移動させることができる。これにより、再生キュー及び/又は再生キューに表示されたオーディオコンテンツを管理及び/又は編集することができる。例えば、表示されたオーディオコンテンツは、再生キューから取り除いてもよいし、再生キュー内の異なる位置に移動させてもよいし、すぐに再生させるか若しくは現在再生しているオーディオコンテンツの後に再生するように選択されてもよいし、あるいは他の動作を実行してもよい。再生ゾーン又はゾーングループに関連付けられた再生キューは、再生ゾーン又はゾーングループ内の1つ又は複数の再生デバイスのメモリ、再生ゾーン又はゾーングループに入っていない再生デバイスのメモリ、及び/又は他の指定のデバイスのメモリに記憶されていてもよい。そのような再生キューの再生には、キューのメディアアイテムを、おそらく順次又はランダムな順序で再生する1つ又は複数の再生デバイスが関係していてもよい。
【0088】
ソース領域448は、対応するVASに関連した選択可能なオーディオコンテンツ及び/又は選択可能なボイスアシスタントのグラフィカル表示を含んでもよい。VASは選択的に割り当てられてもよい。いくつかの例において、AMAZONのAlexa(登録商標)、MICROSOFTのCortana(登録商標)などの複数のVASが、同じNMDによって発動可能でもよい。いくつかの実施形態において、ユーザはあるVASを1つ又は複数のNMD専用に割り当ててもよい。例えば、ユーザは第一のVASを図1Aに示される「リビングルーム」のNMD102a及び102bのうちの1つ又は両方に割り当て、第二のVASを「キッチン」のNMD103fに割り当ててもよい。その他の例も可能である。
【0089】
d.例示的なオーディオコンテンツソース
ソース領域448のオーディオソースは、そこからオーディオコンテンツが読み出され、選択された再生ゾーン又はゾーングループで再生されるオーディオコンテンツソースでもよい。ゾーン又はゾーングループ内の1つ又は複数の再生デバイスは、再生するオーディオコンテンツを、(例えば、オーディオコンテンツの対応するURI又はURLに基づいて、)複数の入手可能なオーディオコンテンツソースから読み出すように構成されてもよい。一例において、オーディオコンテンツは、再生デバイスによって、対応するオーディオコンテンツソース(例えば、ライン-イン接続)から直接読み出されてもよい。別の例では、オーディオコンテンツは、1つ又は複数の他の再生デバイス若しくはネットワークデバイスを介してネットワーク上の再生デバイスに提供されてもよい。以下でより詳細に説明されるように、いくつかの実施形態において、オーディオコンテンツは1つ又は複数のメディアコンテンツサービスによって提供されてもよい。
【0090】
例示的なオーディオコンテンツソースは、メディア再生システム内の1つ又は複数の再生デバイスのメモリを含んでもよい。メディア再生システムとしては、例えば、図1のMPS100、1つ又は複数のネットワークデバイス上のローカルミュージックライブラリ(例えば、コントローラデバイス、ネットワーク対応のパーソナルコンピュータ、又はネットワーク接続ストレージ(NAS))、インターネット(例えば、クラウドベースの音楽サービス)を介してオーディオコンテンツを提供するストリーミングオーディオサービス、あるいは再生デバイス又はネットワークデバイスのライン-イン入力接続を介してメディア再生システムに接続されるオーディオソース、他の可能なシステムであってもよい。
【0091】
ある実施形態では、オーディオコンテンツソースは、図1AのMPS100などのようなメディア再生システムに追加されてもよいし、定期的に取り除かれてもよい。ある例では、1つ又は複数のオーディオコンテンツソースが追加される、取り除かれる、又は更新される度に、オーディオアイテムのインデックス付けが行われてもよい。オーディオアイテムのインデックス付けは、ネットワーク上で共有される全てのフォルダ/ディレクトリ内の識別可能なオーディオアイテムをスキャンすることを含んでもよい。ここで、ネットワークは、メディア再生システム内の再生デバイスによってアクセス可能である。また、オーディオアイテムのインデックス付けは、メタデータ(例えば、タイトル、アーティスト、アルバム、トラックの長さ、その他、など)、および他の関連情報を含むオーディオコンテンツデータベースを作成すること、又は更新すること、を含んでもよい。他の関連情報とは、例えば、見つかったそれぞれの識別可能なオーディオアイテムのURI又はURLを含んでもよい。オーディオコンテンツソースを管理し、且つ維持するための他の例も可能である。
【0092】
e.例示的なネットワークマイクロフォンデバイス
図5は、本開示の態様に従って構成されたNMD503を示す機能ブロック図である。NMD503は、ボイス取得コンポーネント(VCC)560、複数の識別エンジン569、及び少なくとも1つのボイス抽出器572を含み、それぞれがVCC560と動作するように接続される。NMD503はさらに、マイクロフォン222及び上述の少なくとも1つのネットワークインタフェース224を含み、またオーディオ増幅器、スピーカ、ユーザインタフェースなどのその他のコンポーネントも含み得るが、これらは明確性のため図5には示されない。
【0093】
NMD503のマイクロフォン222は、NMD503の環境からVCC560に検出音、S、を提供するように構成される。検出音Sは、1つ又は複数のアナログ又はデジタル信号の形態をとってもよい。例示的な実施形態において、検出音Sは、VCC560に供給されるそれぞれのチャンネル562に関連した複数の信号によって作成されてもよい。
【0094】
各チャンネル562は、特定のマイクロフォン222に対応してもよい。例えば、6個のマイクロフォンを有するNMDは、6個の対応するチャンネルを有してもよい。検出音Sの各チャンネルは、他のチャンネルと特定の類似性を有し得るが、別の面では異なり得て、これは所与のチャンネルに対応するマイクロフォンの、他のチャンネルのマイクロフォンに対する相対的な位置による。例えば、検出音Sの1つ又は複数のチャンネルは、他のチャンネルに比較して、より高いスピーチ対背景ノイズの信号対雑音比(SNR)を有し得る。
【0095】
図5にさらに示されるように、VCC560は、AEC564、空間プロセッサ566、及び1つ又は複数のバッファ568を含む。動作中、AEC564は、検出音Sを受信し、音にフィルタ又はその他の処理をして、エコーを抑制し、及び/又は検出音Sの質を別途向上させる。処理された音は次に空間プロセッサ566に渡される。
【0096】
空間プロセッサ566は通常、検出音Sを分析し、音の大きさ(例えば、デシベル値)、周波数スペクトラム、方向性などの特定の特徴を識別するように構成される。ある一面では、上述のように空間プロセッサ566は、検出音Sの構成チャンネル562内の類似性及び差異に基づいて、検出音S内の周辺ノイズをユーザのスピーチからフィルタする、又は抑制する援助をしてもよい。1つの可能性として、空間プロセッサ566は、スピーチを他の音から区別する韻律(metrics)をモニタしてもよい。そのような韻律は、例えば、背景ノイズに比較したスピーチ音域内のエネルギー及び多くの普通の背景ノイズよりもスピーチ内で通常低い、スピーチ音域内のエントロピー(スペクトラル構造の指標)を含んでもよい。いくつかの実施形態において、空間プロセッサ566は、スピーチの存在可能性を判断するように構成されてもよく、そのような機能の例は、「ノイズ抑制されたスピーチ検出用の線形フィルタ」と題する2018年5月18日付けの米国特許出願第15/984,073号明細書に開示されており、その全体がここで参照され援用される。
【0097】
動作中、1つ又は複数のバッファ568は、検出音Sに対応するデータをキャプチャする。バッファ568の1つ又は複数は、メモリ213の一部でもよいし、メモリ213とは別でもよい(図2A)。より具体的には、1つ又は複数のバッファ568は、上流側のAEC564及び空間プロセッサ566によって処理された検出音データをキャプチャする。
【0098】
概して、検出音データは、マイクロフォン222によって検出された音のデジタル表現、SDS、(すなわち、音データのストリーミング)を形成する。実際は、音データのストリーミングSDSは様々な形態をとり得る。1つの可能性として、音データのストリーミングSDSは、そのそれぞれが1つ又は複数の音サンプルを含み得るフレームから成ってもよい。フレームは、NMD503の識別エンジン569及びボイス抽出器572などの下流側のコンポーネントによるさらなる処理のために1つ又は複数のバッファ568からストリーミングされてもよい(すなわち、読み上げられてもよい)。
【0099】
いくつかの実施形態において、少なくとも1つのバッファ568は、スライディングウィンドウアプローチを使って、検出音データをキャプチャする。そのアプローチにおいては、直近にキャプチャされた検出音データの所与の量(すなわち、所与のウィンドウ)が少なくとも1つのバッファ568に保持され、より古い検出音がウィンドウから外にはずれたとき、上書きされる。例えば、少なくとも1つのバッファ568は、任意の時点で音の標本の20フレーム分を一時的に保持し、最も古いフレームを期限切れ後に捨て、次に新しいフレーム1つをキャプチャし、音の標本の既存の19フレームに加えてもよい。
【0100】
実際は、音データのストリーミングSDSがフレーム群によって作られるとき、フレーム群は様々な特徴を有する様々な形態をとり得る。1つの可能性として、フレーム群は、あるサンプリングレート(例えば、44,100Hz)に基づく特定の解像度(例えば、解像度16ビット)のオーディオフレーム群の形態をとり得る。加えて、又は代わりに、フレーム群はフレーム群が定義する所与の音標本に対応するメタデータなどの情報を含んでもよく、メタデータは例えば、周波数応答特性、パワー入力レベル、SNR、マイクロフォンチャンネル識別、及び/又は所与の音標本のその他の情報などを示す。したがって、いくつかの実施形態において、フレームは、音の一部(例えば、所与の音標本の1つ又は複数のサンプル)、及びその音の一部に関するメタデータを含んでもよい。別の実施形態において、フレームは、音の一部(例えば、所与の音標本の1つ又は複数のサンプル)、又はその音の一部に関するメタデータのみを含んでもよい。
【0101】
いずれにしても、NMD503の下流側のコンポーネントは、音データのストリーミングSDSを処理してもよい。例えば、識別エンジン569は、音データのストリーミングSDS(ストリーミングされた音フレーム群)に1つ又は複数の識別アルゴリズムを適用し、ウェイクワードの候補を検出音S内で見つけるように構成され得る。識別エンジン569は、キーワードスポッタ576、第一のウェイクワードエンジン570a、第二のウェイクワードエンジン570b、及び図7に関して下により詳細に説明されるような任意のその他のエンジン571aを含む。識別エンジン569がウェイクワード候補を見つけたとき、1つ又は複数の識別エンジン569は「ウェイクワードイベント」(「ウェイクワードトリガ」とも呼ばれる)の指示をボイス抽出器572に提供できる。
【0102】
ウェイクワードイベントに応答して(例えば、ウェイクワードイベントを指示する識別エンジン569からの信号に応答して)、ボイス抽出器572は音データのストリーミングSDSを受信してフォーマットする(例えば、パケット化する)ように構成される。例えば、ボイス抽出器572は、音データのストリーミングSDSのフレーム群をメッセージへとパケット化する。ボイス抽出器572は、ボイス入力を含み得るこれらのメッセージ、Mv、をリアルタイム又はほぼリアルタイムでVAS190(図1B)などの遠隔VASにネットワークインタフェース218を介して送信又はストリーミングする。
【0103】
VASは、NMD503から送られたメッセージMvに含まれる音データのストリーミングSDSを処理するように構成される。より具体的には、VASは、音データのストリーミングSDSに基づいて、ボイス入力を識別するように構成される。図6Aを参照して、ボイス入力680は、ウェイクワード部680a及び発声部680bを含んでもよい。ウェイクワード部680aは、ウェイクワードイベントの原因となった検出音に対応する。例えば、ウェイクワード部680aは、識別エンジン569がウェイクワードイベントの指示をボイス抽出器572に提供する原因となった検出音に対応する。発声部680bは、ウェイクワード部680aに続くユーザリクエストを潜在的に含む検出音に対応する。
【0104】
図解例として、図6Bは例示的な第一の音標本を示す。この例において、音標本は図6Aの、発見されたウェイクワード680aに関連する音データのストリーミングSDS(例えば、1つ又は複数のオーディオフレーム群)に対応する。図示されるように、例示的な第一の音標本は、(i)プレロール部分(tとtの間)とも呼ばれ得る、ウェイクワードが発生される寸前、(ii)ウェイクメータ部分(tとtの間)とも呼ばれ得る、ウェイクワードが発生されている間、及び/又は(iii)ポストロールの部分(tとtの間)とも呼ばれ得る、ウェイクワードが発生された後、に再生デバイス102iの環境内に検出された音を含む。その他の音標本も可能である。
【0105】
通常、VASは、はじめにストリーミングSDS内のウェイクワード部680aを処理し、ウェイクワードの存在を認証してもよい。いくつかの例において、VASは、ウェイクワード部680aが誤ったウェイクワード(例えば「アレクシャ」という単語が目標ウェイクワードの際の「エレクション」という単語など)を含んでいると判断する場合がある。そのようなことが起こると、VASは、NMD503(図5)に、NMD503が音データの抽出を止める命令とともに応答を送信してもよく、それにより、ボイス抽出器572は、検出された音データのVASへのさらなるストリーミングを止めてもよい。識別エンジン569(例えば、キーワードスポッタ576)の1つ又は複数は、別のウェイクワード候補が別のウェイクワードイベントにつながるまで、音標本のモニタを再開又は継続してもよい。いくつかの実施形態において、VASはウェイクワード部680aの処理や受信をせず、代わりに、発声部680bのみを処理してもよい。
【0106】
いずれにしても、VASは発声部680bを処理して検出音データ内の任意の単語の存在を識別し、それらの単語から根底の意図を判断する。単語は特定のコマンド及び特定のキーワード684(図6A内で第一のキーワード684a及び第二のキーワード684bとして個々に識別される)に対応してもよい。キーワードは、例えばMPS100の特定のデバイス又はグループを識別するボイス入力680内の単語である。例えば、図示された例において、キーワード684は、音楽が再生されるべき「リビングルーム」及び「ダイニングルーム」などの1つ又は複数のゾーンを識別する1つ又は複数の単語であってもよい。
【0107】
単語の意図を判断するために、VASは通常、VASと関連した1つ又は複数のデータベース(図示せず)、及び/又はMPS100の1つ又は複数のデータベース(図示せず)と通信する。そのようなデータベースは、自然言語処理及び/又はその他の処理のための様々なユーザデータ、アナリティクス、カタログ、及びその他の情報を記憶してもよい。いくつかの実施形態において、そのようなデータベースは、ボイス入力処理に基づいてニューラルネットワークの適応的学習及びフィードバックのためにアップデートされてもよい。図6Aに示されるように、いくつかの場合において、発声部680bは、ユーザによって発生された単語間の検出された休止(スピーチが無い期間)などの追加情報を含んでもよい。休止は、発声部680b内でユーザによって発生された個々のコマンド、キーワード、又はその他の情報を区切ってもよい。
【0108】
特定のコマンドクライテリアに基づいて、コマンド682などのボイス入力内に1つ又は複数のコマンドを識別した結果としてVASが動作してもよい。コマンドクライテリアは、特定のキーワードがボイス入力内に含まれていることに基づいてもよいし、他の可能性も考えられる。加えて、又は代わりに、コマンドのコマンドクライテリアは、1つ又は複数の特定のコマンドの識別とともに、1つ又は複数の制御状態及び/又はゾーン状態変数の識別を含んでもよい。制御状態変数は、例えば音量レベル、1つ又は複数のデバイスに関連するキュー、及びデバイスがキューを再生中か、休止中かなどの再生状態を識別するインジケータを含んでもよい。ゾーン状態変数は、例えばゾーンのグループ化がある場合、いずれのゾーンの再生器がグループ化されているかを識別するインジケータを含んでもよい。
【0109】
ボイス入力を処理した後、VASは、それがボイス入力から判断した意図に基づいて、1つ又は複数の動作を実行する命令とともに応答をMPS100に送信してもよい。例えば、ボイス入力に基づいて、VASはMPS100に1つ又は複数の再生デバイス102で再生を開始するように、1つ又は複数のこれらのデバイスを制御するように(例えば、音量の変更、デバイスのグループ化もしくはグループ解除など)、特定のスマートデバイスのオン/オフ、などを含む動作をするように命令してもよい。上述のように、VASから応答を受信した後、NMD503の1つ又は複数の識別エンジン569は、別のウェイクワード候補を見つけるまで、音データのストリーミングSDSのモニタを再開又は継続してもよい。
【0110】
図5の参照に戻り、複数のVASの実施において、NMD503は、所与のウェイクワードが第一のウェイクワードエンジン570a、第二のウェイクワードエンジン570b、又は追加のエンジン571などの特定のウェイクワードエンジンによって識別されたとき、ボイス抽出器の抽出及び音データのストリーミングSDSの適切なVASへの送信を命令するよう概して構成されるVASセレクタ574(破線で示される)を含んでもよい。そのような実施形態において、NMD503は、それぞれが特定のVASによってサポートされる複数の異なるウェイクワードエンジン及び/又はボイス抽出器を含んでもよい。上の説明と同様に、各ウェイクワードエンジンは、1つ又は複数のバッファ568からの音データのストリーミングSDSを入力として受信し、識別アルゴリズムを適用して適切なVASのウェイクワードトリガを発声させるように構成されてもよい。したがって、1つの例として、第一のウェイクワードエンジン570aは、「Alexa」というウェイクワードを識別し、「Alexa」が発見されるとNMD503にAMAZONのVASを発動させるように構成されてもよい。別の例として、第二のウェイクワードエンジン570bは、「Ok、Google」というウェイクワードを識別し、「Ok、Google」が発見されるとNMD503にGOOGLEのVASを発動させるように構成されてもよい。単一のVASの実施においては、VASセレクタ574は省略されてもよい。
【0111】
追加の、又は代替の実施形態において、NMD503は、NMD503を遠隔VASの補助がなくても動作可能にさせる他のボイス入力識別エンジン571(破線で示される)を含んでもよい。例えば、そのようなエンジンは、検出音の中に特定のコマンド(例えば、「再生して」、「休止して」、「オンにして」など)及び/又は所与の再生デバイスに割り当てられた固有の名称(例えば、「ブックケース」、「パティオ」、「オフィス」など)などの特定のキーワードやフレーズを識別してもよい。1つ又は複数のこれらのコマンド、キーワード、及び/又はフレーズを識別することに応じて、NMD503はオーディオ処理コンポーネント216(図2A)に1つ又は複数の動作を実行させる信号(図5に示されない)を通信してもよい。例えば、ユーザが「ヘイ、ソノズ。オフィスの音楽を止めて。」と言うと、NMD503はオフィス再生デバイス102nに直接又は1つ又は複数のMPS100の他のデバイスを介して間接的に信号を通信してもよい。それにより、オフィスデバイス102nにオーディオ再生を停止させる。遠隔VASからの補助の必要を低減する又は排除することは、ボイス入力を遠隔で処理する場合通常生じる待ち時間を低減できる場合がある。場合によっては、採用される識別アルゴリズムは、前に発話されるウェイクワード無しで発生されるコマンドを識別するように構成されてもよい。例えば、上の例において、NMD503は、ユーザがはじめに「ヘイ、ソノズ」又はその他のウェイクワードを発声することなく、オフィスの音楽を停止させるイベントをトリガする識別アルゴリズムを採用してもよい。
【0112】
III.ウェイクワードの二段階検出の例示的なシステム及び方法
図5に示すように、NMD503の識別エンジン569は、キーワードスポッタ576を第一及び第二のウェイクワードエンジン570a及び570b、さらに上述のその他のボイス入力識別エンジン571の上流側に含む。動作中、音データのストリーミングSDSは、VCC560からキーワードスポッタ576へ伝達される。キーワードスポッタ576は、音データのストリーミングSDSを分析し、ウェイクワード又はコマンドなどのキーワードを検出する。以下でより詳細に説明されるように、いくつかの実施形態において、キーワードスポッタ576は、音データのストリーミングSDS内のキーワード候補を識別する。音データのストリーミングSDS内に1つ又は複数のキーワード又はキーワード候補が見つかると、キーワードスポッタ576はまた適切な出力を選択し、追加の処理のために音データのストリーミングSDSを提供する。図示されるように、キーワードスポッタ576は音データのストリーミングSDSを第一のウェイクワードエンジン570a、第二のウェイクワードエンジン570b、及び/又はローカルデバイスの機能用に構成されたその他のエンジン571に伝達可能である。いくつかの実施形態において、出力先はキーワードスポッタ576を介して音データのストリーミングSDS内で発見されたキーワードに基づいて判断される。
【0113】
いくつかの実施形態において、キーワードスポッタ576は音データのストリーミングSDSに第一のアルゴリズムを実行可能であり、ボイス入力内の予備の又は候補となるウェイクワードを識別する。この第一のアルゴリズムは第一及び/又は第二のウェイクワードエンジン570a及び570bによって使われる下流側のアルゴリズムよりも、演算の複雑さがより小さく、及び/又はメモリ消費量がより小さい可能性がある。いくつかの実施形態において、第一のアルゴリズムはボイス入力が「Alexa」、「Ok、Google」、及び「Hey、Siri」などの可能性のある複数のウェイクワードの中から1つのウェイクワードを含むか否かを判断することに使われる。
【0114】
いくつかの実施形態において、キーワードスポッタ576は、確率スコア又はレンジを音データのストリーミングSDS内のウェイクワード候補に割り当てるように構成される。例えば、第一のアルゴリズムは、ウェイクワード「Ok、Google」が音データのストリーミングSDS内に検出されたことに80%の確率があると示し得る。その場合、「Ok、Google」が候補の又は予備のウェイクワードとして識別され得る。いくつかの実施形態において、識別されたウェイクワード候補は、特定の最低確率スコア閾値を要する。例えば、60%以上の確率で識別されたウェイクワードがウェイクワード候補として識別され、60%以下の確率で識別されたウェイクワードはウェイクワード候補として識別されなくてもよい。異なる実施形態において、閾値は様々であり得て、例えば、50%以上、60%以上、70%以上、80%以上、又は90%以上の確率などである。いくつかの実施形態において、単一の音データのストリーミングSDS内で2つの異なるウェイクワードにそれぞれ確率スコアが割り当てられ得て、それぞれがウェイクワード候補として識別される。
【0115】
キーワードスポッタ576によって採用された第一のアルゴリズムは、現在知られたもの、今後開発されるもの、又はそれらから派生したものなどの様々なキーワードスポッティングアルゴリズムを含むことができる。いくつかの実施形態において、第一のアルゴリズムはキーワードスポッティングに、ディープニューラルネットワーク(DNN)、畳み込みニューラルネットワーク(CNN)、又は回帰型ニューラルネットワーク(RNN)などのニューラルネットワークを使って、大量のキーワード特定トレーニングデータに基づいてキーワードをモデルする。いくつかの実施形態において、キーワードスポッタ576によって利用されたニューラルネットワークは、ニューラルネットワークの演算の複雑さ及び/又はメモリ消費量の著しい低減を達成するために圧縮されたものである。これにより、過大な電力又はメモリの消費がなくニューラルネットワークをローカルのNMD又は再生デバイスに記憶させることが可能になる。ウェイクワード検出のニューラルネットワークの圧縮に関するさらなる詳細は、図8~10に関して以下で説明される。
【0116】
キーワードスポッタ576を介したウェイクワードの予備的な検出に基づいて、音データのストリーミングSDSは、第一のウェイクワードエンジン570a、又は第二のウェイクワードエンジン570bなどの、適切なウェイクワードエンジンに伝達され得る、又はボイス入力は、ローカルデバイスの機能用に構成された別のエンジン571に伝達され得る。いくつかの実施形態において、第一及び/又は第二のウェイクワードエンジン570a及び570bは、異なるボイスアシスタントサービスと関連し得る。例えば、第一のウェイクワードエンジン570aは、AMAZONのボイスアシスタントサービスと関連し得て、第二のウェイクワードエンジン570bは、GOOGLEのボイスアシスタントサービスと関連し得る。さらに、ここでは示されない、例えばAPPLEボイスアシスタントサービスと関連した第三のウェイクワードエンジンなどの別のウェイクワードエンジンが含まれてもよい。これらのウェイクワードエンジンそれぞれは、キーワードスポッタ576による判断に応じて使用可能に(例えば、パワーアップ)されたり、使用不可能に(例えば、パワーダウン)されたりしてもよい。その結果、特定のウェイクワードエンジンはキーワードスポッタ576によって選択されたときのみに動作可能となり、起動されてもよい。
【0117】
ウェイクワードエンジン570a及び570bのそれぞれは、キーワードスポッタ576から受信した音データのストリーミングSDSを分析し、確認されたウェイクワードを検出するように構成される。確認されたウェイクワードは、キーワードスポッタ576によって既に識別されたものと同じウェイクワードであり得る。いくつかの実施形態において、第一又は第二のウェイクワードエンジン570a、又は570b(いずれが選択されるかに依存して)が、より高い正確さを有し、したがって検出されたウェイクワードの信頼性がより高い。確認されたウェイクワードを検出するために、第一及び第二のウェイクワードエンジン570a、及び570bは、演算負荷がより高いアルゴリズムを使い得る。一例において、キーワードスポッタ576は、「Alexa」というキーワード候補を識別し、続いて、AMAZONボイスサービスと関連した第一のウェイクワードエンジン570aをボイス入力のさらなる処理のために選択する。次に、第一のウェイクワードエンジン570aはボイス入力を分析して、ボイス入力内の「Alexa」というウェイクワードの存在を確認又は否定する。ウェイクワードが確認された場合、NMD503は、音データのストリーミングSDS(例えば、図6Aのボイス発声部680b)の追加のデータを適切なボイスアシスタントサービスに上述のようなさらなる処理のために伝達可能である。ウェイクワードが否定された場合、NMD503は、その特定の音データのストリーミングSDSに関してはそれ以上の動作をしないかもしれず、又はNMD503は、予備的なウェイクワードは第一のウェイクワードエンジン570aによって否定されたことを示す警報又はその他の出力を提供してもよい。
【0118】
上述のとおり、様々なウェイクワードエンジン570a及び570bは、それぞれ異なるボイスサービスに関連し得る。そのようなウェイクワードエンジンは、ボイス入力内の確認されたウェイクワードの識別に、現在知られたもの、今後開発されるもの、又はそれらから派生したものなどの異なるアルゴリズムを利用してもよい。そのようなアルゴリズムの例は、以下のものを含むが、それらに限定されない。それらは、(i)キャプチャされたオーディオのスライディングタイムインターバル内の特徴がキーワードモデルと比較されるスライディングウィンドウモデル、(ii)隠れマルコフモデル(Hidden Markov Model:HMM)が各キーワード及びキーワード以外のワードに構築され、キーワード以外のワードが、キーワードスピーチから、キーワード以外のスピーチを区別する補助に使われるガーベージモデル、(iii)入力スピーチが所定のキーワードが検索される格子(lattices)にデコードされる大語彙連続音声認識(Large Vocabulary Continuous Speech Recognition:LVCSR)の利用、及び(iv)大量のキーワード特定トレーニングデータに基づいてキーワードをモデルするための、ディープニューラルネットワーク(DNN)、畳み込みニューラルネットワーク(CNN)、又は回帰型ニューラルネットワーク(RNN)などのニューラルネットワークの利用、である。
【0119】
上述のとおり、いくつかの実施形態において、キーワードスポッタ576は、音データのストリーミングSDSを第一及び/又は第二のウェイクワードエンジン570a、及び570bに伝達する代わりに、又はそれに加えて、音データのストリーミングSDSを別のエンジン571に伝達可能である。キーワードスポッタ576が音データのストリーミングSDS内にローカルデバイスコマンドなどのキーワードを識別した場合、キーワードスポッタ576はこの入力をそのコマンドの実行のために別のエンジン571に伝達可能である。一例として、キーワードスポッタ576が「音量を上げて」というキーワードを検出した場合、キーワードスポッタ576は音データのストリーミングSDSを別のエンジン571に伝達してもよい。様々な実施形態において、別のエンジン571は、再生音量の変更、トラック制御(休止、スキップ、リピートなど)、デバイスのグループ化又はグループ解除、マイクロフォンの停止、又はその他のあらゆるローカルデバイス機能などの多くの異なる機能を実行するコンポーネントを含み得る。いくつかの実施形態において、別のエンジン571は音データのストリーミングSDSを受信した特定のNMDにおける機能の実行に限定される。別の実施形態において、別のエンジン571は、音データのストリーミングSDSを受信したNMDと通信している他の再生デバイス又はNMDにおいて機能を実行させ得る。
【0120】
a.例示的なウェイクワードの二段階検出
上述のとおり、いくつかの例において、NMDは受信されたオーディオをモニタして分析し、受信されたオーディオ内に、いずれかのウェイクワードが存在するか否かを判断するように構成される。図7は、受信されたオーディオ内にいずれかのウェイクワードが存在するか否かをNMDが判断する方法700の例示的な実施形態を示す。方法700は、ここで開示及び/又は説明されるいかなるNMD、又は現在知られた又は今後開発されるいかなるにおいても実行され得る。
【0121】
方法700の様々な実施形態は、ブロック702から718で示される、1つ又は複数の操作、機能、及び動作を含む。ブロックは順序どおりに示されるが、ブロックはまた並行して、及び/又はここで開示及び説明される順序とは異なる順序で実行されてもよい。また、様々なブロックは、望む実施形態に基づいて、組み合わせられて少数のブロックにされる、追加されて多数のブロックにされる、及び/又は削除されてもよい。
【0122】
方法700は、1つ又は複数のマイクロフォンを介して検出された音データをNMDがキャプチャすることを含むブロック702から開始される。キャプチャされた音データはNMDの環境からの音データを含み、いくつかの例においては、図6Aに示されるボイス入力680などのボイス入力を含む。
【0123】
ブロック704において、方法700は、NMDが第一のアルゴリズムを使って音データ内のウェイクワード候補を識別することを含む。ウェイクワード候補は、可能性のある複数のウェイクワードの中からの1つであり得て、いくつかの例においては、複数のウェイクワードの各ウェイクワードは複数のボイスサービスのうちの各ボイスサービスに対応する。いくつかの実施形態において、このことは、NMDが、図5に関連して上述したキーワードスポッタ576に、ウェイクワード候補を検出するためにウェイクワード検出アルゴリズムを利用させることを含む。加えて、いくつかの実施形態において、複数のウェイクワードは、(i)AMAZONボイスサービスに対応する「Alexa」というウェイクワード、(ii)GOOGLEボイスサービスに対応する「Ok、Google」というウェイクワード、又は(iii)APPLEボイスサービスに対応する「Hey、Siri」というウェイクワードのうちの1つ又は複数を含む。したがって、いくつかの例において、第一のウェイクワード検出工程を実行するための第一のアルゴリズムを利用することは、NMDが第一のアルゴリズムを使ってキャプチャされた音データが、「Alexa」、「Ok、Google」、及び「Hey、Siri」などの複数のウェイクワードを含むか否かを判断することを含む。さらに、いくつかの例において、NMDが第一のアルゴリズムを並行して使い、キャプチャされた音データが、複数のウェイクワードを含むか否かを並行して判断する。
【0124】
加えて、いくつかの実施形態において、複数のウェイクワードは、(i)AMAZONボイスサービスに対応する「Alexa」というウェイクワード、(ii)GOOGLEボイスサービスに対応する「Ok、Google」というウェイクワード、又は(iii)APPLEボイスサービスに対応する「Hey、Siri」というウェイクワードのうちの1つ又は複数を含む。したがって、いくつかの例において、第一のウェイクワード検出工程を実行するための第一のアルゴリズムを利用することは、NMDが第一のアルゴリズムを使って取得された音データが、「Alexa」、「Ok、Google」、及び「Hey、Siri」などの複数のウェイクワードを含むか否かを判断することを含む。さらに、いくつかの例において、NMDが第一のアルゴリズムを並行して使い、取得された音データが、複数のウェイクワードを含むか否かを並行して判断する。
【0125】
いくつかの実施形態において、ウェイクワード候補を識別することは、確率スコア又はレンジを1つ又は複数のウェイクワードに割り当てることを含む。例えば、第一のアルゴリズムは、ウェイクワード「Alexa」がボイス入力内に検出されたことに70%の確率があると示し得て、その場合、「Alexa」がウェイクワード候補としてみなされ得る。いくつかの実施形態において、2つの異なるウェイクワードにそれぞれ確率スコア又はレンジが割り当てられ得て、それぞれがウェイクワード候補として識別される。
【0126】
上述のとおり、ウェイクワード候補を識別するためにブロック704で採用された第一のアルゴリズムは、現在知られたもの、今後開発されるもの、又はそれらから派生したものなどの様々なキーワードスポッティングアルゴリズムを含み得る。いくつかの実施形態において、第一のアルゴリズムはキーワードスポッティングに、大量の特定のキーワードトレーニングデータに基づいてキーワードをモデルするための、ディープニューラルネットワーク(DNN)、畳み込みニューラルネットワーク(CNN)、又は回帰型ニューラルネットワーク(RNN)などのニューラルネットワークを使用する。いくつかの実施形態において、ブロック704において利用されたニューラルネットワークは、ニューラルネットワークの演算の複雑さ及び/又はメモリ消費量の著しい低減を達成するために圧縮されたものである。これにより、過大な電力又はメモリの消費がなくニューラルネットワークをローカルのNMD又は再生デバイスに記憶させることが可能になる。ウェイクワード検出のニューラルネットワークの圧縮に関するさらなる詳細は、図8~10に関して下に説明される。
【0127】
ブロック706において、方法700は、いずれかのウェイクワード候補がブロック704において音データの中に検出されたか否かをNMDが判断することを含む。NMDが、キャプチャされた音データの中に複数のウェイクワードのうちのいずれも候補として識別しなかった場合、方法700は、ブロック702に戻り、NMDは音データ内のウェイクワード候補を識別するために、追加の音データをキャプチャし続け、その追加の音データを第一のアルゴリズムを使って処理し続ける。代わりに、NMDが第一のアルゴリズムを使って特定のウェイクワードを識別した場合、方法700は、ブロック708に進み、NMDはキャプチャされた音データ内にウェイクワード候補が存在するか否かを確認しようとする。
【0128】
音データ内のウェイクワード候補の識別に応答して、NMDは、ブロック708で第一のウェイクワードエンジン、又はブロック709で第二のウェイクワードエンジンを選択して起動させる。いくつかの実施形態において、第一のウェイクワードエンジンを起動させることは、NMDがパワーアップする(例えば、低いパワー又はゼロパワーの状態から、高いパワーの状態へ)又はその他の方法で、特定のウェイクワードエンジンコンポーネントがキャプチャされた音データの分析を行えるようにする。
【0129】
第一のウェイクワードエンジンと第二のウェイクワードエンジンとの間の選択は、ブロック704において音データ内に検出された特定のウェイクワード候補に基づいて行われ得る。例えば、第一のウェイクワードエンジンは第一のVASに関連し得て、第二のウェイクワードエンジンは第二のVASに関連し得る。ウェイクワード候補が第一のVASと関連する場合、ブロック708において第一のウェイクワードエンジンが選択され、起動される。逆にウェイクワード候補が第二のVASと関連する場合、ブロック709において第二のウェイクワードエンジンが選択され、起動される。
【0130】
一例において、第一のウェイクワードエンジンは「Alexa」というウェイクワードを検出するように構成され、ブロック706において、予備的なウェイクワード検出工程が「Alexa」というワードをウェイクワード候補として検出したとNMDが判断した場合、それに応じてNMDは、ブロック708において第一のウェイクワードエンジンを起動させ、ブロック710において、音データ内の「Alexa」というウェイクワード候補の存在を確認又は否定する。同じ又は別の例において、第二のウェイクワードエンジンは「Ok、Google」というウェイクワードを検出するように構成され、ブロック704において識別された予備的なウェイクワードが「Ok、Google」であると、ブロック706においてNMDが判断した場合、それに応じてNMDは、ブロック709において第二のウェイクワードエンジンを起動させ、ブロック711において、音データ内の「Ok、Google」の存在を確認又は否定する。いくつかの実施形態において、方法700は、追加のウェイクワード検出モジュールを使って追加のウェイクワード検出工程を実行することを含む。例えば、いくつかの実施形態において、方法700は、NMDが、検出するように構成される各ウェイクワード用の、それぞれのウェイクワード検出モジュールを使うことを含む。
【0131】
ブロック708において、方法700は、NMDが、第一のウェイクワードエンジンに音データを分析させ、音データ内のウェイクワード候補の存在を確認又は否定することを含む。確認された場合、NMDは、確認されたウェイクワードを出力できる。確認されたウェイクワードは、ブロック704において前に予備的に識別されたものと同じウェイクワードであり得るが、第一のウェイクワードエンジンはより高い正確度を有し得ると予測されるため、検出されたウェイクワードもより高い信頼性を有し得る。いくつかの実施形態において、第一のウェイクワードエンジンは、確認されたウェイクワードの検出のために、ウェイクワード候補を識別するために使用される第一のアルゴリズムよりも演算負荷がより高いアルゴリズムを使い得る。一例において、第一のアルゴリズムがブロック704において「Alexa」というウェイクワードを候補として識別し、ブロック708において、AMAZONボイスサービスに関連するウェイクワードエンジンが選択される。続いてブロック710においてAMAZONウェイクワードエンジンは、音データを分析して、音データ内の「Alexa」の存在を確認又は否定する。AMAZONウェイクワードエンジンが「Alexa」というウェイクワードを識別した場合、それは確認されたウェイクワードとして識別される。別の例において、第一のアルゴリズムがブロック704において「Ok、Google」というウェイクワードを候補として識別し、ブロック708において、GOOGLEボイスサービスに関連するウェイクワードエンジンが選択される。続いてブロック710においてGOOGLEウェイクワードエンジンは、音データを分析して、音データ内の「Ok、Google」の存在を確認又は否定する。
【0132】
予備的なウェイクワード検出及び下流側のウェイクワードエンジンに関連して上述されたアルゴリズムは、現在知られたもの、今後開発されるもの、又はそれらから派生したものなどの様々なキーワードスポッティングアルゴリズムを含んでもよい。キーワードスポッティングアルゴリズムの例は、以下のものを含むが、それらに限定されない。それらは、(i)キャプチャされたオーディオのスライディングタイムインターバル内の特徴がキーワードモデルと比較されるスライディングウィンドウモデル、(ii)隠れマルコフモデル(HMM)が各キーワード及びキーワード以外のワードに構築され、キーワード以外のワードが、キーワードスピーチから、キーワード以外のスピーチを区別する補助に使われるガーベージモデル、(iii)入力スピーチが所定のキーワードが検索される格子(lattices)にデコードされる大語彙連続音声認識(LVCSR)の利用、及び(iv)大量の特定のキーワードトレーニングデータに基づいてキーワードをモデルするための、ディープニューラルネットワーク(DNN)、畳み込みニューラルネットワーク(CNN)、又は回帰型ニューラルネットワーク(RNN)などのニューラルネットワークの利用、である。ニューラルネットワークの使用に関するさらなる詳細は、図8~10に関して下に説明される。
【0133】
ブロック712において、方法700は、確認されたウェイクワードがキャプチャされた音データの中で検出されたか否かを判断することを含む。確認されたウェイクワードがブロック710又はブロック711において検出された場合、方法700は、ブロック714に進む。そして、ブロック710又はブロック711において確認されたウェイクワードが検出されなかった(すなわち、ブロック710又はブロック711において予備的なウェイクワードが否定された)場合、方法700は、ブロック716に進む。
【0134】
ブロック714において、方法700は、NMDが、そのネットワークインタフェースを介して、特定のウェイクワードに対応する各ボイスサービスにキャプチャされた音データを処理させることを含む。いくつかの実施形態において、これははじめに、複数のボイスサービスの各ボイスサービスのいずれが特定のウェイクワードに対応するかを識別することを含み、その例は、米国特許出願第15/229,868号明細書に開示されており、その全体がここで参照され援用される。
【0135】
いくつかの実施形態において、キャプチャされた音データを各ボイスサービスに処理させることは、NMDによって、音データを示すデータ及び音データを示すデータを処理するためのコマンドもしくはクエリを、ネットワークインタフェースを介して、各ボイスサービスの1つ又は複数のサーバに送信することを含む。コマンドもしくはクエリは各ボイスサービスにボイスコマンドを処理させてもよく、コマンドもしくはクエリを各ボイスサービスに(例えば、ボイスサービスのAPIに)適合するように各ボイスサービスに応じて変更してもよい。
【0136】
上述のとおり、いくつかの例において、キャプチャされたオーディオは、ボイス入力680を含み、それはウェイクワード680aを示す第一の部分、及びボイス発声680bを示す第二の部分を含み、コマンド682などの1つ又は複数のコマンドを含み得る。場合によっては、NMDは、少なくともボイス入力の第二の部分(ボイス発声680bを代表する部分)を代表するデータのみを送信してもよい。第一の部分を除くことにより、NMDは、ボイス入力680を送信するために必要な帯域幅を低減可能であり、ウェイクワード680aによるボイス入力680の処理エラーの可能性を回避できることやその他の利点がある。代わりに、NMDは、ボイス入力680の両方の部分、又はボイス入力680のその他の部分を示すデータを送信してもよい。
【0137】
いくつかの実施形態において、キャプチャされた音データを各ボイスサービスに処理させることは、各ボイスサービスに対応するウェイクワード検出アルゴリズムにNMDによってクエリすることを含む。上述のとおり、ボイスサービスへのクエリはボイスサービスの各APIを、NMD上にローカルで、又はネットワークインタフェースを使って遠隔で発動させることを含んでもよい。各ボイスサービスのウェイクワード検出アルゴリズムへのクエリに応答して、NMDは、そのボイスサービスに対応するウェイクワードをクエリ内で提出されたキャプチャされた音データが含むか否かを示す応答を受信する。特定のボイスサービスのウェイクワード検出アルゴリズムが、キャプチャされた音データが特定のボイスサービスに対応する特定のウェイクワードを含むことを検出するとき、NMDは、その特定のボイスサービスに音データを、例えばキャプチャされた音データ内のボイスコマンドを識別するなどのさらなる処理をさせてもよい。
【0138】
キャプチャされた音データを各ボイスサービスに処理させた後、NMDは、処理の結果を受信する。例えば、検出された音データが検索クエリを示す場合、NMDは、検索結果を受信してもよい。別の例として、検出された音データがデバイスへのコマンド(例えば、再生デバイスへのメディア再生コマンド)を示す場合、NMDは、コマンド及びおそらくコマンドと関連する追加のデータ(例えば、コマンドと関連するメディアのソース)を受信してもよい。NMDは、コマンドのタイプ及び受信した結果に基づいて適切であるように、これらの結果を出力してもよい。
【0139】
代わりに、検出された音データがNMD以外の別のデバイスに向けたボイスコマンドを含む場合、結果はNMDではなく、そのデバイスに向けられているかもしれない。例えば、図1Aを参照して、キッチン101hのNMD103fは、ダイニングルーム101gの再生デバイス102lに向けたボイス入力(例えば、再生デバイス102lのメディア再生を調整するため)を受信し得る。そのような実施形態において、NMD103fはボイス入力の処理を容易にするが、処理(例えば、メディア再生を調整するコマンド)の結果は、再生デバイス102lに送られ得る。代わりに、ボイスサービスは結果をNMD103fに送ってもよく、NMD103fは、再生デバイス102lにコマンドをリレーするなどの方法で再生デバイス102lにコマンドを実行させてもよい。
【0140】
方法700のブロック716において、NMDは、キャプチャされた音データを処理し、キャプチャされた音データが特定のウェイクワードを含まないという決定に応答して確認されたウェイクワードを検出することを停止する。いくつかの実施形態において、キャプチャされた音データを処理し、特定のウェイクワードを検出することを停止することは、NMDがさらにキャプチャされた音データを処理し、キャプチャされた音データが特定のウェイクワードとは異なるウェイクワードを含むか否かを判断することを含む。例えば、複数のウェイクワードの、それぞれのウェイクワードについて、NMDは1つ又は複数のアルゴリズムを使用して、キャプチャされた音データがそれぞれのウェイクワードを含むか否かを判断することが可能である。
【0141】
加えて、又は代わりに、いくつかの実施形態において、キャプチャされた音データを処理して、特定のウェイクワードを検出することを停止することは、NMDがキャプチャされた音データの処理を完全に停止することを含まない。代わりに、NMDは、例えば追加の音データをキャプチャし、追加のキャプチャされた音データに対して第一及び第二のウェイクワード検出工程を実行するなどによって方法700を繰り返すことによりウェイクワードの聞きわけを続ける。
【0142】
いずれにしても、ブロック718において、方法700は、NMDが選択されたウェイクワードエンジン(すなわち、いずれのエンジンが前に選択され起動されたかによって、第一及び/又は第二のウェイクワードエンジン)を停止させることを含む。したがって、いくつかの例において、方法700は、ボイスサービスに特定のウェイクワードをブロック714において処理させた後、選択されたウェイクワードエンジンをNMDが停止させることを含む。上の説明に関連して、いくつかの実施形態において、選択されたウェイクワードエンジンを停止することは、NMDが、パワーダウンさせるなどの方法によってウェイクワードコンポーネント570a及び/又は570bが取得された音データの分析をできないようにすることを含む。
【0143】
b.ウェイクワード検出のためにニューラルネットワークを圧縮する例
図8は、キーワードスポッティング及び選択のために圧縮ニューラルネットワークを生成するシステム800の機能ブロック図である。図8に示されるように、事前学習済み(pretrained)ニューラルネットワーク802はキーワード選択及び圧縮モジュール804に提供される。事前学習済みニューラルネットワーク802は、例えば、大量の特定のキーワードトレーニングデータに基づいて1つ又は複数の選択されたキーワードをモデル化した、ディープニューラルネットワーク(DNN)、畳み込みニューラルネットワーク(CNN)、又は回帰型ニューラルネットワーク(RNN)などのニューラルネットワークであり得る。キーワード選択及び圧縮モジュール804は、事前学習済みニューラルネットワークを最適化して圧縮し、例えばキーワード検出の正確度を著しく下げることなく演算負荷が小さい、及び/又はメモリ消費量が小さいため、事前学習済みニューラルネットワーク入力802よりも優れた性能の圧縮ニューラルネットワークを提供できる。
【0144】
以下でより詳細に説明されるように、キーワード選択及び圧縮モジュール804は、事前学習済みニューラルネットワーク802を、事前学習済みニューラルネットワークの重み(weight)を、例えば混合ガウスモデル(GMM:Gaussian mixture model)を重みにフィット(fit)させてΚクラスタに圧縮することにより、再学習及び圧縮することができる。この技術はソフト重み共有(weight sharing)として知られ、ニューラルネットワークの著しい圧縮ができる結果となり得る。GMMのコンポーネントを、事前学習済みニューラルネットワークの重みにそってフィットさせることにより、重みは、いくつかのクラスタコンポーネントの周りに密に集中する傾向があり、そのときクラスタ中心はネットワークに高い予測精度(predictive accuracy)を与えるように自身を最適化する。これにより、ニューラルネットワークは、事前学習済みニューラルネットワークの全ての重みではなく、Κクラスタ平均値(means)をエンコードするのみでよいから、高い圧縮の結果となる。加えて、1つのクラスタは、GMM内で高い初期応答性(high initial responsibility)と共にゼロで固定(fixed at 0)されてもよく、図10に関して以下で説明されるようにスパース表現が可能となる。
【0145】
キーワード選択及び圧縮モジュール804の初期化モジュール806において、GMMのコンポーネントは初期化される。例えば、所定数の非固定コンポーネントが事前学習済みニューラルネットワーク802の重みのレンジに均一に分布され得る。分散(variances)は、各ガウシアン(Gaussian)がそれぞれの領域で著しい確率質量(probability mass)を有するように初期化されてもよい。いくつかの実施形態において、ニューラルネットワークの重みはまた、事前学習に基づいて初期化モジュール806を介して初期化されてもよい。いくつかの実施形態において、GMMは17(=2+1)個のコンポーネントで初期化され得て、重み及び平均の学習レート、対数分散(log-variances)、対数混合割合(log-mixing proportions)は全て別々に初期化され得る。
【0146】
GMMコンポーネントの初期化に続き、合同最適化(joint optimization)モジュール808は、GMMを使って事前学習済みニューラルネットワークモデルを再学習(retrain)させる。合同最適化モジュール808は、初期化されたGMMを事前学習済みニューラルネットワークの重みの上にフィットさせ、ニューラルネットワークの重みをGMMのクラスタの周りにクラスタ化させるために最適化アルゴリズムを実行する。例えば、いくつかの実施形態において、次の数式が勾配降下法(gradient descent)を介して最適化され得る。
【0147】
【数1】
【0148】
ここで、「w」はニューラルネットワークモデルパラメータ(又は、重み)、「μ、σ、π」はGMMの平均、分散、及び重み、そして「X」と「T」はニューラルネットワークの音響フィーチャ入力(acoustic feature input)及びクラス分けターゲットである。損失(loss)はニューラルネットワークの項(term)「下記数2参照」、及びGMMの項「下記数3参照」、に分解(decompose)し、それらは重みファクタ「τ」によりバランスされる。
【0149】
【数2】
【0150】
【数3】
【0151】
いくつかの例において、重みファクタ「τ」は0.005に設定され得る。スパース性(sparsity)を奨励し、次の段階での圧縮を向上させるために、GMMの1つのコンポーネントは固定された平均「μj=0=0」、及び混合重み(mixture weight)「πj=0=0.999」を有し得る。残りのコンポーネントは学習される。代わりに、次の段階は、「πj=0」を学習させることもできるが、それをベータ分布(Beta distribution)などの事前分布(hyperprior)を使って制限することもできる。連続的な反復の後、機能は収束し、ニューラルネットワークの重みはGMMのクラスタの周りに密にクラスタ化される。
【0152】
合同最適化モジュール808において、勾配降下法の計算は、選択された学習レート及びパラメータに非常に敏感であり得る。学習レートが高すぎる場合、GMMが速く崩壊(collapse)する場合があり、ニューラルネットワークの重みがコンポーネント外に残り、クラスタ化が失敗し得る。逆に、学習レートが低すぎる場合、混合の収束が遅すぎる。いくつかの実施形態において、学習レートは約5x10-4に設定され得る。特定の実施形態において、逆ガンマ事前分布(inverse-Gamma hyperprior)が混合分散(mixture variances)に適用され得て、混合コンポーネントが速く崩壊することを防ぐことができる。
【0153】
キーワード選択及び圧縮モジュール804の最終段階として、量子化(quantization)モジュール571は、モデルをさらに圧縮する。例えば、ニューラルネットワークが合同最適化モジュール808を介して再学習した後、各重みは、その最大の応答性を担うコンポーネントの平均で設定され得る。この工程は量子化と呼ばれる。しかし、量子化の前に、冗長コンポーネント(redundant component)が除去されてもよい。一例において、カルバック・ライブラー(KL)情報量(Kullback-Leibler divergence)が、閾値以下のKL情報量について全てのコンポーネント間で計算され得て、2つのコンポーネントが併合されて単一コンポーネントを形成し得る。量子化後、その結果のニューラルネットワークは、事前学習済みニューラルネットワ802と比較して、重み全体にわたって著しく少数の固有値(distinct value)を有する。
【0154】
キーワードスポッタ576として出力される前に、キーワード選択及び圧縮モジュール804の出力は、次に、後処理812(例えば、追加のフィルタ、フォーマットなど)の対象とさせられてもよい。いくつかの実施形態において、図10に関連して以下に示されるように、後処理は圧縮疎行列(CSR)表現を含み得る。図5及び図7に関連して上述のとおり、キーワードスポッタ576は、例えば取得された音データに予備的なウェイクワード検出分析を実行するなど、ウェイクワード検出を実行するために使われ得る。この圧縮ニューラルネットワークの出力に基づいて、例えば、特定のVAS又は特定のウェイクワードのセットに関連したウェイクワードエンジンを使って、第二のウェイクワード検出工程が実行され得る。
【0155】
ソフト重み共有ニューラルネットワーク、量子化、圧縮疎行列表現、及びKL情報量の使用の追加の詳細及び例は、”https://arxiv.org/abs/1702.04008v2”において入手できるUlrichらによる「Soft Weight-Sharing for Newral Network Compression」、”https://arxiv.org/abs/1510.00149v5”において入手できるHanらによる「Deep Compression:Compressing Deep Neural Network with Pruning、Trained Quantization and Huffman Coding」、及び”https://arxiv.org/abs/1506.02626v3”において入手できる「Learning both Weights and Connections for Efficient Neural Network」にあり、これらはそれぞれその全体がここに参照され援用される。上述の参考文献において開示される技術は、いずれも上述のキーワード選択及び圧縮モジュール804及び/又は後処理812に組み入れられてもよい。
【0156】
図9は、ソフト重み共有を介した圧縮の前及び後におけるニューラルネットワーク重みの対数重み分布を示す。図9の上のヒストグラムは、事前学習済みニューラルネットワーク(例えば、図8の事前学習済みニューラルネットワーク802)の重み「w」の分布を示す。右側には、同じ分布が、ソフト重み共有の再学習が実行された後(例えば、キーワードスポッタ576の圧縮ニューラルネットワークに反映されるとおり)に示される。各重み値の変化は、散布図によって示される。示されるとおり、重みは離散値(discrete values)の周りに集まって(drawn together)クラスタ化し、ソフト重み共有ニューラルネットワークにおいては事前学習済みニューラルネットワと比較して、重み全体にわたって固有値の数は大きく減る。加えて、重みはゼロにおいて最も集中し、したがって結果としてのニューラルネットワークではゼロ以外の重みの数は最少化される。これにより、図10に関連して下に説明されるように、圧縮疎行列(CSR)表現を使ったさらに大きい圧縮が可能となる。CSR(又はその他の重みの圧縮方法)と共にソフト重み共有によって達成される、重み全般にわたる固有値の低減は、ニューラルネットワークの正確さをあまり下げることなく、そのサイズ及び演算の複雑さを著しく低減させる。
【0157】
図10は、ニューラルネットワークモデルの圧縮疎行列(CSR)表現の例を示す。重み共有クラスタすることに加え、ニューラルネットワークモデルはスパース表現を使ってさらに圧縮され得る。一例は、マトリックスMが3個の一次元アレイによって表現される標準CSR表現である。特に、図10を参照して、マトリックスDが3個の一次元アレイA、IA、及びJAによって表現され得る。アレイAは、マトリックスDのゼロ以外のコンポーネント(5、8、3、及び6)を使って得られる。アレイIAは、再帰的にマトリックスDの各列のゼロ以外コンポーネントの個数から、ゼロを第一の値として追加のうえで得られる。マトリックスDにおいて、各列のゼロ以外のコンポーネントの個数は、それぞれ0、2、1、及び1である。これらを再帰的に加えると0、2(0+2)、3(2+1)、及び4(3+1)の値が提供され、アレイIAに反映されている。最後にアレイJAはマトリックスDのゼロ以外の値それぞれコラムインデックスから生成される。例えば、第一のゼロ以外の値(5)は、コラム0にあり、第二のゼロ以外の値(8)は、コラム1にたり、第三のゼロ以外の値(3)は、コラム2にあり、第四のゼロ以外の値(6)は、コラム1にある。したがって、アレイJAは、0、1、2、1の値を含む。これらの3個のアレイが、例えばニューラルネットワークモデルを示すために記憶されなければならない値の総個数を減らすことにより圧縮されたフォーマットでのマトリックスMを示し得る。図10の例において、マトリックスMは16個の値を有するが、3個のアレイA、IA、及びJAは組み合わせて総数13個の値を有する。
【0158】
これらのアレイはそれぞれさらに最適化され得る。例えば、アレイIA内の最大数はD内のゼロ以外の要素の総数であるから、IAの数は、より低い精度で記憶され得る。アレイAは、インデックスへのコードブックで量子化することにより最適化され得る。そして、アレイJAは、より低い精度インデックスで、及び/又は差を記憶するように最適化され得る。
【0159】
CSR技法を使って圧縮されたニューラルネットワークモデルを評価すると、ベースラインのニューラルネットワークからサイズがかなり小さくなっていることに発明者は気づいた。8個のコンポーネントの一例において、ニューラルネットワーク全体のベースラインサイズは、540キロバイトであった。圧縮疎行列表現のあと、サイズは462.5キロバイトに縮小され、全体の圧縮比は1.16であった。CSRアレイの最適化後、サイズは174キロバイトにさらに縮小され、全体の圧縮比は3.1であった。したがって、CSR表現をアレイの最適化と共に利用することにより全体のサイズが3分の2以上減ることが発見された。これらの、及びその他の圧縮技術を使って、上述のようにウェイクワードを検出するために使われるニューラルネットワークモデルのサイズ及び/又は演算の複雑さを減らすことができる。
【0160】
c.NMD間の調停にニューラルネットワークを使う例
既に述べたように、一定の実施形態において、互いに近くに位置する2つ又はそれ以上のNMDによってボイス入力がスピーチ内に識別されたとき、NMDは相互間の調停を容易にしてもよい。例えば、互いに近くに位置する2つのNMDは、少なくとも時々同じ音を検出し得る。そのような場合において、これは、遠隔のVASに、いずれのデバイスが最終的に検出された音データを提供する担当であるかの調停を必要とし得る。
【0161】
いくつかの実施形態において、2つ又はそれ以上のNMDのそれぞれは、上述のキーワードスポッティングアルゴリズムのうちのいずれかの1つを使って(例えば、キーワードスポッタ576、第一のウェイクワードエンジン570a、及び/又は第二のウェイクワードエンジン570bを利用して)検出された音データを分析して、ウェイクワード又はウェイクワード候補を識別してもよい。例えば、2つのNMDはそれぞれニューラルネットワークに基づいたキーワードスポッタを採用してボイス入力内のウェイクワード候補を識別してもよい。少なくともいくつかの実施形態において、キーワードスポッタはまた、音データのストリーミングSDS内のウェイクワード候補に確率スコア又はレンジを割り当ててもよい。相対的な確率スコア及び各NMDによって識別されたウェイクワード候補に基づいて、NMDの1つが検出された音データを遠隔VASに提供するために選択され得る。
【0162】
1つの例として、第一のNMD及び第二のNMDは、同じ音を検出するように互いに近くに位置してもよい。第一のNMD上で動作するキーワードスポッタは、第一のNMDの音データのストリーミングSDS内に「Ok、Google」というウェイクワードが検出されたことに80%の確率があると示すか場合があり、第二のNMD上で動作するキーワードスポッタは、第二のNMDの音データのストリーミングSDS内に「Ok、Google」というウェイクワードが検出されたことに70%の確率があると示す場合がある。第一のNMDが第二のNMDよりもウェイクワード検出の高い確率を有するため、第一のNMDが遠隔VASとの通信に選択され得る。
【0163】
結論
上記の説明は、とりわけ、コンポーネント、ファームウェア及び/又はハードウェア上で実行されるソフトウェアを含む様々な例示的なシステム、方法、装置、及び製品を開示している。そのような例は単に例示的なものであり、限定的であると見なされるべきではないことが理解される。例えば、ファームウェア、ハードウェア及び/又はソフトウェアの態様又はコンポーネントのいずれか又はすべてを、ハードウェアのみ、ソフトウェアのみ、ファームウェアのみ、又はハードウェア、ソフトウェア及び/又はファームウェアの任意の組み合わせで実施できることが考えられる。したがって、提供される例は、そのようなシステム、方法、装置、及び/又は製品を実施するための唯一の方法ではない。
【0164】
本明細書は、例示的な環境、システム、手順、ステップ、論理ブロック、処理、及び他のシンボル表現に関して広く示されており、それらは直接又は間接的にネットワークに接続されるデータ処理デバイスの動作に類似するものである。これらの処理説明及び表現は、一般的に当業者によって使用され、それらの仕事の内容を他の当業者に最も効率良く伝えることができる。多くの具体的な内容が、本開示を理解するために提供されている。しかしながら、当業者にとって、本開示の一定の実施形態が一定の、具体的な詳細なしに実施され得ることは理解される。他の例では、周知の方法、手順、コンポーネント、及び回路が、実施形態を不必要に曖昧にすることを避けるため、詳細に説明していない。したがって、本開示の範囲は、上記した実施形態よりむしろ添付された特許請求の範囲によって定義される。
【0165】
添付の特許請求の範囲のいずれかが単にソフトウェア及び/又はファームウェアへの実装をカバーするように読み取ると、少なくとも1つの例における要素の1つ又は複数は、本明細書では、ソフトウェア及び/又はファームウェアを記憶する有形の非一時的な記憶媒体、例えば、メモリ、DVD、CD、Blu-ray(登録商標)等を含むことが明確に定められている。
【0166】
本技術は、例えば下に説明される様々な態様にしたがって示される。本技術の態様の様々な例は、利便性のため、番号付きの例(1、2、3、など)として説明される。これらは例として提供され、本技術を限定するものではない。従属する例はいずれも、あらゆる組み合わせで組み合わせられてそれぞれの独立する例に配置され得ることは明らかである。他の例も同様に表わされ得る。
【0167】
例1: ネットワークマイクロフォンデバイスを介して音データをキャプチャするステップと、ネットワークマイクロフォンデバイスを介して音データ内のウェイクワード候補を識別するステップと、音データ内のウェイクワード候補の識別に基づいて、第一のウェイクワードエンジンを複数のウェイクワードエンジンの中から選択するステップと、第一のウェイクワードエンジンを使って確認されたウェイクワードを検出するために音データを分析するステップと、確認されたウェイクワードの検出に応答して、音データのボイス発声をボイスアシスタントサービスと関連した1つ又は複数のリモートコンピュータに送信するステップと、を含む、方法。
【0168】
例2: ウェイクワード候補を識別するステップは、音データ内にウェイクワード候補が存在する確率を判断することを含む、例1に記載の方法。
【0169】
例3: 第一のウェイクワードエンジンがウェイクワード候補と関連し、複数のウェイクエンジンのうちの別のものが1つ又は複数の追加のウェイクワードと関連する、
例1又は2のいずれかに記載の方法。
【0170】
例4: ウェイクワード候補を識別するステップは、音データにニューラルネットワークモデルを適用することを含む、例1-3のいずれか1つに記載の方法。
【0171】
例5: ニューラルネットワークモデルが、圧縮ニューラルネットワークモデルを含む、例4に記載の方法。
【0172】
例6: ニューラルネットワークモデルが、ソフト重み共有ニューラルネットワークモデルを含む、例4に記載の方法。
【0173】
例7: 追加の音データを送信した後、ネットワークマイクロフォンデバイスを介して追加の音データに関連するメディアコンテンツを受信するステップをさらに含む、例1-6のいずれか1つに記載の方法。
【0174】
例8: 複数のウェイクワードエンジンが、第一のウェイクワードエンジン、及びネットワークマイクロフォンデバイスのローカルの機能を実行するように構成される第二のウェイクワードエンジンを含む、例1-7のいずれか1つに記載の方法。
【0175】
例9: 1つ又は複数のプロセッサと、少なくとも1つのマイクロフォンと、1つ又は複数のプロセッサによってネットワークマイクロフォンデバイスに例1-8のいずれか1つを含む動作を実施させるように実行可能な命令を記憶する、有形の非一時的なコンピュータ読み取り可能な媒体と、を含むネットワークマイクロフォンデバイス。
【0176】
例10: ネットワークマイクロフォンデバイスに例1-8のいずれか1つを含む動作を実施させるように1つ又は複数のプロセッサによって実行可能な命令を記憶する、有形の非一時的なコンピュータ読み取り可能な媒体。
図1A
図1B
図2A
図2B
図3A
図3B
図3C
図3D
図3E
図4A
図4B
図4C
図5
図6A
図6B
図7
図8
図9
図10