(57)【要約】  ソフトウェアベースの会議プラットフォームが提供される。プラットフォームは、入力オーディオ信号を提供する複数のオーディオソースを備え、オーディオソースは、会議ソフトウェアモジュールから遠端入力オーディオ信号を受信するように構成された仮想オーディオデバイスドライバと、１つまたは複数の近端オーディオデバイスから近端入力オーディオ信号を受信するように構成されたネットワークオーディオライブラリとを含む。プラットフォームは、オーディオソースから入力オーディオ信号を受信し、受信した信号に基づいてオーディオ出力信号を生成するように構成されたデジタル信号処理コンポーネントをさらに備え、デジタル信号処理コンポーネントは、近端入力オーディオ信号のうちの１つまたは複数に音響エコー除去技法を適用するように構成された音響エコー除去モジュールを備える。
2021527366.tif 000002
【特許請求の範囲】
【請求項１】
入力オーディオ信号を提供する複数のオーディオソースであって、前記オーディオソースが、
会議ソフトウェアモジュールから遠端入力オーディオ信号を受信するように構成された仮想オーディオデバイスドライバ、および
１つまたは複数の近端オーディオデバイスから近端入力オーディオ信号を受信するように構成されたネットワークオーディオライブラリ
を含む、複数のオーディオソースと、
前記オーディオソースから前記入力オーディオ信号を受信し、前記受信した信号に基づいてオーディオ出力信号を生成するように構成され、前記近端入力オーディオ信号のうちの１つまたは複数に音響エコー除去技法を適用するように構成された音響エコー除去モジュールを備える、デジタル信号処理コンポーネントと
を備える、ソフトウェアベースの会議プラットフォーム。
【請求項２】
前記デジタル信号処理コンポーネントが、前記近端入力オーディオ信号のうちの２つ以上を混合してオートミックス出力信号を生成するように構成されたオートミキシングモジュールをさらに備える、請求項１に記載のプラットフォーム。
【請求項３】
前記デジタル信号処理コンポーネントが、前記オーディオ出力信号を生成するように構成されたマトリックスミキシングモジュールをさらに備える、請求項１に記載のプラットフォーム。
【請求項４】
事前に選択されたオーディオ処理パラメータを、前記近端オーディオデバイスのうちの少なくとも１つの前記デジタル信号処理コンポーネントに提供するように構成されたシステム構成コンポーネントをさらに備え、前記デジタル信号処理コンポーネントが、前記事前に選択されたパラメータを、対応する近端入力オーディオ信号に適用するようにさらに構成される、請求項１に記載のプラットフォーム。
【請求項５】
前記システム構成コンポーネントが、前記少なくとも１つの近端オーディオデバイスに関連するデバイス情報を識別し、前記識別されたデバイス情報に基づいて、前記近端オーディオデバイスのメモリから１つまたは複数の事前に選択されたオーディオ処理パラメータを検索するようにさらに構成される、請求項４に記載のプラットフォーム。
【請求項６】
前記デジタル信号処理コンポーネントが、
前記入力オーディオ信号のうちの１つまたは複数を復号するように構成された復号モジュールと、
前記オーディオ出力信号のうちの１つまたは複数を暗号化するように構成された暗号化モジュールと
をさらに備える、請求項１に記載のプラットフォーム。
【請求項７】
前記１つまたは複数の近端オーディオデバイスが、ネットワークオーディオ制御インターフェースを使用して前記ネットワークオーディオライブラリとインターフェースするように構成され、前記ネットワークオーディオライブラリが、オーディオインターフェースを使用して前記デジタル信号処理コンポーネントとインターフェースするように構成される、請求項１に記載のプラットフォーム。
【請求項８】
前記会議ソフトウェアモジュールが、第１のアプリケーションプログラミングインターフェースを使用して前記仮想オーディオデバイスドライバとインターフェースするように構成され、前記仮想オーディオデバイスドライバが、第２のアプリケーションプログラミングインターフェースを使用して前記デジタル信号処理コンポーネントとインターフェースするように構成される、請求項１に記載のプラットフォーム。
【請求項９】
制御インターフェースを使用して前記システム構成コンポーネントとインターフェースし、第３のアプリケーションプログラミングインターフェースを使用して前記ネットワークオーディオライブラリとインターフェースし、第４のアプリケーションプログラミングインターフェースを使用して前記デジタル信号処理コンポーネントとインターフェースするように構成されたコントローラモジュールをさらに備える、請求項１に記載のプラットフォーム。
【請求項１０】
前記プラットフォームに関連付けられた１つまたは複数のライセンスに基づいて、前記近端入力オーディオ信号を受信するために前記デジタル信号処理コンポーネントで利用可能なチャネル数を決定するように構成されたライセンス付与モジュールをさらに備える、請求項１に記載のプラットフォーム。
【請求項１１】
前記仮想オーディオデバイスドライバが、所与のオーディオソースのミュートステータスを、前記プラットフォーム内の他のすべてのオーディオソース間で同期させるように構成されたミュート論理モジュールを含む、請求項１に記載のプラットフォーム。
【請求項１２】
前記デジタル信号処理コンポーネントが、前記受信した入力オーディオ信号を単一のクロックに同期させるように構成されたクロック同期モジュールをさらに含む、請求項１に記載のプラットフォーム。
【請求項１３】
前記プラットフォームによって使用されているコンピューティングリソースの使用情報を収集し、その情報に基づいて１つまたは複数のアラートを生成し、ユーザに提示するために、ユーザインターフェースに前記アラートを提供するように構成されたリソース監視モジュールをさらに備える、請求項１に記載のプラットフォーム。
【請求項１４】
会議環境のためのオーディオ処理のコンピュータ実装方法であって、
複数のオーディオソースで入力オーディオ信号を受信するステップであって、
仮想オーディオデバイスドライバにおいて、会議ソフトウェアモジュールから遠端入力オーディオ信号を受信することと、
ネットワークオーディオライブラリにおいて、１つまたは複数の近端オーディオデバイスから近端入力オーディオ信号を受信することと
を含む、受信するステップと、
デジタル信号処理コンポーネントを使用して前記入力オーディオ信号を処理するステップであって、
前記近端入力オーディオ信号のうちの１つまたは複数に音響エコー除去技法を適用することと、
前記入力オーディオ信号に基づいてオーディオ出力信号を生成することと
を含む、処理するステップと
を含む、コンピュータ実装方法。
【請求項１５】
前記処理するステップが、前記近端入力オーディオ信号のうちの２つ以上を混合して、オートミックス出力信号を生成することをさらに含む、請求項１４に記載の方法。
【請求項１６】
前記生成することが、マトリックスミキサを使用して前記オーディオ出力信号を生成することを含む、請求項１４に記載の方法。
【請求項１７】
事前に選択されたオーディオ処理パラメータを、前記近端オーディオデバイスのうちの少なくとも１つの前記デジタル信号処理コンポーネントに提供するステップをさらに含み、
前記処理するステップが、前記事前に選択されたパラメータを、対応する近端入力オーディオ信号に適用することをさらに含む、請求項１４に記載の方法。
【請求項１８】
前記少なくとも１つの近端オーディオデバイスに関連するデバイス情報を識別するステップと、
前記識別されたデバイス情報に基づいて、前記近端オーディオデバイスのメモリから１つまたは複数の事前に選択されたオーディオ処理パラメータを検索するステップと
をさらに含む、請求項１７に記載の方法。
【請求項１９】
前記処理するステップが、
前記入力オーディオ信号のうちの１つまたは複数を復号することと、
前記オーディオ出力信号のうちの１つまたは複数を暗号化することと
をさらに含む、請求項１４に記載の方法。
【請求項２０】
前記会議環境に関連付けられた１つまたは複数のライセンスに基づいて、前記近端入力オーディオ信号を受信するために前記デジタル信号処理コンポーネントで利用可能なチャネル数を決定するステップをさらに含む、請求項１４に記載の方法。
【請求項２１】
前記受信した入力オーディオ信号を単一のクロックに同期させるステップをさらに含む、請求項１４に記載の方法。
【請求項２２】
前記プラットフォームによって使用されているコンピューティングリソースの使用情報を収集するステップと、
その情報に基づいて１つまたは複数のアラートを生成するステップと、
ユーザに提示するために、ユーザインターフェースに前記アラートを提供するステップと
をさらに含む、請求項１４に記載の方法。
【請求項２３】
所与のオーディオソースのミュートステータスを、前記会議環境内の他のすべてのオーディオソース間で同期させるステップをさらに含む、請求項１４に記載の方法。
【請求項２４】
１つまたは複数のプロセッサと、
少なくとも１つのメモリと、
近端オーディオ信号を捕捉するように構成された１つまたは複数の近端オーディオデバイスと、
前記少なくとも１つのメモリに記憶され、前記１つまたは複数のプロセッサによって実行されるように構成された、１つまたは複数のプログラムであって、
少なくとも１つのリモートサーバから遠端オーディオ信号を受信するように構成された会議ソフトウェアモジュール、
前記会議ソフトウェアモジュールから前記遠端オーディオ信号を受信するように構成された仮想オーディオデバイスドライバ、
前記１つまたは複数の近端オーディオデバイスから前記近端オーディオ信号を受信するように構成されたネットワークオーディオライブラリ、および
前記ネットワークオーディオライブラリから前記近端オーディオ信号を受信し、前記仮想オーディオデバイスドライバから前記遠端オーディオ信号を受信し、前記受信した信号に基づいてオーディオ出力信号を生成するように構成された、デジタル信号処理コンポーネント
を含む１つまたは複数のプログラムと
を備える会議システムであって、前記デジタル信号処理コンポーネントが、前記近端オーディオ信号のうちの１つまたは複数に音響エコー除去技法を適用するように構成された音響エコー除去モジュールを備える、会議システム。
【請求項２５】
前記デジタル信号処理コンポーネントが、前記近端オーディオ信号のうちの２つ以上を混合してオートミックス出力信号を生成するように構成されたオートミキシングモジュールをさらに備える、請求項２４に記載の会議システム。
【請求項２６】
前記デジタル信号処理コンポーネントが、前記オーディオ出力信号を生成するように構成されたマトリックスミキシングモジュールをさらに備える、請求項２４に記載の会議システム。
【請求項２７】
前記１つまたは複数のプログラムが、事前に選択されたオーディオ処理パラメータを、前記近端オーディオデバイスのうちの少なくとも１つの前記デジタル信号処理コンポーネントに提供するように構成されたシステム構成コンポーネントをさらに備え、前記デジタル信号処理コンポーネントが、前記事前に選択されたパラメータを、対応する近端オーディオ信号に適用するようにさらに構成される、請求項２４に記載の会議システム。
【請求項２８】
前記システム構成コンポーネントが、前記少なくとも１つの近端オーディオデバイスに関連するデバイス情報を識別し、前記識別されたデバイス情報に基づいて、前記近端オーディオデバイスの前記少なくとも１つのメモリから１つまたは複数の事前に選択されたオーディオ処理パラメータを検索するようにさらに構成される、請求項２７に記載の会議システム。
【請求項２９】
前記デジタル信号処理コンポーネントが、
前記入力オーディオ信号のうちの１つまたは複数を復号するように構成された復号モジュールと、
前記オーディオ出力信号のうちの１つまたは複数を暗号化するように構成された暗号化モジュールと
をさらに備える、請求項２４に記載の会議システム。
【請求項３０】
前記近端オーディオデバイスのうちの少なくとも１つが、前記信号を前記ネットワークオーディオライブラリに送信する前に、前記近端オーディオ信号を暗号化するように構成される、請求項２９に記載の会議システム。
【請求項３１】
前記１つまたは複数の近端オーディオデバイスが、少なくとも１つのマイクロフォンを備える会議デバイスを含む、請求項２４に記載の会議システム。
【請求項３２】
前記会議デバイスが、少なくとも１つのスピーカをさらに備える、請求項３１に記載の会議システム。
【請求項３３】
前記１つまたは複数のプログラムが、前記システムに関連付けられた１つまたは複数のライセンスに基づいて、前記近端オーディオ信号を受信するために前記デジタル信号処理コンポーネントで利用可能なチャネル数を決定するように構成されたライセンス付与モジュールをさらに備える、請求項２４に記載の会議システム。
【請求項３４】
前記仮想オーディオデバイスドライバが、前記１つまたは複数の近端デバイスおよび前記会議ソフトウェアモジュールのうちの少なくとも１つに関連するミュートステータスを、前記システム全体で同期させるように構成されたミュート論理モジュールを備える、請求項２４に記載の会議システム。
【請求項３５】
前記デジタル信号処理コンポーネントが、前記近端オーディオ信号および前記遠端オーディオ信号を単一のクロックに同期させるように構成されたクロック同期モジュールをさらに備える、請求項２４に記載の会議システム。
【請求項３６】
ユーザインターフェースをさらに備え、前記１つまたは複数のプログラムが、前記１つまたは複数のプログラムによって使用されているコンピューティングリソースの使用情報を収集し、その情報に基づいて１つまたは複数のアラートを生成し、ユーザに提示するために、前記アラートを前記ユーザインターフェースに提供するように構成されたリソース監視モジュールをさらに備える、請求項２４に記載の会議システム。
【発明の詳細な説明】
【技術分野】
【０００１】
相互参照
本出願は、２０１８年６月１５日に出願された米国仮出願第６２／６８５，６８９号に対する優先権を主張するものであり、その内容全体が本明細書に組み込まれる。
【０００２】
本出願は、一般に、会議システムおよび方法に関し、より詳細には、既存の室内ハードウェアを使用して動作するように構成された会議ソフトウェアプラットフォームに関する。
【背景技術】
【０００３】
会議室、役員室、ビデオ会議場などの会議環境は、通常、そのような環境内でアクティブである様々なオーディオソースからの音を捕捉するための１つまたは複数のマイクロフォンを備える個別の会議デバイスの使用を伴う。オーディオソースには、たとえば、室内の人間の話者、場合によっては、部屋にいない人間の話者から受信されたオーディオを再生するラウドスピーカが含まれ得る。捕捉された音は、（サウンド補強用の）増幅スピーカを介して環境内のローカルの聴衆に対して、かつ／または、会議デバイス内に含まれている、もしくは会議デバイスに接続された通信ハードウェアを使用して（たとえば、テレビ放送および／もしくはウェブ放送を経由して）、環境から離れている他の人に対して広められてもよい。会議デバイスは、会議環境から離れている人間の話者から通信ハードウェアを介して受信された大音量のオーディオ信号を再生するための１つまたは複数のスピーカまたはオーディオ再生デバイスも含み得る。典型的な会議デバイスに含まれる他のハードウェアは、たとえば、１つまたは複数のプロセッサ、メモリ、入力／出力ポート、およびユーザインターフェース／制御を含み得る。
【０００４】
会議デバイスは、特定の環境のニーズに合わせて、様々なサイズ、フォームファクタ、取り付けオプション、および配線オプションで利用可能である。会議デバイスのタイプおよび特定の会議環境におけるその配置は、オーディオソースの場所、物理的なスペース要件、美観、部屋のレイアウト、および／または他の考慮事項に依存し得る。たとえば、いくつかの環境では、会議デバイスは、オーディオソースに近くなるように、テーブル上または演台上に配置されることがある。他の環境では、たとえば、部屋全体からの音を捕捉するために、所与の会議デバイスのマイクロフォンが頭上に取り付けられることがある。
【０００５】
このような環境で生成された分散したオーディオ信号は、通常、単一のオーディオ信号処理デバイス、コンピュータ、またはサーバに集約される。このような場合、たとえば、自動ミキシング、マトリックスミキシング、遅延、コンプレッサ、およびパラメトリックイコライザ（ＰＥＱ：ｐａｒａｍｅｔｒｉｃ  ｅｑｕａｌｉｚｅｒ）機能を使用してオーディオ信号を処理するために、デジタル信号プロセッサ（ＤＳＰ：ｄｉｇｉｔａｌ  ｓｉｇｎａｌ  ｐｒｏｃｅｓｓｏｒ）が会議環境に含まれてもよい。既存のＤＳＰハードウェアの機能のさらなる説明および例示的な実施形態は、参照によりその全体が本明細書に組み込まれる、ＳＨＵＲＥのＰ３００  Ｉｎｔｅｌｌｉｍｉｘ  Ａｕｄｉｏ  Ｃｏｎｆｅｒｅｎｃｉｎｇ  Ｐｒｏｃｅｓｓｏｒに関するマニュアルにおいて見出すことができる。Ｐ３００のマニュアルには、音響エコー除去、ノイズ低減、および自動利得制御の８つのチャネルを含む高品質のオーディオ体験を提供するために、オーディオ／ビデオ会議アプリケーション用に最適化されたアルゴリズムが含まれている。
【０００６】
ハードウェアデバイスを使用してＤＳＰ機能を提供することの１つの欠点は、拡張性および適応性の制約である。たとえば、ハードウェアＤＳＰは、アナログ入力およびＵＳＢ入力などの特定のオーディオ入力のセットを含む。ユーザが後日これらのハードウェアベースの制限を超えた場合、ユーザが新しいデバイスによって提供されるすべての機能（たとえば、チャネル数など）を必要としているかどうかに関係なく、会議環境で使用するために新しいまたは追加のＤＳＰを購入して構成しなければならない場合がある。これには費用および時間がかかる可能性がある。別の欠点は、理解されるように、焼損、故障、誤動作などの影響を受けやすい可能性があるという、ハードウェアの物理的な部分に対する依存である。
【０００７】
これらのデバイス固有の制限を考慮すると、柔軟性があり、単一のハードウェアに限定されない分散型会議システムがさらに必要である。
【発明の概要】
【０００８】
本発明は、既存の室内ハードウェア（たとえば、マイクロフォンおよびラウドスピーカ）および一般的なコンピューティングデバイスを利用してソリューションを実装するソフトウェアベースの会議ソリューションを提供することによって、上記および他の問題を解決することを意図している。
【０００９】
実施形態は、入力オーディオ信号を提供する複数のオーディオソースを備えるソフトウェアベースの会議プラットフォームを含み、オーディオソースは、会議ソフトウェアモジュールから遠端入力オーディオ信号を受信するように構成された仮想オーディオデバイスドライバと、１つまたは複数の近端オーディオデバイスから近端入力オーディオ信号を受信するように構成されたネットワークオーディオライブラリとを含む。プラットフォームは、オーディオソースから入力オーディオ信号を受信し、受信した信号に基づいてオーディオ出力信号を生成するように構成されたデジタル信号処理コンポーネントをさらに備え、デジタル信号処理コンポーネントは、近端入力オーディオ信号のうちの１つまたは複数に音響エコー除去技法を適用するように構成された音響エコー除去モジュールを備える。
【００１０】
別の例示的な実施形態は、会議環境のためのオーディオ処理のコンピュータ実装方法を含む。方法は、複数のオーディオソースで入力オーディオ信号を受信することを含み、受信することは、仮想オーディオデバイスドライバにおいて、会議ソフトウェアモジュールから遠端入力オーディオ信号を受信すること、および、ネットワークオーディオライブラリにおいて、１つまたは複数の近端オーディオデバイスから近端入力オーディオ信号を受信することを含む。方法は、デジタル信号処理コンポーネントを使用して入力オーディオ信号を処理することをさらに含み、処理することは、近端入力オーディオ信号のうちの１つまたは複数に音響エコー除去技法を適用すること、および入力オーディオ信号に基づいてオーディオ出力信号を生成することを含む。
【００１１】
さらに別の例示的な実施形態は、１つまたは複数のプロセッサと、少なくとも１つのメモリと、近端オーディオ信号を捕捉するように構成された１つまたは複数の近端オーディオデバイスと、少なくとも１つのメモリに記憶され、１つまたは複数のプロセッサによって実行されるように構成された１つまたは複数のプログラムとを備える、会議システムを含む。１つまたは複数のプログラムは、少なくとも１つのリモートサーバから遠端オーディオ信号を受信するように構成された会議ソフトウェアモジュールと、会議ソフトウェアモジュールから遠端オーディオ信号を受信するように構成された仮想オーディオデバイスドライバと、１つまたは複数の近端オーディオデバイスから近端オーディオ信号を受信するように構成されたネットワークオーディオライブラリと、ネットワークオーディオライブラリから近端オーディオ信号を受信し、仮想オーディオデバイスドライバから遠端オーディオ信号を受信し、受信した信号に基づいてオーディオ出力信号を生成するように構成されたデジタル信号処理コンポーネントとを備え、デジタル信号処理コンポーネントは、近端オーディオ信号のうちの１つまたは複数に音響エコー除去技法を適用するように構成された音響エコー除去モジュールを備える。
【００１２】
本発明の原理が採用され得る様々な方法を示す例示的な実施形態を示した以下の詳細な説明および添付図面から、これらの実施形態および他の実施形態、ならびに様々な置換えおよび態様が明らかになり、より十分に理解されるであろう。
【図面の簡単な説明】
【００１３】
【図１】１つまたは複数の実施形態による、例示的な会議システムを示すブロック図である。
【図２】１つまたは複数の実施形態による、図１の会議システムの例示的なコントローラコンポーネントを示すブロック図である。
【図３】１つまたは複数の実施形態による、図１の会議システムのデジタル信号プロセッサ（ＤＳＰ）コンポーネントの例示的なプロセスを示すブロック図である。
【図４】実施形態による、図１の会議システムの例示的なコンピューティングデバイスを示すブロック図である。
【発明を実施するための形態】
【００１４】
以下の説明は、本発明の１つまたは複数の特定の実施形態を、その原理に従って説明し、図示し、例示する。この説明は、本発明を本明細書に記載の実施形態に限定するために提供されるものではなく、当業者がこれらの原理を理解し、その理解により、原理を適用して、本明細書に記載の実施形態だけでなく思い付き得る他の実施形態もこれらの原理に従って実践できるようにするような方法で、本発明の原理を説明および教示するために提供される。本発明の範囲は、文字通りまたは均等論の下で、添付の特許請求の範囲に含まれ得るすべてのそのような実施形態を網羅することを意図している。
【００１５】
説明および図面において、同様のまたは実質的に同様の要素は、同じ参照番号でラベル付けされ得ることに留意されたい。しかし、これらの要素は、たとえばそのラベル付けによってより明確な説明が容易になる場合など、異なる番号でラベル付けされる場合がある。さらに、本明細書に記載の図面は、必ずしも一定の縮尺で描かれているわけではなく、場合によっては、特定の特徴をより明確に描写するために比率が誇張されていることがある。このようなラベル付けおよび描画の実施は、必ずしも根本的な実質的目的を意味するものではない。上記のように、本明細書は、全体として捉えられ、本明細書で教示される本発明の原理に従って解釈され、当業者に理解されることを意図している。
【００１６】
本明細書では、会議環境内のオーディオ処理に対するソフトウェアベースの手法のためのシステムおよび方法が提供され、これは、本明細書では特別仕様の「会議アプリケーション」を含む「ソフトウェアベースの会議プラットフォーム」と呼ばれる。会議アプリケーションは、マイクロフォンおよびラウドスピーカの、単一の部屋または複数の部屋にサービスを提供するための小型コンピューティングプラットフォーム（たとえば、Ｉｎｔｅｌ  ＮＵＣ、Ｍａｃ  Ｍｉｎｉ、Ｌｏｇｉｔｅｃｈ  Ｓｍａｒｔｄｏｃｋ、Ｌｅｎｏｖｏ  ＴｈｉｎｋＳｍａｒｔ  Ｈｕｂなど）で実行するデジタル信号処理（「ＤＳＰ」：ｄｉｇｉｔａｌ  ｓｉｇｎａｌ  ｐｒｏｃｅｓｓｉｎｇ）用のソフトウェアソリューションを提供する。実施形態では、ソフトウェアソリューションは、固定ＤＳＰパスの形態をとることができる。会議アプリケーションは、会議環境または会議室内の既存のコンピューティングリソースを再利用するように設計されている。たとえば、コンピューティングリソースは、会議のオーディオ処理のみを使用目的とした専用リソース、または、たとえばソフトコーデックプラットフォームまたはドキュメント共有などの他の室内サービスにも使用される共有リソースのいずれかであり得る。いずれの場合も、ソフトウェアソリューションを既存のコンピューティングリソースに配置すると、会議プラットフォームの全体的なコストと複雑さが軽減される。コンピューティングデバイスは、ネットワークオーディオトランスポート、ＵＳＢ、または他のアナログもしくはデジタルのオーディオ入力および出力をサポートすることができ、これにより、コンピューティングデバイス（たとえば、ＰＣ）をＤＳＰハードウェアのように動作させ、オーディオデバイスおよびハードウェアコーデックとインターフェースさせることができる。会議プラットフォームはまた、コンピューティングデバイス上で実行しているサードパーティソフトコーデック（たとえば、サードパーティ会議ソフトウェア）に、仮想オーディオデバイスドライバとして接続する機能も有する。好ましい実施形態では、会議アプリケーションは、Ｃ＋＋コンピュータプログラミング言語を利用してクロスプラットフォーム開発を可能にする。
【００１７】
会議アプリケーションは、すべてのソフトウェアアーキテクチャコンポーネントが単一のラップトップ／デスクトップに存在する最も基本的な構成から、より大規模なクライアント／サーバインストールの一部になり、たとえば独自の会議ソフトウェアまたはサードパーティコントローラによって監視および制御されることまで、非常に多様な展開シナリオに対応するのに十分な柔軟性を備えることができる。いくつかの実施形態では、会議アプリケーション製品は、異なる機能セットを備えた異なるユーザ（たとえば、クライアント）をサポートするサーバ側企業アプリケーションを含んでもよい。会議アプリケーションによって、リモートステータスおよびエラーの監視、ならびに制御、監視、構成設定へのアクセスの認証も提供され得る。サポートされる展開プラットフォームには、たとえば、Ｗｉｎｄｏｗｓ  ８および１０、ＭＡＣ  ＯＳ  Ｘなどが含まれ得る。
【００１８】
会議アプリケーションは、スタンドアロンコンポーネントとして実行することができ、製品に関連付けられたユーザインターフェースを介してユーザのニーズを満たすように全面的に構成可能とすることができる。場合によっては、会議アプリケーションは、独立した会議製品としてライセンス供与され、販売されることがある。その他の場合、会議アプリケーションは、各サービスが固有のプロセスを実行し、明確に定義された軽量のメカニズムを介して通信して単一の目的を果たす、独立して展開可能なモジュラサービスのスイートの一部として提供されてもよい。
【００１９】
図１は、実施形態による、ソフトウェアベースの会議プラットフォームを実装するための例示的な会議システム１００を示す。システム１００は、たとえば、オーディオソースが１人または複数の人間の話者を含む、会議室、役員室、または他のミーティング室などの会議環境において利用されてもよい。換気、他の人、オーディオ／ビジュアル機器、電子デバイスなどからのノイズなどの望ましくない可能性のある他の音が環境内に存在する可能性がある。典型的な状況では、オーディオソースは、テーブルにある椅子に座っている場合があるが、たとえば、部屋の中を動き回るオーディオソースを含む、オーディオソースの他の構成および配置も企図され考えられる。人間の話者によって話されたスピーチなどのオーディオソースからの音を検出および捕捉するために、１つまたは複数のマイクロフォンが、テーブル、演台、机上などに配置されてもよい。部屋に存在しないオーディオソースから受信されたオーディオ信号を再生するために、１つまたは複数のラウドスピーカが、テーブル、机上、天井、壁などに配置されてもよい。
【００２０】
会議システム１００は、たとえば、パーソナルコンピュータ（ＰＣ）、ラップトップ、タブレット、モバイルデバイス、スマートデバイス、シンクライアント、または他のコンピューティングプラットフォームなどのコンピューティングデバイス１０２を使用して実装されてもよい。いくつかの実施形態では、コンピューティングデバイス１０２は、会議の環境（または、部屋）に物理的に配置される、かつ／またはその専用とすることができる。他の実施形態では、コンピューティングデバイス１０２は、ネットワークの一部であるか、またはクラウドベースの環境に分散され得る。いくつかの実施形態では、コンピューティングデバイス１０２は、クラウドコンピューティングネットワークなどの外部ネットワークに存在する。いくつかの実施形態では、コンピューティングデバイス１０２は、ネットワークの一部としてファームウェアとともにまたは完全にソフトウェアベースで実装されてもよく、たとえば、デスクトップ、ラップトップ、モバイルデバイス、タブレット、スマートデバイスなどの他のコンピューティングデバイスを含む別のデバイスを介して、アクセスまたは別の方法で通信されてもよい。図示の実施形態では、コンピューティングデバイス１０２は、たとえば、図４に示すように、プロセッサおよびメモリデバイスを備える任意の一般的なコンピューティングデバイスとすることができる。コンピューティングデバイス１０２は、たとえば、データ記憶デバイス、ネイティブまたは内蔵オーディオマイクロフォンデバイス、およびネイティブオーディオスピーカデバイスなど、ＰＣまたはラップトップコンピュータにおいて一般的に見られる他のコンポーネントを含んでもよい。
【００２１】
会議システム１００は、コンピューティングデバイス１０２上で動作し、たとえば、オーディオ圧縮ソフトウェア、オートミキシング、ＤＳＰプラグイン、リソース監視、ライセンス付与アクセス、および様々なオーディオおよび／または制御インターフェースを提供するように構成された会議アプリケーション１０４をさらに含む。会議アプリケーション１０４は、コンピューティングデバイス１０２にすでに存在するコンポーネントまたはリソースを活用して、ソフトウェアベースの製品を提供することができる。会議アプリケーション１０４は、コンピューティングデバイス１０２のメモリに記憶されてもよく、かつ／または（たとえば、オンプレミスまたはクラウドコンピューティングネットワークの一部として）リモートサーバ上に記憶され、ネットワーク接続を介してコンピューティングデバイス１０２によってアクセスされてもよい。例示的な一実施形態では、会議アプリケーション１０４は、会議アプリケーション１０４の１つまたは複数の部分がコンピューティングデバイス１０２に存在し、１つまたは複数の他の部分がクラウドコンピューティングネットワークに存在する、分散型クラウドベースのソフトウェアとして構成されてもよい。いくつかの実施形態では、会議アプリケーション１０４は、クラウドコンピューティングネットワークなどの外部ネットワークに存在する。いくつかの実施形態では、会議アプリケーション１０４へのアクセスは、ウェブポータルアーキテクチャを介するか、あるいはソフトウェアアズアサービス（ＳａａＳ：Ｓｏｆｔｗａｒｅ  ａｓ  ａ  Ｓｅｒｖｉｃｅ）として提供されてもよい。
【００２２】
会議システム１０６は、ケーブルまたは他の接続手段（たとえば、無線）を介してコンピューティングデバイス１０２に結合された１つまたは複数の会議デバイス１０６をさらに含む。会議デバイス１０６は、たとえば、ＳＨＵＲＥ  ＭＸＡ３１０、ＭＸ６９０、ＭＸＡ９１０などの、電話会議、ウェブ放送、テレビ放送などを容易にするためのマイクロフォンおよび／またはスピーカを備える任意のタイプのオーディオハードウェアとすることができる。たとえば、会議デバイス１０６は、会議環境内に位置する（たとえば、会議テーブルの周りに座っている）会議参加者によって生成される近端オーディオ信号を捕捉するための１つまたは複数のマイクロフォンを含んでもよい。会議デバイス１０６はまた、遠隔に位置するが、サードパーティ会議ソフトウェアまたは他の遠端オーディオソースを介して会議に接続されている会議参加者から受信した遠端オーディオ信号をブロードキャストするための１つまたは複数のスピーカを含んでもよい。いくつかの実施形態では、会議システム１００はまた、会議デバイス１０６とは別に、１つまたは複数のオーディオ出力デバイス１０７を含むことができる。オーディオ出力デバイス１０７は、任意のタイプのラウドスピーカまたはスピーカシステムとすることができ、電話会議、ウェブ放送、テレビ放送などに関連するオーディオ信号を音声で出力するための会議環境に配置されてもよい。実施形態では、会議デバイス１０６およびオーディオ出力デバイス１０７は、会議の環境または部屋の任意の好適な場所（たとえば、テーブル、演台、机上、天井、壁など）に配置され得る。いくつかの実施形態では、会議デバイス１０６およびオーディオ出力デバイス１０７は、ネットワークケーブル（たとえば、Ｅｔｈｅｒｎｅｔ）を介してコンピューティングデバイス１０２に結合され、かつデジタルオーディオ信号を処理するように構成された、ネットワークオーディオデバイスである。他の実施形態では、これらのデバイスは、アナログオーディオデバイスまたは別のタイプのデジタルオーディオデバイスとすることができる。
【００２３】
図１に示すように、会議アプリケーション１０４は、たとえばコンピューティングデバイス１０２もしくはより大きい会議システム１００のコンポーネントなどの１つまたは複数の外部コンポーネント、および／または、たとえば会議アプリケーション１０４自体の中のコンポーネントなどの１つまたは複数の内部コンポーネントとインターフェースまたは通信するための様々なソフトウェアベースのインターフェースを含む。たとえば、会議アプリケーション１０４は、たとえば会議デバイス１０６、オーディオ出力デバイス１０７、および／または会議システム１００に含まれる他のマイクロフォンおよび／もしくはスピーカなど、コンピューティングデバイス１０２に結合された外部ハードウェアデバイスへのオーディオインターフェースと、たとえば内部会議ソフトウェアおよび／またはサードパーティ会議ソフトウェア１０８など（たとえば、Ｍｉｃｒｏｓｏｆｔ  Ｓｋｙｐｅ、Ｂｌｕｅｊｅａｎｓ、Ｃｉｓｃｏ  ＷｅｂＥｘ、ＧｏＴｏＭｅｅｔｉｎｇ、Ｚｏｏｍ、Ｊｏｉｎ．ｍｅなど）、コンピューティングデバイス１０２によって実行されるソフトウェアへのオーディオインターフェースと、内蔵マイクロフォンおよび／またはスピーカ用のネイティブオーディオ入力／出力（Ｉ／Ｏ）ドライバ１１０など、コンピューティングデバイス１０２に含まれるオーディオハードウェア用のデバイスドライバへのオーディオインターフェースとを含む、複数のオーディオインターフェースを含んでもよい。会議アプリケーション１０４はまた、１つまたは複数のユーザインターフェース（たとえば、ウェブブラウザベースのアプリケーション１１３または他のシンコンポーネントユーザインターフェース（ＣＵＩ：ｃｏｍｐｏｎｅｎｔ  ｕｓｅｒ  ｉｎｔｅｒｆａｃｅ））への制御インターフェースと、内部コントローラアプリケーション（たとえば、コントローラ１１４）への制御インターフェースと、１つまたは複数のサードパーティコントローラ（たとえば、サードパーティコントローラ１１５）への制御インターフェースと、１つまたは複数の外部コントローラアプリケーション（たとえば、システム構成アプリケーション１１６、システム監視アプリケーション１１７など）への制御インターフェースとを含む、複数の制御インターフェースを含んでもよい。インターフェースは、たとえば、アプリケーションプログラミングインターフェース（ＡＰＩ：Ａｐｐｌｉｃａｔｉｏｎ  Ｐｒｏｇｒａｍｍｉｎｇ  Ｉｎｔｅｒｆａｃｅ）、ＷｉｎｄｏｗｓオーディオセッションＡＰＩ（ＷＡＳＡＰＩ：Ｗｉｎｄｏｗｓ  Ａｕｄｉｏ  Ｓｅｓｓｉｏｎ  ＡＰＩ）、オーディオストリーム入力／出力（ＡＳＩＯ：Ａｕｄｉｏ  Ｓｔｒｅａｍ  Ｉｎｐｕｔ／Ｏｕｔｐｕｔ）、Ｗｉｎｄｏｗｓドライバモデル（ＷＤＭ：Ｗｉｎｄｏｗｓ  Ｄｒｉｖｅｒ  Ｍｏｄｅｌ）、制御ネットワークのアーキテクチャ（ＡＣＮ：Ａｒｃｈｉｔｅｃｔｕｒｅ  ｆｏｒ  Ｃｏｎｔｒｏｌ  Ｎｅｔｗｏｒｋｓ）、ＡＥＳ６７、伝送制御プロトコル（ＴＣＰ：Ｔｒａｎｓｍｉｓｓｉｏｎ  Ｃｏｎｔｒｏｌ  Ｐｒｏｔｏｃｏｌ）、Ｔｅｌｎｅｔ、ＡＳＣＩＩ、デバイス管理プロトコルＴＣＰ（ＤＭＰ−ＴＣＰ：Ｄｅｖｉｃｅ  Ｍａｎａｇｅｍｅｎｔ  Ｐｒｏｔｏｃｏｌ  ＴＣＰ）、Ｗｅｂｓｏｃｋｅｔなど、様々なプロトコルを使用して実装されてもよい。
【００２４】
図１にも示すように、会議アプリケーション１０４は、コントローラコンポーネントまたはモジュール１１４、デジタル信号処理（ＤＳＰ）コンポーネントまたはモジュール１１８、ライセンス付与コンポーネントまたはモジュール１２０、ネットワークオーディオライブラリ１２６（たとえば、ボイスオーバーＩＰ（ＶｏＩＰ：Ｖｏｉｃｅ−ｏｖｅｒ−ＩＰ）ライブラリなど）、および仮想オーディオデバイスドライバ１３０を備える。コントローラコンポーネント１１４は、会議アプリケーション１０４の他の内部コンポーネントまたはモジュールを管理し、外部のコントローラ、デバイス、およびデータベースにインターフェースし、それにより、会議アプリケーション１０４のインターフェース機能の全部または一部を提供するように構成され得る。たとえば、コントローラ１１４は、コンピューティングデバイス１０２に存在するか、またはコンピューティングデバイス１０２を介してアクセス可能な、イベントログデータベース１２２およびリソース監視データベース１２８にサービス提供するか、またはそれらとインターフェースすることができる。コントローラ１１４はまた、たとえば、ウェブブラウザベースのアプリケーション１１３、および任意の既存または独自の会議ソフトウェアなどのコンポーネントグラフィカルユーザインターフェース（ＧＵＩ：ｇｒａｐｈｉｃａｌ  ｕｓｅｒ  ｉｎｔｅｒｆａｃｅ、またはＣＵＩ）にサービス提供するか、またはそれらとインターフェースすることもできる。さらに、コントローラ１１４は、会議環境内でマイクロフォンまたは会議デバイスを制御するための１つまたは複数のサードパーティコントローラ１１５および室内制御パネル（たとえば、音量制御、ミュートなど）をサポートすることができる。コントローラ１１４はまた、ＤＳＰ処理を開始／停止し、ＤＳＰパラメータを構成し、オーディオパラメータ（たとえば、どのデバイスを開くか、どのオーディオパラメータを使用するかなど）を構成し、ＤＳＰステータス更新を監視し、ＤＳＰチャネル数を関連するライセンスに準拠するように構成するように構成され得る。さらに、コントローラ１１４は、サウンドカード設定および内部／外部オーディオルーティング、システム全体の構成（たとえば、セキュリティ、起動、発見オプション、ソフトウェア更新など）、永続ストレージ、および事前設定／テンプレートの使用を管理することができる。コントローラ１１４はまた、会議環境内の外部ハードウェア（論理）（たとえば、部屋内の複数のマイクロフォンおよび／またはスピーカ）と通信することができ、ネットワーク上の他のデバイスを制御することができる。コントローラ１１４はさらに、システム監視アプリケーション１１７などの会議システム１００の監視およびロギングコンポーネント、ならびにシステム構成アプリケーション１１６などの会議システム１００の自動構成コンポーネントをサポートすることができる。
【００２５】
実施形態では、コントローラ１１４は、各機能に固有のアプリケーションプログラミングインターフェース（ＡＰＩ）、または他のタイプのインターフェースを使用することによって、様々な制御および通信機能を実行するように構成され得る。たとえば、図１に示すように、第１のＡＰＩは、コントローラ１１４とＤＳＰコンポーネント１１８との間で制御データを送受信し、第２のＡＰＩは、コントローラ１１４とネットワークオーディオライブラリ１２６の制御コンポーネントとの間で制御データを送受信し、第３のＡＰＩは、コントローラ１１４とライセンス付与コンポーネント１２０との間で制御データを送受信する。また、第４のＡＰＩは、リソース監視データベース１２８から制御データを受信し、第５のＡＰＩは、制御データをイベントログデータベース１２２に送信する。
【００２６】
図２は、実施形態による、会議システム１００に含まれ得る例示的なコントローラ２００を、たとえばコントローラコンポーネント１１４として示す。コントローラ２００の様々なコンポーネントは、ハードウェア（たとえば、ディスクリート論理回路、特定用途向け集積回路（ＡＳＩＣ：ａｐｐｌｉｃａｔｉｏｎ  ｓｐｅｃｉｆｉｃ  ｉｎｔｅｇｒａｔｅｄ  ｃｉｒｃｕｉｔ）、プログラマブルゲートアレイ（ＰＧＡ：ｐｒｏｇｒａｍｍａｂｌｅ  ｇａｔｅ  ａｒｒａｙ）、フィールドプログラマブルゲートアレイ（ＦＰＧＡ：ｆｉｅｌｄ  ｐｒｏｇｒａｍｍａｂｌｅ  ｇａｔｅ  ａｒｒａｙ）など）、またはソフトウェア（たとえば、プロセッサによって実行可能なソフトウェア命令を含むプログラムモジュール）において実装されてもよい。好ましい実施形態では、コントローラ２００は、会議アプリケーション１０４に含まれるソフトウェアコンポーネントまたはプログラムモジュールとすることができる。
【００２７】
コントローラ２００は、ＤＳＰ１１８をセットアップすること、ならびにＤＳＰ１１８および他のオーディオ設定を管理することを含む、構成およびステータス更新のために、（たとえば、図１に示す第１のＡＰＩを介して）ＤＳＰコンポーネント１１８にインターフェースするオーディオマネージャ２０２を含む。オーディオマネージャ２０２はまた、別のＡＰＩを介してコントローラ２００のライセンス付与マネージャ２０４とインターフェースして、ライセンスパラメータが確実に順守されるようにする。次にライセンス付与マネージャ２０４は、（たとえば、図１に示す第３のＡＰＩを介して）ライセンス付与コンポーネント１２０とインターフェースして、適切なライセンス付与情報を取得する。
【００２８】
コントローラ２００は、システム構成アプリケーション１１６、システム監視アプリケーション１１７などの専用コントローラによるデバイスの発見および制御のために、たとえばＡＣＮなどの１つまたは複数のネットワーク制御インターフェースをサポートするネットワークマネージャ２０６をさらに含む。図示のように、コントローラ２００はまた、たとえばＡＳＣＩＩ文字列プロトコルを使用してサードパーティコントローラ１１５とデータを送受信するために、たとえば、Ｔｅｌｎｅｔまたは他のＴＣＰソケットサーバポートなどの１つまたは複数のサードパーティ制御インターフェース（ＴＰＣＩ：ｔｈｉｒｄ−ｐａｒｔｙ  ｃｏｎｔｒｏｌ  ｉｎｔｅｒｆａｃｅ）をサポートするＴＰＣＩコンポーネントまたはモジュール２０７を含む。さらに、コントローラ２００は、たとえば、ＡＥＳ６７などの１つまたは複数のネットワークオーディオ転送プロトコルインターフェース（たとえば、図１の第２のＡＰＩ）を利用してネットワークオーディオライブラリ１２６を更新および監視するネットワークオーディオライブラリマネージャ２０８を含む。
【００２９】
さらに、コントローラ２００は、会議デバイス１０６を用いて制御データを送受信するための制御インターフェースをサポートする論理コンポーネントまたはモジュール２０９を含む。実施形態では、論理コンポーネント２０９は、たとえば、会議デバイス１０６、またはネットワークオーディオライブラリ１２６に結合された別のオーディオデバイスなどの外部デバイスから論理ミュート要求を受信するように構成されてもよい。論理ミュート要求は、（たとえば、図３のオートミキサ３０４によって実行されるような）オートミキシング中に、外部デバイスが、ＤＳＰコンポーネント１１８によって実行されるゲーティングの決定から除外されることを望んでいることをコントローラ２００に示す。それに応答して、オートミキサは、外部デバイスに対応するチャネルをミュートしてもよく、コントローラ２００は、ミュートステータスを外部デバイスに送り返すことができる。いくつかの実施形態では、論理ミュート要求は、たとえば、図１に示す第２のＡＰＩを使用して、ネットワークオーディオライブラリ１２６を介してコントローラ２００で受信されてもよい。他の実施形態では、会議デバイス１０６は、図２に示すように、コントローラ２００と直接インターフェースしてもよい。
【００３０】
実施形態では、コントローラ２００は、イベントログデータベース１２２とインターフェースして、設定、事前設定、テンプレート、およびログの永続ストレージを管理することができる。そのために、コントローラ２００は、ユーザ向けイベントを管理および維持する機能をサポートするイベントログマネージャ２１０を含むことができ、これにより、エンドユーザは、トレイアプリケーション１３６を介して問題を特定および修正することができる。場合によっては、イベントログマネージャ２１０は、すべてのシステムイベント、警告、およびエラーを一緒にログ記録するように、またイベントログデータベース１２２上のイベントログストレージを管理するように構成され得る。コントローラ２００はまた、パラメータ記憶マネージャ２１２および事前設定マネージャ２１４を含むことができ、事前設定マネージャ２１４は、事前設定管理を担当する、コンピューティングデバイス１０２の既存のコンポーネントとすることができる。これらのコンポーネント２１０、２１２、および２１４のそれぞれは、図２に示すように、（たとえば、図１に示す第５のＡＰＩを含む）それぞれのＡＰＩを介してイベントログデータベース１２２とインターフェースしてもよい。
【００３１】
コントローラ２００はまた、会議アプリケーションの性能およびコンピューティングデバイス１０２の正常性全体を監視し、必要に応じて性能設定を構成するように構成された、リソース監視マネージャ２１６を含むことができる。図示のように、リソース監視マネージャ２１６は、ＡＰＩ（たとえば、図１に示す第４のＡＰＩ）を介してリソース監視データベース１２８とインターフェースする。いくつかの実施形態では、リソース監視マネージャ２１６は、待ち時間、パケット損失、および他の品質管理パラメータを監視し、問題が検出されたときにアラートを発生させ、問題を修正するために設定を再構成するように構成されてもよい。
【００３２】
いくつかの実施形態では、コントローラ２００はまた、たとえば、図１に示すウェブベースのアプリケーション１１３などのコンポーネントユーザインターフェース（ＣＵＩ）の認証を担当するユーザインターフェースセキュリティコンポーネント（図示せず）を含んでもよい。場合によっては、コントローラ２００は、ＤＳＰ１１８を介して仮想オーディオデバイスドライバ１３０とのすべての通信を処理し、構成を設定し、その挙動を監視する、仮想オーディオデバイスドライバ（ＶＡＤＤ：ｖｉｒｔｕａｌ  ａｕｄｉｏ  ｄｅｖｉｃｅ  ｄｒｉｖｅｒ）マネージャ（図示せず）を含むこともできる。
【００３３】
再び図１を参照すると、ＤＳＰコンポーネントまたはモジュール１１８は、すべてのオーディオ信号処理を処理するように構成された、会議アプリケーション１０４のソフトウェアコンポーネントとすることができる。ＤＳＰコンポーネント１１８を使用して、任意の数のＤＳＰ機能が実装されてもよく、ＤＳＰ機能には、例として、参照によりその全体が本明細書に組み込まれる、ＳＨＵＲＥのＰ３００  Ｉｎｔｅｌｌｉｍｉｘ  Ａｕｄｉｏ  Ｃｏｎｆｅｒｅｎｃｉｎｇ  Ｐｒｏｃｅｓｓｏｒに関するマニュアルに記載されている機能のいずれかが含まれるが、これらに限定されない。さらに、ＤＳＰコンポーネント１１８は、コントローラ１１４からのＤＳＰパラメータメッセージを処理し、ステータス情報（たとえば、メータリング、エラーなど）をコントローラ１１４に送信し、すべてのオーディオデバイスとの接続を開放および維持する。
【００３４】
実施形態では、ＤＳＰコンポーネント１１８は、ネットワークオーディオライブラリ１２６から、暗号化されたオーディオ信号を受信してもよい。たとえば、会議デバイス１０６は、ネットワークを介して信号を送信する前に、その１つまたは複数のマイクロフォンによって捕捉されたオーディオ信号を（たとえば、ＡＥＳ２５６暗号化アルゴリズムなどを使用して）暗号化するように構成されてもよい。図１に示すように、ＤＳＰコンポーネント１１８は、ＤＳＰ処理用の信号を提供する前に、受信したオーディオ信号（たとえば、ネットワークオーディオ信号）に対して復号アルゴリズム（たとえば、図３の復号モジュール３２１を参照）を実行するように構成された、暗号化コンポーネントまたはモジュール１２９を含むことができる。同様に、暗号化コンポーネント１２９は、信号をネットワークオーディオライブラリ１２６に送信する前に、処理されたオーディオ信号に対して対応する暗号化アルゴリズム（たとえば、図３の暗号化モジュール３２０を参照）を実行するように構成され得る。
【００３５】
図１に示すように、ＤＳＰコンポーネント１１８は、会議システム１００全体でオーディオ信号を同期するように構成されたクロック同期コンポーネントまたはモジュール１３１も含む。たとえば、実施形態では、仮想オーディオデバイスドライバ１３０、ネットワークオーディオライブラリ１２６、およびネイティブオーディオＩ／Ｏドライバ１１０のそれぞれは、別個のクロックで動作してもよい。ネイティブオーディオＩ／Ｏドライバ１１０がネイティブマイクロフォンとネイティブスピーカの両方をサポートする場合、それらのネイティブデバイスのそれぞれは、同様に個々のクロックでも動作してもよい。クロック同期コンポーネント１３１は、ネットワーク全体のクロックを、たとえば、ネットワークオーディオライブラリ１２６または他の選択されたオーディオデバイスのクロックなどの単一のクロックに同期させるように構成され得る。選択されたクロックは、図１に示すように、同期の目的でクロック同期コンポーネント１３１にクロック基準信号を送信してもよい。
【００３６】
実施形態では、ネットワークオーディオライブラリ１２６は、外部オーディオハードウェアと会議アプリケーション１０４との間の通信を可能にするための、会議アプリケーション１０４に含まれるソフトウェアコンポーネントまたはモジュールとすることができる。たとえば、図１に示すように、オーディオ信号は、ネットワークオーディオライブラリ１２６と、コンピューティングデバイス１０２の外部にあり、Ｅｔｈｅｒｎｅｔケーブルまたは他のネットワーク接続を介してコンピューティングデバイス１０２に結合された１つまたは複数の会議デバイス１０６および／もしくはオーディオ出力デバイス１０７との間で、送信ならびに／または受信されてもよい。会議デバイス１０６からの着信オーディオ信号を処理し、発信オーディオ信号を会議デバイス１０６および／またはオーディオ出力デバイス１０７に戻すために、ネットワークオーディオライブラリ１２６とＤＳＰコンポーネント１１８との間にオーディオストリーム（たとえば、ＡＳＩＯ、ＷＡＳＡＰＩ、ＣｏｒｅＡｕｄｉｏ、他のＡＰＩなど）が作成されてもよい。実施形態では、ネットワークオーディオライブラリ１２６は、外部会議デバイス１０６から受信したオーディオ信号を、ＤＳＰ１１８によって使用可能なオーディオフォーマットに変換してもよく、その逆も可能である。図示の実施形態は、ネットワークオーディオライブラリ１２６を会議アプリケーション１０４に含まれるものとして示しているが、他の実施形態では、ネットワークオーディオライブラリ１２６は、会議アプリケーション１０４とは別に、スタンドアロンコンポーネントとしてコンピューティングデバイス１０２に含まれてもよい。
【００３７】
図３は、実施形態による、会議アプリケーション１０４に含まれるＤＳＰコンポーネント１１８の動作を含む例示的なプロセス３００を示す。ＤＳＰコンポーネント１１８は、会議アプリケーション１０４のすべての信号処理を実行し、会議アプリケーション１０４とリンクされているライブラリとして実装され得る。いくつかの実施形態では、ＤＳＰコンポーネント１１８は、スタンドアロンプロセスとして実行することができる。
【００３８】
図示のように、プロセス３００は、オートミキシング、復号／暗号化、利得／ミュート、音響エコー除去／ノイズ低減（「ＡＥＣ／ＮＲ」：ａｃｏｕｓｔｉｃ  ｅｃｈｏ  ｃａｎｃｅｌｌａｔｉｏｎ／ｎｏｉｓｅ  ｒｅｄｕｃｔｉｏｎ）、自動利得制御（「ＡＧＣ：ａｕｔｏｍａｔｉｃ  ｇａｉｎ  ｃｏｎｔｒｏｌ」）、圧縮（「Ｃｏｍｐ」：ｃｏｍｐｒｅｓｓｉｏｎ）、パラメトリック等化（「４  ＰＥＱ  Ｃ／Ｓ」）、マトリックスミキシング、ならびにハードウェアおよび／またはソフトウェアコンポーネントから受信したオーディオ信号を含む他のオーディオ処理機能を含む。実施形態では、チャネル（またはローブ）の正確な数は、ユーザによって購入されたライセンス付与条件に応じて、拡張可能であり得る。図示の実施形態では、ＤＳＰ１１８は、たとえば、１つまたは複数の会議デバイス１０６、または会議環境１００に配置された別個のマイクロフォンから個々のマイクロフォン入力３０２を受信するための、１６チャネルまで拡張可能な少なくとも１つのチャネルを有する。図３に示すように、各チャネルは、ＤＳＰ１１８のオートミキサ３０４（またはオートミキシングモジュール）に結合される前に、個別の処理を受けてもよい。
【００３９】
オートミキサ３０４は、すべてのマイクロフォン入力３０２を組み合わせて、オートミックスチャネルを介して送信されるオートミックス出力信号にするように構成されてもよい。いくつかの実施形態では、オートミキサ３０４は、図３に示すように、ゲート型オートミキサとして動作するように構成されてもよい。このような場合、オートミキサ３０４は、ゲート型直接出力（ＤＯ：ｄｉｒｅｃｔ  ｏｕｔ）をＤＳＰ１１８の入力選択コンポーネントまたはモジュール３０５に提供するための第２の出力チャネルを有する。個別に処理されたマイクロフォン入力３０２もまた、それぞれの直接出力（ＤＯ）チャネルを介して入力選択コンポーネント３０５に提供される。入力選択コンポーネント３０５は、オートミキサ３０４から受信したゲート型直接出力信号に基づいて、ＤＯチャネルのうちの１つまたは複数を選択的に開放または閉鎖するように構成されてもよい。たとえば、選択されたチャネルは、ＤＳＰ１１８の音響エコーキャンセラ３０７（または、ＡＥＣモジュール）のための基準入力（図示せず）を提供してもよい。実施形態では、音響エコーキャンセラ３０７は、選択された基準チャネル、またはそこを介して受信された基準信号に基づいて、入力信号におけるエコーを低減または排除してもよい。エコーおよび／またはノイズを低減または排除するためにＡＥＣモジュール３０７がどのように動作するかについてのさらなる詳細は、たとえば、参照によりその全体が本明細書に組み込まれる、ＳＨＵＲＥのＰ３００  Ｉｎｔｅｌｌｉｍｉｘ  Ａｕｄｉｏ  Ｃｏｎｆｅｒｅｎｃｉｎｇ  Ｐｒｏｃｅｓｓｏｒに関するマニュアルにおいて見出すことができる。
【００４０】
図３に示すように、オートミックス出力はさらに処理され、その後、選択コンポーネント３０５から選択された直接出力とともに、ＤＳＰ１１８のマトリックスミキサ３０６（または、マトリックスミキシングモジュール）に提供される。マトリックスミキサ３０６は、オートミックス出力および選択された直接出力を、会議システム１００内の他の様々なオーディオデバイスから受信した入力と組み合わせて、個々のオーディオデバイス（または、オーディオソース）に適したミックスオーディオ出力信号を生成するように構成され得る。場合によっては、マトリックスミキサ３０６は、所与のオーディオデバイスについて、それ自体の入力信号を除外し、かつネットワーク内の他のすべてのオーディオデバイスから受信した入力信号を混合したものを含む、ミックスオーディオ信号を生成するように構成され得る。たとえば、マイクロフォン１およびライン入力１から受信された入力信号は、ライン出力１などに対して生成されたミックスオーディオ出力信号には含まれない。入力オーディオ信号の他のマトリックスミックスまたは組合せも考えられる。場合によっては、マトリックスミキサ３０６は、各オーディオデバイスまたは出力チャネルに対して固有のミックス出力信号を生成してもよい。他の場合には、マトリックスミキサ３０６は、２つ以上のオーディオデバイスまたは出力チャネルに、同じミックス出力信号を提供してもよい。いくつかの実施形態では、マトリックスミキサ３０６は、オートミキサ３０４に接続することなく、直接マイク入力３０２に基づいてミックス出力信号を生成してもよい。
【００４１】
図３に示すプロセス３００は特定の動作のセットのみを含むが、任意の数のＤＳＰ機能が実装されてもよく、ＤＳＰ機能には、例として、ＳＨＵＲＥのＰ３００  Ｉｎｔｅｌｌｉｍｉｘ  Ａｕｄｉｏ  Ｃｏｎｆｅｒｅｎｃｉｎｇ  Ｐｒｏｃｅｓｓｏｒに関する添付マニュアルに記載されている機能のいずれかが含まれるが、これらに限定されない。
【００４２】
図示のように、ＤＳＰコンポーネント１１８は、少なくとも３つの異なるタイプのオーディオデバイスとインターフェースすることができ、デバイスごとに別個の出力を生成することができる。第１のタイプは、ネットワークオーディオライブラリ１２６を介して会議アプリケーション１０４に接続され、かつＥｔｈｅｒｎｅｔネットワークなどを介してコンピューティングデバイス１０２に通信可能に結合された、ネットワーク化されたオーディオデバイスを含む。ネットワーク化されたオーディオデバイスは、たとえば、会議デバイス１０６、オーディオ出力デバイス１０７、および／または別個のメディアプレーヤなど（たとえば、ＣＤプレーヤ、ＤＶＤプレーヤ、ＭＰ３プレーヤなど）の近端オーディオハードウェアデバイスを含むことができる。いくつかの実施形態では、ネットワーク化されたオーディオデバイスは、たとえば会議環境の遠端に位置する会議カメラなど（たとえば、Ｃｉｓｃｏ  Ｗｅｂｅｘ  Ｂｏａｒｄなど）のインターネット接続を使用して遠端オーディオ信号をネットワークオーディオライブラリ１２６に送るように構成された、遠端オーディオハードウェアデバイス（図示せず）を含むことができる。
【００４３】
図３に示すように、マイク入力３０２に加えて、ＤＳＰ１１８は、ネットワーク化されたオーディオデバイスからネットワークライン入力３０８を受信するための最大８つのチャネルと、ネットワークライン出力３１０を対応するネットワーク化されたオーディオデバイスに送信するための最大８つのチャネルを有する。たとえば、いくつかの実施形態では、ネットワーク化された各近端オーディオデバイスは、最大４つのネットワークマイク入力３０２および最大４つのネットワークライン入力３０８に結合されるか、もしくはそれらを介して送信してもよく、または、最大４つのネットワークライン出力３１０に結合されるか、もしくはそれらを介して受信してもよい。このような場合、マトリックスミキサ３０６は、同じオーディオデバイスから受信されたマイク入力信号およびライン入力信号を除外または最小化し、かつ、他のすべてのマイク入力信号およびライン入力信号、ならびに他のタイプのオーディオデバイス（たとえば、ネイティブ入力３１２およびＶＡＤＤ入力３１６）から受信した入力信号を含むことによって、同じオーディオデバイスに属する各ネットワークライン出力３１０に対して第１のミックス出力信号を生成してもよい。
【００４４】
ＤＳＰ１１８とインターフェースする第２のタイプのオーディオデバイスは、コンピューティングデバイス１０２にネイティブである内蔵のまたはローカルのオーディオデバイス（たとえば、ＰＣヘッドホン出力ジャック（図示せず）、１つまたは複数のネイティブスピーカ、ＵＳＢマイク（図示せず）、１つまたは複数のネイティブマイクロフォン、ＨＤＭＩ（登録商標）オーディオなど）を含む。これらのネイティブデバイスは、会議環境の近端に位置する。図３に示すように、ＤＳＰ１１８は、ネイティブオーディオデバイス（たとえば、ネイティブマイクロフォン）によって捕捉されたオーディオ信号を受信するためのネイティブ入力３１２と、ミックスオーディオ出力信号をネイティブオーディオデバイス（たとえば、ネイティブスピーカ）に提供するためのネイティブ出力３１４とを含む。実施形態では、ミックスオーディオ信号は、図１に示すように、コンピューティングデバイス１０２に結合された室内スピーカであり得るラウドスピーカ１１２を使用して、近端の会議参加者にブロードキャストされてもよい。マトリックスミキサ３０６によって生成され、ネイティブ出力３１４に提供されるミックスオーディオ出力信号の内容は、ネットワークマイク入力３０２、ネットワークライン入力３０８、およびＶＡＤＤ入力３１６を介して受信されたオーディオ信号を含み得るが、ネイティブ入力３１２を介して受信されたオーディオ信号を含まない。
【００４５】
再び図１を参照すると、ネイティブオーディオデバイスは、内蔵のオーディオデバイスを動作および制御するためのネイティブオーディオＩ／Ｏドライバ１１０または他のコンピュータプログラムを介して、コンピューティングデバイス１０２とインターフェースする。図１に示すように、ネイティブオーディオＩ／Ｏドライバ１１０は、第８のＡＰＩを介してＤＳＰコンポーネント１１８とインターフェースする。実施形態では、会議アプリケーション１０４は、たとえば、Ｗｉｎｄｏｗｓ用のＷＤＭもしくはＷＡＳＡＰＩ、またはＭａｃ用のＣｏｒｅＡｕｄｉｏなどの任意のネイティブＯＳオーディオインターフェースを使用して、ＤＳＰ１１８とネイティブオーディオＩ／Ｏドライバ１１０との間でオーディオデータを送信および／または受信してもよい。
【００４６】
ＤＳＰ１１８とインターフェースする第３のタイプのオーディオデバイスは、仮想オーディオデバイスドライバ（ＶＡＤＤ）１３０である。ＶＡＤＤ１３０は、所与の電話会議またはミーティングに関連付けられた遠端オーディオ信号を受信するために、Ｓｋｙｐｅ、Ｂｌｕｅｊｅａｎｓ、Ｚｏｏｍなどのサードパーティ会議ソフトウェア１０８（「会議ソフトウェアモジュール」とも呼ばれる）に接続する。いくつかの実施形態では、会議ソフトウェアモジュール１０８は、サードパーティ会議ソフトウェアもしくはソフトコーデックに加えて、またはその代わりに、企業の、独自の、および／もしくは組織内の会議ソフトウェアを含むことができる。図３に示すように、ＤＳＰ１１８は、仮想オーディオデバイスドライバ１３０を介してサードパーティ会議ソフトウェア１０８から遠端オーディオ信号を受信するためのＶＡＤＤ入力３１６と、サードパーティ会議ソフトウェア１０８および仮想オーディオデバイスドライバ１３０を介してミックスオーディオ出力信号を遠端参加者に送り返すためのＶＡＤＤ出力３１８とを含む。一例として、遠端オーディオ信号は、遠端参加者に隣接して配置され、サードパーティ会議ソフトウェア１０８に関連付けられたサードパーティ会議サーバ１３２に通信可能に接続するように構成された会議用のデバイス、携帯電話、カメラ、ラップトップ、デスクトップコンピュータ、タブレット、または他のオーディオハードウェアデバイスによって捕捉された、マイクロフォン信号とすることができる。ミックスオーディオ出力信号は、同じオーディオハードウェアデバイスまたは別個のラウドスピーカまたは他のオーディオデバイスを介して遠端参加者にブロードキャストされてもよい。マトリックスミキサ３０６によって生成され、ＶＡＤＤ出力３１８に提供されるミックスオーディオ出力信号は、マイク入力３０２、ライン入力３０８、およびネイティブ入力３１２で受信されたオーディオ信号を含み得るが、ＶＡＤＤ入力３１６で受信されたオーディオ信号を含まない。会議アプリケーション１０４は、ＡＰＩ（たとえば、図１に示す第７のＡＰＩ）を使用して、ＤＳＰ１１８とＶＡＤＤ１３０との間でオーディオデータを送受信してもよい。
【００４７】
図示の実施形態では、会議システム１００は、少なくとも３つの異なるタイプのオーディオデバイス（または、オーディオソース）、すなわち、ネットワークオーディオデバイス、ＶＡＤＤ、およびネイティブオーディオデバイスを備える。他の実施形態では、ＤＳＰコンポーネント１１８は、３つすべてのオーディオデバイスタイプよりも少ないタイプを用いて動作してもよい。たとえば、ＤＳＰ１１８は、ネットワークオーディオライブラリ１２６のみと、またはネイティブオーディオＩ／Ｏドライバ１１０および仮想オーディオデバイスドライバ１３０のみとインターフェースしてもよい。また、ＤＳＰコンポーネント１１８は、ネットワークオーディオライブラリ１２６およびネイティブオーディオデバイスからのサービスの中断をシームレスに処理するように構成され得る。
【００４８】
実施形態によれば、コントローラ２００とＤＳＰコンポーネント１１８との間で通信されるＤＳＰパラメータメッセージは、コントローラ２００からＤＳＰコンポーネント１１８へのパラメータ（たとえば、ＥＱ周波数、利得、ミュートなど）、およびＤＳＰコンポーネント１１８からコントローラ２００へのレポート（たとえば、リアルタイムのメータリング、警告など）を含む。他の通信は、ＤＳＰコンポーネント１１８に特定のＷｉｎｄｏｗｓオーディオデバイスを開くように指示すること、およびＶＯＩＰコールを管理することを含む。ＤＳＰコンポーネント１１８は、オーディオ診断情報をコントローラ２００に提供することもできる。
【００４９】
再び図１を参照すると、仮想オーディオデバイスドライバ１３０は、会議アプリケーション１０４とコンピューティングデバイス１０２上で実行している他のオーディオアプリケーションとの間の通信を可能にするための、会議アプリケーション１０４に含まれるソフトウェアコンポーネントまたはモジュールである。たとえば、図１において、仮想オーディオデバイスドライバ１３０は、１つまたは複数のサードパーティ会議サーバ１３２と通信する、たとえば、Ｓｋｙｐｅ、Ｂｌｕｅｊｅａｎｓ、Ｚｏｏｍ、または他のソフトウェアコーデックなどの１つまたは複数のサードパーティ会議ソフトウェア１０８からオーディオストリームを受信し、受信したオーディオを、ＤＳＰ１１８と互換性があるか、またはＤＳＰ１１８によって使用されるオーディオ信号に変換するように構成される。仮想オーディオデバイスドライバ１３０は、オーディオがＤＳＰ１１８からサードパーティ会議ソフトウェア１０８に送信されるとき、逆変換を実行するように構成されてもよい。いくつかの実施形態では、仮想オーディオデバイスドライバ１３０はまた、同じハードウェア上で実行するプロキシアプリケーションを介して、またはクラウドに直接ストリーミングして、たとえば、ＡＭＡＺＯＮのＡｌｅｘａまたはＯＫ  ＧＯＯＧＬＥなどのクラウド音声サービスにオーディオを送信するか、またはクラウド音声サービスからオーディオを受信するように構成される。
【００５０】
図１に示すように、第６のＡＰＩは、仮想オーディオデバイスドライバ１３０とサードパーティ会議ソフトウェア１０８との間でオーディオデータを送受信し、第７のＡＰＩは、仮想オーディオデバイスドライバ１３０とＤＳＰコンポーネント１１８との間でオーディオデータを送受信する。仮想オーディオデバイスドライバ１３０は、たとえば、Ｗｉｎｄｏｗｓ用のＷＤＭもしくはＷＡＳＡＰＩ、またはＭａｃ用のＣｏｒｅＡｕｄｉｏなどのネイティブＯＳオーディオインターフェースを介して、たとえば、Ｓｋｙｐｅ、Ｂｌｕｅｊｅａｎｓなどのサードパーティ会議ソフトウェア１０８とインターフェースすることができる。
【００５１】
仮想オーディオデバイスドライバ１３０は、たとえば、オペレーティングシステムおよび／または他のコンピュータプログラム（たとえば、会議アプリケーション１０４および／またはコンピューティングデバイス１０２）が、基礎となる「デバイス」がハードウェアデバイスではないことを除いて、基礎となるオーディオデバイスのオーディオ関連機能にアクセスすることを可能にするソフトウェアインターフェースを提供することによって、任意の他のオーディオデバイスドライバと同様に動作することができる。むしろ、基礎となるオーディオデバイスは、ソフトウェア、すなわちサードパーティ会議ソフトウェア１０８または他のソフトウェアコーデックで構成される仮想デバイスであり、仮想オーディオデバイスドライバ１３０は、ＤＳＰ１１８のサードパーティソフトウェア１０８に対する制御、アクセス、および動作を可能にするためのソフトウェアインターフェースとして機能する。実施形態では、仮想オーディオデバイスドライバ１３０は、会議アプリケーション１０４または仮想オーディオデバイスドライバ１３０が、それ自体を標準のＷｉｎｄｏｗｓオーディオデバイスとして（たとえば、エコー除去スピーカフォンとして）コンピューティングデバイス１０２に提示することを可能にし、サードパーティ会議ソフトウェア１０８のオーディオ設定メニューから、それを単一の入力／出力デバイスとして容易に選択可能にするように構成され得る。たとえば、仮想オーディオデバイスドライバ１３０は、コンピューティングデバイス１０２とのオーディオインターフェースとして会議アプリケーション１０４によって使用されるカーネルモードオーディオデバイスドライバとすることができる。一方、会議アプリケーション１０４は、たとえば、会議デバイス１０６およびオーディオ出力デバイス１０７などの、アプリケーション１０４に直接接続されたオーディオデバイスから、処理済みのオーディオを送信および／または受信するように構成されてもよい。
【００５２】
いくつかの実施形態では、仮想オーディオデバイスドライバ１３０は、たとえば、従来のように遠端のマイクロフォン自体を直接オフにする代わりに、ミュート制御、音量、および他の制御データ専用の制御チャネルを追加することによって、サードパーティ会議ソフトウェア１０８を介してミュート制御を可能にするように構成され得る。たとえば、仮想オーディオデバイスドライバ１３０のミュート論理コンポーネントまたはモジュール１３４は、専用チャネルを介してサードパーティ会議ソフトウェア１０８からミュート（またはミュート解除）ステータスを受信し、ＤＳＰコンポーネント１１８にミュートステータスを提供するように構成され得る。ＤＳＰコンポーネント１１８は、ミュートステータスをシステム１００全体、またはシステム１００内のすべてのオーディオソースに伝達して、ミュートステータスを、ソフトウェア（たとえば、ＧＵＩ）および／またはハードウェア（たとえば、マイクロフォンＬＥＤ）インジケータを含む各オーディオソースの関連するインジケータと同期させてもよい。他の実施形態では、このミュート論理は、コントローラ１１４がサードパーティ会議ソフトウェアと直接インターフェースすることを可能にする第９のＡＰＩ（図示せず）を介して通信されてもよい。
【００５３】
図１に示すように、会議システム１００は、システム構成アプリケーション１１６と、システム監視アプリケーション１１７とをさらに含み、これらは、たとえば、ＡＣＮなどのネットワーク制御プロトコルインターフェースを介して会議アプリケーション１０４と対話するように設計される。会議システム１００はまた、制御プロトコルを介したネットワークデバイスに対する意図しない変化および／または偶発的な変化を防止するために、デバイスネットワーク認証（「ネットワークロック」としても知られる）も含んでもよい。この機能は、会議アプリケーション１０４内で実装され、システム構成アプリケーション１１６が会議アプリケーション１０４をロックするか、または会議アプリケーション１０４に対する変更を防止するために使用され得る。
【００５４】
実施形態では、システム構成アプリケーション１１６は、オーディオ入力および出力をルーティングすること、オーディオチャネルをセットアップすること、使用するオーディオ処理のタイプを決定することなどを含む、オーディオネットワークの設計、レイアウト、および構成を制御し、会議システム１００全体に関連する設定を展開するための、構成および設計ソフトウェアを含む。たとえば、システム構成アプリケーション１１６は、オートミキサ３０４の設定を最適化し、システム利得構造を確立し、オーディオネットワーク全体でミュートステータスを同期し、図３に示す他のＤＳＰブロックを最適化するように構成され得る。
【００５５】
いくつかの実施形態では、システム構成アプリケーション１１６は、推奨されるデバイス構成設定に従って、関連するマイクロフォンおよび会議システム１００全般を構成もしくはセットアップするための自動構成コンポーネントまたはモジュールを備える。自動構成コンポーネントは、会議システム１００に結合された各マイクロフォンを検出し、マイクロフォンのタイプもしくは分類（たとえば、ＭＸＡ９１０、ＭＸＡ３１０など）または他のデバイス情報を識別し、識別されたマイクロフォンタイプに関連付けられた事前に選択されたＤＳＰパラメータまたは設定値を使用して、検出されたマイクロフォンを構成するように構成されてもよい。たとえば、各マイクロフォンは、事前に割り当てられたネットワーク識別情報（ＩＤ）を有してもよく、初期設定時に実行される発見プロセス中に、そのネットワークＩＤをシステム１００に自動的に伝達してもよい。システム構成アプリケーション１１６は、ネットワークＩＤを使用して、メモリ（たとえば、ルックアップテーブル）からネットワークＩＤに関連付けられたＤＳＰ設定値を検索し、検索された設定値をＤＳＰコンポーネント１１８に提供するか、あるいは、ＤＳＰコンポーネント１１８に、検出されたマイクロフォンのネットワークＩＤに関連付けられているＤＳＰ設定値を事前に入力させてもよい。事前に選択されたＤＳＰ設定値は、マイクロフォンが接続されているチャネルに基づいてもよい。実施形態によれば、ＤＳＰ設定値は、たとえば、パラメトリック等化、ノイズ低減、コンプレッサ、利得、および／または図３に示す他のＤＳＰコンポーネントなどの特定のパラメータの選択肢またはデフォルト値を含んでもよい。図３に示すように、オートミキシングの前に適切なＤＳＰ設定値を各マイクロフォンに適用するために、各マイクロフォン入力ライン上に自動構成コンポーネント３２０が含まれてもよい。
【００５６】
システム１００のシステム監視アプリケーション１１７は、企業またはネットワーク全体を監視し、そこに含まれる各デバイスまたはアプリケーションを個別に制御するように設計された、監視および制御ソフトウェアを備える。いくつかの実施形態では、会議アプリケーション１０４ソフトウェアは、システム監視アプリケーション１１７に依拠して、ユーザを認証し、ユーザの機能を承認してもよい。システム監視アプリケーション１１７は、ネットワーク制御プロトコル（たとえば、ＡＣＮ）を使用して会議アプリケーション１０４とインターフェースする。会議アプリケーション１０４によって採用される全体的なアーキテクチャパターンは、ユーザインターフェース（ＵＩ）自体の中にモデルビューコントローラの感覚を備えた、基礎となる階層への標準のＧｅｔ−Ｓｅｔ−Ｎｏｔｉｆｙ手法によるイベント駆動型として要約され得る。たとえば、システム監視アプリケーション１１７は、会議アプリケーション１０４を監視し、イベントを検出し、それらのイベントに基づいてユーザに通知するように構成され得る。実施形態では、会議アプリケーション１０４は、会議アプリケーション１０４がネットワーク制御デバイスであるかのように発見要求に応答するコントローラ１１４の機能を維持することによって、システム監視アプリケーション１１７から監視されてもよい。これにより、システム監視アプリケーション１１７は、システム１００内の他のハードウェアと同じ方法で、会議アプリケーション１０４を監視および制御することができる。この手法はまた、会議アプリケーション１０４に監視および制御のサポートをもたらすための最短の方法を提供する。
【００５７】
実施形態では、コンピューティングデバイス１０２は、たとえば、事前設定、ログファイル、ユーザ向けイベント、オーディオインターフェースの構成、仮想オーディオデバイスドライバ１３０の構成、会議アプリケーション１０４の現在の状態、ユーザ資格情報、およびエンドユーザによって記憶および呼び出される必要がある任意のデータなどのデータの永続ストレージの実装のために構成された１つまたは複数のデータ記憶デバイスを含むことができる。たとえば、データ記憶デバイスは、図１に示すイベントログデータベース１２２および／またはリソース監視データベース１２８を含んでもよい。データ記憶デバイスは、コンピューティングデバイス１０２のフラッシュメモリまたは他のメモリデバイスにデータを保存してもよい。いくつかの実施形態では、データ記憶デバイスは、たとえば、ＳＱＬｉｔｅデータベース、ＵｎＱＬｉｔｅ、Ｂｅｒｋｅｌｅｙ  ＤＢ、ＢａｎｇＤＢなどを使用して実装され得る。会議アプリケーション１０４のデータ記憶のニーズに対してデータベースを使用することは、ページ付けおよびフィルタリングされたデータクエリを使用したデータ履歴の容易な検索を含む一定の利点がある。
【００５８】
図１に示すように、イベントログデータベース１２２は、コントローラ１１４からイベント情報を受信し、事前定義されたビジネスルールまたは他の設定に基づいて、ユーザ向けのイベントを生成するように構成され得る。たとえば、イベントログ１２２は、システムイベントをサブスクライブし、ユーザが問題を識別して、問題を修正するために何をする必要があるかを明確に理解するのに役立つ、ユーザ向けのアクション可能なイベントを提供することができる。イベントログデータベース１２２は、任意のコントローラソフトウェアからの要求に応じて検索可能なイベントの履歴を維持してもよい。エンドユーザが履歴を長期間保持するように構成される場合、履歴のページ付けが推奨される。場合によっては、たとえば、ウェブベースのアプリケーション１１３またはシステム監視アプリケーション１１７などのユーザインターフェース（ＵＩ）コントローラが、エンドユーザに対して表示するイベントを要求するとき、コントローラ１１４は、会議アプリケーション１０４がＣＰＵまたは他のタイムクリティカルなタスクでビジー状態である場合にこの要求を拒否してもよい。
【００５９】
実施形態では、イベントロギングは、会議アプリケーション１０４の本質的な部分であり、ソフトウェアをトラブルシューティングするための重要な方法であり得る。会議アプリケーション１０４アーキテクチャの各コンポーネントは、そのサブシステムで発生したすべてのイベントをログ記録するように構成され得る。ロギングは、統合すること、各コンポーネントの挙動への影響を少なくすること、全体にわたって共通のフォーマットに従うことが容易であり得る。エンドユーザは、ウェブブラウザベースのアプリケーション１１３（もしくは他のシンコンポーネントユーザインターフェース（ＣＵＩ））またはシステム監視アプリケーション１１７を使用して、ユーザがログファイルを保持したい時間の長さを構成することができる。通常、期間は１か月から１年まで様々であり、会議アプリケーションプロジェクトの仕様化フェーズ中に決定されることになる。
【００６０】
場合によっては、会議アプリケーション１０４において収集され、イベントログデータベース１２２に格納されるイベントログは、ユーザ向けのログでなくてもよい。開発者は、ログファイルを分析し、エンドユーザが直面している問題を特定することができる。場合によっては、ログデータを検索および視覚化するための多くの様々な方法を用いてログファイルを分析するためのツールが提供されてもよい。このツールにより、ユーザは、特定の問題（たとえば、ＪＩＲＡ番号）に対するデータセットを作成し、特定のクエリを作成することによってその問題を分析することができる。たとえば、会議アプリケーション１０４でイベントをログ記録するためのイージーロギングツールが使用されてもよい。ログはどのＰＣ上でも多くの空間を占める可能性があるので、開発チームは、日付に基づいて古いログをクリーンアップするユーザ主導の機能を有することができる。このツールは、たとえばＣｈａｎｎｅｌ＋  Ｓｈｕｒｅ  ｉＯＳアプリケーションにおいて使用されてもよく、ロギングの非常に包括的なサポートを提供することができる。
【００６１】
リソース監視データベース１２８は、コンピューティングデバイス１０２のリソース監視コンポーネントまたはモジュール１２４から受信した情報を格納する。実施形態では、リソースモニタ１２４は、コンピューティングデバイス１０２のリソースを監視し、コンピューティングデバイス１０２の正常性についてユーザを更新する、コンピューティングデバイス１０２の既存のコンポーネントとすることができる。実施形態では、会議アプリケーション１０４のＤＳＰコンポーネント１１８は、たとえば、ＣＰＵ、メモリ、および帯域幅などのコンピューティングデバイス１０２の特定のリソース、ならびにネットワークオーディオライブラリ１２６および仮想オーディオデバイスドライバ１３０などの他のアプリケーションおよびサービスの可用性に依存し得る。リソース監視コンポーネント１２４は、コンピューティングデバイスのリソースメトリックを受信または配布するために使用される監視デーモンを含んでもよい。たとえば、デーモンは、システムをリアルタイムで監視し、その結果をリモートまたはローカルの監視およびアラート発信アプリケーションに送り、リモートチェックを許可し、スクリプトを実行することによって問題を解決するように構成されてもよい。リソース監視コンポーネント１２４によって収集されたデータは、データベース１２８に格納され、必要に応じてコントローラ１１４に提供されてもよい。いくつかの実施形態では、リソースモニタ１２４は、事前設定された閾値に基づいて、どのリソースが過剰使用または過少使用のために停止または縮小される必要があり得るか、また、どのリソースが現在の使用をよりよく処理するために調整または再構成を必要とし得るかを判定することができる。これらの判定は、リソース関連の潜在的な問題についてユーザにアラートまたは警告を提供するために使用されてもよい。
【００６２】
イベントログデータベース１２２とリソース監視データベース１２８はともに、トレイアプリケーション１３６と通信している。トレイアプリケーション１３６は、コンピューティングデバイス１０２のシステムトレイ（Ｗｉｎｄｏｗｓ  ＯＳ）またはメニューバー（Ｍａｃ  ＯＳ）に表示され得るユーザ向けソフトウェアアプリケーションである。トレイアプリケーション１３６は、会議アプリケーション１０４を使用するときに、イベント情報および／またはリソース監視データをユーザに提示することができる。たとえば、トレイアプリケーション１３６は、リソースモニタ１２４によって検出されたリソースの過剰使用、またはイベントログ１２２で受信された新しいイベントについてユーザにアラートを出してもよい。問題が発生したとき、ユーザは、この情報を使用して、問題をデバッグまたは別の方法で修正してもよい。
【００６３】
実施形態では、トレイアプリケーション１３６はまた、ユーザがウェブブラウザベースのアプリケーション１１３を起動することを可能にすることができる。ウェブブラウザベースのアプリケーション１１３は、会議アプリケーション１０４のユーザ構成またはデバッグを可能にするように構成されたシンコンポーネントユーザインターフェース（ＣＵＩ）または他のＨＴＭＬ５アプリケーションとすることができる。いくつかの実施形態では、ウェブベースのアプリケーション１１３は、ユーザアクセスを、アプリケーション１０４内のいくつかの構成可能なアイテムへのみに制限してもよい。図１に示すように、ウェブベースのアプリケーション１１３は、ウェブソケットペイロード内で渡される、たとえば、ＤＭＰ−ＴＣＰなどのウェブソケットベースのプロトコルを使用して、コントローラ１１４とインターフェースしてもよい。
【００６４】
図示の実施形態では、ウェブベースのアプリケーション１１３、イベントログデータベース１２２、リソース監視データベース１２８、トレイアプリケーション１３６、およびリソース監視コンポーネント１２４は、コンピューティングデバイス１０２に格納されている。他の実施形態では、これらのコンポーネントのうちの１つまたは複数が、リモートサーバまたは他のコンピューティングデバイスに格納され、コンピューティングデバイス１０２によってアクセスされてもよい。
【００６５】
実施形態によれば、会議アプリケーション１０４は、ライセンス付与されたソフトウェア製品として配布されてもよい。ライセンス付与された機能、ライセンス付与モデル、および販売戦略の厳密なセットは、ライセンス元およびライセンス先によって異なる場合がある。たとえば、ライセンスは、会議アプリケーション１０４の動作中に使用するための所定数のチャネル（たとえば、４、１６など）の購入を伴う場合がある。実施形態によれば、ＤＳＰ１１８によって提供されるチャネル（またはローブ）の数は、ライセンスによって購入されたチャネル数に応じて拡張可能である。しかし、会議アプリケーション１０４内のライセンス付与されたコンポーネントの全体的な実装は、チャネル数に関係なく同じままである。
【００６６】
図１に示すように、会議アプリケーション１０４は、１つまたは複数のライセンス付与サーバ１３８と通信しているライセンス付与コンポーネント１２０を含む。ライセンス付与コンポーネント１２０は、エンドユーザによって購入されたライセンスに従って会議アプリケーションの挙動を検証するように構成されてもよく、これは、オーディオおよび／もしくは制御データを交換もしくは通信するためにライセンス付与された数のチャネルのみが使用されていること、または特定の機能もしくは性能レベルのみが利用可能であることを保証することを含む。場合によっては、ライセンスは、様々なライセンスの組合せを可能にするのに十分な柔軟性を備えることができ、ライセンス付与コンポーネント１２０は、所与の会議環境に対応するために、ライセンス付与された数のチャネルを集約または分離するように構成され得る。たとえば、それぞれ４つのチャネルを必要とする２つの部屋を用いる会議プロジェクトは、８つのチャネルを含む単一のライセンスによってカバーされ得る。ライセンス付与サーバ１３８は、資格付与管理を提供するとともに、タイミングおよびコンプライアンス問題を管理し、顧客がライセンス付与されたソフトウェアをインストールすることを可能にし、またその他の方法で会議アプリケーション１０４に対するすべてのライセンス付与のニーズを処理する、サードパーティライセンス管理ツール（たとえば、Ｆｌｅｘｅｒａ  ＦＬｅｘＮｅｔ  Ｏｐｅｒａｔｉｏｎｓ（ＦＮＯ））を含むことができる。
【００６７】
実施形態では、図２に示すように、ライセンスによって所望のＤＳＰアクションが可能であるかどうかを判定するために、ＤＳＰ１１８にコマンドを送る直前にコントローラ２００のライセンス付与インターフェース２０４が呼び出されてもよい。実施形態によれば、ＤＳＰ１１８は、各ライセンスに関連付けられた可変数のチャネルに対応するために、チャネルごとに参照するように構成され得る。ユーザが購入したライセンスによって引き起こされる制限は、ユーザインターフェース（たとえば、ウェブベースのアプリケーション１１３またはシステム監視アプリケーション１１７）におけるユーザのアクションも制限することができる。ライセンス付与サーバ１３８および／またはライセンス付与コンポーネント１２０を介して、会議アプリケーション１０４にライセンスライブラリ（図示せず）がリンクされてもよく、ライセンス機能を検証するために、ライセンスライブラリとインターフェースするための追加のコードが実行されてもよい。ライセンスがまだ有効であることを保証するために、所与のライセンスの検証は、タイマーで（たとえば、２４時間ごとに）発生することが可能である。
【００６８】
好ましい実施形態によれば、会議アプリケーション１０４は、ユーザログインなしで自動的に開始し、Ｗｉｎｄｏｗｓ  ＯＳアズアサービス（Ｗｉｎｄｏｗｓ  ＯＳ  ａｓ  ａ  ｓｅｒｖｉｃｅ）の下で実行し、コントローラ２００およびＤＳＰ１１８コンポーネントは、単一の実行可能プログラムの一部である。会議アプリケーション１０４の展開は、Ｗｉｎｄｏｗｓの下でシステムサービスとしてコントローラ２００およびＤＳＰコンポーネント１１８をインストールすることを含む。インストールは、サービスが自動的に開始されるように構成することができる。会議アプリケーション１０４のインストーラは、パッケージ化して任意の所望のプラットフォームにインストールする能力を有し、サードパーティコンポーネント（たとえば、ネットワークオーディオライブラリ１２６およびそのコントローラ、ウェブサーバなど）のインストールを呼び出す機能、ならびに／または、必要とされる再配布／依存性もしくは必要とされるＷｉｎｄｏｗｓ更新を収集してインストールする機能を提供し、たとえば、利用可能なＮＩＣＳまたはネットワークオーディオライブラリ１２６などのシステムリソースへのアクセスを提供し、インストールプロセス中にエンドユーザをウォークスルーして包括的なフィードバックを提供するための柔軟なユーザインターフェース（ＵＩ）を有してもよい。
【００６９】
インストーラの一例としては、ＩｎｓｔａｌｌＡｎｙｗｈｅｒｅがあり、これは、物理環境、仮想環境、およびクラウド環境に専門的で一貫性のあるマルチプラットフォームインストール体験を提供する必要があるアプリケーション製作者向けのインストール開発ソリューションである。ＩｎｓｔａｌｌＡｎｙｗｈｅｒｅは、オンプレミスプラットフォーム（Ｗｉｎｄｏｗｓ、Ｌｉｎｕｘ（登録商標）、Ａｐｐｌｅ、Ｓｏｌａｒｉｓ、ＡＩＸ、ＨＰ−ＵＸ、およびＩＢＭ）の信頼性の高いインストールを作成することができ、ユーザが既存および新規のソフトウェア製品を仮想およびクラウドインフラストラクチャに取り込み、Ｄｏｃｋｅｒコンテナをすべて単一のＩｎｓｔａｌｌＡｎｙｗｈｅｒｅプロジェクトから作成できるようにする。
【００７０】
インストーラの別の一例は、ＩｎｓｔａｌｌＢｕｉｌｄｅｒであり、これは、現在サポートされているすべてのバージョンのＷｉｎｄｏｗｓ、Ｍａｃ  ＯＳ  Ｘ、Ｌｉｎｕｘ（登録商標）、およびすべての主要なＵｎｉｘオペレーティングシステムのインストーラを作成することができる。また、ＩｎｓｔａｌｌＢｕｉｌｄｅｒは、必要に応じて、セットアッププロセスの下位互換性を最大化するために、多数のより古いプラットフォームおよびレガシープラットフォームをサポートする。
【００７１】
いくつかの実施形態では、集中型監視システム（たとえば、システム監視アプリケーション１１７）を使用して各部屋から監視データを収集し、リソース性能測定の全体像を提供することによって、会議アプリケーション１０４が複数の部屋にわたって実装され得る。たとえば、単一の会議環境が、ネットワーク接続を介したオーディオおよび／またはビデオフィードを介して相互接続された複数の部屋で構成されてもよい。このような場合、各部屋は、会議アプリケーション１０４にアクセスするか、またはそれによって制御されてもよく、会議アプリケーション１０４は、それ自体を、会議システム１００のシステム監視アプリケーション１１７によって監視されている任意の他のネットワーク化されたシステムデバイスとして提示してもよい。実施形態では、会議アプリケーション１０４の多室構成は、任意の数の部屋に対応するために高度に拡張可能とすることができる。
【００７２】
会議システム１００の様々なコンポーネント、および／またはそこに含まれるサブシステムは、（たとえば、図４に示す）プロセッサおよびメモリを備えたコンピューティングデバイスなどの１つまたは複数のコンピュータによって、ならびに／またはハードウェア（たとえば、ディスクリート論理回路、特定用途向け集積回路（ＡＳＩＣ）、プログラマブルゲートアレイ（ＰＧＡ）、フィールドプログラマブルゲートアレイ（ＦＰＧＡ）など）によって実行可能なソフトウェアを使用して実装されてもよい。たとえば、いくつかまたはすべてのコンポーネントは、ディスクリート回路デバイスを使用してもよく、かつ／または、本明細書に記載の１つまたは複数のプロセスもしくは動作を実行するように構成された、メモリに記憶されたプログラムコードを実行するプロセッサ（たとえば、オーディオプロセッサおよび／またはデジタル信号プロセッサ）を使用してもよい。実施形態では、プロセスの全部または一部が、コンピューティングデバイス１０２内もしくは外部の１つまたは複数のプロセッサおよび／または他の処理デバイス（たとえば、アナログデジタル変換器、暗号化チップなど）によって実行されてもよい。さらに、１つまたは複数の他のタイプのコンポーネント（たとえば、メモリ、入力および／または出力デバイス、送信機、受信機、バッファ、ドライバ、ディスクリートコンポーネント、論理回路など）もまた、本明細書に記載の動作のいずれか、一部、またはすべてを実行するために、プロセッサおよび／または他の処理コンポーネントと組み合わせて利用されてもよい。たとえば、図３に示す１つまたは複数の動作を実行するために、システム１００のメモリに記憶されたプログラムコードが、オーディオプロセッサによって実行されてもよい。
【００７３】
実施形態によれば、コンピューティングデバイス１０２は、所与の会議環境内の１つまたは複数のマイクロフォンおよび１つまたは複数のスピーカに通信可能に結合され得る、スマートフォン、タブレット、ラップトップ、デスクトップコンピュータ、スモールフォームファクタ（ＳＦＦ：ｓｍａｌｌ−ｆｏｒｍ−ｆａｃｔｏｒ）コンピュータ、スマートデバイス、または任意の他のコンピューティングデバイスとすることができる。いくつかの例では、コンピューティングデバイス１０２は、デスクトップコンピュータなどの固定型でもよく、コンピュータとは別のマイクロフォンおよび／またはスピーカ（たとえば、スタンドアロンのマイクロフォンおよび／またはスピーカ、会議デバイスのマイクロフォンおよび／またはスピーカなど）に通信可能に結合されてもよい。他の例では、コンピューティングデバイス１０２は、スマートフォン、タブレット、もしくはラップトップなどのモバイルまたは非固定型とすることができる。いずれの場合も、コンピューティングデバイス１０２はまた、ネイティブマイクロフォンデバイスおよび／またはネイティブスピーカデバイスを含んでもよい。
【００７４】
図４は、会議システム１００の例示的なコンピューティングデバイス４００の簡略ブロック図を示す。実施形態では、コンピューティングデバイス４００のような１つまたは複数のコンピューティングデバイスは、会議システム１００内に含まれてもよく、かつ／またはコンピューティングデバイス１０２を構成してもよい。コンピューティングデバイス４００は、本開示に記載の（添付図面に示す）機能または動作などの様々な機能または動作を実行するように構成されてもよい。
【００７５】
コンピューティングデバイス４００は、たとえば、プロセッサ４０２、メモリ４０４、ユーザインターフェース４０６、通信インターフェース４０８、ネイティブスピーカデバイス４１０、およびネイティブマイクロフォンデバイス４１２を含む様々なコンポーネントを含んでもよく、これらはすべて、システムバス、ネットワーク、または他の接続メカニズム４１４によって通信可能に結合される。本明細書に開示される例は、互いに物理的に近接して配置されても配置されなくてもよいコンポーネントを有するコンピューティングデバイスおよび／またはシステムを指し得ることが理解されるべきである。特定の実施形態は、クラウドベースのシステムまたはデバイスの形態をとることができ、「コンピューティングデバイス」という用語は、本明細書に記載の機能のうちの１つまたは複数を実行するように構成された、分散型のシステムおよびデバイス（クラウドに基づくものなど）、ならびにソフトウェア、ファームウェア、および他のコンポーネントを含むと理解されるべきである。さらに、上記のように、コンピューティングデバイス４００の１つまたは複数の機能は、物理的にリモート（たとえば、スタンドアロンマイクロフォン）でもよく、たとえば、通信インターフェース４０８を介して、コンピューティングデバイスに通信可能に結合されてもよい。
【００７６】
プロセッサ４０２は、汎用プロセッサ（たとえば、マイクロプロセッサ）および／または専用プロセッサ（たとえば、デジタル信号プロセッサ（ＤＳＰ））を含んでもよい。プロセッサ４０２は、マイクロプロセッサ、マイクロコントローラベースのプラットフォーム、集積回路、１つまたは複数のフィールドプログラマブルゲートアレイ（ＦＰＧＡ）、および／または１つまたは複数の特定用途向け集積回路（ＡＳＩＣ）などであるがこれらに限定されない、任意の好適な処理デバイスまたは処理デバイスのセットとすることができる。
【００７７】
メモリ４０４は、揮発性メモリ（たとえば、不揮発性ＲＡＭ、磁気ＲＡＭ、強誘電体ＲＡＭなどを含むＲＡＭ）、不揮発性メモリ（たとえば、ディスクメモリ、フラッシュメモリ、ＥＰＲＯＭ、ＥＥＰＲＯＭ、メモリスタベースの不揮発性ソリッドステートメモリなど）、変更不可能なメモリ（ＥＰＲＯＭなど）、読み取り専用メモリ、および／または大容量記憶デバイス（たとえば、ハードドライブ、ソリッドステートドライブなど）とすることができる。いくつかの例では、メモリ４０４は、複数の種類のメモリ、具体的には揮発性メモリおよび不揮発性メモリを含む。
【００７８】
メモリ４０４は、本開示の方法を動作するためのソフトウェアおよび／または会議アプリケーション１０４などの１つまたは複数の命令セットが埋め込まれ得るコンピュータ可読媒体とすることができる。命令は、本明細書に記載されるような方法または論理のうちの１つまたは複数を具現化してもよい。一例として、命令は、命令の実行中、メモリ４０４、コンピュータ可読媒体のうちのいずれか１つまたは複数の中、かつ／またはプロセッサ４０２の中に、完全にまたは少なくとも部分的に存在することができる。
【００７９】
「非一時的コンピュータ可読媒体」および「コンピュータ可読媒体」という用語は、集中型もしくは分散型データベースなどの単一の媒体もしくは複数の媒体、ならびに／または、１つまたは複数の命令セットを記憶する関連するキャッシュおよびサーバを含む。さらに、「非一時的コンピュータ可読媒体」および「コンピュータ可読媒体」という用語は、プロセッサによって実行するための命令セットを記憶、符号化、または保持することが可能であるか、または本明細書に開示される方法もしくは動作のうちのいずれか１つまたは複数をシステムに実行させる、任意の有形の媒体を含む。「コンピュータ可読媒体」という用語は、本明細書で使用される場合、任意のタイプのコンピュータ可読記憶デバイスおよび／または記憶ディスクを含み、かつ伝搬信号を除外するように明示的に定義される。
【００８０】
ユーザインターフェース４０６は、デバイスのユーザとの対話を容易にすることができる。したがって、ユーザインターフェース４０６は、キーボード、キーパッド、マウス、タッチセンシティブパネル、マイクロフォン、およびカメラなどの入力コンポーネント、ならびに（たとえば、タッチセンシティブパネルと組み合わされ得る）表示画面、サウンドスピーカ、および触覚フィードバックシステムなどの出力コンポーネントを含んでもよい。ユーザインターフェース４０６はまた、短距離トランシーバ（ＲＦＩＤ、Ｂｌｕｅｔｏｏｔｈなど）、電話インターフェース、セルラ通信ポート、ルータ、または他のタイプのネットワーク通信機器などの、入力または出力と通信するデバイスを含んでもよい。ユーザインターフェース４０６は、コンピューティングデバイス４００の内部であってもよく、または、コンピューティングデバイス４００の外部であり、無線で、もしくはユニバーサルシリアルバスポートなどを介して接続ケーブルを経由して、コンピューティングデバイス４００に接続されてもよい。
【００８１】
通信インターフェース４０８は、デバイス４００が１つまたは複数のプロトコルに従って１つまたは複数のデバイス（またはシステム）と通信できるように構成されてもよい。一例では、通信インターフェース４０８は、Ｅｔｈｅｒｎｅｔインターフェースまたは高精細シリアルデジタルインターフェース（ＨＤ−ＳＤＩ：ｈｉｇｈ−ｄｅｆｉｎｉｔｉｏｎ  ｓｅｒｉａｌ−ｄｉｇｉｔａｌ−ｉｎｔｅｒｆａｃｅ）などの有線インターフェースとすることができる。別の例として、通信インターフェース４０８は、セルラ、Ｂｌｕｅｔｏｏｔｈ、またはＷＩ−ＦＩインターフェースなどの無線インターフェースとすることができる。
【００８２】
いくつかの例では、通信インターフェース４０８は、コンピューティングデバイス４００が、会議環境内に配置された１つまたは複数のマイクロフォンおよび／またはスピーカ（たとえば、図１に示す会議デバイス１０６）との間で情報を送受信することを可能にしてもよい。この情報には、ローブまたはピックアップパターン情報、位置情報、方向情報、マイクロフォンの１つまたは複数の特性を調整するためのコマンドなどが含まれ得る。
【００８３】
データバス４１４は、プロセッサ４０２、メモリ４０４、ユーザインターフェース４０６、通信インターフェース４０８、ネイティブスピーカ４１０、ネイティブマイクロフォン４１２、およびまたは任意の他の適用可能なコンピューティングデバイスコンポーネントを通信可能に結合するための１つまたは複数のワイヤ、トレース、または他のメカニズムを含んでもよい。
【００８４】
実施形態では、メモリ４０４は、本明細書に記載の会議プラットフォームの全部もしくは一部、会議システム１００、会議アプリケーション１０４、および／もしくは、たとえば、図３に示すプロセス３００を含む、それに関連する方法もしくはプロセスを実装または動作するための１つまたは複数のソフトウェアプログラムを記憶する。一態様によれば、たとえば、図１に示す会議システム１００などの会議環境のためのオーディオ処理のコンピュータ実装方法は、１つまたは複数のコンピューティングデバイス４００を使用して実装することができ、図３のプロセス３００によって表される動作の全部または一部を含むことができる。前記方法は、複数のオーディオソースで入力オーディオ信号を受信することを含み、受信することは、仮想オーディオデバイスドライバ（たとえば、図１に示すＶＡＤＤ１３０など）において、会議ソフトウェアモジュール（たとえば、図１に示すサードパーティ会議ソフトウェア１０８など）から遠端入力オーディオ信号（たとえば、図３に示すＶＡＤＤ入力３１６）を受信すること、および、ネットワークオーディオライブラリ（たとえば、図１に示すネットワークオーディオライブラリ１２６など）において、１つまたは複数の近端オーディオデバイス（たとえば、図１に示す会議デバイス１０６など）から近端入力オーディオ信号（たとえば、図３に示すネットワークマイク入力３０２など）を受信することを含む。方法は、デジタル信号処理コンポーネント（たとえば、図１に示すＤＳＰコンポーネント１１８など）を使用して入力オーディオ信号を処理することをさらに含む。処理することは、近端入力オーディオ信号のうちの１つまたは複数に、（たとえば、図３に示すＡＥＣ／ＮＲ３０７で示すように）音響エコー除去技法を適用すること、ならびに、入力オーディオ信号に基づいてオーディオ出力信号（たとえば、図３に示すネットワークライン出力３１０および／またはＶＡＤＤ出力３１８）を生成することを含む。
【００８５】
いくつかの態様によれば、ＤＳＰコンポーネントによる入力オーディオ信号の処理は、（たとえば、図３のオートミキサ３０４によって示すように）近端入力オーディオ信号のうちの２つ以上を混合してオートミックス出力信号を生成することも含む。さらなる態様によれば、ＤＳＰコンポーネントによるオーディオ出力信号の生成は、マトリックスミキサ（たとえば、図３のマトリックスミキサ３０６など）を使用してオーディオ出力信号を生成することを含む。一態様によれば、マトリックスミキサは、所与のオーディオソースについて、所与のオーディオソースから受信した任意の入力オーディオ信号を除外するとともに、オートミキサによって生成されたオートミックス出力信号および／または近端入力オーディオ信号のうちの１つまたは複数を１つまたは複数の遠端入力オーディオ信号と混合するように構成されてもよい。
【００８６】
いくつかの実施形態では、複数のオーディオソースは、たとえば、コンピューティングデバイス４００のネイティブマイクロフォンおよび／またはスピーカなどの１つまたは複数のネイティブオーディオデバイス、またはより具体的には、ネイティブオーディオデバイスをコンピューティングデバイス１０２に通信可能に結合するように構成されたデバイスドライバ（たとえば、ネイティブオーディオＩ／Ｏドライバ１１０）をさらに含む。このような場合、入力オーディオ信号は、ネイティブ入力オーディオ信号（たとえば、図３に示すネイティブ入力３１２など）をさらに含んでもよく、出力オーディオ信号は、ネイティブ出力オーディオ信号（たとえば、図３に示すネイティブ出力３１４など）をさらに含んでもよい。ネイティブオーディオデバイスは、コンピューティングデバイス４００の周囲でまたは隣接してオーディオを捕捉および／またはブロードキャストするので、近端オーディオソースと見なされてもよい。
【００８７】
いくつかの態様によれば、ＤＳＰコンポーネントによる入力オーディオ信号の処理は、事前に選択されたオーディオ処理パラメータを、近端オーディオデバイスのうちの少なくとも１つのデジタル信号処理コンポーネントに提供すること、および（たとえば、図３の自動構成３２０で示すように）事前に選択されたパラメータを対応する近端入力オーディオ信号に適用することをさらに含む。一態様によれば、ＤＳＰコンポーネントによる入力オーディオ信号の処理は、少なくとも１つの近端オーディオデバイスに関連するデバイス情報を識別すること、および識別されたデバイス情報に基づいて、前記近端オーディオデバイスのメモリから１つまたは複数の事前に選択されたオーディオ処理パラメータを検索することをさらに含む。
【００８８】
いくつかの態様によれば、ＤＳＰコンポーネントによる入力オーディオ信号の処理は、（たとえば、図３の復号モジュール３２１で示すように）１つまたは複数の入力オーディオ信号を復号すること、および（たとえば、図３の暗号化モジュール３２０で示すように）１つまたは複数のオーディオ出力信号を暗号化することをさらに含む。一態様によれば、ネットワークオーディオライブラリで受信された近端オーディオ信号は、（たとえば、会議デバイス１０６自体によって）暗号化されてもよく、したがって、処理の前に復号を必要とする。このような場合、ネットワークオーディオライブラリ用に生成されたオーディオ出力信号は、送信前に暗号化されてもよい。
【００８９】
いくつかの態様によれば、方法は、（たとえば、図１のライセンス付与モジュール１２０で示すように）会議環境に関連する１つまたは複数のライセンスに基づいて、近端入力オーディオ信号を受信するためにデジタル信号処理コンポーネントで利用可能なチャネル数を決定することをさらに含む。さらなる態様によれば、方法は、（たとえば、図１のリソース監視データベース１２８で示すように）プラットフォームによって使用されているコンピューティングリソースについての使用情報を収集すること、（たとえば、図１のリソース監視モジュール１２４で示すように）その情報に基づいて１つまたは複数のアラートを生成すること、ならびにユーザへの提示のために前記アラートをユーザインターフェース（たとえば、図１に示すウェブベースのアプリケーション１１３および／またはトレイアプリケーション１２６）に提供することをさらに含む。さらなる態様によれば、方法は、（たとえば、図１のミュート論理１３４で示すように）所与のオーディオソースのミュートステータスを、会議環境内の他のすべてのオーディオソース間で同期させることをさらに含む。いくつかの態様によれば、ＤＳＰコンポーネントによる入力オーディオ信号の処理は、（たとえば、図１のクロック同期モジュール１３１で示すように）受信された入力オーディオ信号を単一のクロックに同期させることを含む。
【００９０】
本開示は、技術の真の、意図された、公正な範囲および趣旨を制限するのではなく、技術に従って様々な実施形態を作成および使用する方法を説明することを意図している。前述の説明は、網羅的であること、または開示された正確な形式に限定されることを意図するものではない。上記の教示に照らして、修正または変形が可能である。実施形態は、記載された技術の原理およびその実際の適用の最良の説明を提供し、当業者が企図される特定の用途に適した様々な修正を加えて、様々な実施形態における技術を利用できるようにするために選択および説明された。このような修正および変形はすべて、それらが公正に、合法的に、公平に権利を与えられる範囲に従って解釈されるとき、特許出願の係属中に修正され得る添付の特許請求の範囲およびそのすべての等価物によって決定される実施形態の範囲内である。
【図１】
2021527366.tif 000003
【図２】
2021527366.tif 000004
【図３】
2021527366.tif 000005
【図４】
2021527366.tif 000006
【国際調査報告】
2021527366.tif 000007
2021527366.tif 000008