以下、この発明による音響システムの幾つかの実施形態を、図を参照しながら説明する。以下に示す幾つかの実施形態の音響システムは、いずれも、ソース音源がマルチチャンネル音声信号であって、当該マルチチャンネルの音声・音楽ソースのチャンネル数などの信号仕様が変わっても、システムに接続されるスピーカ装置に応じて適切な再生音場環境(リスニング環境)を提供することができるものである。
なお、この発明による音響システムでは、入力ソースは1チャンネル、つまりモノーラル・ソースであっても適用できるが、以下の実施形態の説明ではマルチチャンネル・ソースが入力されるものとしている。したがって、以下の実施形態では、スピーカ装置用信号は、マルチチャンネルの音声信号をチャンネル合成して生成するようにしており、スピーカ装置用係数は、チャンネル合成係数である。なお、ソース音源のチャンネル数が少ない場合には、チャンネル合成ではなく、チャンネル分配するようにするものであり、スピーカ装置用係数は、チャンネル分配係数となる。
この実施形態の音響システムにおいては、任意の個数および任意の配置のスピーカ装置を含むことが可能とされている。つまり、実施形態の音響システムは、任意の数のスピーカ装置を、任意に配置しても、常に、適切な音像定位が得られるリスニング環境を提供することができるものである。
例えば6個のスピーカ装置を、前記の5.1チャンネル・サラウンドで推奨されている左(L)チャンネル、右(R)チャンネル、センター(C)チャンネル、後方左(LS)チャンネル、後方右(RS)チャンネルおよび低域効果(LFE)チャンネルの、各チャンネルに対応する位置(リスナの正面方向を基準にした位置)に配置するようにした場合には、それぞれの配置位置のスピーカ装置は、左(L)チャンネル、右(R)チャンネル、センター(C)チャンネル、後方左(LS)チャンネル、後方右(RS)チャンネルおよび低域効果(LFE)チャンネルの、それぞれ対応するチャンネルの音声信号をドライブ信号として放音をすればよい。
しかし、以下に説明するような任意の数のスピーカ装置が任意に配置されている音響システムにおいては、それぞれ左(L)チャンネル、右(R)チャンネル、センター(C)チャンネル、後方左(LS)チャンネル、後方右(RS)チャンネルおよび低域効果(LFE)チャンネルに対応する音像定位位置が、リスナを基準にして、それぞれ適切な位置となるように、各スピーカ装置で放音する音声信号(以下、スピーカ装置用信号という)が生成される。
マルチチャンネルの音声信号によるチャンネル合成により、再生音場を生成する方法としては、チャンネル信号を定位させたい方向を挟む2つのスピーカに、その方向に応じて信号を割り付ける方法を用いることができる。この方法の場合において、実スピーカの配置によっては、奥行き方向に定位感を与えるために、隣接するスピーカに遅延したチャンネル信号を加えるようにしても良い。
また、前述したような仮想音像定位技術を利用して、チャンネル信号を定位させたい方向に音像定位させることもできる。その場合には、一つのチャンネルの信号について使用するスピーカは、2つ以上とすることができ、しかも、任意に選択することができる。また、リスナの適正聴取範囲を広げるためには、より多くのスピーカを使用して、例えばMINT(多入出力形逆フィルタ)技術により、音像/音場制御を施すようにしてもよい。
この実施形態では、以上のような方法が用いられて、スピーカ装置用信号は、マルチチャンネルの音声信号がチャンネル合成され生成される。
例えば、前述した5.1チャンネル・サラウンド信号の場合を例にとると、左(L)チャンネル、右(R)チャンネル、センター(C)チャンネル、後方左(LS)チャンネル、後方右(RS)チャンネルおよび低域効果(LFE)チャンネルの信号のそれぞれをSL、SR、SC、SLS、SRS、SLFEとし、前記各チャンネルについてのチャンネル合成係数をwL、wR、wC、wLS、wRS、wLFEとしたとき、任意の位置のID番号(識別番号)iのスピーカ装置のスピーカ装置用信号SPiは、
SPi=wLi・SL+wRi・SR+wCi・SC+wLSi・SLS+wRSi・SRS
+wLFEi・SLFE ・・・(式1)
と表わすことができる。wLi、wRi、wCi、wLSi、wRSi、wLFEiは、ID番号iのスピーカ装置用のチャンネル合成係数を示している。
チャンネル合成係数は、一般には上記の遅延時間や周波数伝達特性を含めたものであるが、ここでは、説明を簡単にするため、単に加重係数として、
0≦wL、wR、wC、wLS、wRS、wLFE≦1
であるとする。
以下に説明する実施形態の音響システムにおいては、少なくとも複数個のスピーカ装置と、これら複数個のスピーカ装置に音楽・音声ソースに基づく音声信号を供給するためのサーバ装置とを含む。そして、前記スピーカ装置用信号は、サーバ装置が生成する場合と、各スピーカ装置が生成する場合とがある。
前者のサーバ装置がスピーカ装置用信号を生成する場合には、サーバ装置は、音響システムを構成する複数個の全てのスピーカ装置に対するチャンネル合成係数を保持し、その保持しているチャンネル合成係数を用いて、前述のようなチャンネル合成により、スピーカ装置用信号の全てを生成するためのシステム制御機能部を備える。
そして、後述するように、このサーバ装置のシステム制御機能部が、全てのスピーカ装置と通信を行なって、当該全てのスピーカ装置に対するチャンネル合成係数の確認補正処理を行なうようにする。
後者の各スピーカ装置がスピーカ装置用信号を生成する場合には、各スピーカ装置は、自分用のチャンネル合成係数を保持すると共に、サーバ装置は、マルチチャンネル音声信号の全てのチャンネルの音声信号を、各スピーカ装置に供給するようにする。そして、各スピーカ装置は、受信したマルチチャンネル音声信号から、保持しているチャンネル合成係数を用いて、前述のようなチャンネル合成により、自分用のスピーカ装置用信号を生成する。
そして、後述するように、各スピーカ装置が、他の全てのスピーカ装置と通信を行なって、自己のスピーカ装置に対するチャンネル合成係数の確認補正処理を行なうようにする。
なお、この実施形態の音響システムでは、任意の個数のスピーカを任意に配置することが可能であるが、その個数および各スピーカ装置の識別情報、また、複数個のスピーカ装置の配置情報を、システムが認知する必要がある。
ユーザが、音響システムに対して、上記の情報を設定入力することも勿論可能であるが、以下に説明する例においては、それらの情報も、システムが自動的に認識して設定することができるようにしている。以下、それぞれの実施形態について説明する。
[第1の実施形態]
図1は、この発明による音響システムの第1の実施形態のシステム構成を示す図である。この第1の実施形態の音響システムは、サーバ装置100と、複数個のスピーカ装置200とが、共通の伝送路、この例では、シリアルバス300により接続されて構成されている。なお、以下の実施形態の説明においては、スピーカ装置の識別子の情報としては、識別番号(ID番号)を用いるようにする。
バス300の構成としては、例えば、USB(Universal Serial Bus)接続、また、IEEE(The Institute Electrical and Electronics Engineers,Inc.)規格やMIDI(Musical Instrument Digital Interface)1394規格などにおける各コンポーネントの接続方式あるいはその類似接続方式を用いることができる。
サーバ装置100は、例えば、ディスク400などの記録媒体に記録されている、例えば5.1チャンネル・サラウンド信号から、左(L)チャンネル、右(R)チャンネル、センター(C)チャンネル、後方左(LS)チャンネル、後方右(RS)チャンネルおよび低域効果(LFE)チャンネルのマルチチャンネル音声信号を再生する。
そして、この第1の実施形態のサーバ装置100は、システム制御機能部を備え、マルチチャンネル音声信号から、各スピーカ装置200に供給するスピーカ装置用信号を生成し、それをバス300を通じて各スピーカ装置200に供給する。
ここで、サーバ装置100から、それぞれ別々の配線を通じて各スピーカ装置200にスピーカ装置用信号を供給するように構成することもできるが、この例では、共通の伝送路としてのバス300を通じて複数個のスピーカ装置200にスピーカ装置用信号を供給する。
図2(A)は、サーバ装置100から複数個のスピーカ装置200に伝送するスピーカ装置用信号のフォーマットの例を示すものである。
先ず、サーバ装置100から複数個のスピーカ装置200に供給する音声信号は、パケット化されたデジタル音声信号とされる。ここで、1パケットは、バス300に接続されているスピーカ装置の個数分の音声データを含む。図2(A)は、バス300に6個のスピーカ装置200が接続された場合であって、SP1〜SP6は、それぞれのスピーカ装置用信号を示しており、1パケット中に、バス300に接続されている複数個のスピーカ装置用信号の全てが含められるようにされている。
音声データSP1はID番号1のスピーカ装置用信号、音声データSP2はID番号2のスピーカ装置用信号、・・・音声データSP6はID番号6のスピーカ装置用信号である。これら音声データSP1〜SP6は、所定の単位時間分のマルチチャンネルの音声信号から、前述したようなチャンネル合成により生成される。これら音声データSP1〜SP6は、この例では、データ圧縮されている。なお、バス300の伝送速度が高速である場合には、これら音声データSP1〜SP6は、データ圧縮する必要はなく、伝送レートを高速にするだけでよい。
この例においては、1パケットの先頭には、同期信号やチャンネル構成情報を含むパケットヘッダが付加されている。同期信号は各スピーカから放音されるタイミングを合わせるための信号である。また、チャンネル構成情報は、1パケットに含まれるスピーカ装置用信号の数の情報等を含む。
各スピーカ装置200は、このヘッダを基準にして、ヘッダから数えて何番目の音声データが自分用の音声データ(スピーカ装置用信号)であるかを認識して、当該自分用の音声データを、バス300を通じて伝送されてくるパケットデータから抽出して、内蔵するRAM(Random Access Memory)などにバッファリングするようにする。
そして、各スピーカ装置200は、バッファリングしている自機用のスピーカ装置用信号を、パケットヘッダの同期信号に基づく同一タイミングで読み出して、スピーカユニット201から放音する。つまり、バス300に接続された複数個のスピーカ装置200は、同一のタイミングで放音すべき音声を、同期信号に基づくタイミングで放音することにより、同一のタイミングで放音するようにする。
バス300に接続されるスピーカ装置200の数が変化すると、1パケット内に含まれるスピーカ装置用信号の数が、それに応じて変化する。このとき、各スピーカ装置用信号の長さは一定でもよいし、可変であってもよい。可変である場合は、ヘッダに、スピーカ装置用信号のバイト数を記載するようにする。
また、パケットのヘッダ部分がコントロールチェンジ情報を含むようにしてもよい。例えば図2(B)に示すように、パケットヘッダによりコントロールチェンジが宣言されると、ヘッダの後に続く「固有ID」の情報に示されるID番号に対応するスピーカ装置のみに対する制御が可能になる。図2(B)の例では、固有IDで示されるスピーカ装置200におけるスピーカ装置用信号による放音のレベル(ボリューム)を“−10.5dB”に設定するように、そのスピーカ装置に制御指示している。もちろん、1つのパケット中に複数の制御情報を含めるようにしてもよい。このコントロールチェンジを使えば、すべてのスピーカ装置に対して同時にミュートをかけることも可能である。
前述したように、この例のサーバ装置100は、システム制御機能部を含み、複数個のスピーカ装置200のそれぞれに供給するスピーカ装置用信号を、前述したチャンネル合成により生成する。
そして、この例では、サーバ装置100は、シリアルバス300に接続されているスピーカ装置200の数を検知すると共に、各スピーカ装置200にID番号を付与して、システム上、各スピーカ装置200を識別することができるようにする。
さらに、この例では、サーバ装置100は、後述するような手法により、シリアルバス300に接続されて配置されている複数個のスピーカ装置200の配置関係を検出する。そして、サーバ装置100は、検出した配置関係から、各スピーカ装置用信号を形成するための各スピーカ装置毎のチャンネル合成係数を算出し、当該算出したチャンネル合成係数を記憶して保持するようにする。
また、サーバ装置100のシステム制御機能部は、後述するように、記憶して保持しているチャンネル合成係数が、各スピーカ装置200のそれぞれについて、実際の配置環境において最適なものとなっているかどうかを確認して、必要に応じて当該チャンネル合成係数を各スピーカ装置ごとに補正するための処理を行なう機能を備えている。
一方、スピーカ装置200は、この例では、スピーカユニット201の他に、マイクロホン202と、図1では図示を省略した信号処理部とを備えている。マイクロホン202は、自己のスピーカ装置が放音する音声、リスナが発生させる音声、他のスピーカ装置が放音する音声などを収音するためのものである。このマイクロホン202で収音した音声を電気信号に変換した音声信号(以下、説明の簡単のため、マイクロホンで収音した音声信号という)は、後述するように、音響システムにおいて、スピーカ装置200の数の検出処理と、各スピーカ装置200へのID番号の付与処理と、複数個のスピーカ装置200の配置関係の検出処理と、音像定位確認補正処理の際に用いられる。
[サーバ装置100のハードウエア構成]
図3は、この第1の実施形態におけるサーバ装置100のハードウエア構成例を示し、マイクロコンピュータを備える構成となっている。
すなわち、この例のサーバ装置100は、システムバス101に対して、CPU(Central Processing Unit)110と、ROM(Read Only Memory)111と、RAM(Random Access Memory)112と、ディスクドライブ113と、デコード部114と、通信インターフェース115と、送信信号生成部116と、受信信号処理部117と、スピーカ配置情報記憶部118と、チャンネル合成係数記憶部119と、スピーカ装置用信号生成部120と、伝達特性計算部121と、チャンネル合成係数確認補正処理部122と、リモコン受信部123とが接続されて構成されている。
ROM111には、サーバ装置100における、スピーカ装置200の数の検出および各スピーカ装置200へのID番号の付与処理と、複数個のスピーカ装置200の配置関係の検出処理と、音像定位確認補正処理とを実行するためのプログラムが記憶されており、CPU110が、RAM112をワークエリアとして用いて、前記の処理を実行する。
ディスクドライブ113は、光ディスク400に記録されている音声情報を読み出して、デコード部114に渡す。デコード部114は、読み出された音声情報をデコードして、例えば5.1チャンネル・サラウンドなどのマルチチャンネル音声信号を生成する。
通信インターフェース115は、スピーカ装置200とバス300を通じて通信を行なうためのものであり、コネクタ端子103を通じてバス300に接続されている。
送信信号生成部116は、通信インターフェース115およびバス300を通じてスピーカ装置200に送る信号を生成するもので、送信バッファを備えている。前述したように、この例においては、送信信号は、パケット化されたデジタル信号とされている。送信信号としては、スピーカ装置用信号のみではなく、前述したように、この例においては、スピーカ装置200に対する指示信号などもある。
受信信号処理部117は、通信インターフェース115を通じてスピーカ装置200から受け取ったパケット化データを受信するためのもので、受信バッファを備えている。受信信号処理部117は、受信したパケット化データをパケット分解し、CPU110の指示に応じて、伝達特性計算部121などに受信データを転送する。
スピーカ配置情報記憶部118は、後述するように、バス300に接続されたスピーカ装置200のそれぞれに付与されたID番号を記憶すると共に、スピーカ配置情報の検出処理により得られたスピーカ配置情報を、各スピーカ装置に付与されたID番号に対応して記憶する。
チャンネル合成係数記憶部119は、スピーカ配置情報の検出処理により得られたスピーカ配置情報から生成された、各スピーカ装置200のスピーカ用装置信号を生成するためのチャンネル合成係数を、それぞれのスピーカ装置200のID番号に対応して記憶する。
スピーカ装置用信号生成部120は、チャンネル合成係数記憶部119の各スピーカ装置200についてのチャンネル合成係数を用いて、デコード部114でデコードして得たマルチチャンネル音声信号から、各スピーカ装置用信号SPiを形成する。
伝達特性計算部121は、後述するように、スピーカ装置200から受信した、当該スピーカ装置200のマイクロホンで収音した音声信号についての伝達特性を計算する。この伝達特性計算部121での計算結果は、スピーカ配置の検出処理や、チャンネル合成係数の確認補正処理のために用いられる。
チャンネル合成係数確認補正処理部122は、後述するチャンネル合成係数確認補正処理を実行する処理部である。
リモコン受信部123は、リモコン送信機102からの例えば赤外線リモコン信号を受信する。リモコン送信機102は、光ディスク400の再生指示を行なう際に用いられる他、後述するように、リスナの正面方向をリスナが指示する際にも使用できるように構成されている。
なお、デコード部114、スピーカ装置用信号生成部120、伝達特性計算部121およびチャンネル合成係数確認補正処理部122は、ROM111にその処理プログラムを格納すると共に、CPU110により当該プログラムを実行することにより、ソフトウエア処理とすることもできる。
[スピーカ装置200のハードウエア構成]
図4は、この第1の実施形態におけるスピーカ装置200のハードウエア構成例を示し、この例のスピーカ装置200は、マイクロコンピュータを備える情報処理部を備える構成とされている。
すなわち、この例のスピーカ装置200は、システムバス203に対して、CPU210と、ROM211と、RAM212と、通信インターフェース213と、送信信号生成部214と、受信信号処理部215と、ID番号記憶部216と、出力音声信号形成部217と、I/Oポート218と、収音信号用バッファメモリ219と、タイマー部220とが接続されて構成されている。
ROM211には、スピーカ装置200における、スピーカ装置200の数の検出およびスピーカ装置200へのID番号の付与処理と、複数個のスピーカ装置200の配置関係を検出するための処理と、音像定位確認補正処理とを実行するためのプログラムが記憶されており、CPU210が、RAM212をワークエリアとして用いて、前記の処理を実行する。
通信インターフェース213は、サーバ装置100および他のスピーカ装置200とバス300を通じて通信を行なうためのものであり、コネクタ端子204を通じてバス300に接続されている。
送信信号生成部214は、通信インターフェース213およびバス300を通じてサーバ装置100や他のスピーカ装置200に送る信号を生成するもので、送信バッファを備えている。前述したように、この例においては、送信信号は、パケット化されたデジタル信号とされている。送信信号は、後述するように、例えばサーバ装置100からの問合せ信号に対する応答信号(以下、ACK信号という)や、マイクロホン202で収音した音声信号のデジタル信号などである。
受信信号処理部215は、通信インターフェース213を通じてサーバ装置100や他のスピーカ装置200から受け取ったパケット化データを受信するためのもので、受信バッファを備えている。受信信号処理部215は、受信したパケット化データをパケット分解し、CPU210の指示に応じて、ID番号記憶部216や出力音声信号形成部217などに受信データを転送する。
ID番号記憶部216は、この実施形態ではサーバ装置100から送られてくるID番号を自装置のID番号として記憶する。
出力音声信号形成部217は、受信信号処理部215で受信したパケット化データから自装置用のスピーカ装置用信号SPiを抽出し、当該抽出したスピーカ装置用信号SPiからスピーカユニット201に供給する連続音声信号(デジタル信号)を生成し、内蔵する出力バッファメモリに記憶する。そして、パケット化データのヘッダに含まれる同期信号に従って出力バッファメモリから読み出してスピーカユニット201に対して出力する。
例えば、パケット化されて伝送されてくるスピーカ装置用信号が、音声信号がデータ圧縮されたものである場合には、出力音声信号形成部217は、その圧縮されている音声信号を伸長デコードすると共に、当該伸長デコードした音声信号を出力バッファメモリを介して、前記同期信号のタイミングに同期させて出力する。
なお、バス300が高速伝送可能なものである場合には、音声信号は、データ圧縮するのではなく、伝送クロック周波数を、音声データのサンプリングクロック周波数よりも高周波数とすることにより、音声信号を時間圧縮して伝送することも可能である。その場合には、出力音声信号形成部217は、受信した音声データのデータレートを、元のサンプリングレートのデータに戻す処理(時間伸長処理)を行なうものである。
出力音声信号形成部217から出力されたデジタル音声信号は、D/A変換器によりアナログ音声信号に変換され、出力アンプ206を通じてスピーカユニット201に供給され、このスピーカユニット201から音声が放音される。
I/Oポート218は、マイクロホン202で収音された音声信号を取り込むためのものである。すなわち、マイクロホン202で収音して得られた音声信号は、アンプ207を通じてA/D変換器208に供給されてデジタル音声信号に変換され、I/Oポート218を通じてシステムバス203に送られ、収音信号用バッファメモリ219に格納される。
収音信号用バッファメモリ219は、この例においては、所定の容量のリングバッファメモリとされている。
タイマー部220は、前述の種々の処理において、必要なタイマー時間を計測するために用いられるものである。
なお、出力アンプ206、アンプ207の増幅度を、CPU210の指示に応じて、変更できるよう構成していてもよい。
次に、以上のような構成を備える音響システムにおけるスピーカ装置200の数の検出処理および各スピーカ装置200へのID番号の付与処理と、複数個のスピーカ装置200の配置関係の検出処理と、音像定位確認補正処理とについて、以下に説明する。
[スピーカ装置200の数の検出および各スピーカ装置200へのID番号の付与処理]
前述もしたように、バス300に接続されるスピーカ装置200の数およびそれらのバス300に接続されたスピーカ装置のID番号は、ユーザがサーバ装置100に設定登録すると共に、各スピーカ装置200に設定登録するようにすることもできるが、この実施形態では、サーバ装置100およびスピーカ装置200とが協働することにより、スピーカ装置200の数の検出および各スピーカ装置200へのID番号の付与処理が、以下に説明するように自動的になされる。
なお、各スピーカ装置200に設定登録する形態としては、GPIB(General Purpose Interface Bus)規格やSCSI(Small Computer System Interface)規格などがあり、例えば各スピーカ装置にビットスイッチを設けてID番号が重複しないようにユーザが設定するようにすればよい。
<第1の例>
図5は、バス300上に接続されるスピーカ装置200の数の検出および各スピーカ装置200へのID番号の付与処理の第1の例の処理シーケンスを示す図である。また、図6は、この処理時のサーバ装置100における処理のフローチャートであり、主としてCPU110による処理を中心に記述したものである。図7は、この処理時のスピーカ装置における処理のフローチャートであり、主としてCPU210による処理を中心に記述したものである。
なお、以下の説明において、便宜上、バス300を通じて、特定の相手を指定せずにバス300に接続されている全ての相手に送信する方式をブロードキャスト方式と呼び、また、特定の相手を指定してバス300を通じて送信する方式をユニキャスト方式と呼ぶことにする。
図5のシーケンス図に示すように、サーバ装置100は、当該処理の開始に先立ち、例えばリモコン送信機102を通じたユーザによるID番号消去指示操作に基づき、あるいは、新たにスピーカ装置200が増設または削除されたことを検出したとき、バス300に接続されている全てのスピーカ装置200に対してID番号消去信号をブロードキャスト方式により送る。スピーカ装置200のそれぞれは、このID番号消去信号を受けて、それぞれのID番号記憶部216に記憶されているID番号を消去する。
次に、サーバ装置100では、全てのスピーカ装置200においてID番号の消去処理が十分に完了するだけの時間を待って、CPU110がID番号付与のため、図6のフローチャートに示される処理ルーチンを起動する。そして、まず、サーバ装置100のCPU110は、ID番号付与のための問合せ信号を、ブロードキャスト方式により全てのスピーカ装置200にバス300を通じて送る(図6のステップS1)。
そして、CPU110は、予め定められたスピーカ装置200からのACK信号が到来するであろう所定時間を経過したか否か判別し(ステップS2)、前記所定時間経過していないと判別したときには、スピーカ装置200のいずれかからのACK信号の到着を待つ(ステップS3)。
一方、スピーカ装置200のCPU210のそれぞれは、上述のID番号を消去後に、ID番号付与のための問合せ信号の受信を監視しており(図7のステップS11)、当該ID番号付与のための問合せ信号の受信を確認すると、ID番号記憶部216にID番号を既に記憶済みか否か判別し(ステップS12)、既に記憶済み(つまりID番号付与済み)と判別すると、ACK信号を送出せずに、図7の処理ルーチンを終了する。
また、スピーカ装置200のCPU210のそれぞれは、ステップS12で、ID番号が記憶済みではないと判別したときには、ACK信号の発信を所定時間後に行なうようにタイマー部220をセットして、発信待機状態とする(ステップS13)。ここで、この発信待機におけるタイマー部220にセットする前記所定時間は、各スピーカ装置200で一定ではなく、ランダムに設定される。
次に、スピーカ装置200のCPU210のそれぞれは、他のスピーカ装置200からブロードキャスト方式によりバス300上に送出されたACK信号を受信したか否か判別し(ステップS14)、ACK信号を受信したと判別したときには、ステップS13でセットしたACK信号の発信待機を解除して(ステップS19)、この処理ルーチンを終了する。
ステップS14で、ACK信号を受信してはいないと判別したときには、CPU210は、ステップS13でセットした発信待機時間が経過したか否か判別する(ステップS15)。
そして、ステップS15で、発信待機時間が経過したと判別したときには、CPU210は、ACK信号をバス300を通じてブロードキャスト方式により送出する(ステップS16)。すなわち、未だID番号が付与されていないためにID番号記憶部216にID番号が記憶されていないスピーカ装置200のうちの、サーバ装置100からの問い合わせ信号を受けてから、最初に発信待機時間が経過したスピーカ装置200がACK信号を送出する。
図5のシーケンス図では、スピーカ装置200AがACK信号を送出し、他の未だID番号が付与されていないスピーカ装置200B,200Cは、このACK信号を受信して、発信待機状態を解除して、次の問合せ信号を待つようにする。
また、サーバ装置100のCPU110は、ステップS3で、このいずれかのスピーカ装置200からのACK信号の受信を確認すると、ACK信号を送ってきたスピーカ装置200Aを含めすべてのスピーカ装置200にID番号をブロードキャスト方式により通知する(図6のステップS4)。つまり、ID番号を付与する。また、CPU110は、スピーカ装置200の数の変数Nを、1だけインクリメントする(ステップS5)。
その後、CPU110は、ステップS1に戻り、問合せ信号の発信からの処理を繰り返す。そして、ステップS2で、予め定められたACK信号が到来するであろう所定時間以上経過しても、ステップS3で、ACK信号を受信しないと判別したときには、CPU110は、バス300に接続されている全てのスピーカ装置200へのID番号の付与が完了したため、いずれのスピーカ装置200からもACK信号が到来しない状態になったと判断して、この処理ルーチンを終了する。
一方、ACK信号を送出したスピーカ装置200では、前述したように、サーバ装置100からID番号の情報が送られてくるので、CPU210は、その受信を待ち(ステップS17)、受信を確認したら、当該ID番号を、ID番号記憶部216に格納する(ステップS18)。他のスピーカ装置200にも当該ID番号は送信されるが、このステップS17の処理は、ステップS16でACK信号を送信したスピーカ装置200だけが実行可能なので、ID番号が重複して付与されることはない。そして、この処理ルーチンを終了する。
各スピーカ装置200では、ID番号の問合せ信号が到来するごとに図7の処理ルーチンが実行されるが、ID番号が付与されたスピーカ装置200では、ステップS12でID番号の付与済みを確認するとこの処理ルーチンを終了する。したがって、ID番号が付与されていないスピーカ装置200のみが、ステップS13以降の処理を順次に行ない、全てのスピーカ装置200に順次にID番号が付与されるものである。
そして、ID番号の付与が完了すると、サーバ装置100では、ステップS5でインクリメントした変数Nの値として、バス300に接続されて音響システムを構成するスピーカ装置200の数が検出されるものである。また、この例では、サーバ装置100は、スピーカ配置情報記憶部118に、付与したID番号を記憶しておくようにする。
<第2の例>
上述した第1の例では、サーバ装置100は、バス300を通じた信号のやり取りにより、バス300に接続された複数個のスピーカ装置200の数を計数すると共に、各スピーカ装置200にID番号を付与するようにしたが、以下に説明する第2の例では、各スピーカ装置200のスピーカユニット201からテスト信号を放音させると共に、マイクロホン202でその放音音声を収音することを用いて、バス300に接続された複数個のスピーカ装置200の数を計数すると共に、各スピーカ装置200にID番号を付与するようにする。
図8は、スピーカ装置200の数の検出および各スピーカ装置200へのID番号の付与処理の第2の例の処理シーケンスを示す図である。また、図9は、この第2の例の場合のサーバ装置100における処理のフローチャートであり、主としてCPU110による処理を中心に記述したものである。図10は、この第2の例の場合のスピーカ装置における処理のフローチャートであり、主としてCPU210による処理を中心に記述したものである。
図8のシーケンス図に示すように、サーバ装置100は、第1の例と同様に、当該処理の開始に先立ち、例えばリモコン送信機102を通じたユーザによるID番号消去指示操作に基づき、あるいは、新たにスピーカ装置200がバス300に接続または取り外されたことを検出することにより、スピーカ装置200が増設または削除されたことを検出したとき、バス300に接続されている全てのスピーカ装置200に対してID番号消去信号をブロードキャスト方式により送る。スピーカ装置200のそれぞれは、このID番号消去信号を受けて、それぞれのID番号記憶部216に記憶されているID番号を消去する。
次に、サーバ装置100では、全てのスピーカ装置200においてID番号の消去処理が十分に完了するだけの時間を待って、CPU110がID番号付与のため、図9のフローチャートに示される処理ルーチンを起動する。そして、まず、サーバ装置100のCPU110は、ID番号付与のためのテスト信号と、その放音指示信号とを、ブロードキャスト方式により全てのスピーカ装置200にバス300を通じて送る(図9のステップS21)。
そして、CPU110は、予め定められたスピーカ装置200からのACK信号が到来するであろう所定時間を経過したか否か判別し(ステップS22)、前記所定時間経過していないと判別したときには、スピーカ装置200のいずれかからのACK信号の到着を待つ(ステップS23)。
一方、スピーカ装置200のCPU210のそれぞれは、上述のID番号を消去した後に、ID番号付与のためのテスト信号およびその放音指示信号の受信を監視しており(図10のステップS31)、当該ID番号付与のためのテスト信号およびその放音指示信号の受信を確認すると、ID番号記憶部216にID番号を既に記憶済みか否か判別し(ステップS32)、既に記憶済み(つまりID番号付与済み)と判別すると、図10の処理ルーチンをそのまま終了する。
また、スピーカ装置200のCPU210のそれぞれは、ステップS32で、ID番号が記憶済みではないと判別したときには、ACK信号の発信およびテスト信号の放音を所定時間後に行なうようにタイマー部220をセットして、時間待機状態とする(ステップS33)。ここで、この時間待機におけるタイマー部220にセットする前記所定時間は、各スピーカ装置200で一定ではなく、ランダムに設定される。
次に、スピーカ装置200のCPU210のそれぞれは、他のスピーカ装置200からのテスト信号の放音音声を検知したか否か判別する(ステップS34)。この放音音声の検知は、マイクロホン202で収音して得られる音声信号のレベルが、所定以上のレベルであるか否かにより検知する。そして、ステップS34で、他のスピーカ装置からのテスト信号の放音音声を検知したと判別したときには、ステップS33でセットした時間待機を解除して(ステップS39)、この処理ルーチンを終了する。
ステップS34で、他のスピーカ装置からのテスト信号の放音音声を検知してはいないと判別したときには、CPU210は、ステップS33でセットした待機時間が経過したか否か判別する(ステップS35)。
そして、ステップS35で、待機時間が経過したと判別したときには、CPU210は、ACK信号をバス300を通じてブロードキャスト方式により送信すると共に、テスト信号を放音する(ステップS36)。すなわち、未だID番号が付与されていないためにID番号記憶部216にID番号が記憶されていないスピーカ装置200のうちの、サーバ装置100からのテスト信号およびその放音指示信号を受けてから、最初に待機時間が経過したスピーカ装置200がACK信号を送信すると共に、テスト信号をスピーカユニット201から放音する。
図8のシーケンス図では、スピーカ装置200AがACK信号を送出すると共にテスト信号を放音し、他の未だID番号が付与されていないスピーカ装置200のマイクロホン202は、このテスト信号の放音音声を検知して、時間待機状態を解除して、次のテスト信号およびその放音指示信号を待つようにする。
また、サーバ装置100のCPU110は、ステップS23で、このいずれかのスピーカ装置200からのACK信号の受信を確認すると、ACK信号を送ってきたスピーカ装置200Aを含めすべてのスピーカ装置200にID番号をブロードキャスト方式により通知する(図9のステップS24)。つまり、ID番号を付与する。また、CPU110は、スピーカ装置200の数の変数Nを、1だけインクリメントする(ステップS25)。
その後、CPU110は、ステップS21に戻り、テスト信号およびその放音指示信号の発信からの処理を繰り返す。そして、ステップS22で、予め定められたACK信号が到来するであろう所定時間以上経過しても、ステップS23で、ACK信号を受信しないと判別したときには、CPU110は、バス300に接続されている全てのスピーカ装置200へのID番号の付与が完了したため、いずれのスピーカ装置200からもACK信号が到来しない状態になったと判断して、この処理ルーチンを終了する。
一方、ACK信号を送出したスピーカ装置200では、前述したように、サーバ装置100からID番号の情報が送られてくるので、CPU210は、その受信を待ち(ステップS37)、受信を確認したら、当該ID番号を、ID番号記憶部216に格納する(ステップS38)。他のスピーカ装置200にも当該ID番号は送信されるが、このステップS37の処理は、ステップS36でACK信号を送信したスピーカ装置だけが実行可能なので、ID番号が重複して付与されることはない。そして、この処理ルーチンを終了する。
各スピーカ装置200では、テスト信号およびその放音指示信号が到来するごとに図10の処理ルーチンが実行されるが、ID番号が付与されたスピーカ装置200では、ステップS32でID番号の付与済みを確認するとこの処理ルーチンを終了する。したがって、ID番号が付与されていないスピーカ装置200のみが、ステップS33以降の処理を順次に行ない、全てのスピーカ装置200に順次にID番号が付与されるものである。
そして、ID番号の付与が完了すると、サーバ装置100では、ステップS25でインクリメントした変数Nの値として、バス300に接続されて音響システムを構成するスピーカ装置200の数が検出されるものである。また、この例では、サーバ装置100は、スピーカ配置情報記憶部118に、付与したID番号を記憶しておくようにする。
なお、上述の第1および第2の例においては、スピーカ装置200の数の計数およびスピーカ装置200についてのID番号付与の前には、サーバ装置100は、スピーカ装置200のそれぞれに対してID番号を消去させるようにしたが、このID番号の消去は、音響システムを最初にセッティングするときのみでよく、後から、スピーカ装置200をバス300に追加または削除する場合には、このID番号の消去処理は、行なわなくても良い。
なお、上述の例では、テスト信号をサーバ装置100からスピーカ装置200に送るようにしたが、スピーカ装置200の例えばROM211に記憶されている波形の信号やノイズなどをテスト信号として用いることにより、テスト信号は、スピーカ装置200で発生させるようにすることもできる。その場合には、サーバ装置100は、スピーカ装置200にテスト信号の放音指示を送るだけでよい。
また、サーバ装置100からテスト信号の放音指示を送るのではなく、例えばリスナが声を発したり、手を叩いたりすることにより、ID番号付与処理の開始の合図を行ない、スピーカ装置200は、マイクロホン202でそれらの音声を検知して、上述と同様の処理を起動するようにすることもできる。
[スピーカ装置200の配置の検出処理]
このスピーカ装置200の配置位置の情報も、ユーザがサーバ装置100に設定登録することもできるが、この実施形態では、サーバ装置100およびスピーカ装置200とが協働することにより、スピーカ装置200の配置の検出処理が、以下に説明するように自動的になされる。
<リスナとスピーカ装置との距離についての情報の計測>
先ず、この実施形態では、リスナに対するスピーカ装置200の配置状態を検出する。この例においては、リスナが発した声を、スピーカ装置200のマイクロホン202が収音し、当該収音した音声信号についての伝達特性を算出し、伝播遅延時間によりスピーカ装置とリスナとの距離を求めるようにする。
原理的には、リスナがブザーなどの発音器を持って音を発しても良いが、耳に近い、装置が不要、などの理由により、この例では、リスナ自身の口から発せられる声を用いるようにしている。
また、距離計測には、超音波や光線を使用することも考えられるが、音響的伝播経路長を求めるためには、音波による計測が適する。また、音波による計測の場合には、リスナとスピーカ装置との間に遮蔽物などがあっても、正しく評価できる。そこで、この例では、音波による距離計測方法を採用している。
《リスナとスピーカ装置との距離計測の概要》
先ず、サーバ装置100は、リスナ・スピーカ間距離計測処理開始信号を、バス300を通じてブロードキャスト方式によりスピーカ装置200の全てに送信する。
この開始信号を受けると、各スピーカ装置200は、リスナが発する声を収音する待機モードとなり、スピーカユニット201からの放音を停止(音声出力をミュート)すると共に、マイクロホン202で収音した音声信号を収音信号用バッファメモリ(リングバッファメモリ)219に記録し始める。
次に、例えば図11に示すように任意の位置に配置された複数個のスピーカ装置200に対して、リスナ500が声を発する。
各スピーカ装置200のマイクロホン202は、このリスナ500が発した声を収音し、規定レベル以上の音声を最初に検出したスピーカ装置200が、他の全てのスピーカ装置200に対してトリガ信号を送出する。ここで、規定レベル以上の音声を最初に検出するスピーカ装置200は、複数個のスピーカ装置200のうちの、リスナ500位置から最も近い距離にあるスピーカ装置である。
そして、トリガ信号のタイミングを基準タイミングとして、全てのスピーカ装置200は、マイクロホン202で収音した音声信号の記録を開始し、予め定めた一定時間分、記録する。そして、この例では、前記一定時間の収音音声信号の記録が終了したら、各スピーカ装置200は、当該記録した音声信号を、サーバ装置100に送る。
サーバ装置100は、スピーカ装置200から受信した音声信号の伝達特性を計算し、各スピーカ装置200についての伝播遅延時間を求める。このとき、各スピーカ装置200について求められる伝播遅延時間は、トリガ信号のタイミングからの遅延時間であり、トリガ信号を発生したスピーカ装置200についての伝播遅延時間は零である。
そして、サーバ装置100では、この各スピーカ装置200について求めた伝播遅延時間から、リスナ500と各スピーカ装置200との距離に関する情報を求める。ここでは、スピーカ装置200とリスナ500との距離が求められるわけではなく、トリガ信号を発生したスピーカ装置200とリスナ500との距離をDoとしたとき、この距離Doと、ID番号iの各スピーカ装置200とリスナ500との距離Diとの距離差ΔDiである。
図11の例においては、スピーカ装置200Aがリスナ500に最も近い位置に配置されているので、このスピーカ装置200Aとリスナ500との距離をDoとすれば、この距離Doと、各スピーカ装置200A,200B,200C,200Dとの距離差ΔDiが、サーバ装置100で算出される。
図11では、スピーカ装置200A,200B,200C,200DのID番号iを、それぞれ「1」、「2」、「3」、「4」として、スピーカ装置200A,200B,200C,200Dの距離差ΔD1,ΔD2,ΔD3,ΔD4が得られる。ここで、ΔD1=0である。
《リスナとスピーカ装置との距離計測におけるサーバ装置100の処理》
以上説明したリスナとスピーカ装置との間の距離計測におけるサーバ装置100の処理動作を、図12のフローチャートを参照して説明する。
すなわち、CPU110は、リスナ・スピーカ間距離計測処理開始信号を、バス300を通じて全てのスピーカ装置200にブロードキャスト方式により送信する(ステップS41)。そして、CPU110は、バス300を通じた、いずれかのスピーカ装置200からのトリガ信号の到来を待つ(ステップS42)。
そして、CPU110は、ステップS42で、いずれかのスピーカ装置200からのトリガ信号の受信を確認すると、当該トリガ信号を送ってきたスピーカ装置200をリスナからの距離が最も近い位置に配置された最短距離位置スピーカとして、そのID番号を、RAM112あるいはスピーカ配置情報記憶部118に記憶する(ステップS43)。
次に、CPU110は、スピーカ装置200からの録音信号の受信を待ち(ステップS44)、スピーカ装置200のID番号および当該録音信号の受信を確認すると、当該録音信号をRAM112に格納する(ステップS45)。そして、CPU110は、バス300に接続されている全てのスピーカ装置200から録音信号を受け取ったかどうか判別し(ステップS46)、全てのスピーカ装置200からの録音信号は未だ受信していないと判別したときには、ステップS44に戻り、全てのスピーカ装置200からの録音信号を受信するまで、当該録音信号の受信処理を繰り返す。
ステップS46で、全てのスピーカ装置200からの録音信号を受信したと確認したときには、CPU110は、各スピーカ装置200からの録音信号について、伝達特性計算部121において伝達特性を計算するように制御する(ステップS47)。そして、算出した各スピーカ装置の伝達特性から各スピーカ装置200の伝播遅延時間を計算し、最短距離位置スピーカとリスナとの距離Doに対する各スピーカ装置200の前記距離差ΔDiを算出し、スピーカ装置200のID番号と対応付けてRAM112あるいはスピーカ配置情報記憶部118に記憶する(ステップS48)。
《リスナとスピーカ装置との距離計測におけるスピーカ装置200の処理》
次に、リスナとスピーカ装置との間の距離計測におけるスピーカ装置200の処理動作を、図13のフローチャートを参照して説明する。
各スピーカ装置200のCPU210は、バス300を通じたサーバ装置100からのリスナ・スピーカ間距離計測処理開始信号を受け取ると、図13のフローチャートを起動し、マイクロホン202で収音した音声信号の、収音信号用バッファメモリ(リングバッファメモリ)219への書き込みを開始する(ステップS51)。
次に、CPU210は、マイクロホン202からの音声信号のレベルを監視して、予め定めた規定レベル以上となったか否かにより、リスナ500が声を発したか否かを判別する(ステップS52)。ここで、規定レベル以上となったか否かを判別するのは、微小ノイズなどをリスナ500の発した声として検出して誤動作をしてしまうのを防止するためである。
そして、ステップS52で規定レベル以上の音声信号を検出したと判別したときには、CPU210は、トリガ信号をバス300を通じてブロードキャスト方式によりサーバ装置100および他のスピーカ装置200に送る(ステップS53)。
一方、ステップS52で規定レベル以上の音声信号は検出していないと判別したときには、CPU210は、他のスピーカ装置200からバス300を通じてトリガ信号を受信したか否か判別し(ステップS54)、トリガ信号を受信しなかったときには、ステップS52に戻る。
そして、ステップS54で、他のスピーカ装置200からトリガ信号を受信したと判別したとき、あるいは、ステップS53でトリガ信号をブロードキャスト方式によりバス300に送出したときには、CPU210は、受信したトリガ信号のタイミングから、あるいは送出したトリガ信号のタイミングから、規定時間だけ、マイクロホン202で収音した音声信号を収音信号用バッファメモリ219に記録する(ステップS55)。
そして、CPU210は、自機のID番号とともに、記録した前記規定時間分の音声信号を、バス300を通じてサーバ装置100に送信する(ステップS56)。
なお、この実施形態では、ステップS47において伝達特性を計算して伝播遅延時間を求めているが、最短距離位置スピーカからの録音信号とそれぞれのスピーカ装置からの録音信号との相互相関演算を行い、その結果から伝播遅延時間を求めるようにしてもよい。
<スピーカ装置200間の距離の計測>
上述したように、リスナ500とスピーカ装置200との間の距離に関する情報としては、距離差ΔDiのみが求められる。これだけでは、複数個のスピーカ装置200の配置状態を検出することはできない。この実施形態では、さらに、スピーカ装置200同士の間の距離を計測するようにし、当該スピーカ装置間距離と、前記距離差ΔDiとから、スピーカ装置200の配置情報を得るようにする。
《スピーカ装置200間の距離計測の概要》
図14は、この例のスピーカ装置200間の距離計測を説明するためのシーケンス図である。
すなわち、先ず、サーバ装置100は、全てのスピーカ装置200に対して、テスト信号の放音指示信号をブロードキャスト方式により送信する。テスト信号の放音指示信号を受信したスピーカ装置200の各々は、それぞれランダムな時間待機の状態となる。
そして、最初に待機時間が経過したスピーカ装置200が、トリガ信号をバス300にブロードキャスト方式により送出すると共に、テスト信号を放音する。このとき、バス300に送出されるトリガ信号のパケットには、スピーカ装置200のID番号が付加されている。一方、トリガ信号を受信した他のスピーカ装置200は、時間待機状態を解除すると共に、スピーカ装置200からのテスト信号の放音音声をマイクロホン202で収音して録音する。
図15の例においては、スピーカ装置200Aがトリガ信号をバス300に送出すると共に、テスト信号をスピーカユニット201から放音し、他のスピーカ装置200B,200C,200Dが、そのマイクロホン202で、当該スピーカ装置200Aの放音音声を収音する。
そして、テスト信号の放音音声を録音したスピーカ装置200B,200C,200Dは、トリガ信号のタイミングから規定時間分の録音信号を、サーバ装置100に送る。サーバ装置100は、これをバッファメモリに格納する。このとき、サーバ装置100に送られる録音信号のパケットには、送信元のスピーカ装置200B,200C,200DのID番号が付加されている。
サーバ装置100は、トリガ信号のパケットに付加されているID番号から、どのスピーカ装置200がテスト信号を放音したかを検知する。また、サーバ装置100は、録音信号のパケットに付加されているID番号により、トリガ信号を発生したスピーカ装置200からのテスト信号の音声信号が、どのスピーカ装置200で収音され、録音された録音信号であるかを検知する。
そして、サーバ装置100は、受信した録音信号の伝達特性を計算し、伝播遅延時間から、受信した録音信号に付加されているID番号のスピーカ装置200と、トリガ信号を発生したスピーカ装置200との間の距離を算出し、算出した距離を、例えばスピーカ配置情報記憶部118に記憶する。
サーバ装置100は、以上の処理を、テスト信号放音指示信号により、バス300に接続された全てのスピーカ装置200がテスト信号を放音するまで繰り返す。これにより、全てのスピーカ装置200間の距離が算出される。このとき、同じスピーカ装置200間距離が重複して算出されるが、その平均値を、当該スピーカ装置200間距離とするようにする。原理的には、この重複を避け、スピーカ装置200間で一度ずつ距離計測を行うようにもできるが、計測の精度を高めるためこの実施形態のように重複して計測することがより好ましい。
《スピーカ装置200間距離の計測におけるスピーカ装置200の処理》
以上説明したスピーカ装置間の距離計測におけるスピーカ装置200の処理動作を、図16のフローチャートを参照して説明する。
各スピーカ装置200のCPU210は、バス300を通じたサーバ装置100からのテスト信号の放音指示信号を受け取ると、図16のフローチャートを起動し、テスト信号放音済みフラグが[OFF]であるか否か判別し(ステップS61)、テスト信号放音済みフラグが[OFF]であると判別したときには、テスト信号の放音済みではないとして、テスト信号放音のランダム時間の待機となる(ステップS62)。
そして、CPU210は、他のスピーカ装置200からトリガ信号を受信したか否か判別し(ステップS63)、トリガ信号を受信しないと判別したときには、ステップS62でセットされた待機時間が経過したか否か判別し(ステップS64)、待機時間がいまだ経過していないと判別したときには、ステップS63に戻って他のスピーカ装置200からのトリガ信号の受信の監視を継続する。
ステップS64で、他のスピーカ装置200からのトリガ信号を受信することなく、待機時間が経過したと判別したときには、CPU210は、自己のID番号を付加したトリガ信号をパケット化してバス300を通じてブロードキャスト方式により送出する(ステップS65)。そして、送出したトリガ信号のタイミングに合わせてテスト信号をスピーカユニット201から放音する(ステップS66)。そして、テスト信号放音済みフラグを[ON]にセットする(ステップS67)。その後、ステップS61に戻る。
また、ステップS63で、テスト信号放音の時間待機中に他のスピーカ装置200からのトリガ信号を受信したと判別したときには、マイクロホン202で収音したテスト信号の音声信号を、当該トリガ信号のタイミングから規定時間分だけ録音し(ステップS68)、当該録音した規定時間分の音声信号を、パケット化し、ID番号を付加して、サーバ装置100にバス300を通じて送る(ステップS69)。そして、ステップS61に戻る。
また、ステップS61で、テスト信号放音済みフラグが[OFF]ではなく、[ON]であって、テスト信号が放音済みであると判別したときには、CPU210は、所定時間内に他のスピーカ装置200からトリガ信号を受信したか否か判別し(ステップS70)、トリガ信号を受信したと判別したときには、マイクロホン202で収音したテスト信号の音声信号を、当該受信したトリガ信号のタイミングから規定時間分だけ録音する(ステップS68)。そして、CPU210は、当該録音した規定時間分の音声信号を、パケット化し、ID番号を付加して、サーバ装置100にバス300を通じて送る(ステップS69)。
ステップS70で、所定時間内に他のスピーカ装置200からトリガ信号を受信しなかったと判別したときには、CPU210は、全てのスピーカ装置200からのテスト信号の放音が終了したとして、この処理ルーチンを終了する。
《スピーカ装置200間距離の計測におけるサーバ装置100の処理》
次に、スピーカ装置間の距離計測におけるサーバ装置100の処理動作を、図17のフローチャートを参照して説明する。
先ず、サーバ装置100のCPU110は、テスト信号の放音指示信号をブロードキャスト方式によりバス300を通じて全てのスピーカ装置200に送信する(ステップS81)。そして、スピーカ装置200におけるテスト信号の放音時間待機の待機時間を見込んで予め定められた所定時間以上経過したか否か判別する(ステップS82)。
ステップS82で、所定時間以上経過してはいないと判別したときには、CPU110は、いずれかのスピーカ装置200からのトリガ信号を受信したか否か判別し(ステップS83)、トリガ信号を受信してはいないと判別したときには、ステップS82に戻って、所定時間以上経過したかどうかの時間監視を行なう。
ステップS83で、トリガ信号を受信したと判別したときには、CPU110は、当該トリガ信号を発したスピーカ装置200のID番号NAを、当該トリガ信号のパケットに付加されたID番号から識別する(ステップS84)。
次に、CPU110は、スピーカ装置200からの録音信号の受信を待ち(ステップS85)、録音信号を受信したら、当該録音信号のパケットに付加されているID番号から、録音信号を送ってきたスピーカ装置200のID番号NBを検知し、当該ID番号NBに対応して録音信号をバッファメモリに格納する(ステップS86)。
次に、そのバッファメモリに格納した録音信号の伝達特性を計算し(ステップS87)、トリガ信号の発生タイミングからの伝播遅延時間を求めて、ID番号NAのテスト信号を放音したスピーカ装置200と、録音信号を送ってきたID番号NBのスピーカ装置200との距離Djk(ID番号jのスピーカ装置と、ID番号kのスピーカ装置との距離)を算出し、例えばスピーカ配置情報記憶部118に記憶する(ステップS88)。
なお、ここでも、ステップS87において伝達特性を計算して伝播遅延時間を求めているが、テスト信号とスピーカ装置200からの録音信号との相互相関演算を行い、その結果から伝播遅延時間を求めるようにしてもよい。
次に、CPU110は、テスト信号を放音したID番号NAのスピーカ装置200以外の、バス300に接続されている全てのスピーカ装置200から録音信号を受信したか否か判別し(ステップS89)、受信してはいないと判別したときには、ステップS85に戻る。
また、ステップS89で、テスト信号を放音したID番号NAのスピーカ装置200以外の、バス300に接続されている全てのスピーカ装置200から録音信号を受信したと判別したときには、ステップS81に戻り、再度、テスト信号の放音指示信号をバス300を通じてブロードキャスト方式によりスピーカ装置200に送信する。
また、ステップS82で、いずれかのスピーカ装置200からのトリガ信号を受信することなく、所定時間以上経過したと判別したときには、CPU110は、全てのスピーカ装置200からのテスト信号の放音が終了し、スピーカ装置間距離の計測が完了したとして、バス300に接続されている複数個のスピーカ装置200の配置関係の情報を算出し、算出した配置関係の情報をスピーカ配置情報記憶部118に格納する(ステップS90)。
ここで、サーバ装置100は、スピーカ装置200の配置関係の情報は、この処理ルーチンで求めたスピーカ装置間距離Djkのみではなく、前述のようにして求めたリスナ500とスピーカ装置200との距離に関する情報としての距離差ΔDiをも用いて求める。
すなわち、各スピーカ装置間距離Djkが求められたことにより、スピーカ装置200の配置関係が求まり、さらにリスナ500とスピーカ装置200との距離差ΔDiからこれらを満たすリスナ位置が求められる。基本的には幾何学的な解法あるいは連立方程式による解法により求められるが、それぞれの距離または距離差の測定に幾分の誤差を含むことが考えられるので、最小二乗法などにより誤差を最小化する配置関係を最終的に採用するものとする。
図18に、このとき求められたリスナとスピーカ装置200との距離およびスピーカ装置200間距離のテーブルを示す。スピーカ配置情報記憶部118には、少なくともこの図18のテーブル情報が記憶される。
<スピーカ装置200間の距離計測の他の例>
上述のスピーカ装置200間の距離計測の例においては、テスト信号の放音指示信号をサーバ装置100からスピーカ装置200にブロードキャスト方式により送信した後、所定時間以内にいずれかのスピーカ装置200からのトリガ信号を受信しなかったときに、距離計測処理を終了するようにした。
しかし、サーバ装置100は、前述したようにして、バス300に接続されている複数個のスピーカ装置200の数およびID番号を記憶して把握しているので、バス300に接続されている全てのスピーカ装置200からのトリガ信号を受信して全てのスピーカ装置200がテスト信号を放音したことを検出し、さらに、放音されたテスト信号についての他のスピーカ装置200からの規定時間分の録音信号の受信を確認したら、距離計測の終了信号をバス300に送出することにより、当該スピーカ装置200間の距離計測の処理を終了するようにすることができる。
また、上述の例では、テスト信号およびその放音指示信号をブロードキャスト方式にバス300に送出するようにしたが、サーバ装置100は、前述したように、バス300に接続されている複数個のスピーカ装置200の数およびID番号を記憶して把握しているので、記憶されているID番号のスピーカ装置200に対して、ユニキャスト方式で順次に、テスト信号およびその放音指示信号を送り、そして、そのスピーカ装置200のテスト信号の放音音声の録音信号を、他のスピーカ装置200から受信する処理を、全てのスピーカ装置200に対して繰り返すようにすることもできる。
この例を図19のシーケンス図を参照して説明する。
先ず、サーバ装置100は、ユニキャスト方式で、最初のスピーカ装置200、図19の例では、スピーカ装置200Aに対してテスト信号およびその放音指示信号を送る。これを受けたスピーカ装置200Aは、トリガ信号をバス300にブロードキャスト方式により送出すると共に、テスト信号を放音する。
すると、他のスピーカ装置200Bおよび200Cは、バス300を通じたトリガ信号のタイミングから規定時間分、そのマイクロホン202によりテスト信号の音声信号を録音し、その録音信号をサーバ装置100に送信する。サーバ装置100は、この録音信号を受信して、伝達特性を計算し、トリガ信号のタイミングを基準にした伝播遅延時間から、テスト信号を放音したスピーカ装置200Aと、スピーカ装置200Bおよび200Cのそれぞれとの距離を算出する。
こうして、スピーカ装置200Aについての他のスピーカ装置200B,200Cとの距離の算出が終了したら、サーバ装置100は、次のスピーカ装置200Bに対してテスト信号およびその放音指示信号を送り、上述と同様の処理動作を繰り返す。
そして、バス300に接続されている全てのスピーカ装置200に対して、テスト信号およびその放音指示信号を送り、テスト信号を放音したスピーカ装置200以外のスピーカ装置200からの録音信号を受信して、その伝達特性から伝播遅延時間を計算し、テスト信号を放音したスピーカ装置200と、他のスピーカ装置200との距離を算出する処理が終了したら、このスピーカ装置間距離算出処理を終了するようにする。
なお、テスト信号は、以上の例では、サーバ装置100から供給するようにしたが、前述もしたように、スピーカ装置200のROM211などには、通常、正弦波信号やその他の信号発生手段を含んでいるので、当該スピーカ装置200が備えている信号発生手段からの信号をテスト信号として用いることもできる。ちなみに、距離算出処理には、例えばTSP(Time Stretched Pulse)信号が用いられる。
<リスナの正面方向(基準方向)の決定>
上述したようにして算出されたリスナ500および複数個のスピーカ装置200の配置関係の情報は、リスナ500が向いている方向は無視したリスナ500およびスピーカ装置200の配置関係を示すものとなっている。つまり、これだけでは、リスナ500の正面方向を基準にして定められる左、右、センター、左後ろ、右後ろ、などの各チャンネルの音声信号による音像位置は定まらない。
そこで、この実施形態では、次に説明するように、幾つかの方法により、リスナ500の正面方向を基準方向として、指定して音響システムのサーバ装置100に認識させるようにしている。
《基準方向決定方法の第1の例》
この第1の例は、リスナ500のリモコン送信機102を通じた正面方向の指示操作をサーバ装置100がリモコン受信部123から受けて、基準方向を決定する方法である。この例においては、リモコン送信機102は、例えば図20に示すような方向指示部1021を備える。この方向指示部1021は、円盤状形状をしており、その中心点を中心に回転することが可能であると共に、リモコン送信機102の筐体内方向に押圧操作することが可能とされている。
この方向指示部1021は、矢印1022が基準位置マーク1023に対向する位置にある状態がホームポジション位置である。この方向指示部1021が、リスナ500によって、このホームポジション位置から回転され、かつ、当該回転位置で押圧操作されると、リモコン送信機102は、ホームポジション方向を正面方向として当該正面方向に対するその回転位置の方向を指示する信号をリモコン受信部123に送るように構成されている。
したがって、リスナ500は、リモコン送信機102をリスナ500の正面方向に向けた状態で、方向指示部1021を回転し、押圧操作すると、リスナ500の正面方向を基準にした当該回転位置の方向をサーバ装置100に指示することができる。この方向指示部1021を利用して、この第1の例では、音響システムを構成する複数個のスピーカ装置200の配置における基準方向としての正面方向を決定する。
図21は、この例の場合のサーバ装置100における基準方向決定およびそれに続く処理のルーチンを示すものである。
サーバ装置100のCPU110は、先ず、複数個のスピーカ装置200のうちから選択された任意のスピーカ装置200に、ユニキャスト方式によりテスト信号およびその放音指示信号を送る(ステップS101)。ここで、テスト信号としては、中音域のノイズあるいはバースト信号が好ましい。ただし、狭帯域信号では、定在波や反射波の影響で誤った定位感となりえるので、望ましくない。
すると、当該テスト信号および放音指示信号を受信したスピーカ装置200は、テスト信号を放音する。リスナ500は、リモコン送信機102の方向指示部1021を、ホームポジション方向を正面方向に向けた状態で、テスト信号を放音したスピーカ装置200の方向に回転指示して、押圧操作して、どの方向からテスト信号が聞こえたかをサーバ装置100に回答する。つまり、正面方向に対してどれだけずれた方向からテスト信号が放音されたかの方向指示情報がサーバ装置100に送られる。
サーバ装置100のCPU110は、リモコン送信機102からの方向指示情報の受信を監視し(ステップS102)、リモコン送信機102からの方向指示情報の受信を確認すると、スピーカ配置情報記憶部118に記憶されている複数個のスピーカ装置200の配置において、リスナ500が向いている正面方向(基準方向)を検出して、その方向情報をスピーカ配置情報記憶部118に記憶する(ステップS103)。
そして、スピーカ配置情報記憶部118には、複数個のスピーカ装置200の配置関係が記憶されているので、基準方向が定まると、当該複数個のスピーカ装置200の、リスナに対する配置関係が一義的に定まる。そこで、CPU110は、当該求められたリスナに対する複数個のスピーカの配置関係から、任意の位置に配置されている複数個のスピーカ装置200によって、例えば5.1チャンネル・サラウンド信号から、左(L)チャンネル、右(R)チャンネル、センター(C)チャンネル、後方左(LS)チャンネル、後方右(RS)チャンネルおよび低域効果(LFE)チャンネルのマルチチャンネル音声信号による音像定位が、リスナ500の正面方向を基準にした所期の対応する位置になるようにするためのチャンネル合成係数を、スピーカ装置200のそれぞれについて、前記各スピーカ装置200のリスナに対する配置関係から算出する。そして、算出した各スピーカ装置200のチャンネル合成係数を、当該スピーカ装置200のID番号に対応してチャンネル合成係数記憶部119に格納する(ステップS104)。
そして、CPU110は、チャンネル合成係数確認補正処理部122を起動して、後述するチャンネル合成係数確認補正処理を実行する(ステップS105)。そして、このチャンネル合成係数確認補正処理により補正した各スピーカ装置200のチャンネル合成係数のそれぞれを、チャンネル合成係数記憶部119に格納して、チャンネル合成係数記憶部119のチャンネル合成係数を更新する(ステップS106)。
なお、この例においても、テスト信号は、サーバ装置100から供給するのではなく、スピーカ装置200が備えている信号発生手段からの信号をテスト信号として用いることもできる。
また、ステップS101〜103のテスト信号の放音、リスナの応答操作および方向情報の記憶を複数回行ってもよいし、さらに他のスピーカ装置に対してもこの処理ルーチンを適用するようにしてもよい。複数回分の方向情報が得られた場合には、それらの平均処理などを行って最終的に基準方向を決定する。
《基準方向決定方法の第2の例》
この第2の例も、テスト信号をスピーカ装置200から放音させると共に、リモコン送信機102を通じたリスナ500の操作入力の受けて、サーバ装置100でリスナ500の正面方向を基準方向として決定するのであるが、この第2の例においては、音像定位がリスナ500の正面方向となるように、1個または2個のスピーカ装置200からテスト信号を放音させるようにする。
この第2の例におけるリモコン送信機102は、図示は省略するが、方向指示部1021と同様の回転操作部からなる方向調整ダイヤルを備える。そして、この第2の例では、この方向調整ダイヤルの回転方向にスピーカ装置200からのテスト信号による音像定位位置が移動するようにサーバ装置100が制御するようにするものである。
すなわち、例えば図22において、先ず、スピーカ装置200Aからテスト信号を放音させたとする。すると、リスナ500は、正面方向よりも左側からテスト信号が放音されているので、リモコン送信機102の方向調整ダイヤル1024を右方向に回す。
このリモコン送信機102での方向調整ダイヤル1024の操作信号をリモコン受信部123を通じて受信したサーバ装置100は、今度は、テスト信号をスピーカ装置200Aのみでなく、スピーカ装置200Aの右隣に位置するスピーカ装置200Dからも放音させるようにする。そのとき、サーバ装置100は、それら2個のスピーカ装置200Aおよび200Dから放音させるテスト信号のレベルを、方向調整ダイヤル1024の回転量に応じたものに制御して、2個のスピーカ装置から放音されるテスト信号による音像定位位置を調整するようにする。
そして、方向調整ダイヤル1024に隣接するスピーカ装置200Dから放音するテスト信号のレベルが最大(スピーカ装置200Aから放音するテスト信号のレベルは零)となっても方向調整ダイヤル1024がさらに回転される場合には、テスト信号を放音するスピーカ装置の組み合わせを、方向調整ダイヤル1024の回転方向の2個のスピーカ装置200Dとスピーカ装置200Cとに変更するようにする。
そして、テスト信号の放音音声による音像定位方向がリスナ500の正面方向に一致したときには、リスナ500は、リモコン送信機102を通じて決定入力を行なうようにする。サーバ装置100は、この決定入力を受けて、リスナ500の正面方向を基準方向として決定する。
図23は、この第2の例の場合のサーバ装置100における基準方向決定の処理ルーチンのフローチャートを示すものである。
サーバ装置100のCPU110は、先ず、複数個のスピーカ装置200のうちから選択された任意のスピーカ装置200に、ユニキャスト方式によりテスト信号およびその放音指示信号を送る(ステップS111)。ここで、テスト信号としては、中音域のノイズあるいはバースト信号が好ましい。ただし、狭帯域信号では、定在波や反射波の影響で誤った定位感となりえるので、望ましくない。
すると、当該テスト信号および放音指示信号を受信したスピーカ装置200は、テスト信号を放音する。リスナ500は、テスト信号が正面方向から聴取できたときには、決定入力をし、テスト信号が正面方向が聴取できなかったときには、リモコン送信機102の方向調整ダイヤル1024を、聴取したテスト信号の音像定位位置を、リスナ500の正面方向側に移動させるように回転させる。
そこで、サーバ装置100のCPU110は、リモコン送信機102から、方向調整ダイヤル1024の回転入力の情報を受信したか否か判別し(ステップS112)、方向調整ダイヤル1024の回転入力の情報を受信していないと判別したときには、リモコン送信機102からの決定入力を受信したか否か判別し(ステップS117)、決定入力も受信していないと判別したときには、ステップS112に戻って、方向調整ダイヤルの回転入力の受信を監視する。
ステップS112で、方向調整ダイヤル1024の回転入力の情報を受信したと判別したときには、テスト信号を放音中のスピーカ装置200と、当該テスト信号を放音中のスピーカ装置200に対して回転方向に隣接するスピーカ装置200とに、テスト信号を送信すると共に、リモコン送信機102の方向調整ダイヤル1024の回転量に応じた割合で、テスト信号を放音するようにする指示を送信する(ステップS113)。
これにより、2個のスピーカ装置200により、方向調整ダイヤルの回転量に応じた割合でテスト信号が放音されて、テスト信号の放音音声による音像定位位置が方向調整ダイヤルの回転量に応じて変わる。
そして、サーバ装置100のCPU110は、リモコン送信機102から決定入力を受信したか否か判別し(ステップS114)、決定入力を受信していないと判別したときには、回転方向側に隣接するスピーカ装置200からのテスト信号の放音レベルが最大になっていないかどうか判別する(ステップS115)。
ステップS115で、回転方向側に隣接するスピーカ装置200からのテスト信号の放音レベルが最大になっていないと判別したときには、ステップS112に戻り、方向調整ダイヤルの回転入力の受信を監視する。
また、ステップS115で、回転方向側に隣接するスピーカ装置200からのテスト信号の放音レベルが最大になっていると判別したときには、CPU110は、テスト信号を放音するスピーカ装置200の組み合わせを、方向調整ダイヤル1024の回転方向に変更し(ステップS116)、その後、ステップS112に戻り、方向調整ダイヤルの回転入力の受信を監視する。
そして、ステップS114またはステップS117で、リモコン送信機102から決定入力を受信したと判別したときには、CPU110は、そのときにテスト信号を放音していたスピーカ装置200の組み合わせと、それら2つのスピーカ装置200からのテスト信号の放音の割合比率とから、リスナ500が向いている正面方向(基準方向)を検出して、その方向情報をスピーカ配置情報記憶部118に記憶する(ステップS118)。
そして、スピーカ配置情報記憶部118には、複数個のスピーカ装置200の配置関係が記憶されているので、基準方向が定まると、当該複数個のスピーカ装置200の、リスナに対する配置関係が一義的に定まる。そこで、CPU110は、当該求められたリスナに対する複数個のスピーカの配置関係から、任意の位置に配置されている複数個のスピーカ装置200によって、例えば5.1チャンネル・サラウンド信号から、左(L)チャンネル、右(R)チャンネル、センター(C)チャンネル、後方左(LS)チャンネル、後方右(RS)チャンネルおよび低域効果(LFE)チャンネルのマルチチャンネル音声信号による音像定位が、リスナ500の正面方向を基準にした初期の対応する位置になるようにするためのチャンネル合成係数を、スピーカ装置200のそれぞれについて、算出する。そして、算出した各スピーカ装置200のチャンネル合成係数を、当該スピーカ装置200のID番号に対応してチャンネル合成係数記憶部119に格納する(ステップS119)。
そして、CPU110は、チャンネル合成係数確認補正処理部122を起動して、後述するチャンネル合成係数確認補正処理を実行する(ステップS120)。そして、このチャンネル合成係数確認補正処理により補正した各スピーカ装置200のチャンネル合成係数のそれぞれを、チャンネル合成係数記憶部119に格納して、チャンネル合成係数記憶部119のチャンネル合成係数を更新する(ステップS121)。
なお、この実施例での方向調整ダイヤルに代えて、左回転方向/右回転方向を示す一対の操作キーを採用してもよい。
《基準方向決定方法の第3の例》
この第3の例は、リスナ500によるリモコン送信機102の操作を不用とする例である。この第3の例では、図12のフローチャートを参照して説明したリスナとスピーカ装置との距離計測において、リスナが発した音声を各スピーカ装置200のマイクロホン202が収音し、録音した信号を利用する。このスピーカ装置200の録音信号は、図12のステップS45において、サーバ装置100のRAM112に格納されている。そこで、このRAM112に格納されている音声情報を用いて、リスナ500の正面方向を検出するようにするものである。
この方法は、人の声の指向特性は左右で対象であり、中高音域成分は声を発したリスナの正面方向で最大となり、当該リスナの背面方向で最小になるという性質を利用している。
図24は、この第3の例の場合におけるサーバ装置の基準方向決定およびそれに続く処理のルーチンのフローチャートを示すものである。
すなわち、この第3の例においては、サーバ装置100のCPU110は、図12のステップS45で、RAM112に格納した各スピーカ装置200のマイクロホン202で収音し、録音したリスナ500が発信音声の録音信号のスペクトル分布を求める(ステップS131)。このとき、伝播距離による音波の減衰を考慮して、リスナ500と各スピーカ装置200との距離DLiに応じてそれぞれのスペクトル強度を補正する。
次に、CPU110は、各スピーカ装置200からの録音信号のスペクトル分布を比較し、その特性差からリスナ500の正面方向を推定する(ステップS132)。そして、推定した正面方向を基準方向として、複数個のスピーカ装置200のリスナ500に対する配置関係を検出して、推定した正面方向の情報とともに、スピーカ配置情報記憶部118に記憶する(ステップS133)。
こうして、基準方向が定まると、スピーカ配置情報記憶部118には複数個のスピーカ装置200の、リスナに対する配置関係が記憶される。CPU110は、このスピーカ装置情報記憶部118のリスナに対する複数個のスピーカ装置の配置関係から、任意の位置に配置されている複数個のスピーカ装置200によって、例えば5.1チャンネル・サラウンド信号から、左(L)チャンネル、右(R)チャンネル、センター(C)チャンネル、後方左(LS)チャンネル、後方右(RS)チャンネルおよび低域効果(LFE)チャンネルのマルチチャンネル音声信号による音像定位が、リスナ500の正面方向を基準にした初期の対応する位置になるようにするためのチャンネル合成係数を、スピーカ装置200のそれぞれについて、算出する。そして、算出した各スピーカ装置200のチャンネル合成係数を、当該スピーカ装置200のID番号に対応してチャンネル合成係数記憶部119に格納する(ステップS134)。
そして、CPU110は、チャンネル合成係数確認補正処理部122を起動して、後述するチャンネル合成係数確認補正処理を実行する(ステップS135)。そして、このチャンネル合成係数確認補正処理により補正した各スピーカ装置200のチャンネル合成係数のそれぞれを、チャンネル合成係数記憶部119に格納して、チャンネル合成係数記憶部119のチャンネル合成係数を更新する(ステップS136)。
[チャンネル合成係数確認補正処理]
以上のようにして、音響システムを構成する複数個のスピーカ装置200の配置関係を算出すると共に、各スピーカ装置200に供給するスピーカ装置用信号を生成するためのチャンネル合成係数を算出することができる。したがって、算出されたチャンネル合成係数を用いて各スピーカ装置用信号を生成して、それらをサーバ装置100からバス300を通じて各スピーカ装置200に供給するようにすれば、ディスクから再生された音楽ソースなどのマルチチャンネルの音声信号に応じて、各チャンネルの音声出力の音像が所定の位置に定位するような状態で音響再生することができると期待できる。
しかしながら、上述のチャンネル合成係数は、実際に、スピーカ装置用信号を生成して、スピーカ装置200から放音して確認されたものではなく、上述したようにして生成されたものであるため、実際のスピーカ装置200が配置されている音響空間の状況によっては、各チャンネルの音声出力の音像の定位位置がずれるおそれがある。
そこで、この実施形態では、各スピーカ装置用のチャンネル合成係数が実際上適切なものとなっているかどうかを確認して、補正することができるようにしている。以下、その確認補正処理について、図25および図26のサーバ装置100における処理のフローチャートを参照しながら説明する。
この実施形態では、サーバ装置100は、マルチチャンネルの各1チャンネル毎に、当該チャンネルの音声信号による音像の定位が所期の位置となっているかどうかを確認して、必要があればチャンネル合成係数を補正するようにする。
すなわち、先ず、CPU110は、チャンネル合成係数記憶部119に記憶されているチャンネル合成係数を用いて、第mチャンネルの音声信号についての音像定位状態を確認するためのスピーカ装置用テスト信号を生成する(ステップS141)。
例えば第mチャンネル=Lチャンネルの場合には、サーバ装置100は、Lチャンネルの音声信号について、各スピーカ装置200に供給するスピーカ装置用テスト信号を生成する。このスピーカ装置用テスト信号のそれぞれは、各スピーカ装置用のチャンネル合成係数のうちの、Lチャンネルについての係数wLi(前述の(式1)参照)を読み出し、その係数をテスト信号に乗算することにより得られる。
そして、CPU110は、算出したそれぞれのスピーカ装置用テスト信号からなる図2に示したようなパケットを生成して、バス300を通じて全てのスピーカ装置200に送信する(ステップS142)。その後、サーバ装置100のCPU110は、トリガ信号をバス300を通じてブロードキャスト方式で全てのスピーカ装置200に送る(ステップS143)。
全てのスピーカ装置200は、バス300を通じて送られてきたそれぞれのスピーカ装置用テスト信号を受け取り、放音する。なお、このとき、スピーカ装置200によっては、係数wLi=0であるため、音声の放音は行なわないものもある。
そして、全てのスピーカ装置200は、そのマイクロホン202での音声の収音を開始し、リングバッファとしての収音音声用バッファメモリ219への収音した音声信号の取り込みを開始する。そして、サーバ装置100からのトリガ信号を受信すると、そのトリガ信号のタイミングを基準にした規定時間分を録音信号として取り込み、その規定時間分の録音信号を、それぞれのスピーカ装置200のID番号を付加してパケット化して、サーバ装置100に送る。
サーバ装置100のCPU110は、スピーカ装置200からの規定時間分の録音信号の受信を待ち(ステップS144)、受信を確認すると、バッファメモリ(RAM112)に格納する(ステップS145)。
そして、全てのスピーカ装置200からの規定時間分の録音信号を受信するまでステップS144およびステップS145の処理を繰り返し、全てのスピーカ装置200からの規定時間分の録音信号を受信したことを確認したら(ステップS146)、各スピーカ装置200からの規定時間分の録音信号の伝達特性を算出すると共に、周波数分析を行なう解析処理をし、その結果から、テスト信号の放音を行なった第mチャンネルについてのテスト信号の放音による音像が所期の位置に定位しているかどうかを判別する(ステップS147)。
そして、CPU110は、その解析の結果、当該第mチャンネルについてのテスト信号の放音による音像が初期の位置に定位しているか否か判別し(図25のステップS151)、所期の位置に定位していないと判別したときには、当該第mチャンネルについての各スピーカ装置200のチャンネル合成係数を、前記解析処理の結果に応じて補正し、その補正したチャンネル合成係数をバッファメモリに保存すると共に、その補正したチャンネル合成係数を用いて、第mチャンネルについての各スピーカ装置用テスト信号を生成する(ステップS152)。
そして、ステップS142に戻り、ステップS152で生成した補正したチャンネル合成係数を用いて生成した各スピーカ装置用テスト信号を、バス300を通じて各スピーカ装置200に供給し、当該ステップS142以降の処理を繰り返す。
そして、ステップS151で、第mチャンネルについてのテスト信号の放音による音像が所期の位置に定位していると判別したときには、CPU110は、チャンネル合成係数記憶部119に記憶されている第mチャンネルについての各スピーカ装置用のチャンネル合成係数を、補正したものに変更する(ステップS153)。
次に、CPU110は、マルチチャンネルの全てのチャンネルについてのチャンネル合成係数の補正が終了したか否か判別し(ステップS154)、終了していないと判別したときには、テストすべき次のチャンネルを指定し(m=m+1)(ステップS155)、その後、ステップS141に戻り、当該次のチャンネルについて、ステップS141以降の処理を繰り返す。
また、ステップS154で、マルチチャンネルの全てのチャンネルについてのチャンネル合成係数の補正が終了したと判別したときには、この処理ルーチンを終了する。
以上のようにして、この実施形態によれば、任意の位置に配置された複数個のスピーカ装置の配置関係を自動的に検出し、その配置関係に関する情報に基づき、各スピーカ装置に供給するスピーカ装置用信号として、適切なものを自動的に生成し、かつ、その生成したものが、実際上、最適な再生音場を形成するかを確認補正することができる。
なお、この実施形態におけるチャンネル合成係数確認補正処理は、任意の位置に配置された複数個のスピーカ装置の配置関係を、上述の例のように自動的に検出する場合に限られるものではなく、ユーザがサーバ装置100に設定入力し、その設定入力情報に基づいて、サーバ装置100がチャンネル合成係数を算出する場合において、算出したチャンネル合成係数が、実際上、最適な再生音場を形成するかを確認補正する場合にも適用することができる。
換言すれば、任意の位置に配置された複数個のスピーカ装置の配置関係は、厳密に設定する必要はなく、おおよその配置位置関係を設定すれば、その配置位置関係の情報に基づいて生成したチャンネル合成係数を、チャンネル合成係数確認補正処理により補正して、実際上、最適な再生音場を形成するチャンネル合成係数にすることができる。
なお、上述の説明では、各1チャンネル毎に、チャンネル合成係数の確認補正処理を行なうようにしたが、マイクロホン202で収音した音声信号から分離可能な状態で、異なるチャンネル用のスピーカ装置用テスト信号を生成するようにすれば、複数チャンネル分のチャンネル合成係数の確認補正処理を同時に行なうことができる。
例えば、フィルタにより周波数分離が可能な周波数関係にある複数個のテスト信号のそれぞれから、異なるチャンネル用のスピーカ装置用テスト信号を生成し、各スピーカ装置200から同時にそれらのスピーカ装置用テスト信号を放音するようにする。
そして、各スピーカ装置200では、マイクロホン202で収音したスピーカ装置用テスト信号の音声信号から、フィルタにより各チャンネル毎のスピーカ装置用テスト信号による音声信号成分を分離し、当該分離した音声信号について、上述の同様のチャンネル合成確認補正処理を実行する。これにより、複数チャンネルについて、同時にチャンネル合成係数の確認補正処理を行なうことができる。
なお、この例においても、テスト信号は、サーバ装置から供給するようにするのではなく、スピーカ装置200がそれぞれ備える信号発生手段からの信号をテスト信号として用いることができる。
[音響システムの第2の実施形態]
図27は、この発明による音響システムの第2の実施形態の全体構成を示すブロック図である。この第2の実施形態においては、バス300に対して、サーバ装置100と、複数個のスピーカ装置200とに加えて、システム制御装置600が接続される。
この第2の実施形態では、サーバ装置100は、マルチチャンネルの音声信号から各スピーカ装置用信号を生成する機能は備えておらず、各スピーカ装置200が自己のスピーカ装置用信号を生成する機能を備える。
したがって、サーバ装置100からバス300に送出される音声データは、マルチチャンネルの音声信号が所定時間分ずつパケット化されたものとされる。すなわち、例えば5.1チャンネル・サラウンド信号の場合には、サーバ装置100から送出される音声データは、図28(A)に示すように、1パケットに、左(L)チャンネル、右(R)チャンネル、センター(C)チャンネル、後方左(LS)チャンネル、後方右(RS)チャンネルおよび低域効果(LFE)チャンネルの信号が含まれるものとして構成される。
1パケットに含まれるマルチチャンネルの音声データL,R,C,LS,RS,LFEは、この例では、データ圧縮されている。なお、バス300の伝送速度が高速である場合には、これら音声データL,R,C,LS,RS,LFEは、データ圧縮する必要はなく、伝送レートを高速にするだけでよい。
そして、各スピーカ装置200は、サーバ装置100から送られてくる1パケットの情報を内蔵のRAMにバッファリングし、記憶されているチャンネル合成係数を用いて、自機用のスピーカ装置用信号を生成し、パケットヘッダに含まれる同期信号に同期して、生成したスピーカ装置用信号をスピーカユニット201から放音するようにする。
また、この第2の実施形態においても、図28(B)に示すように、パケットのヘッダ部分がコントロールチェンジ情報を含むようにしてもよい。
そして、前述したサーバ装置100が備えるスピーカ装置の配置関係を算出する機能およびチャンネル合成係数の確認補正の機能は、システム制御装置600が備えるものとされる。
図29に、この第2の実施形態の場合のサーバ装置100のハードウエア構成例を示す。この第2の実施形態では、サーバ装置100は、システムバス101に対して、CPU110と、ROM111と、RAM112と、ディスクドライブ113と、デコード部114と、通信インターフェース115と、送信信号生成部116とが接続されて構成されている。
そして、この第2の実施形態のサーバ装置100は、ディスク400から読み出して再生したマルチチャンネルの音声信号は、図28に示すように、所定時間単位でパケット化して、スピーカ装置200のそれぞれにバス300に送出するようにする。この第2の実施形態のサーバ装置100では、前述の第1の実施形態のその他の機能は、有していない。
次に、図30に、この第2の実施形態におけるシステム制御装置600のハードウエア構成例を示す。この図30のシステム制御装置600の構成は、第1の実施形態におけるサーバ装置100のシステム制御機能部の構成を備えている。
すなわち、この例のシステム制御装置600は、システムバス601に対して、CPU610と、ROM611と、RAM612と、通信インターフェース615と、送信信号生成部616と、受信信号処理部617と、スピーカ配置情報記憶部618と、チャンネル合成係数記憶部619と、伝達特性計算部621と、チャンネル合成係数確認補正処理部622と、リモコン受信部623とが接続されて構成されている。
この図30の構成は、図3の第1の実施形態におけるサーバ装置100の構成において、ディスクドライブ113と、デコード部114と、スピーカ装置用信号生成部120とを除去した構成に等しい。
次に、図31にこの第2の実施形態におけるスピーカ装置200のハードウエア構成例を示す。この図30に示す第2の実施形態のスピーカ装置200は、前述した第1の実施形態の図4のスピーカ装置200の構成に、チャンネル合成係数記憶部221と、自スピーカ装置用信号生成部222が追加されたものに等しい。
この第2の実施形態においては、システム制御装置600は、前述の第1の実施形態のサーバ装置100と全く同様にして、複数個のスピーカ装置200の配置関係を、スピーカ装置200からのマイクロホン202で収音した音声信号を用いて算出し、スピーカ配置情報記憶部618に記憶するとともに、そのスピーカ配置情報に基づいて、各スピーカ装置200についてのチャンネル合成係数を算出し、算出したチャンネル合成係数をチャンネル合成係数記憶部619に記憶する。
そして、システム制御装置600は、算出した各スピーカ装置200のチャンネル合成係数を、それぞれ対応するスピーカ装置200にバス300を通じて送信するようにする。
スピーカ装置200は、システム制御装置600からの自スピーカ装置用のチャンネル合成係数を受信し、チャンネル合成係数記憶部221に記憶する。そして、サーバ装置100からの、図28に示したマルチチャンネル音声信号を取り込み、チャンネル合成係数記憶部221に記憶されているチャンネル合成係数を用いて、自スピーカ装置用信号生成部222において、自スピーカ装置用信号を生成して、スピーカユニット201により放音する。
また、システム制御装置600は、チャンネル合成係数確認補正処理部622により、前述の第1の実施形態の場合と同様にして、チャンネル合成係数を補正し、チャンネル合成係数記憶部619に記憶すると共に、補正後の各スピーカ装置用のチャンネル合成係数を、それぞれ対応するスピーカ装置200にバス300を通じて送信するようにする。
スピーカ装置200のそれぞれは、自スピーカ装置用のチャンネル合成係数を受け取り、チャンネル合成係数記憶部221の記憶内容を、補正後のチャンネル合成係数に更新する。
なお、第1の実施形態と同様に、この第2の実施形態においても、スピーカ装置200の配置関係を僅かに変更した場合に、チャンネル合成係数確認補正処理を起動させることにより、容易に所期の再生音場を得ることができる。
なお、この第2の実施形態において、システム制御装置600の機能は、上述の例のように別個に設けるのではなく、サーバ装置100に設けても良いし、また、スピーカ装置200の一つが、このシステム制御装置600の機能を持つようにしても良い。
[音響システムの第3の実施形態]
この第3の実施形態の音響システムは、図1に示した第1の実施形態と同様に、サーバ装置100と複数個のスピーカ装置200とがバス300を通じて接続される構成であるが、スピーカ装置200のそれぞれがシステム制御装置600の機能をそれぞれ備える場合である。
この第3の実施形態においても、第2の実施形態と同様に、サーバ装置100は、マルチチャンネルの音声信号から各スピーカ装置用信号を生成する機能は備えておらず、各スピーカ装置200が自己のスピーカ装置用信号を生成する機能を備える。そして、サーバ装置100からバス300に送出される音声データは、例えば図28(A)に示したようなマルチチャンネルの音声信号が所定時間分ずつパケット化されたものとされる。また、この第3の実施形態でも、図28(B)のコントロールチェンジのパケットも有効とされる。
そして、この第3の実施形態でも、各スピーカ装置200は、サーバ装置100から送られてくる1パケットの情報を内蔵のRAMにバッファリングし、記憶されているチャンネル合成係数を用いて、自機用のスピーカ装置用信号を生成し、パケットヘッダに含まれる同期信号に同期して、生成したスピーカ装置用信号をスピーカユニット201から放音するようにする。
したがって、この第3の実施形態のサーバ装置100は、図29に示したものと同様の構成を有する。そして、この第3の実施形態のスピーカ装置200は、図32に示すようなハードウエア構成を備える。この図32に示す第3の実施形態のスピーカ装置200は、前述した第1の実施形態の図4のスピーカ装置200の構成において、ID番号記憶部216の代わりに、スピーカ・リスト記憶部231が接続されると共に、伝達特性計算部232と、スピーカ配置情報記憶部233と、チャンネル合成係数記憶部234と、自スピーカ装置用信号生成部235と、チャンネル合成係数確認補正処理部236とが追加されたものに等しい。
スピーカ・リスト記憶部231には、自スピーカ装置200のID番号および他のスピーカ装置200のID番号からなるスピーカ・リストが記憶される。
伝達特性計算部232およびチャンネル合成係数確認補正部236は、前述の実施形態と同様に、ソフトウエア処理により実現することもできる。
この第3の実施形態においては、スピーカ装置200のそれぞれが、音響システムを構成する複数個のスピーカ装置200のID番号を、スピーカ・リスト記憶部231に格納して管理する。また、スピーカ装置200のそれぞれが、音響システムを構成する複数個のスピーカ装置200についての配置関係を、後述するようにして算出し、算出したスピーカ装置の配置関係の情報をスピーカ配置情報記憶部233に記憶する。
そして、スピーカ装置200のそれぞれは、このスピーカ配置情報記憶部233のスピーカ配置情報に基づいて、各スピーカ装置200についてのチャンネル合成係数を算出し、算出したチャンネル合成係数をチャンネル合成係数記憶部234に記憶する。
そして、スピーカ装置200のそれぞれは、チャンネル合成係数記憶部234から、自スピーカ装置用のチャンネル合成係数を読み出して、自スピーカ装置用信号生成部235において、自スピーカ装置用信号を生成して、スピーカユニット201により放音する。
また、スピーカ装置200のそれぞれは、チャンネル合成係数確認補正処理部236により、後述するようにして、各スピーカ装置用のチャンネル合成係数を確認補正し、その補正結果によりチャンネル合成係数記憶部234の記憶内容を更新する。このチャンネル合成係数の確認補正の際には、各スピーカ装置200で補正して得たチャンネル合成係数を、互いに突き合せて、それらの平均をとるなどし、その結果を、それぞれのスピーカ装置200のチャンネル合成係数記憶部234に記憶するようにする。
[スピーカ装置200の数の検出および各スピーカ装置200へのID番号の付与処理]
前述もしたように、バス300に接続されるスピーカ装置200の数およびそれらのバス300に接続されたスピーカ装置200のID番号は、ユーザが、それぞれのスピーカ装置200に設定登録するようにすることもできるが、この実施形態では、複数個のスピーカ装置200が協働することにより、バス300に接続されているスピーカ装置200の数の検出および各スピーカ装置200へのID番号の付与処理が、以下に説明するように、各スピーカ装置200において自動的になされる。
<第1の例>
図33および図34は、第3の実施形態におけるスピーカ装置200の数の検出および各スピーカ装置200へのID番号の付与処理の第1の例の処理のフローチャートである。これは、各スピーカ装置200が実行する処理であり、主としてCPU210による処理を中心に記述したものである。
例えばサーバ装置100により、あるいはいずれかのスピーカ装置200により、バス300に対して、バスリセット信号が送出されてバスリセットされると、各スピーカ装置200は、図33および図34の処理ルーチンを起動する。
すなわち、各スピーカ装置200のCPU210は、先ず、スピーカ・リスト記憶部231に記憶されているスピーカ・リストをクリアする(ステップS161)。その後、各スピーカ装置200は、ランダムな時間待機の状態となる(ステップS162)。
そして、CPU210は、他のスピーカ装置200から、当該他のスピーカ装置200がテスト信号の開始を行なうことを意味するテスト信号放音開始信号を受信したか否か判別し(ステップS163)、受信しなかったと判別したときには、ステップS162で設定した待機時間が経過したか否か判別する。そして、待機時間が経過していないと判別したときには、CPU210は、ステップS163に戻り、他のスピーカ装置200からのテスト信号放音開始信号の受信を監視する。
ステップS164で、待機時間が経過したと判別したときには、CPU210は、自スピーカ装置200がID番号付与のマスター機となったと判断して、自スピーカ装置200のID番号を、ID=1と決定し、スピーカ・リスト記憶部231のスピーカ・リストに記憶する。つまり、この第3の実施形態では、バスリセットされてから一番早くテスト信号を出せる態勢になったスピーカ装置200をマスター機とし、それ以外のスピーカ装置200はスレーブ機とする。
そして、CPU210は、テスト信号放音開始信号をブロードキャスト方式によりバス300に送出して他のスピーカ装置200に送信すると共に、テスト信号をスピーカユニット201から放音する(ステップS166)。ここで、テスト信号は、レイズド・サイン(raised sine)波のような狭帯域信号(ピッという音)、または複数の周波数帯の狭帯域信号を合成したものなど、あるいはそれを断続的に複数回繰り返したものなどが好ましい。しかし、テスト信号は、これらに特に限定されるものではない。
そして、CPU210は、他のスピーカ装置200からのACK信号の受信を監視する(ステップS167)。このステップS167で、他のスピーカ装置200からのACK信号を受信したと判別したときには、CPU210は、当該ACK信号に付加されている他のスピーカ装置200のID番号を抽出して、そのID番号をスピーカ・リスト記憶部231のスピーカ・リストに書き込んで記憶する(ステップS168)。
次に、CPU210は、自スピーカ装置200のID番号(=1)と共に、ACK信号をブロードキャスト方式でバス300に送出する(ステップS169)。これは、「スレーブ・スピーカのID番号を1つ登録した。他にあるか?」という意味を持っている。その後、ステップS167に戻り、他のスピーカ装置200からのACK信号の受信を待つ。
次に、CPU210は、ステップS167で、他のスピーカ装置200からのACK信号を受信しないと判別したときには、当該受信しない状態で所定時間経過したか否か判別し(ステップS170)、所定時間経過していないと判別したときには、ステップS167に戻り、所定時間経過したと判別したときには、全てのスレーブ機のスピーカ装置200がACK信号を送出したとみなして、終了信号をバス300にブロードキャスト方式で送出する(ステップS171)。
ステップS163で、他のスピーカ装置200から、テスト信号放音開始信号を受信したと判別したときには、CPU210は、自スピーカ装置200はスレーブ機になったと判別して、マスター機である他のスピーカ装置200によるテスト信号の放音音声を、マイクロホン202により規定レベル以上として検出したか否か判別する(図34のステップS181)。このとき、スピーカ装置200では、テスト信号として、上述したような狭帯域信号を用いた場合には、マイクロホン202からの音声信号は、バンドパスフィルタにより帯域制限された後、そのバンドパスフィルタの出力レベルが閾値以上であるかどうか判断され、閾値以上である場合に、テスト信号の放音音声を受音したと判断される。
ステップS181で、テスト信号の放音音声を受音したと判別したときには、CPU210は、ステップS163で受信したテスト信号放音開始信号に付加されているID番号を、スピーカ・リスト記憶部231のスピーカ・リストに記憶する(ステップS182)。
そして、CPU210は、バス300が開放されている、つまり、自スピーカ装置からバス300を通じて送信可能な状態であるか否か判別する(ステップS183)。このステップS183で、バス300が開放されていないと判別したときには、CPU210は、当該バス300を伝送されている他のスピーカ装置200からのACK信号の受信を確認し(ステップS184)、受信を確認したら、当該受信したACK信号に付加されている他のスピーカ装置200のID番号を抽出して、スピーカ・リスト記憶部231のスピーカ・リストに記憶する(ステップS185)。そして、ステップS183に戻り、バス300の開放を待つ。
ステップS183で、バス300の開放を確認したときには、CPU210は、自スピーカ装置200のID番号決定し、その決定したID番号とともにACK信号をバス300に対してブロードキャスト方式で送出する(ステップS186)。これは、「マスター機からのテスト信号の放音を確認した。」という意味を持つものである。ここで、自スピーカ装置200のID番号は、スピーカ・リスト中の空き番号のうち、最小のものとして決定する。
次に、CPU210は、ステップS186で決定したID番号をスピーカ・リスト記憶部231のスピーカ・リストに記憶する(ステップS187)。
そして、CPU210は、バス300を通じて終了信号を受信したか否か判別し(ステップS188)、終了信号を受信していないと判別したときには、他のスピーカ装置200からACK信号を受信したか否か判別する(ステップS189)。
このステップS189で、他のスピーカ装置200からACK信号を受信していないと判別したときには、CPU210は、ステップS188に戻って終了信号の受信を監視し、また、他のスピーカ装置200からACK信号を受信したと判別したときには、当該ACK信号に付加されているID番号をスピーカ・リスト記憶部231のスピーカ・リストに記憶する(ステップS190)。
また、ステップS188で、バス300を通じて終了信号を受信したと判別したときには、CPU210は、この処理ルーチンを終了する。
この例においては、ID番号の最大値として、バス300に接続されているスピーカ装置200の個数が検出される。そして、全てのスピーカ装置200には、同一のスピーカ・リストが記憶される。ただし、自スピーカ装置200のID番号は、それぞれ異なるものとなる。
<第2の例>
図35は、第3の実施形態におけるスピーカ装置200の数の検出および各スピーカ装置200へのID番号の付与処理の第2の例の処理のフローチャートである。この図35のフローチャートに示す処理ルーチンも、各スピーカ装置200のそれぞれが実行するものである。ただし、前述の第1の例と異なり、この第2の例においては、マスター機とスレーブ機とにスピーカ装置を分けて、ID番号付与を行なうものではなく、また、この第2の例では、テスト信号を放音する自スピーカ装置200も、マイクロホン202で収音し、その収音した音声信号を用いるようにする。
例えばサーバ装置100により、あるいはいずれかのスピーカ装置200により、バス300に対して、バスリセット信号が送出されてバスリセットされると、各スピーカ装置200は、図35の処理ルーチンを起動する。
すなわち、各スピーカ装置200のCPU210は、先ず、スピーカ・リスト記憶部231に記憶されているスピーカ・リストをクリアする(ステップS201)。その後、各スピーカ装置200は、ランダムな時間待機の状態となる(ステップS202)。
そして、CPU210は、他のスピーカ装置200から、当該他のスピーカ装置200がテスト信号の開始を行なうことを意味するテスト信号放音開始信号を受信したか否か判別し(ステップS203)、受信しなかったと判別したときには、自スピーカ装置200にID番号が既に付与されているか否か判別する(ステップS204)。
ここまでで、自スピーカ装置200がテスト信号を放音できる権利を有するのか、または他機からの信号を聞く立場にあるのかが判別される。また、ステップS204では、後の処理のために自スピーカ装置200に既にID番号が付与されているか、つまりスピーカ・リスト記憶部231に自スピーカ装置200のID番号が記憶されているかを判断している。
ステップS203で、他スピーカ装置200からのテスト信号放音開始信号を受信していないと判別され、ステップS204で、自スピーカ装置200にID番号がまだ付与されていないと判別されたとき、つまり、自スピーカ装置200がテスト信号を放音できる権利を有すると判断されたときには、CPU210は、自スピーカ装置200のID番号を、スピーカ・リスト中の空き番号のうち、最小のものとして決定し、スピーカ・リスト記憶部231に記憶する(ステップS205)。
そして、CPU210は、テスト信号放音開始信号をブロードキャスト方式によりバス300に送出して他のスピーカ装置200に送信すると共に、テスト信号をスピーカユニット201から放音する(ステップS166)。ここで、テスト信号は、第1の例と同様のものを用いることができる。
そして、CPU210は、自機が放音したテスト信号の音声を自機のマイクロホン202で収音し、そのレベルが閾値を超えるレベルであるか否かを判断する(ステップS207)。そして、ステップS207で、閾値以上のレベルで収音できたと判別したときには、CPU210は、自スピーカ装置200のスピーカユニット201およびマイクロホン202が正常に機能していると判断し、ステップS203に戻る。
一方、ステップS207で、十分なレベルで収音できなかったと判別したときには、CPU210は、自スピーカ装置200のスピーカユニット201およびマイクロホン202が正常に機能していないと判断して、スピーカ・リスト記憶部231の記憶内容をクリアして、この処理プロセスを終了する(ステップS208)。この状態では、当該スピーカ装置200がバス300上に接続されていても、あたかも接続されていないかのように振舞う状態である。
次に、ステップS203で、他のスピーカ装置200からテスト信号放音開始信号を受信したとき、あるいは、ステップS204で、自スピーカ装置200で既にID番号が付与されていると判別したときには、CPU210は、他のスピーカ装置200からのACK信号の受信を監視する(ステップS209)。
そして、このステップS209で、他のスピーカ装置200からのACK信号を受信したと判別したときには、CPU210は、当該ACK信号に付加されている他のスピーカ装置のID番号を抽出し、スピーカ・リスト記憶部231のスピーカ・リストに記憶する(ステップS210)。
一方、ステップS209で、他のスピーカ装置200からのACK信号を受信していないと判別したときには、その状態で所定時間が経過したか否か判別し(ステップS211)、所定時間経過していないと判別したときには、ステップS209に戻り、所定時間経過したと判別したときには、この処理ルーチンを終了する。すなわち、ステップS209でACK信号を受信しなかった場合、ステップS211で所定時間だけ待って、それ以上、他のスピーカ装置200からのACK信号が返ってこなければ、すべてのスピーカ装置がACK信号を返したとみなして、この処理ルーチンを終了する。
この例においては、ID番号の最大値として、バス300に接続されているスピーカ装置200の個数が検出される。そして、全てのスピーカ装置200には、同一のスピーカ・リストが記憶される。ただし、自スピーカ装置200のID番号は、それぞれ異なるものとなる。
<第3の例>
以上の例では、バス300に接続されるスピーカ装置200が更新されたときに、バスリセットした後、スピーカ装置200のID番号を付与するようにしているが、この第3の例では、バスリセットせずに、新たにバス300に接続されるスピーカ装置200が、バス接続時に接続宣言音を放音することにより、順次に、スピーカ装置200のスピーカ・リストに追加されていくようにする。
図36は、この第3の例において、新たにバス300に接続されるスピーカ装置200が実行する処理ルーチンを示すフローチャートであり、また、図37は、既にバス300に接続されているスピーカ装置200が実行する処理ルーチンを示すフローチャートである。
すなわち、図36に示すように、この第3の例においては、新たにバス300にスピーカ装置200が接続されると、CPU210は、当該バス接続を検出して(ステップS221)、スピーカ数iを初期化すると共に、自スピーカ装置200のID番号をリセットする(ステップS222)。
そして、CPU210は、接続宣言音をスピーカユニット201から放音するようにする(ステップS223)。この接続宣言音は、前述したテスト信号と同様の信号により放音することができる。
次に、CPU210は、接続宣言音を放音した後、所定時間以内にバス300に接続されているであろう他のスピーカ装置200からのACK信号を受信したか否か判別する(ステップS224)。
このステップS224で、他のスピーカ装置200からのACK信号を受信したと判別したときには、CPU210は、受信したACK信号に付加されているID番号を抽出して、スピーカ・リスト記憶部231のスピーカ・リストに記憶する(ステップS225)。そして、スピーカ装置数iを1だけインクリメントする(ステップS226)。その後、ステップS223に戻り、再度、接続宣言音を放音し、ステップS223〜ステップS226の処理を繰り返す。
また、ステップS224で、他のスピーカ装置200からのACK信号を所定時間以内に受信しなかったと判別したときには、CPU210は、バス300に接続されている他の全てのスピーカ装置200からのACK信号を受信したと判断して、そのときまでに計数したスピーカ数と、他のスピーカ装置200のID番号を認識する(ステップS227)。そして、認識ID番号と重複しないID番号を、自スピーカ装置200のID番号として決定して、スピーカ・リスト記憶部231に自機IDとして記憶する(ステップS228)。ここで、決定するID番号は、例えば空いている番号のうちの最小値とされる。したがって、この例では、最初にバス300に接続したスピーカ装置200のID番号は、「1」となる。
次に、CPU210は、決定した自スピーカ装置200のID番号から、バス300に最初に接続されたスピーカ装置200であるか否か判別し(ステップS229)、最初に接続されたスピーカ装置であると判別したときには、そのまま、この処理ルーチンを終了する。
また、ステップS229で、バス300に最初に接続されたスピーカ装置ではないと判別したときには、ステップS228で決定した自スピーカ装置200のID番号を、バス300を通じてブロードキャスト方式により他のスピーカ装置200に送信する(ステップS230)。そして、全ての他のスピーカ装置200からのACK信号を受信したか否か判別し(ステップS231)、全ての他のスピーカ装置200からのACK信号の受信をするまで、ステップS230の処理を繰り返し、全ての他のスピーカ装置200からのACK信号の受信を確認したら、この処理ルーチンを終了する。
したがって、バス300に1台もスピーカ装置200が接続されていない状態で、スピーカ装置200が接続されると、ステップS224では、他のスピーカ装置200からのACK信号の受信をすることはないので、スピーカ装置200は、バス300への1番目の接続であると認識して、自機ID番号を「1」に決定し、この処理ルーチンを終了する。
2番目以降にバス300に接続するスピーカ装置200の場合には、既にバス300に接続されているスピーカ装置200が存在し、それらの数およびID番号を取得するので、自機ID番号を、それら既に接続されているスピーカ装置200と重複しない、次番号として、それを既に接続されているスピーカ装置200に通知するようにする。
次に、図37を参照して、既にバス300に接続されているスピーカ装置200の処理ルーチンについて説明する。既にバス300に接続されている各スピーカ装置200では、そのマイクロホン202により、前記接続宣言音を規定レベル以上の音声レベルで検出すると、図37の処理ルーチンを起動する。
そして、既にバス300に接続されている各スピーカ装置200のCPU210は、前記接続宣言音を規定レベル以上の音声レベルで検出すると、先ず、ランダムな時間待機状態となる(ステップS241)。そして、他のスピーカ装置200からのACK信号の受信を監視して(ステップS242)、当該ACK信号を受信したことを確認すると、CPU210は、この処理ルーチンを終了する。そして、次の接続宣言音を規定レベル以上の音声レベルで検出すると、再度、図37の処理ルーチンを起動する。
ステップS242で、他のスピーカ装置200からのACK信号を受信しなかったと判別したときには、待機時間が経過したか否か判別し(ステップS243)、待機時間が経過していないと判別したときにはステップS242に戻る。
そして、ステップS243で、待機時間が経過したと判別したときには、自スピーカ装置200のID番号を付加したACK信号をバス300を通じてブロードキャスト方式で送信する(ステップS244)。
そして、他のスピーカ装置200、つまり、前述のステップS230で送出される新規に接続されたスピーカ装置200からのID番号の受信を待ち(ステップS245)、当該ID番号を受信したら、スピーカ・リスト記憶部231に新規接続されたスピーカ装置200のID番号を記憶する(ステップS246)。そして、当該新規に接続されたスピーカ装置200にACK信号をユニキャスト方式で送信する(ステップS247)。
この例においては、後から、スピーカ装置200を音響システムのバス300に追加するときに、最初からID番号の付け直しをする必要はない。
<リスナとスピーカ装置との距離についての情報の計測>
この第3の実施形態においても、第1の実施形態および第2の実施形態と同様にして、リスナとスピーカ装置間距離として、前述した距離差ΔDiを求めるのであるが、この第3の実施形態においては、各スピーカ装置200で、前記距離差ΔDiの算出を行なう。
図38は、各スピーカ装置200で行う、リスナ・スピーカ間距離計測処理を説明するためのフローチャートである。この例の場合には、サーバ装置100からリスナ・スピーカ間距離計測処理開始信号が各スピーカ装置200に供給されるのではなく、例えばリスナが発する、例えば2回の拍手をリスナ・スピーカ間距離計測処理開始の指示として検知して、図38の処理ルーチンを各スピーカ装置200が起動する。
前述の開始指示を検知すると、各スピーカ装置200のCPU210は、図38の処理ルーチンを起動して、リスナが発する声を収音する待機モードとなり、スピーカユニット201からの放音を停止(音声出力をミュート)すると共に、マイクロホン202で収音した音声信号を収音信号用バッファメモリ(リングバッファメモリ)219に書き込み開始する(ステップS251)。
次に、CPU210は、マイクロホン202からの音声信号のレベルを監視して、予め定めた規定レベル以上となったか否かにより、リスナ500が声を発したか否かを判別する(ステップS252)。ここで、規定レベル以上となったか否かを判別するのは、背景ノイズをリスナ500の発した声として検出してしまうのを防止するためのである。
そして、ステップS252で規定レベル以上の音声信号を検出したと判別したときには、CPU210は、トリガ信号をバス300を通じてブロードキャスト方式により他のスピーカ装置200に送る(ステップS253)。
そして、トリガ信号を発したことから、当該自スピーカ装置200は、リスナから最も近いスピーカ装置(最短距離位置スピーカ)として判断し、距離差ΔDi=0と決定する(ステップS254)。そして、CPU210は、その距離差ΔDiをバッファメモリあるいはスピーカ配置情報記憶部233に格納すると共に、他のスピーカ装置200にブロードキャスト方式により送信する(ステップS255)。
次に、CPU210は、他のスピーカ装置200から、当該他のスピーカ装置200についての距離差ΔDiの受信を待ち(ステップS256)、当該他のスピーカ装置200からの距離差ΔDiの受信を確認すると、受信した距離差ΔDiをバッファメモリあるいはスピーカ配置情報記憶部233に格納する(ステップS257)。
次に、CPU210は、バス300に接続されている全ての他のスピーカ装置200から距離差Diを受信したか否か判別し(ステップS258)、受信していないと判別したときには、ステップS256に戻り、受信していると判別したときには、この処理ルーチンを終了する。
一方、ステップS252で規定レベル以上の音声信号は検出していないと判別したときには、CPU210は、他のスピーカ装置200からバス300を通じてトリガ信号を受信したか否か判別し(ステップS259)、トリガ信号を受信しなかったときには、ステップS252に戻る。
そして、ステップS259で、他のスピーカ装置200からトリガ信号を受信したと判別したときには、CPU210は、受信したトリガ信号のタイミングから規定時間だけ、マイクロホン202で収音した音声信号を収音信号用バッファメモリ219に記録する(ステップS260)。
そして、CPU210は、記録した前記規定時間分の音声信号の伝達特性を伝達特性計算部232において計算し(ステップS261)、伝播遅延時間から最短距離位置スピーカとリスナとの距離に対する距離差ΔDiを算出し(ステップS262)、算出した距離差ΔDiをバッファメモリあるいはスピーカ配置情報記憶部233に格納すると共に、自機のID番号を付加して他のスピーカ装置200にブロードキャスト方式により送信する(ステップS255)。
次に、CPU210は、他のスピーカ装置200から、当該他のスピーカ装置200についての距離差ΔDiの受信を待ち(ステップS256)、当該他のスピーカ装置200からの距離差ΔDiの受信を確認すると、受信した距離差ΔDiを付加されていたID番号に対応付けてバッファメモリあるいはスピーカ配置情報記憶部233に格納する(ステップS257)。
次に、CPU210は、バス300に接続されている全ての他のスピーカ装置200から距離差ΔDiを受信したか否か判別し(ステップS258)、受信していないと判別したときには、ステップS256に戻り、受信していると判別したときには、この処理ルーチンを終了する。
<スピーカ装置200間の距離の計測>
以上のようにして、この第3の実施形態においても、リスナ500とスピーカ装置200との間の距離に関する情報として、距離差ΔDiのみが求められる。前述もしたように、この距離差だけでは、複数個のスピーカ装置200の配置状態を検出することはできないので、この実施形態においても、次のようにして、スピーカ装置200同士の間の距離を計測するようにし、当該スピーカ装置間距離と、前記距離差ΔDiとから、スピーカ装置200の配置情報を得るようにする。
先ず、バス300に接続されている全てのスピーカ装置200に対して、スピーカ装置間距離計測のためのテスト信号の放音の起動指示が与えられる。この例の場合にも、図16を用いて説明した前述の実施形態と同様に、サーバ装置100から、全てのスピーカ装置200に対して、テスト信号の放音指示信号をブロードキャスト方式により送信するようにしても良い。しかし、この例では、サーバ装置100の介在を受けずに、スピーカ装置のみにより、処理を行なうようにしており、例えばリスナが発する、例えば3回の拍手を、スピーカ装置間距離計測処理開始の指示として各スピーカ装置200は検知するようにする。
また、この第3の実施形態においては、テスト信号は、サーバ装置100から送られてくるのではなく、スピーカ装置200のそれぞれのROM211に用意されている信号をテスト信号として用いるようにしている。
スピーカ装置間距離計測処理開始の指示を受けた各スピーカ装置200は、それぞれランダムな時間待機の状態となる。そして、最初に待機時間が経過したスピーカ装置200が、トリガ信号をバス300にブロードキャスト方式により送出すると共に、テスト信号を放音する。このとき、バス300に送出されるトリガ信号のパケットには、スピーカ装置200のID番号が付加されている。一方、トリガ信号を受信した他のスピーカ装置200は、時間待機状態を解除すると共に、スピーカ装置200からのテスト信号の放音音声をマイクロホン202で収音して録音する。
そして、テスト信号の放音音声を録音した各スピーカ装置200は、トリガ信号のタイミングから規定時間分の録音信号について、伝達特性を計算し、トリガ信号のタイミングを基準にした伝播遅延時間からトリガ信号を発したスピーカ装置200との距離を算出し、例えばスピーカ配置情報記憶部233に記憶する。その算出した距離を、他のスピーカ装置200に送ると共に、他のスピーカ装置200から送られてくる距離の情報を受信する。
各スピーカ装置200は、以上の処理を、テスト信号放音指示を起動タイミングとして、バス300に接続された全てのスピーカ装置200がテスト信号を放音するまで繰り返す。これにより、全てのスピーカ装置200間の距離が算出され、各スピーカ装置200がそれらの距離情報を保持する。このとき、同じスピーカ装置200間距離が重複して算出されるが、その平均値を、当該スピーカ装置200間距離とするようにする。
《スピーカ装置200間距離の計測におけるスピーカ装置200の処理》
以上説明したスピーカ装置間の距離計測におけるスピーカ装置200の処理動作を、図39のフローチャートを参照して説明する。
各スピーカ装置200のCPU210は、マイクロホン202で収音された音声信号からテスト信号の放音指示を検出すると、図39のフローチャートを起動し、テスト信号放音済みフラグが[OFF]であるか否か判別し(ステップS271)、テスト信号放音済みフラグが[OFF]であると判別したときには、テスト信号の放音済みではないとして、テスト信号放音のランダム時間の待機となる(ステップS272)。
そして、CPU210は、他のスピーカ装置200からトリガ信号を受信したか否か判別し(ステップS273)、トリガ信号を受信しないと判別したときには、ステップS272でセットされた待機時間が経過したか否か判別し(ステップS274)、待機時間がいまだ経過していないときには、ステップS273に戻って他のスピーカ装置200からのトリガ信号の受信の監視を継続する。
ステップS274で、他のスピーカ装置200からのトリガ信号を受信することなく、待機時間が経過したと判別したときには、CPU210は、自己のID番号を付加したトリガ信号をパケット化してバス300を通じてブロードキャスト方式により送出する(ステップS275)。そして、送出したトリガ信号のタイミングに合わせてテスト信号をスピーカユニット201から放音する(ステップS276)。そして、テスト信号放音済みフラグを[ON]にセットする(ステップS277)。その後、ステップS271に戻る。
また、ステップS271で、テスト信号放音済みフラグが[OFF]ではなく、[ON]であって、テスト信号が放音済みであると判別したときには、CPU210は、所定時間内に他のスピーカ装置200からトリガ信号を受信したか否か判別し(ステップS278)、トリガ信号を所定時間以内に他のスピーカ装置200から受信しないと判別したときには、この処理ルーチンを終了する。
そして、ステップS278で、トリガ信号を受信したと判別したときには、CPU210は、マイクロホン202で収音したテスト信号の音声信号を、当該受信したトリガ信号のタイミングから規定時間分だけ録音する(ステップS279)。また、ステップS273で、他のスピーカ装置200からトリガ信号を受信したと判別したときにも、ステップS279に進んで、マイクロホン202で収音したテスト信号の音声信号を、当該受信したトリガ信号のタイミングから規定時間分だけ録音する。
そして、次に、CPU210は、トリガ信号のタイミングから規定時間分の録音信号について伝達特性を計算し(ステップS280)、トリガ信号のタイミングを基準にした伝播遅延時間からトリガ信号を発したスピーカ装置200との距離を算出する(ステップS281)。そして、算出した自スピーカ装置とトリガ信号を発したスピーカ装置との距離を、例えばスピーカ配置情報記憶部233に記憶すると共に、自機のID番号を付加して他のスピーカ装置200にブロードキャスト方式で送る(ステップS282)。
そして、CPU210は、他のスピーカ装置200から送られてくる距離の情報の受信を待ち(ステップS283)、受信を確認したら、当該受信した距離の情報パケットに付加されている他のスピーカ装置200のID番号に対応して、当該受信した距離の情報を、例えばスピーカ配置情報記憶部233に記憶する(ステップS284)。
その後、CPU210は、全ての他のスピーカ装置200から、トリガ信号を発したスピーカ装置200からの距離の情報を受信したか否か判別し(ステップS285)、未だ全てのスピーカ装置200からの前記距離の情報は、受信していないと判別したときには、ステップS283に戻って、その受信を待つ。また、ステップS285で、全てのスピーカ装置200から前記距離の情報を受信したと判別したときには、ステップS271に戻る。
<リスナの正面方向(基準方向)の決定>
この第3の実施形態においても、算出されたリスナ500および複数個のスピーカ装置200の配置関係の情報は、リスナ500が向いている方向は無視したリスナ500およびスピーカ装置200の配置関係を示すものとなっているので、次に説明するように、幾つかの方法により、スピーカ装置200が、リスナ500の正面方向を基準方向として、自動的に認識できるようにしている。
《基準方向決定方法の第1の例》
この第1の例においては、最初は、バス300に接続されている複数のスピーカ装置200のうちの特定のスピーカ装置、例えばID番号=1のスピーカ装置200が、テスト信号音を断続的に出力する。テスト信号音としては、例えば、人の方向感覚が比較的優れている中音域のバースト音、例えば、2kHzを中心とする1オクターブのエネルギー帯域幅をもつノイズなどを用いる。そして、断続的な出力方法としては、例えば、テスト信号音を200ミリ秒の区間で放音、次の200ミリ秒の区間で遮断、を3回繰り返し、その後、2秒間無音とする方法とする。
そして、この例においては、このテスト信号音を聞いたリスナが、「センター方向はもっと右である」と感じれば、それを表すものとして前記無音の2秒間の間に、手を1回叩くようにする。また、テスト信号音を聞いたリスナが、「センター方向はもっと左である」と感じれば、それを表すものとして無音の2秒間の間に手を2回叩くようにする。
バス300に接続されている複数個のスピーカ装置200のそれぞれは、この無音の2秒間の間にリスナが手を叩いた回数を、それぞれのマイクロホン202で収音した音声信号から検知するようにする。そして、いずれかのスピーカ装置200で、リスナが手を叩いた回数を検知すると、その検知したスピーカ装置200は、検知した回数の情報を、他のスピーカ装置200にブロードキャスト方式で通知する。
例えば、手を1回叩いたものと判断される場合には、ID番号=1のスピーカ装置200だけでなく、その右隣に配置されているスピーカ装置200もテスト信号音を発するようにする。そのとき、テスト信号音による音像定位方向が、その前の音像定位方向に対して、右に所定の角度、例えば30°回転した方向になるように、各スピーカ装置から発する信号音を調整して、放音するようにする。
ここで、信号音の調整は、テスト信号の振幅、位相、音量調整などを含み、リスナとID番号=1のスピーカ装置の距離を半径とする仮想円を想定し、その円上を右に、または、左に音像定位位置が移動するように、各スピーカ装置200が、計算して行なうものとする。
すなわち、各スピーカ装置がリスナから等距離にある、つまりリスナを中心として同一円上に配置されている場合には、隣り合うスピーカ装置に対して適切な信号配分をして放音すればその中間的な位置に音像が定位する。また、各スピーカ装置がリスナから等距離にない場合には、簡単のため最も遠く配置されているスピーカ装置への距離を基準にして、それよりも近いスピーカ装置には、その距離差に相当する遅延を施してテスト信号を供給するようにする。
前記2秒間の無音区間の間に手を叩いた回数が0、あるいは検出できなかった場合には、再度同じ定位方向としてテスト信号を放音する。
次の2秒間の無音区間の間に、前とは異なり、手を2回叩いたものと判断した場合には、テスト信号音を放音する2個のスピーカ装置200は、相対的に、左に、前回右に回転した角度よりも小さい角度、例えば半分の15°回転した方向になるように、各スピーカ装置200から発する信号音を調整して、放音する。
つまり、同じ回数で叩く間は、角度分解能は変えずに、音像定位位置をその方向に回転させように調整し、前回と違う回数で叩くと、前回より小さな角度分解能で、逆方向に音像定位位置を回転させように調整することで、リスナの正面方向を徐々に収束させていく。
そして、リスナが正面方向として認めたとき、リスナは、例えばすばやく手を3回叩く。これをいずれかのスピーカ装置200で検知すると、当該検知したスピーカ装置は、他の全てのスピーカ装置に基準方向決定の処理ルーチンの終了を通知し、この処理ルーチンは終了する。
《基準方向決定方法の第2の例》
図40は、この第2の例の基準方向決定方法を説明するためのフローチャートを示すものである。
この第2の例においては、先ず、基準方向決定処理を起動する指示操作、例えばリスナが手を4回叩くなどの指示操作をすると、図40の処理ルーチンが起動される。
各スピーカ装置200のCPU210は、図40の処理ルーチンが起動されると、先ず、マイクロホン202で収音した音声信号の、収音信号用バッファメモリ(リングバッファメモリ)219への書き込みを開始する(ステップS291)。
この状態において、リスナは、正面方向を向いて、任意の言葉を発する。各スピーカ装置200のCPU210は、マイクロホン202からの音声信号のレベルを監視して、予め定めた規定レベル以上となったか否かにより、リスナ500が声を発したか否かを判別する(ステップS292)。ここで、規定レベル以上となったか否かを判別するのは、背景ノイズをリスナ500の発した声として検出してしまうのを防止するためのである。
そして、ステップS292で規定レベル以上の音声信号を検出したと判別したときには、CPU210は、トリガ信号をバス300を通じてブロードキャスト方式により他のスピーカ装置200に送る(ステップS293)。
一方、ステップS292で規定レベル以上の音声信号は検出していないと判別したときには、CPU210は、他のスピーカ装置200からバス300を通じてトリガ信号を受信したか否か判別し(ステップS294)、トリガ信号を受信しなかったときには、ステップS292に戻る。
そして、ステップS294で、他のスピーカ装置200からトリガ信号を受信したと判別したとき、あるいは、ステップS293でトリガ信号をブロードキャスト方式によりバス300に送出したときには、CPU210は、受信したトリガ信号のタイミングから、あるいは送出したトリガ信号のタイミングから、規定時間だけ、マイクロホン202で収音した音声信号を収音信号用バッファメモリ219に記録する(ステップS295)。
そして、各スピーカ装置200のCPU210は、マイクロホン202で収音したリスナの声に、中音域のフィルタをかけてそのレベルを計測する(ステップS296)。このとき、伝播距離による音波の減衰を考慮して、リスナ500と各スピーカ装置200との距離DLiに応じてそれぞれの信号レベルを補正する。そして、計測した信号レベルは、自スピーカ装置200ID番号と対応付けて記憶する(ステップS297)。
そして、CPU210は、自スピーカ装置200のID番号とともに、計測した信号レベルをバス300を通じてブロードキャスト方式で他のスピーカ装置200に送信する(ステップS298)。
次に、CPU210は、他のスピーカ装置200からの、計測結果の信号レベルの受信を待ち(ステップS299)、その受信を確認したら、受信した計測結果の信号レベルを、当該他のスピーカ装置200のID番号と対応付けて記憶する(ステップS300)。
次に、CPU210は、他の全てのスピーカ装置200からの計測結果の信号レベルの受信を完了したか否か判別し(ステップS301)、全ては受信していないと判別したときには、ステップS299に戻って、残りのスピーカ装置200からの計測結果の信号レベルを受信する。
そして、ステップS301で、全てのスピーカ装置からの計測結果の信号レベルを受信したと判別したときには、CPU210は、それらの信号レベルの情報を解析して、リスナの正面方向を推測し、推測結果の正面方向を基準方向として、スピーカ配置情報記憶部233に記憶する(ステップS302)。この推測方法は、前述もしたように、人声の指向特性は左右で対象であり、中高音域成分は正面方向で最大で、背面方向で最小になるという性質を利用したものである。
以上の処理は、全てのスピーカ装置200が行なうので、結果的に、すべてのスピーカ装置は、同じ処理結果を得る。
なお、以上の処理において、精度を上げるため、ステップS296で用いるフィルタで抽出する帯域を2以上用意して、それぞれの帯域での推測正面方向を照合しようにしてもよい。
<チャンネル合成係数確認補正処理>
以上のようにして、音響システムを構成する複数個のスピーカ装置200の配置関係を算出すると共に、基準方向を定め、各スピーカ装置200に供給するスピーカ装置用信号を生成するためのチャンネル合成係数を算出することができる。
そして、この第3の実施形態では、各スピーカ装置用のチャンネル合成係数が実際上適切なものとなっているかどうかをスピーカ装置200のそれぞれが確認して、補正することができるようにしている。以下、その確認補正処理について、図41および図42のスピーカ装置200における処理のフローチャートを参照しながら説明する。
この例においても、スピーカ装置200は、例えばリスナからのチャンネル合成係数確認補正処理の開始の合図音を検知すると、図41および図42の処理ルーチンを起動する。この開始の合図音としては、前述同様に、リスナが手を複数回叩くことにより発するようにしても良いし、また、リスナが発する声や口笛を開始の合図音としてもよい。
この実施形態では、各スピーカ装置200は、マルチチャンネルの各1チャンネル毎に、当該チャンネルの音声信号による音像の定位が所期の位置となっているかどうかを確認して、必要があればチャンネル合成係数を補正するようにする。
すなわち、先ず、CPU210は、初期化処理を行ない、チャンネル合成係数を確認する最初のチャンネルm=1とする(ステップS311)。例えば、チャンネル1は、左チャンネルの音声信号とする。
そして、CPU210は、リスナが発する声の合図音を検知したか否か判別し(ステップS312)、合図音を検知したと判別したときには、当該mチャンネルの音声信号についてのチャンネル合成係数に関する確認補正のトリガ信号をバス300を通じてブロードキャスト方式で他のスピーカ装置200に送信する(ステップS314)。
また、ステップS312で、合図音を検知していないと判別したときには、当該mチャンネルの音声信号についてのチャンネル合成係数に関する確認補正のトリガ信号を他のスピーカ装置200から受信したか否か判別し(ステップS313)、当該トリガ信号を受信していないと判別したときには、ステップS312に戻る。
また、ステップS313で、mチャンネルの音声信号についてのチャンネル合成係数に関する確認補正のトリガ信号を受信したと判別したとき、また、ステップS314で、mチャンネルの音声信号についてのチャンネル合成係数に関する確認補正のトリガ信号をブロードキャストした後には、チャンネル合成係数記憶部234に記憶されているチャンネル合成係数のうち、自スピーカ装置用のチャンネル合成係数を用いて、第mチャンネルの音声信号についての音像定位状態を確認するためのスピーカ装置用テスト信号を生成して、それを放音する(ステップS315)。
例えば第mチャンネルとしてLチャンネルの音声信号についてのスピーカ装置用テスト信号を生成するには、スピーカ装置200のそれぞれは、各スピーカ装置用のチャンネル合成係数のうちの、Lチャンネルについての係数wLiを読み出し、その係数をテスト信号に乗算することにより得られる。テスト信号は、この例においても、各スピーカ装置200のROM211が備える信号が利用される。なお、このとき、スピーカ装置200によっては、係数wLi=0であるため、音声の放音は行なわないものもある。
そして、CPU210は、そのマイクロホン202での音声の収音を開始し、トリガ信号のタイミングを基準にした規定時間分を録音信号として取り込み(ステップS316)、その規定時間分の録音信号を、それぞれのスピーカ装置200のID番号を付加してパケット化して、他のスピーカ装置200にブロードキャスト方式により送る(ステップS317)。
そして、CPU210は、他のスピーカ装置200からの規定時間分の録音信号の受信を待ち(ステップS318)、受信を確認すると、バッファメモリ(RAM212)に格納する(ステップS319)。
そして、全てのスピーカ装置200からの規定時間分の録音信号を受信するまでステップS318およびステップS319の処理を繰り返し、全てのスピーカ装置200からの規定時間分の録音信号を受信したことを確認したら(ステップS320)、自スピーカ装置200および他のスピーカ装置200からの規定時間分の録音信号の伝達特性を算出すると共に、周波数分析を行ない、その結果から、テスト信号の放音を行なった第mチャンネルについてのテスト信号の放音による音像が所期の位置に定位しているかどうかを解析する(図42のステップS331)。
そして、CPU210は、その解析の結果、当該第mチャンネルについてのテスト信号の放音による音像が所期の位置に定位しているか否か判別し(ステップS332)、所期の位置に定位していないと判別したときには、当該第mチャンネルについての各スピーカ装置200のチャンネル合成係数を、前記解析結果に応じて補正し、その補正したチャンネル合成係数をバッファメモリに保存すると共に、その補正したチャンネル合成係数を用いて、第mチャンネルについての自スピーカ装置用のスピーカ装置用テスト信号を生成する(ステップS333)。そして、ステップS315に戻り、ステップS333で生成した補正したチャンネル合成係数を用いて生成したスピーカ装置用テスト信号を放音する。
そして、ステップS332で、第mチャンネルについてのテスト信号の放音による音像が所期の位置に定位していると判別したときには、CPU210は、全てのスピーカ装置用の補正したチャンネル合成係数を、自スピーカ装置200のID番号を付与してバス300を通じてブロードキャスト方式により送信する(ステップS334)。
そして、CPU210は、他の全てのスピーカ装置200から、それぞれで算出された全てのスピーカ装置用の補正されたチャンネル合成係数を受信する(ステップS335)。そして、受信した全てのスピーカ装置からのチャンネル合成係数から、補正されたチャンネル合成係数の収束値を求め、求めたチャンネル合成係数の収束値を、チャンネル合成係数記憶部234に格納して、チャンネル合成係数を補正値に更新する(ステップS336)。
次に、CPU210は、全てのチャンネルについての補正が終了したか否か判別し(ステップS337)、終了としたと判別したときには、この処理ルーチンを終了する。
また、ステップS337で、全てのチャンネルについては、未だ補正が終了していないと判別したときには、CPU210は、トリガ信号を発したのは、自機であるか否か判別し(ステップS338)、そうであれば、次のチャンネルを指定した後(ステップS339)、ステップS314に戻る。また、ステップS338で、自機ではないと判別したときには、次のチャンネルを指定した後(ステップS340)、ステップS313に戻る。
以上のようにして、この実施形態によれば、各スピーカ装置が、任意の位置に配置された複数個のスピーカ装置の配置関係を自動的に検出し、その配置関係に関する情報に基づき、各スピーカ装置に供給するスピーカ装置用信号として、適切なものを自動的に生成し、かつ、その生成したものが、実際上、最適な再生音場を形成するかを確認補正することができる。
なお、この実施形態におけるチャンネル合成係数確認補正処理は、任意の位置に配置された複数個のスピーカ装置の配置関係を、上述の例のように自動的に検出する場合に限られるものではなく、ユーザがスピーカ装置200にそれぞれ設定入力し、その設定入力情報に基づいて、スピーカ装置200のそれぞれがチャンネル合成係数を算出する場合においても、算出したチャンネル合成係数が、実際上、最適な再生音場を形成するかを確認補正する場合にも適用することができる。
換言すれば、任意の位置に配置された複数個のスピーカ装置の配置関係は、厳密に設定する必要はなく、おおよその配置位置関係を設定すれば、その配置位置関係の情報に基づいて生成したチャンネル合成係数を、チャンネル合成係数確認補正処理により補正して、実際上、最適な再生音場を形成するチャンネル合成係数にすることができる。
なお、第3の実施形態において、スピーカ装置200の配置関係を僅かに変更した場合には、再度、スピーカ装置の配置関係から算出し直すのではなく、チャンネル合成係数確認補正処理を起動させることにより、容易に所期の再生音場を得ることができる。
なお、この第3の実施形態においても、各1チャンネル毎に、チャンネル合成係数の確認補正処理を行なうのではなく、マイクロホン202で収音した音声信号から分離可能な状態で、異なるチャンネル用のスピーカ装置用テスト信号を生成するようにすれば、複数チャンネル分のチャンネル合成係数の確認補正処理を同時に行なうことができる。
[その他の実施形態および変形例]
上述の実施形態では、スピーカ装置の識別子としては、識別番号を用いるようにしたが、識別子は、番号に限られるものではなく、スピーカ装置が識別可能であればどのようなものでも良い。例えばアルファベットを用いるようにしても良いし、また、アルファベットと番号との組み合わせであっても良い。
なお、上述の各実施形態では、バス300に複数個のスピーカ装置が接続されて音響システムが構成される場合あったが、この発明の音響システムは、サーバ装置からそれぞれ別々のスピーカケーブルで接続される場合であっても良い。また、サーバ装置およびスピーカ装置のそれぞれが無線通信部を備えて、制御信号や音声データを無線通信するように構成する場合にもこの発明は適用できる。
また、上述の実施形態では、スピーカ装置の配置関係を自動的に検出する場合について説明したが、リスナがスピーカ装置の配置関係を設定入力する場合にもおいても、上述と同様にして、実際のスピーカ装置200の配置状況に応じてチャンネル合成係数の確認補正をすることは、有効であることは言うまでもない。
なお、以上の実施形態では、単にスピーカ装置に供給するスピーカ装置用信号を生成するためのチャンネル合成係数を補正する場合についてのみ説明したが、マイクロホンで収音した音声信号の周波数分析を行なって、その分析結果を用いて、各チャンネルのトーンコントロールなどの用途に応用するようにすることもできる。
100…サーバ装置、118…スピーカ配置情報記憶部、119…チャンネル合成係数記憶部、120…スピーカ装置用信号生成部、121…伝達特性計算部、122…チャンネル合成係数確認補正処理部、200…スピーカ装置、201…スピーカユニット、202…マイクロホン、216…ID番号記憶部、219…収音信号用バッファメモリ、600…システム制御装置