(57)【要約】【課題】観測信号のSTFTの実部と虚部を利用する時間周波数マスク推定器を学習する時間周波数マスク推定器学習装置を提供する。【解決手段】観測信号のＳＴＦＴスペクトルの実部と、対応する虚部を実数と見做した値に対して畳み込みニューラルネットワーク処理を実行するＣＮＮ処理部と、観測信号のＳＴＦＴスペクトルの実部と、対応する虚部を実数と見做した値に対するノルム操作に共通のパラメータを利用するバッチ正規化処理を実行するＢＮ処理部と、観測信号のＳＴＦＴスペクトルの実部と、対応する虚部を実数と見做した値を結合した値に対してゲート線形ユニット処理を実行するＧＬＵ処理部を含む時間周波数マスク推定器と、既知の目的音と既知の雑音とを重畳してなる既知の観測信号と時間周波数マスクを乗算した値と、既知の目的音との間のコスト関数が最小化するように時間周波数マスク推定器のパラメータを学習する学習部を含む。【選択図】図１
2020122896.tif 000002
【特許請求の範囲】
【請求項１】
観測信号のＳＴＦＴスペクトルの実部と、対応する虚部を実数と見做した値に対して畳み込みニューラルネットワーク処理を実行するＣＮＮ処理部と、
観測信号のＳＴＦＴスペクトルの実部と、対応する虚部を実数と見做した値に対するノルム操作に共通のパラメータを利用するバッチ正規化処理を実行するＢＮ処理部と、
観測信号のＳＴＦＴスペクトルの実部と、対応する虚部を実数と見做した値を結合した値に対してゲート線形ユニット処理を実行するＧＬＵ処理部を含み、
任意の観測信号から目的音を推定するための時間周波数マスクを推定する時間周波数マスク推定器と、
既知の目的音と既知の雑音とを重畳してなる既知の観測信号と前記時間周波数マスクを乗算した値と、既知の目的音との間のコスト関数が最小化するように前記時間周波数マスク推定器のパラメータを学習する学習部を含む
時間周波数マスク推定器学習装置。
【請求項２】
請求項１に記載の時間周波数マスク推定器学習装置であって、
前記ＣＮＮ処理部は、時間方向へのストライドを１に制約して、前記畳み込みニューラルネットワーク処理を実行する
時間周波数マスク推定器学習装置。
【請求項３】
任意の観測信号から目的音を推定するための時間周波数マスクを推定する時間周波数マスク推定器が、
観測信号のＳＴＦＴスペクトルの実部と、対応する虚部を実数と見做した値に対して畳み込みニューラルネットワーク処理を実行するステップと、
観測信号のＳＴＦＴスペクトルの実部と、対応する虚部を実数と見做した値に対するノルム操作に共通のパラメータを利用するバッチ正規化処理を実行するステップと、
観測信号のＳＴＦＴスペクトルの実部と、対応する虚部を実数と見做した値を結合した値に対してゲート線形ユニット処理を実行するステップを実行し、
時間周波数マスク推定器学習装置が、
既知の目的音と既知の雑音とを重畳してなる既知の観測信号と前記時間周波数マスクを乗算した値と、既知の目的音との間のコスト関数が最小化するように前記時間周波数マスク推定器のパラメータを学習するステップを実行する
時間周波数マスク推定器学習方法。
【請求項４】
請求項３に記載の時間周波数マスク推定器学習方法であって、
時間方向へのストライドを１に制約して、前記畳み込みニューラルネットワーク処理を実行する
時間周波数マスク推定器学習方法。
【請求項５】
コンピュータを請求項１または２に記載の時間周波数マスク推定器学習装置として機能させるプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、深層学習を利用して時間周波数マスク推定器を学習する時間周波数マスク推定器学習装置、時間周波数マスク推定器学習方法、プログラムに関する。
【背景技術】
【０００２】
本発明は、深層学習を利用した全ての音響信号処理技術に利用できるが、本明細書では、音源強調を例に挙げて説明する。
【０００３】
＜STFTを利用した信号解析と音源強調＞
音響信号処理を行うためには、まず、マイクロホンを用いて、音を観測する必要がある。その観測音には、処理を行いたい目的音の他に雑音が含まれている。音源強調とは、雑音が含まれた観測信号から、目的音を抽出する信号処理のことを指す。
【０００４】
音源強調を定義する。マイクロホンの観測信号をxkと置き、xkは目的音skと雑音nkの混合信号であるとする。
xk= sk + nk …(1)
ここで、kは時間領域における時間のインデックスである。観測信号から目的音を抽出するために、時間領域の観測信号を
【０００５】
【数１】
2020122896.tif 000003
【０００６】
点毎にL点まとめて解析することを考える。以降、観測信号をその様にまとめたt∈{0,…,T}番目の信号
【０００７】
【数２】
2020122896.tif 000004
【０００８】
をtフレーム目の観測信号と表現する。ただしTは転置を表す。すると、tフレーム目の観測信号は、式(1)より、以下の様に記述できる。
xt= st + nt …(3)
【０００９】
ここでst,ntはそれぞれ、式(2)の様に定義されたtフレーム目の目的音と雑音である。STFTを用いた信号の時間周波数解析では、各時間フレームの観測信号に対してSTFTをかける。STFT後の信号は以下の性質を満たす。
【００１０】
【数３】
2020122896.tif 000005
【００１１】
ここで
【００１２】
【数４】
2020122896.tif 000006
【００１３】
は、tフレーム目の観測信号をSTFTした結果得られる解析結果である。
【００１４】
時間周波数マスク処理は、音源強調における代表的な手法の一つである。この処理では、STFT後の観測信号に対して、時間周波数マスク
【００１５】
【数５】
2020122896.tif 000007
【００１６】
を乗ずることで、STFT後の目的音の推定値を以下の様に得る。
【００１７】
【数６】
2020122896.tif 000008
【００１８】
ここで○はアダマール積である。最後に、
【００１９】
【数７】
2020122896.tif 000009
【００２０】
に逆STFT(ISTFT:inverse-STFT)を実行することで、時間領域の目的音の推定値を得る。
【００２１】
【数８】
2020122896.tif 000010
【００２２】
今、観測信号からGtを推定する、パラメータθGを持つ関数を
【００２３】
【数９】
2020122896.tif 000011
【００２４】
と置く。そして、Gtを以下の様に定義する。
【００２５】
【数１０】
2020122896.tif 000012
【００２６】
ここでφtはXtから抽出される音響特徴量であり、Xtの振幅スペクトルなどが利用される。なお、近年盛んに研究されている深層学習を用いた音源強調では、
【００２７】
【数１１】
2020122896.tif 000013
【００２８】
を深層ニューラルネットワーク(DNN: deep neural network)で設計する手法が主流である。以降では、
【００２９】
【数１２】
2020122896.tif 000014
【００３０】
はDNNを利用して実装されていると仮定する。
【先行技術文献】
【非特許文献】
【００３１】
【非特許文献１】C. Trabelsi, O. Bilaniuk, Y. Zhang, D. Serdyuk, S. Subramanian, J. F. Santos,S. Mehri, N. Rostamzadeh, Y. Bengio, and C. J. Pal, "Deep complex networks," in Int. Conf.Learn. Representat., 2018.
【発明の概要】
【発明が解決しようとする課題】
【００３２】
＜STFTを利用した信号解析と音源強調の課題＞
音声/音響信号処理では、波形をそのまま扱うことは稀であり、多くの場合、上述したように、観測信号を短い時間区間毎にフーリエ変換（STFT）し、その信号に対して強調や識別をかける。ところが、STFTは実数から複素数への変換であり、複素数を利用した深層学習はその学習が複雑になることから、STFTスペクトルの振幅情報のみを利用したり、制御したりすることが多い。また、DNNに入力する際も、振幅情報のみを特徴量とすることが多い。例えば、上述のφtをXtの振幅スペクトルとする場合、これは、位相スペクトルの情報を無視していることになるため、観測信号から得られる情報を余すことなく利用しているとは言えない。しかし、多くのDNNのモジュールは、実数に対して処理を行うことを前提に設計されているため、Xtをそのまま入力するには不具合が生じる。非特許文献１では複素数を利用するCNNやBNが提案されているが、これは機械学習一般の理論として提案されており、音響信号処理に特化しているわけではない。
【００３３】
そこで本発明では、観測信号のSTFTの実部と虚部を利用する時間周波数マスク推定器を学習する時間周波数マスク推定器学習装置を提供することを目的とする。
【課題を解決するための手段】
【００３４】
本発明の時間周波数マスク推定器学習装置は、時間周波数マスク推定器と、学習部を含み、時間周波数マスク推定器は、任意の観測信号から目的音を推定するための時間周波数マスクを推定する時間周波数マスク推定器であって、ＣＮＮ処理部と、ＢＮ処理部と、ＧＬＵ処理部を含む。
【００３５】
ＣＮＮ処理部は、観測信号のＳＴＦＴスペクトルの実部と、対応する虚部を実数と見做した値に対して畳み込みニューラルネットワーク処理を実行する。ＢＮ処理部は、観測信号のＳＴＦＴスペクトルの実部と、対応する虚部を実数と見做した値に対するノルム操作に共通のパラメータを利用するバッチ正規化処理を実行する。ＧＬＵ処理部は、観測信号のＳＴＦＴスペクトルの実部と、対応する虚部を実数と見做した値を結合した値に対してゲート線形ユニット処理を実行する。学習部は、既知の目的音と既知の雑音とを重畳してなる既知の観測信号と時間周波数マスクを乗算した値と、既知の目的音との間のコスト関数が最小化するように時間周波数マスク推定器のパラメータを学習する。
【発明の効果】
【００３６】
本発明の時間周波数マスク推定器学習装置によれば、観測信号のSTFTの実部と虚部を利用する時間周波数マスク推定器を学習することができる。
【図面の簡単な説明】
【００３７】
【図１】実施形態の時間周波数マスク推定器学習装置の構成を示すブロック図。
【図２】実施形態の時間周波数マスク推定器学習装置の動作を示すフローチャート。
【図３】実施形態の時間周波数マスク推定器の詳細な動作を示すフローチャート。
【図４】三つのモジュールと補助演算を組み合わせた時間周波数マスク推定器の構成例を示す図。
【発明を実施するための形態】
【００３８】
以下、本発明の実施の形態について、詳細に説明する。なお、同じ機能を有する構成部には同じ番号を付し、重複説明を省略する。
【実施例１】
【００３９】
実施例１では、位相スペクトルの特性に基づくDNNモジュールとして、(1)制約付き複素畳み込みニューラルネットワーク（CNN: convolutional neural network）、(2)簡略化複素バッチ正規化（BN: batch normalization）、(3)複素ゲート線形ユニット（GLU: fated linear unit）の３つのモジュールを開示する。以降では、I=√(-1)、また()Reと()Imはそれぞれ、複素数の実部と虚部を表す。なお、()Imは虚部を実数と見做した値（虚部から複素単位を取り除いた値）を指す。
【００４０】
＜制約付き複素CNN＞
実施例１では、以下の形式の複素CNNを実行する。
W * z = (WRe * zRe - WIm* zIm) + I (WRe * zIm + WIm * zRe)…(8)
【００４１】
ここでWは重みパラメータWの畳み込み層を表す。なおその変形として、畳み込みの重みを実数に制限することも可能である。
WRe* z = (WRe * zRe) + I (WRe * zIm)…(9)
【００４２】
ところで、音声信号の位相スペクトルは時間方向に連続的に変化する性質を持つ。ゆえに、本実施例では、非特許文献１と異なり、式(8)と式(9)の時間方向へのストライドを1に制約する。
【００４３】
＜簡略化複素BN＞
BNはDNNの学習に用いるミニバッチ内平均と分散をそれぞれ0と1にする処理である。また、学習可能な拡大と平行移動のパラメータとを用いて以下のように定義される。
【００４４】
【数１３】
2020122896.tif 000015
【００４５】
ここで
【００４６】
【数１４】
2020122896.tif 000016
【００４７】
はミニバッチ内の平均と分散、ε>0は小さな正の定数である。εは例えば、10-5程度に設定すればよい。これは、実数に対してはよく動くが、複素数に対してそのまま適応することは妥当ではない。なぜなら、例えば、実部と虚部に別々にBNを施すと、複素変数のノルムの関係性（各周波数の振幅の関係性に相当）や位相スペクトルを崩してしまうためである。非特許文献１で提案されているような、主成分分析に基づく処理も、同様の理由で妥当ではない。一方で、複素数の集合からその平均値を減算する処理はハイパスフィルタと等価であり、複素数の集合にあるスカラーを乗じる処理はフィルタゲインの調整とみなせる。そこで、本実施例では、以下の簡略化複素BNを提案する。
【００４８】
【数１５】
2020122896.tif 000017
【００４９】
式(11)において、平均値の減算は実部と虚部について別々に行うが、ノルム操作は実部と虚部について同じパラメータ（式(11)の分母に該当する部分）を利用している点が従来法と異なる。また、学習可能なパラメータγとβも、同様の理由で利用しない。
【００５０】
＜複素GLU＞
複素スペクトルに対して妥当な活性化関数を考える。非特許文献１では、以下の3種類の活性化関数が提案されている。
【００５１】
【数１６】
2020122896.tif 000018
【００５２】
ここで| |は絶対値、Arg[ ]は複素数の角度を返す関数である。本実施例では、位相スペクトルを保存するために、式(14)の形式の活性化関数を考える。すなわち、振幅スペクトルのみを操作する活性化関数である。
【００５３】
振幅スペクトルのみを操作する音響信号処理手法で代表的なものは、式(5)の時間周波数マスクである。そこで、実部と虚部を入力し、時間周波数マスクを出力するCNNを考える。
【００５４】
【数１７】
2020122896.tif 000019
【００５５】
ここでconcatは2変数のチャネル方向への結合である。この形式は、GLUと類似している。GLUは実数値を入力して、マスクを出力する活性化関数だが、本実施例では、複素数値をチャネル方向に結合してマスクを出力するGLU(i.e.複素GLU)を実行する。
【００５６】
＜実施形態＞
以下、具体的な実施形態として、時間周波数マスク推定器学習装置１について説明する。図１に示すように、時間周波数マスク推定器学習装置１は、時間周波数マスク推定器１１と、学習部１２を含む構成であり、装置外部、あるいは装置内部に目的音ＤＢ９１と、雑音ＤＢ９２を含む構成である。また、時間周波数マスク推定器１１は、ＣＮＮ処理部１１１と、ＢＮ処理部１１２と、ＧＬＵ処理部１１３と、補助演算部１１４を含む構成である。
【００５７】
図２に示すように、時間周波数マスク推定器１１は、目的音ＤＢ９１から目的音を、雑音ＤＢ９２から雑音をランダムに選択し、それを重畳することで観測信号をシミュレーションし、観測信号のＳＴＦＴに対して、ＣＮＮ処理とＢＮ処理とＧＬＵ処理を実行して、任意の観測信号から目的音を推定するための時間周波数マスクを推定する（Ｓ１１）。ステップＳ１１を最初に実行する場合、時間周波数マスクＧのパラメータは、例えば、何らかの乱数で初期化しておく。なお、ＳＴＦＴ処理については、時間周波数マスク推定器１１が実行してもよいし、図示しないＳＴＦＴ処理部が実行することとしてもよい。
【００５８】
学習部１２は、既知の目的音と既知の雑音とを重畳してなる既知の観測信号と時間周波数マスクを乗算した値（式(5)）と、既知の目的音との間の任意のコスト関数が最小化するように時間周波数マスク推定器１１のパラメータを学習する（Ｓ１２）。学習法には、確率的最急降下法などを利用すればよく、その学習率は10-5程度に設定すればよい。
【００５９】
時間周波数マスク推定器学習装置１は、収束判定をし、収束していなければステップＳ１１へ戻る。収束判定ルールは、例えばＳ１２を一定回数（例えば10万回）繰り返したか否か、などとすればよい。
【００６０】
ステップＳ１１の詳細を図３に示す。時間周波数マスク推定器１１は、観測信号のＳＴＦＴに対して、所定の順序で、ＣＮＮ処理（Ｓ１１１）、ＢＮ処理（Ｓ１１２）、ＧＬＵ処理（Ｓ１１３）、その他の処理（Ｓ１１４）を繰り返し実行する。以下、ステップＳ１１１〜Ｓ１１４の詳細を説明する。
【００６１】
ＣＮＮ処理部１１１は、観測信号のＳＴＦＴスペクトルの実部と、対応する虚部を実数と見做した値に対して、式(8)または(9)に基づいて、時間方向のストライドを１に制約して、畳み込みニューラルネットワーク処理を実行する（Ｓ１１１）。ＢＮ処理部１１２は、観測信号のＳＴＦＴスペクトルの実部と、対応する虚部を実数と見做した値に対するノルム操作に共通のパラメータ（１／√(σ2BRe+σ2BIm+ε)）を利用する式(11)に基づいて、バッチ正規化処理を実行する（Ｓ１１２）。ＧＬＵ処理部１１３は、式(15)に基づいて、観測信号のＳＴＦＴスペクトルの実部zReと、対応する虚部を実数と見做した値zImを結合した値concat(zRe,zIm)に対して、ゲート線形ユニット処理を実行する（Ｓ１１３）。補助演算部１１４は、上記以外のその他の処理（例えばconcatやsigmoid）を実行する（Ｓ１１４）。
【００６２】
図４は、三つのモジュールを組み合わせた時間周波数マスク推定器（ニューラルネットワーク）の構成例を示す図である。“Conv”，“BN”，“GLU”，“Concat”，“sigmoid”はそれぞれ、制約付き複素CNN、簡略化複素BN、複素GLU、入力のチャネル方向への結合、シグモイド関数の演算を表す。c,k,s,pはそれぞれ、チャネル数、カーネルサイズ、ストライドサイズ、パディングサイズである。
【００６３】
＜効果＞
実施例１の時間周波数マスク推定器学習装置１によれば、複素スペクトルをそのまま入力するための、DNNのモジュールとして、(1)制約付き複素畳み込みニューラルネットワーク（CNN: convolutionalneural network）、(2)簡略化複素バッチ正規化（BN: batch normalization）、(3)複素ゲート線形ユニット（GLU: fated linear unit）の三つを導入したため、FFTスペクトルを複素数のまま、かつ信号処理理論に則った処理をDNNで実現できる。
【００６４】
＜補記＞
本発明の装置は、例えば単一のハードウェアエンティティとして、キーボードなどが接続可能な入力部、液晶ディスプレイなどが接続可能な出力部、ハードウェアエンティティの外部に通信可能な通信装置（例えば通信ケーブル）が接続可能な通信部、ＣＰＵ（Central Processing Unit、キャッシュメモリやレジスタなどを備えていてもよい）、メモリであるＲＡＭやＲＯＭ、ハードディスクである外部記憶装置並びにこれらの入力部、出力部、通信部、ＣＰＵ、ＲＡＭ、ＲＯＭ、外部記憶装置の間のデータのやり取りが可能なように接続するバスを有している。また必要に応じて、ハードウェアエンティティに、ＣＤ−ＲＯＭなどの記録媒体を読み書きできる装置（ドライブ）などを設けることとしてもよい。このようなハードウェア資源を備えた物理的実体としては、汎用コンピュータなどがある。
【００６５】
ハードウェアエンティティの外部記憶装置には、上述の機能を実現するために必要となるプログラムおよびこのプログラムの処理において必要となるデータなどが記憶されている（外部記憶装置に限らず、例えばプログラムを読み出し専用記憶装置であるＲＯＭに記憶させておくこととしてもよい）。また、これらのプログラムの処理によって得られるデータなどは、ＲＡＭや外部記憶装置などに適宜に記憶される。
【００６６】
ハードウェアエンティティでは、外部記憶装置（あるいはＲＯＭなど）に記憶された各プログラムとこの各プログラムの処理に必要なデータが必要に応じてメモリに読み込まれて、適宜にＣＰＵで解釈実行・処理される。その結果、ＣＰＵが所定の機能（上記、…部、…手段などと表した各構成要件）を実現する。
【００６７】
本発明は上述の実施形態に限定されるものではなく、本発明の趣旨を逸脱しない範囲で適宜変更が可能である。また、上記実施形態において説明した処理は、記載の順に従って時系列に実行されるのみならず、処理を実行する装置の処理能力あるいは必要に応じて並列的にあるいは個別に実行されるとしてもよい。
【００６８】
既述のように、上記実施形態において説明したハードウェアエンティティ（本発明の装置）における処理機能をコンピュータによって実現する場合、ハードウェアエンティティが有すべき機能の処理内容はプログラムによって記述される。そして、このプログラムをコンピュータで実行することにより、上記ハードウェアエンティティにおける処理機能がコンピュータ上で実現される。
【００６９】
この処理内容を記述したプログラムは、コンピュータで読み取り可能な記録媒体に記録しておくことができる。コンピュータで読み取り可能な記録媒体としては、例えば、磁気記録装置、光ディスク、光磁気記録媒体、半導体メモリ等どのようなものでもよい。具体的には、例えば、磁気記録装置として、ハードディスク装置、フレキシブルディスク、磁気テープ等を、光ディスクとして、ＤＶＤ（Digital Versatile Disc）、ＤＶＤ−ＲＡＭ（Random Access Memory）、ＣＤ−ＲＯＭ（Compact Disc Read Only Memory）、ＣＤ−Ｒ（Recordable）／ＲＷ（ReWritable）等を、光磁気記録媒体として、ＭＯ（Magneto-Optical disc）等を、半導体メモリとしてＥＥＰ−ＲＯＭ（Electronically Erasable and Programmable-Read Only Memory）等を用いることができる。
【００７０】
また、このプログラムの流通は、例えば、そのプログラムを記録したＤＶＤ、ＣＤ−ＲＯＭ等の可搬型記録媒体を販売、譲渡、貸与等することによって行う。さらに、このプログラムをサーバコンピュータの記憶装置に格納しておき、ネットワークを介して、サーバコンピュータから他のコンピュータにそのプログラムを転送することにより、このプログラムを流通させる構成としてもよい。
【００７１】
このようなプログラムを実行するコンピュータは、例えば、まず、可搬型記録媒体に記録されたプログラムもしくはサーバコンピュータから転送されたプログラムを、一旦、自己の記憶装置に格納する。そして、処理の実行時、このコンピュータは、自己の記録媒体に格納されたプログラムを読み取り、読み取ったプログラムに従った処理を実行する。また、このプログラムの別の実行形態として、コンピュータが可搬型記録媒体から直接プログラムを読み取り、そのプログラムに従った処理を実行することとしてもよく、さらに、このコンピュータにサーバコンピュータからプログラムが転送されるたびに、逐次、受け取ったプログラムに従った処理を実行することとしてもよい。また、サーバコンピュータから、このコンピュータへのプログラムの転送は行わず、その実行指示と結果取得のみによって処理機能を実現する、いわゆるＡＳＰ（Application Service Provider）型のサービスによって、上述の処理を実行する構成としてもよい。なお、本形態におけるプログラムには、電子計算機による処理の用に供する情報であってプログラムに準ずるもの（コンピュータに対する直接の指令ではないがコンピュータの処理を規定する性質を有するデータ等）を含むものとする。
【００７２】
また、この形態では、コンピュータ上で所定のプログラムを実行させることにより、ハードウェアエンティティを構成することとしたが、これらの処理内容の少なくとも一部をハードウェア的に実現することとしてもよい。
【図１】
2020122896.tif 000020
【図２】
2020122896.tif 000021
【図３】
2020122896.tif 000022
【図４】
2020122896.tif 000023