(57)【要約】【課題】実数で定義された周波数変換を利用した深層学習により推定した時間周波数マスクを用いた音源強調技術を提供する。【解決手段】音源強調処理部は、実数で定義された周波数変換を用いて、観測信号χtから観測信号周波数変換スペクトルXtCを生成する周波数変換部と、パラメータΘを用いたニューラルネットワークにより、観測信号周波数変換スペクトルXtCから抽出した音響特徴量ψtから時間周波数マスク^GtCを推定する時間周波数マスク推定部と、時間周波数マスク^GtCと観測信号周波数変換スペクトルXtCから出力音周波数変換スペクトル^StCを生成する時間周波数マスク処理部と、実数で定義された逆周波数変換を用いて、出力音周波数変換スペクトル^StCから歪み出力音^stCを生成する逆周波数変換部と、歪み出力音^stCから出力音^σtを生成する重畳加算部とを含む。【選択図】図９
2019090930.tif 000002
【特許請求の範囲】
【請求項１】
Tを1以上の整数とし、
ニューラルネットワークのパラメータΘを用いて、観測信号χt（1≦t≦T）から、当該観測信号χt（1≦t≦T）に含まれる目的音を強調した出力音^σt（1≦t≦T）を推定する音源強調装置であって、
実数で定義された周波数変換を用いて、前記観測信号χt（1≦t≦T）から、観測信号周波数変換スペクトルXtC（1≦t≦T）を生成する周波数変換部と、
前記観測信号周波数変換スペクトルXtC（1≦t≦T）から、音響特徴量ψt（1≦t≦T）を抽出する音響特徴量抽出部と、
前記パラメータΘを用いたニューラルネットワークにより、前記音響特徴量ψt（1≦t≦T）から、時間周波数マスク^GtC（1≦t≦T）を推定する時間周波数マスク推定部と、
前記時間周波数マスク^GtC（1≦t≦T）と前記観測信号周波数変換スペクトルXtC（1≦t≦T）から、出力音周波数変換スペクトル^StC（1≦t≦T）を生成する時間周波数マスク処理部と、
実数で定義された逆周波数変換を用いて、前記出力音周波数変換スペクトル^StC（1≦t≦T）から、歪み出力音^stC（1≦t≦T）を生成する逆周波数変換部と、
前記歪み出力音^stC（1≦t≦T）から、前記出力音^σt（1≦t≦T）を生成する重畳加算部と
を含む音源強調装置。
【請求項２】
請求項１に記載の音源強調装置であって、
前記実数で定義された周波数変換は、修正離散コサイン変換であり、
前記実数で定義された逆周波数変換は、逆修正離散コサイン変換である
ことを特徴とする音源強調装置。
【請求項３】
Tを1以上の整数、Kを1以上の整数とし、
ニューラルネットワークのパラメータΘを用いて、観測信号χt（1≦t≦T）から、当該観測信号χt（1≦t≦T）を重なりのないK個のブロックへ分割した分割観測信号xk（1≦k≦K）に含まれる目的音を強調した分割出力音^sk（1≦k≦K）を推定する音源強調処理部と、
前記分割出力音^sk（1≦k≦K）から、前記観測信号χt（1≦t≦T）に含まれる目的音を強調した出力音^σt（1≦t≦T）を生成する分割出力音統合部と
を含む音源強調装置であって、
前記音源強調処理部は、
前記観測信号χt（1≦t≦T）から、前記分割観測信号xk（1≦k≦K）を生成する観測信号分割部と、
実数で定義された周波数変換を用いて、前記分割観測信号xk（1≦k≦K）から、観測信号周波数変換スペクトルXkC（1≦k≦K）を生成する周波数変換部と、
前記観測信号周波数変換スペクトルXkC（1≦k≦K）から、音響特徴量ψk（1≦k≦K）を抽出する音響特徴量抽出部と、
前記パラメータΘを用いたニューラルネットワークにより、前記音響特徴量ψk（1≦k≦K）から、時間周波数マスク^GkC（1≦k≦K）を推定する時間周波数マスク推定部と、
前記時間周波数マスク^GkC（1≦k≦K）と前記観測信号周波数変換スペクトルXkC（1≦k≦K）から、出力音周波数変換スペクトル^SkC（1≦k≦K）を生成する時間周波数マスク処理部と、
実数で定義された逆周波数変換を用いて、前記出力音周波数変換スペクトル^SkC（1≦k≦K）から、歪み分割出力音^skC（1≦k≦K）を生成する逆周波数変換部と、
前記歪み分割出力音^skC（1≦k≦K）から、重畳加算により、前記分割出力音^sk（1≦k≦K）を生成する重畳加算部と
を含む音源強調装置。
【請求項４】
請求項３に記載の音源強調装置であって、
前記実数で定義された周波数変換は、修正離散コサイン変換であり、
前記実数で定義された逆周波数変換は、逆修正離散コサイン変換であり、
Rを実数の集合、Lを1以上の整数とし、
前記修正離散コサイン変換と前記逆修正離散コサイン変換は、行列C∈RL×2Lと対角行列W∈R2L×2Lを用いて、それぞれ
【数２１】
2019090930.tif 000023
と表される（ただし、前記行列Cのの(p, q)要素（1≦p≦L, 1≦q≦2L）と前記対角行列Wの(q, q)要素（1≦q≦2L）は、それぞれ
【数２２】
2019090930.tif 000024
であり、Tは転置を表す）
ことを特徴とする音源強調装置。
【請求項５】
Tを1以上の整数、Kを1以上の整数とし、
目的音学習データσt（1≦t≦T）と雑音学習データνt（1≦t≦T）から観測信号χt（1≦t≦T）を生成する信号重畳部と、
ニューラルネットワークのパラメータΘを用いて、前記観測信号χt（1≦t≦T）から、当該観測信号χt（1≦t≦T）を重なりのないK個のブロックへ分割した分割観測信号xk（1≦k≦K）に含まれる目的音を強調した分割出力音^sk（1≦k≦K）を推定する音源強調処理部と、
前記分割出力音^sk（1≦k≦K）と前記目的音学習データσt（1≦t≦T）から、出力音の推定誤差を示す目的関数T(Θ)の値を計算する目的関数計算部と、
前記目的関数T(Θ)の値を最適化するように前記パラメータΘを更新するパラメータ更新部と、
所定の収束条件が満たされた場合に前記パラメータΘを出力する収束判定部と
を含む音源強調学習装置であって、
前記目的関数T(Θ)は、
【数２３】
2019090930.tif 000025
と表される（ただし、sk（1≦k≦K）は前記目的音学習データσt（1≦t≦T）を重なりのないK個のブロックへ分割して得られる、k番目の分割目的音である）
ことを特徴とする音源強調学習装置。
【請求項６】
Tを1以上の整数とし、
音源強調装置が、ニューラルネットワークのパラメータΘを用いて、観測信号χt（1≦t≦T）から、当該観測信号χt（1≦t≦T）に含まれる目的音を強調した出力音^σt（1≦t≦T）を推定する音源強調方法であって、
前記音源強調装置が、実数で定義された周波数変換を用いて、前記観測信号χt（1≦t≦T）から、観測信号周波数変換スペクトルXtC（1≦t≦T）を生成する周波数変換ステップと、
前記音源強調装置が、前記観測信号周波数変換スペクトルXtC（1≦t≦T）から、音響特徴量ψt（1≦t≦T）を抽出する音響特徴量抽出ステップと、
前記音源強調装置が、前記パラメータΘを用いたニューラルネットワークにより、前記音響特徴量ψt（1≦t≦T）から、時間周波数マスク^GtC（1≦t≦T）を推定する時間周波数マスク推定ステップと、
前記音源強調装置が、前記時間周波数マスク^GtC（1≦t≦T）と前記観測信号周波数変換スペクトルXtC（1≦t≦T）から、出力音周波数変換スペクトル^StC（1≦t≦T）を生成する時間周波数マスク処理ステップと、
前記音源強調装置が、実数で定義された逆周波数変換を用いて、前記出力音周波数変換スペクトル^StC（1≦t≦T）から、歪み出力音^stC（1≦t≦T）を生成する逆周波数変換部と、
前記音源強調装置が、前記歪み出力音^stC（1≦t≦T）から、前記出力音^σt（1≦t≦T）を生成する重畳加算ステップと
を含む音源強調方法。
【請求項７】
Tを1以上の整数、Kを1以上の整数とし、
音源強調装置が、ニューラルネットワークのパラメータΘを用いて、観測信号χt（1≦t≦T）から、当該観測信号χt（1≦t≦T）を重なりのないK個のブロックへ分割した分割観測信号xk（1≦k≦K）に含まれる目的音を強調した分割出力音^sk（1≦k≦K）を推定する音源強調処理ステップと、
前記音源強調装置が、前記分割出力音^sk（1≦k≦K）から、前記観測信号χt（1≦t≦T）に含まれる目的音を強調した出力音σt（1≦t≦T）を生成する分割出力音統合ステップと
を含む音源強調方法であって、
前記音源強調処理ステップは、
前記観測信号χt（1≦t≦T）から、前記分割観測信号xk（1≦k≦K）を生成する観測信号分割ステップと、
実数で定義された周波数変換を用いて、前記分割観測信号xk（1≦k≦K）から、観測信号周波数変換スペクトルXkC（1≦k≦K）を生成する周波数変換ステップと、
前記観測信号周波数変換スペクトルXkC（1≦k≦K）から、音響特徴量ψk（1≦k≦K）を抽出する音響特徴量抽出ステップと、
前記パラメータΘを用いたニューラルネットワークにより、前記音響特徴量ψk（1≦k≦K）から、時間周波数マスク^GkC（1≦k≦K）を推定する時間周波数マスク推定ステップと、
前記時間周波数マスク^GkC（1≦k≦K）と前記観測信号周波数変換スペクトルXkC（1≦k≦K）から、出力音周波数変換スペクトル^SkC（1≦k≦K）を生成する時間周波数マスク処理ステップと、
実数で定義された逆周波数変換を用いて、前記出力音周波数変換スペクトル^SkC（1≦k≦K）から、歪み分割出力音^skC（1≦k≦K）を生成する逆周波数変換ステップと、
前記歪み分割出力音^skC（1≦k≦K）から、重畳加算により、前記分割出力音^sk（1≦k≦K）を生成する重畳加算ステップと
を含む音源強調方法。
【請求項８】
請求項１ないし４のいずれか１項に記載の音源強調装置または請求項５に記載の音源強調学習装置としてコンピュータを機能させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、マイクロホンなどを用いて雑音下で収音した音響信号から、所望の目的音だけを強調し、他の雑音を抑圧する音源強調技術に関する。
【背景技術】
【０００２】
音源強調は、音声認識の前処理、高臨場音響向け集音、聴覚補助など、その応用範囲の広さから長年研究されている。音源強調の代表的な手法に、ウィナーフィルタリング（非特許文献１）などの時間周波数マスク処理を利用するものがある。時間周波数マスクを正確に推定するための手法として、複数のマイクロホンの観測信号を組み合わせる手法（非特許文献２）、非負値行列因子分解を利用する手法（非特許文献３）などがある。
【０００３】
近年、時間周波数マスクの推定に、深層学習(DL: Deep Learning)を利用する方法が検討されている（非特許文献４）。以降、深層学習を利用して求めた時間周波数マスクを用いて音源強調を行うことを、便宜上、DL音源強調と呼ぶ。DL音源強調では、深層ニューラルネットワーク（DNN: Deep Neural Network）や長・短期記憶再帰型ネットワーク（LSTM: Long Short-Term Memory Network）を、時間周波数マスクを推定するための回帰関数として利用する。そして、推定した時間周波数マスクを、離散フーリエ変換（DFT: Discrete Fourier Transform）領域で観測信号に乗じ、それを逆離散フーリエ変換（IDFT: Inverse DFT）したものを重畳加算（OLA: Overlap-Add）することで、出力信号を得る。
【０００４】
DFTで得られる周波数スペクトルは複素数値である。ゆえに、観測信号から目的音を完全に復元するためには、振幅スペクトルと位相スペクトルの両方を操作する必要がある。すなわち、複素数の時間周波数マスクを利用しなくてはならない。しかし、DL音源強調の多くでは、実数の時間周波数マスクを利用し、振幅スペクトルだけを操作する。これは、一般的なニューラルネットワークは、複素数を直接出力することができないためである。そこで、ニューラルネットワークで複素数の時間周波数マスクを推定するために、複素数の実部と虚部を分離し、それぞれを実数値とみなして推定する方法（非特許文献５）も提案されている。
【先行技術文献】
【非特許文献】
【０００５】
【非特許文献１】Y. Ephraim and D. Malah, “Speech enhancement using a minimum mean-square error short-time spectral amplitude estimator”, IEEE Trans. Audio, Speech and Language Processing, Vol.32, Issue 6, pp.1109-1121, 1984.
【非特許文献２】Y. Hioka, K. Furuya, K. Kobayashi, K. Niwa and Y. Haneda, “Underdetermined sound source separation using power spectrum density estimated by combination of directivity gain”, IEEE Trans. Audio, Speech and Language Processing, Vol.21, Issue 6, pp.1240-1250, 2013.
【非特許文献３】P. Smaragdis and J. C. Brown, “Non-negative matrix factorization for polyphonic music transcription”, In Proc. WASPAA, 2003.
【非特許文献４】Y. Xu, J. Du, L. R. Dai and C. H. Lee, “A regression approach to speech enhancement based on deep neural networks”, IEEE/ACM Trans. Audio, Speech and Language Processing, Vol.23, Issue 1, pp.7-19, 2015.
【非特許文献５】D. S. Williamson, Y. Wang and D. L. Wang, “Complex ratio masking for monaural speech separation”, IEEE/ACM Transactions on Audio, Speech, and Language Processing, Vol.24, Issue 3, pp.483-492, 2016.
【発明の概要】
【発明が解決しようとする課題】
【０００６】
しかし、非特許文献５に記載の方法では、従来の実数の時間周波数マスクを推定する手法と比べて、ニューラルネットワークで推定すべき変数の数が倍になるため、その学習が難しくなるという問題があった。
【０００７】
そこで本発明では、実数で定義された周波数変換を利用した深層学習により推定した時間周波数マスクを用いた音源強調技術を提供することを目的とする。
【課題を解決するための手段】
【０００８】
本発明の一態様は、Tを1以上の整数とし、ニューラルネットワークのパラメータΘを用いて、観測信号χt（1≦t≦T）から、当該観測信号χt（1≦t≦T）に含まれる目的音を強調した出力音^σt（1≦t≦T）を推定する音源強調装置であって、実数で定義された周波数変換を用いて、前記観測信号χt（1≦t≦T）から、観測信号周波数変換スペクトルXtC（1≦t≦T）を生成する周波数変換部と、前記観測信号周波数変換スペクトルXtC（1≦t≦T）から、音響特徴量ψt（1≦t≦T）を抽出する音響特徴量抽出部と、前記パラメータΘを用いたニューラルネットワークにより、前記音響特徴量ψt（1≦t≦T）から、時間周波数マスク^GtC（1≦t≦T）を推定する時間周波数マスク推定部と、前記時間周波数マスク^GtC（1≦t≦T）と前記観測信号周波数変換スペクトルXtC（1≦t≦T）から、出力音周波数変換スペクトル^StC（1≦t≦T）を生成する時間周波数マスク処理部と、実数で定義された逆周波数変換を用いて、前記出力音周波数変換スペクトル^StC（1≦t≦T）から、歪み出力音^stC（1≦t≦T）を生成する逆周波数変換部と、前記歪み出力音^stC（1≦t≦T）から、前記出力音^σt（1≦t≦T）を生成する重畳加算部とを含む。
【０００９】
本発明の一態様は、Tを1以上の整数、Kを1以上の整数とし、ニューラルネットワークのパラメータΘを用いて、観測信号χt（1≦t≦T）から、当該観測信号χt（1≦t≦T）を重なりのないK個のブロックへ分割した分割観測信号xk（1≦k≦K）に含まれる目的音を強調した分割出力音^sk（1≦k≦K）を推定する音源強調処理部と、前記分割出力音^sk（1≦k≦K）から、前記観測信号χt（1≦t≦T）に含まれる目的音を強調した出力音^σt（1≦t≦T）を生成する分割出力音統合部とを含む音源強調装置であって、前記音源強調処理部は、前記観測信号χt（1≦t≦T）から、前記分割観測信号xk（1≦k≦K）を生成する観測信号分割部と、実数で定義された周波数変換を用いて、前記分割観測信号xk（1≦k≦K）から、観測信号周波数変換スペクトルXkC（1≦k≦K）を生成する周波数変換部と、前記観測信号周波数変換スペクトルXkC（1≦k≦K）から、音響特徴量ψk（1≦k≦K）を抽出する音響特徴量抽出部と、前記パラメータΘを用いたニューラルネットワークにより、前記音響特徴量ψk（1≦k≦K）から、時間周波数マスク^GkC（1≦k≦K）を推定する時間周波数マスク推定部と、前記時間周波数マスク^GkC（1≦k≦K）と前記観測信号周波数変換スペクトルXkC（1≦k≦K）から、出力音周波数変換スペクトル^SkC（1≦k≦K）を生成する時間周波数マスク処理部と、実数で定義された逆周波数変換を用いて、前記出力音周波数変換スペクトル^SkC（1≦k≦K）から、歪み分割出力音^skC（1≦k≦K）を生成する逆周波数変換部と、前記歪み分割出力音^skC（1≦k≦K）から、重畳加算により、前記分割出力音^sk（1≦k≦K）を生成する重畳加算部とを含む。
【発明の効果】
【００１０】
本発明によれば、実数で定義された周波数変換を利用した深層学習により推定した時間周波数マスクを用いて、音源強調が可能となる。
【図面の簡単な説明】
【００１１】
【図１】音源強調学習装置１００の構成の一例を示すブロック図。
【図２】音源強調学習装置１００の動作の一例を示すフローチャート。
【図３】音源強調処理部１２０の構成の一例を示すブロック図。
【図４】音源強調処理部１２０の動作の一例を示すフローチャート。
【図５】音源強調処理部２２０の構成の一例を示すブロック図。
【図６】音源強調処理部２２０の動作の一例を示すフローチャート。
【図７】音源強調装置３００の構成の一例を示すブロック図。
【図８】音源強調装置３００の動作の一例を示すフローチャート。
【図９】音源強調装置４００の構成の一例を示すブロック図。
【図１０】音源強調装置４００の動作の一例を示すフローチャート。
【発明を実施するための形態】
【００１２】
以下、本発明の実施の形態について、詳細に説明する。なお、同じ機能を有する構成部には同じ番号を付し、重複説明を省略する。
【００１３】
＜技術的背景＞
以下、本発明の実施の形態の技術的背景として、実数で定義された周波数変換の一つである修正離散コサイン変換（MDCT: Modified Discrete Cosine Transform）を用いた深層学習について説明する。その前に、従来技術である非特許文献５に記載の方法について説明する。
【００１４】
《DFT領域における時間周波数マスクによる音源強調》
時間領域において、目的音をσt、雑音をνtとおき、観測信号χtを以下のように表現する。
【００１５】
【数１】
2019090930.tif 000003
【００１６】
ここで、t∈{1, 2, …, T}は時間のインデックスである。
【００１７】
そして、観測信号χt（1≦t≦T）を、ある時間長で重なりのあるK個（ただし、Kは1以上の整数）の時間フレームに分割し、それをDFTすることにより、式(1)を以下のように変形する。
【００１８】
【数２】
2019090930.tif 000004
【００１９】
ここで、Xω,kF、Sω,kF、Nω,kFは、それぞれ観測信号のDFTスペクトル、目的音のDFTスペクトル、雑音のDFTスペクトルである。また、ω∈{1, 2, …, Ω}とk∈{1, 2, …, K}は、それぞれ時間周波数領域における、周波数のインデックスと時間のインデックスである。
【００２０】
DFT領域における時間周波数マスクによる音源強調では、以下の式で出力音のDFTスペクトル^Sω,kFを得る。
【００２１】
【数３】
2019090930.tif 000005
【００２２】
ここで、Gω,kが時間周波数マスクである。なお、^*は、*を推定したものであることを表す。
【００２３】
ここで得られた出力音のDFTスペクトル^Sω,kFをIDFTし、他の信号をOLAすることにより、時間領域の出力音を得る。
【００２４】
《深層学習を利用した時間周波数マスクの推定》
DL音源強調では、時間フレームkの時間周波数マスクを縦に並べたベクトルGk:=(G1,k, …, GΩ,k)Tを以下のように推定する。
【００２５】
【数４】
2019090930.tif 000006
【００２６】
ここで、M(・)はニューラルネットワークを利用した回帰関数、φkは観測信号χt（1≦t≦T）から抽出したkフレーム目の音響特徴量、Θはニューラルネットワークのパラメータである。また、Tは転置を表す。
【００２７】
実数の時間周波数マスクを推定する場合、パラメータΘは、例えば以下の目的関数Treal-mask(Θ)を最小化するように、誤差逆伝搬法を利用した勾配法で学習することができる。
【００２８】
【数５】
2019090930.tif 000007
【００２９】
ここで、SkF:=(S1,kF, …, SΩ,kF)T、XkF:=(X1,kF, …, XΩ,kF)Tである。また、||・||pはLpノルム、○はベクトルの要素積（アダマール積）を表す。
【００３０】
先述したように、一般的なニューラルネットワークは複素数を直接出力することができないため、非特許文献５では、複素数の実部と虚部を分離し、それぞれを実数値とみなして推定する方法を提案している。非特許文献５では、複素理想比率マスク（cIRM: Complex Ideal Ratio Mask）と呼ばれる複素数の時間周波数マスクGω,kcIRMを以下のように定義している。
【００３１】
【数６】
2019090930.tif 000008
【００３２】
ここで、i2=-1、ReとImは複素数の実部と虚部を表す。
【００３３】
そして、M(φk|Θ)を、複素理想比率マスク（cIRM）Gω,kcIRMの実部GRe,ω,kcIRMと虚部GIm,ω,kcIRMを連結したベクトルを推定するように設計する。
【００３４】
【数７】
2019090930.tif 000009
【００３５】
ここで、^GRe,kcIRM:=(^GRe,1,kcIRM, …, ^GRe,Ω,kcIRM)T、^GIm,kcIRM:=(^GIm,1,kcIRM, …, ^GIm,Ω,kcIRM)Tである。つまり、^GRe,kcIRMは、GRe,kcIRM:=(GRe,1,kcIRM, …, GRe,Ω,kcIRM)Tを推定したベクトル、^GIm,kcIRMは、GIm,kcIRM:=(GIm,1,kcIRM, …, GIm,Ω,kcIRM)Tを推定したベクトルである。
【００３６】
ここまでの議論からわかるように、DFT領域のDL音源強調では、目的音を完全に復元するためには、2Ω個の変数を推定する必要がある。また、目的関数Treal-mask(Θ)を周波数領域での誤差とし、この誤差を最小化するため、重畳加算法（OLA Method: Overlap-add Method）で用いる窓関数などに起因する歪みは考慮することができない。
【００３７】
《本発明の着眼点とそのメリット》
従来のDFT領域のDL音源強調では、DFTスペクトルが複素数であるため、目的音を完全に復元する時間周波数マスクを推定するには、非特許文献５のcIRMのように、複素数の実部と虚部を個別に推定するニューラルネットワークを利用する必要があった。
【００３８】
ところで周波数分析をした結果、得られる周波数スペクトルが実数となる周波数変換を利用すれば、実数の時間周波数マスクを用いて目的音を完全に復元できる。この知見を考慮すると、実数領域の時間周波数変換を利用すれば、cIRMのような複雑な出力ユニットを持つニューラルネットワークを利用しなくとも、時間周波数マスクを推定できるのではないかと考えられる。これが、本発明の着眼点である。
【００３９】
ここで、実数で定義された周波数変換として、例えば、離散コサイン変換（DCT: Discrete Cosine Transform）、離散サイン変換（DST: Discrete Sine Transform）、修正離散コサイン変換（MDCT: Modified DCT）などがある。これらの周波数変換で得られる周波数スペクトルは実数であるため、実数の時間周波数マスクを乗じるだけで、振幅スペクトルと位相スペクトルの両方を制御することができるという特徴がある。さらに、これらの周波数変換は、すべて実数領域の行列によりその処理を表現できるため、DFT領域のDL音源強調では実現が困難だった、入力信号波形の入力から出力信号波形の出力までを可微分関数のみで記述してニューラルネットワークを学習する、end-to-end型のDL音源強調を実現することができる。
【００４０】
つまり、実数で定義された周波数変換を用いた深層学習によれば、従来のend-to-end型のDL音源強調で利用される、多層の畳み込みニューラルネットワーク（非特許文献５）などの複雑なニューラルネットワークを用いずとも、従来のDFT領域のDL音源強調の拡張として、深層学習を利用したend-to-end型の音源強調を構成することができる。end-to-end型のDL音源強調が構成できると、時間領域で定義された目的関数を最適化することができるため、OLAで用いる窓関数など、すべての信号処理の影響を考慮してニューラルネットワークを学習することが可能となる。
【００４１】
以下、実数で定義された周波数変換として修正離散コサイン変換（MDCT）を用いた深層学習について説明する。まず、MDCTについて説明する。
【００４２】
《修正離散コサイン変換（MDCT）》
ここでは、MDCTを行列形式で説明する。まず、観測信号χt（1≦t≦T）を重なりのないK個（ただし、Kは1以上の整数）のブロックへ分割する。ここでk番目のブロックの観測信号xkは以下のように表現できる。
【００４３】
【数８】
2019090930.tif 000010
【００４４】
ここで、k∈{1, 2, …, K}は、ブロック番号である。なお、k番目のブロックの観測信号xkはL次元ベクトル（ただし、Lは1以上の整数）である。
【００４５】
すると、MDCTと逆MDCT（IMDCT: inverse MDCT）はそれぞれ以下のように記述できる。
【００４６】
【数９】
2019090930.tif 000011
【００４７】
ここで、XkC:=(X1,kC, …, XL,kC)Tであり、X1,kC, …, XL,kCはそれぞれ観測信号のMDCTスペクトルである。また、C∈RL×2L（ただし、Rは実数の集合）は、MDCT行列であり、その(p, q)要素（1≦p≦L, 1≦q≦2L）は以下のように記述できる。
【００４８】
【数１０】
2019090930.tif 000012
【００４９】
また、W∈R2L×2Lは、分析／合成窓を表す対角行列であり、例えばその対角要素、つまり(q, q)要素（1≦q≦2L）は以下のように記述できる。
【００５０】
【数１１】
2019090930.tif 000013
【００５１】
なお、実数で定義された周波数変換としてDCTやDSTを用いる場合は、CにDCT行列やDST行列を利用すればよい。その場合、Cは2L×2Lの行列となる。
【００５２】
ここで、MDCT行列CはL×2Lの行列であるため、逆行列は存在しない。ゆえに、IMDCTの出力であるxk(C1)とxk(C2)には、時間歪み（time-domain aliasing）が含まれる。しかし、この歪みは、以下のOLAを行うことで除去できる。
【００５３】
【数１２】
2019090930.tif 000014
【００５４】
この特性は時間歪み除去（TDAC: time-domain aliasing cancellation）と呼ばれる。ただし、OOLA=[0, I, I, 0]はOLA行列であり、0とIはそれぞれL×Lのゼロ行列とL×Lの単位行列である。つまり、OLA行列OOLAは、L×4Lの行列である。
【００５５】
《MDCTを利用した学習アルゴリズム》
ここでは、パラメータΘの学習アルゴリズムについて説明する。まず、参考非特許文献１にならい、MDCT領域における時間周波数マスクによる音源強調を以下のように定義する。
【００５６】
【数１３】
2019090930.tif 000015
【００５７】
ここで、Sp,kCは目的音のMDCTスペクトル、Gp,kCはMDCT領域の時間周波数マスク、^Sp,kCは出力音のMDCTスペクトルである。
（参考非特許文献１：F. Keuch and B. Elder, “Aliasing reduction for modified discrete cosine transform domain filtering and its application to speech enhancement”, In Proc WASPAA, 2007.）
【００５８】
そして、DFT領域のDL音源強調と同様に、ニューラルネットワークによりMDCT領域の時間周波数マスクGp,kCを推定する。
【００５９】
【数１４】
2019090930.tif 000016
【００６０】
ここで、^GkC:=(^G1,kC, …, ^GL,kC)Tであり、ψkはk番目のブロックの音響特徴量である。
【００６１】
すると、式(16)は以下のようにベクトル表記できる。
【００６２】
【数１５】
2019090930.tif 000017
【００６３】
ここで、^SkC:=(^S1,kC, …, ^SL,kC)Tである。
【００６４】
MDCT/逆MDCTおよび時間周波数マスク処理である式(10)〜(18)を見ると、すべてが実数領域で定義された行列演算で記述できることがわかる。この特性を利用すると、k-1番目のブロックの観測信号xk-1、k番目のブロックの観測信号xk、k+1番目のブロックの観測信号xk+1を入力とし、k番目のブロックの出力音^skを計算するまでの手順を、以下の一つの式により（つまり、end-to-end型で）記述することができる。
【００６５】
【数１６】
2019090930.tif 000018
【００６６】
さらに、出力音^skは、M(ψk|Θ)の出力を利用した線形演算で記述されているため、出力音^skはパラメータΘで微分可能である。すなわち、出力音の推定精度（つまり、出力音と目的音の誤差）を定義する目的関数を時間領域で定義することで、パラメータΘを誤差逆伝搬法などの勾配法で学習することができる。目的関数T(Θ)には、例えば以下の絶対誤差を利用することができる。
【００６７】
【数１７】
2019090930.tif 000019
【００６８】
ここで、skはk番目のブロックの目的音である。
【００６９】
なお、目的関数T(Θ)は、時間領域で定義される関数であればどのようなものでもよく、例えば、二乗誤差や重み付き二乗誤差を利用することができる。
【００７０】
従来技術の目的関数Treal-mask(Θ)は周波数領域での出力音と目的音の誤差に基づいて計算している（式(5)参照）のに対して、本発明の目的関数T(Θ)は時間領域での出力音と目的音の誤差に基づいて計算している（式(20)及び式(19)参照）。そのため、最適化に際して、目的関数Treal-mask(Θ)は重畳加算で用いる窓関数による歪みなど一部の信号処理の影響を考慮することができないのに対して、目的関数T(Θ)はすべての信号処理の影響を考慮することができるという違いが生じる。
【００７１】
＜第一実施形態＞
ここでは、＜技術的背景＞で説明した学習アルゴリズムに基づいて構成した音源強調学習装置１００について説明する。
【００７２】
以下、図１〜図２を参照して音源強調学習装置１００を説明する。図１は、音源強調学習装置１００の構成を示すブロック図である。図２は、音源強調学習装置１００の動作を示すフローチャートである。図１に示すように音源強調学習装置１００は、信号重畳部１１０と、音源強調処理部１２０と、目的関数計算部１３０と、パラメータ更新部１４０と、収束条件判定部１５０と、記録部１９０を含む。記録部１９０は、音源強調学習装置１００の処理に必要な情報を適宜記録する構成部である。例えば、学習対象となるニューラルネットワークのパラメータΘを記録する。
【００７３】
音源強調学習装置１００は、目的音学習データ記録部９１０、雑音学習データ記録部９２０に接続している。目的音学習データ記録部９１０、雑音学習データ記録部９２０には、事前に収音した目的音と雑音が学習データとして記録されている。目的音学習データ、雑音学習データは、時間領域信号である。例えば、音声を目的音とする場合、目的音学習データは、無響室などで収録した発話データである。この発話データは8秒間程度の発話であり、5000発話程度以上集めることが望ましい。また、雑音学習データは、使用を想定する環境で収録した雑音である。
【００７４】
音源強調学習装置１００の各構成部で用いる各種パラメータ（例えば、ネットワークパラメータΘの初期値）については、目的音学習データや雑音学習データと同様、外部から入力するようにしてもよいし、事前に各構成部に設定されていてもよい。
【００７５】
図２に従い音源強調学習装置１００の動作について説明する。信号重畳部１１０は、目的音学習データσt（1≦t≦T、Tは1以上の整数）と雑音学習データνt（1≦t≦T）から、観測信号χt（1≦t≦T）を生成する（Ｓ１１０）。具体的には、まず、目的音学習データ（先ほどの例でいうと、8秒間程度の発話データ）をランダムに1つ選択し、目的音学習データと同じ長さの雑音学習データをランダムに1つ選択する。さらに、式(1)に基づいて目的音学習データと雑音学習データを重畳することにより、観測信号を生成する。目的音学習データと雑音学習データの比率は使用を想定する環境に合わせて設定するのが好ましいが、例えば、信号対雑音比で-12〜12dB程度となるように重畳するとよい。
【００７６】
音源強調処理部１２０は、パラメータΘを用いて、Ｓ１１０で生成した観測信号χt（1≦t≦T）から、分割出力音^sk（1≦k≦K、Kは1以上の整数）を推定する（Ｓ１２０）。なお、分割出力音^sk（1≦k≦K）は、後述する分割観測信号xk（1≦k≦K）に含まれる目的音を強調した信号である。以下、図３〜図４を参照して音源強調処理部１２０について説明する。図３は、音源強調処理部１２０の構成を示すブロック図である。図４は、音源強調処理部１２０の動作を示すフローチャートである。図３に示すように音源強調処理部１２０は、観測信号分割部１２１と、周波数変換部１２２と、音響特徴量抽出部１２３と、時間周波数マスク推定部１２４と、時間周波数マスク処理部１２５と、逆周波数変換部１２６と、重畳加算部１２７を含む。
【００７７】
図４に従い音源強調処理部１２０の動作について説明する。観測信号分割部１２１は、Ｓ１１０で生成した観測信号χt（1≦t≦T）から、分割観測信号xk（1≦k≦K）を生成する（Ｓ１２１）。具体的には、観測信号χt（1≦t≦T）を重なりのないK個のブロックへ分割して、k番目のブロックの観測信号である分割観測信号xk（1≦k≦K）を得る。分割観測信号xkは、例えば、式(9)のようなL次元ベクトルとなる。例えば、L=256とすればよい。
【００７８】
周波数変換部１２２は、実数で定義された周波数変換を用いて、Ｓ１２１で生成した分割観測信号xk（1≦k≦K）から、観測信号周波数変換スペクトルXkC（1≦k≦K）を生成する（Ｓ１２２）。実数で定義された周波数変換としてMDCTを用いる場合、観測信号周波数変換スペクトルXkCは式(10)で定義される。また、MDCT行列C及び対角行列Wは、例えば、式(12)、式(13)を用いて定義される。
【００７９】
音響特徴量抽出部１２３は、Ｓ１２２で生成した観測信号周波数変換スペクトルXkC（1≦k≦K）から、音響特徴量ψk（1≦k≦K）を抽出する（Ｓ１２３）。MDCTを用いる場合、音響特徴量ψkは、例えば、次式で計算する。
【００８０】
【数１８】
2019090930.tif 000020
【００８１】
ここで、Mel[・]とAbs[・]は、それぞれ64次元のメル対数スペクトル分析と絶対値演算を表す。また、r=5程度とするとよい。
【００８２】
時間周波数マスク推定部１２４は、パラメータΘを用いたニューラルネットワークにより、Ｓ１２３で抽出した音響特徴量ψk（1≦k≦K）から、時間周波数マスク^GkC（1≦k≦K）を推定する（Ｓ１２４）。MDCTを用いる場合、時間周波数マスク^GkCは式(17)で計算される。式(17)の回帰関数M(ψk|Θ)は、例えば、隠れ層2層、512セルのLSTMにより定義するとよい。また、最初に回帰関数M(ψk|Θ)の値（最初に生成される時間周波数マスク^GkC）を計算するときは、事前に与えてあるパラメータΘの初期値を用いる。その後は、後述するＳ１４０で更新されたパラメータΘを用いて回帰関数M(ψk|Θ)の値を計算する。
【００８３】
時間周波数マスク処理部１２５は、Ｓ１２４で推定した時間周波数マスク^GkC（1≦k≦K）とＳ１２２で生成した観測信号周波数変換スペクトルXkC（1≦k≦K）から、出力音周波数変換スペクトル^SkC（1≦k≦K）を生成する（Ｓ１２５）。MDCTを用いる場合、出力音周波数変換スペクトル^SkCは式(18)で計算される。
【００８４】
逆周波数変換部１２６は、実数で定義された逆周波数変換を用いて、Ｓ１２５で生成した出力音周波数変換スペクトル^SkC（1≦k≦K）から、歪み分割出力音^skC（1≦k≦K）を生成する（Ｓ１２６）。MDCTを用いる場合、実数で定義された逆周波数変換として、逆MDCTを用いることになり、歪み分割出力音^skCは次式で定義される（式(11)参照）。
【００８５】
【数１９】
2019090930.tif 000021
【００８６】
重畳加算部１２７は、Ｓ１２６で生成した歪み分割出力音^skC（1≦k≦K）から、重畳加算により、分割出力音^sk（1≦k≦K）を生成する（Ｓ１２７）。MDCTを用いる場合、分割出力音^skは次式で定義される（式(14)参照）。
【００８７】
【数２０】
2019090930.tif 000022
【００８８】
上記説明では、実数で定義された周波数変換／逆周波数変換としてMDCT／逆MDCTを例に用いてＳ１２２〜Ｓ１２７までの処理を説明したが、これらの処理をまとめると式(19)になる。
【００８９】
目的関数計算部１３０は、Ｓ１２０で生成した分割出力音^sk（1≦k≦K）とＳ１１０の入力である目的音学習データσt（1≦t≦T）から、出力音の推定誤差を示す目的関数T(Θ)の値を計算する（Ｓ１３０）。具体的には、まず、目的音学習データσt（1≦t≦T）を重なりのないK個（ただし、Kは1以上の整数）のブロックへ分割して、k番目のブロックの目的音である分割目的音sk（1≦k≦K）を得る。次に、分割出力音^sk（1≦k≦K）と分割目的音sk（1≦k≦K）を用いて、出力音の推定誤差を示す目的関数T(Θ)の値を計算する。目的関数T(Θ)は、時間領域で定義された関数であればどのようなものでもよい。例えば、式(20)のように絶対誤差を用いて目的関数T(Θ)を定義してもよい。また、重み付き二乗誤差を用いて定義してもよい。
【００９０】
パラメータ更新部１４０は、Ｓ１３０の目的関数T(Θ)の値を最適化するようにパラメータΘを更新する（Ｓ１４０）。パラメータΘの更新には、勾配法を用いるとよい。なお、勾配法には、確率的勾配法、誤差逆伝播法など任意のものを用いることができる。また、勾配法のステップサイズは、10-4程度に設定すればよい。
【００９１】
収束条件判定部１５０は、パラメータ更新の終了条件として事前に設定された収束条件を判定し、収束条件が満たされた場合はＳ１４０で生成したパラメータΘを出力し、収束条件が満たされない場合はＳ１１０〜Ｓ１４０の処理を繰り返す（Ｓ１５０）。収束条件として、例えばＳ１１０〜Ｓ１４０の処理の実行回数が所定の回数に達したかという条件を採用することができる。この場合、所定の回数を10万回程度に設定することができる。
【００９２】
本実施形態の発明によれば、実数で定義された周波数変換を利用した深層学習によりパラメータの学習を簡易化することができる。また、時間領域で定義された目的関数を用いることにより、すべての信号処理の影響を考慮して、パラメータの学習を行うことができる。
【００９３】
（変形例）
以上の説明では、実数で定義された周波数変換としてMDCTを用いて説明したが、前述の通り、DCTやDSTなどの別の周波数変換を利用してもよい。MDCTのようなlapped transformを利用しない場合、行列Cは2L×2Lの行列となるため、回帰関数の出力となる時間周波数マスクの個数は増加してしまうものの、式(19)のようなend-to-end型の学習アルゴリズムとして構成することはできる。
【００９４】
（変形例２）
以上の説明では、音響特徴量を入力する回帰関数を用いた音源強調処理について説明したが、音響特徴量の代わりに、周波数変換スペクトルを用いてもよい。
【００９５】
以下、図５〜図６を参照して音源強調処理部２２０について説明する。図５は、音源強調処理部２２０の構成を示すブロック図である。図６は、音源強調処理部２２０の動作を示すフローチャートである。図５に示すように音源強調処理部２２０は、観測信号分割部１２１と、周波数変換部１２２と、時間周波数マスク推定部２２４と、時間周波数マスク処理部１２５と、逆周波数変換部１２６と、重畳加算部１２７を含む。つまり、音源強調処理部２２０は、音響特徴量抽出部１２３と時間周波数マスク推定部１２４の代わりに時間周波数マスク推定部２２４を含む点において音源強調処理部１２０と異なる。
【００９６】
時間周波数マスク推定部２２４の動作についてのみ説明する。時間周波数マスク推定部２２４は、パラメータΘを用いたニューラルネットワークにより、Ｓ１２２で生成した観測信号周波数変換スペクトルXkC（1≦k≦K）から、時間周波数マスク^GkC（1≦k≦K）を推定する（Ｓ２２４）。回帰関数M(XkC|Θ)は、観測信号周波数変換スペクトルXkCを入力とし、時間周波数マスク^GkCを出力とする関数となる。
【００９７】
以上説明した音源強調処理部２２０を音源強調処理部１２０の代わりに用いて音源強調学習装置を構成することができる。
【００９８】
＜第二実施形態＞
ここでは、第一実施形態の音源強調学習装置１００が生成したパラメータを用いて音源強調を行う音源強調装置３００について説明する。
【００９９】
以下、図７〜図８を参照して音源強調装置３００を説明する。図７は、音源強調装置３００の構成を示すブロック図である。図８は、音源強調装置３００の動作を示すフローチャートである。図７に示すように音源強調装置３００は、音源強調処理部１２０と、分割出力音統合部３１０と、記録部３９０を含む。記録部３９０は、音源強調装置３００の処理に必要な情報を適宜記録する構成部である。例えば、音源強調学習装置１００が生成したパラメータΘを記録しておく。
【０１００】
なお、音源強調処理部１２０の代わりに音源強調処理部２２０を用いて音源強調装置を構成してもよい。
【０１０１】
音源強調装置３００には、観測信号χt（1≦t≦T）が入力される。この観測信号χt（1≦t≦T）は、例えば、マイクロホンを用いて事前に収音した信号である。
【０１０２】
図８に従い音源強調装置３００の動作について説明する。音源強調処理部１２０は、パラメータΘを用いて、音源強調装置３００の入力である観測信号χt（1≦t≦T）から、分割出力音^sk（1≦k≦K）を推定する（Ｓ１２０）。分割出力音^sk（1≦k≦K）は、分割観測信号xk（1≦k≦K）に含まれる目的音を強調した信号である。Ｓ１２０の処理の詳細は、第一実施形態で説明した通りである（図３、４参照）。
【０１０３】
分割出力音統合部３１０は、Ｓ１２０で推定した分割出力音^sk（1≦k≦K）から、観測信号χt（1≦t≦T）に含まれる目的音を強調した出力音^σt（1≦t≦T）を生成する（Ｓ３１０）。統合処理は、Ｓ１２０で行った分割処理と反対の処理を行う。つまり、分割出力音^sk（1≦k≦K）を順に結合することにより、出力音^σt（1≦t≦T）を生成する。
【０１０４】
本実施形態の発明によれば、実数で定義された周波数変換を利用した深層学習により推定した時間周波数マスクを用いて、音源強調が可能となる。
【０１０５】
＜第三実施形態＞
入力された観測信号χt（1≦t≦T）をブロックに分割して処理するのでなく、そのまま処理することもできる。以下、そのような構成である音源強調装置４００について説明する。
【０１０６】
以下、図９〜図１０を参照して音源強調装置４００を説明する。図９は、音源強調装置４００の構成を示すブロック図である。図１０は、音源強調装置４００の動作を示すフローチャートである。図９に示すように音源強調装置４００は、周波数変換部１２２と、音響特徴量抽出部１２３と、時間周波数マスク推定部１２４と、時間周波数マスク処理部１２５と、逆周波数変換部１２６と、重畳加算部１２７と、記録部４９０を含む。記録部４９０は、音源強調装置４００の処理に必要な情報を適宜記録する構成部である。例えば、時間周波数マスクの推定に用いるニューラルネットワークのパラメータΘを記録しておく。このパラメータΘは、実数で定義された周波数変換を利用した深層学習により学習されたものである。
【０１０７】
音源強調装置４００には、観測信号χt（1≦t≦T）が入力される。この観測信号χt（1≦t≦T）は、例えば、マイクロホンを用いて事前に収音した信号である。そして、音源強調装置４００は、ニューラルネットワークのパラメータΘを用いて、観測信号χt（1≦t≦T）に含まれる目的音を強調した出力音^σt（1≦t≦T）を推定し、出力する。
【０１０８】
図１０に従い音源強調装置４００の動作について説明する。周波数変換部１２２は、実数で定義された周波数変換を用いて、観測信号χt（1≦t≦T）から、観測信号周波数変換スペクトルXtC（1≦t≦T）を生成する（Ｓ１２２）。実数で定義された周波数変換としてMDCTを用いることができる。
【０１０９】
音響特徴量抽出部１２３は、Ｓ１２２で生成した観測信号周波数変換スペクトルXtC（1≦t≦T）から、音響特徴量ψt（1≦t≦T）を抽出する（Ｓ１２３）。
【０１１０】
時間周波数マスク推定部１２４は、パラメータΘを用いたニューラルネットワークにより、Ｓ１２３で抽出した音響特徴量ψt（1≦t≦T）から、時間周波数マスク^GtC（1≦t≦T）を推定する（Ｓ１２４）。
【０１１１】
時間周波数マスク処理部１２５は、Ｓ１２４で推定した時間周波数マスク^GtC（1≦t≦T）とＳ１２２で生成した観測信号周波数変換スペクトルXtC（1≦t≦T）から、出力音周波数変換スペクトル^StC（1≦t≦T）を生成する（Ｓ１２５）。
【０１１２】
逆周波数変換部１２６は、実数で定義された逆周波数変換を用いて、Ｓ１２５で生成した出力音周波数変換スペクトル^StC（1≦t≦T）から、歪み出力音^stC（1≦t≦T）を生成する（Ｓ１２６）。MDCTを用いる場合、実数で定義された逆周波数変換として、逆MDCTを用いることになる。
【０１１３】
重畳加算部１２７は、Ｓ１２６で生成した歪み出力音^stC（1≦t≦T）から、出力音^σt（1≦t≦T）を生成する（Ｓ１２７）。
【０１１４】
本実施形態の発明によれば、実数で定義された周波数変換を利用した深層学習により推定した時間周波数マスクを用いて、音源強調が可能となる。
【０１１５】
＜補記＞
本発明の装置は、例えば単一のハードウェアエンティティとして、キーボードなどが接続可能な入力部、液晶ディスプレイなどが接続可能な出力部、ハードウェアエンティティの外部に通信可能な通信装置（例えば通信ケーブル）が接続可能な通信部、ＣＰＵ（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）型のサービスによって、上述の処理を実行する構成としてもよい。なお、本形態におけるプログラムには、電子計算機による処理の用に供する情報であってプログラムに準ずるもの（コンピュータに対する直接の指令ではないがコンピュータの処理を規定する性質を有するデータ等）を含むものとする。
【０１２３】
また、この形態では、コンピュータ上で所定のプログラムを実行させることにより、ハードウェアエンティティを構成することとしたが、これらの処理内容の少なくとも一部をハードウェア的に実現することとしてもよい。
【図１】
2019090930.tif 000026
【図２】
2019090930.tif 000027
【図３】
2019090930.tif 000028
【図４】
2019090930.tif 000029
【図５】
2019090930.tif 000030
【図６】
2019090930.tif 000031
【図７】
2019090930.tif 000032
【図８】
2019090930.tif 000033
【図９】
2019090930.tif 000034
【図１０】
2019090930.tif 000035