先ず、本発明に係る雑音検出装置100および雑音検出方法の例について図1から図5を用いて説明する。
本発明の実施形態である雑音検出装置100は、例えば後述する通信装置200に内蔵された状態で、一例として工事現場や災害現場などの環境で用いられることがある。このような環境で用いられる通信装置は、例えば地盤圧縮機の動作音や酸素マスクのバイブレーション音など持続性のある突発音により通話音声が阻害されることがある。また、それらの突発音の存在が通話者に対する危険を示す場合もある。
一例として、消防士が火災現場における活動時に用いる酸素マスクは、酸素を供給する酸素ボンベの酸素残量が少なくなり圧力が低下すると、酸素マスク内の乱流に起因して酸素マスクが振動し、周期的な突発音が発生する。このような状態においては、無線装置による通話に周期的突発音が混入し、受話側による音声の聞き取りが困難になってしまう。さらには、このような周期的突発音の発生が酸素残量の低下を示すため、迅速に把握または周囲への通知を行う必要がある。
図1は、本発明に係る雑音検出装置100のブロック図である。雑音検出装置100は、通信装置200等に搭載される。雑音検出装置100は、通信装置200等にモジュールとして搭載されてもよく、通信装置200に備えられているCPU(Central Processing Unit)等の処理および通信装置200の構成要素を用いて実現されてもよい。また、PC(Personal Computer)や携帯端末等により実現されてもよい。
雑音検出装置100は、主な構成要素として入力部110、出力部120、記憶部130、制御部150を備える。これら以外にも雑音検出装置100として機能するために必要な構成要素を適宜備える。
入力部110は、雑音検出装置100により雑音を検出する対象の音データが入力されるインターフェースである。具体的には、雑音検出装置100が単体で用いられる場合は、各種入力端子やマイクロホンであり、雑音検出装置100が通信装置200に内蔵される場合は、通信装置200が備えるマイクロホン等から入力された音データが入力される。入力部110は、入力される音のアナログ信号をデジタルの音データに変換するA/Dコンバータを備えていてもよく、入力される音データをデジタルデータとして制御部150に入力させる。
出力部120は、雑音検出装置100が検出した雑音に関する情報を出力する。雑音に関する情報の具体例としては、雑音検出の有無、雑音検出による通知指示等である。出力部120による出力形態や出力タイミング等は、制御部150により制御される。出力部120は、雑音検出装置100が単体で用いられる場合は、音声または映像の出力を行う各種インターフェースを備え、雑音検出装置100が通信装置200に内蔵される場合は、通信装置200が備える出力インターフェースに情報を出力する。
記憶部130は、雑音検出装置100の雑音検出処理に用いる一時的なデータの記憶や、概形モデル波形等を記憶する。記憶部130は、制御部としてのCPUに付随しているRAM(Random Access Memory)やROM(Read Only Memory)、その他の記憶素子である。また、雑音検出装置100が通信装置200に内蔵されている場合は通信装置200の記憶部として共用であってもよい。また、制御部150において実行される各種プログラムも記憶部130に記憶される。
制御部150は、雑音検出装置100の構成要素および各種処理のためのプログラムを実行するCPUやDSP(Digital Signal Processor)等である。雑音検出装置100が通信装置200に内蔵されている場合は、通信装置200の制御部250と共用であってもよい。
制御部150は、実行されるプログラムによって各種機能を実現する。本実施形態において制御部150は、フレーム処理部151、振幅検出部152、突発音確定部153、概形モデル化部154、相関値算出部155、周期性突発音判定部156を実現する。
フレーム処理部151は、入力部110から入力された雑音を検出する対象の音データに対して、所定のサンプル数に従った時間幅で音データをフレームに区切る処理を行う。
振幅検出部152は、フレーム処理部151でフレーム化された時間軸の音データを構成する複数のサンプル点より、振幅値が他のサンプル点と比較して高い値を示すサンプル点の位置をピーク位置として検出する処理を行う。具体的には、振幅値が所定の閾値以上である場合のピーク位置を検出する。
突発音確定部153は、振幅検出部152において検出されたピーク位置に基づき、振幅の高い信号が継続する期間と、ピーク位置を基準としたエネルギー変化量を算出し、検出対象となる突発音を確定する処理を行う。
概形モデル化部154は、突発音確定部153において検出された突発音の時間軸信号振幅波形から概形モデル波形を生成する処理を行う。
相関値算出部155は、概形モデル化部154で生成された概形モデル波形として記憶している過去のフレームにおける概形モデル波形との相関値を算出する処理を行う。また、算出した相関値が所定以上の相関値であるか否かを判断する。
周期性突発音判定部156は、相関値算出部155において所定以上の相関値であると判断された概形モデル波形と過去の概形モデル波形との時間幅を算出し、概形モデル波形が周期性を備えるか否か、すなわち突発音が周期性突発音であるか否かを判断する。また、周期性突発音判定部156は周期性突発音の発生に伴う周期性突発音モードのオンオフを制御する。
次に、図2のフローチャートを用いて雑音検出装置100による雑音検出方法について説明する。
先ず、入力部110に入力された音データに対してフレーム処理部151は所定のサンプル数の時間幅でフレーム化する処理を行う(ステップS001)。例えば酸素残量が少なくなった際の酸素マスクが振動することによる周期的突発音は、最も音圧レベルが高いピーク位置の立ち上がりから立ち下がりまで約0.1secの時間幅を有する。従って、このような周期性突発音の存在を検出するためには、各突発音の前後の突発音を含まない区間を確保し、ピーク位置における振幅の変化量やエネルギー変化量の推移に基づき突発音を検出する必要がある。このため、検出対象の突発音の存在を把握するための時間幅としては、ピーク位置の立ち上がりから立ち下がりまでの約0.1secに対して、0.3secから0.5secであることが望ましい。
ステップS001においてフレーム化する時間幅は、上記の時間幅に限らず、検出対象の突発音や雑音検出装置100を構成するシステムによって変更してもよい。検出対象の突発音は、物体と物体とが衝突して発する打撃音である場合、衝突する物体によって突発音の持続時間等が推定されるため、突発音の持続時間の数倍分をフレーム化の時間幅として確保する。
次に、振幅検出部152はステップS001においてフレーム化した音データの振幅値を所定の閾値と比較し(ステップS002)、振幅値が閾値以上であるか否かを判断する(ステップS003)。ステップS003において、振幅値が閾値以上であると判断された場合、振幅検出部152は時間軸上のピーク位置を検出する。
ここで、突発音の特徴について図3を用いて説明する。図3(A)は、周期性突発音の波形例であり、横軸が時間、縦軸が振幅を示している。図3(A)においては、振幅値が大きい2箇所がそれぞれ突発音である。このように、突発音は他の区間に比べて振幅が大きいという特徴を有するため、突発音の有無は、平均的な入力信号のエネルギーまたは振幅値に基づき判断することができる。
ステップS002の処理において、振幅検出部152が比較する閾値の例は、図3(A)においてはThとして示される。閾値Thは、音データが入力されてから解析フレームまでの平均値から求めるが、例えば解析フレームの中央値や突発音のデータに基づいて予め設定された値であってもよい。
また、解析対象の波形が図3(B)のように周辺雑音の影響により閾値以上の波形が多発する場合や、周辺雑音の振幅値に突発音の振幅値が加算される場合もある。このような場合、振幅検出部152が比較する閾値Thは、周囲の雑音レベルに応じて調整されてもよい。
ステップS003において、振幅値が閾値以下であると判断された場合(ステップS003:No)、解析対象となるフレームにおいて突発音は無いため、次のフレームを解析対象としてステップS001の処理に戻る。
ステップS003において、振幅値が閾値以上であると判断された場合(ステップS003:Yes)、突発音確定部153は、検出したピーク位置に基づき振幅の高い信号の継続時間とピーク位置を基準としたエネルギー変化量を算出し、突発音を確定する(ステップS004)。
ここで、ステップS004において算出する振幅の高い信号の継続時間について図3を用いて説明する。突発音は、上述したように他の区間に比べて振幅値が大きいが、図3(B)のように振幅の大きい周辺雑音が存在する場合、振幅の大きい周辺雑音も突発音であると判断されてしまう。図3(B)の波形は、突発音の周辺雑音として人の声による音声が含まれている場合の波形である。
図3(A)に示す突発音の継続時間と図3(B)に示す振幅値の大きい音声の継続時間とを対比すると、音声は振幅のピークから急峻に振幅が低下しているのに対し、突発音の振幅は振幅のピークからの継続時間が音声より長くなっていることが分かる。また、音声の成分によっては継続時間が突発音の継続時間より長くなる場合もある。このような場合においても、ステップS004の処理としては、検出対象の突発音の継続時間を基準として継続時間を比較することにより、検出対象の突発音と周辺雑音としての突発性信号とを区別することができる。
ステップS004における継続時間の算出例としては、図3(A)に例示するように、ピーク位置から所定の区間Int内における閾値Th以上の値の数を求める。区間Int内における閾値Th以上の値が多いということは、振幅の継続時間が長いということを示す。
また、ステップS004においては、ピーク位置を基準としたエネルギー変化量として、ピーク位置から区間Int内の最後のサンプル位置までの振幅の絶対値を加算し、エネルギーを算出する。図3(B)に示すように、検出対象の突発音の振幅はピーク位置から緩やかに減衰するが、周辺雑音としての突発性信号は急峻に減衰しているため、エネルギー変化量に差が生じる。従って、突発音確定部153は、ステップS004において算出した継続時間とエネルギー変化量各々が所定の閾値以上である場合(ステップS005:Yes)、そのピーク位置における波形を突発音として確定する。所定の閾値以下である場合(ステップS005:No)、突発音は検出されないため、次のフレームを解析対象としてステップS001の処理に戻る。
ここで、突発音がフレームの境界付近に存在している場合の処理について説明する。解析対象のフレームの境界に突発音がある場合、突発音の継続時間が隣接するフレームとで分断されるなど、正確な検出ができない場合が生じるためである。具体的には、ステップS002からステップS005までの処理を、解析対象のフレームとその直前のフレームの一部のサンプル区間を含めて分析することにより可能とする。また、ステップS001におけるフレーム化処理時に、隣接するフレーム同士オーバーラップする区間を設けたフレーム化処理としてもよい。この場合のオーバーラップ区間の時間幅は、検出対象の突発音の継続時間以上の時間幅であることが好ましい。
以上、ステップS001からステップS005までの処理は、突発音を検出するための短期時間分析である。
次に、概形モデル化部154は、ステップS005において突発音として検出された波形に対して概形モデル化処理を行う(ステップS006)。具体的には、図4(A)に示すように、入力波形を絶対値に変換する。さらに、図4(B)に示すように絶対値に変換された波形に対してその振幅値にメディアンフィルターによる処理を行う。なお、振幅値の概形モデル化処理は上記に限らず、移動平均を用いるなど、他の手法によっても可能である。ステップS006において概形モデル化された波形のデータやピーク位置等は、逐次記憶部130に記憶される。
酸素マスクが振動して発生する周期性突発音の周期は、一般的に0.05〜0.1secである。上述した短期時間分析により突発音が検出され、その後上述した周期となるフレーム数の時間幅内に突発音が検出されなかった場合は、検出された突発音は周期性突発音ではないため、概形モデル化されたデータは記憶部130から消去してもよい。また、上述した周期となるフレーム数内に突発音が検出された場合は、周期性突発音である可能性が高いため、概形モデル化されたデータを所定のフレーム数分記憶部130に記憶する。記憶するフレーム数は周期性突発音の周期等によって変更されてもよい。
次に、ステップS006において概形モデル化された波形に対して、相関値算出部155は、記憶部130に記憶されている過去のフレームにおける概形モデルとの相関値を算出する(ステップS007)。具体的な処理としては、相関値算出部155は、式1に示すような一般的な自己相関関数を用いて相関値を算出する。式1において、Nはサンプルデータ数、nは時系列サンプルを表す整数であり、mは時系列のサンプルシフト量を示し、自己相関関数の結果Aを求める。
ステップS007の処理として、具体的な概形モデルによる相関値算出について図5を用いて説明する。相関値を算出する範囲は、図5(A)の枠で囲った範囲で示すように、突発音の継続時間とし、これを相関範囲とする。この相関範囲を1サンプルずつずらしながらサンプル毎に相関値を算出する。この処理においては、全てのサンプルに対して相関値を算出すると、演算量が多くなってしまうため、検出対象である周期性突発音の持続時間分ずらしたサンプルから相関値を算出することにより、算出処理量の効率化を行うことができる。具体例としては、一般的な酸素マスクが振動することにより発生する周期性突発音の継続時間は約0.05secであるため、約0.05secに相当するサンプル数分ずらした位置から相関値を算出する。
ステップS007の処理において算出した相関値による相関性の高い突発音の例を図5(B)に示す。図5(B)においては、各々の突発音の波形の後半部分において相関性の高い形態があることが分かる。この相関値により各々の突発音は相関性があり、連続的に相関性の高い突発音が存在することが分かる。
また、相関値算出部155はステップS007において算出した相関値が所定の閾値以上であるか否かを判断する(ステップS008)。ここでいう所定の閾値とは、突発音の波形同士に十分な相関性があり、同一の発生源による突発音であることが判断できる値とする。ステップS008において、相関値が所定の閾値以上であると判断された場合(ステップS008:Yes)、過去のフレームにおいて同様の突発音が発生しているものとみなし、次のステップへ移行する。ステップS008において、相関値が所定の閾値以上ではないと判断された場合(ステップS008:No)、周期的な突発音ではないため、ステップS001の処理に戻る。
ステップS008において、相関値が所定の閾値以上であると判断された場合(ステップS008:Yes)、図5(B)に示すように解析対象の突発音と過去の突発音との距離である時間幅を算出し(ステップS009)、算出した時間幅で周期性を有する周期性突発音であると判断する。
以上、ステップS006からステップS009までの処理は、短期時間分析において検出した突発音が周期性突発音であることを検出するための長期時間分析である。
ステップ001からステップS009までの周期性突発音の検出処理においては、背景雑音に検出対象の突発音以外の音で類似した波形概形を有する突発音が発生した場合、そのような偶発的な突発音を検出対象の周期性突発音であると判断してしまう場合もある。以下の処理は周期性突発音をより正確に検出するための処理である。
先ず、周期性突発音判定部156は、現時点において周期性突発音モードであるか否かを判断する(ステップS010)。周期性突発音モードとは、突発音が検出され且つその突発音が周期性を有している場合のモードである。突発音が発生していてもその突発音が周期性を有していない場合は、周期性突発音モードではない。また、突発音検出前の初期値は、周期性突発音モードではない。
ステップS010において、周期性突発音モードであると判断された場合(ステップS10:Yes)、周期性突発音判定部156は、解析中の突発音区間であるステップS009において算出した時間幅と、過去の突発音区間である時間幅とを比較する(ステップS011)。ステップS011における具体的な比較例としては、検出対象の周期性突発音としてとりうる時間幅の下限値から上限値までの間の値であるか否かを判断する。他には、解析中の周期性突発音における記憶部130に記憶されている過去分の時間幅の最小値から最大値まで、またはこれらの最小値および最大値に所定の係数を掛けた値の間などである。
ステップS011において、所定の範囲内であると判断された場合(ステップS011:Yes)、周期性突発音が継続しているため、周期性突発音モードを維持させる(ステップS012)。ステップS011において、所定の範囲内ではないと判断された場合(ステップS011:No)、周期性突発音が継続していないため、周期性突発音モードを解除する(ステップS013)。ステップS011がNoである場合とは、周期性突発音の周期性が消滅した場合であるが、ステップS013の処理前に、周期性が保たれていないと判定された結果の頻度や連続性をステップS013に移行する判断要素として加えてもよい。
ステップS010において、周期性突発音モードではないと判断された場合(ステップS10:No)、周期性突発音判定部156は突発音の周期性について判定する(ステップS014)。突発音は、例えば過去に一回のみ周期性のある突発音が存在した場合であっても、その周期性は偶然発生している可能性もある。従って、ステップS014の判断として、所定のフレーム以内に周期性のある突発音が所定回数存在するか否かを確認することにより、突発音が周期性突発音であることを確認する。
ステップS014においては、例えば所定の数フレームの期間中に3回にわたり相関性の高い突発音が確認できた場合、周期性突発音モードとする。これは、突発音が存在し、さらに所定の解析期間中に突発音が4回検出され、且つそれらの突発音の間隔が等間隔である場合に相当する。等間隔であるか否かの判断は、ステップS011の判断と同一であってもよい。このような突発音は偶発的に発生した確率が低いため、周期性を備えていると判断することができる。等間隔である相関性の高い突発音の確認回数は、上記に限らず4回以上であってもよい。
ステップS014における判断結果に基づき、周期性突発音判定部156は検出対象の突発音が周期性を備える突発音である場合は周期性突発音モードとし(ステップS016)、周期性を備える突発音ではない場合は周期性突発音モードではない状態が維持される。
以上のように、本発明に係る雑音検出装置100は、短期時間分析、長期時間分析および周期性突発音モードを備え、突発音の振幅値、継続時間、自己相関値、周期性の時間幅という特徴量に基づき、正確に周期性突発音を検出することができる。
このように検出された周期性突発音に対して、雑音検出装置100を内蔵または接続する各種装置は、ノイズキャンセル処理や音声強調処理など必要な処理を行うことが可能である。
次に、雑音検出装置100を用いた通信装置200について、図6から図13を用いて説明する。本実施形態に係る通信装置200は、酸素マスクを装着した状態で使用される通信装置を例として説明するが、他の実施可能な形態としてはこれに限らない。
本実施形態において、酸素ボンベからの酸素残量が少なくなった場合に生じる酸素マスクの振動による周期性突発音は、その酸素マスクを装着している人物が緊急を要する状態であることを表す。また、酸素マスクを装着している複数の人物が存在する場合において、いずれかの酸素マスクが周期性突発音を発生した場合、現場の状況や酸素マスクあるいはヘルメット等の装着によって、周辺音を聞き取ることは困難である。このため、雑音検出装置100が検出した周期性突発音に基づき、迅速な報知や対象人物の特定を行う必要がある。
図6は、本発明に係る通信装置200の構成ブロック図である。通信装置200は、各種無線通信装置や携帯電話等である。
通信装置200は、主な構成要素として雑音検出装置100、マイクロフォン210、音声出力部220、通信部230、表示部240、制御部250を備える。これら以外にも例えば電源や操作部など通信装置200として機能するために必要な構成要素を適宜備える。
マイクロフォン210は、通信装置200を用いて音声通話を行う場合に音声信号などの音信号を取得するためのマイクロフォンおよび雑音検出装置100による雑音を検出するためのマイクロフォンである。各々の目的のマイクロフォンは、共用されてもよく各々備えられていてもよい。マイクロフォン210から入力された音声信号は、制御部250によって通信部230により送信される搬送波に変調される。また、マイクロフォン210から入力された信号は、雑音検出装置100が備える入力部110に入力される。マイクロフォン210から入力された音声信号をデジタル信号の音声データに変換するA/Dコンバータを備えてもよい。
音声出力部220は、通信装置200を用いて音声通話を行う場合に通話先からの音声を出力するためのスピーカまたはイヤホン等である。音声出力部220への音声出力は、制御部250によって制御される。
通信部230は、各種無線通信の送受信を行う通信モジュール等であり、通信は通信制御部253によって制御される。
表示部240は、液晶表示装置等の表示素子であり、表示内容や表示形態は制御部250により制御される。
制御部250は、通信装置200の構成要素および各種処理のためのプログラムを実行するCPUやDSP等であり、雑音検出装置100の制御部150と共用であってもよい。
制御部250は、実行されるプログラムによって各種機能を実現する。本実施形態において制御部250は、突発音区間音圧算出部251、通知制御部252、通信制御部253を備える。
突発音区間音圧算出部251は、雑音検出装置100が周期性突発音を検出した場合、検出した周期性突発音の音圧レベルや音圧レベルの変化量に基づき、周期性突発音の音源情報を算出する。
通知制御部252は、突発音区間音圧算出部251が算出した周期性突発音の音源情報に基づいた通知処理に関する制御を行う。
通信制御部253は、通信部230による無線通信に関する制御を行う。
また、通知制御部252が通知を行うために用いる通信部230、通信制御部253、表示部240などを包括して通知部290とする。通知部290は、通知制御部252の制御により上記構成要素の一部または全部を用いて通知を行い、通知の手法によっては他の構成要素を含む。
次に、通信装置200に備えられている雑音検出装置100が周期性突発音を検出した場合における通信装置200の処理例について、図7から図10を用いて説明する。
具体例としては、酸素ボンベからの酸素残量が少なくなった場合に生じる酸素マスクの振動による周期性突発音を、振動している酸素マスクの装着者またはその周囲で同様に酸素マスクを装着している他の装着者などが使用している通信装置200が検出した場合の処理例であるが、これに限定はされない。
先ず、雑音検出装置100が周期性突発音を検出した場合、図7のフローチャートにおいて突発音区間音圧算出部251は、検出した周期性突発音の音圧レベルを予め定められている閾値と比較する(ステップS101)。比較する音圧レベルは、所定区間の平均値や中央値などである。
ステップS101の比較結果において、検出された周期性突発音の音圧レベルが閾値以上である場合(ステップS102:Yes)、周期性突発音の発生源が自身の酸素マスクであるため、通知制御部252は、自身の異常発生を通知する(ステップS103)。
ステップS103における自身の異常発生の通知は、様々な手法が適用可能である。具体的な例としては、通知制御部252の制御により通信制御部253および通信部230を用いて、異常発生を知らせる無線送信を行う。異常発生を知らせる無線送信によって、音声信号として異常の発生を通知したり、受信した周囲の通信装置が備えるLED等の光源を点滅させ、視覚的に異常の発生を通知してもよい。さらには、自身の通信装置200が備える表示部240や光源を用いて異常を視覚的に通知してもよい。異常発生を知らせる無線送信や表示においては、酸素量低下など具体的な異常内容が判別できることとしてもよい。
ステップS101の比較結果において、検出された周期性突発音の音圧レベルが閾値以上ではない場合(ステップS102:No)、周期性突発音の発生源が自身の酸素マスクではなく周囲に存在する他者の酸素マスクであるため、通知制御部252は、周囲の他者において異常が発生していることを通知する(ステップS104)。ステップS104における他者の異常発生の通知においても、様々な手法が適用可能である。具体的な例としては、ステップS103における例と同様であるが、異常発生を知らせる無線送信や表示においては、具体的な異常内容に加えて他者に異常が発生していることを判別できることとしてもよい。
次に、突発音区間音圧算出部251は、異常が発生した他者の位置情報を取得する(ステップS105)。ステップS105の処理は、他者が周囲に複数存在する場合、どの他者に異常が生じているかを明確にするためである。ステップS105の処理については後述する。
ステップS105において、異常が発生した他者の位置情報を取得した後、通知制御部252は、異常対象である他者の位置情報を通知する(ステップS106)。異常対象である他者の位置情報の通知においても様々な手法が適用可能であり、位置情報の種類によっても異なる場合もあるが、無線送信による視覚的または聴覚的な通知、または表示部240や光源を用いる視覚的な通知が適切である。
次にステップS105の第一の処理例について説明する。図8は異常が発生している他者と自己との位置関係を取得する処理を説明するフローチャートである。図7におけるステップS101およびステップS102の処理により他者に異常が発生したと判断された後、突発音区間音圧算出部251は周期性突発音の所定区間毎の音圧レベルの変化を判定する(ステップS201)。
ステップS201の判定において、現時点における区間の音圧レベルが過去の区間の音圧レベルより大きいと判断された場合(ステップS202:Yes)、通知制御部252は異常が発生している他者が自己に近づいていると判断する(ステップS203)。このため、図7におけるステップS106においては、各種手法により異常が発生している他者が自己に近づいていることを通知する。
ステップS201の判定において、現時点における区間の音圧レベルが過去の区間の音圧レベルより小さいと判断された場合(ステップS202:No)、通知制御部252は異常が発生している他者が自己から遠ざかっていると判断する(ステップS204)。このため、図7におけるステップS106においては、各種手法により異常が発生している他者が自己から遠ざかっていることを通知する。
ステップS201の判定においては、音圧レベルの変化を判定する音声区間の長さによっては、複数の音声区間において連続して音圧レベルの上昇または下降が確認されることにより判断してもよい。
このような通知を行うことで、異常が発生した他者の発見時間の短縮に繋げることができる。
次に、図9および図10を用いてステップS105の第二の処理例について説明する。図7におけるステップS101およびステップS102の処理により他者に異常が発生したと判断された後、通知制御部252は、音声出力部220による音声出力または表示部240による表示を用いて、異常対象方向検出のための動作を行う指示を行う(ステップS211)。具体的には、通信装置200または通信装置200を保持した人物がその場で360度回転するように指示する。
ステップS211における指示後、突発音区間音圧算出部251は、周期性突発音の所定区間毎の音圧レベル取得し(ステップS212)、周期性突発音の方向を判定する(ステップS213)。図10は、ステップS212の処理において取得した音圧レベルの例である。図10においては、回転開始から終了までの角度を横軸とし、音圧レベルを縦軸としており、180度の位置つまり回転開始時の向きにおいて後方向で最大の音圧レベルを得ており、その方向に異常が発生した他者が存在していることが分かる。音圧レベルと回転角度は、ステップS211における指示開始時間から概算してもよいが、通信装置200に加速度センサ等が備えられ、加速度センサの出力によって回転角度を取得してもよい。
このため、図7におけるステップS106においては、各種手法により、ステップS213において判定した異常が発生している他者の方向を通知する。
このような通知を行うことで、異常が発生した他者の発見時間のさらなる短縮に繋げることができる。また、図8および図9において説明した他者の位置情報取得処理は他の位置情報取得処理と組み合わせて実行されてもよい。
次に、図11から図13を用いてステップS105の第三の処理例について説明する。第三の処理例については、通信装置200の構成が一部異なってくる。このため、通信装置200の構成ブロック図を図11を用いて説明する。図11の説明においては図6と共通する部分の説明は省略する。
図11に示す通信装置200は、マイクロフォン210に代えて第1マイクロフォン211および第2マイクロフォン212を備える。第1マイクロフォン211および第2マイクロフォン212は、機能としてはマイクロフォン210と同一であり、複数備えられていることが異なる。
図12に第1マイクロフォン211および第2マイクロフォン212は、通信装置200において同一面またはほぼ対象となるように配置されている。このため、突発音1の発生位置においては、第2マイクロフォン212には第1マイクロフォン211よりも時間的に遅延した信号が入力される。同様に、突発音2の発生位置においては、第1マイクロフォン211には第2マイクロフォン212よりも時間的に遅延した信号が入力される。
制御部250は、実行されるプログラムによって相関値算出部254を実現する。相関値算出部254は、第1マイクロフォン211および第2マイクロフォン212から入力された周期性突発音の相関値を求める。
図13を用いて、図11に示す通信装置200によるステップS105の第三の処理例について説明する。図11に示す通信装置200においても、図7に示す周期性突発音を検出した場合における処理は同一である。
図7におけるステップS101およびステップS102の処理により他者に異常が発生したと判断された後、相関値算出部254は、第1マイクロフォン211および第2マイクロフォン212のいずれかに入力された信号を基準として相関値を求める(ステップS211)。
ステップS211の処理は、例えば第1マイクロフォン211に入力された信号を基準とする場合、式2を用いて相関値を算出する。式2においては、第1マイクロフォン211をマイク1、第2マイクロフォン212をマイク2として記載している。式2において、Nはサンプルデータ数、nは時系列サンプルを表す整数であり、mは時系列のサンプルシフト量を示し、自己相関関数の結果Aを求める。
式2を用いて相関値を算出した場合、図12に示す突発音1の方向で周期性突発音が発生した場合は、第1マイクロフォン211に対して第2マイクロフォン212より先行して周期性突発音の信号が到着する。同様に突発音2の方向で周期性突発音が発生した場合は、第2マイクロフォン212に対して第1マイクロフォン211より先行して周期性突発音の信号が到着する。
このように、ステップS221において相関値算出部254は、第1マイクロフォン211または第2マイクロフォン212を基準として相関値を求める。また、相関値算出部254は、ステップS221で算出した相関値に基づき、相関が最も高い波形の時間幅から周期性突発音の複数のマイクロフォン間の位相差を取得し、位相差より周期性突発音の発生方向を判定する(ステップS222)。
このような処理によって判定した周期性突発音の発生方向を、図7におけるステップS106にて、指定された各種手法を用いて通知する。このような通知を行うことで、異常が発生した他者の発見時間のさらなる短縮に繋げることができる。また、図13において説明した他者の位置情報取得処理は他の位置情報取得処理と組み合わせて実行されてもよい。
このような構成を備える通信装置200は、迅速且つ適切に周期性突発音を検出し、周期性突発音が発生していることや周期性突発音の発生源に関する情報を自身または周囲の通信装置200へ通知することができる。
次に、本発明に係る雑音低減装置500および雑音低減方法について、図14から図22を用いて説明する。
本発明の実施形態である雑音低減装置500は、例えば後述する通信装置600に内蔵された状態で、一例として工事現場や災害現場などの環境で用いられる。一例としては上述したように、消防士が火災現場における活動時に用いる酸素マスクが周期的な突発音を発生し、受話側の音声の聞き取りが困難となる場合がある。
図14は、本発明に係る雑音低減装置500のブロック図である。雑音低減装置500は、後述する通信装置600等に搭載される。雑音低減装置500は、通信装置等にモジュールとして搭載されてもよく、通信装置600に備えられているCPU等の処理および通信装置600の構成要素を用いて実現されてもよい。また、PCや携帯端末等により実現されてもよい。
また、雑音低減装置500は、図1に示す雑音検出装置100と共通の構成要素を備えており、同一の装置であってもよい。また、雑音低減装置500および雑音検出装置100は、通信装置600等の構成要素を用いて同時に実現されてもよい。
雑音低減装置500は、主な構成要素として入力部510、出力部520、記憶部530、制御部550を備える。これら以外にも雑音低減装置500として機能するために必要な構成要素を適宜備える。
入力部510は、雑音低減装置500が雑音を低減する対象の音データが入力されるインターフェースであり、具体的な構成は入力部110と同様である。
出力部520は、雑音低減装置500が雑音を低減した音データを出力するインターフェースである。出力部520による出力形態や出力タイミング等は、制御部550により制御される。出力部520は、雑音低減装置500が単体で用いられる場合は、雑音が低減された音データの出力を行う各種インターフェースを備え、雑音低減装置500が通信装置600に内蔵される場合は、通信装置600が備える通信部に雑音が低減された音データを出力する。
記憶部530は、雑音低減装置500の雑音低減処理に用いる一時的なデータの記憶や、概形モデル等を記憶する。記憶部530の具体的な構成は記憶部130と同様であり、制御部550において実行される各種プログラムも記憶部530に記憶される。
制御部550は、雑音低減装置500の構成要素および各種処理のためのプログラムを実行するCPUやDSP等である。雑音低減装置500が通信装置600に内蔵されている場合は、通信装置600の制御部650と共用であってもよい。
制御部550は、実行されるプログラムによって各種機能を実現する。本実施形態において制御部550は、フレーム処理部551、突発音検出部552、音声区間判定部553、突発音周期性判定部554、音圧量調整値決定部555、出力レベル調整部556を実現する。
フレーム処理部551は、フレーム処理部151と同様に、入力部510から入力された雑音を低減する対象の音データに対して、所定のサンプル数に従った時間幅で音データをフレームに区切る処理を行う。
突発音検出部552は、フレーム処理部551でフレーム化された時間幅の音データから、検出対象である突発音を検出する処理を行う。また、突発音検出部552は、検出された突発音に対して概形モデル化処理を行う。
音声区間判定部553は、フレーム処理部551でフレーム化された時間幅の音データが音声を含む音声区間であるか否かを判断する処理を行う。また、音声区間判定部553は、音声区間に対して音声を包含する割合である音声包含量を算出する処理を行う。
突発音周期性判定部554は、突発音検出部552で検出された突発音が周期性を備える周期性突発音であるか否かを判断する処理を行う。
音圧量調整値決定部555は、突発音周期性判定部554突発音が周期性を備えると判断された場合、音声区間判定部553による判定結果に基づき突発音の音圧量調整値を決定する処理を行う。
出力レベル調整値556は、音圧量調整値決定部555により決定された音圧量調整値によって突発音の音圧量を調整することにより、突発音を低減する処理を行う。
図15は、図14に示す突発音検出部552の構成ブロック図である。突発音検出部552が突発音を検出するための構成は問わないが、一例として図1に示す振幅検出部152、突発音確定部153および概形モデル化部154が突発音を検出するための機能であるため、各々と同様の機能である振幅検出部561、突発音確定部562および概形モデル化部563を備える。
振幅検出部561は、フレーム処理部551でフレーム化された時間軸の音データを構成する複数のサンプル点より、振幅値が他のサンプル点と比較して高い値を示すサンプル点の位置をピーク位置として検出する処理を行う。具体的には、振幅値が所定の閾値以上である場合のピーク位置を検出する。
突発音確定部562は、振幅検出部561において検出されたピーク位置に基づき、振幅の高い信号が継続する期間と、ピーク位置を基準としたエネルギー変化量を算出し、検出対象となる突発音を確定する処理を行う。
概形モデル化部563は、突発音確定部562において確定された突発音の時間軸音声振幅波形から概形モデル波形を生成する処理を行う。
次に、図16のフローチャートを用いて雑音低減装置500による雑音低減方法について説明する。
先ず、入力部510に入力された音データに対してフレーム処理部551は所定のサンプル数の時間幅でフレーム化する処理を行う(ステップS501)。ステップS501の処理は、図2に示すステップS001の処理と同様である。例えば酸素残量が少なくなった際の酸素マスクが振動することによる周期的突発音は、最も音圧レベルが高いピーク位置の立ち上がりから立ち下がりまで約0.1secの時間幅を有する。従って、このような周期性突発音の存在を検出するためには、各突発音の前後の突発音を含まない区間を確保し、ピーク位置における振幅の変化量やエネルギー変化量の推移に基づき突発音を検出する必要がある。このため、検出対象の突発音の存在を把握するための時間幅としては、ピーク位置の立ち上がりから立ち下がりまでの約0.1secに対して、0.3secから0.5secであることが望ましい。
次に、突発音検出部552は、ステップS501においてフレーム化された音データから突発音を検出し、検出された突発音の振幅値および波形の変化量から概形モデル化処理を行う(ステップS502)。突発音検出部552による突発音の検出手法は様々な手法が適用可能であるが、一例としては、図2に示すステップS002からステップS005の処理を適用してもよい。また、突発音検出部552による突発音の概形モデル化処理についても図2に示すステップS006の処理を適用してもよい。この場合、突発音検出部552は、図15に示すように、振幅検出部152、突発音確定部562および概形モデル化部154に対応する振幅検出部561、突発音確定部562および概形モデル化部563としての機能を備える。
ステップS502の突発音検出処理を図17を用いて説明する。先ず、振幅検出部561はステップS501においてフレーム化した音データの振幅値を所定の閾値と比較し(ステップS602)、振幅値が閾値以上であるか否かを判断する(ステップS602)。ステップS602において、振幅値が閾値以上であると判断された場合、振幅検出部561は時間軸上のピーク位置を検出する。
ステップS602において振幅値が閾値以下であると判断された場合(ステップS602:No)、解析対象となるフレームにおいて突発音は無いため、次のフレームを解析対象としてステップS501の処理に戻る。
ステップS602において、振幅値が閾値以上であると判断された場合(ステップS602:Yes)、突発音確定部562は、検出したピーク位置に基づき振幅の高い信号の継続時間とピーク位置を基準としたエネルギー変化量を算出し、突発音を確定する(ステップS603)。
また、ステップS603においては、ピーク位置を基準としたエネルギー変化量として、ピーク位置から区間Int内の最後のサンプル位置までの振幅の絶対値を加算し、エネルギーを算出する。突発音確定部562は、ステップS603において算出した継続時間とエネルギー変化量各々が所定の閾値以上である場合(ステップS604:Yes)、そのピーク位置における波形を突発音として確定する。所定の閾値以下である場合(ステップS604:No)、突発音は検出されないため、次のフレームを解析対象としてステップS501の処理に戻る。
次に、概形モデル化部563は、ステップS604において突発音として検出された波形に対して概形モデル化処理を行う(ステップS605)。
ここで、概形モデル化処理の例について図18から図22を用いて説明する。ここで説明する概形モデル化処理は、ステップS605の処理を実行する概形モデル化部563において実施されるとともに、図2のステップS006の処理を実行する概形モデル化部154における概形モデル化処理に適用してもよい。なお、本実施形態においては、突発音を低減する際にAGC(Automatic Gain Control)処理を用いるため、概形モデル化処理においてAGC係数を用いる。AGC処理は周知の手法であるが、本実施形態においてはAGC係数を突発音の低減に応用し、入力された音データに含まれる突発音の感度を下げて出力することで、突発音を低減することを可能とする。
先ず、概形モデル化処理の第1の例を、図18および図19を用いて説明する。
概形モデル化部563は、突発音確定部562により確定された突発音の突発音区間から最大振幅値を検出する(ステップS701)。ステップS701の処理は、図19(A)に示すように、突発音としての波形の開始位置から終了位置までの区間である突発音区間における振幅の最大値を検出する。ここで検出する振幅の最大値は振幅の絶対値の最大値であってもよい。
次に、概形モデル化部563は、ステップS701において検出した最大振幅値からAGC係数αpkを算出する(ステップS702)。ステップS702におけるAGC係数αpkの算出は、式3を用いて求める。式3において、Igainは入力信号の振幅値でありステップS701において検出した最大振幅値である。HgainはIgainに対してAGC処理を行った後の目標とする振幅値であり、Mgainは所定の閾値である。
式3において、所定の閾値であるMgainは、突発音区間の振幅値から算出することが望ましいが、予め設定された値であってもよい。AGC処理後の目標値であるHgainは、突発音が存在しない区間の振幅値と同等となるように設定することが望ましいが、予め設定された値であってもよい。
式3は、具体的には、入力信号の振幅値であるIgainが所定の閾値Mgainより大きい場合にHgainとなるように調整するAGC係数αpkを算出する。
次に、概形モデル化部563はステップS702において算出されたAGC係数αpkを、突発音区間の各サンプル値に入力するとともに、突発音区間以外のAGC係数を1として、図19(B)に示すような矩形波を作成する(ステップS703)。ステップS703で作成された矩形波を突発音の概形モデルとする。
次に、概形モデル化処理の第2の例を、図20を用いて説明する。概形モデル化処理の第2の例は、第1の例として説明した図18のフローチャートにおけるステップS703の処理が異なる。
概形モデル化部563は、ステップS702において算出されたAGC係数αpkに基づいて、図20に示すように、突発音波形のピーク位置と突発音区間の前後のサンプル数から三角波を作成する(ステップS703)。ここでいうピーク位置とは、ステップS701で検出された突発音区間の最大値の振幅値とサンプル位置を示す。
例えば、サンプル位置StにおけるAGC係数αStは式4により求められる。
第2の例におけるステップS703は、ピーク位置から突発音区間の範囲内におけるサンプル位置毎にAGC係数を求めて作成された三角波を突発音の概形モデルとする。
次に、概形モデル化処理の第3の例を、図21および図22を用いて説明する。概形モデル化処理の第3の例は、第1の例および第2の例として説明した図18のフローチャートにおけるステップS701の後にステップS710の処理が加えられることが異なる。
概形モデル化部563は、ステップS701において検出した突発音の最大振幅値におけるサンプル位置から突発音を区間分割し、分割した各々の区間における振幅の最大値を検出する(ステップS710)。具体的には、図22(A)に示すように、ステップS701において検出した突発音を最大振幅値におけるサンプル位置を基準として、任意の複数区間として突発音区間を分割する。図22(A)においては、最大値を基準として区間幅tの分割区間a、分割区間bおよび分割区間cに突発音区間を分割している。
分割数および分割方法は任意である。具体例として最大振幅値のサンプル位置から突発音区間終了位置までを任意の分割数で等分した区間幅tによる分割を行う。突発音の特性としては、突発音区間の初期に最大振幅値が存在するため、突発音区間発生位置から最大振幅値のサンプル位置までは区間分割する必要は無いが、突発音の特性によっては区間分割する。
概形モデル化部563は、分割した各々の区間における最大振幅値を検出し、式4により各々の区間の最大振幅値におけるAGC係数を算出し、図22(B)に示すような波形を突発音の概形波形とする。図22(B)に示す突発音の概形波形は波形を平滑化してもよい。
図16に戻り、ステップS501においてフレーム化された音データに対し、音声区間判定部553はそのフレームが音声区間であるか否かを判断する(ステップS503)。音声区間の判定処理とは、フレーム化された区間の音データに人の声の成分が含まれている場合を音声区間とする処理である。
ステップS503において音声区間ではないと判断された場合(ステップS504:No)、つまり人の声の成分が含まれていないと判断された場合は、判断対象のフレームが音声区間でないことを記憶し、ステップS506へ推移する。音声区間でないことの記録としては、音声区間であるフレームに対して例えば「1」または「正」のフラグを付し、音声区間ではないフレームに対してはフラグを付さないなどである。
ステップS503において音声区間であると判断された場合(ステップS504:Yes)、つまり人の声の成分が含まれていると判断された場合は、判断対象のフレームに対して音声区間であることを示すフラグを付し、判断対象のフレームにおける音声成分の包含量を算出し(ステップS505)、ステップS506へ推移する。
ステップS501の音声区間判定の処理手法およびステップS505の音声成分包含量算出手法は任意であるが、具体例として本出願人による特開2012−128411号公報に開示された技術等を適用することができる。
ステップS502の処理、およびステップS503からステップS505の処理は、並行して実行されてもよく、いずれかを先に処理してもよい。
次に、突発音周期性判定部554は、ステップS502における突発音の検出結果およびステップS503における音声区間判定結果に基づき、検出された突発音の周期性を検出する(ステップS506)。ステップS506における突発音の周期性検出処理は、ステップS502における概形モデル化処理(ステップS605)による突発音の概形モデル間の最大振幅値を示すピークの間隔を測定することにより求める。測定されたピークの間隔が、許容された誤差範囲であり且つ所定回数に渡って連続している場合、検出された突発音は周期性を備える周期性突発音であると判断できる。 また、ステップS506における突発音の周期性検出は、突発音の概形モデルの自己相関を用いた、図2に示すステップS008およびステップS009の処理を用いてもよい。
ステップS506の検出結果により、突発音が周期性を備える周期性突発音であると判断された場合(ステップS507:Yes)、周期性突発音の持続性を示すフラグを付す。具体的には突発音が周期性突発音であると判断された初回の突発音から、例えば「1」または「正」のフラグを付し、突発音が検出されなくなるまで、または突発音が周期性突発音ではないと判断されるまでフラグを維持する。
また、突発音が周期性であることを示すフラグが維持されている状態であり、ステップS502において突発音が検出されなかった場合であっても、検出対象のフレームに対してステップS503において音声区間であると判断されている場合は、ステップS506の処理において突発音が周期性を備えるとする。これは、検出対象のフレームに含まれている音声成分の影響により突発音が検出できない可能性があるためである。
ステップS506において突発音が周期性を有さないと判断された場合(ステップS507:No)、検出された突発音に周期性が無い、または周期性突発音が終了したために、次のフレームを解析対象としてステップS501の処理に戻る。突発音が周期性を有さない判断は、例えば突発音の概形モデルの相関値や時間幅による周期性検出に加えて、ステップS503における音声区間ではない場合が該当する。また、音声区間であっても音声包含量が所定以下の場合に周期性を有さないと判断する対象としてもよい。ステップS507がNoの場合に周期性突発音の持続性を示すフラグが付されている場合は、検出対象のフレームよりフラグを消去する。
ステップS507において突発音が周期性を有すると判断された場合(ステップS507:Yes)、ステップS508以降の周期性突発音の音圧量調整値を決定する処理に進む。
ステップS508において音圧量調整値決定部555は、周期性突発音であると判断されたフレームが音声区間であるか否かを判断する(ステップS508)。ステップS508の判断は、ステップS504において付されたフラグの有無により判断する。
ステップS508において音声区間ではないと判断された場合(ステップS508:No)、すなわち周期性突発音である突発音が含まれるフレームに音声成分が含まれていない場合は、検出された突発音の音圧を低減しても音声には影響が無い。このため、このようなフレームにおいては、ステップS605において概形モデル化された波形に基づき音圧量調整値を算出する(ステップS509)。
ステップS509において算出される音圧量調整値は、具体的にはそのフレームにおける概形モデル化波形をそのまま用いる。具体的には、図18および図21におけるステップS703で作成されたAGCカーブをそのフレームにおける音圧量調整値とする。
ステップS508において音声区間であると判断された場合(ステップS508:Yes)、すなわち周期性突発音である突発音が含まれるフレームに音声成分が含まれている場合は、含まれる音声成分の影響を加味して音圧量調整値を設定する。音圧量調整値決定部555は、周期性突発音である突発音が含まれるフレームの音声成分の含有量が閾値以上であるか否かを判断する(ステップS510)。
ステップS510において、音声成分の含有量が所定の閾値以上であると判断された場合(ステップS510:Yes)、突発音よりも音声成分が強くなることが考えられる。ここで、ステップS605において概形モデル化された波形に基づき音圧量調整値を算出すると、音声成分を大幅に減少させてしまう。ステップS511においては、概形モデル化された波形に基づく音圧量調整ではなく、記憶部530に記憶されている過去に求めた音圧量調整値を調整して用いる(ステップS511)。
ステップS511の処理を具体的に説明すると、音声成分の含有量が所定の閾値以上である場合は、周期性突発音であることを示すフラグが付されていても、上述したように音声成分の影響により突発音が検出できない場合である。仮に検出できたとしても突発音よりも音声が強い可能性がある。このため、対象フレームの直近で更新された音圧量調整値を記憶部530より読み出す。記憶部530から読み出す直近の音圧量調整値は、音声信号が含まれていないフレームにおける音圧量調整値とする。この場合、音圧量調整値の最大振幅値を、例えば2分の1、3分の1など音声信号が必要以上に低減されないように調整する。音圧量調整値の調整は、予め定められた値であってもよく、音声成分の含有量に基づき変更可能であってもよい。
ステップS510において、音声成分の含有量が所定の閾値未満であると判断された場合(ステップS510:No)、突発音が検出されているが音声信号も含まれている。このため、音圧量調整値決定部555はステップS509と同様に対象となるフレームの概形モデル化波形に基づいたAGCカーブを、音声信号が必要以上に低減されないように調整した上で用いる(ステップS512)。ステップS512における音圧量調整値の調整も、予め定められた値であってもよく、音声成分の含有量に基づき変更可能であってもよいが、ステップS511における調整に比して音圧調整t値の最大振幅値が小さくならないような調整である。
ステップS509、ステップS511およびステップS512の処理において音圧量調整値が決定した後、音圧量調整値決定部555は対象のフレームに対して音圧調整値に基づき突発音を低減する処理を行う(ステップS513)。また、ステップS509、ステップS511およびステップS512の処理において決定された音圧調整値は、対象のフレームに対応付けられて逐次記憶部530に記憶される。ここで記憶された音圧調整値は次以降のフレームにおけるステップS511およびステップS512の処理時に用いられる。
このような処理を行うことで、雑音低減装置500は、音声信号が含まれている場合であっても音声信号への影響を最小限としながら、周期性突発音を低減することができる。
次に、雑音低減装置500を用いた通信装置600について、図23を用いて説明する。通信装置600は通信装置200と同様に各種無線通信装置や携帯電話等であり、通信装置200と同一の装置であってもよい。この場合、通信装置600には雑音検出装置100による雑音検出機能およひ雑音低減装置500による雑音低減機能が搭載されることとなる。
通信装置600は、主な構成要素として雑音低減検出装置500、マイクロフォン610、音声出力部620、通信部630、表示部640、制御部650を備える。これら以外にも例えば電源や操作部など通信装置600として機能するために必要な構成要素を適宜備える。
マイクロフォン610は、通信装置600を用いて音声通話を行う場合に音声信号などの音信号を取得するためのマイクロフォンおよび雑音低減装置500による雑音を検出するためのマイクロフォンであり、マイクロフォン210と同様の構成である。各々の目的のマイクロフォンは、共用されてもよく各々備えられていてもよい。マイクロフォン610から入力された信号は、制御部650によって通信部630により送信される搬送波に変調される。通信部630によって送信されるデータは雑音低減装置500によって雑音が低減されたデータである。
音声出力部620は、通信装置600を用いて音声通話を行う場合に通話先からの音声を出力するためのスピーカまたはイヤホン等であり、音声出力部220と同様の構成である。
通信部630は、各種無線通信の送受信を行う通信モジュール等であり、通信部230と同様の構成である。
表示部640は、液晶表示装置等の表示素子であり、表示部240と同様の構成である。
制御部650は、通信装置600の構成要素および各種処理のためのプログラムを実行するCPUやDSP等であり、制御部250の構成と同様である。また、雑音低減装置500の制御部550と共用であってもよい。
制御部650は、実行されるプログラムによって各種機能を実現する。本実施形態において制御部650は、通信制御部653を備え、通信部630による無線通信に関する制御を行う。
このような構成を備える通信装置600は、周期性突発音が発生する環境下においても雑音低減処理による音声信号への影響を抑え、適切に雑音が低減された音声通信を行うことができる。