(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2024-02-06
(45)【発行日】2024-02-15
(54)【発明の名称】統合会議プラットフォームのためのシステム及び方法
(51)【国際特許分類】
H04R 3/00 20060101AFI20240207BHJP
H04R 3/02 20060101ALI20240207BHJP
【FI】
H04R3/00 320
H04R3/02
(21)【出願番号】P 2020570000
(86)(22)【出願日】2019-05-28
(86)【国際出願番号】 US2019034224
(87)【国際公開番号】W WO2019240940
(87)【国際公開日】2019-12-19
【審査請求日】2022-05-27
(32)【優先日】2018-06-15
(33)【優先権主張国・地域又は機関】US
(73)【特許権者】
【識別番号】504189151
【氏名又は名称】シュアー アクイジッション ホールディングス インコーポレイテッド
【氏名又は名称原語表記】SHURE ACQUISITION HOLDINGS,INC.
(74)【代理人】
【識別番号】100094569
【氏名又は名称】田中 伸一郎
(74)【代理人】
【識別番号】100103610
【氏名又は名称】▲吉▼田 和彦
(74)【代理人】
【識別番号】100109070
【氏名又は名称】須田 洋之
(74)【代理人】
【識別番号】100067013
【氏名又は名称】大塚 文昭
(74)【代理人】
【識別番号】100086771
【氏名又は名称】西島 孝喜
(74)【代理人】
【識別番号】100109335
【氏名又は名称】上杉 浩
(74)【代理人】
【識別番号】100120525
【氏名又は名称】近藤 直樹
(74)【代理人】
【識別番号】100139712
【氏名又は名称】那須 威夫
(72)【発明者】
【氏名】モラヴィ リーフ ジョセフ
(72)【発明者】
【氏名】アブラハム マシュー ティー
(72)【発明者】
【氏名】グニア ポール
(72)【発明者】
【氏名】ギブス ジョン ケイシー
(72)【発明者】
【氏名】ファラン ルーカス ブラント
【審査官】大石 剛
(56)【参考文献】
【文献】国際公開第2011/143434(WO,A1)
【文献】米国特許出願公開第2011/0099485(US,A1)
(58)【調査した分野】(Int.Cl.,DB名)
H04R 3/00
H04R 3/02
(57)【特許請求の範囲】
【請求項1】
入力オーディオ信号を提供する複数のオーディオソースであって、前記オーディオソースが、
会議ソフトウェアモジュールから遠端入力オーディオ信号を受信するように構成された仮想オーディオデバイスドライバ、および
1つまたは複数の近端オーディオデバイスから近端入力オーディオ信号を受信するように構成されたネットワークオーディオライブラリ
を含む、複数のオーディオソースと、
前記オーディオソースから前記入力オーディオ信号を受信し、前記受信した信号に基づいてオーディオ出力信号を生成するように構成され、前記近端入力オーディオ信号のうちの1つまたは複数に音響エコー除去技法を適用するように構成された音響エコー除去モジュールを備える、デジタル信号処理コンポーネントと
を備
え、
前記仮想オーディオデバイスドライバ、前記ネットワークオーディオライブラリ、及び前記デジタル信号処理コンポーネントのそれぞれは、前記1つまたは複数の近端オーディオデバイスに接続され、前記会議ソフトウェアモジュールを含むローカルのコンピューティングデバイス上に格納され、
前記仮想オーディオデバイスドライバは、前記会議ソフトウェアモジュールへのハードウェアオーディオデバイスである、ソフトウェアベースの会議プラットフォーム。
【請求項2】
前記デジタル信号処理コンポーネントが、前記近端入力オーディオ信号のうちの2つ以上を混合してオートミックス出力信号を生成するように構成されたオートミキシングモジュールをさらに備える、請求項1に記載のプラットフォーム。
【請求項3】
前記デジタル信号処理コンポーネントが、前記オーディオ出力信号を生成するように構成されたマトリックスミキシングモジュールをさらに備える、請求項1に記載のプラットフォーム。
【請求項4】
事前に選択されたオーディオ処理パラメータを、前記近端オーディオデバイスのうちの少なくとも1つの前記デジタル信号処理コンポーネントに提供するように構成されたシステム構成コンポーネントをさらに備え、前記デジタル信号処理コンポーネントが、前記事前に選択されたパラメータを、対応する近端入力オーディオ信号に適用するようにさらに構成される、請求項1に記載のプラットフォーム。
【請求項5】
前記システム構成コンポーネントが、前記少なくとも1つの近端オーディオデバイスに関連するデバイス情報を識別し、前記識別されたデバイス情報に基づいて、前記近端オーディオデバイスのメモリから1つまたは複数の事前に選択されたオーディオ処理パラメータを検索するようにさらに構成される、請求項4に記載のプラットフォーム。
【請求項6】
前記デジタル信号処理コンポーネントが、
前記入力オーディオ信号のうちの1つまたは複数を復号するように構成された復号モジュールと、
前記オーディオ出力信号のうちの1つまたは複数を暗号化するように構成された暗号化モジュールと
をさらに備える、請求項1に記載のプラットフォーム。
【請求項7】
前記ネットワークオーディオライブラリは、前記1つまたは複数の近端オーディオデバイス
とネットワークオーディオ制御インターフェースを使用し
てインターフェース
し、オーディオインターフェースを使用して前記デジタル信号処理コンポーネントとインターフェースする
、ように構成される、請求項1に記載のプラットフォーム。
【請求項8】
前記仮想オーディオデバイスドライバは、前記会議ソフトウェアモジュール
と第1のアプリケーションプログラミングインターフェースを使用し
てインターフェース
し、第2のアプリケーションプログラミングインターフェースを使用して前記デジタル信号処理コンポーネントとインターフェースする
、ように構成される、請求項1に記載のプラットフォーム。
【請求項9】
制御インターフェースを使用して前記システム構成コンポーネントとインターフェースし、第3のアプリケーションプログラミングインターフェースを使用して前記ネットワークオーディオライブラリとインターフェースし、第4のアプリケーションプログラミングインターフェースを使用して前記デジタル信号処理コンポーネントとインターフェースするように構成されたコントローラモジュールをさらに備える、請求項
4に記載のプラットフォーム。
【請求項10】
前記プラットフォームに関連付けられた1つまたは複数のライセンスに基づいて、前記近端入力オーディオ信号を受信するために前記デジタル信号処理コンポーネントで利用可能なチャネル数を決定するように構成されたライセンス付与モジュールをさらに備える、請求項1に記載のプラットフォーム。
【請求項11】
前記仮想オーディオデバイスドライバが、所与のオーディオソースのミュートステータスを、前記プラットフォーム内の他のすべてのオーディオソース間で同期させるように構成されたミュート論理モジュールを含む、請求項1に記載のプラットフォーム。
【請求項12】
前記デジタル信号処理コンポーネントが、前記受信した入力オーディオ信号を単一のクロックに同期させるように構成されたクロック同期モジュールをさらに含む、請求項1に記載のプラットフォーム。
【請求項13】
前記プラットフォームによって使用されているコンピューティングリソースの使用情報を収集し、その情報に基づいて1つまたは複数のアラートを生成し、ユーザに提示するために、ユーザインターフェースに前記アラートを提供するように構成されたリソース監視モジュールをさらに備える、請求項1に記載のプラットフォーム。
【請求項14】
会議環境のためのオーディオ処理のコンピュータ
実施方法であって、
仮想オーディオデバイスドライバ及びネットワークオーディオライブラリを含む複数のオーディオソースで入力オーディオ信号を受信するステップであって、
前記仮想オーディオデバイスドライバにおいて、会議ソフトウェアモジュールから遠端入力オーディオ信号を受信することと、
前記ネットワークオーディオライブラリにおいて、1つまたは複数の近端オーディオデバイスから近端入力オーディオ信号を受信することと
を含む、受信するステップと、
デジタル信号処理コンポーネントを使用して前記入力オーディオ信号を処理するステップであって、
前記近端入力オーディオ信号のうちの1つまたは複数に音響エコー除去技法を適用することと、
前記入力オーディオ信号に基づいてオーディオ出力信号を生成することと
を含む、処理するステップと
を含
み、
前記仮想オーディオデバイスドライバ、前記ネットワークオーディオライブラリ、及び前記デジタル信号処理コンポーネントのそれぞれは、前記1つまたは複数の近端オーディオデバイスに接続され、前記会議ソフトウェアモジュールを含むローカルのコンピューティングデバイス上に格納され、
前記仮想オーディオデバイスドライバは前記会議ソフトウェアモジュールへのハードウェアオーディオデバイスである、コンピュータ
実施方法。
【請求項15】
前記処理するステップが、前記近端入力オーディオ信号のうちの2つ以上を混合して、オートミックス出力信号を生成することをさらに含む、請求項14に記載の方法。
【請求項16】
前記生成することが、マトリックスミキサを使用して前記オーディオ出力信号を生成することを含む、請求項14に記載の方法。
【請求項17】
事前に選択されたオーディオ処理パラメータを、前記近端オーディオデバイスのうちの少なくとも1つの前記デジタル信号処理コンポーネントに提供するステップをさらに含み、
前記処理するステップが、前記事前に選択されたパラメータを、対応する近端入力オーディオ信号に適用することをさらに含む、請求項14に記載の方法。
【請求項18】
前記少なくとも1つの近端オーディオデバイスに関連するデバイス情報を識別するステップと、
前記識別されたデバイス情報に基づいて、前記近端オーディオデバイスのメモリから1つまたは複数の事前に選択されたオーディオ処理パラメータを検索するステップと
をさらに含む、請求項17に記載の方法。
【請求項19】
前記処理するステップが、
前記入力オーディオ信号のうちの1つまたは複数を復号することと、
前記オーディオ出力信号のうちの1つまたは複数を暗号化することと
をさらに含む、請求項14に記載の方法。
【請求項20】
前記会議環境に関連付けられた1つまたは複数のライセンスに基づいて、前記近端入力オーディオ信号を受信するために前記デジタル信号処理コンポーネントで利用可能なチャネル数を決定するステップをさらに含む、請求項14に記載の方法。
【請求項21】
前記受信した入力オーディオ信号を単一のクロックに同期させるステップをさらに含む、請求項14に記載の方法。
【請求項22】
前記
会議環境によって使用されているコンピューティングリソースの使用情報を収集するステップと、
その情報に基づいて1つまたは複数のアラートを生成するステップと、
ユーザに提示するために、ユーザインターフェースに前記アラートを提供するステップと
をさらに含む、請求項14に記載の方法。
【請求項23】
所与のオーディオソースのミュートステータスを、前記会議環境内の他のすべてのオーディオソース間で同期させるステップをさらに含む、請求項14に記載の方法。
【請求項24】
近端オーディオ信号を捕捉するように構成された1つまたは複数の近端オーディオデバイスと、
前記1つまたは複数の近端オーディオデバイスに接続され、1つまたは複数のプロセッサと少なくとも1つのメモリデバイスとを含むローカルのコンピューティングデバイスであって、前記1つまたは複数のプロセッサによって実行されるように構成された、
複数のコンピュータソフトウェアプログラムであって、
前記ローカルのコンピューティングデバイスと通信可能に結合した少なくとも1つのリモートサーバから遠端オーディオ信号を受信するように構成された会議ソフトウェアモジュール、
前記会議ソフトウェアモジュールから前記遠端オーディオ信号を受信するように構成された仮想オーディオデバイスドライバ、
前記1つまたは複数の近端オーディオデバイスから前記近端オーディオ信号を受信するように構成されたネットワークオーディオライブラリ、および
前記ネットワークオーディオライブラリから前記近端オーディオ信号を受信し、前記仮想オーディオデバイスドライバから前記遠端オーディオ信号を受信し、前記受信した信号に基づいてオーディオ出力信号を生成するように構成された、デジタル信号処理コンポーネント
を含む1つまたは複数のプログラムと
を備える会議システムであって、
前記デジタル信号処理コンポーネントが、前記近端オーディオ信号のうちの1つまたは複数に音響エコー除去技法を適用するように構成された音響エコー除去モジュールを備
え、
前記仮想オーディオデバイスドライバは、前記会議ソフトウェアモジュールにハードウェアオーディオデバイスとして見える、会議システム。
【請求項25】
前記デジタル信号処理コンポーネントが、前記近端オーディオ信号のうちの2つ以上を混合してオートミックス出力信号を生成するように構成されたオートミキシングモジュールをさらに備える、請求項24に記載の会議システム。
【請求項26】
前記デジタル信号処理コンポーネントが、前記オーディオ出力信号を生成するように構成されたマトリックスミキシングモジュールをさらに備える、請求項24に記載の会議システム。
【請求項27】
前
記プログラムが、事前に選択されたオーディオ処理パラメータを、前記近端オーディオデバイスのうちの少なくとも1つの前記デジタル信号処理コンポーネントに提供するように構成されたシステム構成コンポーネントをさらに備え、前記デジタル信号処理コンポーネントが、前記事前に選択されたパラメータを、対応する近端オーディオ信号に適用するようにさらに構成される、請求項24に記載の会議システム。
【請求項28】
前記システム構成コンポーネントが、前記少なくとも1つの近端オーディオデバイスに関連するデバイス情報を識別し、前記識別されたデバイス情報に基づいて、前記近端オーディオデバイスの前記少なくとも1つのメモリから1つまたは複数の事前に選択されたオーディオ処理パラメータを検索するようにさらに構成される、請求項27に記載の会議システム。
【請求項29】
前記デジタル信号処理コンポーネントが、
前記入力オーディオ信号のうちの1つまたは複数を復号するように構成された復号モジュールと、
前記オーディオ出力信号のうちの1つまたは複数を暗号化するように構成された暗号化モジュールと
をさらに備える、請求項24に記載の会議システム。
【請求項30】
前記近端オーディオデバイスのうちの少なくとも1つが、前記信号を前記ネットワークオーディオライブラリに送信する前に、前記近端オーディオ信号を暗号化するように構成される、請求項29に記載の会議システム。
【請求項31】
前記1つまたは複数の近端オーディオデバイスが、少なくとも1つのマイクロフォンを備え
、ローカルネットワーク接続を使用して前記コンピューティングデバイスに接続されている会議デバイスを含む、請求項24に記載の会議システム。
【請求項32】
前記会議デバイスが、
前記遠端入力オーディオ信号を再生するための少なくとも1つのスピーカをさらに備える、請求項31に記載の会議システム。
【請求項33】
前
記プログラムが、前記システムに関連付けられた1つまたは複数のライセンスに基づいて、前記近端オーディオ信号を受信するために前記デジタル信号処理コンポーネントで利用可能なチャネル数を決定するように構成されたライセンス付与モジュールをさらに備える、請求項24に記載の会議システム。
【請求項34】
前記仮想オーディオデバイスドライバが、前記1つまたは複数の近端デバイスおよび前記会議ソフトウェアモジュールのうちの少なくとも1つに関連するミュートステータスを、前記システム全体で同期させるように構成されたミュート論理モジュールを備える、請求項24に記載の会議システム。
【請求項35】
前記デジタル信号処理コンポーネントが、前記近端オーディオ信号および前記遠端オーディオ信号を単一のクロックに同期させるように構成されたクロック同期モジュールをさらに備える、請求項24に記載の会議システム。
【請求項36】
ユーザインターフェースをさらに備え、前
記複数のプログラムが、前
記プログラムによって使用されているコンピューティングリソースの使用情報を収集し、その情報に基づいて1つまたは複数のアラートを生成し、ユーザに提示するために、前記アラートを前記ユーザインターフェースに提供するように構成されたリソース監視モジュールをさらに備える、請求項24に記載の会議システム。
【発明の詳細な説明】
【技術分野】
【0001】
相互参照
本出願は、2018年6月15日に出願された米国仮出願第62/685,689号に対する優先権を主張するものであり、その内容全体が本明細書に組み込まれる。
【0002】
本出願は、一般に、会議システムおよび方法に関し、より詳細には、既存の室内ハードウェアを使用して動作するように構成された会議ソフトウェアプラットフォームに関する。
【背景技術】
【0003】
会議室、役員室、ビデオ会議場などの会議環境は、通常、そのような環境内でアクティブである様々なオーディオソースからの音を捕捉するための1つまたは複数のマイクロフォンを備える個別の会議デバイスの使用を伴う。オーディオソースには、たとえば、室内の人間の話者、場合によっては、部屋にいない人間の話者から受信されたオーディオを再生するラウドスピーカが含まれ得る。捕捉された音は、(サウンド補強用の)増幅スピーカを介して環境内のローカルの聴衆に対して、かつ/または、会議デバイス内に含まれている、もしくは会議デバイスに接続された通信ハードウェアを使用して(たとえば、テレビ放送および/もしくはウェブ放送を経由して)、環境から離れている他の人に対して広められてもよい。会議デバイスは、会議環境から離れている人間の話者から通信ハードウェアを介して受信された大音量のオーディオ信号を再生するための1つまたは複数のスピーカまたはオーディオ再生デバイスも含み得る。典型的な会議デバイスに含まれる他のハードウェアは、たとえば、1つまたは複数のプロセッサ、メモリ、入力/出力ポート、およびユーザインターフェース/制御を含み得る。
【0004】
会議デバイスは、特定の環境のニーズに合わせて、様々なサイズ、フォームファクタ、取り付けオプション、および配線オプションで利用可能である。会議デバイスのタイプおよび特定の会議環境におけるその配置は、オーディオソースの場所、物理的なスペース要件、美観、部屋のレイアウト、および/または他の考慮事項に依存し得る。たとえば、いくつかの環境では、会議デバイスは、オーディオソースに近くなるように、テーブル上または演台上に配置されることがある。他の環境では、たとえば、部屋全体からの音を捕捉するために、所与の会議デバイスのマイクロフォンが頭上に取り付けられることがある。
【0005】
このような環境で生成された分散したオーディオ信号は、通常、単一のオーディオ信号処理デバイス、コンピュータ、またはサーバに集約される。このような場合、たとえば、自動ミキシング、マトリックスミキシング、遅延、コンプレッサ、およびパラメトリックイコライザ(PEQ:parametric equalizer)機能を使用してオーディオ信号を処理するために、デジタル信号プロセッサ(DSP:digital signal processor)が会議環境に含まれてもよい。既存のDSPハードウェアの機能のさらなる説明および例示的な実施形態は、参照によりその全体が本明細書に組み込まれる、SHUREのP300 Intellimix Audio Conferencing Processorに関するマニュアルにおいて見出すことができる。P300のマニュアルには、音響エコー除去、ノイズ低減、および自動利得制御の8つのチャネルを含む高品質のオーディオ体験を提供するために、オーディオ/ビデオ会議アプリケーション用に最適化されたアルゴリズムが含まれている。
【0006】
ハードウェアデバイスを使用してDSP機能を提供することの1つの欠点は、拡張性および適応性の制約である。たとえば、ハードウェアDSPは、アナログ入力およびUSB入力などの特定のオーディオ入力のセットを含む。ユーザが後日これらのハードウェアベースの制限を超えた場合、ユーザが新しいデバイスによって提供されるすべての機能(たとえば、チャネル数など)を必要としているかどうかに関係なく、会議環境で使用するために新しいまたは追加のDSPを購入して構成しなければならない場合がある。これには費用および時間がかかる可能性がある。別の欠点は、理解されるように、焼損、故障、誤動作などの影響を受けやすい可能性があるという、ハードウェアの物理的な部分に対する依存である。
【0007】
これらのデバイス固有の制限を考慮すると、柔軟性があり、単一のハードウェアに限定されない分散型会議システムがさらに必要である。
【発明の概要】
【0008】
本発明は、既存の室内ハードウェア(たとえば、マイクロフォンおよびラウドスピーカ)および一般的なコンピューティングデバイスを利用してソリューションを実装するソフトウェアベースの会議ソリューションを提供することによって、上記および他の問題を解決することを意図している。
【0009】
実施形態は、入力オーディオ信号を提供する複数のオーディオソースを備えるソフトウェアベースの会議プラットフォームを含み、オーディオソースは、会議ソフトウェアモジュールから遠端(far―end)入力オーディオ信号を受信するように構成された仮想オーディオデバイスドライバと、1つまたは複数の近端(near―end)オーディオデバイスから近端入力オーディオ信号を受信するように構成されたネットワークオーディオライブラリとを含む。プラットフォームは、オーディオソースから入力オーディオ信号を受信し、受信した信号に基づいてオーディオ出力信号を生成するように構成されたデジタル信号処理コンポーネントをさらに備え、デジタル信号処理コンポーネントは、近端入力オーディオ信号のうちの1つまたは複数に音響エコー除去技法を適用するように構成された音響エコー除去モジュールを備える。
【0010】
別の例示的な実施形態は、会議環境のためのオーディオ処理のコンピュータ実装方法を含む。方法は、複数のオーディオソースで入力オーディオ信号を受信することを含み、受信することは、仮想オーディオデバイスドライバにおいて、会議ソフトウェアモジュールから遠端入力オーディオ信号を受信すること、および、ネットワークオーディオライブラリにおいて、1つまたは複数の近端オーディオデバイスから近端入力オーディオ信号を受信することを含む。方法は、デジタル信号処理コンポーネントを使用して入力オーディオ信号を処理することをさらに含み、処理することは、近端入力オーディオ信号のうちの1つまたは複数に音響エコー除去技法を適用すること、および入力オーディオ信号に基づいてオーディオ出力信号を生成することを含む。
【0011】
さらに別の例示的な実施形態は、1つまたは複数のプロセッサと、少なくとも1つのメモリと、近端オーディオ信号を捕捉するように構成された1つまたは複数の近端オーディオデバイスと、少なくとも1つのメモリに記憶され、1つまたは複数のプロセッサによって実行されるように構成された1つまたは複数のプログラムとを備える、会議システムを含む。1つまたは複数のプログラムは、少なくとも1つのリモートサーバから遠端オーディオ信号を受信するように構成された会議ソフトウェアモジュールと、会議ソフトウェアモジュールから遠端オーディオ信号を受信するように構成された仮想オーディオデバイスドライバと、1つまたは複数の近端オーディオデバイスから近端オーディオ信号を受信するように構成されたネットワークオーディオライブラリと、ネットワークオーディオライブラリから近端オーディオ信号を受信し、仮想オーディオデバイスドライバから遠端オーディオ信号を受信し、受信した信号に基づいてオーディオ出力信号を生成するように構成されたデジタル信号処理コンポーネントとを備え、デジタル信号処理コンポーネントは、近端オーディオ信号のうちの1つまたは複数に音響エコー除去技法を適用するように構成された音響エコー除去モジュールを備える。
【0012】
本発明の原理が採用され得る様々な方法を示す例示的な実施形態を示した以下の詳細な説明および添付図面から、これらの実施形態および他の実施形態、ならびに様々な置換えおよび態様が明らかになり、より十分に理解されるであろう。
【図面の簡単な説明】
【0013】
【
図1】1つまたは複数の実施形態による、例示的な会議システムを示すブロック図である。
【
図2】1つまたは複数の実施形態による、
図1の会議システムの例示的なコントローラコンポーネントを示すブロック図である。
【
図3】1つまたは複数の実施形態による、
図1の会議システムのデジタル信号プロセッサ(DSP)コンポーネントの例示的なプロセスを示すブロック図である。
【
図4】実施形態による、
図1の会議システムの例示的なコンピューティングデバイスを示すブロック図である。
【発明を実施するための形態】
【0014】
以下の説明は、本発明の1つまたは複数の特定の実施形態を、その原理に従って説明し、図示し、例示する。この説明は、本発明を本明細書に記載の実施形態に限定するために提供されるものではなく、当業者がこれらの原理を理解し、その理解により、原理を適用して、本明細書に記載の実施形態だけでなく思い付き得る他の実施形態もこれらの原理に従って実践できるようにするような方法で、本発明の原理を説明および教示するために提供される。本発明の範囲は、文字通りまたは均等論の下で、添付の特許請求の範囲に含まれ得るすべてのそのような実施形態を網羅することを意図している。
【0015】
説明および図面において、同様のまたは実質的に同様の要素は、同じ参照番号でラベル付けされ得ることに留意されたい。しかし、これらの要素は、たとえばそのラベル付けによってより明確な説明が容易になる場合など、異なる番号でラベル付けされる場合がある。さらに、本明細書に記載の図面は、必ずしも一定の縮尺で描かれているわけではなく、場合によっては、特定の特徴をより明確に描写するために比率が誇張されていることがある。このようなラベル付けおよび描画の実施は、必ずしも根本的な実質的目的を意味するものではない。上記のように、本明細書は、全体として捉えられ、本明細書で教示される本発明の原理に従って解釈され、当業者に理解されることを意図している。
【0016】
本明細書では、会議環境内のオーディオ処理に対するソフトウェアベースの手法のためのシステムおよび方法が提供され、これは、本明細書では特別仕様の「会議アプリケーション」を含む「ソフトウェアベースの会議プラットフォーム」と呼ばれる。会議アプリケーションは、マイクロフォンおよびラウドスピーカの、単一の部屋または複数の部屋にサービスを提供するための小型コンピューティングプラットフォーム(たとえば、Intel NUC、Mac Mini、Logitech Smartdock、Lenovo ThinkSmart Hubなど)で実行するデジタル信号処理(「DSP」:digital signal processing)用のソフトウェアソリューションを提供する。実施形態では、ソフトウェアソリューションは、固定DSPパスの形態をとることができる。会議アプリケーションは、会議環境または会議室内の既存のコンピューティングリソースを再利用するように設計されている。たとえば、コンピューティングリソースは、会議のオーディオ処理のみを使用目的とした専用リソース、または、たとえばソフトコーデックプラットフォームまたはドキュメント共有などの他の室内サービスにも使用される共有リソースのいずれかであり得る。いずれの場合も、ソフトウェアソリューションを既存のコンピューティングリソースに配置すると、会議プラットフォームの全体的なコストと複雑さが軽減される。コンピューティングデバイスは、ネットワークオーディオトランスポート、USB、または他のアナログもしくはデジタルのオーディオ入力および出力をサポートすることができ、これにより、コンピューティングデバイス(たとえば、PC)をDSPハードウェアのように動作させ、オーディオデバイスおよびハードウェアコーデックとインターフェースさせることができる。会議プラットフォームはまた、コンピューティングデバイス上で実行しているサードパーティソフトコーデック(たとえば、サードパーティ会議ソフトウェア)に、仮想オーディオデバイスドライバとして接続する機能も有する。好ましい実施形態では、会議アプリケーションは、C++コンピュータプログラミング言語を利用してクロスプラットフォーム開発を可能にする。
【0017】
会議アプリケーションは、すべてのソフトウェアアーキテクチャコンポーネントが単一のラップトップ/デスクトップに存在する最も基本的な構成から、より大規模なクライアント/サーバインストールの一部になり、たとえば独自の会議ソフトウェアまたはサードパーティコントローラによって監視および制御されることまで、非常に多様な展開シナリオに対応するのに十分な柔軟性を備えることができる。いくつかの実施形態では、会議アプリケーション製品は、異なる機能セットを備えた異なるユーザ(たとえば、クライアント)をサポートするサーバ側企業アプリケーションを含んでもよい。会議アプリケーションによって、リモートステータスおよびエラーの監視、ならびに制御、監視、構成設定へのアクセスの認証も提供され得る。サポートされる展開プラットフォームには、たとえば、Windows 8および10、MAC OS Xなどが含まれ得る。
【0018】
会議アプリケーションは、スタンドアロンコンポーネントとして実行することができ、製品に関連付けられたユーザインターフェースを介してユーザのニーズを満たすように全面的に構成可能とすることができる。場合によっては、会議アプリケーションは、独立した会議製品としてライセンス供与され、販売されることがある。その他の場合、会議アプリケーションは、各サービスが固有のプロセスを実行し、明確に定義された軽量のメカニズムを介して通信して単一の目的を果たす、独立して展開可能なモジュラサービスのスイートの一部として提供されてもよい。
【0019】
図1は、実施形態による、ソフトウェアベースの会議プラットフォームを実装するための例示的な会議システム100を示す。システム100は、たとえば、オーディオソースが1人または複数の人間の話者を含む、会議室、役員室、または他のミーティング室などの会議環境において利用されてもよい。換気、他の人、オーディオ/ビジュアル機器、電子デバイスなどからのノイズなどの望ましくない可能性のある他の音が環境内に存在する可能性がある。典型的な状況では、オーディオソースは、テーブルにある椅子に座っている場合があるが、たとえば、部屋の中を動き回るオーディオソースを含む、オーディオソースの他の構成および配置も企図され考えられる。人間の話者によって話されたスピーチなどのオーディオソースからの音を検出および捕捉するために、1つまたは複数のマイクロフォンが、テーブル、演台、机上などに配置されてもよい。部屋に存在しないオーディオソースから受信されたオーディオ信号を再生するために、1つまたは複数のラウドスピーカが、テーブル、机上、天井、壁などに配置されてもよい。
【0020】
会議システム100は、たとえば、パーソナルコンピュータ(PC)、ラップトップ、タブレット、モバイルデバイス、スマートデバイス、シンクライアント、または他のコンピューティングプラットフォームなどのコンピューティングデバイス102を使用して実装されてもよい。いくつかの実施形態では、コンピューティングデバイス102は、会議の環境(または、部屋)に物理的に配置される、かつ/またはその専用とすることができる。他の実施形態では、コンピューティングデバイス102は、ネットワークの一部であるか、またはクラウドベースの環境に分散され得る。いくつかの実施形態では、コンピューティングデバイス102は、クラウドコンピューティングネットワークなどの外部ネットワークに存在する。いくつかの実施形態では、コンピューティングデバイス102は、ネットワークの一部としてファームウェアとともにまたは完全にソフトウェアベースで実装されてもよく、たとえば、デスクトップ、ラップトップ、モバイルデバイス、タブレット、スマートデバイスなどの他のコンピューティングデバイスを含む別のデバイスを介して、アクセスまたは別の方法で通信されてもよい。図示の実施形態では、コンピューティングデバイス102は、たとえば、
図4に示すように、プロセッサおよびメモリデバイスを備える任意の一般的なコンピューティングデバイスとすることができる。コンピューティングデバイス102は、たとえば、データ記憶デバイス、ネイティブまたは内蔵オーディオマイクロフォンデバイス、およびネイティブオーディオスピーカデバイスなど、PCまたはラップトップコンピュータにおいて一般的に見られる他のコンポーネントを含んでもよい。
【0021】
会議システム100は、コンピューティングデバイス102上で動作し、たとえば、オーディオ圧縮ソフトウェア、オートミキシング、DSPプラグイン、リソース監視、ライセンス付与アクセス、および様々なオーディオおよび/または制御インターフェースを提供するように構成された会議アプリケーション104をさらに含む。会議アプリケーション104は、コンピューティングデバイス102にすでに存在するコンポーネントまたはリソースを活用して、ソフトウェアベースの製品を提供することができる。会議アプリケーション104は、コンピューティングデバイス102のメモリに記憶されてもよく、かつ/または(たとえば、オンプレミスまたはクラウドコンピューティングネットワークの一部として)リモートサーバ上に記憶され、ネットワーク接続を介してコンピューティングデバイス102によってアクセスされてもよい。例示的な一実施形態では、会議アプリケーション104は、会議アプリケーション104の1つまたは複数の部分がコンピューティングデバイス102に存在し、1つまたは複数の他の部分がクラウドコンピューティングネットワークに存在する、分散型クラウドベースのソフトウェアとして構成されてもよい。いくつかの実施形態では、会議アプリケーション104は、クラウドコンピューティングネットワークなどの外部ネットワークに存在する。いくつかの実施形態では、会議アプリケーション104へのアクセスは、ウェブポータルアーキテクチャを介するか、あるいはソフトウェアアズアサービス(SaaS:Software as a Service)として提供されてもよい。
【0022】
会議システム106は、ケーブルまたは他の接続手段(たとえば、無線)を介してコンピューティングデバイス102に結合された1つまたは複数の会議デバイス106をさらに含む。会議デバイス106は、たとえば、SHURE MXA310、MX690、MXA910などの、電話会議、ウェブ放送、テレビ放送などを容易にするためのマイクロフォンおよび/またはスピーカを備える任意のタイプのオーディオハードウェアとすることができる。たとえば、会議デバイス106は、会議環境内に位置する(たとえば、会議テーブルの周りに座っている)会議参加者によって生成される近端オーディオ信号を捕捉するための1つまたは複数のマイクロフォンを含んでもよい。会議デバイス106はまた、遠隔に位置するが、サードパーティ会議ソフトウェアまたは他の遠端オーディオソースを介して会議に接続されている会議参加者から受信した遠端オーディオ信号をブロードキャストするための1つまたは複数のスピーカを含んでもよい。いくつかの実施形態では、会議システム100はまた、会議デバイス106とは別に、1つまたは複数のオーディオ出力デバイス107を含むことができる。オーディオ出力デバイス107は、任意のタイプのラウドスピーカまたはスピーカシステムとすることができ、電話会議、ウェブ放送、テレビ放送などに関連するオーディオ信号を音声で出力するための会議環境に配置されてもよい。実施形態では、会議デバイス106およびオーディオ出力デバイス107は、会議の環境または部屋の任意の好適な場所(たとえば、テーブル、演台、机上、天井、壁など)に配置され得る。いくつかの実施形態では、会議デバイス106およびオーディオ出力デバイス107は、ネットワークケーブル(たとえば、Ethernet)を介してコンピューティングデバイス102に結合され、かつデジタルオーディオ信号を処理するように構成された、ネットワークオーディオデバイスである。他の実施形態では、これらのデバイスは、アナログオーディオデバイスまたは別のタイプのデジタルオーディオデバイスとすることができる。
【0023】
図1に示すように、会議アプリケーション104は、たとえばコンピューティングデバイス102もしくはより大きい会議システム100のコンポーネントなどの1つまたは複数の外部コンポーネント、および/または、たとえば会議アプリケーション104自体の中のコンポーネントなどの1つまたは複数の内部コンポーネントとインターフェースまたは通信するための様々なソフトウェアベースのインターフェースを含む。たとえば、会議アプリケーション104は、たとえば会議デバイス106、オーディオ出力デバイス107、および/または会議システム100に含まれる他のマイクロフォンおよび/もしくはスピーカなど、コンピューティングデバイス102に結合された外部ハードウェアデバイスへのオーディオインターフェースと、たとえば内部会議ソフトウェアおよび/またはサードパーティ会議ソフトウェア108など(たとえば、Microsoft Skype、Bluejeans、Cisco WebEx、GoToMeeting、Zoom、Join.meなど)、コンピューティングデバイス102によって実行されるソフトウェアへのオーディオインターフェースと、内蔵マイクロフォンおよび/またはスピーカ用のネイティブオーディオ入力/出力(I/O)ドライバ110など、コンピューティングデバイス102に含まれるオーディオハードウェア用のデバイスドライバへのオーディオインターフェースとを含む、複数のオーディオインターフェースを含んでもよい。会議アプリケーション104はまた、1つまたは複数のユーザインターフェース(たとえば、ウェブブラウザベースのアプリケーション113または他のシンコンポーネントユーザインターフェース(CUI:component user interface))への制御インターフェースと、内部コントローラアプリケーション(たとえば、コントローラ114)への制御インターフェースと、1つまたは複数のサードパーティコントローラ(たとえば、サードパーティコントローラ115)への制御インターフェースと、1つまたは複数の外部コントローラアプリケーション(たとえば、システム構成アプリケーション116、システム監視アプリケーション117など)への制御インターフェースとを含む、複数の制御インターフェースを含んでもよい。インターフェースは、たとえば、アプリケーションプログラミングインターフェース(API:Application Programming Interface)、WindowsオーディオセッションAPI(WASAPI:Windows Audio Session API)、オーディオストリーム入力/出力(ASIO:Audio Stream Input/Output)、Windowsドライバモデル(WDM:Windows Driver Model)、制御ネットワークのアーキテクチャ(ACN:Architecture for Control Networks)、AES67、伝送制御プロトコル(TCP:Transmission Control Protocol)、Telnet、ASCII、デバイス管理プロトコルTCP(DMP-TCP:Device Management Protocol TCP)、Websocketなど、様々なプロトコルを使用して実装されてもよい。
【0024】
図1にも示すように、会議アプリケーション104は、コントローラコンポーネントまたはモジュール114、デジタル信号処理(DSP)コンポーネントまたはモジュール118、ライセンス付与コンポーネントまたはモジュール120、ネットワークオーディオライブラリ126(たとえば、ボイスオーバーIP(VoIP:Voice-over-IP)ライブラリなど)、および仮想オーディオデバイスドライバ130を備える。コントローラコンポーネント114は、会議アプリケーション104の他の内部コンポーネントまたはモジュールを管理し、外部のコントローラ、デバイス、およびデータベースにインターフェースし、それにより、会議アプリケーション104のインターフェース機能の全部または一部を提供するように構成され得る。たとえば、コントローラ114は、コンピューティングデバイス102に存在するか、またはコンピューティングデバイス102を介してアクセス可能な、イベントログデータベース122およびリソース監視データベース128にサービス提供するか、またはそれらとインターフェースすることができる。コントローラ114はまた、たとえば、ウェブブラウザベースのアプリケーション113、および任意の既存または独自の会議ソフトウェアなどのコンポーネントグラフィカルユーザインターフェース(GUI:graphical user interface、またはCUI)にサービス提供するか、またはそれらとインターフェースすることもできる。さらに、コントローラ114は、会議環境内でマイクロフォンまたは会議デバイスを制御するための1つまたは複数のサードパーティコントローラ115および室内制御パネル(たとえば、音量制御、ミュートなど)をサポートすることができる。コントローラ114はまた、DSP処理を開始/停止し、DSPパラメータを構成し、オーディオパラメータ(たとえば、どのデバイスを開くか、どのオーディオパラメータを使用するかなど)を構成し、DSPステータス更新を監視し、DSPチャネル数を関連するライセンスに準拠するように構成するように構成され得る。さらに、コントローラ114は、サウンドカード設定および内部/外部オーディオルーティング、システム全体の構成(たとえば、セキュリティ、起動、発見オプション、ソフトウェア更新など)、永続ストレージ、および事前設定/テンプレートの使用を管理することができる。コントローラ114はまた、会議環境内の外部ハードウェア(論理)(たとえば、部屋内の複数のマイクロフォンおよび/またはスピーカ)と通信することができ、ネットワーク上の他のデバイスを制御することができる。コントローラ114はさらに、システム監視アプリケーション117などの会議システム100の監視およびロギングコンポーネント、ならびにシステム構成アプリケーション116などの会議システム100の自動構成コンポーネントをサポートすることができる。
【0025】
実施形態では、コントローラ114は、各機能に固有のアプリケーションプログラミングインターフェース(API)、または他のタイプのインターフェースを使用することによって、様々な制御および通信機能を実行するように構成され得る。たとえば、
図1に示すように、第1のAPIは、コントローラ114とDSPコンポーネント118との間で制御データを送受信し、第2のAPIは、コントローラ114とネットワークオーディオライブラリ126の制御コンポーネントとの間で制御データを送受信し、第3のAPIは、コントローラ114とライセンス付与コンポーネント120との間で制御データを送受信する。また、第4のAPIは、リソース監視データベース128から制御データを受信し、第5のAPIは、制御データをイベントログデータベース122に送信する。
【0026】
図2は、実施形態による、会議システム100に含まれ得る例示的なコントローラ200を、たとえばコントローラコンポーネント114として示す。コントローラ200の様々なコンポーネントは、ハードウェア(たとえば、ディスクリート論理回路、特定用途向け集積回路(ASIC:application specific integrated circuit)、プログラマブルゲートアレイ(PGA:programmable gate array)、フィールドプログラマブルゲートアレイ(FPGA:field programmable gate array)など)、またはソフトウェア(たとえば、プロセッサによって実行可能なソフトウェア命令を含むプログラムモジュール)において実装されてもよい。好ましい実施形態では、コントローラ200は、会議アプリケーション104に含まれるソフトウェアコンポーネントまたはプログラムモジュールとすることができる。
【0027】
コントローラ200は、DSP118をセットアップすること、ならびにDSP118および他のオーディオ設定を管理することを含む、構成およびステータス更新のために、(たとえば、
図1に示す第1のAPIを介して)DSPコンポーネント118にインターフェースするオーディオマネージャ202を含む。オーディオマネージャ202はまた、別のAPIを介してコントローラ200のライセンス付与マネージャ204とインターフェースして、ライセンスパラメータが確実に順守されるようにする。次にライセンス付与マネージャ204は、(たとえば、
図1に示す第3のAPIを介して)ライセンス付与コンポーネント120とインターフェースして、適切なライセンス付与情報を取得する。
【0028】
コントローラ200は、システム構成アプリケーション116、システム監視アプリケーション117などの専用コントローラによるデバイスの発見および制御のために、たとえばACNなどの1つまたは複数のネットワーク制御インターフェースをサポートするネットワークマネージャ206をさらに含む。図示のように、コントローラ200はまた、たとえばASCII文字列プロトコルを使用してサードパーティコントローラ115とデータを送受信するために、たとえば、Telnetまたは他のTCPソケットサーバポートなどの1つまたは複数のサードパーティ制御インターフェース(TPCI:third-party control interface)をサポートするTPCIコンポーネントまたはモジュール207を含む。さらに、コントローラ200は、たとえば、AES67などの1つまたは複数のネットワークオーディオ転送プロトコルインターフェース(たとえば、
図1の第2のAPI)を利用してネットワークオーディオライブラリ126を更新および監視するネットワークオーディオライブラリマネージャ208を含む。
【0029】
さらに、コントローラ200は、会議デバイス106を用いて制御データを送受信するための制御インターフェースをサポートする論理コンポーネントまたはモジュール209を含む。実施形態では、論理コンポーネント209は、たとえば、会議デバイス106、またはネットワークオーディオライブラリ126に結合された別のオーディオデバイスなどの外部デバイスから論理ミュート要求を受信するように構成されてもよい。論理ミュート要求は、(たとえば、
図3のオートミキサ304によって実行されるような)オートミキシング中に、外部デバイスが、DSPコンポーネント118によって実行されるゲーティングの決定から除外されることを望んでいることをコントローラ200に示す。それに応答して、オートミキサは、外部デバイスに対応するチャネルをミュートしてもよく、コントローラ200は、ミュートステータスを外部デバイスに送り返すことができる。いくつかの実施形態では、論理ミュート要求は、たとえば、
図1に示す第2のAPIを使用して、ネットワークオーディオライブラリ126を介してコントローラ200で受信されてもよい。他の実施形態では、会議デバイス106は、
図2に示すように、コントローラ200と直接インターフェースしてもよい。
【0030】
実施形態では、コントローラ200は、イベントログデータベース122とインターフェースして、設定、事前設定、テンプレート、およびログの永続ストレージを管理することができる。そのために、コントローラ200は、ユーザ向けイベントを管理および維持する機能をサポートするイベントログマネージャ210を含むことができ、これにより、エンドユーザは、トレイアプリケーション136を介して問題を特定および修正することができる。場合によっては、イベントログマネージャ210は、すべてのシステムイベント、警告、およびエラーを一緒にログ記録するように、またイベントログデータベース122上のイベントログストレージを管理するように構成され得る。コントローラ200はまた、パラメータ記憶マネージャ212および事前設定マネージャ214を含むことができ、事前設定マネージャ214は、事前設定管理を担当する、コンピューティングデバイス102の既存のコンポーネントとすることができる。これらのコンポーネント210、212、および214のそれぞれは、
図2に示すように、(たとえば、
図1に示す第5のAPIを含む)それぞれのAPIを介してイベントログデータベース122とインターフェースしてもよい。
【0031】
コントローラ200はまた、会議アプリケーションの性能およびコンピューティングデバイス102の正常性全体を監視し、必要に応じて性能設定を構成するように構成された、リソース監視マネージャ216を含むことができる。図示のように、リソース監視マネージャ216は、API(たとえば、
図1に示す第4のAPI)を介してリソース監視データベース128とインターフェースする。いくつかの実施形態では、リソース監視マネージャ216は、待ち時間、パケット損失、および他の品質管理パラメータを監視し、問題が検出されたときにアラートを発生させ、問題を修正するために設定を再構成するように構成されてもよい。
【0032】
いくつかの実施形態では、コントローラ200はまた、たとえば、
図1に示すウェブベースのアプリケーション113などのコンポーネントユーザインターフェース(CUI)の認証を担当するユーザインターフェースセキュリティコンポーネント(図示せず)を含んでもよい。場合によっては、コントローラ200は、DSP118を介して仮想オーディオデバイスドライバ130とのすべての通信を処理し、構成を設定し、その挙動を監視する、仮想オーディオデバイスドライバ(VADD:virtual audio device driver)マネージャ(図示せず)を含むこともできる。
【0033】
再び
図1を参照すると、DSPコンポーネントまたはモジュール118は、すべてのオーディオ信号処理を処理するように構成された、会議アプリケーション104のソフトウェアコンポーネントとすることができる。DSPコンポーネント118を使用して、任意の数のDSP機能が実装されてもよく、DSP機能には、例として、参照によりその全体が本明細書に組み込まれる、SHUREのP300 Intellimix Audio Conferencing Processorに関するマニュアルに記載されている機能のいずれかが含まれるが、これらに限定されない。さらに、DSPコンポーネント118は、コントローラ114からのDSPパラメータメッセージを処理し、ステータス情報(たとえば、メータリング、エラーなど)をコントローラ114に送信し、すべてのオーディオデバイスとの接続を開放および維持する。
【0034】
実施形態では、DSPコンポーネント118は、ネットワークオーディオライブラリ126から、暗号化されたオーディオ信号を受信してもよい。たとえば、会議デバイス106は、ネットワークを介して信号を送信する前に、その1つまたは複数のマイクロフォンによって捕捉されたオーディオ信号を(たとえば、AES256暗号化アルゴリズムなどを使用して)暗号化するように構成されてもよい。
図1に示すように、DSPコンポーネント118は、DSP処理用の信号を提供する前に、受信したオーディオ信号(たとえば、ネットワークオーディオ信号)に対して復号アルゴリズム(たとえば、
図3の復号モジュール321を参照)を実行するように構成された、暗号化コンポーネントまたはモジュール129を含むことができる。同様に、暗号化コンポーネント129は、信号をネットワークオーディオライブラリ126に送信する前に、処理されたオーディオ信号に対して対応する暗号化アルゴリズム(たとえば、
図3の暗号化モジュール320を参照)を実行するように構成され得る。
【0035】
図1に示すように、DSPコンポーネント118は、会議システム100全体でオーディオ信号を同期するように構成されたクロック同期コンポーネントまたはモジュール131も含む。たとえば、実施形態では、仮想オーディオデバイスドライバ130、ネットワークオーディオライブラリ126、およびネイティブオーディオI/Oドライバ110のそれぞれは、別個のクロックで動作してもよい。ネイティブオーディオI/Oドライバ110がネイティブマイクロフォンとネイティブスピーカの両方をサポートする場合、それらのネイティブデバイスのそれぞれは、同様に個々のクロックでも動作してもよい。クロック同期コンポーネント131は、ネットワーク全体のクロックを、たとえば、ネットワークオーディオライブラリ126または他の選択されたオーディオデバイスのクロックなどの単一のクロックに同期させるように構成され得る。選択されたクロックは、
図1に示すように、同期の目的でクロック同期コンポーネント131にクロック基準信号を送信してもよい。
【0036】
実施形態では、ネットワークオーディオライブラリ126は、外部オーディオハードウェアと会議アプリケーション104との間の通信を可能にするための、会議アプリケーション104に含まれるソフトウェアコンポーネントまたはモジュールとすることができる。たとえば、
図1に示すように、オーディオ信号は、ネットワークオーディオライブラリ126と、コンピューティングデバイス102の外部にあり、Ethernetケーブルまたは他のネットワーク接続を介してコンピューティングデバイス102に結合された1つまたは複数の会議デバイス106および/もしくはオーディオ出力デバイス107との間で、送信ならびに/または受信されてもよい。会議デバイス106からの着信オーディオ信号を処理し、発信オーディオ信号を会議デバイス106および/またはオーディオ出力デバイス107に戻すために、ネットワークオーディオライブラリ126とDSPコンポーネント118との間にオーディオストリーム(たとえば、ASIO、WASAPI、CoreAudio、他のAPIなど)が作成されてもよい。実施形態では、ネットワークオーディオライブラリ126は、外部会議デバイス106から受信したオーディオ信号を、DSP118によって使用可能なオーディオフォーマットに変換してもよく、その逆も可能である。図示の実施形態は、ネットワークオーディオライブラリ126を会議アプリケーション104に含まれるものとして示しているが、他の実施形態では、ネットワークオーディオライブラリ126は、会議アプリケーション104とは別に、スタンドアロンコンポーネントとしてコンピューティングデバイス102に含まれてもよい。
【0037】
図3は、実施形態による、会議アプリケーション104に含まれるDSPコンポーネント118の動作を含む例示的なプロセス300を示す。DSPコンポーネント118は、会議アプリケーション104のすべての信号処理を実行し、会議アプリケーション104とリンクされているライブラリとして実装され得る。いくつかの実施形態では、DSPコンポーネント118は、スタンドアロンプロセスとして実行することができる。
【0038】
図示のように、プロセス300は、オートミキシング、復号/暗号化、利得/ミュート、音響エコー除去/ノイズ低減(「AEC/NR」:acoustic echo cancellation/noise reduction)、自動利得制御(「AGC:automatic gain control」)、圧縮(「Comp」:compression)、パラメトリック等化(「4 PEQ C/S」)、マトリックスミキシング、ならびにハードウェアおよび/またはソフトウェアコンポーネントから受信したオーディオ信号を含む他のオーディオ処理機能を含む。実施形態では、チャネル(またはローブ)の正確な数は、ユーザによって購入されたライセンス付与条件に応じて、拡張可能であり得る。図示の実施形態では、DSP118は、たとえば、1つまたは複数の会議デバイス106、または会議環境100に配置された別個のマイクロフォンから個々のマイクロフォン入力302を受信するための、16チャネルまで拡張可能な少なくとも1つのチャネルを有する。
図3に示すように、各チャネルは、DSP118のオートミキサ304(またはオートミキシングモジュール)に結合される前に、個別の処理を受けてもよい。
【0039】
オートミキサ304は、すべてのマイクロフォン入力302を組み合わせて、オートミックスチャネルを介して送信されるオートミックス出力信号にするように構成されてもよい。いくつかの実施形態では、オートミキサ304は、
図3に示すように、ゲート型オートミキサとして動作するように構成されてもよい。このような場合、オートミキサ304は、ゲート型直接出力(DO:direct out)をDSP118の入力選択コンポーネントまたはモジュール305に提供するための第2の出力チャネルを有する。個別に処理されたマイクロフォン入力302もまた、それぞれの直接出力(DO)チャネルを介して入力選択コンポーネント305に提供される。入力選択コンポーネント305は、オートミキサ304から受信したゲート型直接出力信号に基づいて、DOチャネルのうちの1つまたは複数を選択的に開放または閉鎖するように構成されてもよい。たとえば、選択されたチャネルは、DSP118の音響エコーキャンセラ307(または、AECモジュール)のための基準入力(図示せず)を提供してもよい。実施形態では、音響エコーキャンセラ307は、選択された基準チャネル、またはそこを介して受信された基準信号に基づいて、入力信号におけるエコーを低減または排除してもよい。エコーおよび/またはノイズを低減または排除するためにAECモジュール307がどのように動作するかについてのさらなる詳細は、たとえば、参照によりその全体が本明細書に組み込まれる、SHUREのP300 Intellimix Audio Conferencing Processorに関するマニュアルにおいて見出すことができる。
【0040】
図3に示すように、オートミックス出力はさらに処理され、その後、選択コンポーネント305から選択された直接出力とともに、DSP118のマトリックスミキサ306(または、マトリックスミキシングモジュール)に提供される。マトリックスミキサ306は、オートミックス出力および選択された直接出力を、会議システム100内の他の様々なオーディオデバイスから受信した入力と組み合わせて、個々のオーディオデバイス(または、オーディオソース)に適したミックスオーディオ出力信号を生成するように構成され得る。場合によっては、マトリックスミキサ306は、所与のオーディオデバイスについて、それ自体の入力信号を除外し、かつネットワーク内の他のすべてのオーディオデバイスから受信した入力信号を混合したものを含む、ミックスオーディオ信号を生成するように構成され得る。たとえば、マイクロフォン1およびライン入力1から受信された入力信号は、ライン出力1などに対して生成されたミックスオーディオ出力信号には含まれない。入力オーディオ信号の他のマトリックスミックスまたは組合せも考えられる。場合によっては、マトリックスミキサ306は、各オーディオデバイスまたは出力チャネルに対して固有のミックス出力信号を生成してもよい。他の場合には、マトリックスミキサ306は、2つ以上のオーディオデバイスまたは出力チャネルに、同じミックス出力信号を提供してもよい。いくつかの実施形態では、マトリックスミキサ306は、オートミキサ304に接続することなく、直接マイク入力302に基づいてミックス出力信号を生成してもよい。
【0041】
図3に示すプロセス300は特定の動作のセットのみを含むが、任意の数のDSP機能が実装されてもよく、DSP機能には、例として、SHUREのP300 Intellimix Audio Conferencing Processorに関する添付マニュアルに記載されている機能のいずれかが含まれるが、これらに限定されない。
【0042】
図示のように、DSPコンポーネント118は、少なくとも3つの異なるタイプのオーディオデバイスとインターフェースすることができ、デバイスごとに別個の出力を生成することができる。第1のタイプは、ネットワークオーディオライブラリ126を介して会議アプリケーション104に接続され、かつEthernetネットワークなどを介してコンピューティングデバイス102に通信可能に結合された、ネットワーク化されたオーディオデバイスを含む。ネットワーク化されたオーディオデバイスは、たとえば、会議デバイス106、オーディオ出力デバイス107、および/または別個のメディアプレーヤなど(たとえば、CDプレーヤ、DVDプレーヤ、MP3プレーヤなど)の近端オーディオハードウェアデバイスを含むことができる。いくつかの実施形態では、ネットワーク化されたオーディオデバイスは、たとえば会議環境の遠端に位置する会議カメラなど(たとえば、Cisco Webex Boardなど)のインターネット接続を使用して遠端オーディオ信号をネットワークオーディオライブラリ126に送るように構成された、遠端オーディオハードウェアデバイス(図示せず)を含むことができる。
【0043】
図3に示すように、マイク入力302に加えて、DSP118は、ネットワーク化されたオーディオデバイスからネットワークライン入力308を受信するための最大8つのチャネルと、ネットワークライン出力310を対応するネットワーク化されたオーディオデバイスに送信するための最大8つのチャネルを有する。たとえば、いくつかの実施形態では、ネットワーク化された各近端オーディオデバイスは、最大4つのネットワークマイク入力302および最大4つのネットワークライン入力308に結合されるか、もしくはそれらを介して送信してもよく、または、最大4つのネットワークライン出力310に結合されるか、もしくはそれらを介して受信してもよい。このような場合、マトリックスミキサ306は、同じオーディオデバイスから受信されたマイク入力信号およびライン入力信号を除外または最小化し、かつ、他のすべてのマイク入力信号およびライン入力信号、ならびに他のタイプのオーディオデバイス(たとえば、ネイティブ入力312およびVADD入力316)から受信した入力信号を含むことによって、同じオーディオデバイスに属する各ネットワークライン出力310に対して第1のミックス出力信号を生成してもよい。
【0044】
DSP118とインターフェースする第2のタイプのオーディオデバイスは、コンピューティングデバイス102にネイティブである内蔵のまたはローカルのオーディオデバイス(たとえば、PCヘッドホン出力ジャック(図示せず)、1つまたは複数のネイティブスピーカ、USBマイク(図示せず)、1つまたは複数のネイティブマイクロフォン、HDMI(登録商標)オーディオなど)を含む。これらのネイティブデバイスは、会議環境の近端に位置する。
図3に示すように、DSP118は、ネイティブオーディオデバイス(たとえば、ネイティブマイクロフォン)によって捕捉されたオーディオ信号を受信するためのネイティブ入力312と、ミックスオーディオ出力信号をネイティブオーディオデバイス(たとえば、ネイティブスピーカ)に提供するためのネイティブ出力314とを含む。実施形態では、ミックスオーディオ信号は、
図1に示すように、コンピューティングデバイス102に結合された室内スピーカであり得るラウドスピーカ112を使用して、近端の会議参加者にブロードキャストされてもよい。マトリックスミキサ306によって生成され、ネイティブ出力314に提供されるミックスオーディオ出力信号の内容は、ネットワークマイク入力302、ネットワークライン入力308、およびVADD入力316を介して受信されたオーディオ信号を含み得るが、ネイティブ入力312を介して受信されたオーディオ信号を含まない。
【0045】
再び
図1を参照すると、ネイティブオーディオデバイスは、内蔵のオーディオデバイスを動作および制御するためのネイティブオーディオI/Oドライバ110または他のコンピュータプログラムを介して、コンピューティングデバイス102とインターフェースする。
図1に示すように、ネイティブオーディオI/Oドライバ110は、第8のAPIを介してDSPコンポーネント118とインターフェースする。実施形態では、会議アプリケーション104は、たとえば、Windows用のWDMもしくはWASAPI、またはMac用のCoreAudioなどの任意のネイティブOSオーディオインターフェースを使用して、DSP118とネイティブオーディオI/Oドライバ110との間でオーディオデータを送信および/または受信してもよい。
【0046】
DSP118とインターフェースする第3のタイプのオーディオデバイスは、仮想オーディオデバイスドライバ(VADD)130である。VADD130は、所与の電話会議またはミーティングに関連付けられた遠端オーディオ信号を受信するために、Skype、Bluejeans、Zoomなどのサードパーティ会議ソフトウェア108(「会議ソフトウェアモジュール」とも呼ばれる)に接続する。いくつかの実施形態では、会議ソフトウェアモジュール108は、サードパーティ会議ソフトウェアもしくはソフトコーデックに加えて、またはその代わりに、企業の、独自の、および/もしくは組織内の会議ソフトウェアを含むことができる。
図3に示すように、DSP118は、仮想オーディオデバイスドライバ130を介してサードパーティ会議ソフトウェア108から遠端オーディオ信号を受信するためのVADD入力316と、サードパーティ会議ソフトウェア108および仮想オーディオデバイスドライバ130を介してミックスオーディオ出力信号を遠端参加者に送り返すためのVADD出力318とを含む。一例として、遠端オーディオ信号は、遠端参加者に隣接して配置され、サードパーティ会議ソフトウェア108に関連付けられたサードパーティ会議サーバ132に通信可能に接続するように構成された会議用のデバイス、携帯電話、カメラ、ラップトップ、デスクトップコンピュータ、タブレット、または他のオーディオハードウェアデバイスによって捕捉された、マイクロフォン信号とすることができる。ミックスオーディオ出力信号は、同じオーディオハードウェアデバイスまたは別個のラウドスピーカまたは他のオーディオデバイスを介して遠端参加者にブロードキャストされてもよい。マトリックスミキサ306によって生成され、VADD出力318に提供されるミックスオーディオ出力信号は、マイク入力302、ライン入力308、およびネイティブ入力312で受信されたオーディオ信号を含み得るが、VADD入力316で受信されたオーディオ信号を含まない。会議アプリケーション104は、API(たとえば、
図1に示す第7のAPI)を使用して、DSP118とVADD130との間でオーディオデータを送受信してもよい。
【0047】
図示の実施形態では、会議システム100は、少なくとも3つの異なるタイプのオーディオデバイス(または、オーディオソース)、すなわち、ネットワークオーディオデバイス、VADD、およびネイティブオーディオデバイスを備える。他の実施形態では、DSPコンポーネント118は、3つすべてのオーディオデバイスタイプよりも少ないタイプを用いて動作してもよい。たとえば、DSP118は、ネットワークオーディオライブラリ126のみと、またはネイティブオーディオI/Oドライバ110および仮想オーディオデバイスドライバ130のみとインターフェースしてもよい。また、DSPコンポーネント118は、ネットワークオーディオライブラリ126およびネイティブオーディオデバイスからのサービスの中断をシームレスに処理するように構成され得る。
【0048】
実施形態によれば、コントローラ200とDSPコンポーネント118との間で通信されるDSPパラメータメッセージは、コントローラ200からDSPコンポーネント118へのパラメータ(たとえば、EQ周波数、利得、ミュートなど)、およびDSPコンポーネント118からコントローラ200へのレポート(たとえば、リアルタイムのメータリング、警告など)を含む。他の通信は、DSPコンポーネント118に特定のWindowsオーディオデバイスを開くように指示すること、およびVOIPコールを管理することを含む。DSPコンポーネント118は、オーディオ診断情報をコントローラ200に提供することもできる。
【0049】
再び
図1を参照すると、仮想オーディオデバイスドライバ130は、会議アプリケーション104とコンピューティングデバイス102上で実行している他のオーディオアプリケーションとの間の通信を可能にするための、会議アプリケーション104に含まれるソフトウェアコンポーネントまたはモジュールである。たとえば、
図1において、仮想オーディオデバイスドライバ130は、1つまたは複数のサードパーティ会議サーバ132と通信する、たとえば、Skype、Bluejeans、Zoom、または他のソフトウェアコーデックなどの1つまたは複数のサードパーティ会議ソフトウェア108からオーディオストリームを受信し、受信したオーディオを、DSP118と互換性があるか、またはDSP118によって使用されるオーディオ信号に変換するように構成される。仮想オーディオデバイスドライバ130は、オーディオがDSP118からサードパーティ会議ソフトウェア108に送信されるとき、逆変換を実行するように構成されてもよい。いくつかの実施形態では、仮想オーディオデバイスドライバ130はまた、同じハードウェア上で実行するプロキシアプリケーションを介して、またはクラウドに直接ストリーミングして、たとえば、AMAZONのAlexaまたはOK GOOGLEなどのクラウド音声サービスにオーディオを送信するか、またはクラウド音声サービスからオーディオを受信するように構成される。
【0050】
図1に示すように、第6のAPIは、仮想オーディオデバイスドライバ130とサードパーティ会議ソフトウェア108との間でオーディオデータを送受信し、第7のAPIは、仮想オーディオデバイスドライバ130とDSPコンポーネント118との間でオーディオデータを送受信する。仮想オーディオデバイスドライバ130は、たとえば、Windows用のWDMもしくはWASAPI、またはMac用のCoreAudioなどのネイティブOSオーディオインターフェースを介して、たとえば、Skype、Bluejeansなどのサードパーティ会議ソフトウェア108とインターフェースすることができる。
【0051】
仮想オーディオデバイスドライバ130は、たとえば、オペレーティングシステムおよび/または他のコンピュータプログラム(たとえば、会議アプリケーション104および/またはコンピューティングデバイス102)が、基礎となる「デバイス」がハードウェアデバイスではないことを除いて、基礎となるオーディオデバイスのオーディオ関連機能にアクセスすることを可能にするソフトウェアインターフェースを提供することによって、任意の他のオーディオデバイスドライバと同様に動作することができる。むしろ、基礎となるオーディオデバイスは、ソフトウェア、すなわちサードパーティ会議ソフトウェア108または他のソフトウェアコーデックで構成される仮想デバイスであり、仮想オーディオデバイスドライバ130は、DSP118のサードパーティソフトウェア108に対する制御、アクセス、および動作を可能にするためのソフトウェアインターフェースとして機能する。実施形態では、仮想オーディオデバイスドライバ130は、会議アプリケーション104または仮想オーディオデバイスドライバ130が、それ自体を標準のWindowsオーディオデバイスとして(たとえば、エコー除去スピーカフォンとして)コンピューティングデバイス102に提示することを可能にし、サードパーティ会議ソフトウェア108のオーディオ設定メニューから、それを単一の入力/出力デバイスとして容易に選択可能にするように構成され得る。たとえば、仮想オーディオデバイスドライバ130は、コンピューティングデバイス102とのオーディオインターフェースとして会議アプリケーション104によって使用されるカーネルモードオーディオデバイスドライバとすることができる。一方、会議アプリケーション104は、たとえば、会議デバイス106およびオーディオ出力デバイス107などの、アプリケーション104に直接接続されたオーディオデバイスから、処理済みのオーディオを送信および/または受信するように構成されてもよい。
【0052】
いくつかの実施形態では、仮想オーディオデバイスドライバ130は、たとえば、従来のように遠端のマイクロフォン自体を直接オフにする代わりに、ミュート制御、音量、および他の制御データ専用の制御チャネルを追加することによって、サードパーティ会議ソフトウェア108を介してミュート制御を可能にするように構成され得る。たとえば、仮想オーディオデバイスドライバ130のミュート論理コンポーネントまたはモジュール134は、専用チャネルを介してサードパーティ会議ソフトウェア108からミュート(またはミュート解除)ステータスを受信し、DSPコンポーネント118にミュートステータスを提供するように構成され得る。DSPコンポーネント118は、ミュートステータスをシステム100全体、またはシステム100内のすべてのオーディオソースに伝達して、ミュートステータスを、ソフトウェア(たとえば、GUI)および/またはハードウェア(たとえば、マイクロフォンLED)インジケータを含む各オーディオソースの関連するインジケータと同期させてもよい。他の実施形態では、このミュート論理は、コントローラ114がサードパーティ会議ソフトウェアと直接インターフェースすることを可能にする第9のAPI(図示せず)を介して通信されてもよい。
【0053】
図1に示すように、会議システム100は、システム構成アプリケーション116と、システム監視アプリケーション117とをさらに含み、これらは、たとえば、ACNなどのネットワーク制御プロトコルインターフェースを介して会議アプリケーション104と対話するように設計される。会議システム100はまた、制御プロトコルを介したネットワークデバイスに対する意図しない変化および/または偶発的な変化を防止するために、デバイスネットワーク認証(「ネットワークロック」としても知られる)も含んでもよい。この機能は、会議アプリケーション104内で実装され、システム構成アプリケーション116が会議アプリケーション104をロックするか、または会議アプリケーション104に対する変更を防止するために使用され得る。
【0054】
実施形態では、システム構成アプリケーション116は、オーディオ入力および出力をルーティングすること、オーディオチャネルをセットアップすること、使用するオーディオ処理のタイプを決定することなどを含む、オーディオネットワークの設計、レイアウト、および構成を制御し、会議システム100全体に関連する設定を展開するための、構成および設計ソフトウェアを含む。たとえば、システム構成アプリケーション116は、オートミキサ304の設定を最適化し、システム利得構造を確立し、オーディオネットワーク全体でミュートステータスを同期し、
図3に示す他のDSPブロックを最適化するように構成され得る。
【0055】
いくつかの実施形態では、システム構成アプリケーション116は、推奨されるデバイス構成設定に従って、関連するマイクロフォンおよび会議システム100全般を構成もしくはセットアップするための自動構成コンポーネントまたはモジュールを備える。自動構成コンポーネントは、会議システム100に結合された各マイクロフォンを検出し、マイクロフォンのタイプもしくは分類(たとえば、MXA910、MXA310など)または他のデバイス情報を識別し、識別されたマイクロフォンタイプに関連付けられた事前に選択されたDSPパラメータまたは設定値を使用して、検出されたマイクロフォンを構成するように構成されてもよい。たとえば、各マイクロフォンは、事前に割り当てられたネットワーク識別情報(ID)を有してもよく、初期設定時に実行される発見プロセス中に、そのネットワークIDをシステム100に自動的に伝達してもよい。システム構成アプリケーション116は、ネットワークIDを使用して、メモリ(たとえば、ルックアップテーブル)からネットワークIDに関連付けられたDSP設定値を検索し、検索された設定値をDSPコンポーネント118に提供するか、あるいは、DSPコンポーネント118に、検出されたマイクロフォンのネットワークIDに関連付けられているDSP設定値を事前に入力させてもよい。事前に選択されたDSP設定値は、マイクロフォンが接続されているチャネルに基づいてもよい。実施形態によれば、DSP設定値は、たとえば、パラメトリック等化、ノイズ低減、コンプレッサ、利得、および/または
図3に示す他のDSPコンポーネントなどの特定のパラメータの選択肢またはデフォルト値を含んでもよい。
図3に示すように、オートミキシングの前に適切なDSP設定値を各マイクロフォンに適用するために、各マイクロフォン入力ライン上に自動構成コンポーネント320が含まれてもよい。
【0056】
システム100のシステム監視アプリケーション117は、企業またはネットワーク全体を監視し、そこに含まれる各デバイスまたはアプリケーションを個別に制御するように設計された、監視および制御ソフトウェアを備える。いくつかの実施形態では、会議アプリケーション104ソフトウェアは、システム監視アプリケーション117に依拠して、ユーザを認証し、ユーザの機能を承認してもよい。システム監視アプリケーション117は、ネットワーク制御プロトコル(たとえば、ACN)を使用して会議アプリケーション104とインターフェースする。会議アプリケーション104によって採用される全体的なアーキテクチャパターンは、ユーザインターフェース(UI)自体の中にモデルビューコントローラの感覚を備えた、基礎となる階層への標準のGet-Set-Notify手法によるイベント駆動型として要約され得る。たとえば、システム監視アプリケーション117は、会議アプリケーション104を監視し、イベントを検出し、それらのイベントに基づいてユーザに通知するように構成され得る。実施形態では、会議アプリケーション104は、会議アプリケーション104がネットワーク制御デバイスであるかのように発見要求に応答するコントローラ114の機能を維持することによって、システム監視アプリケーション117から監視されてもよい。これにより、システム監視アプリケーション117は、システム100内の他のハードウェアと同じ方法で、会議アプリケーション104を監視および制御することができる。この手法はまた、会議アプリケーション104に監視および制御のサポートをもたらすための最短の方法を提供する。
【0057】
実施形態では、コンピューティングデバイス102は、たとえば、事前設定、ログファイル、ユーザ向けイベント、オーディオインターフェースの構成、仮想オーディオデバイスドライバ130の構成、会議アプリケーション104の現在の状態、ユーザ資格情報、およびエンドユーザによって記憶および呼び出される必要がある任意のデータなどのデータの永続ストレージの実装のために構成された1つまたは複数のデータ記憶デバイスを含むことができる。たとえば、データ記憶デバイスは、
図1に示すイベントログデータベース122および/またはリソース監視データベース128を含んでもよい。データ記憶デバイスは、コンピューティングデバイス102のフラッシュメモリまたは他のメモリデバイスにデータを保存してもよい。いくつかの実施形態では、データ記憶デバイスは、たとえば、SQLiteデータベース、UnQLite、Berkeley DB、BangDBなどを使用して実装され得る。会議アプリケーション104のデータ記憶のニーズに対してデータベースを使用することは、ページ付けおよびフィルタリングされたデータクエリを使用したデータ履歴の容易な検索を含む一定の利点がある。
【0058】
図1に示すように、イベントログデータベース122は、コントローラ114からイベント情報を受信し、事前定義されたビジネスルールまたは他の設定に基づいて、ユーザ向けのイベントを生成するように構成され得る。たとえば、イベントログ122は、システムイベントをサブスクライブし、ユーザが問題を識別して、問題を修正するために何をする必要があるかを明確に理解するのに役立つ、ユーザ向けのアクション可能なイベントを提供することができる。イベントログデータベース122は、任意のコントローラソフトウェアからの要求に応じて検索可能なイベントの履歴を維持してもよい。エンドユーザが履歴を長期間保持するように構成される場合、履歴のページ付けが推奨される。場合によっては、たとえば、ウェブベースのアプリケーション113またはシステム監視アプリケーション117などのユーザインターフェース(UI)コントローラが、エンドユーザに対して表示するイベントを要求するとき、コントローラ114は、会議アプリケーション104がCPUまたは他のタイムクリティカルなタスクでビジー状態である場合にこの要求を拒否してもよい。
【0059】
実施形態では、イベントロギングは、会議アプリケーション104の本質的な部分であり、ソフトウェアをトラブルシューティングするための重要な方法であり得る。会議アプリケーション104アーキテクチャの各コンポーネントは、そのサブシステムで発生したすべてのイベントをログ記録するように構成され得る。ロギングは、統合すること、各コンポーネントの挙動への影響を少なくすること、全体にわたって共通のフォーマットに従うことが容易であり得る。エンドユーザは、ウェブブラウザベースのアプリケーション113(もしくは他のシンコンポーネントユーザインターフェース(CUI))またはシステム監視アプリケーション117を使用して、ユーザがログファイルを保持したい時間の長さを構成することができる。通常、期間は1か月から1年まで様々であり、会議アプリケーションプロジェクトの仕様化フェーズ中に決定されることになる。
【0060】
場合によっては、会議アプリケーション104において収集され、イベントログデータベース122に格納されるイベントログは、ユーザ向けのログでなくてもよい。開発者は、ログファイルを分析し、エンドユーザが直面している問題を特定することができる。場合によっては、ログデータを検索および視覚化するための多くの様々な方法を用いてログファイルを分析するためのツールが提供されてもよい。このツールにより、ユーザは、特定の問題(たとえば、JIRA番号)に対するデータセットを作成し、特定のクエリを作成することによってその問題を分析することができる。たとえば、会議アプリケーション104でイベントをログ記録するためのイージーロギングツールが使用されてもよい。ログはどのPC上でも多くの空間を占める可能性があるので、開発チームは、日付に基づいて古いログをクリーンアップするユーザ主導の機能を有することができる。このツールは、たとえばChannel+ Shure iOSアプリケーションにおいて使用されてもよく、ロギングの非常に包括的なサポートを提供することができる。
【0061】
リソース監視データベース128は、コンピューティングデバイス102のリソース監視コンポーネントまたはモジュール124から受信した情報を格納する。実施形態では、リソースモニタ124は、コンピューティングデバイス102のリソースを監視し、コンピューティングデバイス102の正常性についてユーザを更新する、コンピューティングデバイス102の既存のコンポーネントとすることができる。実施形態では、会議アプリケーション104のDSPコンポーネント118は、たとえば、CPU、メモリ、および帯域幅などのコンピューティングデバイス102の特定のリソース、ならびにネットワークオーディオライブラリ126および仮想オーディオデバイスドライバ130などの他のアプリケーションおよびサービスの可用性に依存し得る。リソース監視コンポーネント124は、コンピューティングデバイスのリソースメトリックを受信または配布するために使用される監視デーモンを含んでもよい。たとえば、デーモンは、システムをリアルタイムで監視し、その結果をリモートまたはローカルの監視およびアラート発信アプリケーションに送り、リモートチェックを許可し、スクリプトを実行することによって問題を解決するように構成されてもよい。リソース監視コンポーネント124によって収集されたデータは、データベース128に格納され、必要に応じてコントローラ114に提供されてもよい。いくつかの実施形態では、リソースモニタ124は、事前設定された閾値に基づいて、どのリソースが過剰使用または過少使用のために停止または縮小される必要があり得るか、また、どのリソースが現在の使用をよりよく処理するために調整または再構成を必要とし得るかを判定することができる。これらの判定は、リソース関連の潜在的な問題についてユーザにアラートまたは警告を提供するために使用されてもよい。
【0062】
イベントログデータベース122とリソース監視データベース128はともに、トレイアプリケーション136と通信している。トレイアプリケーション136は、コンピューティングデバイス102のシステムトレイ(Windows OS)またはメニューバー(Mac OS)に表示され得るユーザ向けソフトウェアアプリケーションである。トレイアプリケーション136は、会議アプリケーション104を使用するときに、イベント情報および/またはリソース監視データをユーザに提示することができる。たとえば、トレイアプリケーション136は、リソースモニタ124によって検出されたリソースの過剰使用、またはイベントログ122で受信された新しいイベントについてユーザにアラートを出してもよい。問題が発生したとき、ユーザは、この情報を使用して、問題をデバッグまたは別の方法で修正してもよい。
【0063】
実施形態では、トレイアプリケーション136はまた、ユーザがウェブブラウザベースのアプリケーション113を起動することを可能にすることができる。ウェブブラウザベースのアプリケーション113は、会議アプリケーション104のユーザ構成またはデバッグを可能にするように構成されたシンコンポーネントユーザインターフェース(CUI)または他のHTML5アプリケーションとすることができる。いくつかの実施形態では、ウェブベースのアプリケーション113は、ユーザアクセスを、アプリケーション104内のいくつかの構成可能なアイテムへのみに制限してもよい。
図1に示すように、ウェブベースのアプリケーション113は、ウェブソケットペイロード内で渡される、たとえば、DMP-TCPなどのウェブソケットベースのプロトコルを使用して、コントローラ114とインターフェースしてもよい。
【0064】
図示の実施形態では、ウェブベースのアプリケーション113、イベントログデータベース122、リソース監視データベース128、トレイアプリケーション136、およびリソース監視コンポーネント124は、コンピューティングデバイス102に格納されている。他の実施形態では、これらのコンポーネントのうちの1つまたは複数が、リモートサーバまたは他のコンピューティングデバイスに格納され、コンピューティングデバイス102によってアクセスされてもよい。
【0065】
実施形態によれば、会議アプリケーション104は、ライセンス付与されたソフトウェア製品として配布されてもよい。ライセンス付与された機能、ライセンス付与モデル、および販売戦略の厳密なセットは、ライセンス元およびライセンス先によって異なる場合がある。たとえば、ライセンスは、会議アプリケーション104の動作中に使用するための所定数のチャネル(たとえば、4、16など)の購入を伴う場合がある。実施形態によれば、DSP118によって提供されるチャネル(またはローブ)の数は、ライセンスによって購入されたチャネル数に応じて拡張可能である。しかし、会議アプリケーション104内のライセンス付与されたコンポーネントの全体的な実装は、チャネル数に関係なく同じままである。
【0066】
図1に示すように、会議アプリケーション104は、1つまたは複数のライセンス付与サーバ138と通信しているライセンス付与コンポーネント120を含む。ライセンス付与コンポーネント120は、エンドユーザによって購入されたライセンスに従って会議アプリケーションの挙動を検証するように構成されてもよく、これは、オーディオおよび/もしくは制御データを交換もしくは通信するためにライセンス付与された数のチャネルのみが使用されていること、または特定の機能もしくは性能レベルのみが利用可能であることを保証することを含む。場合によっては、ライセンスは、様々なライセンスの組合せを可能にするのに十分な柔軟性を備えることができ、ライセンス付与コンポーネント120は、所与の会議環境に対応するために、ライセンス付与された数のチャネルを集約または分離するように構成され得る。たとえば、それぞれ4つのチャネルを必要とする2つの部屋を用いる会議プロジェクトは、8つのチャネルを含む単一のライセンスによってカバーされ得る。ライセンス付与サーバ138は、資格付与管理を提供するとともに、タイミングおよびコンプライアンス問題を管理し、顧客がライセンス付与されたソフトウェアをインストールすることを可能にし、またその他の方法で会議アプリケーション104に対するすべてのライセンス付与のニーズを処理する、サードパーティライセンス管理ツール(たとえば、Flexera FLexNet Operations(FNO))を含むことができる。
【0067】
実施形態では、
図2に示すように、ライセンスによって所望のDSPアクションが可能であるかどうかを判定するために、DSP118にコマンドを送る直前にコントローラ200のライセンス付与インターフェース204が呼び出されてもよい。実施形態によれば、DSP118は、各ライセンスに関連付けられた可変数のチャネルに対応するために、チャネルごとに参照するように構成され得る。ユーザが購入したライセンスによって引き起こされる制限は、ユーザインターフェース(たとえば、ウェブベースのアプリケーション113またはシステム監視アプリケーション117)におけるユーザのアクションも制限することができる。ライセンス付与サーバ138および/またはライセンス付与コンポーネント120を介して、会議アプリケーション104にライセンスライブラリ(図示せず)がリンクされてもよく、ライセンス機能を検証するために、ライセンスライブラリとインターフェースするための追加のコードが実行されてもよい。ライセンスがまだ有効であることを保証するために、所与のライセンスの検証は、タイマーで(たとえば、24時間ごとに)発生することが可能である。
【0068】
好ましい実施形態によれば、会議アプリケーション104は、ユーザログインなしで自動的に開始し、Windows OSアズアサービス(Windows OS as a service)の下で実行し、コントローラ200およびDSP118コンポーネントは、単一の実行可能プログラムの一部である。会議アプリケーション104の展開は、Windowsの下でシステムサービスとしてコントローラ200およびDSPコンポーネント118をインストールすることを含む。インストールは、サービスが自動的に開始されるように構成することができる。会議アプリケーション104のインストーラは、パッケージ化して任意の所望のプラットフォームにインストールする能力を有し、サードパーティコンポーネント(たとえば、ネットワークオーディオライブラリ126およびそのコントローラ、ウェブサーバなど)のインストールを呼び出す機能、ならびに/または、必要とされる再配布/依存性もしくは必要とされるWindows更新を収集してインストールする機能を提供し、たとえば、利用可能なNICSまたはネットワークオーディオライブラリ126などのシステムリソースへのアクセスを提供し、インストールプロセス中にエンドユーザをウォークスルーして包括的なフィードバックを提供するための柔軟なユーザインターフェース(UI)を有してもよい。
【0069】
インストーラの一例としては、InstallAnywhereがあり、これは、物理環境、仮想環境、およびクラウド環境に専門的で一貫性のあるマルチプラットフォームインストール体験を提供する必要があるアプリケーション製作者向けのインストール開発ソリューションである。InstallAnywhereは、オンプレミスプラットフォーム(Windows、Linux(登録商標)、Apple、Solaris、AIX、HP-UX、およびIBM)の信頼性の高いインストールを作成することができ、ユーザが既存および新規のソフトウェア製品を仮想およびクラウドインフラストラクチャに取り込み、Dockerコンテナをすべて単一のInstallAnywhereプロジェクトから作成できるようにする。
【0070】
インストーラの別の一例は、InstallBuilderであり、これは、現在サポートされているすべてのバージョンのWindows、Mac OS X、Linux(登録商標)、およびすべての主要なUnixオペレーティングシステムのインストーラを作成することができる。また、InstallBuilderは、必要に応じて、セットアッププロセスの下位互換性を最大化するために、多数のより古いプラットフォームおよびレガシープラットフォームをサポートする。
【0071】
いくつかの実施形態では、集中型監視システム(たとえば、システム監視アプリケーション117)を使用して各部屋から監視データを収集し、リソース性能測定の全体像を提供することによって、会議アプリケーション104が複数の部屋にわたって実装され得る。たとえば、単一の会議環境が、ネットワーク接続を介したオーディオおよび/またはビデオフィードを介して相互接続された複数の部屋で構成されてもよい。このような場合、各部屋は、会議アプリケーション104にアクセスするか、またはそれによって制御されてもよく、会議アプリケーション104は、それ自体を、会議システム100のシステム監視アプリケーション117によって監視されている任意の他のネットワーク化されたシステムデバイスとして提示してもよい。実施形態では、会議アプリケーション104の多室構成は、任意の数の部屋に対応するために高度に拡張可能とすることができる。
【0072】
会議システム100の様々なコンポーネント、および/またはそこに含まれるサブシステムは、(たとえば、
図4に示す)プロセッサおよびメモリを備えたコンピューティングデバイスなどの1つまたは複数のコンピュータによって、ならびに/またはハードウェア(たとえば、ディスクリート論理回路、特定用途向け集積回路(ASIC)、プログラマブルゲートアレイ(PGA)、フィールドプログラマブルゲートアレイ(FPGA)など)によって実行可能なソフトウェアを使用して実装されてもよい。たとえば、いくつかまたはすべてのコンポーネントは、ディスクリート回路デバイスを使用してもよく、かつ/または、本明細書に記載の1つまたは複数のプロセスもしくは動作を実行するように構成された、メモリに記憶されたプログラムコードを実行するプロセッサ(たとえば、オーディオプロセッサおよび/またはデジタル信号プロセッサ)を使用してもよい。実施形態では、プロセスの全部または一部が、コンピューティングデバイス102内もしくは外部の1つまたは複数のプロセッサおよび/または他の処理デバイス(たとえば、アナログデジタル変換器、暗号化チップなど)によって実行されてもよい。さらに、1つまたは複数の他のタイプのコンポーネント(たとえば、メモリ、入力および/または出力デバイス、送信機、受信機、バッファ、ドライバ、ディスクリートコンポーネント、論理回路など)もまた、本明細書に記載の動作のいずれか、一部、またはすべてを実行するために、プロセッサおよび/または他の処理コンポーネントと組み合わせて利用されてもよい。たとえば、
図3に示す1つまたは複数の動作を実行するために、システム100のメモリに記憶されたプログラムコードが、オーディオプロセッサによって実行されてもよい。
【0073】
実施形態によれば、コンピューティングデバイス102は、所与の会議環境内の1つまたは複数のマイクロフォンおよび1つまたは複数のスピーカに通信可能に結合され得る、スマートフォン、タブレット、ラップトップ、デスクトップコンピュータ、スモールフォームファクタ(SFF:small-form-factor)コンピュータ、スマートデバイス、または任意の他のコンピューティングデバイスとすることができる。いくつかの例では、コンピューティングデバイス102は、デスクトップコンピュータなどの固定型でもよく、コンピュータとは別のマイクロフォンおよび/またはスピーカ(たとえば、スタンドアロンのマイクロフォンおよび/またはスピーカ、会議デバイスのマイクロフォンおよび/またはスピーカなど)に通信可能に結合されてもよい。他の例では、コンピューティングデバイス102は、スマートフォン、タブレット、もしくはラップトップなどのモバイルまたは非固定型とすることができる。いずれの場合も、コンピューティングデバイス102はまた、ネイティブマイクロフォンデバイスおよび/またはネイティブスピーカデバイスを含んでもよい。
【0074】
図4は、会議システム100の例示的なコンピューティングデバイス400の簡略ブロック図を示す。実施形態では、コンピューティングデバイス400のような1つまたは複数のコンピューティングデバイスは、会議システム100内に含まれてもよく、かつ/またはコンピューティングデバイス102を構成してもよい。コンピューティングデバイス400は、本開示に記載の(添付図面に示す)機能または動作などの様々な機能または動作を実行するように構成されてもよい。
【0075】
コンピューティングデバイス400は、たとえば、プロセッサ402、メモリ404、ユーザインターフェース406、通信インターフェース408、ネイティブスピーカデバイス410、およびネイティブマイクロフォンデバイス412を含む様々なコンポーネントを含んでもよく、これらはすべて、システムバス、ネットワーク、または他の接続メカニズム414によって通信可能に結合される。本明細書に開示される例は、互いに物理的に近接して配置されても配置されなくてもよいコンポーネントを有するコンピューティングデバイスおよび/またはシステムを指し得ることが理解されるべきである。特定の実施形態は、クラウドベースのシステムまたはデバイスの形態をとることができ、「コンピューティングデバイス」という用語は、本明細書に記載の機能のうちの1つまたは複数を実行するように構成された、分散型のシステムおよびデバイス(クラウドに基づくものなど)、ならびにソフトウェア、ファームウェア、および他のコンポーネントを含むと理解されるべきである。さらに、上記のように、コンピューティングデバイス400の1つまたは複数の機能は、物理的にリモート(たとえば、スタンドアロンマイクロフォン)でもよく、たとえば、通信インターフェース408を介して、コンピューティングデバイスに通信可能に結合されてもよい。
【0076】
プロセッサ402は、汎用プロセッサ(たとえば、マイクロプロセッサ)および/または専用プロセッサ(たとえば、デジタル信号プロセッサ(DSP))を含んでもよい。プロセッサ402は、マイクロプロセッサ、マイクロコントローラベースのプラットフォーム、集積回路、1つまたは複数のフィールドプログラマブルゲートアレイ(FPGA)、および/または1つまたは複数の特定用途向け集積回路(ASIC)などであるがこれらに限定されない、任意の好適な処理デバイスまたは処理デバイスのセットとすることができる。
【0077】
メモリ404は、揮発性メモリ(たとえば、不揮発性RAM、磁気RAM、強誘電体RAMなどを含むRAM)、不揮発性メモリ(たとえば、ディスクメモリ、フラッシュメモリ、EPROM、EEPROM、メモリスタベースの不揮発性ソリッドステートメモリなど)、変更不可能なメモリ(EPROMなど)、読み取り専用メモリ、および/または大容量記憶デバイス(たとえば、ハードドライブ、ソリッドステートドライブなど)とすることができる。いくつかの例では、メモリ404は、複数の種類のメモリ、具体的には揮発性メモリおよび不揮発性メモリを含む。
【0078】
メモリ404は、本開示の方法を動作するためのソフトウェアおよび/または会議アプリケーション104などの1つまたは複数の命令セットが埋め込まれ得るコンピュータ可読媒体とすることができる。命令は、本明細書に記載されるような方法または論理のうちの1つまたは複数を具現化してもよい。一例として、命令は、命令の実行中、メモリ404、コンピュータ可読媒体のうちのいずれか1つまたは複数の中、かつ/またはプロセッサ402の中に、完全にまたは少なくとも部分的に存在することができる。
【0079】
「非一時的コンピュータ可読媒体」および「コンピュータ可読媒体」という用語は、集中型もしくは分散型データベースなどの単一の媒体もしくは複数の媒体、ならびに/または、1つまたは複数の命令セットを記憶する関連するキャッシュおよびサーバを含む。さらに、「非一時的コンピュータ可読媒体」および「コンピュータ可読媒体」という用語は、プロセッサによって実行するための命令セットを記憶、符号化、または保持することが可能であるか、または本明細書に開示される方法もしくは動作のうちのいずれか1つまたは複数をシステムに実行させる、任意の有形の媒体を含む。「コンピュータ可読媒体」という用語は、本明細書で使用される場合、任意のタイプのコンピュータ可読記憶デバイスおよび/または記憶ディスクを含み、かつ伝搬信号を除外するように明示的に定義される。
【0080】
ユーザインターフェース406は、デバイスのユーザとの対話を容易にすることができる。したがって、ユーザインターフェース406は、キーボード、キーパッド、マウス、タッチセンシティブパネル、マイクロフォン、およびカメラなどの入力コンポーネント、ならびに(たとえば、タッチセンシティブパネルと組み合わされ得る)表示画面、サウンドスピーカ、および触覚フィードバックシステムなどの出力コンポーネントを含んでもよい。ユーザインターフェース406はまた、短距離トランシーバ(RFID、Bluetoothなど)、電話インターフェース、セルラ通信ポート、ルータ、または他のタイプのネットワーク通信機器などの、入力または出力と通信するデバイスを含んでもよい。ユーザインターフェース406は、コンピューティングデバイス400の内部であってもよく、または、コンピューティングデバイス400の外部であり、無線で、もしくはユニバーサルシリアルバスポートなどを介して接続ケーブルを経由して、コンピューティングデバイス400に接続されてもよい。
【0081】
通信インターフェース408は、デバイス400が1つまたは複数のプロトコルに従って1つまたは複数のデバイス(またはシステム)と通信できるように構成されてもよい。一例では、通信インターフェース408は、Ethernetインターフェースまたは高精細シリアルデジタルインターフェース(HD-SDI:high-definition serial-digital-interface)などの有線インターフェースとすることができる。別の例として、通信インターフェース408は、セルラ、Bluetooth、またはWI-FIインターフェースなどの無線インターフェースとすることができる。
【0082】
いくつかの例では、通信インターフェース408は、コンピューティングデバイス400が、会議環境内に配置された1つまたは複数のマイクロフォンおよび/またはスピーカ(たとえば、
図1に示す会議デバイス106)との間で情報を送受信することを可能にしてもよい。この情報には、ローブまたはピックアップパターン情報、位置情報、方向情報、マイクロフォンの1つまたは複数の特性を調整するためのコマンドなどが含まれ得る。
【0083】
データバス414は、プロセッサ402、メモリ404、ユーザインターフェース406、通信インターフェース408、ネイティブスピーカ410、ネイティブマイクロフォン412、およびまたは任意の他の適用可能なコンピューティングデバイスコンポーネントを通信可能に結合するための1つまたは複数のワイヤ、トレース、または他のメカニズムを含んでもよい。
【0084】
実施形態では、メモリ404は、本明細書に記載の会議プラットフォームの全部もしくは一部、会議システム100、会議アプリケーション104、および/もしくは、たとえば、
図3に示すプロセス300を含む、それに関連する方法もしくはプロセスを実装または動作するための1つまたは複数のソフトウェアプログラムを記憶する。一態様によれば、たとえば、
図1に示す会議システム100などの会議環境のためのオーディオ処理のコンピュータ実装方法は、1つまたは複数のコンピューティングデバイス400を使用して実装することができ、
図3のプロセス300によって表される動作の全部または一部を含むことができる。前記方法は、複数のオーディオソースで入力オーディオ信号を受信することを含み、受信することは、仮想オーディオデバイスドライバ(たとえば、
図1に示すVADD130など)において、会議ソフトウェアモジュール(たとえば、
図1に示すサードパーティ会議ソフトウェア108など)から遠端入力オーディオ信号(たとえば、
図3に示すVADD入力316)を受信すること、および、ネットワークオーディオライブラリ(たとえば、
図1に示すネットワークオーディオライブラリ126など)において、1つまたは複数の近端オーディオデバイス(たとえば、
図1に示す会議デバイス106など)から近端入力オーディオ信号(たとえば、
図3に示すネットワークマイク入力302など)を受信することを含む。方法は、デジタル信号処理コンポーネント(たとえば、
図1に示すDSPコンポーネント118など)を使用して入力オーディオ信号を処理することをさらに含む。処理することは、近端入力オーディオ信号のうちの1つまたは複数に、(たとえば、
図3に示すAEC/NR307で示すように)音響エコー除去技法を適用すること、ならびに、入力オーディオ信号に基づいてオーディオ出力信号(たとえば、
図3に示すネットワークライン出力310および/またはVADD出力318)を生成することを含む。
【0085】
いくつかの態様によれば、DSPコンポーネントによる入力オーディオ信号の処理は、(たとえば、
図3のオートミキサ304によって示すように)近端入力オーディオ信号のうちの2つ以上を混合してオートミックス出力信号を生成することも含む。さらなる態様によれば、DSPコンポーネントによるオーディオ出力信号の生成は、マトリックスミキサ(たとえば、
図3のマトリックスミキサ306など)を使用してオーディオ出力信号を生成することを含む。一態様によれば、マトリックスミキサは、所与のオーディオソースについて、所与のオーディオソースから受信した任意の入力オーディオ信号を除外するとともに、オートミキサによって生成されたオートミックス出力信号および/または近端入力オーディオ信号のうちの1つまたは複数を1つまたは複数の遠端入力オーディオ信号と混合するように構成されてもよい。
【0086】
いくつかの実施形態では、複数のオーディオソースは、たとえば、コンピューティングデバイス400のネイティブマイクロフォンおよび/またはスピーカなどの1つまたは複数のネイティブオーディオデバイス、またはより具体的には、ネイティブオーディオデバイスをコンピューティングデバイス102に通信可能に結合するように構成されたデバイスドライバ(たとえば、ネイティブオーディオI/Oドライバ110)をさらに含む。このような場合、入力オーディオ信号は、ネイティブ入力オーディオ信号(たとえば、
図3に示すネイティブ入力312など)をさらに含んでもよく、出力オーディオ信号は、ネイティブ出力オーディオ信号(たとえば、
図3に示すネイティブ出力314など)をさらに含んでもよい。ネイティブオーディオデバイスは、コンピューティングデバイス400の周囲でまたは隣接してオーディオを捕捉および/またはブロードキャストするので、近端オーディオソースと見なされてもよい。
【0087】
いくつかの態様によれば、DSPコンポーネントによる入力オーディオ信号の処理は、事前に選択されたオーディオ処理パラメータを、近端オーディオデバイスのうちの少なくとも1つのデジタル信号処理コンポーネントに提供すること、および(たとえば、
図3の自動構成320で示すように)事前に選択されたパラメータを対応する近端入力オーディオ信号に適用することをさらに含む。一態様によれば、DSPコンポーネントによる入力オーディオ信号の処理は、少なくとも1つの近端オーディオデバイスに関連するデバイス情報を識別すること、および識別されたデバイス情報に基づいて、前記近端オーディオデバイスのメモリから1つまたは複数の事前に選択されたオーディオ処理パラメータを検索することをさらに含む。
【0088】
いくつかの態様によれば、DSPコンポーネントによる入力オーディオ信号の処理は、(たとえば、
図3の復号モジュール321で示すように)1つまたは複数の入力オーディオ信号を復号すること、および(たとえば、
図3の暗号化モジュール320で示すように)1つまたは複数のオーディオ出力信号を暗号化することをさらに含む。一態様によれば、ネットワークオーディオライブラリで受信された近端オーディオ信号は、(たとえば、会議デバイス106自体によって)暗号化されてもよく、したがって、処理の前に復号を必要とする。このような場合、ネットワークオーディオライブラリ用に生成されたオーディオ出力信号は、送信前に暗号化されてもよい。
【0089】
いくつかの態様によれば、方法は、(たとえば、
図1のライセンス付与モジュール120で示すように)会議環境に関連する1つまたは複数のライセンスに基づいて、近端入力オーディオ信号を受信するためにデジタル信号処理コンポーネントで利用可能なチャネル数を決定することをさらに含む。さらなる態様によれば、方法は、(たとえば、
図1のリソース監視データベース128で示すように)プラットフォームによって使用されているコンピューティングリソースについての使用情報を収集すること、(たとえば、
図1のリソース監視モジュール124で示すように)その情報に基づいて1つまたは複数のアラートを生成すること、ならびにユーザへの提示のために前記アラートをユーザインターフェース(たとえば、
図1に示すウェブベースのアプリケーション113および/またはトレイアプリケーション126)に提供することをさらに含む。さらなる態様によれば、方法は、(たとえば、
図1のミュート論理134で示すように)所与のオーディオソースのミュートステータスを、会議環境内の他のすべてのオーディオソース間で同期させることをさらに含む。いくつかの態様によれば、DSPコンポーネントによる入力オーディオ信号の処理は、(たとえば、
図1のクロック同期モジュール131で示すように)受信された入力オーディオ信号を単一のクロックに同期させることを含む。
【0090】
本開示は、技術の真の、意図された、公正な範囲および趣旨を制限するのではなく、技術に従って様々な実施形態を作成および使用する方法を説明することを意図している。前述の説明は、網羅的であること、または開示された正確な形式に限定されることを意図するものではない。上記の教示に照らして、修正または変形が可能である。実施形態は、記載された技術の原理およびその実際の適用の最良の説明を提供し、当業者が企図される特定の用途に適した様々な修正を加えて、様々な実施形態における技術を利用できるようにするために選択および説明された。このような修正および変形はすべて、それらが公正に、合法的に、公平に権利を与えられる範囲に従って解釈されるとき、特許出願の係属中に修正され得る添付の特許請求の範囲およびそのすべての等価物によって決定される実施形態の範囲内である。