(57)【特許請求の範囲】
【請求項１】
複数の音源からの音を表す２つのチャンネルの信号をそれぞれ時間単位で周波数領域に変換する変換手段と、
前記変換手段によって周波数領域に変換された２つのチャンネルの信号の定位情報を求める定位情報算出手段と、
前記定位情報算出手段によって求められた定位情報を複数のクラスタに分類し、それぞれのクラスタの代表値を求めるクラスタ分析手段と、
前記クラスタ分析手段によって求められた代表値と、前記定位情報算出手段によって求められた定位情報との距離に応じて、全ての周波数における重み係数を求める係数決定手段と、
前記係数決定手段によって求められた重み係数を、前記変換手段で周波数領域に変換された２つのチャンネルの信号のそれぞれにかけ合わせることによって求められた値を、逆変換して前記複数の音源に含まれる所定の音源からの音を分離する分離手段と、
を備えることを特徴とする音分離装置。
【請求項２】
前記係数決定手段は、前記定位情報算出手段によって求められた定位情報の距離が近いほど前記重み係数の値を大きくすることを特徴とする請求項１に記載の音分離装置。
【請求項３】
前記係数決定手段は、前記複数の音源のいずれにも分類されない音がある場合、該分類されない音の重みを前記複数の音源のそれぞれに対応した重み係数に割り当てることを特徴とする請求項１に記載の音分離装置。
【請求項４】
前記定位情報算出手段は、前記変換手段によって周波数領域に変換された２つのチャンネルの信号のレベル差を求め、求めたレベル差を定位情報として求めることを特徴とする請求項１に記載の音分離装置。
【請求項５】
前記２つのチャンネルの信号は、左チャンネルおよび右チャンネルの信号であり、
前記定位情報算出手段は、前記変換手段によって周波数領域に変換された２つのチャンネルの信号の周波数のレベル差を求めることを特徴とする請求項１に記載の音分離装置。
【請求項６】
前記クラスタ分析手段は、前記レベル差を、あらかじめ求められた初期クラスタ中心によって特定されるクラスタに分類し、分類されたレベル差の集合について重心を求め、求められた重心に前記初期クラスタ中心を修正していくことにより、前記クラスタの代表値を求めることを特徴とする請求項４または５に記載の音分離装置。
【請求項７】
前記定位情報算出手段は、前記変換手段によって周波数領域に変換された２つのチャンネルの信号の位相差を求め、求めた位相差を定位情報として求めることを特徴とする請求項１に記載の音分離装置。
【請求項８】
前記２つのチャンネルの信号は、左チャンネルおよび右チャンネルの信号であり、
前記定位情報算出手段は、前記変換手段によって周波数領域に変換された２つのチャンネルの信号の周波数の位相差を求めることを特徴とする請求項１に記載の音分離装置。
【請求項９】
前記クラスタ分析手段は、前記位相差を、あらかじめ求められた初期クラスタ中心によって特定されるクラスタに分類し、分類された位相差の集合について重心を求め、求められた重心に前記初期クラスタ中心を修正していくことにより、前記クラスタの代表値を求めることを特徴とする請求項７または８に記載の音分離装置。
【請求項１０】
前記変換手段は、前記２つの信号を一定時間毎にシフトする窓関数を用いて、時間単位で周波数領域に変換することを特徴とする請求項１〜９のいずれか一つに記載の音分離装置。
【請求項１１】
音分離装置における音分離方法において、
複数の音源からの音を表す２つのチャンネルの信号をそれぞれ時間単位で周波数領域に変換する変換工程と、
前記変換工程によって周波数領域に変換された２つのチャンネルの信号の定位情報を求める定位情報算出工程と、
前記定位情報算出工程によって求められた定位情報を複数のクラスタに分類し、それぞれのクラスタの代表値を求めるクラスタ分析工程と、
前記クラスタ分析工程によって求められた代表値と、前記定位情報算出工程によって求められた定位情報との距離に応じて、全ての周波数における重み係数を求める係数決定工程と、
前記係数決定工程によって求められた重み係数を、前記変換工程で周波数領域に変換された２つのチャンネルの信号のそれぞれにかけ合わせることによって求められた値を、逆変換して前記複数の音源に含まれる所定の音源からの音を分離する分離工程と、
を含むことを特徴とする音分離方法。
【請求項１２】
請求項１１に記載の音分離方法をコンピュータに実行させることを特徴とする音分離プログラム。
【請求項１３】
請求項１２に記載の音分離プログラムを記録したことを特徴とするコンピュータに読み取り可能な記録媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
この発明は、２つの信号により表現される音を音源別に分離する音分離装置、音分離方法、音分離プログラムおよびコンピュータに読み取り可能な記録媒体に関する。ただし、この発明の利用は、上述の音分離装置、音分離方法、音分離プログラムおよびコンピュータに読み取り可能な記録媒体に限らない。
【背景技術】
【０００２】
特定の方向に対する音のみを抽出する技術はこれまでに幾つかの提案がなされている。たとえば、実際にマイクロホンで収録した信号に対して到達時間差をもとに音源位置を推定し方向別の音を取り出す技術がある（たとえば、特許文献１、２、３参照。）。【０００３】
【特許文献１】特開平１０−３１３４９７号公報
【特許文献２】特開２００３−２７１１６７号公報
【特許文献３】特開２００２−４４７９３号公報
【発明の開示】
【発明が解決しようとする課題】
【０００４】
しかしながら、従来の技術を用いて音源別の音の抽出を行う場合、信号処理に用いる信号のチャンネル数が音源数を上回る必要があった。また、音源数より少ないチャンネルでの音源分離手法（たとえば、特許文献１、２、３参照。）を使用した場合、この技術は、到達時間差が観測できるような実音場での収録信号にのみ適用できる技術であるものの、特定した方向に一致する周波数のみを取り出すため、スペクトルの不連続を起こし音質が悪くなるという問題があった。またこの技術は、実音源に限った処理であり、ＣＤなどの既存の音楽ソースでは時間差が観測できないので使用できないという問題があった。また、２チャンネルの信号からそれよりも多くの音源の分離を行うことができないという問題があった。【０００５】
この発明は、上述した従来技術による問題点を解消するため、音の分離にあたり、スペクトルの不連続性を軽減し音質を向上させることができる音分離装置、音分離方法、音分離プログラムおよびコンピュータに読み取り可能な記録媒体を提供することを目的としている。
【課題を解決するための手段】
【０００６】
請求項１の発明にかかる音分離装置は、複数の音源からの音を表す２つのチャンネルの信号をそれぞれ時間単位で周波数領域に変換する変換手段と、前記変換手段によって周波数領域に変換された２つのチャンネルの信号の定位情報を求める定位情報算出手段と、前記定位情報算出手段によって求められた定位情報を複数のクラスタに分類し、それぞれのクラスタの代表値を求めるクラスタ分析手段と、前記クラスタ分析手段によって求められた代表値と、前記定位情報算出手段によって求められた定位情報との距離に応じて、全ての周波数における重み係数を求める係数決定手段と、前記係数決定手段によって求められた重み係数を、前記変換手段で周波数領域に変換された２つのチャンネルの信号のそれぞれにかけ合わせることによって求められた値を、逆変換して前記複数の音源に含まれる所定の音源からの音を分離する分離手段と、を備えることを特徴とする。
【０００７】
また、請求項１１の発明にかかる音分離方法は、複数の音源からの音を表す２つのチャンネルの信号をそれぞれ時間単位で周波数領域に変換する変換工程と、前記変換工程によって周波数領域に変換された２つのチャンネルの信号の定位情報を求める定位情報算出工程と、前記定位情報算出工程によって求められた定位情報を複数のクラスタに分類し、それぞれのクラスタの代表値を求めるクラスタ分析工程と、前記クラスタ分析工程によって求められた代表値と、前記定位情報算出工程によって求められた定位情報との距離に応じて、全ての周波数における重み係数を求める係数決定工程と、前記係数決定工程によって求められた重み係数を、前記変換工程で周波数領域に変換された２つのチャンネルの信号のそれぞれにかけ合わせることによって求められた値を、逆変換して前記複数の音源に含まれる所定の音源からの音を分離する分離工程と、を含むことを特徴とする。
【０００８】
また、請求項１２の発明にかかる音分離プログラムは、上述した音分離方法を、コンピュータに実行させることを特徴とする。【０００９】
また、請求項１３の発明にかかるコンピュータに読み取り可能な記録媒体は、上述した音分離プログラムを記録したことを特徴とする。
【図面の簡単な説明】
【００１０】
【図１】図１は、この発明の実施の形態にかかる音分離装置の機能的構成を示すブロック図である。
【図２】図２は、この発明の実施の形態にかかる音分離方法の処理を示すフローチャートである。
【図３】図３は、音分離装置のハードウェア構成を示すブロック図である。
【図４】図４は、実施例１の音分離装置の機能的構成を示すブロック図である。
【図５】図５は、実施例１の音分離方法の処理を示すフローチャートである。
【図６】図６は、実施例１の音源定位位置の推定処理を示すフローチャートである。
【図７】図７は、ある周波数での２つの定位位置と実際のレベル差を示す説明図である。
【図８】図８は、２つの定位位置に対する重み係数の分配を示す説明図である。
【図９】図９は、窓関数をシフトしていく処理を示す説明図である。
【図１０】図１０は、分離する音の入力状況を示す説明図である。
【図１１】図１１は、実施例２の音分離装置の機能的構成を示すブロック図である。
【図１２】図１２は、実施例２の音源定位位置の推定処理を示すフローチャートである。
【符号の説明】
【００１１】
１０１  変換部
１０２  定位情報算出部
１０３  クラスタ分析部
１０４  分離部
１０５  係数決定部
４０２、４０３  ＳＴＦＴ部
４０４  レベル差算出部
４０５  クラスタ分析部
４０６  重み係数決定部
４０７、４０８  再合成部
１１０１  位相差検出部
【発明を実施するための最良の形態】
【００１２】
以下に添付図面を参照して、この発明にかかる音分離装置、音分離方法、音分離プログラムおよびコンピュータに読み取り可能な記録媒体の好適な実施の形態を詳細に説明する。図１は、この発明の実施の形態にかかる音分離装置の機能的構成を示すブロック図である。この実施の形態の音分離装置は、変換部１０１、定位情報算出部１０２、クラスタ分析部１０３、分離部１０４により構成されている。また、音分離装置は、係数決定部１０５を備えることもできる。【００１３】
変換部１０１は、複数の音源からの音を表す２つのチャンネルの信号をそれぞれ時間単位で周波数領域に変換する。２つのチャンネルの信号は、一方が左側のスピーカに、もう一方が右側のスピーカに出力される２つのチャンネルの音のステレオ信号とすることができる。このステレオ信号は、音声信号であっても音響信号であってもよい。この場合の変換は、短時間フーリエ変換とすることができる。短時間フーリエ変換とは、フーリエ変換の一種で、信号を時間的に細かく区切り、部分的に解析する手法である。短時間フーリエ変換のほか、通常のフーリエ変換でもよく、ＧＨＡ（一般化調和解析）、ウェーブレット変換など、観測された信号に対して時間毎にどのような周波数成分が含まれているかを分析するための変換手法であれば、いかなるものを採用してもよい。【００１４】
定位情報算出部１０２は、変換部１０１によって周波数領域に変換された２つのチャンネルの信号の定位情報を求める。定位情報は、２つのチャンネルの信号の周波数のレベル差とすることができる。また、定位情報は、２つのチャンネルの信号の周波数の位相差とすることもできる。【００１５】
クラスタ分析部１０３は、定位情報算出部１０２によって求められた定位情報を複数のクラスタに分類し、それぞれのクラスタの代表値を求める。分けられるクラスタの個数は、分離する音源の数と一致させることができ、この場合、音源が２つの場合、クラスタは２つ、音源が３つの場合、クラスタは３つになる。クラスタの代表値は、クラスタの中心値とすることができる。また、クラスタの代表値は、クラスタの平均値とすることができる。このクラスタの代表値は、それぞれの音源の定位位置を表す値とすることができる。【００１６】
分離部１０４は、クラスタ分析部１０３によって求められた代表値および定位情報算出部１０２によって求められた定位情報に基づいた値を時間領域に逆変換して前記複数の音源に含まれる所定の音源からの音を分離する。逆変換については、短時間フーリエ変換の場合は、短時間逆フーリエ変換とし、ＧＨＡ、ウェーブレット変換については、それぞれに対応した逆変換を実行することにより音信号の分離を行う。このように、時間領域に逆変換することにより、音源毎の音信号に分離することができる。【００１７】
係数決定部１０５は、クラスタ分析部１０３によって求められた代表値および定位情報算出部１０２によって求められた定位情報に基づいて、重み係数を求める。この重み係数は、各音源に対して割り当てる周波数成分とすることができる。【００１８】
係数決定部１０５を備える場合、分離部１０４は、係数決定部１０５によって求められた重み係数に基づいた値であってクラスタ分析部１０３によって求められた代表値および定位情報算出部１０２によって求められた定位情報に基づいた値を、逆変換して前記複数の音源に含まれる所定の音源からの音を分離することができる。また、分離部１０４は、変換部１０１で周波数領域に変換された２つの信号のそれぞれに、係数決定部１０５によって求められた重み係数をかけ合わせることによって求められた値を逆変換することもできる。【００１９】
図２は、この発明の実施の形態にかかる音分離方法の処理を示すフローチャートである。まず、変換部１０１は、音を表現する２つの信号をそれぞれ時間単位で周波数領域に変換する（ステップＳ２０１）。次に、定位情報算出部１０２は、変換部１０１によって周波数領域に変換された２つの信号の定位情報を算出する（ステップＳ２０２）。【００２０】
次に、クラスタ分析部１０３は、定位情報算出部１０２によって求められた定位情報を複数のクラスタに分類し、それぞれのクラスタの代表値を求める（ステップＳ２０３）。分離部１０４は、クラスタ分析部１０３によって求められた代表値および定位情報算出部１０２によって求められた定位情報に基づいた値を時間領域に逆変換する（ステップＳ２０４）。それにより、音信号を複数の音源の音に分離することができる。【００２１】
なお、ステップＳ２０４において、係数決定部１０５が、クラスタ分析部１０３によって求められた代表値および定位情報算出部１０２によって求められた定位情報に基づいて重み係数を求め、分離部１０４が、係数決定部１０５によって求められた重み係数に基づいた値であってクラスタ分析部１０３によって求められた代表値および定位情報算出部１０２によって求められた定位情報に基づいた値を、逆変換して前記複数の音源に含まれる所定の音源からの音を分離することもできる。また、分離部１０４は、変換部１０１で周波数領域に変換された２つの信号のそれぞれに、係数決定部１０５によって求められた重み係数をかけ合わせることによって求められた値を逆変換することもできる。
【実施例】
【００２２】
図３は、音分離装置のハードウェア構成を示すブロック図である。プレーヤ３０１は、音信号を再生するプレーヤであり、ＣＤ、レコード、テープ、その他記録された音信号を再生するものであればいかなるものでもよい。また、ラジオやテレビ音であってもよい。【００２３】
Ａ／Ｄ３０２は、プレーヤ３０１で再生された音信号がアナログ信号の場合、入力された音信号をディジタル信号に変換してＣＰＵ３０３に入力する。音信号がディジタル信号によって入力された場合は直接ＣＰＵ３０３に入力される。【００２４】
ＣＰＵ３０３は、この実施例で説明される処理全体を制御する。この処理はＲＯＭ３０４に書き込まれたプログラムを読み出すことによって、ＲＡＭ３０５をワークエリアとして使用することにより実行する。ＣＰＵ３０３で処理されたディジタル信号は、Ｄ／Ａ３０６に出力される。Ｄ／Ａ３０６は、入力されたディジタル信号をアナログの音信号に変換する。アンプ３０７は、この音信号を増幅し、スピーカ３０８および３０９が、増幅された音信号を出力する。実施例はＣＰＵ３０３において音信号のディジタル処理により行われる。【００２５】
図４は、実施例１の音分離装置の機能的構成を示すブロック図である。処理は、図３に示したＣＰＵ３０３が、ＲＯＭ３０４に書き込まれたプログラムを読み出すことによって、ＲＡＭ３０５をワークエリアとして使用することにより実行する。音分離装置は、ＳＴＦＴ部４０２、４０３、レベル差算出部４０４、クラスタ分析部４０５、重み係数決定部４０６、再合成部４０７、４０８から構成されている。【００２６】
まず、ステレオ信号４０１が入力される。ステレオ信号４０１は、Ｌ側の信号ＳＬと、Ｒ側の信号ＳＲにより構成される。信号ＳＬはＳＴＦＴ部４０２に入力され、信号ＳＲはＳＴＦＴ部４０３に入力される。【００２７】
ＳＴＦＴ部４０２、４０３は、ステレオ信号４０１がＳＴＦＴ部４０２、４０３に入力されると、ステレオ信号４０１に対して短時間フーリエ変換を行う。短時間フーリエ変換では、一定の大きさの窓関数を用いて信号を切り出し、その結果をフーリエ変換してスペクトルを計算する。ＳＴＦＴ部４０２は、信号ＳＬをスペクトルＳＬt1（ω）〜ＳＬtn（ω）に変換して出力し、ＳＴＦＴ部４０３は、信号ＳＲをスペクトルＳＲt1（ω）〜ＳＲtn（ω）に変換して出力する。ここでは短時間フーリエ変換を例に挙げて説明するが、この他ＧＨＡ（一般化調和解析）や、ウェーブレット変換など観測された信号に対して時間毎にどのような周波数成分が含まれているかを分析する他の変換方法を採用することもできる。【００２８】
得られるスペクトルは、信号を時間と周波数の２次元関数で表され、時間要素と周波数要素の両方を含んだものである。その精度は、信号を区切る幅である窓のサイズによって決められる。設定した１つの窓に対して１組のスペクトルが得られるので、スペクトルの時間的変化を求めたことになる。【００２９】
レベル差算出部４０４は、ＳＴＦＴ部４０２、４０３からの出力のパワー（｜ＳＬtn（ω）｜と｜ＳＲtn（ω）｜）の差を、ｔ１〜ｔｎまでのそれぞれについて求める。その結果得られたレベル差Ｓｕｂt1（ω）〜Ｓｕｂtn（ω）が、クラスタ分析部４０５および重み係数決定部４０６に出力される。【００３０】
クラスタ分析部４０５は、得られたレベル差Ｓｕｂt1（ω）〜Ｓｕｂtn（ω）を入力し、音源数のクラスタ毎に分類する。クラスタ分析部４０５は、各々のクラスタの中心位置から算出した音源の定位位置Ｃi（ｉは音源の数）を出力する。クラスタ分析部４０５は、左右のレベル差から音源の定位位置を算出する。その際、発生したレベル差を時間毎に算出しそれらを音源数のクラスタに分類した場合、各クラスタの中心を音源の位置とすることができる。図中では音源数を２つであると仮定して説明しているので、定位位置はＣ1とＣ2が出力される。【００３１】
なお、クラスタ分析部４０５は、周波数分解した信号について、各周波数で上記処理を行い、各周波数のクラスタ中心を平均化することでおおよその音源位置を算出する。本実施例では、クラスタ分析を用いることにより、音源の定位位置を求めている。【００３２】
重み係数決定部４０６は、クラスタ分析部４０５で算出した定位位置とレベル差算出部４０４で算出された各周波数のレベル差との距離に応じた重み係数を算出する。重み係数決定部４０６は、レベル差算出部４０４からの出力であるレベル差Ｓｕｂt1（ω）〜Ｓｕｂtn（ω）と定位位置Ｃiから、各音源への周波数成分の割り振りを決定し、再合成部４０７、４０８へ出力する。再合成部４０７にはＷ1t1（ω）〜Ｗ1tn（ω）が入力され、再合成部４０８にはＷ2t1（ω）〜Ｗ2tn（ω）が入力される。なお、重み係数決定部４０６は必須ではなく、求められた定位位置とレベル差に応じて再合成部４０７への出力を求めることができる。【００３３】
クラスタ中心と各データとの距離に応じた重み係数をかけて各音源に分配することにより、スペクトルの不連続性が軽減される。スペクトルの不連続により再合成された信号の音質の劣化を防ぐために、各周波数成分をどれか一つの音源にのみ割り当てるのではなく、レベル差に対して各クラスタ中心との距離をもとに重み付けを行い、全ての音源に周波数成分を割り当てる。これにより各音源において、ある周波数成分が著しく小さい値をとるようなことはなくなり、スペクトルの連続性がある程度保たれ、音質が向上する。【００３４】
再合成部４０７、４０８は、重み付けされた周波数成分をもとに再合成（ＩＦＦＴ）して音信号を出力する。そして、再合成部４０７はＳｏｕｔ1ＬとＳｏｕｔ1Ｒを出力し、再合成部４０８はＳｏｕｔ2ＬとＳｏｕｔ2Ｒを出力する。再合成部４０７、４０８は、重み係数決定部４０６により算出された重み係数とＳＴＦＴ部４０２、４０３からの元の周波数成分とを乗算することにより、出力信号の周波数成分を決定し再合成する。なお、ＳＴＦＴ部４０２、４０３が短時間フーリエ変換を行う場合は、短時間逆フーリエ変換を行うが、ＧＨＡ、ウェーブレット変換の場合は、それぞれに対応した逆変換を実行する。【００３５】
（実施例１）
図５は、実施例１の音分離方法の処理を示すフローチャートである。まず、分離を行うステレオ信号４０１を入力する（ステップＳ５０１）。次に、ＳＴＦＴ部４０２、４０３は、その信号を短時間フーリエ変換し（ステップＳ５０２）、一定時間毎の周波数データに変換する。このデータは複素数であるが、その絶対値は各周波数のパワーを示している。フーリエ変換の窓幅については２０４８〜４０９６サンプル程度が望ましい。次に、このパワーを計算する（ステップＳ５０３）。すなわち、このパワーをＬチャンネル信号（Ｌ信号）とＲチャンネル信号（Ｒ信号）の両方において計算する。【００３６】
次に、そのそれぞれの信号を減算することによって、周波数毎のＬ信号とＲ信号のレベル差を算出する（ステップＳ５０４）。レベル差を『（Ｌ信号のパワー）−（Ｒ信号のパワー）』で定義したとき、この値は、たとえば低域のパワーの割合が大きいような音源（コントラバス等）がＬ側で鳴っていたような場合、低域において高い正の値をとることになる。【００３７】
次に、音源定位位置の推定値を算出する（ステップＳ５０５）。すなわち、混合した複数の音源がそれぞれどの位置に定位しているかの推定値を算出する。定位位置がわかったら、周波数毎にその位置と実際のレベル差との距離を考え、その距離に応じて重み係数を算出する（ステップＳ５０６）。全ての重み係数が算出されたら、元の周波数成分と乗算を行い、各音源の周波数成分を作成し、それらを逆フーリエ変換により再合成する（ステップＳ５０７）。そして分離信号が出力される（ステップＳ５０８）。すなわち、再合成された信号は音源ごとに、それぞれ分離された信号として出力される。【００３８】
図６は、実施例１の音源定位位置の推定処理を示すフローチャートである。今、短時間フーリエ変換（ＳＴＦＴ）により時間が区切られており、この区切られた時間毎に、データとしては各周波数のＬチャンネル信号とＲチャンネル信号とのレベル差（単位：ｄＢ）が格納されている。【００３９】
まず、ＬとＲのレベル差データを受け取る（ステップＳ６０１）。ここではこれらのうち、各周波数に対して、時間毎のレベル差のデータを音源数でクラスタリングする（ステップＳ６０２）。そしてクラスタ中心を算出する（ステップＳ６０３）。クラスタリングはｋ−ｍｅａｎｓ法を用いており、ここではあらかじめこの信号に含まれる音源の数がわかっていることが条件になる。求められた中心（音源数の数だけ存在する）は、その周波数における発生頻度の高い場所とみなすことができる。【００４０】
各周波数に対してこの操作を行った後、中心位置を周波数方向に平均化する（ステップＳ６０４）。それにより、音源全体としての定位情報をつかむことができる。そして、平均化した値をその音源の定位位置（単位：ｄＢ）とし、定位位置を推定、出力する（ステップＳ６０５）。【００４１】
次に、クラスタ分析について説明する。クラスタ分析は、似ているデータ同士は同じ振る舞いをするという前提のもとに、似ているデータは同じクラスタに、似ていないデータは別なクラスタにとデータをグループ化する分析である。クラスタは、そのクラス内のほかのデータとは似ているが、違うクラスタ内のデータとは似ていないようなデータの集合である。この分析では、通常、データを多次元空間内の点とみなし、距離を定義し、距離の近いものを似ているとする。距離の計算では、カテゴリデータに対しては数量化を行い距離を計算する。【００４２】
ｋ−ｍｅａｎｓ法は、クラスタリングの一種で、これによりデータは、与えられたｋ個のクラスタに分割される。ここで、クラスタの中心値をそのクラスタを代表する値とする。クラスタの中心値との距離を計算することで、データがどのクラスタに属するかを判断する。この際、最も近いクラスタにデータを配分する。【００４３】
そして、全てのデータについて、クラスタにデータを配分し終わったあと、クラスタの中心値を更新する。クラスタの中心値は全ての点の平均値である。上記の操作を、全てのデータとデータが属するクラスタの中心値との距離の合計が最小になるまで(更新されなくなるまで)繰り返す。【００４４】
ｋ−ｍｅａｎｓ法のアルゴリズムを簡単に述べると次のようになっている。
１  Ｋ個の初期クラスタ中心を決める
２  すべてのデータを最も近いクラスタ中心のクラスタに分類する
３  新たにできたクラスタの重心をクラスタ中心とする
４  新たなクラスタ中心がすべて以前と同じであれば終了し、そうでなければ２に戻る
このように、徐々に局所最適解に収束していくアルゴリズムである。【００４５】
ここで、図７および図８を用いて重み係数の算出について説明する。音源数が２つとして説明をするが、実際には音源数は３つ以上とすることもできる。図７は、ある周波数での２つの定位位置と実際のレベル差を示す説明図である。２つの定位位置は、７０１（Ｃ1）、７０２（Ｃ2）で示される。クラスタリングにより、クラスタ中心である定位位置Ｃ1と定位位置Ｃ2が求められ、一方で実際のレベル差７０３（Ｓｕｂtn）が与えられた状況が示されている。【００４６】
この場合、実際のレベル差７０３は定位位置Ｃ2の位置に近く、この周波数は定位位置Ｃ2から多く発せられると考えることができるが、実際は定位位置Ｃ1からも少ない量ではあるが発せられているので、レベル差の位置が両者の間に位置していると考えられる。従って、この周波数をより近い定位位置Ｃ2の方にのみ分配すると定位位置Ｃ1はもちろん定位位置Ｃ2も正確な周波数構造を得ることができない。【００４７】
図８は、２つの定位位置に対する重み係数の分配を示す説明図である。図８に示すように、距離に応じた重み係数Ｗitn（図８では、Ｗ1tn、Ｗ2tn）を考え、それを元の周波数成分に乗算することにより、両者に適切な周波数成分が分配される。この重み係数Ｗitnは各周波数について和が１である必要がある。また、Ｗitnは定位位置Ｃ1、Ｃ2と実際のレベル差Ｓｕｂtnとの距離が近いほど値は大きくなければならない。【００４８】
たとえば、重み係数を、Ｗitn=ａ(|Subtn-ci|)（ただし、０＜ａ＜１）とし、後にこのＷitnを各周波数について和が１になるよう正規化すればよい。式中のａは０＜ａ＜１を満たす範囲で適切な値を設定する。【００４９】
また、再合成部４０７、４０８の演算に用いる重み付け係数を、Ｗitn（ω）とする。ここで、対応する周波数について、ＳＴＦＴ部４０２、４０３の出力に乗算したものをＳＬitn（ω）,ＳＲitn（ω）とする。
ＳＬitn＝Ｗitn（ω）・ＳＬtn（ω）
ＳＲitn＝Ｗitn（ω）・ＳＲtn（ω）【００５０】
このような重み付けを行うことにより、ＳＬitn（ω）は時刻ｔｎにおける音源ｉのＬ側を生成する周波数構造を表し、ＳＲitn（ω）は同様のＲ側を生成する周波数構造を表していることになるので、これらを逆フーリエ変換し、時間毎につなぐと音源ｉのみの信号が抽出される。【００５１】
たとえば、音源数が２つであった場合は、
ＳＬ1tn＝Ｗ1tn（ω）・ＳＬtn（ω）
ＳＲ1tn＝Ｗ1tn（ω）・ＳＲtn（ω）
ＳＬ2tn＝Ｗ2tn（ω）・ＳＬtn（ω）
ＳＲ2tn＝Ｗ2tn（ω）・ＳＲtn（ω）
となり、これらを逆フーリエ変換し、時間毎につなぐと各音源の信号が抽出される。【００５２】
図９は、窓関数をシフトしていく処理を示す説明図である。図９を用いて、ＳＴＦＴの窓関数の重なりを説明する。入力波形９０１に示すように信号が入力され、この信号に対して短時間フーリエ変換する。この短時間フーリエ変換は、波形９０２に示される窓関数に従って行う。この窓関数の窓幅は区間９０３に示される通りである。【００５３】
一般に離散フーリエ変換は有限長の区間の解析を行うが、その際にその区間内の波形が周期的に繰り返されたものとみなして処理する。そのために波形のつなぎ目に不連続が生じるので、そのまま解析すると高調波を含んでしまう。【００５４】
この現象に対する改善手法として、窓関数を解析区間内に掛ける手法がある。窓関数は様々なものが提案されているが、一般的には区間の両端の部分の値を低く抑えることにより、つなぎ目の不連続性を低減させる効果がある。【００５５】
短時間フーリエ変換を行う際は各区間ごとにこの処理を行っていくが、その際に窓関数によって再合成時に振幅が元の波形と異なってしまう（区間によって減少、増大する）ことが考えられる。これを解決するには、図９のように波形９０２で示される窓関数を一定の区間９０４ごとにシフトさせながら解析を行い、再合成の際には同一時刻の値を加算させ、その後区間９０４で示されるシフト幅に応じた適切な正規化を行えばよい。【００５６】
図１０は、分離する音の入力状況を示す説明図である。録音装置１００１は、音源１００２〜１００４から流れてくる音を記録する。音源１００２からは周波数ｆ1とｆ2、音源１００３からは周波数ｆ3とｆ5、音源１００４からは周波数ｆ4とｆ6の音がそれぞれ流れ、これらのすべての混合音が録音装置で記録される。【００５７】
この実施例においては、このように記録された音が音源１００２〜１００４のそれぞれに対してクラスタリングされて分離される。すなわち、音源１００２の音の分離を指定した場合、周波数ｆ1とｆ2の音が混合音から分離される。音源１００３の音の分離を指定した場合、周波数ｆ3とｆ5の音が混合音から分離される。音源１００４の音の分離を指定した場合、周波数ｆ4とｆ6の音が混合音から分離される。【００５８】
このように、この実施例においては、音源別に音を分離することができるが、音源１００２〜１００４のいずれにも属さない周波数ｆ7の音が混合音に記録される場合がある。この場合、周波数ｆ7の音は音源１００２〜１００４のそれぞれに対応した重み係数がかけ合わされて割り当てられる。そのことにより、分類されない周波数ｆ7の音も音源１００２〜１００４に割り当てることができ、分離後の音についてスペクトルの不連続性を軽減することができる。【００５９】
なお、分離後の信号はその後さらにそれぞれ独立したＣＰＵ３０３、アンプ３０７、スピーカ３０８、３０９を通して再生させても良い。その後の処理を分離音ごとに独立して行うことによって、分離した音にそれぞれ独立したエフェクト等を加えたり、音源位置を物理的に変化させたりすることが可能になる。ＳＴＦＴの窓幅は音源の種類によって変化させても良く、また、ＳＴＦＴの窓幅は帯域によって変化させても良い。適切なパラメータを設定することでより高精度な結果を得ることができる。【００６０】
（実施例２）
図１１は、実施例２の音分離装置の機能的構成を示すブロック図である。処理は、図３に示したＣＰＵ３０３が、ＲＯＭ３０４に書き込まれたプログラムを読み出すことによって、ＲＡＭ３０５をワークエリアとして使用することにより実行する。ハードウェア構成は図３と同じであるが、機能的構成は、図４のレベル差算出部４０４を位相差検出部１１０１に置き換え、図１１に示したとおりになる。すなわち、音分離装置は、図４に示した実施例１の構成と同じＳＴＦＴ部４０２、４０３、クラスタ分析部４０５、重み係数決定部４０６、再合成部４０７、４０８に加え、位相差検出部１１０１から構成される。【００６１】
まず、ステレオ信号４０１が入力される。ステレオ信号４０１は、Ｌ側の信号ＳＬと、Ｒ側の信号ＳＲにより構成される。信号ＳＬはＳＴＦＴ部４０２に入力され、信号ＳＲはＳＴＦＴ部４０３に入力される。ＳＴＦＴ部４０２、４０３は、ステレオ信号４０１がＳＴＦＴ部４０２、４０３に入力されると、ステレオ信号４０１に対して短時間フーリエ変換を行う。ＳＴＦＴ部４０２は、信号ＳＬをスペクトルＳＬt1（ω）〜ＳＬtn（ω）に変換して出力し、ＳＴＦＴ部４０３は、信号ＳＲをスペクトルＳＲt1（ω）〜ＳＲtn（ω）に変換して出力する。【００６２】
位相差検出部１１０１は位相差を検出する。この位相差および実施例１に示したレベル差情報、その他に両信号の時間差などが定位情報の一例として挙げられる。実施例２では両信号の位相差を用いた場合について説明する。この場合、位相差検出部１１０１は、ＳＴＦＴ部４０２、４０３からの信号の位相差を、ｔ１〜ｔｎまでのそれぞれについて求める。その結果得られた位相差Ｓｕｂt1（ω）〜Ｓｕｂtn（ω）が、クラスタ分析部４０５および重み係数決定部４０６に出力される。【００６３】
この場合、位相差検出部１１０１は、周波数領域に変換されたＬ側の信号ＳＬtnとその時刻に対応するＲ側の信号ＳＲtnの共役複素数との積（クロススペクトル）を計算することによって求めることができる。例えばｎ＝１において、次式のようにおく。【００６４】
【数１】
0004767247.tif 000002
【００６５】
この場合、それらのクロススペクトルは次式のようになる。ここで、＊は複素共役を表す。【００６６】
【数２】
0004767247.tif 000003
【００６７】
そして、位相差は次式のように表される。【００６８】
【数３】
0004767247.tif 000004
【００６９】
クラスタ分析部４０５は、得られた位相差Ｓｕｂt1（ω）〜Ｓｕｂtn（ω）を入力し、音源数のクラスタ毎に分類する。クラスタ分析部４０５は、各々のクラスタの中心位置から算出した音源の定位位置Ｃi（ｉは音源の数）を出力する。クラスタ分析部４０５は、左右の位相差から音源の定位位置を算出する。その際、発生した位相差を時間毎に算出しそれらを音源数のクラスタに分類した場合、各クラスタの中心を音源の位置とすることができる。図中では音源数を２つであると仮定して説明しているので、定位位置はＣ1とＣ2が出力される。なお、クラスタ分析部４０５は、周波数分解した信号について、各周波数で上記処理を行い、各周波数のクラスタ中心を平均化することでおおよその音源位置を算出する。【００７０】
重み係数決定部４０６は、クラスタ分析部４０５で算出した定位位置と位相差検出部１１０１で算出された各周波数の位相差との距離に応じた重み係数を算出する。重み係数決定部４０６は、位相差検出部１１０１からの出力である位相差Ｓｕｂt1（ω）〜Ｓｕｂtn（ω）と定位位置Ｃiから、各音源への周波数成分の割り振りを決定し、再合成部４０７、４０８へ出力する。再合成部４０７にはＷ1t1（ω）〜Ｗ1tn（ω）が入力され、再合成部４０８にはＷ2t1（ω）〜Ｗ2tn（ω）が入力される。なお、重み係数決定部４０６は必須ではなく、求められた定位位置と位相差に応じて再合成部４０７への出力を求めることができる。【００７１】
再合成部４０７、４０８は、重み付けされた周波数成分をもとに再合成（ＩＦＦＴ）して音信号を出力する。そして、再合成部４０７はＳout1ＬとＳout1Ｒを出力し、再合成部４０８はＳout2ＬとＳout2Ｒを出力する。再合成部４０７、４０８は、重み係数決定部４０６により算出された重み係数とＳＴＦＴ部４０２、４０３からの元の周波数成分とを乗算することにより、出力信号の周波数成分を決定し再合成する。【００７２】
実施例２の音分離方法は、図５に示したように処理される。ただし、ステップＳ５０４において、実施例１では周波数毎のＬ信号とＲ信号のレベル差を算出するが、この実施例２では周波数毎のＬ信号とＲ信号の位相差を算出する。そして、位相差にしたがって、音源定位位置の推定値を算出し、周波数毎にその位置と実際の位相差との距離を考え、その距離に応じて重み係数を算出する。全ての重み係数が算出されたら、元の周波数成分と乗算を行い、各音源の周波数成分を作成し、それらを逆フーリエ変換により再合成し、分離信号を出力する。【００７３】
図１２は、実施例２の音源定位位置の推定処理を示すフローチャートである。短時間フーリエ変換（ＳＴＦＴ）により時間が区切られており、この区切られた時間毎に、データとしては各周波数のＬチャンネル信号とＲチャンネル信号との位相差が格納されている。【００７４】
まず、ＬとＲの位相差データを受け取る（ステップＳ１２０１）。ここではこれらのうち、各周波数に対して、時間毎の位相差のデータを音源数でクラスタリングする（ステップＳ１２０２）。そしてクラスタ中心を算出する（ステップＳ１２０３）。【００７５】
各周波数に対してクラスタ中心を算出した後、中心位置を周波数方向に平均化する（ステップＳ１２０４）。それにより、音源全体としての位相差をつかむことができる。そして、平均化した値をその音源の定位位置とし、定位位置を推定、出力する（ステップＳ１２０５）。【００７６】
音源位置を推定するパラメータは対象となる信号によって有効性が異なってくる。たとえばエンジニアによってミキシングされた録音ソースなどは定位情報をレベル差で与えており、この場合、位相差や時間差は有効な定位情報として用いることはできない。一方、実環境で収録された信号をそのまま入力する際には位相差や時間差が有効に働く。定位情報を検出する手段を音源に応じて変化させることにより、様々な音源に対して同様の処理を施すことが可能になる。【００７７】
以上説明したように、この実施例の音分離装置、音分離方法、音分離プログラムおよびコンピュータに読み取り可能な記録媒体によれば、到達時間差が未知のミキシングによる定位情報からの音源分離が可能になる。また特定した方向と周波数毎に算出される方向とが一致しない場合にも、両者の距離に応じて周波数成分を分配することができる。その結果、スペクトルの不連続性を軽減し音質を向上させることができる。【００７８】
また、クラスタリングを用いることにより、少なくとも２チャンネルの信号から任意の数の音源に関して、音源数に依存せずに、２チャンネル間の周波数毎のレベル差を利用して、信号を分離・抽出することができる。【００７９】
また、各周波数について、成分の割り振りを適切な重み係数によって行うことにより、周波数スペクトルの不連続性を軽減し、分離後の信号の音質を向上させることができる。さらに、分離後の音質を向上させることで、観賞的価値を保ったまま既存の音源を加工することができる。【００８０】
こうした音源の分離は、音響再生装置やミキシングコンソールに適用することができる。この場合、音響再生装置は、楽器毎に独立再生、独立レベル調整可能となる。ミキシングコンソールは、既存の音源をミキシングしなおすことが可能となる。【００８１】
なお、本実施の形態で説明した音分離方法は、あらかじめ用意されたプログラムをパーソナル・コンピュータやワークステーション等のコンピュータで実行することにより実現することができる。このプログラムは、ハードディスク、フレキシブルディスク、ＣＤ−ＲＯＭ、ＭＯ、ＤＶＤ等のコンピュータで読み取り可能な記録媒体に記録され、コンピュータによって記録媒体から読み出されることによって実行される。またこのプログラムは、インターネット等のネットワークを介して配布することが可能な伝送媒体でもよい。
【図１】
0004767247.tif 000005
【図２】
0004767247.tif 000006
【図３】
0004767247.tif 000007
【図４】
0004767247.tif 000008
【図５】
0004767247.tif 000009
【図６】
0004767247.tif 000010
【図７】
0004767247.tif 000011
【図８】
0004767247.tif 000012
【図９】
0004767247.tif 000013
【図１０】
0004767247.tif 000014
【図１１】
0004767247.tif 000015
【図１２】
0004767247.tif 000016