(57)【特許請求の範囲】
【請求項１】
複数の音源からの音が混合された音響信号である入力音響信号と補助情報とが入力され、前記補助情報により特定される前記入力音響信号中の一部または全部の信号に含まれる何れか１つの音源からの音を抽出するマスクを特定するマスク情報の推定結果を出力するニューラルネットワークと、
前記ニューラルネットワークによりマスク情報の推定結果を出力させる処理を繰り返し実行させる制御部と、
を有し、
前記制御部は、繰り返し毎に、異なる補助情報を前記ニューラルネットワークに入力することで、異なる音源に対応する前記マスク情報の推定結果を出力させる
ことを特徴とする推定装置。
【請求項２】
前記補助情報は、前記入力音響信号のうち、過去に求めたマスク情報の推定結果に対応する音源の信号を前記入力音響信号から取り除いた残りの信号を特定する情報である
ことを特徴とする請求項１に記載の推定装置。
【請求項３】
前記補助情報として、前記ニューラルネットワークが抽出する音源を特定する音源特定情報をさらに含み、
前記ニューラルネットワークは、前記音源特定情報に対応する音源からの音を抽出するマスクを特定するマスク情報の推定結果を出力する
ことを特徴とする請求項２に記載の推定装置。
【請求項４】
複数の音源からの音が混合された音響信号である学習用の入力音響信号と補助情報とが入力され、前記補助情報により特定される前記学習用の入力音響信号中の一部または全部の信号に含まれる何れか１つの音源からの音を抽出するマスクを特定するマスク情報の推定結果を出力するニューラルネットワークと、
前記ニューラルネットワークによりマスク情報の推定結果を出力させる処理を繰り返し実行させる制御部と、
前記ニューラルネットワークにより求めたマスク情報の推定結果に対応する情報と、前記学習用の入力音響信号に対して予め与えられた正解のマスク情報に対応する情報との比較結果に基づいて、前記ニューラルネットワークの各パラメータを更新するパラメータ更新部と、
を有し、
前記制御部は、繰り返し毎に、異なる補助情報を前記ニューラルネットワークに入力することで、異なる音源に対応する前記マスク情報の推定結果を出力させる
ことを特徴とする学習装置。
【請求項５】
前記補助情報は、前記入力音響信号のうち、過去に求めたマスク情報の推定結果に対応する音源の信号を前記入力音響信号から取り除いた残りの信号を特定する情報である
ことを特徴とする請求項４に記載の学習装置。
【請求項６】
前記パラメータ更新部は、前記マスク情報の推定結果と前記正解のマスク情報とが近づくように、前記ニューラルネットワークの各パラメータを更新することを特徴とする請求項４または５に記載の学習装置。
【請求項７】
前記ニューラルネットワークは、前記マスク情報の推定結果に加えて、前記制御部において繰り返し処理を継続するか否かを表す停止フラグを出力し、
前記パラメータ更新部は、前記停止フラグと、予め与えられた当該停止フラグの正解とが近づくように、前記ニューラルネットワークの各パラメータを更新することを特徴とする請求項６に記載の学習装置。
【請求項８】
前記パラメータ更新部は、前記制御部の各繰り返し処理における補助情報と、予め与えられた当該補助情報の正解とが近づくように、前記ニューラルネットワークの各パラメータを更新することを特徴とする請求項６に記載の学習装置。
【請求項９】
前記ニューラルネットワークは、前記マスク情報の推定結果に加えて、前記制御部において繰り返し処理を継続するか否かを表す停止フラグを出力し、
前記パラメータ更新部は、前記停止フラグと、予め与えられた当該停止フラグの正解とが近づくように、前記ニューラルネットワークの各パラメータを更新することを特徴とする請求項８に記載の学習装置。
【請求項１０】
前記補助情報として、前記ニューラルネットワークが抽出する音源を特定する音源特定情報をさらに含み、
前記ニューラルネットワークは、前記音源特定情報に対応する音源からの音を抽出するマスクを特定するマスク情報の推定結果を出力する
ことを特徴とする請求項５に記載の学習装置。
【請求項１１】
前記パラメータ更新部は、前記マスク情報の推定結果と前記正解のマスク情報とが近づくように、前記ニューラルネットワークの各パラメータを更新することを特徴とする請求項１０に記載の学習装置。
【請求項１２】
前記パラメータ更新部は、前記制御部の各繰り返し処理における補助情報と、予め与えられた当該補助情報の正解とが近づくように、前記ニューラルネットワークの各パラメータを更新することを特徴とする請求項１１に記載の学習装置。
【請求項１３】
前記ニューラルネットワークは、前記マスク情報の推定結果に加えて、前記制御部において繰り返し処理を継続するか否かを表す停止フラグを出力し、
前記パラメータ更新部は、前記停止フラグと、予め与えられた当該停止フラグの正解とが近づくように、前記ニューラルネットワークの各パラメータを更新することを特徴とする請求項１１または１２に記載の学習装置。
【請求項１４】
推定装置が実行する推定方法であって、
複数の音源からの音が混合された音響信号である入力音響信号と補助情報とが入力され、ニューラルネットワークにより、前記補助情報により特定される前記入力音響信号中の一部または全部の信号に含まれる何れか１つの音源からの音を抽出するマスクを特定するマスク情報の推定結果を得る推定工程と、
前記推定工程によりマスク情報の推定結果を得る処理を繰り返し実行させる制御工程と、
を含み、
前記制御工程は、繰り返し毎に、異なる補助情報を前記ニューラルネットワークに入力することで、異なる音源に対応する前記マスク情報の推定結果を得る
ことを特徴とする推定方法。
【請求項１５】
学習装置が実行する学習方法であって、
複数の音源からの音が混合された音響信号である学習用の入力音響信号と補助情報とが入力され、ニューラルネットワークにより、前記補助情報により特定される前記学習用の入力音響信号中の一部または全部の信号に含まれる何れか１つの音源からの音を抽出するマスクを特定するマスク情報の推定結果を得る推定工程と、
前記推定工程によりマスク情報の推定結果を得る処理を繰り返し実行させる制御工程と、
前記推定工程により求めたマスク情報の推定結果に対応する情報と、前記学習用の入力音響信号に対して予め与えられた正解のマスク情報に対応する情報との比較結果に基づいて、前記ニューラルネットワークの各パラメータを更新するパラメータ更新工程と、
を含み、
前記制御工程は、繰り返し毎に、異なる補助情報を前記ニューラルネットワークに入力することで、異なる音源に対応する前記マスク情報の推定結果を得るものである
ことを特徴とする学習方法。
【請求項１６】
コンピュータを、請求項１乃至３のいずれか一項に記載の推定装置または請求項４乃至１３のいずれか一項に記載の学習装置として機能させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、推定装置、学習装置、推定方法、学習方法及びプログラムに関する。
【背景技術】
【０００２】
複数の音源からの音が混合された音響信号を、音源ごとの信号に分離する音源分離の技術では、複数のマイクで収音された音を対象とする音源分離技術と、１つのマイクで収音された音を対象とする音源分離技術がある。後者の技術は、音源の位置に関する情報を利用することができないため、前者の技術よりも難しいとされている。【０００３】
音源の位置の情報を使わず、入力音響信号の情報に基づいて音源分離を行う後者の技術として、非特許文献１に記載の技術が知られている。【０００４】
非特許文献１に記載の技術では、入力音響信号を双方向長短期記憶（Bi-directional  Long  Short-Term  Memory：ＢＬＳＴＭ）により時間周波数ごとに定まる埋め込みベクトルに変換した後、それらの埋め込みベクトルをｋ−ｍｅａｎｓ法により音源ごとのクラスタにクラスタリングして、各クラスタに属する音源を抽出するためのマスクを推定する。非特許文献１に記載の技術は、ＢＬＳＴＭのパラメータの学習時には、同一音源からの音が（エネルギー的に）支配的である時間周波数における埋め込みベクトルはできる限り平行となり、異なる音源間の埋め込みベクトルはできる限り直交するように、パラメータを更新する。また、非特許文献１に記載の技術は、運用時には、パラメータ学習済みの双方向長短期記憶を用いて入力音響信号を埋め込みベクトルに変換し、その結果をｋ−ｍｅａｎｓ法によりクラスタリングして、マスク推定結果を得る。【０００５】
また、クラスタリング等のニューラルネットワーク（Neural  Network：ＮＮ）の外部の処理を要することなく、入力音響信号をＮＮに入力し、直接、音源ごとのマスクの推定結果を得ることができる技術も提案されている（非特許文献２参照）。
【先行技術文献】
【非特許文献】
【０００６】
【非特許文献１】Zhuo  Chen,  Yi  Luo,  and  Nima  Mesgarani,  “DEEP  ATTRACTOR  NETWORK  FOR  SINGLE-MICROPHONE  SPEAKER  SEPARATION”,  arXiv  preprint  arXiv:1611.08930,  2016.
【非特許文献２】D.  Yu,  M.  Kolbak,  Z.-H.  Tan,  and  J.  Jensen,  “Permutation  in-variant  training  of  deep  models  for  speaker-independent  multi-talker  speech  separation”,  in  ICASSP,  2017,  pp.  241−245.
【発明の概要】
【発明が解決しようとする課題】
【０００７】
非特許文献１記載の技術では、入力音響信号をＮＮ（ＢＬＳＴＭ)により埋め込みベクトルに変換した後、ｋ−ｍｅａｎｓ法でクラスタリングを行うという２段階構成になっている。ここで、前段のＢＬＳＴＭは、音源数が未知であっても対応できるものの、後段のｋ−ｍｅａｎｓ法では音源数が既知である（予め与えられる）必要があり、未知の音源数の音源分離に対応できない。【０００８】
非特許文献２の技術では、ＮＮの出力が直接マスクの推定結果となるため、ＮＮの出力層のノード数が分離可能な音源数と密接な関係を有することになる。したがって、この技術では、予め学習時に用意した出力層のノード数に応じて、分離可能な音源数に限界があるため、任意の音源数に対応することができない。【０００９】
本発明は、上記に鑑みてなされたものであって、ＮＮのノード数に関係なく、任意の音源数の入力音響信号に対してマスク情報を推定することができる推定装置、学習装置、推定方法、学習方法及びプログラムを提供することを目的とする。
【課題を解決するための手段】
【００１０】
上述した課題を解決し、目的を達成するために、本発明に係るマスク推定装置は、複数の音源からの音が混合された音響信号である入力音響信号と補助情報とが入力され、補助情報により特定される前記入力音響信号中の一部または全部の信号に含まれる何れか１つの音源からの音を抽出するマスクを特定するマスク情報の推定結果を出力するニューラルネットワークと、該ニューラルネットワークによりマスク情報の推定結果を出力させる処理を繰り返し実行させる制御部とを有する。そして、制御部は、繰り返し毎に、異なる補助情報をニューラルネットワークに入力することで、異なる音源に対応するマスク情報の推定結果を出力させることを特徴とする。【００１１】
また、本発明に係る学習装置は、複数の音源からの音が混合された音響信号である学習用の入力音響信号と補助情報とが入力され、補助情報により特定される学習用の入力音響信号中の一部または全部の信号に含まれる何れか１つの音源からの音を抽出するマスクを特定するマスク情報の推定結果を出力するニューラルネットワークと、該ニューラルネットワークによりマスク情報の推定結果を出力させる処理を繰り返し実行させる制御部と、該ニューラルネットワークにより求めたマスク情報の推定結果に対応する情報と、学習用の入力音響信号に対して予め与えられた正解のマスク情報に対応する情報との比較結果に基づいて、該ニューラルネットワークの各パラメータを更新するパラメータ更新部と、を有する。そして、制御部は、繰り返し毎に、異なる補助情報を前記ニューラルネットワークに入力することで、異なる音源に対応するマスク情報の推定結果を出力させることを特徴とする。
【発明の効果】
【００１２】
本発明によれば、ＮＮのノード数に関係なく、任意の音源数の音が混合された入力音響信号に対してマスク情報を推定することができる。
【図面の簡単な説明】
【００１３】
【図１】図１は、実施の形態１に係るマスク推定装置の構成の一例を示す図である。
【図２】図２は、図１に示すマスク推定装置におけるマスク推定処理の一例を示す図である。
【図３】図３は、図１に示すマスク推定装置におけるマスク推定処理の処理手順のフローチャートである。
【図４】図４は、実施の形態２に係る学習装置の構成の一例を示す図である。
【図５】図５は、図４に示す学習装置における学習処理の一例を示す図である。
【図６】図６は、図４に示す学習装置における学習処理の処理手順のフローチャートである。
【図７】図７は、実施の形態３に係る信号分離装置の一例を示す図である。
【図８】図８は、図７に示す信号分離装置における学習処理の処理手順のフローチャートである。
【図９】図９は、実施の形態４に係るマスク推定処理の一例を示す図である。
【図１０】図１０は、実施の形態４に係るマスク推定処理の処理手順のフローチャートである。
【図１１】図１１は、実施の形態５に係る学習処理の一例を示す図である。
【図１２】図１２は、実施の形態５に係る学習処理の処理手順のフローチャートである。
【図１３】図１３は、プログラムが実行されることにより、マスク推定装置、学習装置及び信号分離装置が実現されるコンピュータの一例を示す図である。
【発明を実施するための形態】
【００１４】
以下に、本願に係る推定装置、学習装置、推定方法、学習方法及びプログラムの実施形態を図面に基づいて詳細に説明する。また、本発明は、以下に説明する実施形態により限定されるものではない。なお、以下では、ベクトル、行列又はスカラーであるＡに対し、“＾Ａ”と記載する場合は「“Ａ”の直上に“＾”が記された記号」と同じであるとする。
【００１５】
［実施の形態１］
まず、実施の形態１に係るマスク推定装置の構成について説明する。実施の形態１に係るマスク推定装置は、一度に全てのマスクを推定させるのではなく、一部の音源に対応するマスクを推定する処理を繰り返し行うことによって、全ての音源に対応するマスクの推定を行う。
【００１６】
図１は、実施の形態１に係るマスク推定装置の構成の一例を示す図である。実施の形態１に係るマスク推定装置１０は、例えば、ＲＯＭ（Read  Only  Memory）、ＲＡＭ（Random  Access  Memory）、ＣＰＵ（Central  Processing  Unit）等を含むコンピュータ等に所定のプログラムが読み込まれて、ＣＰＵが所定のプログラムを実行することで実現される。図１に示すように、マスク推定装置１０は、マスク推定部１１（推定部）、及び制御部１３を有する。マスク推定装置１０には、マスク推定対象であって、複数の音源からの音を含む音響信号（以降、入力音響信号という。）が入力される。
【００１７】
マスク推定部１１は、ＮＮを有する。このＮＮには、入力音響信号と、入力音響信号のうちマスク推定部１１においてマスク推定の対象とする信号を特定する情報である残留マスクとが入力される。そして、ＮＮは、入力音響信号のうち残留マスクにより特定される信号に含まれる１つの音源に対応するマスク情報を推定して出力するとともに、マスク情報の推定処理の停止に関与する停止フラグを出力する。ＮＮのパラメータは、後述の学習装置２０等により予め学習済みであるものとする。また、マスク推定部１１において、各処理時のＮＮは、同じものを用いる。また、推定されるマスク情報とは、入力音響信号から所定の音源に対応する音を抽出するためのマスクを特定する情報であって、マスクそのものであってもよいし、マスクを一意に特定可能なパラメータの組み合わせ等であってもよい。
【００１８】
マスク推定部１１は、ＮＮに入力された入力音響信号のうち、残留マスクにより特定される信号に着目し、その信号に含まれる（であろう）いずれか１つの音源に対応するマスクを推定して出力する。つまり、残留マスクは、入力音響信号のうち、今回のマスク推定部１１の処理においてマスクを推定する際に注目する信号を特定する補助情報である。１回目の実行時は入力音響信号の全体に着目するが、２回目以降のマスク推定部１１の処理においては、入力音響信号から既に推定済みのマスク情報に対応する音源の信号を除いた残りの信号に着目してマスクを推定するように、補助情報により注目すべき信号を特定する。すなわち、マスク推定部１１は、補助情報に従って入力音響信号の一部または全部に着目して、着目した信号中に含まれる何れか１つの音源に対応するマスクを特定するマスク情報を推定するのである。
【００１９】
制御部１３は、ＮＮが出力した停止フラグが所定の停止条件を満たすまで、マスク推定部１１のマスク情報の推定処理を繰り返し実行させるようにマスク推定部１１を制御する。言い換えると、制御部１３は、停止フラグが処理を停止することを示す場合には、これまでの各繰り返し処理で音源ごとに求めたマスク情報を出力して、マスク推定処理を終了する。停止フラグが処理を継続することを示す場合（停止しないことを示す場合）は、直前のマスク推定部１１の処理の入力として用いた残留マスク（第１残留マスク）と直前のマスク推定部１１の処理で推定したマスク情報とに基づいて、新たな残留マスク（第２残留マスク）を計算し、計算した第２残留マスクを用いて再度マスク推定部１１の処理を行うよう制御する。第２残留マスクは、第１残留マスクから直前のマスク推定部１１の処理で推定したマスク情報を除いた残りの音源に対応する音を残すマスクである。つまり、第２残留マスクは、入力音響信号からこれまでのマスク推定部１１の処理で推定済みのマスクに対応する音源の信号を除いた信号（つまり、まだマスクが推定できていない信号）を特定する情報である。
【００２０】
なお、ここでは全ての音源に対応するマスク情報を推定させることを前提として、まだ推定していない音源に対応する信号が残っている限り、繰り返し処理を継続することを示すフラグが停止フラグとして出力されるような処理として説明を行ったが、必ずしも全ての音源に対応するマスクを推定することが必須でないことは言うまでもない。
【００２１】
要するに、制御部１３は、補助情報を変更しながらマスク推定部１１を繰り返し実行させることにより、各繰り返し処理において異なる音源に対応するマスク情報を逐次的に推定させる。制御部１３は、所定の条件を満たすまで繰り返し処理を行えばよい。例えば、推定させたい音源に対応するマスク情報が得られるまで、或いは全ての音源に対応するマスク情報が推定されるまで等、目的に応じて繰り返し回数を設定すればよい。全ての音源に対応するマスクを推定させる必要はない（つまり、一部の音源に対応するマスクを推定させたい）場合には、停止フラグは用いず、マスク情報の推定結果に基づいて繰り返し処理の継続要否を決定すればよい。
【００２２】
［ＮＮに対する入力信号］
以上説明したように、本実施の形態では、入力音響信号と残留マスクとをマスク推定部１１に入力し、マスク推定部１１によるマスク情報の推定処理を行う。これを、残留マスクを変更しながら繰り返し処理を行う。つまり、各繰り返し処理において、マスク推定部１１には異なる残留マスク（補助情報）が入力される。図２は、図１に示すマスク推定装置１０におけるマスク推定処理の一例を示す図である。ここで、繰り返し処理の回数のインデックスをｉ（≧１）とし、入力音響信号をＹとする。ｉ回目の繰り返し処理においてＮＮに入力される残留マスクをＲｉとする。
【００２３】
残留マスクＲｉは、ｉ回目の繰り返し処理において、入力音響信号のうちマスク推定処理の際に注目する信号を特定する情報である。この注目する信号に含まれるいずれか１つの音源の信号に対応するマスク情報が推定されることになる。要するに、残留マスクは、既にマスク情報を推定済みの音源以外の音源のうち何れか１つの音源に対応するマスク情報が推定されるように、マスク情報を推定済みの音源に対応する信号以外の入力音響信号に着目したマスク推定処理をニューラルネットワークが行うように制御する補助情報の役割を担う。よって、最初の実行時の残留マスクＲ１は、入力音響信号全体をマスク推定部１１の処理の対象とすることを示す情報とする。
【００２４】
［ＮＮからの出力信号］
マスク推定部１１を実現するＮＮは、入力音響信号と残留マスクとの入力を受けて、入力音響信号のうち残留マスクにより特定される信号に着目して、当該信号に含まれるであろう１つの音源に対応する信号を抽出するマスク情報の推定結果（推定マスク情報）と停止フラグとを出力する。
【００２５】
ＮＮがｉ回目の繰り返し処理において出力する推定マスク情報を＾Ｍｉとする。ＮＮがｉ回目の繰り返し処理において出力する停止フラグを＾ｚｉとする。
【００２６】
推定マスク情報＾Ｍｉは、ｉ回目の繰り返し処理において、ＮＮが推定した、ｉ個目の音源に対応するマスク情報の推定結果である。
【００２７】
停止フラグ＾ｚｉは、ｉ回目の繰り返し処理においてＮＮから出力された、繰り返し処理の停止指示に関するフラグである。例えば＾ｚｉを０または１の値を取るものとして、＾ｚｉ＝１ならば繰り返し処理を終了し、＾ｚｉ＝０ならば繰り返し処理を継続するとすればよい。なお、＾ｚｉはこれに限られるものではなく、繰り返し処理を継続するか否かを判別できれば値は何でもよい。また、ＮＮが停止フラグを出力することは必須の構成ではない。停止フラグを出力しない場合は、例えば、これまでの繰り返し処理で求めた推定マスク情報＾Ｍ１，・・・，＾Ｍｉに基づいて、繰り返し処理を継続する必要があるか否かを計算して決定すればよい。
【００２８】
［ＮＮの処理］
マスク推定部１１を構成するＮＮは、入力された入力音響信号Ｙと残留マスクＲｉに基づいて、入力音響信号のうち残留マスクＲｉにより特定される信号に着目して、当該信号に含まれるいずれか１つの音源に対応する信号を抽出するマスクの推定結果を推定マスク情報として出力する。
【００２９】
［制御部の処理］
続いて、制御部１３の処理について説明する。制御部１３は、マスク推定部１１が停止フラグを出力する場合には、停止フラグに基づき、繰り返し処理を継続するか否かを決定し、繰り返し処理を継続する場合には、ｉ回目までの各繰り返し処理で求めた推定マスク情報＾Ｍ１，・・・，＾Ｍｉを用いて次のマスク推定部１１の入力とする残留マスクＲｉ＋１を計算し、マスク推定部１１に入力するとともに、マスク推定部１１の処理を実行させるよう制御する。ここで、マスク推定部１１が停止フラグを出力しない場合は、ｉ回目までの各繰り返し処理で求めた推定マスク情報＾Ｍ１，・・・，＾Ｍｉに基づき、繰り返し処理を継続するか否かを決定してもよい。例えば、繰り返し処理で求めた推定マスク情報＾Ｍ１，・・・，＾Ｍｉに基づいて残留マスクＲｉ＋１を計算し、入力音響信号に残留マスクＲｉ＋１を適用したときに残りの信号が存在しない（または残りの信号に音源からの音が含まれない）ならば、繰り返し処理を停止することとすればよい。
【００３０】
以上説明したように、制御部１３は、マスク推定部１１によりマスク情報を推定する処理を繰り返し行わせるものであり、各繰り返し処理において異なる補助情報（残留マスク）をニューラルネットワークへ入力することによって、異なる音源に対応するマスク情報が推定されるよう制御するのである。
【００３１】
［マスク推定処理の流れ］
次に、図２を参照して、マスク推定装置１０におけるマスク推定処理の流れを説明する。
【００３２】
まず、１回目の繰り返し処理について説明する。この例では、ＮＮ１１−１には、音源Ｓｒｃ１〜Ｓｒｃ３を含む入力音響信号Ｙが入力される。また、ＮＮ１１−１には、残留マスクＲ１が入力される。
【００３３】
ＮＮ１１−１は、入力音響信号Ｙ及び残留マスクＲ１が与えられると、例えば、音源Ｓｒｃ１の推定マスク情報＾Ｍ１を推定して出力するとともに、停止フラグ＾ｚ１（＝０）を出力する。
【００３４】
制御部１３（不図示）は、停止フラグ＾ｚ１に基づいて繰り返し処理を行うか否かを決定する。ここでは、＾ｚ１＝０なので、繰り返し処理を継続すると判定し、次の繰り返し処理の入力となる残留マスクＲ２を計算する。残留マスクＲ２は、入力音響信号から推定マスク情報＾Ｍ１に対応する音源の音を取り除いた信号を特定する情報であり、例えば、残留マスクＲ１が入力音響信号全体を通すマスク情報とすれば、残留マスクＲ１から＾Ｍ１を取り除いたものである。言い換えれば、残留マスクＲ２は、まだ推定されていないＳｒｃ２及びＳｒｃ３に対応する音源の信号を通すようなマスクとも言える。残留マスクＲ２は２回目の繰り返し処理において、ＮＮ１１−１に入力される残留マスクとなる。
【００３５】
次に、２回目の繰り返し処理について説明する。この場合、ＮＮ１１−１には、入力音響信号Ｙと残留マスクＲ２とが与えられる。この結果、ＮＮ１１−１は、例えば、音源Ｓｒｃ２の推定マスク情報＾Ｍ２を推定して出力するとともに、停止フラグ＾ｚ２（＝０）を出力する。ここで、ＮＮ１１−１は、入力音響信号から、残留マスクＲ２により特定される信号、すなわち、入力音響信号から推定マスク情報＾Ｍ１に対応する音源の信号を取り除いた残りの信号に着目し、その信号に含まれる音源の１つであるＳｒｃ２に対応するマスクを推定マスク情報＾Ｍ２を求めることになる。
【００３６】
続いて、制御部１３は、停止フラグ＾ｚ２＝０なので、繰り返し処理を継続すると判定し、３回目の繰り返し処理の入力として用いる残留マスクＲ３を求めて出力する。残留マスクＲ３は、入力音響信号から既に推定済みの＾Ｍ１及び＾Ｍ２に対応する音源の信号を除いた残りの信号を特定する情報である。例えば、残留マスクＲ１が入力音響信号全体を通すマスク情報とすれば、残留マスクＲ１から＾Ｍ１と＾Ｍ２を取り除いたものが残留マスクＲ３である。
【００３７】
そして、３回目の繰り返し処理について説明する。この場合、ＮＮ１１−１には、入力音響信号Ｙと残留マスクＲ３とが与えられる。この結果、ＮＮ１１−１は、例えば、音源Ｓｒｃ３のマスク情報＾Ｍ３を推定して出力するとともに、停止フラグ＾ｚ３（＝１）を出力する。
【００３８】
続いて、制御部１３は、停止フラグ＾ｚ３＝１であるため、繰り返し処理を終了（停止）すると判定する（図２の（１）参照）。
【００３９】
なお、上述の例では停止フラグがＮＮから出力されるものとして説明したが（図２の（２）参照）、停止フラグを出力しない構成としてもよく、この場合、例えば、制御部１３は、まず残留マスクＲｉ＋１を計算し、その結果に基づき、繰り返し処理を行うか否かを決定する。
【００４０】
［マスク推定処理の処理手順］
次に、図３を参照して、マスク推定装置１０におけるマスク推定処理の処理手順を説明する。図３は、図１に示すマスク推定装置１０におけるマスク推定処理の処理手順のフローチャートである。
【００４１】
図３に示すように、まず、マスク推定装置１０では、マスク推定対象の音響信号（入力音響信号）が入力されると（ステップＳ１）、繰り返し処理回数のインデックスｉ＝１と初期化し（ステップＳ２）、１回目（ｉ回目）の繰り返し処理を実行する。
【００４２】
具体的には、マスク推定部１１のＮＮは、入力音響信号Ｙと残留マスクＲｉの入力を受け付け、入力音響信号Ｙに含まれる１つの音源のマスク情報＾Ｍｉを推定して出力するとともに、関与する停止フラグ＾ｚｉを出力するマスク推定処理（推定処理）を行う（ステップＳ３）。続いて、制御部１３は、ＮＮに入力された残留マスクＲｉとマスク推定部１１が推定したマスク情報＾Ｍｉとから新たなＲｉ＋１を求める（ステップＳ４）とともに、繰り返し処理を継続するか否かを判定する。
【００４３】
制御部１３は、残留マスクまたは停止フラブの少なくとも一つが所定の停止条件を満たすか否かを基に、繰り返し処理を停止するか否かを判定する（ステップＳ５）。
【００４４】
制御部１３は、繰り返し処理を停止しないと判定した場合（ステップＳ５：Ｎｏ）、ＮＮに、残留マスクＲｉ＋１を入力音響信号Ｙとともに入力し（ステップＳ６）、ｉ＝ｉ＋１（ステップＳ７）として、ステップＳ３に戻る。このように、制御部１３は、繰り返し処理を停止すると判定するまで、前回の繰り返し処理において制御部１３から出力された残留マスクと入力音響信号とをＮＮに入力し、ＮＮによるマスク情報の推定処理を繰り返し実行させる。
【００４５】
そして、制御部１３が繰り返し処理を停止すると判定した場合（ステップＳ５：Ｙｅｓ）、マスク推定装置１０は、これまでの各繰り返し処理で音源ごとに求めたマスク情報を出力して（ステップＳ８）、マスク推定処理を終了する。
【００４６】
［実施の形態１の効果］
本実施の形態１に係るマスク推定装置１０は、マスク推定部１１のＮＮが、入力音響信号と残留マスクとの入力を受けて、入力音響信号に含まれる１つの音源の推定マスク情報を推定して出力するとともに停止フラグを出力する。制御部１３は、推定マスク情報と残留マスクに基づいて、新たな残留マスクを計算し、停止フラグと新たな残留マスクとの少なくとも一つが所定の停止条件を満たすまで、新たな残留マスクと入力音響信号とをマスク推定部１１に入力し、マスク情報の推定処理を繰り返し実行させるようにマスク推定部１１を制御する。
【００４７】
このように、実施の形態１に係るマスク推定装置１０では、ＮＮに一度に全てのマスクを推定させるのではなく、ＮＮに入力音響信号のうち残留マスクにより特定される信号に含まれる一部の音源に対応するマスクを推定させる処理を、残留マスクを切り替えながら繰り返し行うことによって、全ての音源に対応するマスクの推定を行っている。したがって、実施の形態１によれば、ＮＮのノード数に関係なく、任意の音源数の入力音響信号に対してマスク情報を推定することができる。
【００４８】
また、実施の形態１では、各処理でマスクの推定に用いるＮＮは共通であるため、音源の数が増えたとしても、ＮＮの構成を変える必要はない。
【００４９】
また、実施の形態１では、停止フラグと制御部１３で計算される新たな残留マスクとの少なくとも一つを基に繰り返し処理の停止を判断するため、入力音響信号に含まれる全ての音源に対して、適切にマスク推定を実行することができる。
【００５０】
［実施の形態２］
次に、実施の形態２について説明する。実施の形態１では、マスク推定部１１のＮＮのパラメータは予め学習済みである物としたが、本実施の形態２では、このＮＮのパラメータの学習を行う学習装置について説明する。図４は、実施の形態２に係る学習装置の構成の一例を示す図である。
【００５１】
図４に示すように、実施の形態２に係る学習装置２０は、マスク推定部２１、制御部２３及びパラメータ更新部２４（更新部）を有する。学習装置２０には、学習用に予め用意された学習用の入力音響信号が入力される。この学習用の入力音響信号は、複数の音源からの音が混合された混合音響信号であり、各音源に対応する正解マスク情報がそれぞれ既知である。
【００５２】
マスク推定部２１は、図１に示すマスク推定部１１と同じ機能を有する。マスク推定部２１は、学習用の入力音響信号と残留マスクとをＮＮに入力する。これを受けて、ＮＮは、学習用の入力音響信号のうち残留マスクにより特定される信号に含まれる１つの音源のマスク情報を推定し、推定したマスク情報と停止フラグとを出力する。制御部２３が、残留マスクＲｉを変更しながらＮＮを繰り返し実行させることにより、異なる音源に対応するマスク情報を推定する。なお、各処理でマスクの推定に用いるＮＮは、共通である。なお、学習装置の実行開始時点においては、マスク推定部２１が有するＮＮの初期パラメータは、予め適当なものに設定しておくものとする。
【００５３】
制御部２３は、制御部１３と同様に、ｉ回目の繰り返し処理においてＮＮから出力された停止フラグ＾ｚｉと残留マスクＲｉ＋１との少なくとも何れかを、繰り返し処理の停止判定に用いる他、学習用の入力音響信号Ｙに含まれる全音源数と繰り返し回数iの比較結果に基づいて繰り返し処理の停止判定を行ってもよい。この場合、繰り返し回数ｉが全音源数に達していない場合には、繰り返し処理を停止しないと判定し、繰り返し回数ｉが全音源数に達したら停止すると判定する。
【００５４】
パラメータ更新部２４は、学習用の入力音響信号Ｙに含まれる各音源の信号の正解と、マスク推定部２１で推定された推定マスク情報に基づいて抽出される各音源の信号の推定値との比較結果に基づき、ＮＮの各パラメータを更新する。そして、推定結果が正解に近づくように、ＮＮの各パラメータの更新を行う。これは周知の誤差逆伝播学習法等の学習法に従えばよい。例えば、各音源の信号の正解と各音源の信号の推定値との距離（損失）に基づいて、ＮＮの各パラメータを更新する。損失は、ＮＮによる推定結果である推定マスク情報と正解マスクとがどの程度近づいたかを評価できる尺度であれば距離に限定されるものではなく、他の尺度を用いてもよい。
【００５５】
そして、パラメータ更新部２４は、損失の値が所定の条件を満たさない場合は、損失の値に基づいてマスク情報の推定値が正解のマスク情報に近づくように、マスク推定部２１のＮＮの各パラメータを更新する。これは、各パラメータの更新量等は、周知の誤算伝播学習法等に従う。つまり、計算された損失の値に基づいて更新量が決定されることになる。そして、パラメータを更新後は、再び繰り返し回数を初期化して、マスク推定部２１及び制御部２３により、パラメータ更新後のＮＮを用いて、各音源に対応するマスク情報を推定する処理を繰り返す。
【００５６】
パラメータ更新部２４は、損失の値が所定の条件を満たせば（マスク情報の推定値が正解のマスク情報に十分近い値となったら）、学習処理を終了する。学習処理終了時点でのＮＮの各パラメータの値が、学習済みのパラメータの値となる。
【００５７】
［損失関数］
パラメータ更新部２４で用いる損失の値は、例えば、所定の損失関数に基づき求めてもよい。損失関数Ｊの一例を以下に示す。損失関数Ｊは、例えば、（１）式により与えられる。
【００５８】
【数１】
0006927419.tif 000002
【００５９】
（１）式において、α、βは、自由に設定してよい。ここで、α、βを０としてもよく、この場合、０とした項は、損失として考慮しないことになる。つまり、α、βを０としたときの損失関数はＪ（ｍｓｅ）と等価である。以降、（１）式の右辺の各項について説明する。
【００６０】
［Ｊ（ｍｓｅ）］
まず、（１）式の各項のうち、Ｊ（ｍｓｅ）について説明する。Ｊ（ｍｓｅ）は、推定されたマスク情報により抽出される信号と正解の音源の信号との平均二乗誤差である。
【００６１】
ここで、ＮＮは、各繰り返し処理において入力された学習用の入力音響信号Ｙのある１つの音源のマスクを出力することを必要とされる。ただし、各ステップにおいてどの音源を推定するかという順序は事前に指定することができない。すると、各ステップで推定された推定マスク情報に対応する音源の正解がどれであるかを特定することが難しくなるが、これは例えば次の方法で解決すればよい。推定マスク情報＾Ｍｉに対応する音源の正解を特定する場合は、＾Ｍ１〜＾Ｍｉ−１に対する音源の正解は既に決定されている。まだ、推定マスク情報と対応付けられていない正解の音源の各々について、当該音源の信号の正解と推定マスク情報＾Ｍｉにより推定される音源の信号の推定値（つまり入力音響信号に＾Ｍｉを適用することで抽出される信号）との平均二乗誤差を計算し、その値が最も小さい正解の音源を、当該推定マスク情報＾Ｍｉに対応する正解音源の信号とすればよい。具体的には、学習用の入力音響信号は発話単位で区切られており、発話単位でマスク推定（学習）処理を行うものとして、発話単位の平均二乗誤差を損失として用いる。
【００６２】
Ｊ（ｍｓｅ）は、（２）式により与えられる。
【００６３】
【数２】
0006927419.tif 000003
【００６４】
（２）式において、Ｙは、学習用の入力音響信号である。^Ｍｉは、ｉ回目の繰り返し処理においてＮＮによって推定された１つの音源に対応するマスク情報である。Ａφ＊は、φ＊の振幅スペクトラムである。φ＊は、発話単位の分離エラーを最小化する音源の組み合わせ（配列）である。||・||Ｆは、フロベニウスノルムを表す。Ｂは、Ｔ×Ｎ×Ｓであり、全目的音源の時間周波数ビンの全数である。Ｔ、Ｎ及びＳは、タイムフレーム数、周波数ビン数、ターゲット音源の全数に相当する。Ｓは、繰り返し処理の回数ｉの最大値に相当する。
【００６５】
なお、φ＊は、（３）式により与えられる。（３）式中、Ｐは、全音源の全組み合わせ（配列）のセットである。
【００６６】
【数３】
0006927419.tif 000004
【００６７】
φ＊は、マスク推定部２１が全Ｓ回のマスク推定処理において推定した、最も損失が少ない音源ｓｉ＊の組み合わせである。このため、φ＊は、マスク推定部２１を繰り返し実行することで全ての音源に対応する推定マスク情報が得られた後に決定される。要するに、（２）式で与えられるＪ（ｍｓｅ）は、入力音響信号から推定マスク情報に基づき抽出した信号と、当該マスク情報に対応する音源の信号の正解との近さを示す尺度である。平均二乗誤差に限らず、近さを評価できる尺度であれば他の尺度で代用してもよい。
【００６８】
また、ここではＪ（ｍｓｅ）として推定マスク情報を用いて推定される音源の信号（つまり、入力音響信号に推定マスク情報を適用することで得られる信号）と、当該音源の信号の正解との近さによって、マスク情報の推定値と正解のマスク情報の近さを評価しているが、学習用に正解のマスク情報が与えられている場合は、マスク情報の推定値と正解のマスク情報との近さをＪ（ｍｓｅ）として用いてもよい。要するに、Ｊ（ｍｓｅ）はＮＮにより推定された推定マスク情報の適切さ（正しさ）を表す尺度であるといえる。
【００６９】
［Ｊ（ｆｌａｇ）］
次に、（１）式の各項のうち、Ｊ（ｆｌａｇ）について説明する。Ｊ（ｆｌａｇ）は、停止フラグに関する損失である。Ｊ（ｆｌａｇ）は、（４）式により与えられる。
【００７０】
【数４】
0006927419.tif 000005
【００７１】
（４）式において、＾ｚｉは、マスク推定部１１のＮＮがｉ回目の繰り返し処理において出力する停止フラグである。ｚは、停止フラグのベクトルである。ｚは、例えば、Ｓ−１個の０で構成される。具体的には、ｚ＝（ｚ１，ｚ２，・・・・，ｚＳ−１，ｚＳ）＝（０，０，・・・・，０，１）である。このため、Ｊ（ｆｌａｇ）は、ｚｉと＾ｚｉとの交差エントロピー損失として説明できる。つまり、Ｊ（ｆｌａｇ）は、ＮＮから出力される停止フラグ（推定停止フラグ）と停止フラグの正解との近さを示す尺度である。言い換えれば、Ｊ（ｆｌａｇ）は、ＮＮにより出力される停止フラグの適切さ（正しさ）を表す尺度ともいえる。
【００７２】
［Ｊ（ｒｅｓ−ｍａｓｋ）］
次に、（１）式の各項のうち、Ｊ（ｒｅｓ−ｍａｓｋ）について説明する。Ｊ（ｒｅｓ−ｍａｓｋ）は、残留マスクに関する損失である。Ｊ（ｒｅｓ−ｍａｓｋ）は、残留マスクによって全時間周波数ビンをカバーすること、及び、学習用音響信号Ｙの全音源を抽出することに対するＮＮの損失である。ここで、本実施の形態２では、Ｊ（ｒｅｓ−ｍａｓｋ）について、（５）式のように制限をかける。言い換えると、Ｊ（ｒｅｓ−ｍａｓｋ）に対し、残留マスクＲｉを負値として処理しないよう最大関数を適用した。
【００７３】
【数５】
0006927419.tif 000006
【００７４】
つまり、Ｊ（ｒｅｓ−ｍａｓｋ）は、繰り返し処理を行い、全てのiに対してマスクを推定した際に、各周波数点において少なくても一つ以上のマスクが有効な値（０よりも十分に大きい値）を持つことを強制する尺度である。言い換えれば、Ｊ（ｒｅｓ−ｍａｓｋ）を設けることで、ＮＮは、観測信号の全時間周波数点それぞれにおいて、何かしらのマスク推定をより積極的に行うこととなり、特定の時間周波数点がマスク推定対象から誤って除外されてしまうことを防ぐことができる。
【００７５】
以上より、損失関数は、ＮＮにより推定される推定マスク情報の適切さと相関する指標値であるといえる。加えて、損失関数には、停止フラグの適切さと相関する指標値が加味されてもよい。
【００７６】
［学習処理の流れ］
次に、図５を参照して、学習装置２０における学習処理の流れを説明する。図５は、図４に示す学習装置２０における学習処理の一例を示す図である。
【００７７】
まず、１回目の繰り返し処理について説明する。この例では、ＮＮ２１−１には、音源Ｓｒｃ１〜Ｓｒｃ３を含む学習用の入力音響信号Ｙが入力される。この学習用の入力音響信号Ｙは、各音源に対応する正解のマスク情報がそれぞれ既知である。また、ＮＮ２１−１には、残留マスクＲ１（＝１）が入力される。ここで、残留マスクＲ１は、入力音響信号の全体をマスク推定処理の対象とすることを示す情報である。
【００７８】
ＮＮ２１−１は、学習用の入力音響信号Ｙ及び残留マスクＲ１が与えられると、入力音響信号のうち残留マスクＲ１で特定される信号に着目して、当該信号に含まれる１つの音源の信号を抽出するマスクを特定する情報の推定値である推定マスク情報＾Ｍ１を推定するとともに、停止フラグ＾ｚ１を出力する。そして、制御部２３は、学習用音響信号に含まれた各音源の正解のマスクと、推定マスク情報との平均二乗誤差を損失として計算し、最も小さい損失を与える音源を、推定したかった音源とする。１回目の繰り返し処理では、制御部２３は、音源Ｓｒｃ１〜Ｓｒｃ３のうち、最も損失が小さい音源Ｓｒｃ１に対応する推定マスク情報＾Ｍ１をＮＮ２１−１が推定したとする。制御部２３は、繰り返し回数が音源数（この例では３）に達していないので繰り返し処理を継続すると判定し、２回目の繰り返し処理で用いる残留マスクＲ２を、残留マスクＲ１と推定マスク情報＾Ｍ１とから求める。
【００７９】
次に、２回目の繰り返し処理について説明する。２回目の繰り返し処理において、ＮＮ２１−１は、入力音響信号Ｙと残留マスクＲ２とが与えられると、マスク情報＾Ｍ２を推定するとともに、停止フラグ＾ｚ２を出力する。２回目の繰り返し処理では、マスクが未推定である音源Ｓｒｃ２，Ｓｒｃ３のうち、最も損失が小さい音源Ｓｒｃ２に対応するマスク情報＾Ｍ２をＮＮ２１−１が推定したとする。制御部２３は、繰り返し回数が音源数（この例では３）に達していないので繰り返し処理を継続すると判定し、３回目の繰り返し処理で用いる残留マスクＲ３を、残留マスクＲ２と推定マスク情報＾Ｍ２とから求める。
【００８０】
次に、３回目の繰り返し処理について説明する。ＮＮ２１−１は、３回目の繰り返し処理において、入力音響信号Ｙと残留マスクＲ３とが与えられると、マスク情報＾Ｍ３を推定するとともに、停止フラグ＾ｚ２を出力する。３回目の繰り返し処理では、制御部２３は、マスクが未推定である音源Ｓｒｃ３に対応するマスク情報＾Ｍ３をＮＮ２１−１が推定したとする。なお、３回目の繰り返し処理によって全ての音源のマスクに対し学習を行ったため、制御部２３は繰り返し処理を終了し、パラメータ更新を実行させる。
【００８１】
パラメータ更新部２４は、これまでに求めた推定マスク情報＾Ｍ１、＾Ｍ２、＾Ｍ３と正解データ（正解の音源毎の信号、もしくは、正解マスクの情報）を用いて、損失関数値を計算し、その結果に基づいてパラメータの更新要否を決定する。損失関数を、推定マスク情報＾Ｍ１、＾Ｍ２、＾Ｍ３が正解マスクに近づくほど小さな値となるような関数とした場合、損失関数値が所定の閾値未満であれば、パラメータ更新部２４は、現在のＮＮのパラメータの値を出力して学習を終了する。そうでない（損失関数値が所定の閾値以上である）場合は、損失関数値に基づいてＮＮの各パラメータの値を更新し、再び１回目の繰り返し処理に戻って学習処理を繰り返す。
【００８２】
なお、損失関数値の計算は、上述の説明のように、全てのマスクの推定を終えてからまとめて損失関数値を計算する構成としてもよいし、図５に示しているように、各繰り返し処理において、損失関数の一部（当該繰り返し処理で求めた推定マスク情報＾Ｍiとその正解マスクとの距離）を計算しておき、最後に全てのマスクの推定を終えてからそれらを統合して損失関数値を求める構成としてもよい。
【００８３】
［学習処理の処理手順］
次に、図６を参照して、学習装置２０における学習処理の処理手順を説明する。図６は、図４に示す学習装置２０における学習処理の処理手順のフローチャートである。
【００８４】
図６に示すように、学習装置２０では、学習用の音響信号（入力音響信号）が入力されると（ステップＳ１１）、繰り返し処理回数のインデックスｉ＝１と初期化し（ステップＳ１２）、１回目（ｉ回目）の繰り返し処理を実行する。
【００８５】
具体的には、マスク推定部２１は、学習用の入力音響信号Ｙと残留マスクＲｉを用いて、入力音響信号Ｙに含まれる１つの音源のマスク情報＾Ｍｉの推定と、停止フラグ＾ｚｉＮＮにより推定する（ステップＳ１３）。続いて、制御部２３は、繰り返し処理を停止するか否かを判定し（ステップＳ１４）、繰り返し処理を停止しない（継続する）場合は（ステップＳ１４：Ｎｏ）、残留マスクＲｉとマスク推定部２１が推定したマスク情報＾Ｍｉに基づいて残留マスクＲｉ＋１を求めて出力する（ステップＳ１５）。
【００８６】
このように、制御部２３は、制御部２３が繰り返し処理を停止すると判定するまで、マスク推定部２１におけるＮＮの処理を繰り返し実行させるようにマスク推定部２１を制御する。
【００８７】
そして、制御部２３が繰り返し処理を停止すると判定した場合（ステップＳ１４：Ｙｅｓ）、これまでの各繰り返し処理で音源ごとに求めたマスク情報がパラメータ更新部２４に出力される（ステップＳ１６）。
【００８８】
パラメータ更新部２４は、（１）式に示す損失関数を用いて、マスク情報の推定値に対する損失を計算し、パラメータ更新の要否を判定する（ステップＳ１７）。パラメータ更新部２４は、パラメータの更新が必要と判定した場合（ステップＳ１７：Ｙｅｓ）、パラメータの更新を行い（ステップＳ１８）、ステップＳ１１に戻って学習処理を繰り返す。一方、パラメータ更新部２４は、パラメータ更新が不要と判定した場合（ステップＳ１７：Ｎｏ）、パラメータの更新は実行せず、現在のＮＮのパラメータを出力して学習処理を終了する。
【００８９】
パラメータの更新が必要か否かは、例えば損失関数がマスクの推定結果（推定マスク情報）が正解マスクに近づくほど小さな値をとる関数であれば、損失関数の値が所定の閾値以上であればパラメータの更新が必要であり、損失関数の値が所定の閾値未満となればパラメータの更新が不要とする等により判断される。
【００９０】
［実施の形態２の効果］
学習装置２０では、パラメータ更新部２４が、推定されたマスク情報と正解との近さを示す損失関数を用いて、マスク情報の推定値に対する損失を求め、該求めた損失の値に応じてＮＮのパラメータの更新を実行する。この際、パラメータ更新部２４は、マスク情報の推定値が正解に近づくほど小さな値となるような損失関数を用いて損失を求め、求めた損失が所定の閾値以上である場合に、ＮＮの各パラメータの更新を行うことにより、ＮＮのパラメータを適正化する。
【００９１】
ここで、この損失関数は、推定されたマスク情報と正解との近さを表す指標値を少なくとも含むものである。したがって、パラメータ更新部２４は、マスク情報の推定値が正解のマスク情報に近づくように、マスク推定部２１のＮＮの各パラメータを更新することができる。さらに、この損失関数に、停止フラグとその正解の近さを示す指標値を含めてもよい。この結果、パラメータ更新部２４は、推定マスク情報の正しさだけでなく、停止フラグの正しさも含めて適正化されるように、ＮＮの各パラメータの更新を行うことができる。
【００９２】
［実施の形態２の変形例１］
次に、実施の形態２の変形例１について説明する。
【００９３】
ここで、学習の初期段階では、マスク情報＾Ｍ１の推定精度が低い場合が多い。このため、学習装置２０に入力された残留マスクＲ１と推定精度の低いマスク情報＾Ｍ１に基づいて次の繰り返し処理で用いる残留マスクＲ２を計算すると、残留マスクＲ２が精度の悪いものとなってしまうことが多い。例えば、残留マスクＲ２が正しく計算できていれば、入力音響信号（学習用の音響信号）のうち残留マスクＲ２により特定される信号は、入力音響信号から＾Ｍ１に対応する音源の信号を取り除いた信号に相当するのだが、残留マスクＲ２の推定精度が悪いと、入力音響信号（学習用の音響信号）のうち残留マスクＲ２により特定される信号に、本来は取り除かれるべきであった＾Ｍ１に対応する音源の信号の一部が残留してしまう。
【００９４】
このような精度の低い残留マスクを入力として、次のマスク情報の推定を行うことを繰り返すと、学習の初期段階では、マスクの推定精度がなかなか向上せず、学習に時間を要してしまうことがある。
【００９５】
本実施の形態２の変形例１では、この問題を回避するために、学習時において、（ｉ＋１）回目のマスク推定部２１への残留マスクＲｉ＋１を求めるために、推定されたマスク＾Ｍｉを採用せず、ｉ回目で推定された音源に対応する正解のマスクＭｉと、ｉ回目で入力された残留マスクＲｉに基づいて残留マスクＲｉ＋１を求める。言い換えると、各繰り返し処理において、制御部２３は、直前の推定処理に基づいて生成された精度の低い推定マスク情報を使用するのではなく、それに対応する正解のマスクを用いて、次の処理に用いる残留マスクを求める。
【００９６】
本実施の形態２の変形例１では、制御部２３は、全ての繰り返し処理において、正解のマスクを正確に分離して生成される正しい残留マスクを入力として用いることができるため、マスク情報の推定精度の悪さを、次の繰り返し処理に伝播させることを防ぐことができ、早く学習を収束させることができる。
【００９７】
［本実施の形態２の変形例２］
次に、本実施の形態２の変形例２について説明する。本実施の形態２の変形例２では、全ての繰り返し処理において、正解のマスクを正確に分離して生成される正しい残留マスクを、マスク推定部２１の入力として用いた。本実施の形態２の変形例２では、マスク推定部２１の入力を、推定されたマスク情報に基づく残留マスクと、正解のマスクに基づく残留マスクとのいずれかに切り替える場合について説明する。すなわち、本実施の形態２の変形例２では、繰り返し実行されるマスク情報の推定処理と信号分離処理との一部の処理において、ＮＮへの入力が、推定されたマスク情報に基づく残留マスクではなく、正解のマスク情報に基づいて生成される残留マスクである。
【００９８】
例えば、制御部２３は、求めた損失が所定の閾値以上である（推定精度が悪いことに対応する）場合に、正解のマスク情報に基づく残留マスクをＮＮの入力として用いる。そして、制御部２３は、求めた損失が所定の閾値より低い（推定精度が良くなったことに対応する）場合は、推定されたマスクに基づく残留マスクをＮＮの入力として用いる。
【００９９】
このように、本実施の形態２の変形例２では、マスク推定部２１のＮＮに対する入力を、正解のマスク情報に基づく残留マスク、または、推定されたマスクに基づく残留マスクのいずれかとするかを、学習装置２０自体が決定することによって、学習装置２０の運用者の負担を軽減することが可能になる。
【０１００】
例えば、パラメータがある程度の推定精度に達するまで、例えば、パラメータ更新部で計算される損失関数値が所定の基準を満たすまでは、推定マスク情報の代わりに正解マスクを用いて次の繰り返し処理に求める残留マスクを計算する。
【０１０１】
これに限らず、学習装置２０は、マスク推定部２１への入力である残留マスクの切り替えについて、制御部２３が計算した損失に応じて、複数回実行してもよい。また、学習装置２０は、損失に応じたルールに限らず、予め設定された切り替えルールにしたがって、入力する残留マスクの切り替えを行ってもよい。また、マスク推定部２１に対する入力する残留マスクの切り替え設定は、予め運用者が設定していてもよい。
【０１０２】
［評価実験１］
次に、本実施の形態２に係る学習方法と従来の学習方法とを評価した評価実験１について説明する。評価実験１は、音源分離実験である。
【０１０３】
比較対象の従来の学習方法は、ｕＰＩＴ法（詳しくは、M.  Kolbak,  D.  Yu,  Z.  Tan,  and  J.  Jensen,  “Multi-talker  Speech  Separation  with  Utterance-level  Permutation  Invariant  Training  of  Deep  Recurrent  Neural  Networks”,2017,  arXiv:1703.06284.（参照文献１）、または、D.  Yu,  M.  Kolbak,  Z.-H.  Tan,  and  J.  Jensen,  “PERMUTATION  INVARIANT  TRAINING  OF  DEEP  MODELS  FOR  SPEAKER-INDEPENDENT  MULTI-TALKER  SPEECH  SEPARATION”,  in  ICASSP,  2017,  pp.  241−245.（参照文献２）を参照されたい。）である。
【０１０４】
また、本実施の形態２に係る学習方法では、パラメータ更新部２４が使用する損失関数Ｊとして、α＝０とした（６）式の損失関数と、β＝０として（７）式に示す損失関数との２つを採用した。
【０１０５】
【数６】
0006927419.tif 000007
【０１０６】
【数７】
0006927419.tif 000008
【０１０７】
以降、（６）式に示す損失関数を適用した方法をＲｅｓ−ｍａｓｋモデルとする。また、（７）式に示す損失関数を適用した方法をＳｔｏｐ−ｆｌａｇモデルとする。
【０１０８】
使用するＮＮは、２層ＢＬＳＴＭ  ＮＷを用いる。各層は、６００のＬＳＴＭユニットを有する。残留マスクは、シグモイド関数を用いて推定される。例えば、ＬＳＴＭユニットは、６００セルを有し、各セルがバックヤードフォアワードＲＮＮである。また、学習処理の制御のため、０．００１の初期学習レートを有するＡｄａｍ  Ｏｐｔｉｍｉｚｅｒを使用した。最大エポック数は２００である。本実験では、２話者同時発話状態を用いる。学習データは３０時間である。また、テストデータは、５時間（オープンスピーカーセット）である。
【０１０９】
そして、Ｒｅｓ−ｍａｓｋモデル及びＳｔｏｐ−ｆｌａｇモデルのいずれについても、以下の３つの学習方法で学習を行った。
【０１１０】
学習１は、実施の形態２に相当する方法である。学習１は、残留マスク＾Ｒｉから、推定されたマスク情報＾Ｍｓｉ＊を減算した残留マスクＲｉ＋１をＮＮに入力する方法である。
【０１１１】
学習２は、実施の形態２の変形例１に相当する方法である。学習２は、残留マスクＲｉから、正解のマスク情報Ｍｓｉ＊を減算した残留マスクＲｉ＋１をＮＮに入力する方法である。この方法は、学習１よりも早く収束することが予想できるが、マスク推定エラーに頑強ではない場合がある。
【０１１２】
学習２´は、実施の形態２の変形例２に相当し、学習１と学習２とを組み合わせた方法である。学習２´は、例えば、残留マスクＲｉ＋１の演算式として、最初の４０エポックでは、正解マスクを用いて残留マスクを計算する実施の形態２の変形例１の手法を採用し、その後は、実施の形態２と同じく推定マスク情報に基づき残留マスクを計算した。
【０１１３】
表１に、従来のｕＰＩＴ法、Ｒｅｓ−ｍａｓｋモデル及びＳｔｏｐ−ｆｌａｇモデルを用いた音源分離実験の結果（信号対ひずみ比）を示す。Ｒｅｓ−ｍａｓｋモデル及びＳｔｏｐ−ｆｌａｇモデルは、それぞれ、学習１，２，２´の各方法で学習した場合に分けて、結果を示す。
【０１１４】
【表１】
0006927419.tif 000009
【０１１５】
表１に示すように、従来のｕＰＩＴ法では、７．２ｄＢであるのに対し、Ｒｅｓ−ｍａｓｋモデル及びＳｔｏｐ−ｆｌａｇモデルのいずれについても従来法よりもよい結果が得られた。特に、Ｒｅｓ−ｍａｓｋモデルでは、８．６ｄＢ（学習２´）であり、Ｓｔｏｐ−ｆｌａｇモデルでは、８．８ｄＢ（学習２）と良好な結果が認められた。Ｒｅｓ−ｍａｓｋモデルのいずれについても、ＮＮに入力する残留マスクを演算する際に、正解のマスクを用いるとよい結果が得られた。
【０１１６】
［評価実験２］
次に、評価実験２について説明する。評価実験２では、Ｒｅｓ−ｍａｓｋモデル及びＳｔｏｐ−ｆｌａｇについて、音源数数え上げ精度の評価を行った。
【０１１７】
評価実験２では、０〜２話者同時発話状態のデータを用いる。本実験では、バックグラウンドのノイズデータは、ＣｈｉＭＥ  ｒｅａｌ  ｎｏｉｓｅ  ｄａｔａｓｅｔから採用し、２０ｄＢのＳＮＲ混合を加えた。学習セットとして、３０時間のセット（３混合状態を同様に含むもの）を生成した。そして、Ｒｅｓ−ｍａｓｋモデル及びＳｔｏｐ−ｆｌａｇモデルのいずれも、学習２´の方法を用いて学習を行った。なお、Ｓｔｏｐ−ｆｌａｇモデルの停止フラグに関する第２の閾値として０．９を設定し、Ｒｅｓ−ｍａｓｋモデルの残留マスク（中央値）に関する第１の閾値として０．１を設定した。また、テストデータは、１０時間の各話者同時発話状態のデータを用いた。
【０１１８】
【表２】
0006927419.tif 000010
【０１１９】
表２に、Ｒｅｓ−ｍａｓｋモデル及びＳｔｏｐ−ｆｌａｇモデルを用いた音源数数え上げ精度の評価の結果を示す。表２に示すように、Ｒｅｓ−ｍａｓｋモデル及びＳｔｏｐ−ｆｌａｇモデルのいずれについても、１００％に近い、非常に高い精度で音源数を数え上げていることが分かる。
【０１２０】
したがって、Ｒｅｓ−ｍａｓｋモデル及びＳｔｏｐ−ｆｌａｇモデルについても、非常に高い精度で、入力音響信号に含まれる音源を分離できるものと考えられる。
【０１２１】
［実施の形態３］
次に、実施の形態３について説明する。本実施の形態３では、実施の形態１に係るマスク推定装置１０を有する信号分離装置について説明する。図７は、実施の形態３に係る信号分離装置の一例を示す図である。
【０１２２】
図７に示すように、実施の形態３に係る信号分離装置３０は、実施の形態１に係るマスク推定装置１０と、音源分離部３１とを有する。
【０１２３】
音源分離部３１は、入力音響信号に、マスク推定装置１０で推定したマスク情報に基づいて構成したマスクをかけることにより、音源ごとの信号の推定結果を得て、分離された音響信号を出力する。音源分離部３１は、特定の音源からの信号のみを出力したい場合には、音源を特定する情報をさらに入力として受け取り、マスク情報のうち入力された音源を特定する情報に対応するマスク情報からマスクを構成し、入力音響信号に適用することで、当該音源の信号の推定値を得ればよい。
【０１２４】
［音源分離処理の処理手順］
次に、図８を参照して、信号分離装置３０における信号分離処理の処理手順を説明する。図８は、図７に示す信号分離装置３０における学習処理の処理手順のフローチャートである。
【０１２５】
マスク推定装置１０が入力音響信号に対するマスク推定処理を行う（ステップＳ３１）。このマスク推定処理は、図３に示すマスク推定処理と同じ処理であって、入力音響信号のうちの１つの音源に対するマスクの推定を、繰り返し実行する処理である。
【０１２６】
続いて、音源分離部３１は、入力音響信号に、マスク推定装置１０で推定したマスク情報に基づいて構成したマスクをかけることにより、音源ごとの信号の推定結果を得て、分離された音響信号を出力する音源分離処理を行う（ステップＳ３２）。
【０１２７】
［実施の形態３の効果］
本実施の形態３に係る信号分離装置３０では、実施の形態１に係るマスク推定装置１０を適用し、ＮＮのノード数に関係なく、任意の音源数の入力音響信号に対してマスク情報を推定することができる。このため、信号分離装置３０によれば、いずれの音源に対しても適切なマスクをかけることができ、正確に分離された音響信号を出力することができる。
【０１２８】
［実施の形態４］
次に、実施の形態４について説明する。実施の形態４では、マスク推定装置１０の他の処理の一例について説明する。
【０１２９】
実施の形態１では、マスク推定部１１を構成するＮＮの入力は、入力音響信号と、残留マスクとの２種類である。残留マスクは、入力音響信号のうちマスク推定部１１においてマスク推定の対象とする信号を特定する情報である。これに対し、実施の形態４では、マスク推定部１１を構成するＮＮには、入力音響信号と、残留マスクとに加え、ＮＮが抽出する音源を特定する情報である音源特定情報を含めた３種類の情報が入力される。音源特定情報は、例えば、話者ベクトル（参考文献１ではbottleneck  speaker  vector）である。
（参考文献１）H.  Huang,  K.  C.  Sim:"An  investigation  of  augmenting  speaker  representations  to  improve  speaker  normalisation  for  DNN-based  speech  recognition"  in  Proc.  of  IEEE  ICASSP,  pp.4610-4613,  2015.
【０１３０】
実施の形態４では、ＮＮは、入力音響信号のうち残留マスクにより特定される信号に含まれる、音源特定情報により特定される音源についての情報を抽出するためのマスク情報を推定して出力する。そして、ＮＮは、マスク情報と、抽出したマスク情報に対応する音源特定情報と、マスク情報の推定処理の停止に関与する停止フラグとを出力する。なお、ＮＮのパラメータは、後述の学習装置等により予め学習済みであるものとする。また、マスク推定部１１において、各音源抽出処理時のＮＮは、同じものを用いる。
【０１３１】
実施の形態４では、ＮＮに入力された入力音響信号のうち、残留マスクにより特定される信号に着目する。マスク推定部１１は、その信号に含まれる音源またはその信号に含まれるであろう音源のうち、音源特定情報により特定される音源に対応するマスクを推定して出力する。ここで、残留マスクにより特定される信号の中に音源特定情報により特定される音源の音が含まれない場合は、ＮＮの出力は、空のマスク情報、すなわち、入力された音を全く通さず、音圧０の信号を出力するマスクとなる。
【０１３２】
すなわち、実施の形態１のマスク推定部１１は、各マスク推定処理において、残留マスクにより特定される信号の中からいずれか１つの音源に対応するマスクを推定する。言い換えると、実施の形態１のマスク推定部１１では、どの音源についてのマスクを推定するかは指定されていなかった。
【０１３３】
これに対し、本実施の形態４では、ＮＮの入力として音源特定情報を追加することによって、各マスク推定処理で推定する音源を音源特定情報により指定し、指定された音源についてのマスクの推定結果を出力する。
【０１３４】
［マスク推定処理の流れ］
次に、図９を参照して、実施の形態４に係るマスク推定処理について説明する。図９は、実施の形態４に係るマスク推定処理の一例を示す図である。
【０１３５】
実施の形態４では、入力音響信号が２つの時間ブロックから構成され、先頭の第１時間ブロックから順にブロックオンライン処理により音源毎のマスクを推定する。また、入力音響信号Ｙには、音源Ｓｒｃ１〜Ｓｒｃ３の音源の信号が含まれるものとする。第１時間ブロックをＹ１，第２時間ブロックをＹ２とする。Ｙ１には音源Ｓｒｃ１とＳｒｃ２の信号が含まれ、Ｙ２には音源Ｓｒｃ１とＳｒｃ３の信号が含まれる場合を例に、マスク推定処理の流れを説明する。
【０１３６】
［第１時間ブロックの処理］
まず、マスク推定処理のうち、第１時間ブロックに対する１回目の繰り返し処理について説明する。ＮＮには、第１時間ブロックの入力音響信号Ｙ１と残留マスクＲ１,１と音源特定情報Ｓ１，１とが入力される。ここで、残留マスクの第１インデックスは時間ブロックのインデックスｂ（ｂ＝１，２）である。残留マスクの第２インデックスｉは、当該時間ブロックでのマスク推定処理の繰り返し処理のインデックスである。
【０１３７】
第１時間ブロックでは、ＮＮに入力される音源特定情報Ｓ１，１は、空の情報（Ｓ１，１＝０）とする。つまり、実施の形態１と同様に、ＮＮで抽出する音源を指定せず、いずれか１つの音源のマスクを推定させるようにする。
【０１３８】
ＮＮは、入力音響信号Ｙ１及び残留マスク１，１と音源特定情報Ｓ１，１（ここではＳ１，１＝０）が与えられると、入力音響信号Ｙ１に含まれるいずれか１つの音源に対応するマスクを推定する。図９の例では、ＮＮは、例えば音源Ｓｒｃ１の推定マスク情報＾Ｍ１，１を推定して出力したとする。ＮＮは、音源Ｓｒｃ１を特定する音源特定情報（特徴量ベクトル）Ｓ２，１と、停止フラグ＾ｚ１，１（＝０）とを出力する。
【０１３９】
制御部１３は、停止フラグ＾ｚ１，１に基づいて繰り返し処理を行うか否かを決定する。ここでは、＾ｚ１，１＝０であるため、制御部１３は、繰り返し処理を継続すると判定し、次の繰り返し処理の入力となる残留マスクＲ１，２を計算する。
【０１４０】
残留マスクＲ１，２は、入力音響信号Ｙ１から推定マスク情報＾Ｍ１，１に対応する音源の音を取り除いた信号を特定する情報である。例えば、残留マスクＲ１，１が入力音響信号全体を通すマスク情報とすれば、残留マスクＲ１，２は、残留マスクＲ１，１から＾Ｍ１，１を取り除いたものである。言い換えれば、残留マスクＲ１，２は、まだ推定されていないＳｒｃ２及びＳｒｃ３に対応する音源の信号を通すようなマスクとも言える。残留マスクＲ１，２は、２回目の繰り返し処理において、ＮＮに入力される残留マスクとなる。
【０１４１】
次に、２回目の繰り返し処理について説明する。この場合、ＮＮには、入力音響信号Ｙ１と残留マスクＲ１，２と音源特定情報Ｓ１，２（第１時間ブロックなのでＳ１，２＝０である。）が与えられる。この結果、ＮＮは、例えば、音源Ｓｒｃ２の推定マスク情報＾Ｍ１，２を推定して出力するとともに、停止フラグ＾ｚ１，２（＝１）と音源Ｓｒｃ２を特定する情報であるＳ２，２を出力する。
【０１４２】
ここで、ＮＮは、入力音響信号から、残留マスクＲ１，２により特定される信号、すなわち、入力音響信号から推定マスク情報＾Ｍ１，１に対応する音源の信号を取り除いた残りの信号に着目する。そして、ＮＮは、その信号に含まれる音源の１つであるＳｒｃ２に対応するマスクを推定マスク情報＾Ｍ１，２を求めることになる。第１時間ブロックにはＳｒｃ１とＳｒｃ２に対応する信号しか含まれていないため、２回目の繰り返し処理で全ての音源に対応するマスクが推定されることから、停止フラグ＾ｚ１，２＝１が出力される。
【０１４３】
続いて、制御部１３は、停止フラグ＾ｚ１，２＝１であるため、繰り返し処理を停止すると判定する。制御部１３は、第１時間ブロックについての処理を終えたので、マスク推定部１１のＮＮに、引き続き後続の第２時間ブロックについてのマスク推定処理を実行させる。
【０１４４】
［第２時間ブロックの処理］
まず、第２時間ブロックにおける１回目の繰り返し処理について説明する。ＮＮには、第２時間ブロックの入力音響信号Ｙ２と残留マスクＲ２，１と第１時間ブロックの１回目の繰り返し処理で出力された音源特定情報Ｓ２，１とが入力される。
【０１４５】
ＮＮは、入力音響信号Ｙ２から、音源特定情報Ｓ２，１により特定される音源、つまり、音源Ｓｒｃ１に対応する信号を抽出するためのマスク＾Ｍ２，１を推定する。ＮＮは、音源Ｓｒｃ１を特定する音源特定情報（特徴量ベクトル）Ｓ３，１と、停止フラグ＾ｚ２，１（＝０）とを出力する。
【０１４６】
制御部１３は、停止フラグ＾ｚ２，１に基づいて繰り返し処理を行うか否かを決定する。ここでは、＾ｚ２，１＝０であるため、制御部１３は、繰り返し処理を継続すると判定する。そして、制御部１３は、次の繰り返し処理の入力となる残留マスクＲ２，２を計算する。
【０１４７】
残留マスクＲ２，２は、入力音響信号Ｙ２から推定マスク情報＾Ｍ２,１に対応する音源の音を取り除いた信号を特定する情報である。例えば、残留マスクＲ２，１が入力音響信号全体を通すマスク情報とすれば、残留マスクＲ２，２は、残留マスクＲ２，１から＾Ｍ２，１を取り除いたものである。言い換えれば、残留マスクＲ２，２は、まだ推定されていないＳｒｃ２及びＳｒｃ３に対応する音源の信号を通すようなマスクとも言える。残留マスクＲ２，２は、第２時間ブロックの２回目の繰り返し処理において、ＮＮに入力される残留マスクとなる。
【０１４８】
次に、２回目の繰り返し処理について説明する。この場合、ＮＮには、入力音響信号Ｙ２と残留マスクＲ２，２と音源特定情報Ｓ２，２とが与えられる。この結果、ＮＮは、音源特定情報Ｓ２，２により特定される音源、つまり、音源Ｓｒｃ２に対応するマスクを推定マスク情報＾Ｍ２，２として得て出力する。ただし、この例では、Ｙ２に音源Ｓｒｃ２の信号は含まれないため、＾Ｍ２，２は、空情報、すなわち、いずれの信号も通さないマスクとなる。また、Ｙ２にはまだ音源の信号が残っているため、ＮＮは、停止フラグ＾ｚ２，２（＝０）を出力する。また、ＮＮは、推定マスク情報＾Ｍ２，２に対応する音源を特定する情報、つまり音源Ｓｒｃ２を特定する情報を、音源特定情報Ｓ３，２として出力する。
【０１４９】
制御部１３は、停止フラグ＾ｚ２，２に基づいて繰り返し処理を行うか否かを決定する。ここでは、＾ｚ２，２＝０であるため、制御部１３は、繰り返し処理を継続すると判定し、次の繰り返し処理の入力となる残留マスクＲ２，３を計算する。
【０１５０】
残留マスクＲ２，３は、入力音響信号Ｙ２から、推定マスク情報＾Ｍ２，１に対応する音源の音と、推定マスク情報＾Ｍ２，２に対応する音源の音とを取り除いた信号を特定する情報である。例えば、残留マスクＲ２，１が入力音響信号全体を通すマスク情報とすれば、残留マスクＲ２，３は、残留マスクＲ２，１から＾Ｍ２，１及び＾Ｍ２、２を取り除いたものである。言い換えれば、残留マスクＲ２，３は、まだ推定されていないＳｒｃ３に対応する音源の信号を通すようなマスクとも言える。残留マスクＲ２，３は第２時間ブロックの３回目の繰り返し処理において、ＮＮに入力される残留マスクとなる。
【０１５１】
次に、３回目の繰り返し処理について説明する。この場合、ＮＮには、入力音響信号Ｙ２と残留マスクＲ２，３と音源特定情報Ｓ１，３が与えられる。ここで、第１時間ブロックにおいては３回目の繰り返し処理は存在しないため、音源特定情報Ｓ１，３としては、音源特定情報の初期値（第１時間ブロックで用いたものと同じ０）が入力される。この結果、ＮＮは、入力音響信号Ｙ２から音源Ｓｒｃ１と音源Ｓｒｃ２とに対応する音を取り除いた信号に含まれる音源Ｓｒｃ３に対応するマスクを、推定マスク情報＾Ｍ２，３として出力する。また、Ｙ２には音源の信号が残っていないため、ＮＮは、停止フラグ＾ｚ２，３（＝１）を出力する。また、ＮＮは、推定マスク情報＾Ｍ２，３に対応する音源を特定する情報、つまり音源Ｓｒｃ３を特定する情報を、音源特定情報Ｓ３，３として出力する。
【０１５２】
続いて、制御部１３は、停止フラグ＾ｚ２，３＝１であるため、繰り返し処理を停止すると判定する。
【０１５３】
引き続き第３時間ブロックＹ３がある場合、その１回目の繰り返し処理では、ＮＮは、音源特定情報Ｓ３，１が入力され、Ｙ３の中の音源Ｓｒｃ１に対応するマスクを推定する。そして、２回目の繰り返し処理では、ＮＮは、音源特定情報Ｓ３，２を入力として受け取り、Ｙ３の中の音源Ｓｒｃ２に対応するマスクを推定する。そして、３回目の繰り返し処理では、ＮＮは、音源特定情報Ｓ３，３を入力として受け取り、Ｙ３の中の音源Ｓｒｃ３に対応するマスクを推定する。
【０１５４】
これによって、マスク推定装置１０では、各時間ブロックにおいて、ｉ回目（ｉ＝１，２，３，・・・）の繰り返し処理で推定されるマスクに対応する音源が同じ音源となる。
【０１５５】
［マスク推定処理の処理手順］
次に、図１０を参照して、実施の形態４に係るマスク推定処理の処理手順を説明する。図１０は、実施の形態４に係るマスク推定処理の処理手順のフローチャートである。
【０１５６】
図１０に示すように、まず、実施の形態４に係るマスク推定処理では、時間ブロックのインデックスｂ＝１と初期化する（ステップＳ４１）。ＮＮは、マスク推定対象の第ｂブロックの音響信号（入力音響信号）Ｙｂが入力されるとともに（ステップＳ４２）、残留マスクＲｂ，１と音源推定情報Ｒｂ，１とが入力される（ステップＳ４３，Ｓ４４）。なお、これらのパラメータは処理の開始時点においては初期化されているものとする。マスク推定装置１０は、繰り返し処理回数のインデックスｉ＝１と初期化し（ステップＳ４５）、１回目（ｉ回目）の繰り返し処理を実行する。
【０１５７】
具体的には、マスク推定部１１のＮＮには、入力音響信号Ｙｂと残留マスクＲｂ，ｉと音源特定情報Ｓｂ，ｉとが入力される。そして、ＮＮは、入力音響信号Ｙｂに含まれる１つの音源のマスク情報＾Ｍｂ，ｉを推定して出力するマスク推定処理を行う（ステップＳ４６）。そして、ＮＮは、ＮＮに入力された残留マスクＲｂ，ｉとマスク推定部１１が推定したマスク情報＾Ｍｂ，ｉとから新たなＲｂ，ｉ＋１を求め、出力する（ステップＳ４７）。これとともに、ＮＮは、停止フラグ＾ｚｂ，ｉ、及び、１つの音源の音源特定情報Ｓｂ＋１，ｉを出力する（ステップＳ４８）。
【０１５８】
制御部１３は、残留マスクまたは停止フラブの少なくとも一つが所定の停止条件を満たすか否かを基に、繰り返し処理を停止するか否かを判定する（ステップＳ４９）。
【０１５９】
制御部１３は、繰り返し処理を停止しないと判定した場合（ステップＳ４９：Ｎｏ）、ＮＮに、残留マスクＲｂ，ｉ＋１及び音源特定情報Ｓｂ，ｉ＋１を入力音響信号Ｙｂとともに入力し（ステップＳ５０，Ｓ５１）、ｉ＝ｉ＋１（ステップＳ５２）として、ステップＳ４６に戻り、次の回の繰り返し処理を行う。
【０１６０】
そして、制御部１３は、繰り返し処理を停止すると判定した場合（ステップＳ４９：Ｙｅｓ）、入力音響信号のブロックが最終ブロックであるか否かを判定する（ステップＳ５３）。制御部１３は、入力音響信号のブロックが最終ブロックでないと判定した場合（ステップＳ５３：Ｎｏ）、ｂ＝ｂ＋１（ステップＳ５４）として、ステップＳ４２に戻り、次のブロックの入力音響信号Ｙｂに対して１回目の繰り返し処理を行う。
【０１６１】
これに対し、制御部１３が、入力音響信号のブロックが最終ブロックであると判定した場合（ステップＳ５３：Ｙｅｓ）マスク推定装置１０は、これまでの各繰り返し処理で音源ごとに求めた各時間ブロックのマスク情報を出力して（ステップＳ５５）、マスク推定処理を終了する。
【０１６２】
［実施の形態４の効果］
実施の形態４において、マスク推定装置１０では、ＮＮの入力として音源特定情報を追加する。これによって、実施の形態４では、各マスク推定処理で推定する音源を音源特定情報を基に指定し、指定された音源についてのマスクの推定結果を出力する。言い換えると、実施の形態４では、マスク推定装置１０は、各時間ブロックにおいて、ｉ回目（ｉ＝１，２，３，・・・）の繰り返し処理で推定されるマスクに対応する音源が同じ音源になる。
【０１６３】
ここで、実施の形態１に係るマスク推定方法では、一定の長さの時間区間（ブロック）単位で、基礎出願の処理を順次実行するオンライン処理として用いる場合、前の時間ブロックで出力されるマスクと、次の時間ブロックで出力されるマスクとの対応関係が分からず、特定の音源に対応する音（例えば、特定の人の音声）を時間方向に追従して取り出すことが難しい場合がある。このため、実施の形態１では、一旦、ＮＮからブロック毎に全てのマスクを出力された後に、ブロック間で同じ音源に対応するマスクがどれであるかを特定する後処理を行い、各ブロックのマスクの順序が揃うように並べ替える（パーミュテーションする）ことが必要になる。
【０１６４】
これに対し、実施の形態４に係るマスク推定処理では、ＮＮに、入力される音源特定情報によって特定される音源のマスクを推定させるようにし、各ブロックにおいて音源特定情報の入力順序を揃えている。この結果、実施の形態４に係るマスク推定処理では、ＮＮから順次出力されるマスクに対応する音源の順序が、各ブロックで揃うこととなる。したがって、実施の形態４に係るマスク推定処理では、実施の形態１に係るマスク推定方法で必要であった後処理を行う必要なく、オンライン処理で各音源の音を追跡することができるという効果を奏する。
【０１６５】
［実施の形態５］
次に、実施の形態５について説明する。実施の形態４では、マスク推定部１１のＮＮのパラメータは予め学習済みであるものとしたが、本実施の形態５では、このＮＮのパラメータの学習を行う学習装置について説明する。実施の形態５に係る学習装置の構成は、図４に示す実施の形態２に係る学習装置の構成と同じ構成を有する。
【０１６６】
［学習処理の流れ］
次に、図１１を参照して、実施の形態５に係る学習処理の流れを説明する。図１０は、実施の形態５に係る学習処理の一例を示す図である。
【０１６７】
実施の形態５に係る学習処理では、学習用の入力音響信号である混合音響信号と、各音源に対応する正解マスク情報（或いは混合音響信号中の各音源信号）との組からなる学習用の入力音響信号が予め与えられているものとする。実施の形態５に係る学習処理では、学習用の入力音響信号について、実施の形態４に係るマスク推定処理と同様の処理を行って、時間ブロック毎のマスクを推定する。
【０１６８】
図１１に示すように、学習処理では、時間ブロックごとに、各ブロックに対応する学習用の入力音響信号ＹｂがＮＮに入力される。また、この学習用の入力音響信号Ｙｂは、各音源に対応する正解のマスク情報がそれぞれ既知である。また、ＮＮには、残留マスクＲｂ，ｉ、音源特定情報Ｓｂ，ｉが入力される。マスク推定処理と同様に、ＮＮは、残留マスクＲｂ．ｉ及び音源推定情報Ｓｂ，ｉを基に、学習用の入力音響信号Ｙｂに含まれる１つの音源の信号を抽出するマスクを特定する情報の推定値である推定マスク情報＾Ｍｂ，ｉを推定する。ＮＮは、音源推定情報止フラグ＾ｚｂ，ｉ及び音源特定情報Ｓｂ＋１，ｉを出力する。そして、制御部２３は、停止フラグ＾ｚｂ，ｉに基づいて繰り返し処理を継続すると判定した場合には、次の繰り返し処理の入力となる残留マスクＲｂ，ｉ＋１を計算する。
【０１６９】
パラメータ更新部２４は、マスク推定部で推定された推定マスク情報に基づいて抽出される各音源の信号の推定値と、学習用の入力音響信号に含まれる各音源の信号の正解とが近づくように、ＮＮの各パラメータの更新を行う。具体的には、学習用の入力音響信号の全ブロックについて、ＮＮによる推定処理が終了すると、パラメータ更新部２４は、ＮＮの出力情報に基づいて計算した損失の値が所定の条件を満たさない場合に、ＮＮの各パラメータを更新する。損失関数を、推定マスク情報が正解マスクに近づくほど小さな値となるような関数とした場合、損失関数値が所定の閾値未満であれば、パラメータ更新部２４は、現在のＮＮのパラメータの値を出力して学習を終了する。
【０１７０】
ここで、パラメータ更新部２４が損失計算において使用する損失関数Ｌの一例を（８）式に示す。
【０１７１】
【数８】
0006927419.tif 000011
【０１７２】
α、β、γは、それぞれ予め定めた０以上の定数であり、各要素Ｌ（ｒｅｓ−ｍａｓｋ），Ｌ（ＣＥ），Ｌ（ＴＲＩＰＬＥＴ）をどの程度考慮するかを調整する重みである。重みの値を０とすれば、その損失を考慮しないことを意味する。つまり、重みの値を０とした場合、少なくともＬ（ＭＭＳＥ）に基づいてパラメータの更新を行えばよい。
【０１７３】
ここで、Ｌ（ＭＭＳＥ）は、（９）式により与えられる。
【０１７４】
【数９】
0006927419.tif 000012
【０１７５】
（９）式では時間ブロックに分割されているため、式の形は異なるが、実施の形態２のＪ（ＭＳＥ）と意味合いとしては同じである。Ｌ（ＭＭＳＥ）は、推定されたマスク情報により抽出される信号と正解の音源の信号との距離（ここでは平均二乗誤差）に対応する指標値である。
【０１７６】
Ｌ（ｒｅｓ−ｍａｓｋ）は、実施の形態２のＪ（ｒｅｓ−ｍａｓｋ）に対応するものであり、残留マスクに関する損失を表す。Ｌ（ｒｅｓ−ｍａｓｋ）は、（１０）式で与えられる。
【０１７７】
【数１０】
0006927419.tif 000013
【０１７８】
Ｌ（ＣＥ）及びＬ（ＴＲＩＰＬＥＴ）は、音源特定情報の推定結果の適切さを表す尺度である。Ｌ（ＣＥ）は、softmax  cross-entropy、つまり、ＮＮの音源特定情報を出力する出力層をｓｏｆｔｍａｘ層とした場合、そのｓｏｆｔｍａｘ層の出力と正解の話者を指し示す１−ｈｏｔベクトル（ベクトル中の正解話者に対応する要素のみ１となり、それ以外の要素は全て０となるベクトル）より計算されるクロスエントロピー損失である。また、Ｌ（ＴＲＩＰＬＥＴ）は、トリプレット損失であり、（１１）式で与えられる。
【０１７９】
【数１１】
0006927419.tif 000014
【０１８０】
ｓｎａｎは、anchorベクトルとnegativeベクトルとのコサイン距離である。ｓｎａｐは、anchorベクトルとpositiveベクトルとのコサイン距離である。Ｌ（ＴＲＩＰＬＥＴ）は、（anchorベクトル，positiveベクトル，negativeベクトル）の３つ組に対してanchorベクトルとpositiveベクトルとのコサイン距離が近くなる、または、anchorベクトルとnegativeベクトルとのコサイン距離が遠くなるほど値が小さくなる尺度である。
【０１８１】
トリプレット損失は、同じ音源に対応する音源特定情報のペア、つまりanchorベクトルとpositiveベクトルの距離が、異なる音源に対応する音源特定情報のペア、つまりanchorベクトルとnegativeベクトルの距離よりも近くなるような尺度である。つまり、パラメータ更新部２４は、学習処理の過程で得られた複数の音源特定情報の推定結果の中から、適当にanchorベクトルとなる音源特定情報を選択する。そして、パラメータ更新部２４は、その音源特定情報と同じ音源に関する音源特定情報の推定結果をpositiveベクトル、その音源特定情報と異なる音源に関する音源特定情報の推定結果をnegativeベクトルとして、（１１）式を計算すればよい。なお、δは予め定めた正定数であり、小さな値とすることが好ましい。
【０１８２】
［学習処理の処理手順］
次に、図１２を参照して、学習装置２０における学習処理の処理手順を説明する。図１２は、実施の形態５に係る学習処理の処理手順のフローチャートである。
【０１８３】
図１２に示すように、実施の形態５に係る学習処理では、時間ブロックのインデックスｂ＝１と初期化する（ステップＳ６１）。ＮＮは、学習用の音響信号（入力音響信号）Ｙｂが入力されるとともに（ステップＳ６２）、残留マスクＲｂ，１と音源推定情報Ｓｂ，１との入力を受け付ける（ステップＳ６３，Ｓ６４）。学習装置２０は、繰り返し処理回数のインデックスｉ＝１と初期化し（ステップＳ６５）、１回目（ｉ回目）の繰り返し処理を実行する。図１２に示すステップＳ６６〜ステップＳ７４は、図１０に示すステップＳ４６〜ステップＳ５４と同じ処理である。
【０１８４】
これまでの各繰り返し処理で音源ごとに求めた各時間ブロックのマスク情報が出力されると（ステップＳ７５）、パラメータ更新部２４は、（８）式に示す損失関数を用いて、マスク情報の推定値に対する損失を計算し、パラメータ更新の要否を判定する（ステップＳ７６）。パラメータ更新部２４は、パラメータの更新が必要と判定した場合（ステップＳ７６：Ｙｅｓ）、パラメータの更新を行い（ステップＳ７７）、学習処理を終了する。一方、パラメータ更新部２４は、パラメータ更新が不要と判定した場合（ステップＳ７６：Ｎｏ）、パラメータの更新は実行せず、現在のＮＮのパラメータを出力して学習処理を終了する。
【０１８５】
［実施の形態５の効果］
本実施の形態５では、上記の処理を行うことによって、実施の形態４に係るマスク推定処理を行うＮＮの各パラメータの更新を行うことにより、ＮＮのパラメータを適正化することができる。
【０１８６】
なお、学習処理時に、１回目の繰り返し処理において背景雑音を抽出するためのマスクを出力するようにＮＮを設定することによって、マスク推定処理時には、いずれの時間ブロックにおいても、１回目の繰り返し処理において背景雑音を抽出することができる。
【０１８７】
［システム構成等］
図示した各装置の各構成要素は機能概念的なものであり、必ずしも物理的に図示の如く構成されていることを要しない。すなわち、各装置の分散・統合の具体的形態は図示のものに限られず、その全部又は一部を、各種の負荷や使用状況等に応じて、任意の単位で機能的又は物理的に分散・統合して構成することができる。さらに、各装置にて行なわれる各処理機能は、その全部又は任意の一部が、ＣＰＵ及び当該ＣＰＵにて解析実行されるプログラムにて実現され、あるいは、ワイヤードロジックによるハードウェアとして実現され得る。
【０１８８】
また、本実施形態において説明した各処理のうち、自動的に行われるものとして説明した処理の全部又は一部を手動的におこなうこともでき、あるいは、手動的に行なわれるものとして説明した処理の全部又は一部を公知の方法で自動的におこなうこともできる。この他、上記文書中や図面中で示した処理手順、制御手順、具体的名称、各種のデータやパラメータを含む情報については、特記する場合を除いて任意に変更することができる。
【０１８９】
［プログラム］
図１３は、プログラムが実行されることにより、マスク推定装置１０、学習装置２０及び信号分離装置３０が実現されるコンピュータの一例を示す図である。コンピュータ１０００は、例えば、メモリ１０１０、ＣＰＵ１０２０を有する。また、コンピュータ１０００は、ハードディスクドライブインタフェース１０３０、ディスクドライブインタフェース１０４０、シリアルポートインタフェース１０５０、ビデオアダプタ１０６０、ネットワークインタフェース１０７０を有する。これらの各部は、バス１０８０によって接続される。
【０１９０】
メモリ１０１０は、ＲＯＭ１０１１及びＲＡＭ１０１２を含む。ＲＯＭ１０１１は、例えば、ＢＩＯＳ（Basic  Input  Output  System）等のブートプログラムを記憶する。ハードディスクドライブインタフェース１０３０は、ハードディスクドライブ１０９０に接続される。ディスクドライブインタフェース１０４０は、ディスクドライブ１１００に接続される。例えば磁気ディスクや光ディスク等の着脱可能な記憶媒体が、ディスクドライブ１１００に挿入される。シリアルポートインタフェース１０５０は、例えばマウス１１１０、キーボード１１２０に接続される。ビデオアダプタ１０６０は、例えばディスプレイ１１３０に接続される。
【０１９１】
ハードディスクドライブ１０９０は、例えば、ＯＳ（Operating  System）１０９１、アプリケーションプログラム１０９２、プログラムモジュール１０９３、プログラムデータ１０９４を記憶する。すなわち、マスク推定装置１０、学習装置２０及び信号分離装置３０の各処理を規定するプログラムは、コンピュータにより実行可能なコードが記述されたプログラムモジュール１０９３として実装される。プログラムモジュール１０９３は、例えばハードディスクドライブ１０９０に記憶される。例えば、マスク推定装置１０、学習装置２０及び信号分離装置３０における機能構成と同様の処理を実行するためのプログラムモジュール１０９３が、ハードディスクドライブ１０９０に記憶される。なお、ハードディスクドライブ１０９０は、ＳＳＤ（Solid  State  Drive）により代替されてもよい。
【０１９２】
また、上述した実施形態の処理で用いられる設定データは、プログラムデータ１０９４として、例えばメモリ１０１０やハードディスクドライブ１０９０に記憶される。そして、ＣＰＵ１０２０が、メモリ１０１０やハードディスクドライブ１０９０に記憶されたプログラムモジュール１０９３やプログラムデータ１０９４を必要に応じてＲＡＭ１０１２に読み出して実行する。
【０１９３】
なお、プログラムモジュール１０９３やプログラムデータ１０９４は、ハードディスクドライブ１０９０に記憶される場合に限らず、例えば着脱可能な記憶媒体に記憶され、ディスクドライブ１１００等を介してＣＰＵ１０２０によって読み出されてもよい。あるいは、プログラムモジュール１０９３及びプログラムデータ１０９４は、ネットワーク（ＬＡＮ（Local  Area  Network）、ＷＡＮ（Wide  Area  Network）等）を介して接続された他のコンピュータに記憶されてもよい。そして、プログラムモジュール１０９３及びプログラムデータ１０９４は、他のコンピュータから、ネットワークインタフェース１０７０を介してＣＰＵ１０２０によって読み出されてもよい。
【０１９４】
以上、本発明者によってなされた発明を適用した実施形態について説明したが、本実施形態による本発明の開示の一部をなす記述及び図面により本発明は限定されることはない。すなわち、本実施形態に基づいて当業者等によりなされる他の実施形態、実施例及び運用技術等は全て本発明の範疇に含まれる。
【符号の説明】
【０１９５】
１０  マスク推定装置
１１，２１  マスク推定部
１３，２３  制御部
２０  学習装置
２４  パラメータ更新部
３０  信号分離装置
３１  音源分離部
【図１】
0006927419.tif 000015
【図２】
0006927419.tif 000016
【図３】
0006927419.tif 000017
【図４】
0006927419.tif 000018
【図５】
0006927419.tif 000019
【図６】
0006927419.tif 000020
【図７】
0006927419.tif 000021
【図８】
0006927419.tif 000022
【図９】
0006927419.tif 000023
【図１０】
0006927419.tif 000024
【図１１】
0006927419.tif 000025
【図１２】
0006927419.tif 000026
【図１３】
0006927419.tif 000027