(57)【要約】  ハウリングの発生をより高い精度で検出することができるハウリング検出装置。ハウリング検出装置（３００）は、入力信号から、所定の時間ごとに、入力信号の信号レベルである入力信号レベルを算出する信号レベル算出部（３１０）と、入力信号レベルから時間とともに所定量漸増あるいは漸減する値である、レベル変動推定値を算出するレベル変動推定値算出部（３２０）と、レベル変動推定値から、レベル変動推定値に応じて変化するレベル閾値を算出する閾値算出部（３３０）と、入力信号レベルがレベル閾値を超えている状態が所定の時間継続したことを条件として、入力信号にハウリングが発生したと判定するハウリング判定部（３４０）とを有する。
2012120815.tif 000002
【特許請求の範囲】
【請求項１】
入力信号から、所定の時間ごとに、前記入力信号の信号レベルである入力信号レベルを算出する信号レベル算出部と、
前記入力信号レベルから時間とともに所定量漸増あるいは漸減する値である、レベル変動推定値を算出するレベル変動推定値算出部と、
前記レベル変動推定値から、前記レベル変動推定値に応じて変化するレベル閾値を算出する閾値算出部と、
前記入力信号レベルが前記レベル閾値を超えている状態が所定の時間閾値を超えて継続したことを条件として、前記入力信号にハウリングが発生したと判定するハウリング判定部と、を有する、
ハウリング検出装置。
【請求項２】
前記レベル変動推定値は、前記入力信号レベルの極小値から所定量漸増する値、前記入力信号レベルの極大値から所定量漸減する値、および、前記入力信号レベルの平均値から所定量漸減あるいは漸増する値、のうちの１つである、
請求項１記載のハウリング検出装置。
【請求項３】
前記レベル変動推定値は、前記入力信号レベルの推移に対応して逐次更新され、かつ、前記所定の時間あたりの更新量が制限された状態で追従する値である、
請求項２記載のハウリング検出装置。
【請求項４】
前記更新量は、増加量を含み、
前記レベル変動推定値算出部は、
前記入力信号レベルの極小値の推移を前記入力信号レベルの推移とし、
前記閾値算出部は、
前記レベル変動推定値に１を超える値を乗じて得られる値、または、前記レベル変動推定値に０を超える値を加算して得られる値を、前記レベル閾値とする、
請求項３記載のハウリング検出装置。
【請求項５】
前記更新量は、減少量を含み、
前記レベル変動推定値算出部は、
前記入力信号レベルの極大値の推移を前記入力信号レベルの推移とし、
前記閾値算出部は、
前記レベル変動推定値の値に０を超え１未満の値を乗じて得られる値、または、前記レベル変動推定値に０を超える値を減算して得られる値を、前記レベル閾値とする、
請求項３記載のハウリング検出装置。
【請求項６】
前記更新量は、増加量を含み、
前記レベル変動推定値算出部は、
前記入力信号レベルの長時間平均の推移を前記入力信号レベルの推移とし、
前記閾値算出部は、
前記レベル変動推定値に１以上の値を乗じて得られる値、または、前記レベル変動推定値に０以上の値を加算して得られる値を、前記レベル閾値とする、
請求項３記載のハウリング検出装置。
【請求項７】
前記レベル変動推定値算出部は、
前記入力信号レベルの立ち上がりにおいて、前記増加量を制限せずに前記レベル変動推定値を前記入力信号レベルに追従させる、
請求項４記載のハウリング検出装置。
【請求項８】
前記入力信号の周波数ピークの有無に基づいて、前記入力信号にハウリングが発生したか否かを判定する周波数ピーク検出部と、
前記ハウリング判定部と前記周波数ピーク検出部との両方で、ハウリングが発生したと判定したことを条件として、前記ハウリングが発生したとの最終判定を行うハウリング総合判定部と、を更に有する、
請求項１記載のハウリング検出装置。
【請求項９】
前記ハウリング総合判定部は、
前記ハウリング判定部が、ハウリングが発生したと判定した時間と、前記周波数ピーク検出部が、ハウリングが発生したと判定した時間との差が所定の範囲内であることを条件として、前記ハウリングが発生したとの最終判定を行う、
請求項８記載のハウリング検出装置。
【請求項１０】
請求項１記載のハウリング検出装置と、
前記ハウリング検出装置が、前記ハウリングが発生したと判定したとき、前記入力信号に対して前記ハウリングを抑制するための処理を行うハウリング抑圧部と、を有する、
ハウリング抑制装置。
【請求項１１】
前記ハウリング抑圧部は、
前記入力信号の音響フィードバック経路の伝達特性に対応する適応フィルタを用いる、
請求項１０記載のハウリング抑制装置。
【請求項１２】
前記ハウリング抑圧部は、
前記入力信号の周波数ピークが発生した周波数帯域のゲインを低減する、
請求項１０記載のハウリング抑制装置。
【請求項１３】
入力信号から、所定の時間ごとに、前記入力信号の信号レベルである入力信号レベルを算出するステップと、
前記入力信号レベルから時間とともに所定量漸増あるいは漸減する値である、レベル変動推定値を算出するステップと、
前記レベル変動推定値から、前記レベル変動推定値に応じて変化するレベル閾値を算出するステップと、
前記入力信号レベルが前記レベル閾値を超えている状態が所定の時間閾値を超えて継続したことを条件として、前記入力信号にハウリングが発生したと判定するステップと、を有する、
ハウリング検出方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ハウリングの発生を検出するハウリング検出装置、ハウリング抑制装置、およびハウリング検出方法に関する。
【背景技術】
【０００２】
マイクロホンに入力された音声を増幅してスピーカから出力する音響装置は、スピーカの出力音がマイクロホンへ回り込む場合に、ハウリングが発生することがある。これは、スピーカとマイクロホンとの間で音響結合が発生し、音響的なフィードバックループが形成されるためである。【０００３】
ハウリング音は、大きい連続音であり、聞く者に不快感を与える。そこで、ハウリング音を抑制するための技術は、各種の手段が存在する。しかし、聞き手がハウリング音の発生を認識する前にハウリング音を高精度かつ高速に検出して抑制することは難しい。【０００４】
ハウリングの発生を検出する技術は、例えば、特許文献１に記載されている。特許文献１に記載の技術（以下「従来技術」という）は、マイクロホンからの入力信号の信号レベルを算出し、算出された信号レベルを、予め定めた閾値と比較する。そして、従来技術は、信号レベルが閾値を超えている状態が所定時間継続したことを条件として、入力信号にハウリングが発生したと判定する。このような技術を用いることにより、ハウリング音は、抑制することができる。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特開平７−２５４８７０号公報
【発明の概要】
【発明が解決しようとする課題】
【０００６】
しかしながら、従来技術では、マイクロホンの音響環境によって、ハウリングを高精度に検出することができないという課題がある。その理由は、周囲に音声や騒音等があるとき、ハウリングが発生していないにもかかわらず信号レベルが閾値を超えてしまい、ハウリングが発生しているとの誤検出が発生し得るからである。また、逆に、このような誤検出を防ぐために高い閾値を設定してしまうと、ハウリングが検出され難くなるからである。【０００７】
本発明の目的は、ハウリングの発生を高精度に検出することである。
【課題を解決するための手段】
【０００８】
本発明のハウリング検出装置は、入力信号から、所定の時間ごとに、前記入力信号の信号レベルである入力信号レベルを算出する信号レベル算出部と、前記入力信号レベルから時間とともに所定量漸増あるいは漸減する値である、レベル変動推定値を算出するレベル変動推定値算出部と、前記レベル変動推定値から、前記レベル変動推定値に応じて変化するレベル閾値を算出する閾値算出部と、前記入力信号レベルが前記レベル閾値を超えている状態が所定の時間継続したことを条件として、前記入力信号にハウリングが発生したと判定するハウリング判定部とを有する。【０００９】
本発明のハウリング検出方法は、入力信号から、所定の時間ごとに、前記入力信号の信号レベルである入力信号レベルを算出するステップと、前記入力信号レベルから時間とともに所定量漸増あるいは漸減する値である、レベル変動推定値を算出するステップと、前記レベル変動推定値から、前記レベル変動推定値に応じて変化するレベル閾値を算出するステップと、前記入力信号レベルが前記レベル閾値を超えている状態が所定の時間継続したことを条件として、前記入力信号にハウリングが発生したと判定するステップとを有する。
【発明の効果】
【００１０】
本発明によれば、ハウリングの発生を高精度に検出することができる。
【図面の簡単な説明】
【００１１】
【図１】本発明の実施の形態１に係るハウリング検出装置の構成の一例を示すブロック図
【図２】本実施の形態１に係るハウリング検出装置の動作の一例を示すフローチャート
【図３】本実施の形態１におけるレベル変動推定値・閾値算出処理の一例を示すフローチャート
【図４】本実施の形態１の変形例１におけるレベル変動推定値・閾値算出処理の一例を示すフローチャート
【図５】本実施の形態１の変形例２におけるレベル変動推定値・閾値算出処理の一例を示すフローチャート
【図６】本実施の形態１の変形例３におけるレベル変動推定値・閾値算出処理の一例を示すフローチャート
【図７】本実施の形態１の変形例３におけるハウリング音に対する各信号の状態の一例を示す図
【図８】本実施の形態１の変形例３における電話着信音に対する各信号の状態の一例を示す図
【図９】本実施の形態１の変形例３における風鈴の音に対する各信号の状態の一例を示す図
【図１０】本発明の実施の形態２に係るハウリング検出装置の構成の一例を示すブロック図
【図１１】本実施の形態２に係るハウリング検出装置の動作の一例を示すフローチャート
【図１２】本実施の形態２における周波数ピーク検出処理の一例を示すフローチャート
【図１３】本発明の実施の形態３に係るハウリング抑制装置の構成を示すブロック図
【図１４】本発明の実施の形態４に係るハウリング抑制装置の構成を示すブロック図
【発明を実施するための形態】
【００１２】
以下、本発明の各実施の形態について、図面を参照して詳細に説明する。
【００１３】
（実施の形態１）
図１は、本実施の形態に係るハウリング検出装置の構成の一例を示すブロック図である。
【００１４】
図１において、ハウリング検出装置１００は、入力端子２００、信号レベル算出部３１０、レベル変動推定値算出部３２０、閾値算出部３３０、ハウリング判定部３４０、および出力端子４００を有する。
【００１５】
入力端子２００は、マイクロホン（図示せず）等の音声信号を出力する機器に接続するための端子である。入力端子２００は、接続するマイクロホンから出力された音声信号を入力し、信号レベル算出部３１０へ出力する。以下、入力端子２００が入力した音声信号は、単に「入力信号」という。
【００１６】
信号レベル算出部３１０は、入力信号から、所定の時間ごとに、入力信号の信号レベルである入力信号レベルを算出する。具体的には、信号レベル算出部３１０は、入力信号の単位時間ごとのパワーあるいは絶対値である入力信号レベルを算出し、レベル変動推定値算出部３２０およびハウリング判定部３４０へ出力する。
【００１７】
レベル変動推定値算出部３２０は、レベル変動推定値を算出し、閾値算出部３３０へ出力する。
【００１８】
ここで、レベル変動推定値は、入力信号レベルから時間とともに所定量漸増あるいは漸減する値である。より具体的には、レベル変動推定値は、例えば、入力信号レベルの極小値から所定量漸増する値、入力信号レベルの極大値から所定量漸減する値、および、入力信号レベルの平均値から所定量漸減あるいは漸増する値のうちの１つである。すなわち、レベル変動推定値は、入力信号レベルの推移に対応して逐次更新され、かつ、所定の時間あたりの更新量（本実施の形態では、増加量とする）が制限された状態で追従する値である。言い換えると、レベル変動推定値は、入力信号レベルの時間的変動の推定値である。
【００１９】
ここでは、レベル変動推定値算出部３２０は、入力信号レベルの極小値の推移を入力信号レベルの推移（入力信号レベルの変動の範囲の推移）として扱うものとする。すなわち、ここでは、入力信号レベルの極小値から時間とともに所定量漸増する値を、レベル変動推定値とした場合について、説明する。
【００２０】
閾値算出部３３０は、レベル変動推定値から、レベル変動推定値に応じて変化する第１の閾値（レベル閾値）を算出し、ハウリング判定部３４０へ出力する。すなわち、レベル変動推定値は、第１の閾値の基準となる基準信号である。
【００２１】
ハウリング判定部３４０は、入力信号レベルが第１の閾値を超えている状態の継続時間を計測する。そして、ハウリング判定部３４０は、計測した継続時間が所定の時間閾値に到達したことを条件として、入力信号にハウリングが発生したと判定する。そして、ハウリング判定部３４０は、判定結果を、ハウリングの検出結果として、出力端子４００へ出力する。
【００２２】
出力端子４００は、アンプ等、上述のマイクロホンに入力された音声を増幅してスピーカから出力するための端子である。出力端子４００は、ハウリングを抑制する機能を有する音響制御装置に対して、ハウリングの検出結果を出力する。
【００２３】
なお、ハウリング検出装置１００は、例えば、ＣＰＵ（central processing unit）、およびＲＡＭ（random access memory）等の記憶媒体などを含むコンピュータである。この場合、ハウリング検出装置１００は、記憶する制御プログラムをＣＰＵが実行することによって動作する。また、信号レベル算出部３１０、レベル変動推定値算出部３２０、閾値算出部３３０、およびハウリング判定部３４０により構成される機能部は、ハウリング検出装置１００に組み込まれたハウリング検出部３００として扱ってもよい。
【００２４】
このようなハウリング検出装置１００は、入力信号レベルの極小値から時間とともに所定量漸増する値である、レベル変動推定値を算出する。そして、ハウリング検出装置１００は、このレベル変動推定値に応じて変化する閾値を超えている状態が、所定の時間閾値を超えて継続したか否かに基づいて、ハウリング判定を行う。これにより、ハウリング検出装置１００は、騒音のレベルによらずハウリングの誤検出および不検出の両方を低減することができる。
【００２５】
その理由は以下の通りである。ハウリングは発生すると、突出したレベルで持続する。以下、このような、ハウリングの特徴として見られる入力信号レベルの状態は「ハウリング状態」といい、ハウリング状態の区間は「ハウリング区間」という。また、ハウリング音と区別すべき音として、日常生活において一般的に存在する各種音は、「騒音」という。そして、騒音が発生している状態は、「騒音状態」という。
【００２６】
上述の第１の閾値は、入力信号レベルの極小値の推移に追従するレベル変動推定値に基づき、推移する。入力信号レベルの極小値は、騒音が大きいとき大きくなる。したがって、このような第１の閾値との比較によるハウリング判定は、騒音をハウリングと誤検出する可能性を低減することができる。
【００２７】
ところが、このようなハウリング判定は、ハウリングを検出し損なう可能性を増大させ得る。そこで、レベル変動推定値算出部３２０は、上述のように、入力信号レベルの変動の範囲に対応するレベル変動推定値を算出する。具体的には、レベル変動推定値算出部３２０は、入力信号レベルの極小値から時間とともに所定量漸増するレベル変動推定値、つまり、入力信号レベルの増加に対する低い追従性を有するレベル変動推定値を生成する。
【００２８】
ハウリング区間においては、入力信号レベルは、上述の通り突出したレベルで持続するため、所定の時間、最大値に近い値を持続する。そこで、本実施の形態に係るハウリング検出装置１００は、レベル変動推定値に対して入力信号レベルが小さければ、レベル変動推定値を入力信号レベルの値に置き換える。また、ハウリング検出装置１００は、レベル変動推定値に対して入力信号レベルが大きければ、レベル変動推定値を緩やかに上昇させる。このようなレベル変動推定値の特性は、ハウリング区間において、入力信号レベルの変動の範囲の最大値よりも常に小さくなるような変動閾値を設定することを可能にし、ハウリングを検出し損なう可能性を低減することができる。
【００２９】
ところが、このようなハウリング判定は、入力信号レベルの大きい騒音をもハウリングと誤検出してしまうおそれがある。そこで、ハウリング判定部３４０は、上述のように、入力信号レベルが第１の閾値を超えている状態が所定の時間閾値を超えて継続して初めて、入力信号にハウリングが発生したと判定する。騒音の多くは、一時的または断続的に入力信号レベルが大きくなるものであって、ハウリング音のように突出したレベルで持続するものではない。したがって、ハウリング検出装置１００は、このようなハウリング判定を行うことにより、ハウリングの誤検出および不検出の両方を低減することができる。
【００３０】
次に、ハウリング検出装置１００の動作について説明する。
【００３１】
図２は、ハウリング検出装置１００の動作の一例を示すフローチャートである。
【００３２】
まず、ステップＳ１１００において、信号レベル算出部３１０は、入力信号から入力信号レベルを算出する。信号レベル算出部３１０は、１サンプルごと（例えば１６［ｋＨｚ］サンプリング＝０.０６２５［ｍｓ］ごと）またはフレーム（複数サンプル）ごとに、入力信号のパワーあるいは絶対値を求めることにより、入力信号レベルの算出を行う。したがって、ハウリング検出装置１００は、ステップＳ１１００からステップＳ２０００までの処理を、所定のサンプリングタイムごとに、繰り返して行う。
【００３３】
そして、ステップＳ１２００において、レベル変動推定値算出部３２０は、レベル変動推定値・閾値算出処理を行う。レベル変動推定値・閾値算出処理は、ここでは、入力信号レベルの極小値に追従するレベル変動推定値を算出する処理である。
【００３４】
図３は、ステップＳ１２００のレベル変動推定値・閾値算出処理の一例を示すフローチャートである。
【００３５】
ステップＳ１２１０において、レベル変動推定値算出部３２０は、現在の周期で算出された入力信号レベルが、１つ前の周期で算出されたレベル変動推定値（以下、単に「レベル変動推定値」という）を超えているか否かを判断する。なお、現在の周期で算出された入力信号レベルは、以下、単に「入力信号レベル」という。レベル変動推定値算出部３２０は、入力信号レベルがレベル変動推定値を超えている場合（Ｓ１２１０：ＹＥＳ）、ステップＳ１２２０へ進む。また、レベル変動推定値算出部３２０は、入力信号レベルがレベル変動推定値を超えていない場合、または、最初の周期であってまだレベル変動推定値が算出されていない場合（Ｓ１２１０：ＮＯ）、ステップＳ１２３０へ進む。
【００３６】
ステップＳ１２２０において、レベル変動推定値算出部３２０は、レベル変動推定値に対して予め定めた第１の係数を乗じることにより得られる値でレベル変動推定値を更新して、ステップＳ１２４０へ進む。
【００３７】
ここで、第１の係数は、入力信号レベルの極小値をトレース可能な程度の値であり、１を超える値である。すなわち、第１の係数は、入力信号レベルが大きい状態が継続している場合の、レベル変動推定値の増加の度合い（傾き）を決めるものである。
【００３８】
より具体的には、第１の係数は、レベル変動推定値を、電車の走行音の場合のような緩やかな入力信号レベルの増加に対しては、ほぼリアルタイムに追従させる値である。そして、なおかつ、第１の係数は、レベル変動推定値を、ハウリング音の場合のような急激な入力信号レベルの増加に対しては、遅れて追従させるような値である。第１の係数は、本実施の形態では、実験に基づいて決定された値とする。
【００３９】
なお、レベル変動推定値算出部３２０は、レベル変動推定値に対して予め定めた定数を加算した値で、レベル変動推定値を更新してもよい。この場合、第１の係数は、０を超える値である。
【００４０】
ステップＳ１２３０において、レベル変動推定値算出部３２０は、入力信号レベルでレベル変動推定値を更新して、ステップＳ１２４０へ進む。
【００４１】
ステップＳ１２４０において、閾値算出部３３０は、更新されたレベル変動推定値に対して予め定めた第２の係数を乗じることにより得られる値を、第１の閾値として算出して、図２の処理へ戻る。ここで、第２の係数は、１を超える値である。そして、なおかつ、第２の係数は、第１の係数により定まるレベル変動推定値の入力信号レベル推移に対する追従性において、ハウリング区間の少なくとも初期には入力信号レベルが第１の閾値以下とならないような値である。
【００４２】
そして、図２のステップＳ１４００において、ハウリング判定部３４０は、入力信号レベルが第１の閾値を超えているか否かを判定する。ハウリング判定部３４０は、入力信号レベルが第１の閾値を超えている場合（Ｓ１４００：ＹＥＳ）、ステップＳ１５００へ進む。また、ハウリング判定部３４０は、入力信号レベルが第１の閾値を超えていない場合（Ｓ１４００：ＮＯ）、ステップＳ１６００へ進む。
【００４３】
ステップＳ１５００において、ハウリング判定部３４０は、第１のカウンタ値をインクリメントして、ステップＳ１７００へ進む。
【００４４】
ステップＳ１６００において、ハウリング判定部３４０は、第１のカウンタ値をリセットして、ステップＳ１７００へ進む。
【００４５】
上述の通り、ハウリング検出装置１００は、各処理を所定のサンプリングタイムごとに繰り返して行うため、第１のカウンタ値は、入力信号レベルが連続して第１の閾値を超えている時間の長さを示す。例えば、サンプリングタイムが０.０６２５［ｍｓ］である場合、１６００という第１のカウンタ値は、１００［ｍｓ］の間連続して入力信号レベルが第１の閾値を超えていることを示す。
【００４６】
ステップＳ１７００において、ハウリング判定部３４０は、第１のカウンタ値が、予め定めた第２の閾値（時間閾値）を超えているか否かを判断する。
【００４７】
ここで、第２の閾値は、第１の係数および第２の係数により定まる第１の閾値の入力信号レベル推移に対する追従性において、ハウリング区間の初期に入力信号レベルが連続して第１の閾値を超える最小時間よりも短い時間に対応する値である。そして、なおかつ、第２の閾値は、上記追従性において、騒音を含む入力信号レベルが連続して第１の閾値を超える最大時間よりも長い時間に対応する値である。第２の閾値は、例えば、０.５秒〜１秒に相当する値である。
【００４８】
なお、ハウリング音を検出し騒音を検出しないような、第１の係数、第２の係数、および第２の閾値の組み合わせは、本実施の形態では、様々な騒音環境について実験やシミュレーションを行うことで求めるものとする。
【００４９】
ハウリング判定部３４０は、第１のカウンタ値が第２の閾値を超えている場合（Ｓ１７００：ＹＥＳ）、ステップＳ１８００へ進む。また、ハウリング判定部３４０は、第１のカウンタ値が第２の閾値を超えていない場合（Ｓ１７００：ＮＯ）、ステップＳ１９００へ進む。
【００５０】
ステップＳ１８００において、ハウリング判定部３４０は、ハウリングが発生したと判定する。そして、ハウリング判定部３４０は、ハウリングが発生した旨を示す判定結果を、出力端子４００を介して出力して、ステップＳ２０００へ進む。これは、入力信号レベルが大きい状態が時間的に十分に継続したといえるからである。
【００５１】
ステップＳ１９００において、ハウリング判定部３４０は、ハウリングが発生していないと判定し、そのままステップＳ２０００へ進む。これは、入力信号レベルが大きい状態が発生していない、または、発生していたとしても時間的にまだ十分に継続していないといえるからである。
【００５２】
なお、ハウリング判定部３４０は、ハウリングが発生していない旨を示す判定結果を、出力端子４００を介して出力してもよい。ここでは、ハウリング判定部３４０は、ハウリングが発生していない状態からハウリングが発生している状態へ移行するごとに、ハウリングが発生していることを示す検出フラグをオンにするものとする。そして、ハウリング判定部３４０は、ハウリングが発生している状態からハウリングが発生していない状態へ移行するごとに、検出フラグをオフにするものとする。
【００５３】
そして、ステップＳ２０００において、信号レベル算出部３１０は、ユーザ操作等によりハウリング判定の処理の停止を指示されたか否かを判断する。信号レベル算出部３１０は、処理の終了を指示されていない場合（Ｓ２０００：ＮＯ）、ステップＳ１１００へ戻り、次の周期の処理を行う。また、信号レベル算出部３１０は、処理の指示を指示された場合（Ｓ２０００：ＹＥＳ）、一連の処理を終了する。
【００５４】
上述の処理により、ハウリング検出装置１００は、１つ前の周期の入力信号に基づいて第１の閾値を取得し、入力信号レベルがこれを超えている状態が所定の時間継続したか否かに基づいて、ハウリングの発生を判定することができる。
【００５５】
以上、説明したように、本実施の形態に係るハウリング検出装置１００は、入力信号レベルの極小値から時間とともに所定量漸増する値である、レベル変動推定値を算出する。次に、ハウリング検出装置１００は、算出したレベル変動推定値に応じて変化する閾値を超えている状態が所定の時間閾値を超えて継続したか否かに基づいて、ハウリング判定を行う。これにより、ハウリング検出装置１００は、騒音のレベルによらずハウリングの誤検出および不検出の両方を低減することができる。
【００５６】
上述のように、従来装置は、予め定めた閾値を用いて閾値判定を行っており、そのハウリング発生の判定は、レベル依存するようになっている。そのため、従来装置を用いて騒音環境下でも安定して判定を行うためには、ハウリングのみを精度良く検出するよう、音響環境にあわせて逐一閾値を調整する必要がある。
【００５７】
これに対し、本実施の形態に係るハウリング検出装置１００は、ハウリング検出用の閾値を逐一調整することなく、かつ、ハウリングの誤検出および不検出の両方を低減することができる。したがって、本実施の形態に係るハウリング検出装置１００は、騒音環境下でも安定してハウリングを検出することができ、従来技術に比べてハウリングの発生をより高精度に検出することができる。
【００５８】
なお、入力信号レベルの変動の範囲を表す情報として扱われる値は、入力信号レベルの極小値に限定されない。以下、変形例として、レベル変動推定値を入力信号レベルの極小値以外の値の推移から求める場合のレベル変動推定値・閾値算出処理について説明する。
【００５９】
（実施の形態１の変形例１）
実施の形態１の変形例１は、レベル変動推定値を入力信号レベルの極大値の推移から求める場合の例である。すなわち、本変形例は、入力信号レベルの極大値から時間とともに所定量漸減する値を、レベル変動推定値として算出する例である。
【００６０】
図４は、本変形例におけるレベル変動推定値・閾値算出処理の一例を示すフローチャートであり、図３に対応するものである。
【００６１】
レベル変動推定値算出部３２０は、入力信号レベルを入力されると（図２のステップＳ１１００）、ステップＳ１２１０ａへ進む。
【００６２】
ステップＳ１２１０ａにおいて、レベル変動推定値算出部３２０は、入力信号レベルがレベル変動推定値未満となっているか否かを判断する。レベル変動推定値算出部３２０は、入力信号レベルがレベル変動推定値未満となっている場合（Ｓ１２１０ａ：ＹＥＳ）、ステップＳ１２２０ａへ進む。また、レベル変動推定値算出部３２０は、入力信号レベルがレベル変動推定値未満となっていない場合、または、最初の周期であってまだレベル変動推定値が算出されていない場合（Ｓ１２１０ａ：ＮＯ）、ステップＳ１２３０ａへ進む。
【００６３】
ステップＳ１２２０ａにおいて、レベル変動推定値算出部３２０は、レベル変動推定値に対して予め定めた第３の係数を乗じることにより得られる値でレベル変動推定値を更新して、図２の処理へ戻る。ここで、第３の係数は、レベル変動推定値を、ハウリング音の緩やかな入力信号レベルの減少に対しては、ほぼリアルタイムに追従させ、電車の騒音の立ち下がり部分等の入力信号レベルの減衰に対しては、遅れて追従させるような値である。
【００６４】
なお、レベル変動推定値算出部３２０は、レベル変動推定値に対して予め定めた定数を減算した値で、レベル変動推定値を更新してもよい。この場合、第３の係数は、０を超える値である。
【００６５】
ステップＳ１２３０ａにおいて、レベル変動推定値算出部３２０は、入力信号レベルでレベル変動推定値を更新して、ステップＳ１２４０ａへ進む。
【００６６】
ステップＳ１２４０ａにおいて、閾値算出部３３０は、更新されたレベル変動推定値に対して予め定めた第４の係数を乗じることにより得られる値を、第１の閾値として算出して、図２の処理へ戻る。ここで、第４の係数は、０を超え１未満の値である。そして、第４の係数は、なおかつ、第３の係数により定まるレベル変動推定値の入力信号レベル推移に対する追従性において、ハウリング区間の少なくとも直後には入力信号レベルが第１の閾値以上とならないような値である。
【００６７】
また、ステップＳ１７００で用いられる第２の閾値は、第１の係数および第３の係数により定まる第１の閾値の入力信号レベル推移に対する追従性において、ハウリング音と騒音とを峻別することができるような値である。
【００６８】
このように、ハウリング検出装置１００は、入力信号レベルの極大値に基づいて、入力信号レベルの推移に遅れて追従するような第１の閾値を算出することができる。
【００６９】
特に、ハウリング検出装置１００は、入力信号レベルの減少に対して遅れて追従するような第１の閾値を算出する。これにより、ハウリング検出装置１００は、電車の騒音の立ち下がり部分等の緩やかな入力信号レベルの減衰において、ハウリングが発生したとの誤検出を防ぐことができる。すなわち、ハウリング検出装置１００は、ハウリングが突出したレベルで持続することから、入力信号レベルの包絡線情報（大きさと時間推移）に応じて検出閾値を逐次算出する。
【００７０】
これにより、ハウリング検出装置１００は、ハウリング検出用の閾値を逐一調整することなく、かつ、ハウリングの誤検出および不検出の両方を低減することができる。
【００７１】
（実施の形態１の変形例２）
実施の形態１の変形例２は、入力信号レベルの長時間平均値の推移を、入力信号レベルの推移として扱う場合の例である。すなわち、本変形例は、入力信号レベルの平均値から時間とともに所定量漸増あるいは漸減する値を、レベル変動推定値として算出する例である。
【００７２】
図５は、本変形例におけるレベル変動推定値・閾値算出処理の一例を示すフローチャートであり、図３に対応するものである。
【００７３】
レベル変動推定値算出部３２０は、入力信号レベルを入力されると（図２のステップＳ１１００）、ステップＳ１２１０ｂへ進む。
【００７４】
ステップＳ１２１０ｂにおいて、レベル変動推定値算出部３２０は、入力信号レベルの時系列データに対して平滑化処理を行う。そして、レベル変動推定値算出部３２０は、平滑化処理により得られる値でレベル変動推定値を更新する。平滑化処理により得られる値は、入力信号レベルの長時間平均値である。なお、まだ長時間平均値を算出するのに充分な周期が経過していない間は、レベル変動推定値算出部３２０は、予め定めた初期値をレベル変動推定値に設定するようにしてもよい。
【００７５】
なお、平滑化後の、現在の周期ｋにおけるレベル変動推定値Ｎ（ｋ）は、例えば、以下の式（１）に示す移動平均の算出を行うことにより可能である。
Ｎ（ｋ）＝（１−α）×Ｘ（ｋ）＋α×Ｎ（ｋ−１）      ・・・（１）
【００７６】
ここで、Ｘ（ｋ）は、現在の周期ｋにおける入力信号レベルである。Ｎ（ｋ−１）は、１つ前の周期ｋ−１におけるレベル変動推定値である。また、αは、入力信号レベルの平均値をトレース可能な程度の値であり、０＜＜α＜１の関係を満たす忘却係数である。より具体的には、αは、レベル変動推定値を、電車の騒音等の緩やかな更新量での入力信号レベルの変化に対して、ほぼリアルタイムに追従させる。つまり、αは、ハウリング音の急激な更新量での入力信号レベルの変化に対して、遅れて追従させるような値である。
【００７７】
そして、ステップＳ１２４０ｂにおいて、閾値算出部３３０は、更新されたレベル変動推定値に対して予め定めた第５の係数を乗じることにより得られる値を、第１の閾値として算出して、図２の処理へ戻る。
【００７８】
ここで、第５の係数は、忘却係数αにより定まるレベル変動推定値の入力信号レベル推移に対する追従性において、ハウリング区間の少なくとも初期には入力信号レベルが第１の閾値以下とならないような値である。第５の係数は、例えば１であり、この場合、閾値算出部３３０は、レベル変動推定値をそのまま第１の閾値とする。
【００７９】
なお、閾値算出部３３０は、レベル変動推定値に第５の係数として１以上の値を乗じて得られる値、または、レベル変動推定値に予め定めた０以上の定数を加算して得られる値を、第１の閾値としてもよい。
【００８０】
このように、ハウリング検出装置１００は、入力信号レベルの長時間平均値に基づいて、入力信号レベルの推移に対して遅れて追従するような第１の閾値を算出することができる。
【００８１】
（実施の形態１の変形例３）
実施の形態１の変形例３は、騒音の開始時の入力信号レベルの立ち上がりに対して、レベル変動推定値をほぼリアルタイムに追従させるようにする場合の例である。
【００８２】
図６は、本変形例におけるレベル変動推定値・閾値算出処理の一例を示すフローチャートであり、図３に対応するものである。
【００８３】
ハウリング検出装置１００は、レベル変動推定値を更新すると（ステップＳ１２１０〜Ｓ１２３０）、ステップＳ１２３１ｃへ進む。
【００８４】
ステップＳ１２３１ｃにおいて、レベル変動推定値算出部３２０は、入力信号レベルを入力されると（図２のステップＳ１１００）、レベル変動推定値が予め定めた第３の閾値未満となっているか否かを判断する。
【００８５】
ここで、第３の閾値は、０以上の値であり、例えば、静かな音響環境下における騒音レベルに相当する値である。
【００８６】
レベル変動推定値算出部３２０は、レベル変動推定値が第３の閾値未満となっている場合（Ｓ１２３１ｃ：ＹＥＳ）、ステップＳ１２３２ｃへ進む。また、レベル変動推定値算出部３２０は、レベル変動推定値が第３の閾値未満となっていない場合、または、最初の周期であってまだレベル変動推定値が算出されていない場合（Ｓ１２３１ｃ：ＮＯ）、ステップＳ１２３３ｃへ進む。
【００８７】
ステップＳ１２３２ｃにおいて、レベル変動推定値算出部３２０は、第２のカウンタ値をインクリメントして、ステップＳ１２３４ｃへ進む。
【００８８】
ステップＳ１２３３ｃにおいて、レベル変動推定値算出部３２０は、第２のカウンタ値をリセットして、ステップＳ１２３４ｃへ進む。
【００８９】
すなわち、第２のカウンタ値は、レベル変動推定値が第３の閾値を超えない状態の継続時間を示す値となる。
【００９０】
そして、ステップＳ１２３４ｃにおいて、レベル変動推定値算出部３２０は、第２のカウンタ値が予め定めた第４の閾値を超えたか否かを判断する。
【００９１】
ここで、第４の閾値は、例えば、０.１秒〜０.５秒に相当する値であり、騒音レベルが小さくマイクロホンへの入力信号もないほぼ無音の状態が継続しているか判断するための値を設定する。
【００９２】
レベル変動推定値算出部３２０は、第２のカウンタ値が第４の閾値を超えた場合（Ｓ１２３４ｃ：ＹＥＳ）、ステップＳ１２３５ｃへ進む。また、レベル変動推定値算出部３２０は、第２のカウンタ値が第４の閾値を超えていない場合（Ｓ１２３４ｃ：ＮＯ）、そのままステップＳ１２４０へ進み、図２の処理へ戻る。
【００９３】
ステップＳ１２３５ｃにおいて、レベル変動推定値算出部３２０は、レベル変動推定値を初期化、つまりレベル変動推定値を入力信号レベルに一致させて、ステップＳ１２４０へ進み、図２の処理へ戻る。
【００９４】
すなわち、レベル変動推定値は、レベル変動推定値が第３の閾値を超えない状態が所定の時間閾値を超えて継続している場合には、予め定めた所定の時間、入力信号レベルに追従させる状態となる。これは、入力信号レベルが小さな状態から急激に大きくなったときに、第１の閾値の基となるレベル変動推定値がこれに追従していないと、ハウリングが発生したとの誤判定が成される可能性があるからである。
【００９５】
このようなレベル変動推定値・閾値算出処理により、ハウリング検出装置１００は、レベル変動推定値を、入力信号レベルの立ち上がりにおいてはほぼリアルタイムに追従させつつ、その後は遅れて追従させるようにすることができる。
【００９６】
これにより、ハウリング検出装置１００は、電話着信音のようにその開始時に急激に入力信号レベルが増加する騒音を、ハウリング音と誤検出するのを防ぎつつ、ハウリング音を検出することができる。したがって、ハウリング検出装置１００は、ハウリング検出を更に高精度化することができる。
【００９７】
次に、変形例３に係るハウリング検出装置１００において、ハウリングの発生を高精度に検出することができることについて説明する。
【００９８】
ここでは、ハウリング音が含まれる第１の入力信号と、電話着信音が含まれる第２の入力信号と、風鈴の音が含まれる第３の入力信号とを想定する。
【００９９】
図７は、ハウリング音が含まれる第１の入力信号の場合における各信号の状態の一例を示す図である。図７Ａは、入力信号の時間推移を示す。図７Ｂは、入力信号レベル、レベル変動推定値、および第１の閾値の時間推移を示す。図７Ｃは、第１のカウンタ値の時間推移を示す。図７Ｄは、検出フラグおよび初期化フラグの時間推移を示す。ここで、初期化フラグとは、レベル変動推定値を初期化する状態にあるか否かを表すためのものである。
【０１００】
第１の入力信号９１１において、５秒目から１０秒目の区間は、ハウリング区間である。図７Ａに示すように、第１の入力信号９１１は、ハウリング区間においてその振幅が大きくなっている。したがって、図７Ｂに示すように、入力信号レベル９１２は、ハウリング区間においてレベルが大きい状態を維持する（Ｓ１２１０：ＹＥＳ）。
【０１０１】
すると、図７Ｂに示すように、レベル変動推定値９１３は、ハウリング区間において徐々に大きくなっていき（Ｓ１２２０）、第１の閾値９１４も徐々に大きくなっていく（Ｓ１２４０）。
【０１０２】
第１の閾値９１４が入力信号レベル９１２に到達する時刻ｔｌまでの間、入力信号レベル９１２は第１の閾値９１４を超えていると判定され続ける（Ｓ１４００：ＹＥＳ）。その結果、第１のカウンタ値９１５は、徐々に増加していく（Ｓ１５００）。
【０１０３】
そして、図７Ｃに示すように、第１のカウンタ値９１５が時刻ｔｌの前の時刻ｔｃに第２の閾値９０１を超えると（Ｓ１７００：ＹＥＳ）、図７Ｄに示すように、検出フラグ９１６はオンとなる（Ｓ１８００）。また、第１の閾値９１４が入力信号レベル９１２に到達する時刻ｔｌを過ぎると（Ｓ１４００：ＮＯ）、第１のカウンタ値９１５は、リセットされて第２の閾値９０１以下となる（Ｓ１６００、Ｓ１７００：ＮＯ）。
【０１０４】
この結果、図７Ｄに示すように、検出フラグ９１６は、オフとなる（Ｓ１９００）。
【０１０５】
なお、この例では、レベル変動推定値９１３は継続して第３の閾値未満にはなっていないものとする（Ｓ１２３１ｃ：ＮＯ）。この場合、図７Ｃに示すように、第２のカウンタ値９１７は、増加せず（Ｓ１２３３ｃ）、第４の閾値９０３を超えない（Ｓ１２３４ｃ：ＮＯ）。
【０１０６】
この結果、図７Ｄに示すように、初期化フラグ９１８は、オフの状態を維持する。
【０１０７】
図８は、電話着信音は含まれるがハウリング音は含まれない第２の入力信号における、各信号の状態の一例を示す図であり、図７に対応するものである。
【０１０８】
第２の入力信号９２１において、時刻ｔ１から時刻ｔ２までの区間は、電話着信音が鳴っている区間（以下「着信音区間」という）である。
【０１０９】
図８Ａに示すように、電話着信音は連続音ではないため、第２の入力信号９２１の振幅は、着信音区間において、大きい状態と小さい状態とを短い周期で交互に繰り返す。したがって、図８Ｂに示すように、着信音区間において、入力信号レベル９２２が第１の閾値９２４を超えているとの判定と、超えていないとの判定とが、短い周期で交互に繰り返される（Ｓ１４００：ＮＯ）。
【０１１０】
この結果、図８Ｃに示すように、第１のカウンタ値９２５は増加せず（Ｓ１６００）、第１のカウンタ値９２５が第２の閾値９０１を超えることはない（Ｓ１７００：ＮＯ）。
【０１１１】
ところが、レベル変動推定値９２３が、時刻ｔ１の第２の入力信号９２１の立ち上がりに伴う入力信号レベル９２２の立ち上がりに追従するまでの間は、入力信号レベル９２２は、レベル変動推定値９２３を超えた状態となる。したがって、レベル変動推定値９２３の入力信号レベル９２２の立ち上がりに対する追従が遅いと、ハウリング発生との誤検出がされてしまうおそれがある。
【０１１２】
そこで、上述の初期化により、図８Ｄに示すように、初期化フラグ９２８は、入力信号レベル９２２の立ち上がりの時刻ｔ１まではオンの状態となる。すなわち、図８Ｂに示すように、レベル変動推定値９２３および第１の閾値９２４は、入力信号レベル９２２の立ち上がりに素早く追従する。
【０１１３】
そして、その後は、初期化フラグ９２８は、レベル変動推定値９２３が第３の閾値未満である状態が継続しないことから、オフの状態となる。すなわち、レベル変動推定値９２３は、急激な入力信号レベルの増加に対し遅れて追従する。
【０１１４】
したがって、図８Ｄに示すように、第２の入力信号９２１の立ち上がり時を含め、検出フラグ９２６は常にオフとなる（Ｓ１９００）。
【０１１５】
このように、本実施の形態に係るハウリング検出装置１００においては、電話着信音のように断続的に入力信号レベルが大きくなる騒音は、ハウリング音として誤検出されない。
【０１１６】
図９は、風鈴の音は含まれるがハウリング音は含まれない第３の入力信号における、各信号の状態の一例を示す図であり、図７に対応するものである。
【０１１７】
第３の入力信号９３１において、風鈴の音が鳴っている区間が連続しているものとする。図９Ａに示すように、第３の入力信号９３１の振幅は、風鈴の音が開始する時刻ｔ３には大きいが、速やかに減衰し、図９Ｂに示すように、入力信号レベル９３２も短時間のうちに低い状態へ推移する（Ｓ１２１０：ＮＯ）。
【０１１８】
つまり、図９Ｂに示すように、入力信号レベル９３２は、時刻ｔ３の直後に、レベル変動推定値９３３に基づいて算出される第１の閾値９３４を超えていても（Ｓ１４００：ＹＥＳ）、すぐに第１の閾値９３４以下となる（Ｓ１４００：ＮＯ）。したがって、図９Ｃに示すように、第１のカウンタ値９３５は、時刻ｔ３の直後には増加しても（Ｓ１５００）、すぐにリセットされることになる（Ｓ１６００）。
【０１１９】
この結果、第１のカウンタ値９３５は第２の閾値９０１に到達することはなく（Ｓ１７００：ＮＯ）、図９Ｄに示すように、検出フラグ９３６はオフの状態を維持する。
【０１２０】
なお、この例では、レベル変動推定値９３３は継続して第３の閾値未満にはなっていないものとする（Ｓ１２３１ｃ：ＮＯ）。この場合、図９Ｃに示すように、第２のカウンタ値９３７は、増加せず（Ｓ１２３３ｃ）、第４の閾値９０３を超えない（Ｓ１２３４ｃ：ＮＯ）。この結果、図９Ｄに示すように、初期化フラグ９３８はオフの状態を維持する。
【０１２１】
このように、本実施の形態に係るハウリング検出装置１００においては、風鈴の音のように入力信号レベルの減衰が速い騒音は、ハウリング音として誤検出されない。
【０１２２】
（実施の形態２）
本発明の実施の形態２は、入力信号の周波数ピークを用いてハウリング検出の精度を向上させるようにしたハウリング検出装置である。
【０１２３】
図１０は、本実施の形態に係るハウリング検出装置の構成の一例を示すブロック図であり、実施の形態１の図１に対応するものである。図１と同一部分には、同一符号を付し、これについての説明を省略する。
【０１２４】
図１０において、本実施の形態に係るハウリング検出装置１００ｄは、入力端子２００、実施の形態１のハウリング検出部３００、周波数ピーク検出部５００ｄ、ハウリング総合判定部６００ｄ、および出力端子４００を有する。
【０１２５】
本実施の形態では、入力端子２００は、入力信号を、ハウリング検出部３００だけでなく、周波数ピーク検出部５００ｄへも出力する。また、ハウリング検出部３００は、ハウリングの検出結果を、出力端子４００ではなく、ハウリング総合判定部６００ｄへ、第１の判定結果として出力する。
【０１２６】
周波数ピーク検出部５００ｄは、入力信号の周波数ピークの有無に基づいて、入力信号にハウリングが発生したか否かを判定する。周波数ピーク検出部５００ｄは、周波数分析部５１０ｄ、レベル算出部５２０ｄ、平均レベル算出部５３０ｄ、レベル比算出部５４０ｄ、およびハウリング判定部５５０ｄを有する。
【０１２７】
周波数分析部５１０ｄは、入力信号を、周波数帯域を複数に分割した分割帯域ごとの周波数成分に変換または分割し、各分割帯域の周波数成分（以下、単に「周波数成分」という）を、レベル算出部５２０ｄへ出力する。
【０１２８】
入力信号の各周波数成分への変換または分割の手法としては、時間信号を複数の周波数成分に変換または分割する公知の各種手法を用いることができる。公知の手法は、例えば、高速フーリエ変換、または、複数のＦＩＲ（finite impulse response）、ＩＩＲ（infinite impulse response）フィルタから構成されるフィルタバンクなどを含む。
【０１２９】
レベル算出部５２０ｄは、変換または分割した各周波数成分ごとに、単位時間ごとのパワーあるいは絶対値である入力信号レベルを算出する。レベル算出部５２０ｄは、算出した周波数成分ごとの入力信号レベルを、平均レベル算出部５３０ｄおよびレベル比算出部５４０ｄへ出力する。
【０１３０】
平均レベル算出部５３０ｄは、複数の周波数成分の入力信号レベルの平均値を算出し、算出した平均値を、平均レベルとしてレベル比算出部５４０ｄへ出力する。
【０１３１】
レベル比算出部５４０ｄは、複数の周波数成分の入力信号レベルのそれぞれについて、平均レベルに対する比（以下「レベル比」という）を算出し、算出した周波数成分ごとのレベル比を、ハウリング判定部５５０ｄへ出力する。
【０１３２】
ハウリング判定部５５０ｄは、各周波数成分のレベル比に基づいて、入力信号にハウリングが発生したか否かを判定し、第２の判定結果を、ハウリングの検出結果として、ハウリング総合判定部６００ｄへ出力する。
【０１３３】
ハウリング総合判定部６００ｄは、第１の判定結果と第２の判定結果との両方が、ハウリングが発生したとの判定結果を示すことを条件として、ハウリングが発生したとの最終判定結果を出力端子４００へ出力する。
【０１３４】
このようなハウリング検出装置１００ｄは、ハウリング検出部３００による判定結果と周波数ピーク検出部５００ｄによる判定結果とを総合した結果を最終判定結果とするので、ハウリング検出の精度を向上させることができる。
【０１３５】
なお、ハウリング検出装置１００ｄは、入力端子２００および出力端子４００を除いた構成としてもよい。
【０１３６】
次に、本実施の形態に係るハウリング検出装置１００ｄの動作について説明する。
【０１３７】
図１１は、ハウリング検出装置１００ｄの動作の一例を示すフローチャートであり、実施の形態１の図２に対応するものである。図２と同一部分には同一ステップ番号を付し、これについての説明を省略する。
【０１３８】
ハウリング検出部３００のハウリング判定部３４０は、第１のカウンタ値が第２の閾値を超えている場合（Ｓ１７００：ＹＥＳ）、ステップＳ１８００ｄへ進む。そして、ステップＳ１８００ｄにおいて、ハウリング判定部３４０は、ハウリングが発生したとの第１の判定結果を、ハウリング総合判定部６００ｄへ出力する。
【０１３９】
また、ハウリング検出部３００のハウリング判定部３４０は、第１のカウンタ値が第２の閾値を超えていない場合（Ｓ１７００：ＮＯ）、ステップＳ１９００ｄへ進む。そして、ステップＳ１９００ｄにおいて、ハウリング判定部３４０は、ハウリングが発生していないとの第１の判定結果を、ハウリング総合判定部６００ｄへ出力する。
【０１４０】
そして、ステップＳ１９１０ｄにおいて、周波数ピーク検出部５００ｄは、周波数ピーク検出処理を行う。周波数ピーク検出処理は、入力信号の周波数ピークの有無に基づいて、入力信号にハウリングが発生したか否かを判定する処理である。
【０１４１】
なお、周波数ピーク検出部５００ｄは、ハウリング検出部３００による第１の判定までの処理（Ｓ１１００〜Ｓ１９００ｄ）に対して、これよりも前に、または同時に、周波数ピーク検出処理を行ってもよい。この場合にも、周波数ピーク検出部５００ｄは、ハウリング検出部３００の判定の周期と同じ周期で、つまり、１サンプルごとまたはフレーム（複数サンプル）ごとに、周波数ピーク検出処理を行うようにする。
【０１４２】
図１２は、周波数ピーク検出処理の一例を示すフローチャートである。
【０１４３】
まず、ステップＳ１９１１ｄにおいて、周波数分析部５１０ｄは、入力信号から、複数の分割帯域のそれぞれについて、周波数成分を抽出する。
【０１４４】
そして、ステップＳ１９１２ｄにおいて、レベル算出部５２０ｄは、複数の周波数成分から、周波数成分ごとに、その周波数成分の入力信号レベルを算出する。
【０１４５】
そして、ステップＳ１９１３ｄにおいて、平均レベル算出部５３０ｄは、複数の周波数成分の入力信号レベルから、その平均レベルを算出する。なお、このとき、平均レベル算出部５３０ｄは、複数の周波数成分の入力信号レベルに対して重み付けを行って、平均レベルを算出するようにしてもよい。
【０１４６】
そして、ステップＳ１９１４ｄにおいて、レベル比算出部５４０ｄは、複数の周波数成分の入力信号レベルおよび平均レベルから、周波数成分ごとに、レベル比を算出する。
【０１４７】
そして、ステップＳ１９１５ｄにおいて、ハウリング判定部５５０ｄは、周波数成分ごとに、そのレベル比が予め定めた第５の閾値を超えているか否かを判断する。
【０１４８】
ここで、第５の閾値は、上記レベル比が他の周波数成分に比べて突出していると判別できる値を設定する。
【０１４９】
ハウリング判定部５５０ｄは、レベル比が第５の閾値を超えている周波数成分については、ステップＳ１９１６ｄへ進む。また、ハウリング判定部５５０ｄは、レベル比が第５の閾値を超えていない周波数成分については、ステップＳ１９１７ｄへ進む。
【０１５０】
ステップＳ１９１６ｄにおいて、ハウリング判定部５５０ｄは、周波数成分ごとに用意した第３のカウンタ値のうち、該当する第３のカウンタ値をインクリメントして、ステップＳ１９１８ｄへ進む。
【０１５１】
ステップＳ１９１７ｄにおいて、ハウリング判定部５５０ｄは、該当する第３のカウンタ値をリセットして、ステップＳ１９１８ｄへ進む。
【０１５２】
すなわち、第３のカウンタ値は、対応する周波数成分にピークが連続して発生している時間の長さを示す。
【０１５３】
ステップＳ１９１８ｄにおいて、ハウリング判定部５５０ｄは、いずれかの周波数成分の第３のカウンタ値が、予め定めた第６の閾値を超えているか否かを判断する。
【０１５４】
ここで、第６の閾値は、上述の、ハウリング区間よりも短く騒音状態の連続時間よりも長い所定の時間に相当する値であり、例えば、０.５秒〜１秒に相当する値である。
【０１５５】
ハウリング判定部５５０ｄは、第３のカウンタ値が第６の閾値を超えている場合（Ｓ１９１８ｄ：ＹＥＳ）、ステップＳ１９１９ｄへ進む。また、ハウリング判定部５５０ｄは、第３のカウンタ値が第６の閾値を超えていない場合（Ｓ１９１８ｄ：ＮＯ）、ステップＳ１９２０ｄへ進む。
【０１５６】
ステップＳ１９１９ｄにおいて、ハウリング判定部５５０ｄは、ハウリングが発生したとの第２の判定結果をハウリング総合判定部６００ｄへ出力して、図１１の処理へ戻る。
【０１５７】
ステップＳ１９２０ｄにおいて、ハウリング判定部５５０ｄは、ハウリングが発生していないとの第２の判定結果をハウリング総合判定部６００ｄへ出力して、図１１の処理へ戻る。
【０１５８】
図１１のステップＳ１９３０ｄにおいて、ハウリング総合判定部６００ｄは、ハウリング検出部３００による第１の判定結果と、周波数ピーク検出部５００ｄによる第２の判定結果とを入力する。そして、ハウリング総合判定部６００ｄは、第１の判定結果と、第２の判定結果に基づいて、ハウリングが発生したか否かを総合判定する。
【０１５９】
ハウリング総合判定部６００ｄは、第１の判定結果および第２の判定結果の両方が、ハウリングが発生したとの判定結果を示す場合（Ｓ１９３０ｄ：ＹＥＳ）、ステップＳ１９４０ｄへ進む。また、ハウリング総合判定部６００ｄは、第１の判定結果および第２の判定結果の少なくとも一方が、ハウリングが発生したとの判定結果を示さない場合（Ｓ１９３０ｄ：ＮＯ）、ステップＳ１９５０ｄへ進む。
【０１６０】
ステップＳ１９４０ｄにおいて、ハウリング総合判定部６００ｄは、ハウリングが発生したと総合判定し、その旨を示す判定結果を、出力端子４００を介して出力して、ステップＳ２０００へ進む。
【０１６１】
ステップＳ１９５０ｄにおいて、ハウリング総合判定部６００ｄは、ハウリングが発生していないと総合判定し、そのままステップＳ２０００へ進む。
【０１６２】
このような処理により、ハウリング検出装置１００ｄは、ハウリング検出部３００による判定結果と周波数ピーク検出部５００ｄによる判定結果とを総合した結果を、最終判定結果として出力することができる。
【０１６３】
このように、本実施の形態に係るハウリング検出装置１００ｄは、騒音レベルに応じた閾値だけでなく、周波数ピークを用いてハウリング検出を行うので、ハウリングの誤検出を低減することができる。
【０１６４】
なお、ハウリング判定部５５０ｄは、周波数ピークがどの周波数帯域で発生したか、つまり、第３のカウンタ値が第６の閾値を超えた周波数帯域を示すピーク周波数情報を、取得するようにしてもよい。この場合、ハウリング検出装置１００ｄは、どの周波数帯域でハウリングが発生しているかを検出することが可能となる。
【０１６５】
なお、ハウリング総合判定部６００ｄは、第１の判定結果および第２の判定結果の両方がハウリング発生を示している状態の継続時間を計測してもよい。そして、ハウリング総合判定部６００ｄは、その継続時間が予め定めた第７の閾値を超えたことを条件として、ハウリングが発生したと判定してもよい。
【０１６６】
また、ハウリング総合判定部６００ｄは、第１の判定結果がハウリング発生を示している時間と、第２の判定結果がハウリング発生を示している時間との差が所定の範囲内であることを条件として、ハウリングが発生したと判定してもよい。ハウリング総合判定部６００ｄは、このような判定を行うことにより、ハウリング検出の精度を更に向上させることができる。
【０１６７】
（実施の形態３）
本発明の実施の形態３は、実施の形態２に係るハウリング検出装置を用いてハウリングの抑制を行うハウリング抑制装置の例である。
【０１６８】
図１３は、本実施の形態に係るハウリング抑制装置の構成を示すブロック図であり、実施の形態１の図１に対応するものである。図１と同一部分には同一符号を付し、これについての説明を省略する。
【０１６９】
図１３に示すように、本実施の形態に係るハウリング抑制装置７００ｅは、入力端子２００、Ａ／Ｄコンバータ７１０ｅ、実施の形態１に係るハウリング検出装置１００、減算器７２０ｅ、遅延器７３０ｅ、適応フィルタ７４０ｅ、Ｄ／Ａコンバータ７５０ｅ、および出力端子４００ｅを有する。
【０１７０】
入力端子２００は、入力信号を、Ａ／Ｄコンバータ７１０ｅへ出力する。
【０１７１】
Ａ／Ｄコンバータ７１０ｅは、入力信号をアナログ信号からデジタル信号へＡ／Ｄ変換し、変換後の入力信号を、ハウリング検出装置１００および減算器７２０ｅへ出力する。
【０１７２】
ハウリング検出装置１００は、入力信号からハウリングの検出を行い、その検出結果を、出力端子４００ｅではなく、適応フィルタ７４０ｅへ出力する。
【０１７３】
減算器７２０ｅは、Ａ／Ｄコンバータ７１０ｅから入力される入力信号と、後述する適応フィルタ７４０ｅから入力されるフィルタ出力信号との差分を、算出する。そして、減算器７２０ｅは、算出した差分を、遅延器７３０ｅ、適応フィルタ７４０ｅ、およびＤ／Ａコンバータ７５０ｅへ出力する。すなわち、入力信号は目標信号であり、差分は誤差信号である。
【０１７４】
遅延器７３０ｅは、誤差信号を遅延させた信号を生成し、生成した信号を、後述する適応フィルタ７４０ｅの参照信号として、適応フィルタ７４０ｅへ出力する。ここで、遅延器７３０ｅの遅延量は、減算器７２０ｅの目標信号（入力信号）と、参照信号（フィルタ入力信号）とが互いに相関を持たなくなるような値に設定されているものとする。
【０１７５】
適応フィルタ７４０ｅは、誤差信号の二乗平均値が最小となるように、フィルタ係数を逐次更新する。そして、適応フィルタ７４０ｅは、参照信号とフィルタ係数との畳み込みを行い、畳み込みの結果として得られる信号を、フィルタ出力信号として、減算器７２０ｅへ出力する。
【０１７６】
適応フィルタ７４０ｅがスピーカからマイクロホンへと回り込む帰還信号を模擬した信号を出力した場合、誤差信号の二乗平均値は最小となる。したがって、適応フィルタ７４０ｅによる上述のフィルタ係数の更新は、スピーカとマイクロホンとの間の音響フィードバック経路の伝達特性の推定を行うことを意味する。
【０１７７】
本実施の形態では、このようなフィルタ更新の結果、減算器７２０ｅにより、帰還信号を含む目標信号から帰還信号を模擬した適応フィルタ７４０ｅの出力信号が差し引かれ、ハウリングが抑制されることになる。フィルタ係数の更新アルゴリズムとしては、ＮＬＭＳ（normalized least mean square）アルゴリズム等、公知の各種適応アルゴリズムを用いることができる。
【０１７８】
ただし、適応フィルタ７４０ｅは、ハウリング検出装置１００からのハウリング検出結果が、ハウリングが発生したとの判定結果を示すものであることを条件として、ハウリング抑制モードとなる。
【０１７９】
ここで、ハウリング抑制モードとは、フィルタ係数の更新を行う、または、フィルタ係数の更新の速度を上げるモードである。したがって、適応フィルタ７４０ｅは、ハウリングが発生したときにのみ、ハウリングが収束するまでの間、フィルタ係数を高速に更新することができる。
【０１８０】
Ｄ／Ａコンバータ７５０ｅは、差分信号をデジタル信号からアナログ信号へＤ／Ａ変換し、変換後の信号を、出力端子４００ｅへ出力する。
【０１８１】
出力端子４００ｅは、アンプ等の、音声をスピーカから出力する機能を有する音響装置に接続するための端子である。
【０１８２】
なお、ハウリング抑制装置７００ｅは、例えば、ＣＰＵおよびＲＡＭ等の記憶媒体等を含むコンピュータによって構成することができる。また、ハウリング抑制装置７００ｅは、入力端子２００、Ａ／Ｄコンバータ７１０ｅ、Ｄ／Ａコンバータ７５０ｅ、および出力端子４００ｅを除いた構成としてもよい。
【０１８３】
このように、本実施の形態に係るハウリング抑制装置７００ｅは、適応フィルタを用いてスピーカからマイクロホンへ回り込む帰還信号を打ち消すので、ハウリングを抑制することができる。
【０１８４】
また、ハウリング抑制装置７００ｅは、使用する音響環境に応じてハウリング検出用の閾値を自動的に算出し、検出結果に応じて適応フィルタのフィルタ係数更新のオンオフまたは速度を制御する。これにより、ハウリング抑制装置７００ｅは、ハウリングが発生していないときの音量変化・音質変化をできるだけ回避しつつ、ハウリングの抑制を行うことができる。
【０１８５】
なお、ハウリング抑制装置７００ｅは、実施の形態１に係るハウリング検出装置１００に替えて、実施の形態２に係るハウリング検出装置１００ｄを備える構成であってもよい。
【０１８６】
（実施の形態４）
本発明の実施の形態４は、周波数帯域のゲインを局所的に低減することによりハウリングの抑制を行うハウリング抑制装置の例である。
【０１８７】
図１４は、本実施の形態に係るハウリング抑制装置の構成を示すブロック図であり、実施の形態３の図１３に対応するものである。図１３と同一部分には同一符号を付し、これについての説明を省略する。
【０１８８】
図１４において、ハウリング抑制装置７００ｆは、入力端子２００、Ａ／Ｄコンバータ７１０ｅ、実施の形態２に係るハウリング検出装置１００ｄ、ハウリング抑圧部７６０ｆ、Ｄ／Ａコンバータ７５０ｅ、および出力端子４００ｅを有する。
【０１８９】
Ａ／Ｄコンバータ７１０ｅは、Ａ／Ｄ変換後の入力信号を、ハウリング検出装置１００ｄおよびハウリング抑圧部７６０ｆへ出力する。
【０１９０】
ハウリング検出装置１００ｄは、入力信号からハウリングの検出を行い、その検出結果を、出力端子４００ｅではなく、ハウリング抑圧部７６０ｆへ出力する。また、ハウリング検出装置１００ｄは、ハウリングが発生したと判定したとき、ピークが発生した周波数帯域（例えば、第３のカウンタ値が第６の閾値を超えた周波数帯域。以下、「ピーク周波数帯域」という）を特定し、ピーク周波数帯域を示すピーク周波数情報を、ハウリング抑圧部７６０ｆへ出力する。
【０１９１】
ここで、ハウリング検出装置１００ｄは、ハウリングが発生したと判定したときに、ピーク周波数情報をハウリング抑圧部７６０ｆへ出力するものとする。そして、ハウリング検出装置１００ｄは、ピーク周波数情報の出力をもって、ハウリングの発生の通知とピークが発生した周波数帯域の通知とを行うものとする。
【０１９２】
ハウリング抑圧部７６０ｆは、入力信号を、Ｄ／Ａコンバータ７５０ｅへと出力する。ただし、ハウリング抑圧部７６０ｆは、ハウリング検出装置１００ｄからピーク周波数情報を入力されたとき、ノッチフィルタを用いて、入力信号に対してピーク周波数情報が示すピーク周波数帯域のゲインを低減させる。この結果、ハウリングが発生した周波数帯域のゲインが低減し、ハウリングが抑圧されることになる。
【０１９３】
なお、ハウリング抑制装置７００ｆは、例えば、ＣＰＵおよびＲＡＭ等の記憶媒体等を含むコンピュータによって構成することができる。また、ハウリング抑制装置７００ｆは、入力端子２００、Ａ／Ｄコンバータ７１０ｅ、Ｄ／Ａコンバータ７５０ｅ、および出力端子４００ｅを除いた構成としてもよい。
【０１９４】
このように、本実施の形態に係るハウリング抑制装置７００ｆは、ハウリングが発生した周波数帯域のゲインを局所的に低減するので、他の周波数帯域のゲインをできるだけ保持しつつ、ハウリングを抑制することができる。
【０１９５】
また、ハウリング抑制装置７００ｆは、使用する音響環境に応じてハウリング検出用の閾値を自動的に算出し、検出結果に応じてゲイン低減のオンオフを制御する。これにより、ハウリング抑制装置７００ｆは、ハウリングが発生していないときの音量変化・音質変化をできるだけ回避しつつ、ハウリングの抑制を行うことができる。
【０１９６】
なお、ハウリング抑圧部７６０ｆは、入力信号を複数の周波数成分に変換または分割し、ハウリングが発生した周波数帯域のゲインを低減した後に再度時間信号へと周波数合成することにより、ピーク周波数帯域のゲインを低減させてもよい。
【０１９７】
（その他の実施の形態）
なお、本発明の実施の形態は、上記実施の形態１〜実施の形態４に限定されない。特に、発明を実現する装置のハードウェア構成は、例えば、以下のようにしてもよい。
【０１９８】
（１）ハウリング検出装置およびハウリング抑制装置の全部または一部は、マイクロプロセッサ、ＲＯＭ（read only memory）、ＲＡＭ、ハードディスクユニット等を有するコンピュータシステムにより構成される。この場合、ＲＡＭまたはハードディスクユニットには、上記各部の動作と同様の動作を達成するコンピュータプログラムが記憶されている。そして、上記各部の機能は、マイクロプロセッサがコンピュータプログラムに従って動作することにより実現される。
【０１９９】
（２）ハウリング検出装置およびハウリング抑制装置の全部または一部は、１つのシステムＬＳＩ（large scale integration（大規模集積回路））から構成される。システムＬＳＩは、複数の構成部を１個のチップ上に集積して製造された超多機能ＬＳＩであり、具体的には、マイクロプロセッサ、ＲＯＭ、ＲＡＭ等を含んで構成されるコンピュータシステムである。この場合、ＲＡＭまたはハードディスクユニットには、上記各部の動作と同様の動作を達成するコンピュータプログラムが記憶されている。そして、上記各部の機能は、マイクロプロセッサがコンピュータプログラムに従って動作することにより実現される。
【０２００】
（３）ハウリング検出装置およびハウリング抑制装置の全部または一部は、脱着可能なＩＣカードまたは単体のモジュールから構成される。ＩＣカードまたはモジュールは、マイクロプロセッサ、ＲＯＭ、ＲＡＭ等を含んで構成されるコンピュータシステムである。ＩＣカードまたはモジュールは、上記の超多機能ＬＳＩを含んで構成されてもよい。これらの場合、上記各部の機能は、マイクロプロセッサがコンピュータプログラムに従って動作することにより実現される。ＩＣカードまたはモジュールは、耐タンパ性を有することが望ましい。
【０２０１】
また、本発明のカテゴリは、物の発明に限定されない。すなわち、本発明は、ハウリング検出装置およびハウリング抑制装置そのものではなく、ハウリング検出装置およびハウリング抑制装置において実現される方法および処理の全部または一部と捉えることができる。この場合、本発明は、例えば、以下のような形態を採ることができる。
【０２０２】
（４）本発明は、上記方法および処理を実現するコンピュータプログラムから構成される。
【０２０３】
（５）本発明は、上記コンピュータプログラムを規定するデジタル信号から構成される。この場合、コンピュータプログラムは、電気通信回線、無線通信回線、有線通信回線、インターネット等のネットワーク、データ放送等を経由して伝送され、伝送元とは独立した他のコンピュータシステムにおいて実行することができる。
【０２０４】
（６）本発明は、上述のデジタル信号を記録したコンピュータ読み取り可能な記録媒体に記録したものから構成される。コンピュータ読み取り可能な記録媒体は、例えば、フレキシブルディスク、ハードディスク、ＣＤ−ＲＯＭ、ＭＯ（magnet-optics）、ＤＶＤ（digital video disc）、ＤＶＤ−ＲＯＭ、ＤＶＤ−ＲＡＭ、ＢＤ（blu-ray disc）、半導体メモリ等である。この場合、コンピュータプログラムは、記録媒体の移送により移送され、移送元とは独立した他のコンピュータシステムにおいて実行することができる。
【０２０５】
２０１１年３月９日出願の特願２０１１−０５１６２３の日本出願に含まれる明細書、図面および要約書の開示内容は、すべて本願に援用される。
【産業上の利用可能性】
【０２０６】
本発明は、ハウリングの発生をより高い精度で検出することができるハウリング検出装置、ハウリング抑制装置、およびハウリング検出方法として有用である。特に、本発明は、補聴器やカラオケ装置等の、ハウリングが発生し易く、使用環境が一定ではないような機器に好適である。
【符号の説明】
【０２０７】
１００、１００ｄ  ハウリング検出装置
２００  入力端子
３００  ハウリング検出部
３１０  信号レベル算出部
３２０  レベル変動推定値算出部
３３０  閾値算出部
３４０  ハウリング判定部
４００、４００ｅ  出力端子
５００ｄ  周波数ピーク検出部
５１０ｄ  周波数分析部
５２０ｄ  レベル算出部
５３０ｄ  平均レベル算出部
５４０ｄ  レベル比算出部
５５０ｄ  ハウリング判定部
６００ｄ  ハウリング総合判定部
７００ｅ、７００ｆ  ハウリング抑制装置
７１０ｅ  Ａ／Ｄコンバータ
７２０ｅ  減算器
７３０ｅ  遅延器
７４０ｅ  適応フィルタ
７５０ｅ  Ｄ／Ａコンバータ
７６０ｆ  ハウリング抑圧部
【図１】
2012120815.tif 000003
【図２】
2012120815.tif 000004
【図３】
2012120815.tif 000005
【図４】
2012120815.tif 000006
【図５】
2012120815.tif 000007
【図６】
2012120815.tif 000008
【図１０】
2012120815.tif 000009
【図１１】
2012120815.tif 000010
【図１２】
2012120815.tif 000011
【図１３】
2012120815.tif 000012
【図１４】
2012120815.tif 000013
【図７】
2012120815.tif 000014
【図８】
2012120815.tif 000015
【図９】
2012120815.tif 000016
【国際調査報告】
2012120815.tif 000017
2012120815.tif 000018
2012120815.tif 000019
2012120815.tif 000020