(57)【特許請求の範囲】
【請求項１】
音から生成されたパルス信号が入力されて、該入力パルス信号と結合重みとを用いて演算された内部電位値が閾値を超えたときに発火するように構成された複数個の競合学習パルスニューロンモデル部（以下、「競合学習ニューロン」という。）と、
前記競合学習ニューロンの複数発火と無発火とを検出する検出手段と、
を備え、
前記検出手段からの出力を用いて、結合重みから構成される参照ベクトルが入力パルス信号から構成される入力ベクトルに最も近い前記競合学習ニューロンのみが発火する方向に、制御を行うように構成された複数音識別装置であって、
認識単位時間内にいずれの前記競合学習ニューロンの発火頻度が最大になったかによって、１の音源種類の特定情報を出力した後、該特定情報で特定された音源種類を示す前記競合学習ニューロンの出力を０にして、次の認識単位時間内にいずれの前記競合学習ニューロンの発火頻度が最大になったかによって、他の音源種類の特定情報を出力することを特徴とする複数音識別装置。
【請求項２】
前記１の音源種類の特定情報で特定された音源種類を示す前記競合学習ニューロンの出力を０にするとともに、発火頻度が最大となった前記競合学習ニューロンの結合重みに基づいて前記各競合学習ニューロンの結合重みを減少させて、次の認識単位時間内にいずれの前記競合学習ニューロンの発火頻度が最大になったかによって、他の音源種類の特定情報を出力することを特徴とする請求項１記載の複数音識別装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、パルスニューロンモデルからなるパルスニューラルネットワークを用いて音源の種類を識別する音源識別装置に関し、特に、複数音が重なった音から各音源の種類を識別する複数音識別装置に関する。
【背景技術】
【０００２】
パルスニューラルネットワークを用いた音源識別装置（音源同定装置）には、下記特許文献１、非特許文献１、２に記載されたものがある。また、音源定位装置の時間差検出機構を音源認識装置の前処理機構として用いるものとして、下記非特許文献３に記載されたものがある。さらに、関連する文献として下記非特許文献４〜７があり、出願人による関連する出願に下記特許文献２〜４がある。
【０００３】
非特許文献７には、聴覚情報処理システムのためのパルスニューロンモデルを用いた競合学習ニューラルネットワーク（以下、「ＣＯＮＰ」という。）が開示されている。ＣＯＮＰは、Kohonenの競合学習モデルならびに自己組織化マップ（Self-Organizing Maps  以下、「ＳＯＭ」という。）をパルスニューラルネットワークに適用したものであり、入力ベクトルの位相関係を保持したまま量子化を行うベクトル量子化ニューラルネットワークである。ＣＯＮＰを用いれば、聴覚情報処理に適したベクトル量子化が可能であることが非特許文献７で確認されている。
【特許文献１】特許第３１６４１００号公報
【特許文献２】特願２００６−２５２７９８
【特許文献３】特願２００６−２６０８５３
【特許文献４】特願２００７−２８３７４２
【非特許文献１】坂口晋也、「パルスニューロンモデルを用いた音源認識に関する研究」、名古屋工業大学平成９年度卒業論文、１９９８年３月
【非特許文献２】坂口晋也、黒柳奨、岩田彰、「環境把握のための音源識別システム」、電子情報通信学会ＮＣ研究会技術研究報告、社団法人電子情報通信学会、１９９９年１２月、ＮＣ９９−７０、ｐ．６１−６８
【非特許文献３】中尾裕之、黒柳奨、岩田彰、「パルスニューラルネットワークによる音源の方向情報を用いた音像抽出モデル」、電子情報通信学会ＮＣ研究会技術研究報告、社団法人電子情報通信学会、２００１年３月、ＮＣ２０００−１０８、ｐ．３９−４６
【非特許文献４】田中愛久、黒柳奨、岩田彰、「ＦＰＧＡのためのニューラルネットワークのハードウェア化手法」、電子情報通信学会ＮＣ研究会技術研究報告、社団法人電子情報通信学会、２００１年３月、ＮＣ２０００−１７９、ｐ．１７５−１８２
【非特許文献５】黒柳奨、平田浩一、岩田彰、「パルスニューラルネットワークのための競合学習手法」、電子情報通信学会ＮＣ研究会技術研究報告、社団法人電子情報通信学会、２００２年３月、ＮＣ２００１−２１０、ｐ．１１３−１２０
【非特許文献６】二俣宣義、黒柳奨、岩田彰、「ＦＰＧＡのためのパルスニューロンモデルの実装方法」、電子情報通信学会ＮＣ研究会技術研究報告、社団法人電子情報通信学会、２００２年３月、ＮＣ２００１−２１１、ｐ．１２１−１２８
【非特許文献７】黒柳奨、岩田彰、「聴覚情報処理システムのためのパルスニューロンモデルを用いた競合学習ニューラルネットワーク」、電子情報通信学会論文誌（Ｄ−ＩＩ）、２００４年７月、第Ｊ８７−Ｄ−ＩＩ巻、第７号、ｐ．１４９６−１５０４
【発明の開示】
【発明が解決しようとする課題】
【０００４】
音源識別装置にＣＯＮＰを適用することを考えた場合、実環境では入力音には複数の音源から発せられた音が重なっていることを前提とする必要がある。しかし、ＣＯＮＰは入力ベクトルを量子化して唯１つの競合学習ニューロンを発火させようとするものであるため、複数の音源から音が発せられている場合には、それらの混在パターンから１つの音源のみを特定し、複数の音源を識別することができないという問題があった。例えば、実環境においては、救急車の音は一般の自動車の音と重なっていることが多いが、ＣＯＮＰはその重なった音のパターンが一般の自動車の音のパターンに近ければ一般の自動車と認識し、救急車の音は認識できないという問題があった。
【０００５】
この発明は、上述した問題を解決するものであり、複数音（複数音源から発せられた音）の混在パターンから複数の音源の種類を識別することが可能な複数音識別装置を提供することを目的とする。
【課題を解決するための手段】
【０００６】
本発明の複数音識別装置は、音から生成されたパルス信号が入力されて、該入力パルス信号と結合重みとを用いて演算された内部電位値が閾値を超えたときに発火するように構成された複数個の競合学習パルスニューロンモデル部（以下、「競合学習ニューロン」という。）と、前記競合学習ニューロンの複数発火と無発火とを検出する検出手段と、を備え、前記検出手段からの出力を用いて、結合重みから構成される参照ベクトルが入力パルス信号から構成される入力ベクトルに最も近い前記競合学習ニューロンのみが発火する方向に、制御を行うように構成された複数音識別装置であって、認識単位時間内にいずれの前記競合学習ニューロンの発火頻度が最大になったかによって、１の音源種類の特定情報を出力した後、該特定情報で特定された音源種類を示す前記競合学習ニューロンの出力を０にして、次の認識単位時間内にいずれの前記競合学習ニューロンの発火頻度が最大になったかによって、他の音源種類の特定情報を出力することを特徴とする。
【０００７】
ここで、前記１の音源種類の特定情報で特定された音源種類を示す前記競合学習ニューロンの出力を０にするとともに、発火頻度が最大となった前記競合学習ニューロンの結合重みに基づいて前記各競合学習ニューロンの結合重みを減少させて、次の認識単位時間内にいずれの前記競合学習ニューロンの発火頻度が最大になったかによって、他の音源種類の特定情報を出力することが好ましい。
【発明の効果】
【０００８】
本発明の複数音認識装置によれば、最初に識別した音源種類を示す競合学習ニューロンの出力を０にして、次の音源種類を識別するので、複数音の混在パターンから複数の音源種類を識別することが可能となる。
【発明を実施するための最良の形態】
【０００９】
以下、本発明の一実施形態である複数音識別装置について、図面に基づいて説明する。図１は、実施形態の複数音識別装置１を含む音源同定装置Ｓ全体の構成図である。音源同定装置Ｓは、ＡＤ変換部２と聴覚末梢系モデル部３と複数音識別装置１とから構成されている。ＡＤ変換部２は、マイクロホンで集音された入力信号をＡＤ変換する。聴覚末梢系モデル部３は、人の聴覚系の蝸牛に相当する蝸牛モデル部４と、有毛細胞に相当する有毛細胞モデル部５と、蝸牛神経に相当する蝸牛神経モデル部６とを備えている。蝸牛モデル部４は、バンドパスフィルタ（ＢＰＦ）群により構成され、ＡＤ変換部２でデジタル変換された入力信号を所定の周波数範囲について対数スケールで複数（Ｎ個）の周波数帯域（周波数チャンネル）の信号に分解する。有毛細胞モデル部５は、蝸牛モデル部４から入力された各周波数帯域の信号に対して、それぞれ、非線形変換を行うことによりその正の成分だけを取り出すとともに、ローパスフィルタ（ＬＰＦ）によりエンベロープ検出を行う。蝸牛神経モデル部６は、有毛細胞モデル部５から入力された各周波数帯域の信号を、それぞれ、信号強度に比例したパルス頻度を持つパルス列に変換する。これらの処理により、聴覚末梢系モデル部３は、入力信号を周波数帯域毎に信号強度に応じたパルス頻度を持つパルス信号列に変換して、複数音識別装置１に出力する。
【００１０】
複数音識別装置１の説明に先立って、ＣＯＮＰについて説明する。まず、ＣＯＮＰの基本的構成について説明する。ＣＯＮＰは、図２に示すように、競合学習ニューロン群５０と制御ニューロン群６０とから構成され、競合学習ニューロン群５０は複数の競合学習ニューロン（以下、「ＣＬニューロン」ともいう。）５１から構成されている。制御ニューロン群６０は２つの制御ニューロン、すなわち、ＣＬニューロン５１が１つも発火（すなわち、パルス信号「１」を出力）しなかったときに発火する無発火検出ニューロン（以下、「ＮＦＤニューロン」ともいう。）６１とＣＬニューロン５１が複数発火したときに発火する複数発火検出ニューロン（以下、「ＭＦＤニューロン」ともいう。）６２とから構成され、ＣＬニューロン５１の複数発火（すなわち、ＣＬニューロン５１が複数個発火したこと）と無発火（すなわち、ＣＬニューロン５１が１個も発火しなかったこと）とを検出する検出手段に相当する。
【００１１】
ＮＦＤニューロン６１とＭＦＤニューロン６２は、それらの発火状況に応じて各ＣＬニューロン５１の閾値または内部電位を一律に変化させることで、ＣＬニューロン群５０内でＣＬニューロン５１が唯１つ発火する方向に（すなわち、ＣＬニューロン５１が複数発火した場合は発火を抑制し、無発火だった場合には発火を促進するように）制御を行うためのパルスニューロンモデルである。以下、パルスニューロンモデルを「ＰＮモデル」という。ＮＦＤニューロン６１とＭＦＤニューロン６２は、ＣＬニューロン群５０内のＣＬニューロン５１の数に応じたシナプス部を備え、各ＣＬニューロン５１から出力されたパルス信号を各シナプス部で受け取って、ＮＦＤニューロン６１は、全てのＣＬニューロン５１からの信号が「０」の場合にのみ「１」を出力し、ＭＦＤニューロン６２は、複数のＣＬニューロン５１から信号「１」を受け取った場合にのみ「１」を出力する。
【００１２】
各ＣＬニューロン５１は、図３に示すように、可変の結合重み（以下、単に「重み」ともいう。）ｗhiを有するシナプス部５３１、…、５３ｉ、…、５３Ｎと、固定の結合重み「１」を有するシナプス部５４１、…、５４ｉ、…、５４Ｎとを備えたＰＮモデルであり、各入力パルス信号ｘi（ｔ）はシナプス部５３ｉ、５４ｉにそれぞれ入力される（ｉ＝１〜Ｎ、Ｎ：周波数チャンネルの数）。なお、ｈは、ＣＬニューロン群５０内で各ＣＬニューロン５１に付された番号（ニューロン番号）であり、ｈ＝１〜Ｍとする。
【００１３】
また、各ＣＬニューロン５１は、シナプス部５６、５７を備え、ＮＦＤニューロン６１から出力されたパルス信号ｙnfd（ｔ）がシナプス部５６に、ＭＦＤニューロン６２から出力されたパルス信号ｙmfd（ｔ）がシナプス部５７に入力される。
【００１４】
次に、ＣＯＮＰの基本的動作について、図４−１、４−２に基づいて説明する。ＣＬニューロン群５０内の各ＣＬニューロン５１には、単位時間毎に、Ｎ個の入力パルス信号からなる入力ベクトルｘ（ｔ）＝（ｘ1（ｔ），ｘ2（ｔ），…，ｘi（ｔ），…，ｘN（ｔ））（ｔ：時刻）が入力される（ステップＳ１０１）。すると、ＮＦＤニューロン６１、ＭＦＤニューロン６２は、それぞれ、保持しておいた時刻（ｔ−１）における各ＣＬニューロン５１からの出力ｙh（ｔ−１）に基づいて、時刻ｔにおける出力値ｙnfd（ｔ）、ｙmfd（ｔ）を演算して、各ＣＬニューロン５１に出力する（Ｓ１０２、Ｓ１０３）。なお、ＮＦＤニューロン６１、ＭＦＤニューロン６２において、それぞれ、時刻（ｔ−１）に各ＣＬニューロン５１からの出力ｙh（ｔ−１）を用いて出力値ｙnfd（ｔ）、ｙmfd（ｔ）を演算して保持しておき、時刻ｔになったらｙnfd（ｔ）、ｙmfd（ｔ）を各ＣＬニューロン５１に出力するようにしてもよい。
【００１５】
次に、各ＣＬニューロン５１は、それぞれ、下記［数４］に従って内部電位Ｉh（ｔ）を演算し（Ｓ１０４）、内部電位Ｉh（ｔ）が閾値ＴＨを超え、かつ、前回の発火時から不応期を経過している場合にはｙh（ｔ）＝１を出力し、それ以外の場合にはｙh（ｔ）＝０を出力する（Ｓ１０５）。
【００１６】
そして、学習時には、「１」を出力したＣＬニューロン５１について、シナプス部５４ｉにおける局所膜電位ｐｃｗiを用いて、結合重みからなる参照ベクトルｗh（ｔ）＝（ｗh1（ｔ），ｗh2（ｔ），…，ｗhi（ｔ），…，ｗhN（ｔ））が入力ベクトルｘ（ｔ）に近づくように、結合重みｗhi（ｔ）を更新するとともに（Ｓ１０６）、そのＣＬニューロン５１の周辺の（すなわち、そのＣＬニューロン５１から学習範囲にある）ＣＬニューロン５１についても同様に結合重みを更新する（Ｓ１０７）。学習範囲の決定方法としては、例えば、最初は全部のＣＬニューロン５１を範囲とし、線形的に範囲を縮小して、最後は勝者ニューロンの重みだけを更新するような、次第に縮小する方法がある。そして、重みを更新したＣＬニューロン５１について重みのノルム（参照ベクトルのノルム）を１に正規化し（Ｓ１０８）、ステップＳ１０９に進む。このように、ＣＯＮＰにおいては、勝者ニューロンのみならずその周辺のニューロンも学習を行うことにより、ＳＯＭのアルゴリズムを実現している。一方、学習時でない場合（認識時）は、重みの更新は行わずに、ステップＳ１０９に進む。ステップＳ１０９では、学習係数αを、更新係数γを乗じることにより更新する。γは学習回数が増加するにつれて小さくする。ＣＯＮＰは、単位時間毎に以上の処理を繰返す。
【００１７】
なお、ＣＯＮＰでは、非特許文献７の４．１で説明しているように、参照ベクトルと入力ベクトルとの近さを両ベクトルの内積で評価する内積型ＳＯＭを用いているので、参照ベクトルのノルムを正規化するならば、入力ベクトルに参照ベクトルが近いＣＬニューロン５１ほど、内部電位が大きくなり、発火し易いこととなる。
【００１８】
ここで、ＣＯＮＰにおける内部電位Ｉh（ｔ）の演算方法について説明する。まず、引数として、時刻ｔ、減衰時定数τ、結合重みｗ、時刻ｔにおける入力信号ｘ（ｔ）の４つを持つ関数Ｆを導入し、下記［数１］のように定義する。なお、△ｔ＝１／Ｆｓ（Ｆｓ：サンプリング周波数）とする。
【００１９】
【数１】
0005190840.tif 000002
すると、時刻ｔにおけるＰＮモデルの内部電位Ｉ（ｔ）は、局所膜電位ｐi（ｔ）（ｉ＝１〜Ｎ）の総和として、下記［数２］のように記述できる。τはｐi（ｔ）の減衰時定数である。
【００２０】
【数２】
0005190840.tif 000003
ＰＮモデルの不応期をＲＰ、時刻ｔにおける前回発火からの経過時間をＥＴ（ｔ）とし、ＥＴ（０）＞ＲＰとすると、ＰＮモデルの出力値ｙ（ｔ）は、以下のアルゴリズムにより計算される。
【００２１】
ｉｆ  Ｉ（ｔ）≧ＴＨ  ａｎｄ  ＥＴ（ｔ）＞ＲＰ
ｔｈｅｎ  ｙ（ｔ）＝１，ＥＴ（ｔ）＝０
ｅｌｓｅ  ｙ（ｔ）＝０，ＥＴ（ｔ）＝ＥＴ（ｔ−△ｔ）＋△ｔ
パラメータτ、ｗ1、ｗ2、…、ｗN、ＴＨは、各ＰＮモデルにより可変の値であり、この組合せにより各ＰＮモデルの動作は決定される。
【００２２】
ここで、時刻ｔにおけるＮＦＤニューロン６１、ＭＦＤニューロン６２の出力をそれぞれｙnfd（ｔ）、ｙmfd（ｔ）、各ＣＬニューロン５１のＮＦＤニューロン６１、ＭＦＤニューロン６２に対する結合重みをそれぞれｗfd、−ｗfd（但し、ｗfd＞０）とすると、時刻ｔにおける番号ｈのＣＬニューロン５１の内部電位Ｉh（ｔ）は前述の関数Ｆを用いて下記［数３］のように記述できる。ＣＯＮＰでは、ｐnfd（ｔ）、ｐmfd（ｔ）を閾値の動的変化量として扱う（但し、閾値ＴＨを変化させる代りに、閾値ＴＨと比較する内部電位Ｉh（ｔ）をｐnfd（ｔ）、ｐmfd（ｔ）により調整する）ことでＣＬニューロン５１が１個だけ発火する状態を保持しようとする。このため、減衰時定数τfdは時定数τに対して充分大きいものとする。
【００２３】
【数３】
0005190840.tif 000004
ところで、入力パルス列によって発生する内部電位の総量が大きく変動する場合、この変動量を吸収するために閾値の変化が生じることになり、閾値の変化が入力ベクトルの方向変化に追従できない場合がある。そこで、ＣＯＮＰでは内部電位に対して、結合重みを１に固定したシナプス部５４ｉにおける局所膜電位ｐｃｗi（ｔ）の総和を一定の比率βpcw（但し、０≦βpcw≦１）であらかじめ差引くことで、入力信号のノルム変動に対する内部電位の変化を抑制している。これにより上記［数３］のＩh（ｔ）は下記［数４］のように修正され、各ＣＬニューロン５１は［数４］に従って内部電位Ｉh（ｔ）を演算する。
【００２４】
【数４】
0005190840.tif 000005
このように、ＣＯＮＰでは、ｐnfd（ｔ）、ｐmfd（ｔ）を用いて内部電位値を調整することにより、ＣＬニューロン５１のうち最も入力ベクトルに近い参照ベクトルをもつＣＬニューロン５１のみが発火する方向に、制御を行う。
【００２５】
複数音識別装置１は、ＣＯＮＰを利用したものであり、その動作について、図５−１、５−２に基づいて説明する。以下、複数音識別装置１において上述したＣＯＮＰと共通する構成要素については同じ符号を用い、その説明を適宜省略する。
【００２６】
まず、準備として、Ｍ個のＣＬニューロン５１と、ＮＦＤニューロン６１と、ＭＦＤニューロン６２とからなるＣＯＮＰに学習音を入力して、上述したように学習させ、各ＣＬニューロン５１の重みｗhi（ｈ：ニューロン番号、ｈ＝１〜Ｍ、ｉ：周波数チャンネルの番号、ｉ＝１〜Ｎ）を決定する。そして、決定した重みｗhiを複数音識別装置１の各ＣＬニューロン５１に設定する（ステップＳ２０１）。
【００２７】
また、学習の結果、例えば１番と２番のＣＬニューロン５１は救急車の音を示し（すなわち、救急車の音が入力されたときに発火頻度が高くなり）、３番と４番のＣＬニューロン５１は一般の自動車の音を示す等、各ＣＬニューロン５１はその発火頻度で音源の種類を示すこととなるので、複数音識別装置１に、同じ音源を示すＣＬニューロン５１の番号を互いに対応付けて記憶させておく。
【００２８】
そして、複数音識別装置１は、ＣＬニューロン５１毎に重心μ及び分散Ｖを下記［数５］［数６］に基づいて求め（Ｓ２０２）、所定の係数ｂにより、ＣＬニューロン５１毎に重みの削減の割合β＝ｂＶを求め、各ＣＬニューロン５１について記憶しておく（Ｓ２０３）。なお、［数５］[数６]における重みｗhiは、元の重みｗhiからそのＣＬニューロン５１の重みｗh1, …，ｗhi, …，ｗhNのうちの最小のものの値を引いたものとする。
【００２９】
【数５】
0005190840.tif 000006
【００３０】
【数６】
0005190840.tif 000007
次に、複数音識別装置１は、認識を開始し（Ｓ２０４）、各ＣＬニューロン５１について、入力パルスｘi（ｔ）と各シナプス部５３ｉの重みｗhiに基づいて局所膜電位ｐhi（ｔ）を計算し（Ｓ２０５）、局所膜電位ｐhi（ｔ）、各シナプス部５４ｉにおける局所膜電位ｐｃｗi（ｔ）、ＮＦＤニューロン６１からの出力に基づく局所膜電位ｐnfd（ｔ）、及び、ＭＦＤニューロン６２からの出力に基づく局所膜電位ｐmfd（ｔ）に基づいて上記［数４］に従って内部電位Ｉh（ｔ）を計算する（Ｓ２０６）。そして、内部電位Ｉh（ｔ）が閾値ＴＨ以上となったＣＬニューロン５１については、前回の発火から不応期を経過していれば「１」、経過していなければ「０」、それ以外のＣＬニューロン５１については「０」を出力する（Ｓ２０７）。
【００３１】
複数音識別装置１は、各ＣＬニューロン５１の発火回数をカウントする。そして、認識終了か否か、すなわち、認識開始から所定の認識単位時間が経過したか否かを判定し（Ｓ２０８）、経過していなければ、次の入力パルスについてステップＳ２０５〜２０７の処理を行い、経過していればステップＳ２０９に進む。
【００３２】
ステップＳ２０９において、複数音識別装置１は、その認識単位時間において最も発火頻度が高かったＣＬニューロン５１の番号ｋを記録し、その番号ｋを示す情報（音源種類の特定情報に相当。）を出力する。上述したように、学習の結果各ＣＬニューロン５１がどの音源を示すことになったかは分かっているので、この番号ｋにより音源の種類が特定されることとなる。
【００３３】
複数音識別装置１は、識別した（すなわち、番号を記録した）ＣＬニューロン５１の個数ａが予め指定された個数Ａ以上か否かを判断し、Ａ以上であれば処理を終了し、Ａ以上でなければステップＳ２１１に進む（Ｓ２１０）。Ａは識別したい音源種類数である。
【００３４】
ステップＳ２１１において、複数音識別装置１は、同じ音源種類のニューロン番号を互いに対応付けて記憶しているので、その記憶に基づいて、最も発火頻度が高かったＣＬニューロン５１を含め、そのＣＬニューロン５１が示す音源種類と同じ音源種類を示すすべてのＣＬニューロン５１の出力を「０」にする。例えば、１番と２番のＣＬニューロン５１が救急車の音を示す場合において、１番のＣＬニューロン５１が最も発火頻度が高かった場合には、１番と２番のＣＬニューロン５１のいずれの出力も、以降は「０」にする。
【００３５】
そして、複数音識別装置１は、最も発火頻度が高かったＣＬニューロン５１（番号ｋとする。）の各シナプス部５３ｉの重みｗkiに基づいて、ＣＬニューロン５１毎に重みの削減値βｗkiを計算し（Ｓ２１２）、各ＣＬニューロン５１の各シナプス部５３ｉにおける重みｗhiからβｗkiを減じることにより、重みｗhiを削減する（Ｓ２１３）。但し、削減の結果重みｗhiが負になってしまうときは、重みｗhiを０とする。かかる重みｗhiの更新を行った後、複数音識別装置１は、次の認識単位時間における認識処理（Ｓ２０５〜２０７）を行う。
【００３６】
以上のように動作する複数音識別装置１は、一般的なコンピュータでソフトウェアにより実現することが可能であるが、実環境に適用可能な高速処理を行うためには、例えば図６に示すような構成でハードウェア化することが好ましい。なお、ＰＮモデル及びパルスニューラルネットワークはデジタル回路を用いてハードウェア化可能である（非特許文献４、６参照）。但し、回路構成の容易化のために、学習をソフトウェアにより一般のコンピュータ上で行って、最初の重みｗhi及び削減割合βを設定しておくこととしてもよい。
【００３７】
図６の例では、複数音源識別装置１は、ＣＯＮＰ部１１と発火頻度判定部１２とから構成されている。ＣＯＮＰ部１１は、上述した従来のＣＯＮＰと同様の構成を有し、複数のＣＬニューロン５１からなる競合学習ニューロン群５０と、制御ニューロン群６０とを備えている。
【００３８】
各ＣＬニューロン５１は、従来のＣＯＮＰと同じく、各シナプス部５３ｉ、５４ｉにおける局所膜電位の計算を行う局所膜電位計算部４２と、内部電位の計算を行う内部電位計算部４３と、内部電位が閾値以上であって、かつ、前回の発火からの経過時間が不応期を超えていれば、パルス信号「１」を出力し、そうでなければ「０」を出力する閾値判定部４４とを備えている。
【００３９】
但し、ＣＯＮＰ部１１では、従来のＣＯＮＰとは異なり、図５−１、５−２で説明したように、認識時にも、最も発火頻度が高かったＣＬニューロン５１の重みを用いて、各ＣＬニューロン５１の重みの更新を行うため、各ＣＬニューロン５１は重みの更新を行う重み更新部４１を備えている。
【００４０】
発火頻度判定部１２は、各ＣＬニューロン５１から出力されたパルス信号を受け取り、認識単位時間毎に、その認識単位時間内に最も発火頻度が高かったＣＬニューロン５１を検出する。そして、そのＣＬニューロン５１の番号を記録するとともに、そのＣＬニューロン５１を含めてそのＣＬニューロン５１と同じ音源種類を示すＣＬニューロン５１の出力を「０」にし、また、そのＣＬニューロン５１の各シナプス部５３ｉの重みを各ＣＬニューロン５１の重み更新部４１に出力する。
【００４１】
制御ニューロン群６０は、従来のＣＯＮＰと同じく、ＣＬニューロンが１個も発火しなかった場合に発火するＮＦＤニューロン６１（図６には図示せず。）と、ＣＬニューロン５１が複数個発火した場合に発火するＭＦＤニューロン６２（図６には図示せず。）とからなり、ＣＬニューロン５１の複数発火と無発火とを検出する検出手段に相当する。ＮＦＤニューロン６１及びＭＦＤニューロン６２からの出力パルス信号は、調整値計算部４０に入力される。
【００４２】
但し、制御ニューロン群６０は、従来のＣＯＮＰとは異なり、発火頻度判定部１２を介して各ＣＬニューロン５１からの出力パルス信号を受け取る。したがって、認識単位時間内に最も発火頻度が高かったＣＬニューロン５１及びそのＣＬニューロン５１と同じ音源種類を示すＣＬニューロン５１については、「０」のパルス信号を受け取ることになる。
【００４３】
調整値計算部４０は、各ＣＬニューロン５１のシナプス部５６、５７に相当するものであり、内部電位の調整値、すなわち、ＮＦＤニューロン６１からの出力に基づく局所膜電位とＭＦＤニューロン６２からの出力に基づく局所膜電位とを計算して、各ＣＬニューロン５１の内部電位計算部４３に出力する。なお、シナプス部５６、５７における重み及び減衰時定数は各ＣＬニューロン５１で共通としているので、調整値計算部４０は各ＣＬニューロン５１共通で１つとすることができる。
【００４４】
図６に示す複数音識別装置１の動作について、図５−１、５−２を用いて説明する。なお、各ＣＬニューロン５１の重みの設定（Ｓ２０１）、重心・分散の計算（Ｓ２０２）、及び、重みの削減割合βの計算（Ｓ２０３）は、コンピュータ上でソフトウェアにより行って、複数音識別装置１の各ＣＬニューロン５１に設定しておくものとする。
【００４５】
複数音識別装置１は、認識を開始すると（Ｓ２０４）、各ＣＬニューロン５１が、局所膜電位及び内部電位Ｉh（ｔ）を計算し（Ｓ２０５、Ｓ２０６）、内部電位Ｉh（ｔ）が閾値以上で、かつ、前回の発火から不応期を経過していれば「１」、それ以外の場合は「０」を、発火頻度判定部１２に出力する（Ｓ２０７）。
【００４６】
発火頻度判定部１２は、各ＣＬニューロン５１の発火回数をカウントする。そして、認識終了か否かを判定し（Ｓ２０８）、終了でなければ、次の入力パルスについてステップＳ２０５〜２０７の処理を行い、終了であればステップＳ２０９に進む。ステップＳ２０９において、発火頻度判定部１２は、その認識単位時間において最も発火頻度が高かったＣＬニューロン５１の番号ｋを記録し（Ｓ２０９）、その番号ｋを示す情報を出力する。
【００４７】
発火頻度判定部１２は、識別したＣＬニューロン５１の個数ａが、識別したい音源種類数Ａ以上であれば処理を終了し、Ａ以上でなければステップＳ２１１に進む（Ｓ２１０）。ステップＳ２１１において、発火頻度判定部１２は、記録した番号ｋのＣＬニューロン５１が示す音源種類と同じ音源種類を示すすべてのＣＬニューロン５１の出力を「０」にするとともに、番号ｋのＣＬニューロン５１の各シナプス部５３ｉの重みｗkiを、各ＣＬニューロン５１に出力する。
【００４８】
各ＣＬニューロン５１は、重みｗkiと保持しておいたβとに基づいて重みの削減値βｗkiを計算し（Ｓ２１２）、各シナプス部５３ｉにおける重みｗhiを更新する（Ｓ２１３）。そして、複数音識別装置１は、次の認識単位時間における認識処理（Ｓ２０５〜２０７）を行う。
【００４９】
以下、実験例として比較例及び実験例１〜３を示す。なお、これらはいずれもコンピュータにおいてソフトウェアにより行った。各実験におけるパラメータを表１に示す。
【００５０】
【表１】
0005190840.tif 000008
表１中、入力閾値とは、ＣＬニューロン５１への入力の総和の閾値であり、これを超えない場合には、入力パルスの頻度が少な過ぎるため発火をさせず、また、入力が小さいのに発火してしまうことを防ぐため、制御ニューロンからの出力を用いた閾値または内部電位の調整も行わないこととする。また、内部電位が安定するまでの時間とは、最初の入力により急激に上昇したＣＬニューロン５１の内部電位が安定するまでの時間であり、最初の入力からこの時間までは発火をさせないようにする。
【００５１】
また、いずれの場合も、各ＣＬニューロン５１の結合重みの初期値は乱数（乱数の種＝４）により与え、初期重みの最大値は０．１、最小値は０とした。また、学習回数は1000回で、学習半径は、すべてのＣＬニューロン５１が学習する状態から線形的に減少し、800回の学習で自身のみが学習するように収束するものとした。
【００５２】
〈比較例〉従来のＣＯＮＰの場合
比較例として、従来のＣＯＮＰを用いて実験したものを示す。ＣＯＮＰとしては、８個のＣＬニューロン５１を１列に並べたものを使用した。すなわち、ｈ番（ｈ＝２〜７）のＣＬニューロン５１と（ｈ−１）番及び（ｈ＋１）番のＣＬニューロン５１とは隣接するが、１番と８番のＣＬニューロン５１は隣接しない。
【００５３】
学習音は、サンプリング周波数１６kHz、量子化ビット数８bitとし、雑音の無い１秒間の音を使用し、最大音量を揃えた。学習音の種類は、（一般の）自動車の走行音、２４０Hzの純音（女声の基本周波数）、救急車のサイレン、２kHzの純音(自転車のベル音に含まれる周波数)とした。
【００５４】
学習の結果、１、２番のＣＬニューロン５１が２kHzの純音、３、４番のＣＬニューロン５１が救急車のサイレン、５、６番のＣＬニューロン５１が自動車の走行音、７、８番のＣＬニューロン５１が２４０Hzの純音を示すようになった。なお、音が４種類であるのに対し、ＣＬニューロン５１が８個であるので、隣接した２個のＣＬニューロン５１が同じ音を学習している。各ＣＬニューロン５１の学習後の重みを、図７に示す。
【００５５】
認識実験に使用する音として、複数音（合成音）を学習音に使用したデータで次のように作成した。
【００５６】
１．自動車の走行音と２４０Hzの純音との合成音（自動車＆２４０Hz）
２．自動車の走行音と救急車のサイレンとの合成音（自動車＆救急車）
３．自動車の走行音と２kHzの純音との合成音（自動車＆２kHz）
４．２４０Hzの純音と救急車のサイレンとの合成音（２４０Hz＆救急車）
５．２４０Hzの純音と２kHzの純音との合成音（２４０Hz＆２kHz）
６．救急車のサイレンと２kHzの純音との合成音（救急車＆２kHz）
学習後、上記６種類の合成音を認識させた結果を表２に示す。この表は、例えば「自動車＆２４０Hz」を入力した場合、自動車の音を示すＣＬニューロン５１（表では「自動車」と表記）の認識率は67.6％、２４０Hzの純音を示すＣＬニューロン５１（表では「２４０Hz」と表記）の認識率は21.9％、救急車のサイレンを示すＣＬニューロン５１（表では「救急車」と表記）の認識率は8.2％、２Hzの純音を示すＣＬニューロン５１（表では「２kHz」と表記）の認識率は2.3%であることを示している。なお、認識率＝（認識単位時間あたりのそのＣＬニューロン５１の発火数）÷（認識単位時間あたりのすべてのＣＬニューロン５１の発火数）×100で計算した。認識単位時間は１secとした。
【００５７】
【表２】
0005190840.tif 000009
表２により、例えば「２４０Hz＆救急車」を入力した場合、認識率が最も高いのは「２４０Hz」、次いで「自動車」となっており、２４０Hzの純音は識別できているが、救急車のサイレンは識別できていない等、従来のＣＯＮＰでは、合成音を構成する一方の音は識別できても、他方の音が識別できていないことが分かる。
【００５８】
〈実験例１〉ＣＬニューロン５１を削除した場合
ＣＯＮＰは、入力に対してＣＬニューロン５１を１つだけ発火させようとするものである。したがって、合成音に対しても１つの音しか識別できないこととなる。そこで、認識率が最も高かったＣＬニューロン５１によって示された音に対応するＣＬニューロン５１（すなわち、識別された音を示すＣＬニューロン５１）をすべて削除する（具体的には、ＣＬニューロン５１の出力を「０」にする。）ことによって、次に特徴の強い音を検出させることとする。
【００５９】
表３は、合成音をＣＯＮＰに入力して、最初の認識単位時間内に認識率が最も高くなったＣＬニューロン５１により音を識別した後、識別された音に対応するＣＬニューロン５１の出力を「０」にして、次の認識単位時間における認識率を調べた結果である。
【００６０】
【表３】
0005190840.tif 000010
表３から、例えば「自動車＆２４０Hz」を入力した場合、最初に認識率が最も高かったのは「自動車」のＣＬニューロン５１であるので（表２参照）、「自動車」を示すすべてのＣＬニューロン５１（すなわち、５番と６番のＣＬニューロン５１）の出力を０にすると、今度は「２４０Hz」が最も高くなり、先に識別されなかったもう一方の音が識別されたことが分かる。同様に、「自動車＆２kHz」「２４０Hz＆２kHz」「救急車＆２kHz」の場合にも、もう一方の音が識別されている。
【００６１】
〈実験例２〉ＣＬニューロン５１の削除と重みの削減を行った場合
しかし、表３から分かるように、実験例１では「自動車＆救急車」、「２４０Hz＆救急車」の場合に次に識別された音は、それぞれ「２４０Hz」、「自動車」であり、誤認識している。これは、先に識別した音に対応するＣＬニューロン５１を削除しても、先に識別した音に近い音が次に認識され易いからではないかと考えられる。
【００６２】
音の近さを図７に示す重みの値から解析すると、「自動車」の音に次に近いのは「２４０Hz」である。このため、「自動車＆救急車」を入力した場合、「自動車」のＣＬニューロン５１を削除しても、「自動車」に次に近い「２４０Hz」の内部電位が高くなり、次に識別される音が「２４０Hz」になってしまったと考えられる。「２４０Hz＆救急車」の場合も同様である。
【００６３】
したがって、次に正しい音を識別するには、先に識別した音の影響を小さくすることが必要と考えられる。先に最も高い認識率となったＣＬニューロン５１の重みは、先に識別した音のパターンを表しているため、その重みに従って定めた値を各ＣＬニューロン５１の重みから減じれば、先に識別した音の影響が小さくなると考えられる。
【００６４】
そこで、先に識別した音に対応するＣＬニューロン５１を削除するとともに、先に最も高い認識率となったＣＬニューロン５１（ｋ番とする。）の重みｗkiに基づいて、各ＣＬニューロン５１の各シナプス部５３ｉにおける重みｗhiからβｗkiを減じることにより、重みｗhiを減少させて（但し、負になってしまうときは０とする。）、次に最も認識率が高くなったＣＬニューロン５１により次の音を識別することとした。
【００６５】
重みを減少させる割合βは、大きくし過ぎると重みの特徴を無くし、小さくし過ぎると変化が出ないため、重みの分散が大きければ大きく、小さければ小さくなるように、上述したように重みｗhiの重心μと分散Ｖとからβ＝ｂＶで定めた。分散の大きい音、すなわち、広い周波数帯域を持つ音は影響が大きく、分散が小さい音、すなわち、ある一部の帯域に周波数ピークを持つ音は影響が小さいと考えられるからである。また、係数ｂは実験により適当に定めるものとし、ここでは、ｂ＝１／２００とした。表４に各ＣＬニューロン５１の重心、分散、βの計算結果を示す。
【００６６】
【表４】
0005190840.tif 000011
上述したようにＣＬニューロン５１の削除と重みの削減とを行ったときの認識結果を表５に示す。
【００６７】
【表５】
0005190840.tif 000012
表５から、例えば「自動車＆救急車」の場合も次に「救急車」が認識されている等、いずれの場合でも、もう一方の音を正しく識別していることが分かる。
【００６８】
〈実験例３〉屋外環境の音に適用した場合
学習用データ及びテスト用データとして、救急車のサイレン、自動車の走行音、自転車のベル音の３種の音を、表６に示すような各環境で録音し、サンプリング周波数１６kHz、量子化ビット数８bitで、最大音量を揃えた１秒間の音を作った。
【００６９】
【表６】
0005190840.tif 000013
ＣＯＮＰとしては、６個のＣＬニューロン５１を１列に並べたものを用い、学習用データを用いてＣＯＮＰに学習をさせた。学習により、隣接した２個のＣＬニューロン５１が同じ音を示すこととなった。学習後、テスト用データを用いてＣＯＮＰに認識をさせた結果を表７に示す。
【００７０】
【表７】
0005190840.tif 000014
表７から、屋外環境で録音したテスト用データにはいずれも自動車の騒音が入っている（すなわち、自動車の走行音との合成音となっている）ため、救急車のサイレンや自転車のベル音を入力した場合でも、従来のＣＯＮＰでは「自動車」と誤認識してしまうことが分かる。
【００７１】
そこで、実験例２のように、先に識別された自動車の音を示すＣＬニューロン５１を削除するとともに、先に最も認識率が高くなったＣＬニューロン５１の重みを用いて各ＣＬニューロン５１の重みの削減を行ってから、入力音を識別させた結果を表８に示す。
【００７２】
【表８】
0005190840.tif 000015
表８から、先に識別された音に重なっていたもう一方の音が識別されたことが分かり、実環境下の屋外環境の音に対しても実験例２の手法は有効であることが分かった。
【００７３】
以上の実験結果から、認識単位時間内にいずれのＣＬニューロン５１の発火頻度が最大になったかによって、１の音源種類の特定情報を出力した後、その特定情報で特定された音源種類を示すＣＬニューロン５１の出力を０にするとともに、発火頻度が最大となったＣＬニューロン５１の結合重みに基づいて各ＣＬニューロン５１の結合重みを減少させて、次の認識単位時間内にいずれのＣＬニューロン５１の発火頻度が最大になったかによって、他の音源種類の特定情報を出力する複数音識別装置１によれば、複数音の混在パターンから複数の音源種類を識別することが可能となる。
【００７４】
なお、実験例２のようにＣＬニューロン５１の削除と重みの削減の両方を行うことが好ましいが、実験例１のようにＣＬニューロン５１の削除のみを行うこととしてもよい。表３に示すように合成音によっては識別可能だからである。
【００７５】
また、参照ベクトルが入力ベクトルに最も近いＣＬニューロン５１のみが発火する方向に制御するために、内部電位を調整する代りに閾値を調整してもよく、少なくとも内部電位または閾値のどちらか一方を調整すればよい。
【００７６】
また、結合重みの減少のさせ方についても、種々の方法を採ることができる。要するに、入力音における、先に識別された音の影響を減少させる方法であればよい。
【図面の簡単な説明】
【００７７】
【図１】本発明の一実施形態に係る複数音識別装置を含む音源同定装置の構成図である。
【図２】ＣＯＮＰの模式図である。
【図３】ＣＬニューロンの模式図である。
【図４−１】ＣＯＮＰにおける処理の流れを示すフローチャートである。
【図４−２】ＣＯＮＰにおける処理の流れを示すフローチャートである。
【図５−１】同実施形態に係る複数音識別装置における処理の流れを示すフローチャートである。
【図５−２】同実施形態に係る複数音識別装置における処理の流れを示すフローチャートである。
【図６】同実施形態に係る複数音識別装置をハードウェア化した場合の構成図である。
【図７】各ＣＬニューロンの学習後の重みを示すグラフである。
【符号の説明】
【００７８】
１…複数音識別装置
５１…競合学習ニューロン
６０…制御ニューロン群
４０…調整値計算部
【図１】
0005190840.tif 000016
【図２】
0005190840.tif 000017
【図３】
0005190840.tif 000018
【図４−１】
0005190840.tif 000019
【図４−２】
0005190840.tif 000020
【図５−１】
0005190840.tif 000021
【図５−２】
0005190840.tif 000022
【図６】
0005190840.tif 000023
【図７】
0005190840.tif 000024