以下、本発明の各実施の形態について、図面を参照して詳細に説明する。
(実施の形態1)
図1は、本実施の形態に係るハウリング検出装置の構成の一例を示すブロック図である。
図1において、ハウリング検出装置100は、入力端子200、信号レベル算出部310、レベル変動推定値算出部320、閾値算出部330、ハウリング判定部340、および出力端子400を有する。
入力端子200は、マイクロホン(図示せず)等の音声信号を出力する機器に接続するための端子である。入力端子200は、接続するマイクロホンから出力された音声信号を入力し、信号レベル算出部310へ出力する。以下、入力端子200が入力した音声信号は、単に「入力信号」という。
信号レベル算出部310は、入力信号から、所定の時間ごとに、入力信号の信号レベルである入力信号レベルを算出する。具体的には、信号レベル算出部310は、入力信号の単位時間ごとのパワーあるいは絶対値である入力信号レベルを算出し、レベル変動推定値算出部320およびハウリング判定部340へ出力する。
レベル変動推定値算出部320は、レベル変動推定値を算出し、閾値算出部330へ出力する。
ここで、レベル変動推定値は、入力信号レベルから時間とともに所定量漸増あるいは漸減する値である。より具体的には、レベル変動推定値は、例えば、入力信号レベルの極小値から所定量漸増する値、入力信号レベルの極大値から所定量漸減する値、および、入力信号レベルの平均値から所定量漸減あるいは漸増する値のうちの1つである。すなわち、レベル変動推定値は、入力信号レベルの推移に対応して逐次更新され、かつ、所定の時間あたりの更新量(本実施の形態では、増加量とする)が制限された状態で追従する値である。言い換えると、レベル変動推定値は、入力信号レベルの時間的変動の推定値である。
ここでは、レベル変動推定値算出部320は、入力信号レベルの極小値の推移を入力信号レベルの推移(入力信号レベルの変動の範囲の推移)として扱うものとする。すなわち、ここでは、入力信号レベルの極小値から時間とともに所定量漸増する値を、レベル変動推定値とした場合について、説明する。
閾値算出部330は、レベル変動推定値から、レベル変動推定値に応じて変化する第1の閾値(レベル閾値)を算出し、ハウリング判定部340へ出力する。すなわち、レベル変動推定値は、第1の閾値の基準となる基準信号である。
ハウリング判定部340は、入力信号レベルが第1の閾値を超えている状態の継続時間を計測する。そして、ハウリング判定部340は、計測した継続時間が所定の時間閾値に到達したことを条件として、入力信号にハウリングが発生したと判定する。そして、ハウリング判定部340は、判定結果を、ハウリングの検出結果として、出力端子400へ出力する。
出力端子400は、アンプ等、上述のマイクロホンに入力された音声を増幅してスピーカから出力するための端子である。出力端子400は、ハウリングを抑制する機能を有する音響制御装置に対して、ハウリングの検出結果を出力する。
なお、ハウリング検出装置100は、例えば、CPU(central processing unit)、およびRAM(random access memory)等の記憶媒体などを含むコンピュータである。この場合、ハウリング検出装置100は、記憶する制御プログラムをCPUが実行することによって動作する。また、信号レベル算出部310、レベル変動推定値算出部320、閾値算出部330、およびハウリング判定部340により構成される機能部は、ハウリング検出装置100に組み込まれたハウリング検出部300として扱ってもよい。
このようなハウリング検出装置100は、入力信号レベルの極小値から時間とともに所定量漸増する値である、レベル変動推定値を算出する。そして、ハウリング検出装置100は、このレベル変動推定値に応じて変化する閾値を超えている状態が、所定の時間閾値を超えて継続したか否かに基づいて、ハウリング判定を行う。これにより、ハウリング検出装置100は、騒音のレベルによらずハウリングの誤検出および不検出の両方を低減することができる。
その理由は以下の通りである。ハウリングは発生すると、突出したレベルで持続する。以下、このような、ハウリングの特徴として見られる入力信号レベルの状態は「ハウリング状態」といい、ハウリング状態の区間は「ハウリング区間」という。また、ハウリング音と区別すべき音として、日常生活において一般的に存在する各種音は、「騒音」という。そして、騒音が発生している状態は、「騒音状態」という。
上述の第1の閾値は、入力信号レベルの極小値の推移に追従するレベル変動推定値に基づき、推移する。入力信号レベルの極小値は、騒音が大きいとき大きくなる。したがって、このような第1の閾値との比較によるハウリング判定は、騒音をハウリングと誤検出する可能性を低減することができる。
ところが、このようなハウリング判定は、ハウリングを検出し損なう可能性を増大させ得る。そこで、レベル変動推定値算出部320は、上述のように、入力信号レベルの変動の範囲に対応するレベル変動推定値を算出する。具体的には、レベル変動推定値算出部320は、入力信号レベルの極小値から時間とともに所定量漸増するレベル変動推定値、つまり、入力信号レベルの増加に対する低い追従性を有するレベル変動推定値を生成する。
ハウリング区間においては、入力信号レベルは、上述の通り突出したレベルで持続するため、所定の時間、最大値に近い値を持続する。そこで、本実施の形態に係るハウリング検出装置100は、レベル変動推定値に対して入力信号レベルが小さければ、レベル変動推定値を入力信号レベルの値に置き換える。また、ハウリング検出装置100は、レベル変動推定値に対して入力信号レベルが大きければ、レベル変動推定値を緩やかに上昇させる。このようなレベル変動推定値の特性は、ハウリング区間において、入力信号レベルの変動の範囲の最大値よりも常に小さくなるような変動閾値を設定することを可能にし、ハウリングを検出し損なう可能性を低減することができる。
ところが、このようなハウリング判定は、入力信号レベルの大きい騒音をもハウリングと誤検出してしまうおそれがある。そこで、ハウリング判定部340は、上述のように、入力信号レベルが第1の閾値を超えている状態が所定の時間閾値を超えて継続して初めて、入力信号にハウリングが発生したと判定する。騒音の多くは、一時的または断続的に入力信号レベルが大きくなるものであって、ハウリング音のように突出したレベルで持続するものではない。したがって、ハウリング検出装置100は、このようなハウリング判定を行うことにより、ハウリングの誤検出および不検出の両方を低減することができる。
次に、ハウリング検出装置100の動作について説明する。
図2は、ハウリング検出装置100の動作の一例を示すフローチャートである。
まず、ステップS1100において、信号レベル算出部310は、入力信号から入力信号レベルを算出する。信号レベル算出部310は、1サンプルごと(例えば16[kHz]サンプリング=0.0625[ms]ごと)またはフレーム(複数サンプル)ごとに、入力信号のパワーあるいは絶対値を求めることにより、入力信号レベルの算出を行う。したがって、ハウリング検出装置100は、ステップS1100からステップS2000までの処理を、所定のサンプリングタイムごとに、繰り返して行う。
そして、ステップS1200において、レベル変動推定値算出部320は、レベル変動推定値・閾値算出処理を行う。レベル変動推定値・閾値算出処理は、ここでは、入力信号レベルの極小値に追従するレベル変動推定値を算出する処理である。
図3は、ステップS1200のレベル変動推定値・閾値算出処理の一例を示すフローチャートである。
ステップS1210において、レベル変動推定値算出部320は、現在の周期で算出された入力信号レベルが、1つ前の周期で算出されたレベル変動推定値(以下、単に「レベル変動推定値」という)を超えているか否かを判断する。なお、現在の周期で算出された入力信号レベルは、以下、単に「入力信号レベル」という。レベル変動推定値算出部320は、入力信号レベルがレベル変動推定値を超えている場合(S1210:YES)、ステップS1220へ進む。また、レベル変動推定値算出部320は、入力信号レベルがレベル変動推定値を超えていない場合、または、最初の周期であってまだレベル変動推定値が算出されていない場合(S1210:NO)、ステップS1230へ進む。
ステップS1220において、レベル変動推定値算出部320は、レベル変動推定値に対して予め定めた第1の係数を乗じることにより得られる値でレベル変動推定値を更新して、ステップS1240へ進む。
ここで、第1の係数は、入力信号レベルの極小値をトレース可能な程度の値であり、1を超える値である。すなわち、第1の係数は、入力信号レベルが大きい状態が継続している場合の、レベル変動推定値の増加の度合い(傾き)を決めるものである。
より具体的には、第1の係数は、レベル変動推定値を、電車の走行音の場合のような緩やかな入力信号レベルの増加に対しては、ほぼリアルタイムに追従させる値である。そして、なおかつ、第1の係数は、レベル変動推定値を、ハウリング音の場合のような急激な入力信号レベルの増加に対しては、遅れて追従させるような値である。第1の係数は、本実施の形態では、実験に基づいて決定された値とする。
なお、レベル変動推定値算出部320は、レベル変動推定値に対して予め定めた定数を加算した値で、レベル変動推定値を更新してもよい。この場合、第1の係数は、0を超える値である。
ステップS1230において、レベル変動推定値算出部320は、入力信号レベルでレベル変動推定値を更新して、ステップS1240へ進む。
ステップS1240において、閾値算出部330は、更新されたレベル変動推定値に対して予め定めた第2の係数を乗じることにより得られる値を、第1の閾値として算出して、図2の処理へ戻る。ここで、第2の係数は、1を超える値である。そして、なおかつ、第2の係数は、第1の係数により定まるレベル変動推定値の入力信号レベル推移に対する追従性において、ハウリング区間の少なくとも初期には入力信号レベルが第1の閾値以下とならないような値である。
そして、図2のステップS1400において、ハウリング判定部340は、入力信号レベルが第1の閾値を超えているか否かを判定する。ハウリング判定部340は、入力信号レベルが第1の閾値を超えている場合(S1400:YES)、ステップS1500へ進む。また、ハウリング判定部340は、入力信号レベルが第1の閾値を超えていない場合(S1400:NO)、ステップS1600へ進む。
ステップS1500において、ハウリング判定部340は、第1のカウンタ値をインクリメントして、ステップS1700へ進む。
ステップS1600において、ハウリング判定部340は、第1のカウンタ値をリセットして、ステップS1700へ進む。
上述の通り、ハウリング検出装置100は、各処理を所定のサンプリングタイムごとに繰り返して行うため、第1のカウンタ値は、入力信号レベルが連続して第1の閾値を超えている時間の長さを示す。例えば、サンプリングタイムが0.0625[ms]である場合、1600という第1のカウンタ値は、100[ms]の間連続して入力信号レベルが第1の閾値を超えていることを示す。
ステップS1700において、ハウリング判定部340は、第1のカウンタ値が、予め定めた第2の閾値(時間閾値)を超えているか否かを判断する。
ここで、第2の閾値は、第1の係数および第2の係数により定まる第1の閾値の入力信号レベル推移に対する追従性において、ハウリング区間の初期に入力信号レベルが連続して第1の閾値を超える最小時間よりも短い時間に対応する値である。そして、なおかつ、第2の閾値は、上記追従性において、騒音を含む入力信号レベルが連続して第1の閾値を超える最大時間よりも長い時間に対応する値である。第2の閾値は、例えば、0.5秒〜1秒に相当する値である。
なお、ハウリング音を検出し騒音を検出しないような、第1の係数、第2の係数、および第2の閾値の組み合わせは、本実施の形態では、様々な騒音環境について実験やシミュレーションを行うことで求めるものとする。
ハウリング判定部340は、第1のカウンタ値が第2の閾値を超えている場合(S1700:YES)、ステップS1800へ進む。また、ハウリング判定部340は、第1のカウンタ値が第2の閾値を超えていない場合(S1700:NO)、ステップS1900へ進む。
ステップS1800において、ハウリング判定部340は、ハウリングが発生したと判定する。そして、ハウリング判定部340は、ハウリングが発生した旨を示す判定結果を、出力端子400を介して出力して、ステップS2000へ進む。これは、入力信号レベルが大きい状態が時間的に十分に継続したといえるからである。
ステップS1900において、ハウリング判定部340は、ハウリングが発生していないと判定し、そのままステップS2000へ進む。これは、入力信号レベルが大きい状態が発生していない、または、発生していたとしても時間的にまだ十分に継続していないといえるからである。
なお、ハウリング判定部340は、ハウリングが発生していない旨を示す判定結果を、出力端子400を介して出力してもよい。ここでは、ハウリング判定部340は、ハウリングが発生していない状態からハウリングが発生している状態へ移行するごとに、ハウリングが発生していることを示す検出フラグをオンにするものとする。そして、ハウリング判定部340は、ハウリングが発生している状態からハウリングが発生していない状態へ移行するごとに、検出フラグをオフにするものとする。
そして、ステップS2000において、信号レベル算出部310は、ユーザ操作等によりハウリング判定の処理の停止を指示されたか否かを判断する。信号レベル算出部310は、処理の終了を指示されていない場合(S2000:NO)、ステップS1100へ戻り、次の周期の処理を行う。また、信号レベル算出部310は、処理の指示を指示された場合(S2000:YES)、一連の処理を終了する。
上述の処理により、ハウリング検出装置100は、1つ前の周期の入力信号に基づいて第1の閾値を取得し、入力信号レベルがこれを超えている状態が所定の時間継続したか否かに基づいて、ハウリングの発生を判定することができる。
以上、説明したように、本実施の形態に係るハウリング検出装置100は、入力信号レベルの極小値から時間とともに所定量漸増する値である、レベル変動推定値を算出する。次に、ハウリング検出装置100は、算出したレベル変動推定値に応じて変化する閾値を超えている状態が所定の時間閾値を超えて継続したか否かに基づいて、ハウリング判定を行う。これにより、ハウリング検出装置100は、騒音のレベルによらずハウリングの誤検出および不検出の両方を低減することができる。
上述のように、従来装置は、予め定めた閾値を用いて閾値判定を行っており、そのハウリング発生の判定は、レベル依存するようになっている。そのため、従来装置を用いて騒音環境下でも安定して判定を行うためには、ハウリングのみを精度良く検出するよう、音響環境にあわせて逐一閾値を調整する必要がある。
これに対し、本実施の形態に係るハウリング検出装置100は、ハウリング検出用の閾値を逐一調整することなく、かつ、ハウリングの誤検出および不検出の両方を低減することができる。したがって、本実施の形態に係るハウリング検出装置100は、騒音環境下でも安定してハウリングを検出することができ、従来技術に比べてハウリングの発生をより高精度に検出することができる。
なお、入力信号レベルの変動の範囲を表す情報として扱われる値は、入力信号レベルの極小値に限定されない。以下、変形例として、レベル変動推定値を入力信号レベルの極小値以外の値の推移から求める場合のレベル変動推定値・閾値算出処理について説明する。
(実施の形態1の変形例1)
実施の形態1の変形例1は、レベル変動推定値を入力信号レベルの極大値の推移から求める場合の例である。すなわち、本変形例は、入力信号レベルの極大値から時間とともに所定量漸減する値を、レベル変動推定値として算出する例である。
図4は、本変形例におけるレベル変動推定値・閾値算出処理の一例を示すフローチャートであり、図3に対応するものである。
レベル変動推定値算出部320は、入力信号レベルを入力されると(図2のステップS1100)、ステップS1210aへ進む。
ステップS1210aにおいて、レベル変動推定値算出部320は、入力信号レベルがレベル変動推定値未満となっているか否かを判断する。レベル変動推定値算出部320は、入力信号レベルがレベル変動推定値未満となっている場合(S1210a:YES)、ステップS1220aへ進む。また、レベル変動推定値算出部320は、入力信号レベルがレベル変動推定値未満となっていない場合、または、最初の周期であってまだレベル変動推定値が算出されていない場合(S1210a:NO)、ステップS1230aへ進む。
ステップS1220aにおいて、レベル変動推定値算出部320は、レベル変動推定値に対して予め定めた第3の係数を乗じることにより得られる値でレベル変動推定値を更新して、図2の処理へ戻る。ここで、第3の係数は、レベル変動推定値を、ハウリング音の緩やかな入力信号レベルの減少に対しては、ほぼリアルタイムに追従させ、電車の騒音の立ち下がり部分等の入力信号レベルの減衰に対しては、遅れて追従させるような値である。
なお、レベル変動推定値算出部320は、レベル変動推定値に対して予め定めた定数を減算した値で、レベル変動推定値を更新してもよい。この場合、第3の係数は、0を超える値である。
ステップS1230aにおいて、レベル変動推定値算出部320は、入力信号レベルでレベル変動推定値を更新して、ステップS1240aへ進む。
ステップS1240aにおいて、閾値算出部330は、更新されたレベル変動推定値に対して予め定めた第4の係数を乗じることにより得られる値を、第1の閾値として算出して、図2の処理へ戻る。ここで、第4の係数は、0を超え1未満の値である。そして、第4の係数は、なおかつ、第3の係数により定まるレベル変動推定値の入力信号レベル推移に対する追従性において、ハウリング区間の少なくとも直後には入力信号レベルが第1の閾値以上とならないような値である。
また、ステップS1700で用いられる第2の閾値は、第1の係数および第3の係数により定まる第1の閾値の入力信号レベル推移に対する追従性において、ハウリング音と騒音とを峻別することができるような値である。
このように、ハウリング検出装置100は、入力信号レベルの極大値に基づいて、入力信号レベルの推移に遅れて追従するような第1の閾値を算出することができる。
特に、ハウリング検出装置100は、入力信号レベルの減少に対して遅れて追従するような第1の閾値を算出する。これにより、ハウリング検出装置100は、電車の騒音の立ち下がり部分等の緩やかな入力信号レベルの減衰において、ハウリングが発生したとの誤検出を防ぐことができる。すなわち、ハウリング検出装置100は、ハウリングが突出したレベルで持続することから、入力信号レベルの包絡線情報(大きさと時間推移)に応じて検出閾値を逐次算出する。
これにより、ハウリング検出装置100は、ハウリング検出用の閾値を逐一調整することなく、かつ、ハウリングの誤検出および不検出の両方を低減することができる。
(実施の形態1の変形例2)
実施の形態1の変形例2は、入力信号レベルの長時間平均値の推移を、入力信号レベルの推移として扱う場合の例である。すなわち、本変形例は、入力信号レベルの平均値から時間とともに所定量漸増あるいは漸減する値を、レベル変動推定値として算出する例である。
図5は、本変形例におけるレベル変動推定値・閾値算出処理の一例を示すフローチャートであり、図3に対応するものである。
レベル変動推定値算出部320は、入力信号レベルを入力されると(図2のステップS1100)、ステップS1210bへ進む。
ステップS1210bにおいて、レベル変動推定値算出部320は、入力信号レベルの時系列データに対して平滑化処理を行う。そして、レベル変動推定値算出部320は、平滑化処理により得られる値でレベル変動推定値を更新する。平滑化処理により得られる値は、入力信号レベルの長時間平均値である。なお、まだ長時間平均値を算出するのに充分な周期が経過していない間は、レベル変動推定値算出部320は、予め定めた初期値をレベル変動推定値に設定するようにしてもよい。
なお、平滑化後の、現在の周期kにおけるレベル変動推定値N(k)は、例えば、以下の式(1)に示す移動平均の算出を行うことにより可能である。
N(k)=(1−α)×X(k)+α×N(k−1) ・・・(1)
ここで、X(k)は、現在の周期kにおける入力信号レベルである。N(k−1)は、1つ前の周期k−1におけるレベル変動推定値である。また、αは、入力信号レベルの平均値をトレース可能な程度の値であり、0<<α<1の関係を満たす忘却係数である。より具体的には、αは、レベル変動推定値を、電車の騒音等の緩やかな更新量での入力信号レベルの変化に対して、ほぼリアルタイムに追従させる。つまり、αは、ハウリング音の急激な更新量での入力信号レベルの変化に対して、遅れて追従させるような値である。
そして、ステップS1240bにおいて、閾値算出部330は、更新されたレベル変動推定値に対して予め定めた第5の係数を乗じることにより得られる値を、第1の閾値として算出して、図2の処理へ戻る。
ここで、第5の係数は、忘却係数αにより定まるレベル変動推定値の入力信号レベル推移に対する追従性において、ハウリング区間の少なくとも初期には入力信号レベルが第1の閾値以下とならないような値である。第5の係数は、例えば1であり、この場合、閾値算出部330は、レベル変動推定値をそのまま第1の閾値とする。
なお、閾値算出部330は、レベル変動推定値に第5の係数として1以上の値を乗じて得られる値、または、レベル変動推定値に予め定めた0以上の定数を加算して得られる値を、第1の閾値としてもよい。
このように、ハウリング検出装置100は、入力信号レベルの長時間平均値に基づいて、入力信号レベルの推移に対して遅れて追従するような第1の閾値を算出することができる。
(実施の形態1の変形例3)
実施の形態1の変形例3は、騒音の開始時の入力信号レベルの立ち上がりに対して、レベル変動推定値をほぼリアルタイムに追従させるようにする場合の例である。
図6は、本変形例におけるレベル変動推定値・閾値算出処理の一例を示すフローチャートであり、図3に対応するものである。
ハウリング検出装置100は、レベル変動推定値を更新すると(ステップS1210〜S1230)、ステップS1231cへ進む。
ステップS1231cにおいて、レベル変動推定値算出部320は、入力信号レベルを入力されると(図2のステップS1100)、レベル変動推定値が予め定めた第3の閾値未満となっているか否かを判断する。
ここで、第3の閾値は、0以上の値であり、例えば、静かな音響環境下における騒音レベルに相当する値である。
レベル変動推定値算出部320は、レベル変動推定値が第3の閾値未満となっている場合(S1231c:YES)、ステップS1232cへ進む。また、レベル変動推定値算出部320は、レベル変動推定値が第3の閾値未満となっていない場合、または、最初の周期であってまだレベル変動推定値が算出されていない場合(S1231c:NO)、ステップS1233cへ進む。
ステップS1232cにおいて、レベル変動推定値算出部320は、第2のカウンタ値をインクリメントして、ステップS1234cへ進む。
ステップS1233cにおいて、レベル変動推定値算出部320は、第2のカウンタ値をリセットして、ステップS1234cへ進む。
すなわち、第2のカウンタ値は、レベル変動推定値が第3の閾値を超えない状態の継続時間を示す値となる。
そして、ステップS1234cにおいて、レベル変動推定値算出部320は、第2のカウンタ値が予め定めた第4の閾値を超えたか否かを判断する。
ここで、第4の閾値は、例えば、0.1秒〜0.5秒に相当する値であり、騒音レベルが小さくマイクロホンへの入力信号もないほぼ無音の状態が継続しているか判断するための値を設定する。
レベル変動推定値算出部320は、第2のカウンタ値が第4の閾値を超えた場合(S1234c:YES)、ステップS1235cへ進む。また、レベル変動推定値算出部320は、第2のカウンタ値が第4の閾値を超えていない場合(S1234c:NO)、そのままステップS1240へ進み、図2の処理へ戻る。
ステップS1235cにおいて、レベル変動推定値算出部320は、レベル変動推定値を初期化、つまりレベル変動推定値を入力信号レベルに一致させて、ステップS1240へ進み、図2の処理へ戻る。
すなわち、レベル変動推定値は、レベル変動推定値が第3の閾値を超えない状態が所定の時間閾値を超えて継続している場合には、予め定めた所定の時間、入力信号レベルに追従させる状態となる。これは、入力信号レベルが小さな状態から急激に大きくなったときに、第1の閾値の基となるレベル変動推定値がこれに追従していないと、ハウリングが発生したとの誤判定が成される可能性があるからである。
このようなレベル変動推定値・閾値算出処理により、ハウリング検出装置100は、レベル変動推定値を、入力信号レベルの立ち上がりにおいてはほぼリアルタイムに追従させつつ、その後は遅れて追従させるようにすることができる。
これにより、ハウリング検出装置100は、電話着信音のようにその開始時に急激に入力信号レベルが増加する騒音を、ハウリング音と誤検出するのを防ぎつつ、ハウリング音を検出することができる。したがって、ハウリング検出装置100は、ハウリング検出を更に高精度化することができる。
次に、変形例3に係るハウリング検出装置100において、ハウリングの発生を高精度に検出することができることについて説明する。
ここでは、ハウリング音が含まれる第1の入力信号と、電話着信音が含まれる第2の入力信号と、風鈴の音が含まれる第3の入力信号とを想定する。
図7は、ハウリング音が含まれる第1の入力信号の場合における各信号の状態の一例を示す図である。図7Aは、入力信号の時間推移を示す。図7Bは、入力信号レベル、レベル変動推定値、および第1の閾値の時間推移を示す。図7Cは、第1のカウンタ値の時間推移を示す。図7Dは、検出フラグおよび初期化フラグの時間推移を示す。ここで、初期化フラグとは、レベル変動推定値を初期化する状態にあるか否かを表すためのものである。
第1の入力信号911において、5秒目から10秒目の区間は、ハウリング区間である。図7Aに示すように、第1の入力信号911は、ハウリング区間においてその振幅が大きくなっている。したがって、図7Bに示すように、入力信号レベル912は、ハウリング区間においてレベルが大きい状態を維持する(S1210:YES)。
すると、図7Bに示すように、レベル変動推定値913は、ハウリング区間において徐々に大きくなっていき(S1220)、第1の閾値914も徐々に大きくなっていく(S1240)。
第1の閾値914が入力信号レベル912に到達する時刻tlまでの間、入力信号レベル912は第1の閾値914を超えていると判定され続ける(S1400:YES)。その結果、第1のカウンタ値915は、徐々に増加していく(S1500)。
そして、図7Cに示すように、第1のカウンタ値915が時刻tlの前の時刻tcに第2の閾値901を超えると(S1700:YES)、図7Dに示すように、検出フラグ916はオンとなる(S1800)。また、第1の閾値914が入力信号レベル912に到達する時刻tlを過ぎると(S1400:NO)、第1のカウンタ値915は、リセットされて第2の閾値901以下となる(S1600、S1700:NO)。
この結果、図7Dに示すように、検出フラグ916は、オフとなる(S1900)。
なお、この例では、レベル変動推定値913は継続して第3の閾値未満にはなっていないものとする(S1231c:NO)。この場合、図7Cに示すように、第2のカウンタ値917は、増加せず(S1233c)、第4の閾値903を超えない(S1234c:NO)。
この結果、図7Dに示すように、初期化フラグ918は、オフの状態を維持する。
図8は、電話着信音は含まれるがハウリング音は含まれない第2の入力信号における、各信号の状態の一例を示す図であり、図7に対応するものである。
第2の入力信号921において、時刻t1から時刻t2までの区間は、電話着信音が鳴っている区間(以下「着信音区間」という)である。
図8Aに示すように、電話着信音は連続音ではないため、第2の入力信号921の振幅は、着信音区間において、大きい状態と小さい状態とを短い周期で交互に繰り返す。したがって、図8Bに示すように、着信音区間において、入力信号レベル922が第1の閾値924を超えているとの判定と、超えていないとの判定とが、短い周期で交互に繰り返される(S1400:NO)。
この結果、図8Cに示すように、第1のカウンタ値925は増加せず(S1600)、第1のカウンタ値925が第2の閾値901を超えることはない(S1700:NO)。
ところが、レベル変動推定値923が、時刻t1の第2の入力信号921の立ち上がりに伴う入力信号レベル922の立ち上がりに追従するまでの間は、入力信号レベル922は、レベル変動推定値923を超えた状態となる。したがって、レベル変動推定値923の入力信号レベル922の立ち上がりに対する追従が遅いと、ハウリング発生との誤検出がされてしまうおそれがある。
そこで、上述の初期化により、図8Dに示すように、初期化フラグ928は、入力信号レベル922の立ち上がりの時刻t1まではオンの状態となる。すなわち、図8Bに示すように、レベル変動推定値923および第1の閾値924は、入力信号レベル922の立ち上がりに素早く追従する。
そして、その後は、初期化フラグ928は、レベル変動推定値923が第3の閾値未満である状態が継続しないことから、オフの状態となる。すなわち、レベル変動推定値923は、急激な入力信号レベルの増加に対し遅れて追従する。
したがって、図8Dに示すように、第2の入力信号921の立ち上がり時を含め、検出フラグ926は常にオフとなる(S1900)。
このように、本実施の形態に係るハウリング検出装置100においては、電話着信音のように断続的に入力信号レベルが大きくなる騒音は、ハウリング音として誤検出されない。
図9は、風鈴の音は含まれるがハウリング音は含まれない第3の入力信号における、各信号の状態の一例を示す図であり、図7に対応するものである。
第3の入力信号931において、風鈴の音が鳴っている区間が連続しているものとする。図9Aに示すように、第3の入力信号931の振幅は、風鈴の音が開始する時刻t3には大きいが、速やかに減衰し、図9Bに示すように、入力信号レベル932も短時間のうちに低い状態へ推移する(S1210:NO)。
つまり、図9Bに示すように、入力信号レベル932は、時刻t3の直後に、レベル変動推定値933に基づいて算出される第1の閾値934を超えていても(S1400:YES)、すぐに第1の閾値934以下となる(S1400:NO)。したがって、図9Cに示すように、第1のカウンタ値935は、時刻t3の直後には増加しても(S1500)、すぐにリセットされることになる(S1600)。
この結果、第1のカウンタ値935は第2の閾値901に到達することはなく(S1700:NO)、図9Dに示すように、検出フラグ936はオフの状態を維持する。
なお、この例では、レベル変動推定値933は継続して第3の閾値未満にはなっていないものとする(S1231c:NO)。この場合、図9Cに示すように、第2のカウンタ値937は、増加せず(S1233c)、第4の閾値903を超えない(S1234c:NO)。この結果、図9Dに示すように、初期化フラグ938はオフの状態を維持する。
このように、本実施の形態に係るハウリング検出装置100においては、風鈴の音のように入力信号レベルの減衰が速い騒音は、ハウリング音として誤検出されない。
(実施の形態2)
本発明の実施の形態2は、入力信号の周波数ピークを用いてハウリング検出の精度を向上させるようにしたハウリング検出装置である。
図10は、本実施の形態に係るハウリング検出装置の構成の一例を示すブロック図であり、実施の形態1の図1に対応するものである。図1と同一部分には、同一符号を付し、これについての説明を省略する。
図10において、本実施の形態に係るハウリング検出装置100dは、入力端子200、実施の形態1のハウリング検出部300、周波数ピーク検出部500d、ハウリング総合判定部600d、および出力端子400を有する。
本実施の形態では、入力端子200は、入力信号を、ハウリング検出部300だけでなく、周波数ピーク検出部500dへも出力する。また、ハウリング検出部300は、ハウリングの検出結果を、出力端子400ではなく、ハウリング総合判定部600dへ、第1の判定結果として出力する。
周波数ピーク検出部500dは、入力信号の周波数ピークの有無に基づいて、入力信号にハウリングが発生したか否かを判定する。周波数ピーク検出部500dは、周波数分析部510d、レベル算出部520d、平均レベル算出部530d、レベル比算出部540d、およびハウリング判定部550dを有する。
周波数分析部510dは、入力信号を、周波数帯域を複数に分割した分割帯域ごとの周波数成分に変換または分割し、各分割帯域の周波数成分(以下、単に「周波数成分」という)を、レベル算出部520dへ出力する。
入力信号の各周波数成分への変換または分割の手法としては、時間信号を複数の周波数成分に変換または分割する公知の各種手法を用いることができる。公知の手法は、例えば、高速フーリエ変換、または、複数のFIR(finite impulse response)、IIR(infinite impulse response)フィルタから構成されるフィルタバンクなどを含む。
レベル算出部520dは、変換または分割した各周波数成分ごとに、単位時間ごとのパワーあるいは絶対値である入力信号レベルを算出する。レベル算出部520dは、算出した周波数成分ごとの入力信号レベルを、平均レベル算出部530dおよびレベル比算出部540dへ出力する。
平均レベル算出部530dは、複数の周波数成分の入力信号レベルの平均値を算出し、算出した平均値を、平均レベルとしてレベル比算出部540dへ出力する。
レベル比算出部540dは、複数の周波数成分の入力信号レベルのそれぞれについて、平均レベルに対する比(以下「レベル比」という)を算出し、算出した周波数成分ごとのレベル比を、ハウリング判定部550dへ出力する。
ハウリング判定部550dは、各周波数成分のレベル比に基づいて、入力信号にハウリングが発生したか否かを判定し、第2の判定結果を、ハウリングの検出結果として、ハウリング総合判定部600dへ出力する。
ハウリング総合判定部600dは、第1の判定結果と第2の判定結果との両方が、ハウリングが発生したとの判定結果を示すことを条件として、ハウリングが発生したとの最終判定結果を出力端子400へ出力する。
このようなハウリング検出装置100dは、ハウリング検出部300による判定結果と周波数ピーク検出部500dによる判定結果とを総合した結果を最終判定結果とするので、ハウリング検出の精度を向上させることができる。
なお、ハウリング検出装置100dは、入力端子200および出力端子400を除いた構成としてもよい。
次に、本実施の形態に係るハウリング検出装置100dの動作について説明する。
図11は、ハウリング検出装置100dの動作の一例を示すフローチャートであり、実施の形態1の図2に対応するものである。図2と同一部分には同一ステップ番号を付し、これについての説明を省略する。
ハウリング検出部300のハウリング判定部340は、第1のカウンタ値が第2の閾値を超えている場合(S1700:YES)、ステップS1800dへ進む。そして、ステップS1800dにおいて、ハウリング判定部340は、ハウリングが発生したとの第1の判定結果を、ハウリング総合判定部600dへ出力する。
また、ハウリング検出部300のハウリング判定部340は、第1のカウンタ値が第2の閾値を超えていない場合(S1700:NO)、ステップS1900dへ進む。そして、ステップS1900dにおいて、ハウリング判定部340は、ハウリングが発生していないとの第1の判定結果を、ハウリング総合判定部600dへ出力する。
そして、ステップS1910dにおいて、周波数ピーク検出部500dは、周波数ピーク検出処理を行う。周波数ピーク検出処理は、入力信号の周波数ピークの有無に基づいて、入力信号にハウリングが発生したか否かを判定する処理である。
なお、周波数ピーク検出部500dは、ハウリング検出部300による第1の判定までの処理(S1100〜S1900d)に対して、これよりも前に、または同時に、周波数ピーク検出処理を行ってもよい。この場合にも、周波数ピーク検出部500dは、ハウリング検出部300の判定の周期と同じ周期で、つまり、1サンプルごとまたはフレーム(複数サンプル)ごとに、周波数ピーク検出処理を行うようにする。
図12は、周波数ピーク検出処理の一例を示すフローチャートである。
まず、ステップS1911dにおいて、周波数分析部510dは、入力信号から、複数の分割帯域のそれぞれについて、周波数成分を抽出する。
そして、ステップS1912dにおいて、レベル算出部520dは、複数の周波数成分から、周波数成分ごとに、その周波数成分の入力信号レベルを算出する。
そして、ステップS1913dにおいて、平均レベル算出部530dは、複数の周波数成分の入力信号レベルから、その平均レベルを算出する。なお、このとき、平均レベル算出部530dは、複数の周波数成分の入力信号レベルに対して重み付けを行って、平均レベルを算出するようにしてもよい。
そして、ステップS1914dにおいて、レベル比算出部540dは、複数の周波数成分の入力信号レベルおよび平均レベルから、周波数成分ごとに、レベル比を算出する。
そして、ステップS1915dにおいて、ハウリング判定部550dは、周波数成分ごとに、そのレベル比が予め定めた第5の閾値を超えているか否かを判断する。
ここで、第5の閾値は、上記レベル比が他の周波数成分に比べて突出していると判別できる値を設定する。
ハウリング判定部550dは、レベル比が第5の閾値を超えている周波数成分については、ステップS1916dへ進む。また、ハウリング判定部550dは、レベル比が第5の閾値を超えていない周波数成分については、ステップS1917dへ進む。
ステップS1916dにおいて、ハウリング判定部550dは、周波数成分ごとに用意した第3のカウンタ値のうち、該当する第3のカウンタ値をインクリメントして、ステップS1918dへ進む。
ステップS1917dにおいて、ハウリング判定部550dは、該当する第3のカウンタ値をリセットして、ステップS1918dへ進む。
すなわち、第3のカウンタ値は、対応する周波数成分にピークが連続して発生している時間の長さを示す。
ステップS1918dにおいて、ハウリング判定部550dは、いずれかの周波数成分の第3のカウンタ値が、予め定めた第6の閾値を超えているか否かを判断する。
ここで、第6の閾値は、上述の、ハウリング区間よりも短く騒音状態の連続時間よりも長い所定の時間に相当する値であり、例えば、0.5秒〜1秒に相当する値である。
ハウリング判定部550dは、第3のカウンタ値が第6の閾値を超えている場合(S1918d:YES)、ステップS1919dへ進む。また、ハウリング判定部550dは、第3のカウンタ値が第6の閾値を超えていない場合(S1918d:NO)、ステップS1920dへ進む。
ステップS1919dにおいて、ハウリング判定部550dは、ハウリングが発生したとの第2の判定結果をハウリング総合判定部600dへ出力して、図11の処理へ戻る。
ステップS1920dにおいて、ハウリング判定部550dは、ハウリングが発生していないとの第2の判定結果をハウリング総合判定部600dへ出力して、図11の処理へ戻る。
図11のステップS1930dにおいて、ハウリング総合判定部600dは、ハウリング検出部300による第1の判定結果と、周波数ピーク検出部500dによる第2の判定結果とを入力する。そして、ハウリング総合判定部600dは、第1の判定結果と、第2の判定結果に基づいて、ハウリングが発生したか否かを総合判定する。
ハウリング総合判定部600dは、第1の判定結果および第2の判定結果の両方が、ハウリングが発生したとの判定結果を示す場合(S1930d:YES)、ステップS1940dへ進む。また、ハウリング総合判定部600dは、第1の判定結果および第2の判定結果の少なくとも一方が、ハウリングが発生したとの判定結果を示さない場合(S1930d:NO)、ステップS1950dへ進む。
ステップS1940dにおいて、ハウリング総合判定部600dは、ハウリングが発生したと総合判定し、その旨を示す判定結果を、出力端子400を介して出力して、ステップS2000へ進む。
ステップS1950dにおいて、ハウリング総合判定部600dは、ハウリングが発生していないと総合判定し、そのままステップS2000へ進む。
このような処理により、ハウリング検出装置100dは、ハウリング検出部300による判定結果と周波数ピーク検出部500dによる判定結果とを総合した結果を、最終判定結果として出力することができる。
このように、本実施の形態に係るハウリング検出装置100dは、騒音レベルに応じた閾値だけでなく、周波数ピークを用いてハウリング検出を行うので、ハウリングの誤検出を低減することができる。
なお、ハウリング判定部550dは、周波数ピークがどの周波数帯域で発生したか、つまり、第3のカウンタ値が第6の閾値を超えた周波数帯域を示すピーク周波数情報を、取得するようにしてもよい。この場合、ハウリング検出装置100dは、どの周波数帯域でハウリングが発生しているかを検出することが可能となる。
なお、ハウリング総合判定部600dは、第1の判定結果および第2の判定結果の両方がハウリング発生を示している状態の継続時間を計測してもよい。そして、ハウリング総合判定部600dは、その継続時間が予め定めた第7の閾値を超えたことを条件として、ハウリングが発生したと判定してもよい。
また、ハウリング総合判定部600dは、第1の判定結果がハウリング発生を示している時間と、第2の判定結果がハウリング発生を示している時間との差が所定の範囲内であることを条件として、ハウリングが発生したと判定してもよい。ハウリング総合判定部600dは、このような判定を行うことにより、ハウリング検出の精度を更に向上させることができる。
(実施の形態3)
本発明の実施の形態3は、実施の形態2に係るハウリング検出装置を用いてハウリングの抑制を行うハウリング抑制装置の例である。
図13は、本実施の形態に係るハウリング抑制装置の構成を示すブロック図であり、実施の形態1の図1に対応するものである。図1と同一部分には同一符号を付し、これについての説明を省略する。
図13に示すように、本実施の形態に係るハウリング抑制装置700eは、入力端子200、A/Dコンバータ710e、実施の形態1に係るハウリング検出装置100、減算器720e、遅延器730e、適応フィルタ740e、D/Aコンバータ750e、および出力端子400eを有する。
入力端子200は、入力信号を、A/Dコンバータ710eへ出力する。
A/Dコンバータ710eは、入力信号をアナログ信号からデジタル信号へA/D変換し、変換後の入力信号を、ハウリング検出装置100および減算器720eへ出力する。
ハウリング検出装置100は、入力信号からハウリングの検出を行い、その検出結果を、出力端子400eではなく、適応フィルタ740eへ出力する。
減算器720eは、A/Dコンバータ710eから入力される入力信号と、後述する適応フィルタ740eから入力されるフィルタ出力信号との差分を、算出する。そして、減算器720eは、算出した差分を、遅延器730e、適応フィルタ740e、およびD/Aコンバータ750eへ出力する。すなわち、入力信号は目標信号であり、差分は誤差信号である。
遅延器730eは、誤差信号を遅延させた信号を生成し、生成した信号を、後述する適応フィルタ740eの参照信号として、適応フィルタ740eへ出力する。ここで、遅延器730eの遅延量は、減算器720eの目標信号(入力信号)と、参照信号(フィルタ入力信号)とが互いに相関を持たなくなるような値に設定されているものとする。
適応フィルタ740eは、誤差信号の二乗平均値が最小となるように、フィルタ係数を逐次更新する。そして、適応フィルタ740eは、参照信号とフィルタ係数との畳み込みを行い、畳み込みの結果として得られる信号を、フィルタ出力信号として、減算器720eへ出力する。
適応フィルタ740eがスピーカからマイクロホンへと回り込む帰還信号を模擬した信号を出力した場合、誤差信号の二乗平均値は最小となる。したがって、適応フィルタ740eによる上述のフィルタ係数の更新は、スピーカとマイクロホンとの間の音響フィードバック経路の伝達特性の推定を行うことを意味する。
本実施の形態では、このようなフィルタ更新の結果、減算器720eにより、帰還信号を含む目標信号から帰還信号を模擬した適応フィルタ740eの出力信号が差し引かれ、ハウリングが抑制されることになる。フィルタ係数の更新アルゴリズムとしては、NLMS(normalized least mean square)アルゴリズム等、公知の各種適応アルゴリズムを用いることができる。
ただし、適応フィルタ740eは、ハウリング検出装置100からのハウリング検出結果が、ハウリングが発生したとの判定結果を示すものであることを条件として、ハウリング抑制モードとなる。
ここで、ハウリング抑制モードとは、フィルタ係数の更新を行う、または、フィルタ係数の更新の速度を上げるモードである。したがって、適応フィルタ740eは、ハウリングが発生したときにのみ、ハウリングが収束するまでの間、フィルタ係数を高速に更新することができる。
D/Aコンバータ750eは、差分信号をデジタル信号からアナログ信号へD/A変換し、変換後の信号を、出力端子400eへ出力する。
出力端子400eは、アンプ等の、音声をスピーカから出力する機能を有する音響装置に接続するための端子である。
なお、ハウリング抑制装置700eは、例えば、CPUおよびRAM等の記憶媒体等を含むコンピュータによって構成することができる。また、ハウリング抑制装置700eは、入力端子200、A/Dコンバータ710e、D/Aコンバータ750e、および出力端子400eを除いた構成としてもよい。
このように、本実施の形態に係るハウリング抑制装置700eは、適応フィルタを用いてスピーカからマイクロホンへ回り込む帰還信号を打ち消すので、ハウリングを抑制することができる。
また、ハウリング抑制装置700eは、使用する音響環境に応じてハウリング検出用の閾値を自動的に算出し、検出結果に応じて適応フィルタのフィルタ係数更新のオンオフまたは速度を制御する。これにより、ハウリング抑制装置700eは、ハウリングが発生していないときの音量変化・音質変化をできるだけ回避しつつ、ハウリングの抑制を行うことができる。
なお、ハウリング抑制装置700eは、実施の形態1に係るハウリング検出装置100に替えて、実施の形態2に係るハウリング検出装置100dを備える構成であってもよい。
(実施の形態4)
本発明の実施の形態4は、周波数帯域のゲインを局所的に低減することによりハウリングの抑制を行うハウリング抑制装置の例である。
図14は、本実施の形態に係るハウリング抑制装置の構成を示すブロック図であり、実施の形態3の図13に対応するものである。図13と同一部分には同一符号を付し、これについての説明を省略する。
図14において、ハウリング抑制装置700fは、入力端子200、A/Dコンバータ710e、実施の形態2に係るハウリング検出装置100d、ハウリング抑圧部760f、D/Aコンバータ750e、および出力端子400eを有する。
A/Dコンバータ710eは、A/D変換後の入力信号を、ハウリング検出装置100dおよびハウリング抑圧部760fへ出力する。
ハウリング検出装置100dは、入力信号からハウリングの検出を行い、その検出結果を、出力端子400eではなく、ハウリング抑圧部760fへ出力する。また、ハウリング検出装置100dは、ハウリングが発生したと判定したとき、ピークが発生した周波数帯域(例えば、第3のカウンタ値が第6の閾値を超えた周波数帯域。以下、「ピーク周波数帯域」という)を特定し、ピーク周波数帯域を示すピーク周波数情報を、ハウリング抑圧部760fへ出力する。
ここで、ハウリング検出装置100dは、ハウリングが発生したと判定したときに、ピーク周波数情報をハウリング抑圧部760fへ出力するものとする。そして、ハウリング検出装置100dは、ピーク周波数情報の出力をもって、ハウリングの発生の通知とピークが発生した周波数帯域の通知とを行うものとする。
ハウリング抑圧部760fは、入力信号を、D/Aコンバータ750eへと出力する。ただし、ハウリング抑圧部760fは、ハウリング検出装置100dからピーク周波数情報を入力されたとき、ノッチフィルタを用いて、入力信号に対してピーク周波数情報が示すピーク周波数帯域のゲインを低減させる。この結果、ハウリングが発生した周波数帯域のゲインが低減し、ハウリングが抑圧されることになる。
なお、ハウリング抑制装置700fは、例えば、CPUおよびRAM等の記憶媒体等を含むコンピュータによって構成することができる。また、ハウリング抑制装置700fは、入力端子200、A/Dコンバータ710e、D/Aコンバータ750e、および出力端子400eを除いた構成としてもよい。
このように、本実施の形態に係るハウリング抑制装置700fは、ハウリングが発生した周波数帯域のゲインを局所的に低減するので、他の周波数帯域のゲインをできるだけ保持しつつ、ハウリングを抑制することができる。
また、ハウリング抑制装置700fは、使用する音響環境に応じてハウリング検出用の閾値を自動的に算出し、検出結果に応じてゲイン低減のオンオフを制御する。これにより、ハウリング抑制装置700fは、ハウリングが発生していないときの音量変化・音質変化をできるだけ回避しつつ、ハウリングの抑制を行うことができる。
なお、ハウリング抑圧部760fは、入力信号を複数の周波数成分に変換または分割し、ハウリングが発生した周波数帯域のゲインを低減した後に再度時間信号へと周波数合成することにより、ピーク周波数帯域のゲインを低減させてもよい。
(その他の実施の形態)
なお、本発明の実施の形態は、上記実施の形態1〜実施の形態4に限定されない。特に、発明を実現する装置のハードウェア構成は、例えば、以下のようにしてもよい。
(1)ハウリング検出装置およびハウリング抑制装置の全部または一部は、マイクロプロセッサ、ROM(read only memory)、RAM、ハードディスクユニット等を有するコンピュータシステムにより構成される。この場合、RAMまたはハードディスクユニットには、上記各部の動作と同様の動作を達成するコンピュータプログラムが記憶されている。そして、上記各部の機能は、マイクロプロセッサがコンピュータプログラムに従って動作することにより実現される。
(2)ハウリング検出装置およびハウリング抑制装置の全部または一部は、1つのシステムLSI(large scale integration(大規模集積回路))から構成される。システムLSIは、複数の構成部を1個のチップ上に集積して製造された超多機能LSIであり、具体的には、マイクロプロセッサ、ROM、RAM等を含んで構成されるコンピュータシステムである。この場合、RAMまたはハードディスクユニットには、上記各部の動作と同様の動作を達成するコンピュータプログラムが記憶されている。そして、上記各部の機能は、マイクロプロセッサがコンピュータプログラムに従って動作することにより実現される。
(3)ハウリング検出装置およびハウリング抑制装置の全部または一部は、脱着可能なICカードまたは単体のモジュールから構成される。ICカードまたはモジュールは、マイクロプロセッサ、ROM、RAM等を含んで構成されるコンピュータシステムである。ICカードまたはモジュールは、上記の超多機能LSIを含んで構成されてもよい。これらの場合、上記各部の機能は、マイクロプロセッサがコンピュータプログラムに従って動作することにより実現される。ICカードまたはモジュールは、耐タンパ性を有することが望ましい。
また、本発明のカテゴリは、物の発明に限定されない。すなわち、本発明は、ハウリング検出装置およびハウリング抑制装置そのものではなく、ハウリング検出装置およびハウリング抑制装置において実現される方法および処理の全部または一部と捉えることができる。この場合、本発明は、例えば、以下のような形態を採ることができる。
(4)本発明は、上記方法および処理を実現するコンピュータプログラムから構成される。
(5)本発明は、上記コンピュータプログラムを規定するデジタル信号から構成される。この場合、コンピュータプログラムは、電気通信回線、無線通信回線、有線通信回線、インターネット等のネットワーク、データ放送等を経由して伝送され、伝送元とは独立した他のコンピュータシステムにおいて実行することができる。
(6)本発明は、上述のデジタル信号を記録したコンピュータ読み取り可能な記録媒体に記録したものから構成される。コンピュータ読み取り可能な記録媒体は、例えば、フレキシブルディスク、ハードディスク、CD−ROM、MO(magnet-optics)、DVD(digital video disc)、DVD−ROM、DVD−RAM、BD(blu-ray disc)、半導体メモリ等である。この場合、コンピュータプログラムは、記録媒体の移送により移送され、移送元とは独立した他のコンピュータシステムにおいて実行することができる。
2011年3月9日出願の特願2011−051623の日本出願に含まれる明細書、図面および要約書の開示内容は、すべて本願に援用される。