【実施例】
【0038】
以下では、図面を参照して生体音解析装置及び生体音解析方法、並びにコンピュータプログラム及び記録媒体の実施例について詳細に説明する。なお、以下の実施例では、本発明に係る生体音解析装置が、生体の呼吸音を解析する装置に適用される場合について説明する。
【0039】
<全体構成>
先ず、本実施例に係る生体音解析装置の全体構成について、
図1を参照して説明する。ここに
図1は、本実施例に係る生体音解析装置の全体構成を示すブロック図である。
【0040】
図1において、本実施例に係る生体音解析装置は、主な構成要素として、生体音センサ110と、信号記憶部120と、信号処理部125と、音声出力部130と、基底保持部140と、表示部150と、処理部200とを備えて構成されている。
【0041】
生体音センサ110は、生体の呼吸音を検出可能に構成されたセンサである。生体音センサ110は、例えばECM(Electret Condenser Microphone)やピエゾを利用したマイク、振動センサ等で構成されている。
【0042】
信号記憶部120は、例えばRAM(Random Access Memory)等のバッファとして構成されており、生体音センサ110で検出された呼吸音を示す信号(以下、適宜「呼吸音信号」と称する)を一時的に記憶する。信号記憶部120は、記憶した信号を、音声出力部130及び処理部220に夫々出力可能に構成されている。
【0043】
信号処理部125は、生体音センサ110で取得した音を加工して音声出力部130に出力する。信号処理部125は、例えばイコライザーやフィルターとして機能し、取得した音を人が聴き易い状態に加工する。
【0044】
音声出力部130は、例えばスピーカやヘッドホンとして構成されており、生体音センサ110で検出され、信号処理部125で加工された呼吸音を出力する。
【0045】
基底保持部140は、例えばROM(Read Only Memory)等として構成されており、呼吸音に含まれ得る所定の音種に対応する基底を記憶している。なお、本実施例に係る基底は、本発明の「基準スペクトル」の一例である。
【0046】
表示部150は、例えば液晶モニタ等のディスプレイとして構成されており、処理部200から出力される画像データを表示する。
【0047】
処理部200は、複数の演算回路やメモリ等を含んで構成されている。処理部200は、周波数解析部210、周波数ピーク検出部220、基底集合生成部230、結合係数算出部240、信号強度算出部250及び画像生成部260を備えている。
【0048】
処理部200の各部の動作については後に詳述する。
【0049】
<動作説明>
次に、本実施例に係る生体音解析装置の動作について、
図2を参照して説明する。ここに
図2は、本実施例に係る生体音解析装置の動作を示すフローチャートである。ここでは、本実施例に係る生体音解析装置が実行する処理の全体的な流れを把握するための簡単な説明を行う。各処理の詳細については、後述する。
【0050】
図2において、本実施例に係る生体音解析装置の動作時には、先ず生体音センサ110において呼吸音が検出され、処理部200による呼吸音信号の取得が行われる(ステップS101)。
【0051】
呼吸音信号が取得されると、周波数解析部210において周波数解析(例えば、高速フーリエ変換)が実行される(ステップS102)。また、周波数ピーク検出部220において、周波数解析結果を用いてピーク(極大値)の検出が実行される。
【0052】
続いて、基底集合生成部230において基底集合が生成される(ステップS103)。具体的には、基底集合生成部230は、基底保持部140に記憶されている基底を用いて基底集合を生成する。この際、基底集合生成部230は、周波数解析結果から得られたピーク位置(即ち、対応する周波数)に基づいて、基底をシフトさせる。
【0053】
基底集合が生成されると、結合係数算出部240において、周波数解析結果及び基底集合に基づく結合係数の算出が実行される(ステップS104)。
【0054】
結合係数が算出されると、信号強度算出部250において、結合係数に応じた信号強度が算出される(ステップS105)。言い換えれば、呼吸音信号に含まれる各音種の割合が算出される。
【0055】
信号強度が算出されると、画像生成部260において、信号強度を示す画像データが生成される。生成された画像データは、表示部150において解析結果として表示される(ステップS106)。
【0056】
その後、解析処理を継続するか否かの判定が実行される(ステップS107)。解析処理を継続すると判定された場合(ステップS107:YES)、ステップS101からの処理が再び実行される。解析処理を継続しないと判定された場合(ステップS107:NO)、一連の処理は終了する。
【0057】
<呼吸音信号の具体例>
次に、本実施例に係る生体音解析装置で解析される呼吸音信号の具体例について、
図3及び
図4を参照して説明する。ここに
図3は、捻髪音を含む呼吸音の周波数解析結果を示すスペクトログラム図であり、
図4は、笛声音を含む呼吸音の周波数解析結果を示すスペクトログラム図である。
【0058】
図3に示す例では、正常呼吸音に対応するスペクトログラムパターンに加えて、異常呼吸音の1つである捻髪音に対応するスペクトログラムパターンが観測されている。捻髪音に対応するスペクトログラムパターンは、図中の拡大部分に示すように、菱形に近い形状である。
【0059】
図4に示す例では、正常呼吸音に対応するスペクトログラムパターンに加えて、異常呼吸音の1つである笛声音に対応するスペクトログラムパターンが観測されている。笛声音に対応するスペクトログラムパターンは、図中の拡大部分に示すように、鳥の首のような形状である。
【0060】
このように、異常呼吸音には複数の音種が存在し、その音種によって異なる形状のスペクトログラムパターンとして観測される。ただし、図を見ても分かるように、正常呼吸音及び異常呼吸音は互いに混じり合った状態で検出される。本実施例に係る生体音解析装置は、このように混じり合った複数の音種を分離するための解析を実行する。
【0061】
<呼吸音信号の近似方法>
次に、本実施例に係る生体音解析装置による解析方法について、
図5から
図8を参照して簡単に説明する。ここに
図5は、捻髪音を含む呼吸音の所定タイミングにおけるスペクトルを示すグラフであり、
図6は、捻髪音を含む呼吸音のスペクトルの近似方法を示す概念図である。また
図7は、笛声音を含む呼吸音の所定タイミングにおけるスペクトルを示すグラフであり、
図8は、笛声音を含む呼吸音のスペクトルの近似方法を示す概念図である。
【0062】
図5において、捻髪音を含む呼吸音信号(
図3参照)について、捻髪音に対応するスペクトログラムパターンが強く現れているタイミングでスペクトルを抽出すると、図に示すような結果が得られる。このスペクトルは、正常呼吸音と捻髪音とを含んでいると考えられる。
【0063】
図6において、正常呼吸音に対応するスペクトル及び捻髪音に対応するスペクトルは、予め実験等により推定できる。このため、予め推定したパターンを利用すれば、上述したスペクトルについて、正常呼吸音に対応する成分と捻髪音に対応する成分とがどのような割合で含まれているかを知ることができる。
【0064】
図7において、笛声音を含む呼吸音信号(
図4参照)について、笛声音に対応するスペクトログラムパターンが強く現れているタイミングでスペクトルを抽出すると、図に示すような結果が得られる。このスペクトルは、正常呼吸音と笛声音とを含んでいると考えられる。
【0065】
図8において、上述した正常呼吸音及び捻髪音と同様に、笛声音に対応するスペクトルについても、予め実験等により推定できる。このため、予め推定したパターンを利用すれば、上述したスペクトルについて、正常呼吸音に対応する成分と笛声音に対応する成分とがどのような割合で含まれているかを知ることができる。
【0066】
以下では、このような解析を実現するための各処理について、より具体的に説明する。
【0067】
<周波数解析>
呼吸音信号の周波数解析及び解析結果におけるピークの検出について、
図9から
図11を参照して詳細に説明する。ここに
図9は、周波数解析方法の一例を示すグラフであり、
図10は、周波数解析結果の一例を示す図である。また
図11は、スペクトルのピーク検出結果を示す概念図である。
【0068】
図9において、取得された呼吸音信号に対しては、先ず周波数解析が実行される。周波数は、高速フーリエ変換等の既存の技術を利用して行うことができる。本実施例では、周波数毎の振幅値(即ち、振幅スペクトル)を周波数解析結果として用いている。なお、データ取得時のサンプリング周波数、窓サイズ、窓関数(例えば、ハニング窓等)については、適宜決定すればよい。
【0069】
図10に示すように、周波数解析結果は、n個の値で構成されるものとして得られる。なお、「n」は、周波数解析における窓サイズ等によって決まる値である。
【0070】
図11において、周波数解析によって得られたスペクトルについては、ピークの検出が実行される。図に示す例では、100Hz、130Hz、180Hz,及び320Hzの位置にピークp1〜p4が検出されている。なお、ピークの検出処理については、どの周波数にピークが存在するかだけ分かればよいため、簡易的な処理でも構わない。ただし、小さなピークでも取りこぼしがないよう、ピーク検出のパラメータ設定されていることが好ましい。
【0071】
本実施例では、極大値を取る点を求め、更にその点の2階微分値の小さいもの(即ち、絶対値が大きいもの)から順に最大N個(Nは所定の値)を検出している。極大値は、差分の符号が正から負に切り替わる点から求められる。2階微分値は差分の差分で近似する。この値が所定の閾値(負の値)より小さいものを、小さいものから順に最大N個選び、その位置を記憶する。
【0072】
<基底集合の生成>
次に、基底集合の生成について、
図12から
図16を参照して詳細に説明する。ここに
図12は、正常肺胞呼吸音基底を示すグラフである。また
図13は、捻髪音基底を示すグラフであり、
図14は、連続性ラ音基底を示すグラフであり、
図15は、ホワイトノイズ基底を示すグラフである。
図16は、周波数シフトされた連続性ラ音基底を示すグラフである。
【0073】
図12から
図15に示すように、各音種に対応する基底は、特有の形状を有している。なお、各基底は周波数解析結果と同じn個の数値(即ち、周波数ごとの振幅値)で構成されている。なお、各基底は、周波数毎の振幅値を示す線と周波数軸とで囲まれた面積が所定の値(例えば1)になるように正規化されている。
【0074】
ちなみに、ここでは正常肺胞呼吸音基底、捻髪音基底、連続性ラ音基底、ホワイトノイズ基底の4つの基底を示しているが、1つの基底しかない場合でも解析を実行することができる。また、ここで挙げた基底以外の基底を用いることもできる。なお、ここで挙げた呼吸音に対応する基底に代えて、例えば心拍音や腸音に対応する基底を用いれば、心拍音や腸音の解析を実行することが可能となる。
【0075】
図16において、上述した基底のうち連続性ラ音に対応する基底は、周波数解析の結果から検出されたピーク位置に合わせて周波数シフトされる。ここでは、
図11で示したピークp1〜p4の各々に合わせて、連続性ラ音基底を周波数シフトさせた例を示している。なお、連続性ラ音に対応する基底以外の基底を周波数シフトさせてもよい。
【0076】
以上の結果、基底集合は、正常肺胞呼吸音基底、捻髪音基底、ピーク検出個数分の連続性ラ音基底、及びホワイトノイズ基底の集合として生成される。
【0077】
<結合係数の算出>
次に、結合係数の算出について、
図17から
図19を参照して詳細に説明する。ここに
図17は、スペクトルと、基底及び結合係数との関係を示す図であり、
図18は、観測されたスペクトル及び近似に用いられる基底の一例を示す図である。また
図19は、非負値行列因子分解による近似結果を示す図である。
【0078】
解析対象であるスペクトルy、基底h(f)、及び結合係数uの関係は、以下の数式(1)で表すことができる。
【0079】
【数1】
【0080】
図17に示すように、スペクトルy及び各基底h(f)は、n個の値を有している。他方、結合係数は、m個の値を有している。なお、「m」は、基底集合に含まれる基底の数である。
【0081】
本実施例に係る生体音解析装置では、非負値行列因子分解を利用して基底集合に含まれる各基底の結合係数を算出する。具体的には、以下の数式(2)で示される最適化基準関数Dを最小化するu(ただし、uの各成分値は非負)を求めればよい。
【0082】
【数2】
【0083】
なお、一般的な非負値行列因子分解は、基底スペクトルの集合を表す基底行列と、結合係数を表すアクティベーション行列を共に算出する手法であるが、本実施例においては、基底行列を固定して結合係数のみを算出している。
【0084】
ちなみに、結合係数を算出するための手段として、非負値行列因子分解以外の近似法を用いてもよい。ただし、この場合においても非負であるという条件が望まれる。以下では、非負の近似法を用いる理由について、具体例を挙げて説明する
図18に示すように、観測されたスペクトルを、基底A〜Dの4つの基底で近似して結合係数を算出する場合を考える。なお、非負であることを条件とした場合の期待する結合係数uは、基底Aに対応するものが1、基底Bに対応するものが1、基底Cに対応するものが0、基底Dに対応するもの0である。即ち、非負であることを条件とした場合、観測されたスペクトルは、基底Aに1を乗じたものと、基底Bに1を乗じたものとを足し合わせたスペクトルとして近似される。
【0085】
一方、非負であることを条件としない場合の期待する結合係数uは、基底Aに対応するものが0、基底Bに対応するものが0、基底Cに対応するものが1、基底Dに対応するものが−0.5である。即ち、非負であることを条件としない場合、観測されたスペクトルは、基底Cに1を乗じたものと、基底Dに−0.5を乗じたものとを足し合わせたスペクトルとして近似される。
【0086】
上述した2つの例を比較した場合、非負であることを条件とする場合よりも、非負であることを条件としない場合の方が高い近似精度を得られることがある。しかしながら、ここでの結合係数uはスペクトルごとの成分量を表すものであるため、非負の値として得られなければならない。言い換えれば、結合係数uが負の値で得られた場合には、成分量としての解釈ができない。これに対し、非負の条件を課して近似を行えば、成分量に対応する結合係数uを算出することができる。
【0087】
図19において、本実施例に係る生体解析装置では、上述したように、正常肺胞呼吸音基底、捻髪音基底、4つの連続性ラ音基底、及びホワイトノイズ基底からなる基底集合を用いて結合係数uを算出するため、結合係数uは、u
1からu
7の7個の値を有するものとして算出される。
【0088】
ここで、正常肺胞呼吸音基底に対応する結合係数u
1は、呼吸音に対する正常肺胞呼吸音の割合を示す値であると言える。同様に、捻髪音基底に対応する結合係数u
2、ホワイトノイズ基底に対応する結合係数u
3、100Hzにシフトした連続性ラ音基底に対応する結合係数u
4、130Hzにシフトした連続性ラ音基底に対応する結合係数u
5、180Hzにシフトした連続性ラ音基底に対応する結合係数u
6、及び320Hzにシフトした連続性ラ音基底に対応する結合係数u
7の各々についても、呼吸音に対する各音種の割合を示す値であると言える。従って、結合係数uから各音種の信号強度を算出することができる。
【0089】
<解析結果の表示>
次に、解析結果の表示について、
図20及び
図21を参照して詳細に説明する。ここに
図20は、表示部における表示例を示す平面図である。また
図21は、笛声音の抽出例を示すスペクトログラム図である。
【0090】
図20に示すように、解析結果である各音種の強度は、棒グラフとして表示部150の表示領域155に表示される。ただし、この表示方法は一例であり、他の表示態様で表示を行ってもよい。例えば、各音種の割合(含有比率)を算出して円グラフとして表示してもよい。或いは、各音種の強度を数値化して表示してもよい。
【0091】
図21に示すように、スペクトログラムから、所定の音種に対応するパターンだけを抽出して表示することもできる。ここでは、笛声音に対応するパターンだけを抽出した例を示している。
【0092】
なお、上述した画像としての出力に代えて或いは加えて、音声データによる出力も可能である。具体的には、音種毎に別々に音声を出力することができる。或いは、特定の音種だけを強調して音声を出力することができる。
【0093】
ちなみに、短時間フーリエ変換(STFT:Short Time Fourier Transform)のような、ある一定時間ごとに周波数解析を行う手法と組み合わせることで、動的に各タイミングでの解析結果を出力することができる。
【0094】
また、本実施例では、信号強度を振幅スペクトルに対応するものとして算出しているが、パワースペクトルに対応するように換算処理を行ってもよい。またdB値に換算してもよい。
【0095】
本発明は、上述した実施形態に限られるものではなく、特許請求の範囲及び明細書全体から読み取れる発明の要旨或いは思想に反しない範囲で適宜変更可能であり、そのような変更を伴う生体音解析装置及び生体音解析方法、並びにコンピュータプログラム及び記録媒体もまた本発明の技術的範囲に含まれるものである。