特開2020-30373(P2020-30373A)IP Force 特許公報掲載プロジェクト 2022.1.31 β版

知財求人 - 知財ポータルサイト「IP Force」

▶ 日本電信電話株式会社の特許一覧 ▶ 国立大学法人電気通信大学の特許一覧

特開2020-30373音源強調装置、音源強調学習装置、音源強調方法、プログラム
<>
  • 特開2020030373-音源強調装置、音源強調学習装置、音源強調方法、プログラム 図000045
  • 特開2020030373-音源強調装置、音源強調学習装置、音源強調方法、プログラム 図000046
  • 特開2020030373-音源強調装置、音源強調学習装置、音源強調方法、プログラム 図000047
  • 特開2020030373-音源強調装置、音源強調学習装置、音源強調方法、プログラム 図000048
  • 特開2020030373-音源強調装置、音源強調学習装置、音源強調方法、プログラム 図000049
  • 特開2020030373-音源強調装置、音源強調学習装置、音源強調方法、プログラム 図000050
  • 特開2020030373-音源強調装置、音源強調学習装置、音源強調方法、プログラム 図000051
  • 特開2020030373-音源強調装置、音源強調学習装置、音源強調方法、プログラム 図000052
  • 特開2020030373-音源強調装置、音源強調学習装置、音源強調方法、プログラム 図000053
  • 特開2020030373-音源強調装置、音源強調学習装置、音源強調方法、プログラム 図000054
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公開特許公報(A)
(11)【公開番号】特開2020-30373(P2020-30373A)
(43)【公開日】2020年2月27日
(54)【発明の名称】音源強調装置、音源強調学習装置、音源強調方法、プログラム
(51)【国際特許分類】
   G10L 21/0208 20130101AFI20200131BHJP
   G10L 21/0232 20130101ALI20200131BHJP
【FI】
   G10L21/0208 100B
   G10L21/0232
【審査請求】未請求
【請求項の数】7
【出願形態】OL
【全頁数】26
(21)【出願番号】特願2018-157085(P2018-157085)
(22)【出願日】2018年8月24日
(71)【出願人】
【識別番号】000004226
【氏名又は名称】日本電信電話株式会社
(71)【出願人】
【識別番号】504133110
【氏名又は名称】国立大学法人電気通信大学
(74)【代理人】
【識別番号】100121706
【弁理士】
【氏名又は名称】中尾 直樹
(74)【代理人】
【識別番号】100128705
【弁理士】
【氏名又は名称】中村 幸雄
(74)【代理人】
【識別番号】100147773
【弁理士】
【氏名又は名称】義村 宗洋
(72)【発明者】
【氏名】小泉 悠馬
(72)【発明者】
【氏名】原田 登
(72)【発明者】
【氏名】羽田 陽一
(57)【要約】
【課題】深層学習に基づく、分析長が異なる実数周波数変換を利用した音源強調技術を提供する。
【解決手段】xtをt番目のブロックの観測信号、φtを観測信号xtから抽出して得られるt番目のブロックの音響特徴量とし、音響特徴量φtから、t番目のブロックがアタックであるか否かの判定結果を示すベクトルであるアタック判定ベクトルatを生成するアタック判定ベクトル生成部と、アタック判定ベクトルatから、窓関数ベクトルztを生成する窓関数ベクトル生成部と、第j窓関数に対応する計算ユニットを用いて、観測信号xtと音響特徴量φtから、第j出力音s^j,tCを生成する第j出力音生成部と、第j出力音s^j,tCと窓関数ベクトルztから、観測信号xtに含まれる目的音を強調した出力音s^tを生成する出力音生成部とを含む。
【選択図】図5
【特許請求の範囲】
【請求項1】
Tを2以上の整数、Llongを1以上の整数、xt(1≦t≦T)を時間領域の観測信号を重なりのないT個の、長さLlong/2のブロックへ分割して得られるt番目のブロックの観測信号、φt(1≦t≦T)を前記観測信号xtから抽出して得られるt番目のブロックの音響特徴量とし、
前記音響特徴量φt(1≦t≦T)から、t番目のブロックがアタックであるか否かの判定結果を示すベクトルであるアタック判定ベクトルat(1≦t≦T)を生成するアタック判定ベクトル生成部と、
前記アタック判定ベクトルat(1≦t≦T)から、窓関数ベクトルzt(1≦t≦T)を生成する窓関数ベクトル生成部と、
j=1, …, J(Jを1以上の整数)とし、
第j窓関数に対応する計算ユニットを用いて、前記観測信号xt(1≦t≦T)と前記音響特徴量φt(1≦t≦T)から、第j出力音s^j,tC(1≦t≦T)を生成する第j出力音生成部と、
前記第j出力音s^j,tC(1≦t≦T)(j=1, …, J)と前記窓関数ベクトルzt(1≦t≦T)から、前記観測信号xt(1≦t≦T)に含まれる目的音を強調した出力音s^t(1≦t≦T)を生成する出力音生成部と
を含む音源強調装置。
【請求項2】
請求項1に記載の音源強調装置であって、
前記アタック判定ベクトル生成部は、ニューラルネットワークMAを用いて、前記アタック判定ベクトルat(1≦t≦T)を生成し、
J=4とし、
前記第j窓関数に対応する計算ユニットは、第j窓関数に対応するニューラルネットワークMjであり、
前記第j出力音生成部は、
実数で定義された周波数変換を用いて、前記観測信号xt(1≦t≦T)から、第j観測信号周波数変換スペクトルXj,tC(1≦t≦T)を生成する第j周波数変換部と、
前記ニューラルネットワークMjを用いて、前記音響特徴量φt(1≦t≦T)から、第j時間周波数マスクG^j,tC(1≦t≦T)を推定する第j時間周波数マスク推定部と、
前記第j時間周波数マスクG^j,tC(1≦t≦T)と前記第j観測信号周波数変換スペクトルXj,tC(1≦t≦T)から、第j出力音周波数変換スペクトルS^j,tC(1≦t≦T)を生成する第j時間周波数マスク処理部と、
実数で定義された逆周波数変換を用いて、前記第j出力音周波数変換スペクトルS^j,tC(1≦t≦T)から、前記第j出力音s^j,tC(1≦t≦T)を生成する第j逆周波数変換部とを含む
ことを特徴とする音源強調装置。
【請求項3】
請求項2に記載の音源強調装置であって、
LshortをLshort=Llong/2m(mは1以上の整数)を満たす1以上の整数とし、
前記実数で定義された周波数変換及び前記実数で定義された逆周波数変換は、第j窓関数に対応する分析行列Aj(以下、第j分析行列という)により定義されるものであり、
前記第j観測信号周波数変換スペクトルXj,kCは、次式により計算され、
【数37】

(ただし、第j分析行列Ajは、それぞれ次式で定義される。
【数38】

ここで、ClongとCshortはそれぞれ分析長がLlongであるMDCT行列と分析長がLshortであるMDCT行列、wlとwsはそれぞれ第1窓関数のためのLlong次元サイン窓ベクトルと第3窓関数のためのLshort次元サイン窓ベクトル、wl1st=(wl0, …, wl(L_long)/2-1)T, wl2nd=(wl(L_long)/2, …, wl(L_long)-1)T, ws1st=(ws0, …, ws(L_short)/2-1)T, ws2nd=(ws(L_short)/2, …, ws(L_short)-1)T, 1L_long/4-L_short/4と0L_long/4-L_short/4はそれぞれ要素が1であるLlong/4-Lshort/4次元ベクトルと要素が0であるLlong/4-Lshort/4次元ベクトル、IC(n)とIR(n) (n∈{0, 1, …, Llong/Lshort-1})はそれぞれ次式で表される行列のインデックスである。
【数39】


前記第j出力音s^j,tCは、次式により計算される
【数40】

ことを特徴とする音源強調装置。
【請求項4】
請求項1に記載の音源強調装置であって、
at=(a1,t, a2,t)T, zt=(z1,t, z2,t, z3,t, z4,t)Tとし、
前記窓関数ベクトルztは、次式により計算される
【数41】

(ただし、Qi,k,jは次式で定義される状態遷移行列である。
【数42】


ことを特徴とする音源強調装置。
【請求項5】
Tを2以上の整数、Llongを1以上の整数、xt(1≦t≦T)を時間領域の観測信号を重なりのないT個の、長さLlong/2のブロックへ分割して得られるt番目のブロックの観測信号、st(1≦t≦T)を前記時間領域の観測信号に含まれる目的音を重なりのないT個の、長さLlong/2のブロックへ分割して得られるt番目のブロックの目的音、φt(1≦t≦T)を前記観測信号xtから抽出して得られるt番目のブロックの音響特徴量とし、
ニューラルネットワークMAを用いて、前記音響特徴量φt(1≦t≦T)から、t番目のブロックがアタックであるか否かの判定結果を示すベクトルであるアタック判定ベクトルat(1≦t≦T)を生成するアタック判定ベクトル生成部と、
前記アタック判定ベクトルat(1≦t≦T)から、窓関数ベクトルzt(1≦t≦T)を生成する窓関数ベクトル生成部と、
窓関数ロング(以下、第1窓関数という)に対応するニューラルネットワークM1を用いて、前記観測信号xt(1≦t≦T)と前記音響特徴量φt(1≦t≦T)から、第1出力音s^1,tC(1≦t≦T)を生成する第1出力音生成部と、
窓関数スタート(以下、第2窓関数という)に対応するニューラルネットワークM2を用いて、前記観測信号xt(1≦t≦T)と前記音響特徴量φt(1≦t≦T)から、第2出力音s^2,tC(1≦t≦T)を生成する第2出力音生成部と、
窓関数ショート(以下、第3窓関数という)に対応するニューラルネットワークM3を用いて、前記観測信号xt(1≦t≦T)と前記音響特徴量φt(1≦t≦T)から、第3出力音s^3,tC(1≦t≦T)を生成する第3出力音生成部と、
窓関数ストップ(以下、第4窓関数という)に対応するニューラルネットワークM4を用いて、前記観測信号xt(1≦t≦T)と前記音響特徴量φt(1≦t≦T)から、第4出力音s^4,tC(1≦t≦T)を生成する第4出力音生成部と、
前記第1出力音s^1,tC(1≦t≦T)と前記第2出力音s^2,tC(1≦t≦T)と前記第3出力音s^3,tC(1≦t≦T)と前記第4出力音s^4,tC(1≦t≦T)と前記窓関数ベクトルzt(1≦t≦T)から、前記観測信号xt(1≦t≦T)に含まれる目的音を強調した出力音s^t(1≦t≦T)を生成する出力音生成部と、
前記出力音s^t(1≦t≦T)と前記目的音st(1≦t≦T)から、出力音の推定誤差を示す目的関数T(ΘA, Θ1, Θ2, Θ3, Θ4)(ただし、ΘA, Θ1, Θ2, Θ3, Θ4はそれぞれ前記ニューラルネットワークMA, M1, M2, M3, M4のパラメータである)の値を計算する目的関数計算部と、
前記目的関数T(ΘA, Θ1, Θ2, Θ3, Θ4)の値を最適化するように前記パラメータΘA, Θ1, Θ2, Θ3, Θ4を更新するパラメータ更新部と、
所定の収束条件が満たされた場合に前記パラメータΘA, Θ1, Θ2, Θ3, Θ4を出力する収束判定部と
を含む音源強調学習装置であって、
前記目的関数T(ΘA, Θ1, Θ2, Θ3, Θ4)は、ブロック単位での出力音の推定誤差E(st, s^t)を用いて定義される関数である
音源強調学習装置。
【請求項6】
Tを2以上の整数、Llongを1以上の整数、xt(1≦t≦T)を時間領域の観測信号を重なりのないT個の、長さLlong/2のブロックへ分割して得られるt番目のブロックの観測信号、φt(1≦t≦T)を前記観測信号xtから抽出して得られるt番目のブロックの音響特徴量とし、
音源強調装置が、前記音響特徴量φt(1≦t≦T)から、t番目のブロックがアタックであるか否かの判定結果を示すベクトルであるアタック判定ベクトルat(1≦t≦T)を生成するアタック判定ベクトル生成ステップと、
前記音源強調装置が、前記アタック判定ベクトルat(1≦t≦T)から、窓関数ベクトルzt(1≦t≦T)を生成する窓関数ベクトル生成ステップと、
j=1, …, J(Jを1以上の整数)とし、
前記音源強調装置が、第j窓関数に対応する計算ユニットを用いて、前記観測信号xt(1≦t≦T)と前記音響特徴量φt(1≦t≦T)から、第j出力音s^j,tC(1≦t≦T)を生成する第j出力音生成ステップと、
前記音源強調装置が、前記第j出力音s^j,tC(1≦t≦T)(j=1, …, J)と前記窓関数ベクトルzt(1≦t≦T)から、前記観測信号xt(1≦t≦T)に含まれる目的音を強調した出力音s^t(1≦t≦T)を生成する出力音生成ステップと
を含む音源強調方法。
【請求項7】
請求項1ないし4のいずれか1項に記載の音源強調装置または請求項5に記載の音源強調学習装置としてコンピュータを機能させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、マイクロホンなどを用いて雑音下で収音した音響信号から、所望の目的音だけを強調し、他の雑音を抑圧する音源強調技術に関する。
【背景技術】
【0002】
深層学習(DL: deep learning)を利用した音源強調(以下、DL音源強調という)として、離散フーリエ変換(DFT: discrete Fourier transform)領域の実数の時間周波数マスクを深層ニューラルネットワーク(DNN: deep neural network)で推定する方法がある。このDFT領域のDL音源強調の問題点は、(1)実数の時間周波数マスクでは、位相スペクトルを制御できないため、観測信号から目的音を完全再構成することが理論的に不可能である点と、(2)時間周波数スペクトル分析の時間周波数分解能のトレードオフが解決できない点である。
【0003】
(2)の問題について、詳しく説明する。周波数分析長(例えば、DFTの点数)が長いほど周波数分解能が上がるため、母音のような調波構造を持つ音については解析をしやすい。一方、周波数分析長が短いほど時間分解能が上がるため、子音のような時間変化が速い音については解析をしやすい。これらはトレードオフの関係にある。したがって、母音と子音の解析精度を両方とも上げるには、例えば、各時刻ごとに母音か子音かを判定して、適切な周波数分析長を選択するとよい。しかし、DFT領域のDL音源強調では、動的に周波数分析長を変化させることができないため、このトレードオフを解決することができない。
【0004】
また、別のDL音源強調として、非特許文献1に記載があるような、修正離散コサイン変換(MDCT: modified discrete cosine transform)領域の実数の時間周波数マスクを深層ニューラルネットワークで推定する方法がある。このMDCT領域のDL音源強調は、(1)の問題については解決することができる。
【先行技術文献】
【非特許文献】
【0005】
【非特許文献1】Y. Koizumi, N. Harada, Y. Haneda, Y. Hioka, K. Kobayashi, “End-to-End Sound Source Enhancement Using Deep Neural Network in the Modified Discrete Cosine Transform Domain”, in Proc. ICASSP 2018, pp.706-710, 2018.
【発明の概要】
【発明が解決しようとする課題】
【0006】
しかし、非特許文献1に記載のMDCT領域のDL音源強調でも、(2)の問題については解決することができない。
【0007】
そこで本発明では、深層学習に基づく、分析長が異なる実数周波数変換を利用した音源強調技術を提供することを目的とする。
【課題を解決するための手段】
【0008】
本発明の一態様は、Tを2以上の整数、Llongを1以上の整数、xt(1≦t≦T)を時間領域の観測信号を重なりのないT個の、長さLlong/2のブロックへ分割して得られるt番目のブロックの観測信号、φt(1≦t≦T)を前記観測信号xtから抽出して得られるt番目のブロックの音響特徴量とし、前記音響特徴量φt(1≦t≦T)から、t番目のブロックがアタックであるか否かの判定結果を示すベクトルであるアタック判定ベクトルat(1≦t≦T)を生成するアタック判定ベクトル生成部と、前記アタック判定ベクトルat(1≦t≦T)から、窓関数ベクトルzt(1≦t≦T)を生成する窓関数ベクトル生成部と、j=1, …, J(Jを1以上の整数)とし、第j窓関数に対応する計算ユニットを用いて、前記観測信号xt(1≦t≦T)と前記音響特徴量φt(1≦t≦T)から、第j出力音s^j,tC(1≦t≦T)を生成する第j出力音生成部と、前記第j出力音s^j,tC(1≦t≦T)(j=1, …, J)と前記窓関数ベクトルzt(1≦t≦T)から、前記観測信号xt(1≦t≦T)に含まれる目的音を強調した出力音s^t(1≦t≦T)を生成する出力音生成部とを含む。
【0009】
本発明の一態様は、Tを2以上の整数、Llongを1以上の整数、xt(1≦t≦T)を時間領域の観測信号を重なりのないT個の、長さLlong/2のブロックへ分割して得られるt番目のブロックの観測信号、st(1≦t≦T)を前記時間領域の観測信号に含まれる目的音を重なりのないT個の、長さLlong/2のブロックへ分割して得られるt番目のブロックの目的音、φt(1≦t≦T)を前記観測信号xtから抽出して得られるt番目のブロックの音響特徴量とし、ニューラルネットワークMAを用いて、前記音響特徴量φt(1≦t≦T)から、t番目のブロックがアタックであるか否かの判定結果を示すベクトルであるアタック判定ベクトルat(1≦t≦T)を生成するアタック判定ベクトル生成部と、前記アタック判定ベクトルat(1≦t≦T)から、窓関数ベクトルzt(1≦t≦T)を生成する窓関数ベクトル生成部と、窓関数ロング(以下、第1窓関数という)に対応するニューラルネットワークM1を用いて、前記観測信号xt(1≦t≦T)と前記音響特徴量φt(1≦t≦T)から、第1出力音s^1,tC(1≦t≦T)を生成する第1出力音生成部と、窓関数スタート(以下、第2窓関数という)に対応するニューラルネットワークM2を用いて、前記観測信号xt(1≦t≦T)と前記音響特徴量φt(1≦t≦T)から、第2出力音s^2,tC(1≦t≦T)を生成する第2出力音生成部と、窓関数ショート(以下、第3窓関数という)に対応するニューラルネットワークM3を用いて、前記観測信号xt(1≦t≦T)と前記音響特徴量φt(1≦t≦T)から、第3出力音s^3,tC(1≦t≦T)を生成する第3出力音生成部と、窓関数ストップ(以下、第4窓関数という)に対応するニューラルネットワークM4を用いて、前記観測信号xt(1≦t≦T)と前記音響特徴量φt(1≦t≦T)から、第4出力音s^4,tC(1≦t≦T)を生成する第4出力音生成部と、前記第1出力音s^1,tC(1≦t≦T)と前記第2出力音s^2,tC(1≦t≦T)と前記第3出力音s^3,tC(1≦t≦T)と前記第4出力音s^4,tC(1≦t≦T)と前記窓関数ベクトルzt(1≦t≦T)から、前記観測信号xt(1≦t≦T)に含まれる目的音を強調した出力音s^t(1≦t≦T)を生成する出力音生成部と、前記出力音s^t(1≦t≦T)と前記目的音st(1≦t≦T)から、出力音の推定誤差を示す目的関数T(ΘA, Θ1, Θ2, Θ3, Θ4)(ただし、ΘA, Θ1, Θ2, Θ3, Θ4はそれぞれ前記ニューラルネットワークMA, M1, M2, M3, M4のパラメータである)の値を計算する目的関数計算部と、前記目的関数T(ΘA, Θ1, Θ2, Θ3, Θ4)の値を最適化するように前記パラメータΘA, Θ1, Θ2, Θ3, Θ4を更新するパラメータ更新部と、所定の収束条件が満たされた場合に前記パラメータΘA, Θ1, Θ2, Θ3, Θ4を出力する収束判定部とを含み、前記目的関数T(ΘA, Θ1, Θ2, Θ3, Θ4)は、ブロック単位での出力音の推定誤差E(st, s^t)を用いて定義される関数である。
【発明の効果】
【0010】
本発明によれば、深層学習により、分析長が異なる実数周波数変換を利用して推定した時間周波数マスクを用いて、音源強調が可能となる。
【図面の簡単な説明】
【0011】
図1】窓関数切り替えの状態遷移の様子を示す図。
図2】本願の音源強調処理の過程を示す図。
図3】音源強調学習装置100の構成の一例を示すブロック図。
図4】音源強調学習装置100の動作の一例を示すフローチャート。
図5】音源強調処理部120の構成の一例を示すブロック図。
図6】音源強調処理部120の動作の一例を示すフローチャート。
図7】第j出力音生成部126jの構成の一例を示すブロック図。
図8】第j出力音生成部126jの動作の一例を示すフローチャート。
図9】音源強調装置200の構成の一例を示すブロック図。
図10】音源強調装置200の動作の一例を示すフローチャート。
【発明を実施するための形態】
【0012】
以下、本発明の実施の形態について、詳細に説明する。なお、同じ機能を有する構成部には同じ番号を付し、重複説明を省略する。
【0013】
<記法>
_(アンダースコア)は下付き添字を表す。例えば、xy_zはyzがxに対する上付き添字であり、xy_zはyzがxに対する下付き添字であることを表す。
【0014】
<技術的背景>
MDCTには、動的に分析長を変化させることができるウィンドウスイッチング(window switching)という特性がある。本発明の実施形態は、この特性を利用する。具体的には、ウィンドウスイッチングにおける分析長を変化させるか否かの判定を行うDNNを構成し、このDNNと長い分析長に対応する時間周波数マスクを推定するDNNと短い分析長に対応する時間周波数マスクを推定するDNNを用いてMDCT領域のDL音源強調技術を構成する。
【0015】
《問題設定》
時間領域において、目的音をσk、雑音をνkとおき、観測信号χkを以下のように表現する。
【0016】
【数1】
【0017】
ここで、k∈{1, 2, …, K}は時間のインデックスである。
【0018】
そして、観測信号χk(1≦k≦K)を、ある時間長で重なりのあるT個(ただし、Tは2以上の整数)の時間フレームに分割し、それをDFTすることにより、式(1)を以下のように変形する。
【0019】
【数2】
【0020】
ここで、Xt,f、St,f、Nt,fは、それぞれ観測信号のDFTスペクトル、目的音のDFTスペクトル、雑音のDFTスペクトルである。また、f∈{1, 2, …, F}とt∈{1, 2, …, T}は、それぞれ時間周波数領域における、周波数のインデックスと時間のインデックスである。
【0021】
DFT領域における時間周波数マスクによる音源強調では、以下の式で出力音のDFTスペクトルS^t,fを得る。
【0022】
【数3】
【0023】
ここで、Gt,fは、例えばウィーナー(Wiener)フィルタなどで実装される時間周波数マスクである。
【0024】
ここで得られた出力音のDFTスペクトルS^t,fを逆DFTした信号を重畳加算することにより、時間領域の出力音を得る。
【0025】
《DFT領域のDL音源強調》
DL音源強調では、時間フレームtの時間周波数マスクを縦に並べたベクトルGt:=(Gt,1, …, Gt,F)T(ただし、右肩のTは転置を表す)を以下のように推定する。
【0026】
【数4】
【0027】
ここで、G^tはGtを推定したベクトルを表す。また、Mはニューラルネットワークを利用した回帰関数、φtは観測信号χk(1≦k≦K)から抽出したtフレーム目の音響特徴量、ΘはニューラルネットワークM(回帰関数Mを計算するニューラルネットワーク)のパラメータである。なお、ウィーナーフィルタのように時間周波数マスクGt,fの値域を0≦Gt,f≦1に制限する場合、ニューラルネットワークMの出力層にはシグモイド(sigmoid)活性化関数を利用することが多い(参考非特許文献1)。
(参考非特許文献1:H. Erdogan, J. R. Hershey, S. Watanabe, J. L. Roux, “Phase-sensitive and recognition-boosted speech separation using deep recurrent neural networks”, in Proc. ICASSP 2015, 2015.)
【0028】
そして、パラメータΘは、例えば以下の目的関数τ(Θ)を最小化するように、誤差逆伝搬法を利用した勾配法で学習することができる。
【0029】
【数5】
【0030】
ここで、St:=(St,1, …, St,F)T、Xt:=(Xt,1, …, Xt,F)T、Ttrnは学習データの総フレーム数である。また、||・||pはLpノルム(ここでは、p=2)、○はベクトルの要素積(アダマール積)を表す。
【0031】
ところで、DFTで得られる周波数スペクトルは複素数値であるため、観測信号から目的音を完全に復元するためには、観測信号の振幅スペクトルと位相スペクトルの両方を操作する必要がある。すなわち、目的音を完全に復元するには複素数の時間周波数マスクを利用しなくてはならない。にもかかわらず、一般的なDL音源強調では式(4)のように実数値の時間周波数マスクを推定することが多い。これは、一般的なニューラルネットワークでは、複素数を直接出力することができないことに起因する。
【0032】
以下、観測信号の振幅スペクトルと位相スペクトルの両方を操作することができる、実数の周波数変換(具体的にはMDCT)を利用する方法を非特許文献1に従い説明する。
【0033】
《MDCT領域のDL音源強調》
実数の周波数変換には、離散サイン変換など様々なものがあるが、ここでは、MDCTを利用した方法について説明する。
【0034】
まず、MDCTを行列形式で定義する。最初に、観測信号χk(1≦k≦K)を重なりのないT個(ただし、Tは2以上の整数)のブロックへ分割する。ここでt番目のブロックの観測信号xtは以下のように表現できる。
【0035】
【数6】
【0036】
ここで、LはMDCTの分析長である。なお、t番目のブロックの観測信号xtはL/2次元ベクトル(ただし、Lは1以上の整数)である。
【0037】
すると、MDCTと逆MDCT(IMDCT: inverse MDCT)はそれぞれ以下のように記述できる。
【0038】
【数7】
【0039】
ここで、XtC:=(Xt,1C, …, Xt,L/2C)Tであり、Xt,1C, …, Xt,L/2Cはそれぞれ観測信号のMDCTスペクトルである。また、A(=CW)は分析行列である。ただし、C∈RL/2×L(ただし、Rは実数の集合)は、MDCT行列であり、その(p, q)要素(1≦p≦L/2, 1≦q≦L)は以下のように記述できる。
【0040】
【数8】
【0041】
また、W∈RL×Lは、分析/合成窓を表す対角行列(以下、窓関数行列という)であり、ここではプリンセン−ブラッドレイ(Princen-Bradley)条件を満たす窓関数を利用する。例えば、以下のサイン(sin)窓が利用できる。
【0042】
【数9】
【0043】
ただし、Wq,qはWの(q, q)要素である。
【0044】
ここで、MDCT行列CはL/2×Lの行列であるため、逆行列は存在しない。ゆえに、逆MDCTの出力であるxt(C1)とxt(C2)には、時間歪み(time-domain aliasing)が含まれる。しかし、この歪みは、以下の重畳加算により除去することができる。
【0045】
【数10】
【0046】
この特性は時間歪み除去(TDAC: time-domain aliasing cancellation)と呼ばれる。以上の演算をまとめると、MDCTを利用した分析合成は以下の行列演算で記述できる。
【0047】
【数11】
【0048】
ただし、OOLA=[0L/2×L/2, IL/2×L/2, IL/2×L/2, 0L/2×L/2]は重畳加算行列であり、0L/2×L/2とIL/2×L/2はそれぞれL/2×L/2のゼロ行列とL/2×L/2の単位行列である。つまり、重畳加算行列OOLAは、L/2×2Lの行列である。
【0049】
ここでMDCTスペクトルは実数であるため、実数の時間周波数マスクを用いてMDCT領域の振幅と位相の両方を制御できる。つまり、実数の時間周波数マスクを用いて目的音を完全に復元することができる。今、MDCT領域における時間周波数マスクによる音源強調処理を以下のように定義する。
【0050】
【数12】
【0051】
ここで、Gt,qC(=St,qC/Xt,qC)はMDCT領域の時間周波数マスクである。
【0052】
そして、DFT領域のDL音源強調と同様に、時間フレームtの時間周波数マスクを縦に並べたベクトルGtC:=(Gt,1C, …, Gt,LC)T
【0053】
【数13】
【0054】
により推定し(ただし、φtはt番目のブロックの音響特徴量である)、時間周波数マスクを以下のように乗算することを考える。
【0055】
【数14】
【0056】
ここで、S^tC:=(S^t,1C, …, S^t,LC)Tである。
【0057】
すると、式(12)〜式(15)より、MDCT領域のDL音源強調は以下の行列演算で記述できる。
【0058】
【数15】
【0059】
ここで、出力音s^tは、M(φt|Θ)の出力を利用した線形演算で記述されているため、出力音s^tはパラメータΘで微分可能である。すなわち、出力音の推定精度(つまり、目的音と出力音の誤差)を定義する目的関数を時間領域で定義することで、パラメータΘを誤差逆伝搬法などの勾配法で学習することができる。目的関数T(Θ)には、例えば以下の絶対平均誤差を利用することができる。
【0060】
【数16】
【0061】
ここで、stはt番目のブロックの目的音であり、以下のように表される。
【0062】
【数17】
【0063】
なお、目的関数T(Θ)は、時間領域で定義される関数であればどのようなものでもよく、例えば、二乗誤差や重み付き二乗誤差を利用することができる。
【0064】
《本発明のアイディア》
本発明の実施形態は、MDCT領域のDL音源強調にウィンドウスイッチングを用いることに特徴がある。
【0065】
先述した通り、DFTやMDCTなどを用いた時間周波数スペクトル分析には、時間周波数分解能のトレードオフが存在する。周波数分析長が長いほど周波数分解能が上がるため、母音のような調波構造を持つ音については解析がしやすいが、音量が時間的に速く変化する子音については解析がしづらい。また、分析フレームの後半で音量が急激に上昇すると、分析合成後の信号の前半にプリエコーが生じるという問題もある。一方、周波数分析長が短いほど時間分解能が上がるため、子音のような時間変化が速い音については解析がしやすいが、母音などの周期的な音については解析がしづらい。これらはトレードオフの関係にあるため、母音と子音の解析精度を両方とも上げるためには、各時刻ごとに母音か子音かを判定して、適切な周波数分析長を選択する必要がある。
【0066】
この問題を解決するために、MDCTでは動的に分析長を変化させるウィンドウスイッチングという方法が開発されている(参考非特許文献2、参考非特許文献3)。この方法は、MPEG-1 Layer III (MP3)などの音声符号化で実際に利用されているものである(参考非特許文献3)。
(参考非特許文献2:T. Mochizuki, “Perfect Reconstruction Conditions for Adaptive Blocksize MDCT”, IEICE Trans. on Fund. of Elect., Comm. and Computer Sciences, Vol.E77-A, No.5, pp.894-899, 1994.)
(参考非特許文献3:V. Britanak, et al., “Cosine-/Sine- Modulated Filter Banks”, Springer, 2018.)
【0067】
従来の分析長の切り替えは、聴覚モデルに基づくルールによってアタック(Attack)判定(つまり、音量が大きく変化する部分の検出)をし、決定論的に窓を切り替えることにより、実現されている。そのため、信号の復元精度を直接最大化するようなアタック判定にはなっていない。本発明の実施形態では、信号の復元精度を直接最大化するようなアタック判定になるように分析長を変化させるか否かの判定を行うDNNと、音源強調性能を最大化するように長い分析長に対応する時間周波数マスクを推定するDNNと短い分析長に対応する時間周波数マスクを推定するDNNを同時に最適化する。以下、詳しく説明する。
【0068】
《ウィンドウスイッチング》
まず、ウィンドウスイッチングについて説明する。ウィンドウスイッチングは、完全再構成条件を保ちつつ時間周波数分解能のトレードフを解決するために開発された手法である。代表的な実装では、ロング(Long)、スタート(Start)、ショート(Short)、ストップ(Stop)の4種類の窓関数を利用する。ロング、ショートは、それぞれ長さがLlong、Lshortの窓関数であり(ただし、Llong>Lshort)、サイン窓などで実装される。母音などの周期的な音を解析するためにロングが利用され、子音などの時間的な変化が速い音を解析するためにショートが利用される。しかし、ロングを利用したフレームと隣接するフレームでショートを利用すると、その切り替え箇所でプリンセン−ブラッドレイ条件を満たさなくなるため、完全再構成条件を満足することができない(すなわち、切り替え箇所において2つの窓関数が滑らかにつながらない)。そこで、ロングからショートへの切り替えを滑らかにする窓関数(スタート)とショートからロングへの切り替えを滑らかにする窓関数(ストップ)を利用する。このため、窓関数の切り替えには完全な自由度があるわけではない。具体的には、図1に示す状態遷移により制約される。図1は4つの窓関数の切り替えの状態遷移を示すものである。MPEG-1 Layer III(MP3)における窓関数の切り替えでは、聴覚心理モデルに基づくアタック判定の結果に基づいて、図1に示す状態遷移ルールに従い決定論的に窓関数を切り替える。
【0069】
《本発明の実施形態における音源強調処理》
DL音源強調において、信号の性質に合わせて適応的にMDCTの分析長を変化させるために、ウィンドウスイッチングを導入することを考える。そのため、アタック判定を行い、目的音の復元精度を最大化するようなDNNを構成、つまり学習することを考える。しかし、このようなDNNの学習を実現するためには、以下の2つの問題を解決しなくてはならない。
【0070】
(1)フレームの同期問題
DL音源強調の多くでは、式(17)のように、時間フレームtごとに計算される出力音の推定精度を用いて定義される目的関数を利用してDNNの学習を行う。しかし、分析長が異なる窓を制約なく利用すると、ロングを利用した場合とショートを利用した場合で、フレームの同期がとれなくなり、その結果、目的関数が定義できなくなる。例えば、Llong=512、Lshort=128とした場合、ショートはLlong/Lshort=4の倍数回で利用しないと、Llongを利用した場合とフレーム同期をとることができなくなる。フレーム同期をとれない場合、式(17)のようなフレーム単位で定義された目的関数を用いて、アタック判定を行うDNNと時間周波数マスクを推定するDNNを同時に最適化することができなくなる。したがって、DL音源強調でウィンドウスイッチングを行うためには、窓関数の切り替えに対して制約を設けなくてはならない。
【0071】
(2)目的関数の微分可能性問題
DNNを学習するためには、目的関数をDNNのパラメータで微分可能な形で記述する必要がある。窓関数の切り替えは、アタック/非アタック(attack/non-attack)の二値判定結果をもとに、窓関数の決定論的な遷移で実現される(図1参照)。これを単純にプログラムとして実装する場合にはif分岐やswitch分岐を利用する必要があるが、プログラムによる決定論的な分岐は、DNNのパラメータで微分できない。したがって、アタック判定を行うDNNを学習するためには、これらの決定論的な分岐を、DNNのパラメータで微分可能な数式で記述する必要がある。
【0072】
上記2つの問題を解決するため、本発明の実施形態では以下の方法をとる。
(1)フレームの同期問題
プリンセン−ブラッドレイ条件を満たし、同期がとれるような窓関数に対応する分析行列を定義することにより解決する。
【0073】
(2)目的関数の微分可能性問題
アタック判定を行うDNNは、時間フレームtがアタックである確率を表す2次元ベクトルp(at)とし(式(28)参照)、ガンベル−ソフトマックス(Gumbel-softmax)を用いてベクトルp(at)から時間フレームtがアタックであるか否かを示す2次元ベクトルatを出力する(式(31)参照)。この出力ベクトルatから状態遷移行列Qi,k,j(式(35)参照)を用いて再帰的に時間フレームtの窓関数を選択し、各分析窓を利用して音源強調した結果の線形和として出力音s^tを求める(式(36)参照)。上記の演算は、決定論的な窓関数の切り替えとほぼ同等の動作をすること及びDNNのパラメータで微分可能な演算であることから、アタック判定を行うDNNを学習できるようになる。なお、ガンベル−ソフトマックス(Gumbel-softmax)は、例えば、参考非特許文献4に記載されている。
(参考非特許文献4:E. Jang, S. Gu, B. Poole, “Categorical reparameterization with gumbel-softmax”, arXiv preprint arXiv:1611.01144, 2016.)
【0074】
以下、これらの解決法について詳しく説明する。まず、(1)フレームの同期問題の解決法について説明する。
【0075】
本発明の実施形態では、フレーム同期を保証するために、ロング、スタート、ショート、ストップの4種類の窓関数を利用する。その際、ロングにおけるMDCTの分析長LlongとショートにおけるMDCTの分析長Lshortに以下の関係が成立するものとする。
【0076】
【数18】
【0077】
ここで、mは1以上の整数とする。
【0078】
このような窓関数を利用すると、プリンセン−ブラッドレイ条件を満たすように窓関数を設計した際、ショートを利用して2m回分析したデータ点数が、ロングを利用して1回分析したデータ点数(Llong)と一致する。すなわち、式(7)の形式において分析行列A(つまり、MDCT行列Cと窓関数行列W)を入れ替えるだけで、ウィンドウスイッチングを利用した信号分析を実現することができる。ロング、スタート、ショート、ストップの各窓関数に対応する分析行列A1, A2, A3, A4は、以下のようになる。
【0079】
【数19】
【0080】
ここで、ClongとCshortは、それぞれ式(9)で定義される、分析長がLlongとLshortであるMDCT行列である。つまり、MDCT行列Clongの(p, q)要素(1≦p≦Llong/2, 1≦q≦Llong)、MDCT行列Cshortの(p, q)要素(1≦p≦Lshort/2, 1≦q≦Lshort)は、それぞれ以下のようになる。
【0081】
【数20】
【0082】
また、wlとwsは、それぞれロングのためのサイン窓ベクトルとショートのためのサイン窓ベクトルを表し、そのq番目の要素wlq(q∈{0, 1, …, Llong-1}), wsq(q∈{0, 1, …, Lshort-1})はそれぞれ以下のようになる。
【0083】
【数21】
【0084】
つまり、wlはLlong次元サイン窓ベクトル、wsはLshort次元サイン窓ベクトルとなる。また、wl1stとwl2ndはwlの前半部と後半部、ws1stとws2ndはwsの前半部と後半部を表す。つまり、wl1st=(wl0, …, wl(L_long)/2-1)T, wl2nd=(wl(L_long)/2, …, wl(L_long)-1)T, ws1st=(ws0, …, ws(L_short)/2-1)T, ws2nd=(ws(L_short)/2, …, ws(L_short)-1)Tである。1L_long/4-L_short/4と0L_long/4-L_short/4はそれぞれ要素が1であるLlong/4-Lshort/4次元ベクトルと要素が0であるLlong/4-Lshort/4次元ベクトルである。また、IC(n)とIR(n) (n∈{0, 1, …, Llong/Lshort-1})は以下で表される行列のインデックスである。
【0085】
【数22】
【0086】
ここで、[1:N]は、[1, 2, 3, ..., N]の数列を表す。
【0087】
したがって、A3は、A3(IC(0), IR(0)), A3(IC(0), IR(1)), …, A3(IC(2m-1), IR(2m-1))の2m×2m個のLshort/2×Lshortの行列を用いて定義されることになる。
【0088】
なお、ロング、スタート、ショート、ストップの各窓関数をそれぞれ第1窓関数、第2窓関数、第3窓関数、第4窓関数という。また、第j窓関数に対応する分析行列Aj(j=1, 2, ,3 ,4)を第j分析行列という。
【0089】
次に、(2)目的関数の微分可能性問題の解決法について説明する。ウィンドウスイッチングを実現するためには、時間フレームtがアタックであるか否かを判定すればよいので、a1,t=1は非アタックであること、a2,t=1はアタックであることを示す二値変数の組(a1,t, a2,t)を推定すればよい(以下、at=(a1,t, a2,t)Tをアタック判定ベクトルということにする)。単純に考えると、従来のDNNを用いた識別問題のように、出力層の活性化関数がソフトマックス(softmax)であるDNN MA(ΘAを当該ニューラルネットワークのパラメータとする)を利用して、以下のように時間フレームtがアタックである確率を推定し、
【0090】
【数23】
【0091】
次式の閾値判定をすることにより、実現できるように思える。
【0092】
【数24】
【0093】
しかし、この閾値判定はパラメータΘAで微分不可能な関数であるため、誤差逆伝搬法によりパラメータΘAを学習することができない。
【0094】
そこで本発明の実施形態では、閾値判定の代わりにガンベル−ソフトマックスを用いて、p(at)から近似的にアタック判定ベクトルatを推定する。
【0095】
【数25】
【0096】
ここで、λは温度パラメータであり10-3程度に設定すればよい。また、式(33)の〜は右辺の確率分布からのサンプリングを表し、Uniform(0,1)は定義域が0から1の一様分布を表す。
【0097】
この手法で得られるアタック判定ベクトルatは、近似的にワン−ホット−ベクトル(one-hot-vector)、つまり、1つの要素が1、その他の要素はすべて0となるベクトルとなる。
【0098】
そして、アタック判定ベクトルatが得られれば、時間フレームtの窓関数ベクトルzt=(z1,t, z2,t, z3,t, z4,t)Tは、以下の式により、再帰的に求めることができる。
【0099】
【数26】
【0100】
ここで、z1,t=1はロング(long)、z2,t=1はスタート(start)、z3,t=1はショート(short)、z4,t=1はストップ(stop)を表し、Qi,k,jは以下で定義される状態遷移行列である。
【0101】
【数27】
【0102】
式(34)によりzk,tを求めると、窓関数ベクトルztもワン−ホット−ベクトルとなるため、時間フレームtの出力音s^tは、4つの窓関数で分析した出力音の和として、以下のように求めることができる。
【0103】
【数28】
【0104】
ここで、
【0105】
【数29】
【0106】
であり、xltはt番目のブロックの観測信号である(式(6)参照)。また、Mj(j=1,…,4)は、第j窓関数を利用してj番目の出力音s^j,tC(以下、第j出力音という)を求めるDNN(第j窓関数に対応するニューラルネットワーク)であり、Θjはそのパラメータである。
【0107】
図2は、観測信号xtと音響特徴量φtから出力音s^tを生成するまでの音源強調処理の過程を示す図である。アタック判定ベクトル生成部は、DNN MAにより構成され、式(28)及び式(31)の計算を行う構成部である。窓関数ベクトル生成部は、式(34)の計算を行う構成部である。第j出力音生成部(j=1, 2, 3, ,4)は、DNN Mjにより構成され、式(37)の計算を行う構成部である。出力音生成部は、式(36)の計算を行う構成部である。なお、すべてのDNN(つまり、MA, M1, M2, M3, M4)のパラメータ(つまり、ΘA, Θ1, Θ2, Θ3, Θ4)で微分可能な形式で全体の計算過程が記述されているため、式(17)のような目的関数を利用してパラメータを学習することができる。
【0108】
<第1実施形態>
ここでは、<技術的背景>で説明したDL音源強調を学習する音源強調学習装置100について説明する。
【0109】
以下、図3図4を参照して音源強調学習装置100を説明する。図3は、音源強調学習装置100の構成を示すブロック図である。図4は、音源強調学習装置100の動作を示すフローチャートである。図3に示すように音源強調学習装置100は、信号重畳部110と、信号分割部115と、音源強調処理部120と、目的関数計算部130と、パラメータ更新部140と、収束条件判定部150と、記録部190を含む。記録部190は、音源強調学習装置100の処理に必要な情報を適宜記録する構成部である。記録部190は、例えば、学習対象となるニューラルネットワークMA, M1, M2, M3, M4のパラメータΘA, Θ1, Θ2, Θ3, Θ4を記録する。ニューラルネットワークMA, M1, M2, M3, M4は、全結合ニューラルネットワークや長期短期記憶(LSTM: Long Short Term Memory)ネットワークなどとして定義すればよい。また、パラメータΘA, Θ1, Θ2, Θ3, Θ4は、例えば乱数を用いて初期化すればよい。その他、記録部190は、例えば、分析長Llong, Lshortを記録する。Llong=512、Lshort=64と設定すればよい。
【0110】
音源強調学習装置100は、目的音学習データ記録部910、雑音学習データ記録部920に接続している。目的音学習データ記録部910、雑音学習データ記録部920には、事前に収音した目的音と雑音が学習データとして記録されている。目的音学習データ、雑音学習データは、時間領域信号である。例えば、音声を目的音とする場合、目的音学習データは、無響室などで収録した発話データである。この発話データは8秒間程度の発話であり、5000発話程度以上集めることが望ましい。また、雑音学習データは、使用を想定する環境で収録した雑音である。
【0111】
音源強調学習装置100の各構成部で用いる各種パラメータ(例えば、パラメータΘA, Θ1, Θ2, Θ3, Θ4や分析長Llong, Lshort)については、目的音学習データや雑音学習データと同様、外部から入力するようにしてもよいし、事前に各構成部に設定されていてもよい。
【0112】
図4に従い音源強調学習装置100の動作について説明する。信号重畳部110は、目的音学習データと雑音学習データから、時間領域の観測信号χk(1≦k≦K、Kは1以上の整数)を生成する(S110)。具体的には、まず、目的音学習データ(先ほどの例でいうと、8秒間程度の発話データ)をランダムに1つ選択し、目的音学習データと同じ長さの雑音学習データをランダムに1つ選択する。さらに、式(1)に基づいて目的音学習データと雑音学習データを重畳することにより、観測信号を生成する。目的音学習データと雑音学習データの比率は使用を想定する環境に合わせて設定するのが好ましいが、例えば、信号対雑音比で-12〜12dB程度となるように重畳するとよい。したがって、観測信号χkは、目的音σkと雑音νkの和として表される(式(1)参照)。
【0113】
信号分割部115は、S110で生成した観測信号χk(1≦k≦K)から、観測信号xt(1≦t≦T、Tは2以上の整数)と目的音st(1≦t≦T)を生成する(S115)。具体的には、観測信号χk(1≦k≦K)を重なりのないT個の、長さLlong/2(Llongは1以上の整数)のブロックへ分割して、t番目のブロックの観測信号xt(1≦t≦T)を得る。つまり、観測信号xtは、以下のようなLlong/2次元ベクトルとなる(式(6)参照)。
【0114】
【数30】
【0115】
同様に、観測信号χk(1≦k≦K)に含まれる目的音を重なりのないT個の、長さLlong/2のブロックへ分割して、t番目のブロックの目的音st(1≦t≦T)を得る。つまり、目的音st(1≦t≦T)は、以下のようなLlong/2次元ベクトルとなる(式(18)参照)。
【0116】
【数31】
【0117】
音源強調処理部120は、ニューラルネットワークMA, M1, M2, M3, M4を用いて、S115で生成した観測信号xt(1≦t≦T)から、出力音s^t(1≦t≦T)を推定する(S120)。なお、出力音s^t(1≦t≦T)は、観測信号xtに含まれる目的音を強調した信号である。以下、図5図6を参照して音源強調処理部120について説明する。図5は、音源強調処理部120の構成を示すブロック図である。図6は、音源強調処理部120の動作を示すフローチャートである。図5に示すように音源強調処理部120は、音響特徴量抽出部123と、アタック判定ベクトル生成部124と、窓関数ベクトル生成部125と、第1出力音生成部1261と、第2出力音生成部1262と、第3出力音生成部1263と、第4出力音生成部1264と、出力音生成部127を含む。
【0118】
図6に従い音源強調処理部120の動作について説明する。音響特徴量抽出部123は、S115で生成した観測信号xt(1≦t≦T)から、音響特徴量φt(1≦t≦T)を抽出する(S123)。音響特徴量φtはt番目のブロックの音響特徴量である。音響特徴量を抽出する方法はどのようなものであってもよい。
【0119】
アタック判定ベクトル生成部124は、ニューラルネットワークMAを用いて、S123で抽出した音響特徴量φt(1≦t≦T)から、アタック判定ベクトルat(1≦t≦T)を生成する(S124)。アタック判定ベクトルatは、t番目のブロックがアタックであるか否か(つまり、音量が大きく変化する部分であるか否か)の判定結果を示すベクトルである。具体的には、以下のようにして生成する。まず、アタック判定ベクトル生成部124は、ニューラルネットワークMAを用いて、音響特徴量φtから式(28)で計算されるベクトルp(at)を生成する。次に、アタック判定ベクトル生成部124は、ベクトルp(at)から式(31)によりアタック判定ベクトルatを生成する。
【0120】
窓関数ベクトル生成部125は、S124で生成したアタック判定ベクトルat(1≦t≦T)から、窓関数ベクトルzt(1≦t≦T)を生成する(S125)。窓関数ベクトルztは、4つの窓関数で分析した出力音、つまり、第1出力音s^1,tC、第2出力音s^2,tC、第3出力音s^3,tC、第4出力音s^4,tCの和を生成するために用いるベクトルである。具体的には、窓関数ベクトル生成部125は、式(35)で定義される状態遷移行列を用いて、アタック判定ベクトルatから式(34)で計算されるzk,t(k=1, 2, 3, , 4)を第k成分とするベクトルztを生成する。
【0121】
第j出力音生成部126j(j=1, 2, 3, 4)は、第j窓関数に対応するニューラルネットワークMjを用いて、S115で生成した観測信号xt(1≦t≦T)とS123で抽出した音響特徴量φt(1≦t≦T)から、第j出力音s^j,tC(1≦t≦T)を生成する(S126j)。以下、図7図8を参照して第j出力音生成部126jについて説明する。図7は、第j出力音生成部126jの構成を示すブロック図である。図8は、第j出力音生成部126jの動作を示すフローチャートである。図7に示すように第j出力音生成部126jは、第j周波数変換部1262jと、第j時間周波数マスク推定部1263jと、第j時間周波数マスク処理部1264jと、第j逆周波数変換部1265jを含む。
【0122】
図8に従い第j出力音生成部126jの動作について説明する。
【0123】
第j周波数変換部1262jは、実数で定義された周波数変換を用いて、S115で生成した観測信号xt(1≦t≦T)から、第j観測信号周波数変換スペクトルXj,tC(1≦t≦T)を生成する(S1262j)。実数で定義された周波数変換としてMDCTを用いる場合、実数で定義された周波数変換は、第j分析行列Ajにより定義され、第j観測信号周波数変換スペクトルXj,kCは、次式により計算される(式(7)参照)。
【0124】
【数32】
【0125】
ここで、第j分析行列Ajは、第j窓関数に対応する分析行列であり、式(20)〜式(23)で定義される。
【0126】
第j時間周波数マスク推定部1263jは、第j窓関数に対応するニューラルネットワークMjを用いて、S123で抽出した音響特徴量φt(1≦t≦T)から、第j時間周波数マスクG^j,tC(1≦t≦T)を推定する(S1263j)。MDCTを用いる場合、第j時間周波数マスクG^j,tCは次式により計算される(式(14)参照)。
【0127】
【数33】
【0128】
最初に回帰関数Mjtj)の値(時間周波数マスクG^j,tC)を計算するときは、事前に与えてあるパラメータΘjの初期値を用いる。その後は、後述するS140で更新されたパラメータΘjを用いて回帰関数Mjtj)の値を計算する。
【0129】
第j時間周波数マスク処理部1264jは、S1263jで推定した第j時間周波数マスクG^j,tC(1≦t≦T)とS1262jで生成した第j観測信号周波数変換スペクトルXj,tC(1≦t≦T)から、第j出力音周波数変換スペクトルS^j,tC(1≦t≦T)を生成する(S1264j)。MDCTを用いる場合、第j出力音周波数変換スペクトルS^j,tCは次式により計算される(式(15)参照)。
【0130】
【数34】
【0131】
第j逆周波数変換部1265jは、実数で定義された逆周波数変換を用いて、1264jで生成した第j出力音周波数変換スペクトルS^j,tC(1≦t≦T)から、第j出力音s^j,tC(1≦t≦T)を生成する(S1265j)。実数で定義された周波数変換としてMDCTを用いる場合、実数で定義された逆周波数変換として逆MDCTを用いることになる。この場合、実数で定義された逆周波数変換は、第j分析行列Ajにより定義され、第j出力音s^j,tCは次式により計算される(式(37)参照)。
【0132】
【数35】
【0133】
出力音生成部127は、S1261で生成した第1出力音s^1,tC(1≦t≦T)とS1262で生成した第2出力音s^2,tC(1≦t≦T)とS1263で生成した第3出力音s^3,tC(1≦t≦T)とS1264で生成した第4出力音s^4,tC(1≦t≦T)とS125で生成した窓関数ベクトルzt(1≦t≦T)から、出力音s^t(1≦t≦T)を生成する(S127)。具体的には、出力音s^tは式(36)により計算される。
【0134】
目的関数計算部130は、S120で推定した出力音s^t(1≦t≦T)とS115で生成した目的音st(1≦t≦T)から、出力音の推定誤差を示す目的関数T(ΘA, Θ1, Θ2, Θ3, Θ4)の値を計算する(S130)。目的関数T(ΘA, Θ1, Θ2, Θ3, Θ4)は、時間領域で定義された関数、特にブロック単位での出力音の推定誤差E(st, s^t)を用いて定義される関数であればどのようなものでもよい。例えば、次式のように絶対平均誤差を用いて目的関数T(ΘA, Θ1, Θ2, Θ3, Θ4)を定義してもよい(式(17)参照)。
【0135】
【数36】
【0136】
この場合、E(st, s^t)=||st-s^t||1である。また、重み付き二乗誤差を用いて定義してもよい。
【0137】
パラメータ更新部140は、S130で計算した目的関数T(ΘA, Θ1, Θ2, Θ3, Θ4)の値を最適化(最小化)するように、パラメータΘA, Θ1, Θ2, Θ3, Θ4を更新する(S140)。パラメータΘA, Θ1, Θ2, Θ3, Θ4の更新には、例えば、確率的最急降下法を用いるとよい。この場合、学習率は10-5程度に設定すればよい。
【0138】
収束条件判定部150は、パラメータ更新の終了条件として事前に設定された収束条件を判定し、収束条件が満たされた場合はS140で生成したパラメータΘA, Θ1, Θ2, Θ3, Θ4を出力し、収束条件が満たされない場合はS110〜S140の処理を繰り返す(S150)。収束条件として、例えばS110〜S140の処理の実行回数が所定の回数に達したかという条件を採用することができる。この場合、所定の回数を10万回程度に設定すればよい。
【0139】
本実施形態の発明によれば、分析長が異なる実数周波数変換を利用して推定した時間周波数マスクを用いた音源強調技術を学習することが可能となる。これにより、時間周波数スペクトル分析の時間周波数分解能のトレードオフに関する問題を解決することができる。
【0140】
<第2実施形態>
ここでは、第1実施形態の音源強調学習装置100が生成したパラメータを用いて音源強調を行う音源強調装置200について説明する。
【0141】
以下、図9図10を参照して音源強調装置200を説明する。図9は、音源強調装置200の構成を示すブロック図である。図10は、音源強調装置200の動作を示すフローチャートである。図9に示すように音源強調装置200は、信号分割部215と、音源強調処理部120と、出力音統合部210と、記録部290を含む。記録部290は、音源強調装置200の処理に必要な情報を適宜記録する構成部である。記録部290は、例えば、音源強調学習装置100が生成したパラメータΘA, Θ1, Θ2, Θ3, Θ4を記録しておく。
【0142】
音源強調装置200には、時間領域の観測信号χk(1≦k≦K)が入力される。この観測信号χk(1≦k≦K)は、例えば、マイクロホンを用いて事前に収音した信号である。
【0143】
図10に従い音源強調装置200の動作について説明する。信号分割部215は、音源強調装置200の入力である時間領域の観測信号χk(1≦k≦K)から、観測信号xt(1≦t≦T、Tは2以上の整数)を生成する(S215)。生成方法は、S115と同様でよい。
【0144】
音源強調処理部120は、パラメータΘA, Θ1, Θ2, Θ3, Θ4を用いて、S215で生成した観測信号xt(1≦t≦T)から、出力音s^t(1≦t≦T)を推定する(S120)。
【0145】
出力音統合部210は、S120で推定した出力音s^t(1≦t≦T)から、観測信号χk(1≦k≦K)に含まれる目的音を強調した出力音σ^k(1≦k≦K)を生成する(S210)。生成処理は、S215での処理と反対の処理となる。つまり、出力音s^t(1≦t≦T)を順に結合することにより、出力音σ^k(1≦k≦K)を生成する。
【0146】
本実施形態の発明によれば、深層学習により、分析長が異なる実数周波数変換を利用して推定した時間周波数マスクを用いて、音源強調が可能となる。
【0147】
<補記>
本発明の装置は、例えば単一のハードウェアエンティティとして、キーボードなどが接続可能な入力部、液晶ディスプレイなどが接続可能な出力部、ハードウェアエンティティの外部に通信可能な通信装置(例えば通信ケーブル)が接続可能な通信部、CPU(Central Processing Unit、キャッシュメモリやレジスタなどを備えていてもよい)、メモリであるRAMやROM、ハードディスクである外部記憶装置並びにこれらの入力部、出力部、通信部、CPU、RAM、ROM、外部記憶装置の間のデータのやり取りが可能なように接続するバスを有している。また必要に応じて、ハードウェアエンティティに、CD−ROMなどの記録媒体を読み書きできる装置(ドライブ)などを設けることとしてもよい。このようなハードウェア資源を備えた物理的実体としては、汎用コンピュータなどがある。
【0148】
ハードウェアエンティティの外部記憶装置には、上述の機能を実現するために必要となるプログラムおよびこのプログラムの処理において必要となるデータなどが記憶されている(外部記憶装置に限らず、例えばプログラムを読み出し専用記憶装置であるROMに記憶させておくこととしてもよい)。また、これらのプログラムの処理によって得られるデータなどは、RAMや外部記憶装置などに適宜に記憶される。
【0149】
ハードウェアエンティティでは、外部記憶装置(あるいはROMなど)に記憶された各プログラムとこの各プログラムの処理に必要なデータが必要に応じてメモリに読み込まれて、適宜にCPUで解釈実行・処理される。その結果、CPUが所定の機能(上記、…部、…手段などと表した各構成要件)を実現する。
【0150】
本発明は上述の実施形態に限定されるものではなく、本発明の趣旨を逸脱しない範囲で適宜変更が可能である。また、上記実施形態において説明した処理は、記載の順に従って時系列に実行されるのみならず、処理を実行する装置の処理能力あるいは必要に応じて並列的にあるいは個別に実行されるとしてもよい。
【0151】
既述のように、上記実施形態において説明したハードウェアエンティティ(本発明の装置)における処理機能をコンピュータによって実現する場合、ハードウェアエンティティが有すべき機能の処理内容はプログラムによって記述される。そして、このプログラムをコンピュータで実行することにより、上記ハードウェアエンティティにおける処理機能がコンピュータ上で実現される。
【0152】
この処理内容を記述したプログラムは、コンピュータで読み取り可能な記録媒体に記録しておくことができる。コンピュータで読み取り可能な記録媒体としては、例えば、磁気記録装置、光ディスク、光磁気記録媒体、半導体メモリ等どのようなものでもよい。具体的には、例えば、磁気記録装置として、ハードディスク装置、フレキシブルディスク、磁気テープ等を、光ディスクとして、DVD(Digital Versatile Disc)、DVD−RAM(Random Access Memory)、CD−ROM(Compact Disc Read Only Memory)、CD−R(Recordable)/RW(ReWritable)等を、光磁気記録媒体として、MO(Magneto-Optical disc)等を、半導体メモリとしてEEP−ROM(Electronically Erasable and Programmable-Read Only Memory)等を用いることができる。
【0153】
また、このプログラムの流通は、例えば、そのプログラムを記録したDVD、CD−ROM等の可搬型記録媒体を販売、譲渡、貸与等することによって行う。さらに、このプログラムをサーバコンピュータの記憶装置に格納しておき、ネットワークを介して、サーバコンピュータから他のコンピュータにそのプログラムを転送することにより、このプログラムを流通させる構成としてもよい。
【0154】
このようなプログラムを実行するコンピュータは、例えば、まず、可搬型記録媒体に記録されたプログラムもしくはサーバコンピュータから転送されたプログラムを、一旦、自己の記憶装置に格納する。そして、処理の実行時、このコンピュータは、自己の記録媒体に格納されたプログラムを読み取り、読み取ったプログラムに従った処理を実行する。また、このプログラムの別の実行形態として、コンピュータが可搬型記録媒体から直接プログラムを読み取り、そのプログラムに従った処理を実行することとしてもよく、さらに、このコンピュータにサーバコンピュータからプログラムが転送されるたびに、逐次、受け取ったプログラムに従った処理を実行することとしてもよい。また、サーバコンピュータから、このコンピュータへのプログラムの転送は行わず、その実行指示と結果取得のみによって処理機能を実現する、いわゆるASP(Application Service Provider)型のサービスによって、上述の処理を実行する構成としてもよい。なお、本形態におけるプログラムには、電子計算機による処理の用に供する情報であってプログラムに準ずるもの(コンピュータに対する直接の指令ではないがコンピュータの処理を規定する性質を有するデータ等)を含むものとする。
【0155】
また、この形態では、コンピュータ上で所定のプログラムを実行させることにより、ハードウェアエンティティを構成することとしたが、これらの処理内容の少なくとも一部をハードウェア的に実現することとしてもよい。
図1
図2
図3
図4
図5
図6
図7
図8
図9
図10