【発明を実施するための形態】
【0012】
以下、本発明の実施の形態について、詳細に説明する。なお、同じ機能を有する構成部には同じ番号を付し、重複説明を省略する。
【0013】
<記法>
_(アンダースコア)は下付き添字を表す。例えば、x
y_zはy
zがxに対する上付き添字であり、x
y_zはy
zがxに対する下付き添字であることを表す。
【0014】
<技術的背景>
MDCTには、動的に分析長を変化させることができるウィンドウスイッチング(window switching)という特性がある。本発明の実施形態は、この特性を利用する。具体的には、ウィンドウスイッチングにおける分析長を変化させるか否かの判定を行うDNNを構成し、このDNNと長い分析長に対応する時間周波数マスクを推定するDNNと短い分析長に対応する時間周波数マスクを推定するDNNを用いてMDCT領域のDL音源強調技術を構成する。
【0015】
《問題設定》
時間領域において、目的音をσ
k、雑音をν
kとおき、観測信号χ
kを以下のように表現する。
【0017】
ここで、k∈{1, 2, …, K}は時間のインデックスである。
【0018】
そして、観測信号χ
k(1≦k≦K)を、ある時間長で重なりのあるT個(ただし、Tは2以上の整数)の時間フレームに分割し、それをDFTすることにより、式(1)を以下のように変形する。
【0020】
ここで、X
t,f、S
t,f、N
t,fは、それぞれ観測信号のDFTスペクトル、目的音のDFTスペクトル、雑音のDFTスペクトルである。また、f∈{1, 2, …, F}とt∈{1, 2, …, T}は、それぞれ時間周波数領域における、周波数のインデックスと時間のインデックスである。
【0021】
DFT領域における時間周波数マスクによる音源強調では、以下の式で出力音のDFTスペクトルS^
t,fを得る。
【0023】
ここで、G
t,fは、例えばウィーナー(Wiener)フィルタなどで実装される時間周波数マスクである。
【0024】
ここで得られた出力音のDFTスペクトルS^
t,fを逆DFTした信号を重畳加算することにより、時間領域の出力音を得る。
【0025】
《DFT領域のDL音源強調》
DL音源強調では、時間フレームtの時間周波数マスクを縦に並べたベクトルG
t:=(G
t,1, …, G
t,F)
T(ただし、右肩のTは転置を表す)を以下のように推定する。
【0027】
ここで、G^
tはG
tを推定したベクトルを表す。また、Mはニューラルネットワークを利用した回帰関数、φ
tは観測信号χ
k(1≦k≦K)から抽出したtフレーム目の音響特徴量、ΘはニューラルネットワークM(回帰関数Mを計算するニューラルネットワーク)のパラメータである。なお、ウィーナーフィルタのように時間周波数マスクG
t,fの値域を0≦G
t,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】
そして、パラメータΘは、例えば以下の目的関数τ(Θ)を最小化するように、誤差逆伝搬法を利用した勾配法で学習することができる。
【0030】
ここで、S
t:=(S
t,1, …, S
t,F)
T、X
t:=(X
t,1, …, X
t,F)
T、T
trnは学習データの総フレーム数である。また、||・||
pはL
pノルム(ここでは、p=2)、○はベクトルの要素積(アダマール積)を表す。
【0031】
ところで、DFTで得られる周波数スペクトルは複素数値であるため、観測信号から目的音を完全に復元するためには、観測信号の振幅スペクトルと位相スペクトルの両方を操作する必要がある。すなわち、目的音を完全に復元するには複素数の時間周波数マスクを利用しなくてはならない。にもかかわらず、一般的なDL音源強調では式(4)のように実数値の時間周波数マスクを推定することが多い。これは、一般的なニューラルネットワークでは、複素数を直接出力することができないことに起因する。
【0032】
以下、観測信号の振幅スペクトルと位相スペクトルの両方を操作することができる、実数の周波数変換(具体的にはMDCT)を利用する方法を非特許文献1に従い説明する。
【0033】
《MDCT領域のDL音源強調》
実数の周波数変換には、離散サイン変換など様々なものがあるが、ここでは、MDCTを利用した方法について説明する。
【0034】
まず、MDCTを行列形式で定義する。最初に、観測信号χ
k(1≦k≦K)を重なりのないT個(ただし、Tは2以上の整数)のブロックへ分割する。ここでt番目のブロックの観測信号x
tは以下のように表現できる。
【0036】
ここで、LはMDCTの分析長である。なお、t番目のブロックの観測信号x
tはL/2次元ベクトル(ただし、Lは1以上の整数)である。
【0037】
すると、MDCTと逆MDCT(IMDCT: inverse MDCT)はそれぞれ以下のように記述できる。
【0039】
ここで、X
tC:=(X
t,1C, …, X
t,L/2C)
Tであり、X
t,1C, …, X
t,L/2Cはそれぞれ観測信号のMDCTスペクトルである。また、A(=CW)は分析行列である。ただし、C∈R
L/2×L(ただし、Rは実数の集合)は、MDCT行列であり、その(p, q)要素(1≦p≦L/2, 1≦q≦L)は以下のように記述できる。
【0041】
また、W∈R
L×Lは、分析/合成窓を表す対角行列(以下、窓関数行列という)であり、ここではプリンセン−ブラッドレイ(Princen-Bradley)条件を満たす窓関数を利用する。例えば、以下のサイン(sin)窓が利用できる。
【0043】
ただし、W
q,qはWの(q, q)要素である。
【0044】
ここで、MDCT行列CはL/2×Lの行列であるため、逆行列は存在しない。ゆえに、逆MDCTの出力であるx
t(C1)とx
t(C2)には、時間歪み(time-domain aliasing)が含まれる。しかし、この歪みは、以下の重畳加算により除去することができる。
【0046】
この特性は時間歪み除去(TDAC: time-domain aliasing cancellation)と呼ばれる。以上の演算をまとめると、MDCTを利用した分析合成は以下の行列演算で記述できる。
【0048】
ただし、O
OLA=[0
L/2×L/2, I
L/2×L/2, I
L/2×L/2, 0
L/2×L/2]は重畳加算行列であり、0
L/2×L/2とI
L/2×L/2はそれぞれL/2×L/2のゼロ行列とL/2×L/2の単位行列である。つまり、重畳加算行列O
OLAは、L/2×2Lの行列である。
【0049】
ここでMDCTスペクトルは実数であるため、実数の時間周波数マスクを用いてMDCT領域の振幅と位相の両方を制御できる。つまり、実数の時間周波数マスクを用いて目的音を完全に復元することができる。今、MDCT領域における時間周波数マスクによる音源強調処理を以下のように定義する。
【0051】
ここで、G
t,qC(=S
t,qC/X
t,qC)はMDCT領域の時間周波数マスクである。
【0052】
そして、DFT領域のDL音源強調と同様に、時間フレームtの時間周波数マスクを縦に並べたベクトルG
tC:=(G
t,1C, …, G
t,LC)
Tを
【0054】
により推定し(ただし、φ
tはt番目のブロックの音響特徴量である)、時間周波数マスクを以下のように乗算することを考える。
【0056】
ここで、S^
tC:=(S^
t,1C, …, S^
t,LC)
Tである。
【0057】
すると、式(12)〜式(15)より、MDCT領域のDL音源強調は以下の行列演算で記述できる。
【0059】
ここで、出力音s^
tは、M(φ
t|Θ)の出力を利用した線形演算で記述されているため、出力音s^
tはパラメータΘで微分可能である。すなわち、出力音の推定精度(つまり、目的音と出力音の誤差)を定義する目的関数を時間領域で定義することで、パラメータΘを誤差逆伝搬法などの勾配法で学習することができる。目的関数T(Θ)には、例えば以下の絶対平均誤差を利用することができる。
【0061】
ここで、s
tはt番目のブロックの目的音であり、以下のように表される。
【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種類の窓関数を利用する。ロング、ショートは、それぞれ長さがL
long、L
shortの窓関数であり(ただし、L
long>L
short)、サイン窓などで実装される。母音などの周期的な音を解析するためにロングが利用され、子音などの時間的な変化が速い音を解析するためにショートが利用される。しかし、ロングを利用したフレームと隣接するフレームでショートを利用すると、その切り替え箇所でプリンセン−ブラッドレイ条件を満たさなくなるため、完全再構成条件を満足することができない(すなわち、切り替え箇所において2つの窓関数が滑らかにつながらない)。そこで、ロングからショートへの切り替えを滑らかにする窓関数(スタート)とショートからロングへの切り替えを滑らかにする窓関数(ストップ)を利用する。このため、窓関数の切り替えには完全な自由度があるわけではない。具体的には、
図1に示す状態遷移により制約される。
図1は4つの窓関数の切り替えの状態遷移を示すものである。MPEG-1 Layer III(MP3)における窓関数の切り替えでは、聴覚心理モデルに基づくアタック判定の結果に基づいて、
図1に示す状態遷移ルールに従い決定論的に窓関数を切り替える。
【0069】
《本発明の実施形態における音源強調処理》
DL音源強調において、信号の性質に合わせて適応的にMDCTの分析長を変化させるために、ウィンドウスイッチングを導入することを考える。そのため、アタック判定を行い、目的音の復元精度を最大化するようなDNNを構成、つまり学習することを考える。しかし、このようなDNNの学習を実現するためには、以下の2つの問題を解決しなくてはならない。
【0070】
(1)フレームの同期問題
DL音源強調の多くでは、式(17)のように、時間フレームtごとに計算される出力音の推定精度を用いて定義される目的関数を利用してDNNの学習を行う。しかし、分析長が異なる窓を制約なく利用すると、ロングを利用した場合とショートを利用した場合で、フレームの同期がとれなくなり、その結果、目的関数が定義できなくなる。例えば、L
long=512、L
short=128とした場合、ショートはL
long/L
short=4の倍数回で利用しないと、L
longを利用した場合とフレーム同期をとることができなくなる。フレーム同期をとれない場合、式(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(a
t)とし(式(28)参照)、ガンベル−ソフトマックス(Gumbel-softmax)を用いてベクトルp(a
t)から時間フレームtがアタックであるか否かを示す2次元ベクトルa
tを出力する(式(31)参照)。この出力ベクトルa
tから状態遷移行列Q
i,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の分析長L
longとショートにおけるMDCTの分析長L
shortに以下の関係が成立するものとする。
【0078】
このような窓関数を利用すると、プリンセン−ブラッドレイ条件を満たすように窓関数を設計した際、ショートを利用して2
m回分析したデータ点数が、ロングを利用して1回分析したデータ点数(L
long)と一致する。すなわち、式(7)の形式において分析行列A(つまり、MDCT行列Cと窓関数行列W)を入れ替えるだけで、ウィンドウスイッチングを利用した信号分析を実現することができる。ロング、スタート、ショート、ストップの各窓関数に対応する分析行列A
1, A
2, A
3, A
4は、以下のようになる。
【0080】
ここで、C
longとC
shortは、それぞれ式(9)で定義される、分析長がL
longとL
shortであるMDCT行列である。つまり、MDCT行列C
longの(p, q)要素(1≦p≦L
long/2, 1≦q≦L
long)、MDCT行列C
shortの(p, q)要素(1≦p≦L
short/2, 1≦q≦L
short)は、それぞれ以下のようになる。
【0082】
また、w
lとw
sは、それぞれロングのためのサイン窓ベクトルとショートのためのサイン窓ベクトルを表し、そのq番目の要素w
lq(q∈{0, 1, …, L
long-1}), w
sq(q∈{0, 1, …, L
short-1})はそれぞれ以下のようになる。
【0084】
つまり、w
lはL
long次元サイン窓ベクトル、w
sはL
short次元サイン窓ベクトルとなる。また、w
l1stとw
l2ndはw
lの前半部と後半部、w
s1stとw
s2ndはw
sの前半部と後半部を表す。つまり、w
l1st=(w
l0, …, w
l(L_long)/2-1)
T, w
l2nd=(w
l(L_long)/2, …, w
l(L_long)-1)
T, w
s1st=(w
s0, …, w
s(L_short)/2-1)
T, w
s2nd=(w
s(L_short)/2, …, w
s(L_short)-1)
Tである。1
L_long/4-L_short/4と0
L_long/4-L_short/4はそれぞれ要素が1であるL
long/4-L
short/4次元ベクトルと要素が0であるL
long/4-L
short/4次元ベクトルである。また、I
C(n)とI
R(n) (n∈{0, 1, …, L
long/L
short-1})は以下で表される行列のインデックスである。
【0086】
ここで、[1:N]は、[1, 2, 3, ..., N]の数列を表す。
【0087】
したがって、A
3は、A
3(I
C(0), I
R(0)), A
3(I
C(0), I
R(1)), …, A
3(I
C(2
m-1), I
R(2
m-1))の2
m×2
m個のL
short/2×L
shortの行列を用いて定義されることになる。
【0088】
なお、ロング、スタート、ショート、ストップの各窓関数をそれぞれ第1窓関数、第2窓関数、第3窓関数、第4窓関数という。また、第j窓関数に対応する分析行列A
j(j=1, 2, ,3 ,4)を第j分析行列という。
【0089】
次に、(2)目的関数の微分可能性問題の解決法について説明する。ウィンドウスイッチングを実現するためには、時間フレームtがアタックであるか否かを判定すればよいので、a
1,t=1は非アタックであること、a
2,t=1はアタックであることを示す二値変数の組(a
1,t, a
2,t)を推定すればよい(以下、a
t=(a
1,t, a
2,t)
Tをアタック判定ベクトルということにする)。単純に考えると、従来のDNNを用いた識別問題のように、出力層の活性化関数がソフトマックス(softmax)であるDNN M
A(Θ
Aを当該ニューラルネットワークのパラメータとする)を利用して、以下のように時間フレームtがアタックである確率を推定し、
【0091】
次式の閾値判定をすることにより、実現できるように思える。
【0093】
しかし、この閾値判定はパラメータΘ
Aで微分不可能な関数であるため、誤差逆伝搬法によりパラメータΘ
Aを学習することができない。
【0094】
そこで本発明の実施形態では、閾値判定の代わりにガンベル−ソフトマックスを用いて、p(a
t)から近似的にアタック判定ベクトルa
tを推定する。
【0096】
ここで、λは温度パラメータであり10
-3程度に設定すればよい。また、式(33)の〜は右辺の確率分布からのサンプリングを表し、Uniform(0,1)は定義域が0から1の一様分布を表す。
【0097】
この手法で得られるアタック判定ベクトルa
tは、近似的にワン−ホット−ベクトル(one-hot-vector)、つまり、1つの要素が1、その他の要素はすべて0となるベクトルとなる。
【0098】
そして、アタック判定ベクトルa
tが得られれば、時間フレームtの窓関数ベクトルz
t=(z
1,t, z
2,t, z
3,t, z
4,t)
Tは、以下の式により、再帰的に求めることができる。
【0100】
ここで、z
1,t=1はロング(long)、z
2,t=1はスタート(start)、z
3,t=1はショート(short)、z
4,t=1はストップ(stop)を表し、Q
i,k,jは以下で定義される状態遷移行列である。
【0102】
式(34)によりz
k,tを求めると、窓関数ベクトルz
tもワン−ホット−ベクトルとなるため、時間フレームtの出力音s^
tは、4つの窓関数で分析した出力音の和として、以下のように求めることができる。
【0106】
であり、x
ltはt番目のブロックの観測信号である(式(6)参照)。また、M
j(j=1,…,4)は、第j窓関数を利用してj番目の出力音s^
j,tC(以下、第j出力音という)を求めるDNN(第j窓関数に対応するニューラルネットワーク)であり、Θ
jはそのパラメータである。
【0107】
図2は、観測信号x
tと音響特徴量φ
tから出力音s^
tを生成するまでの音源強調処理の過程を示す図である。アタック判定ベクトル生成部は、DNN M
Aにより構成され、式(28)及び式(31)の計算を行う構成部である。窓関数ベクトル生成部は、式(34)の計算を行う構成部である。第j出力音生成部(j=1, 2, 3, ,4)は、DNN M
jにより構成され、式(37)の計算を行う構成部である。出力音生成部は、式(36)の計算を行う構成部である。なお、すべてのDNN(つまり、M
A, M
1, M
2, M
3, M
4)のパラメータ(つまり、Θ
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は、例えば、学習対象となるニューラルネットワークM
A, M
1, M
2, M
3, M
4のパラメータΘ
A, Θ
1, Θ
2, Θ
3, Θ
4を記録する。ニューラルネットワークM
A, M
1, M
2, M
3, M
4は、全結合ニューラルネットワークや長期短期記憶(LSTM: Long Short Term Memory)ネットワークなどとして定義すればよい。また、パラメータΘ
A, Θ
1, Θ
2, Θ
3, Θ
4は、例えば乱数を用いて初期化すればよい。その他、記録部190は、例えば、分析長L
long, L
shortを記録する。L
long=512、L
short=64と設定すればよい。
【0110】
音源強調学習装置100は、目的音学習データ記録部910、雑音学習データ記録部920に接続している。目的音学習データ記録部910、雑音学習データ記録部920には、事前に収音した目的音と雑音が学習データとして記録されている。目的音学習データ、雑音学習データは、時間領域信号である。例えば、音声を目的音とする場合、目的音学習データは、無響室などで収録した発話データである。この発話データは8秒間程度の発話であり、5000発話程度以上集めることが望ましい。また、雑音学習データは、使用を想定する環境で収録した雑音である。
【0111】
音源強調学習装置100の各構成部で用いる各種パラメータ(例えば、パラメータΘ
A, Θ
1, Θ
2, Θ
3, Θ
4や分析長L
long, L
short)については、目的音学習データや雑音学習データと同様、外部から入力するようにしてもよいし、事前に各構成部に設定されていてもよい。
【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)から、観測信号x
t(1≦t≦T、Tは2以上の整数)と目的音s
t(1≦t≦T)を生成する(S115)。具体的には、観測信号χ
k(1≦k≦K)を重なりのないT個の、長さL
long/2(L
longは1以上の整数)のブロックへ分割して、t番目のブロックの観測信号x
t(1≦t≦T)を得る。つまり、観測信号x
tは、以下のようなL
long/2次元ベクトルとなる(式(6)参照)。
【0115】
同様に、観測信号χ
k(1≦k≦K)に含まれる目的音を重なりのないT個の、長さL
long/2のブロックへ分割して、t番目のブロックの目的音s
t(1≦t≦T)を得る。つまり、目的音s
t(1≦t≦T)は、以下のようなL
long/2次元ベクトルとなる(式(18)参照)。
【0117】
音源強調処理部120は、ニューラルネットワークM
A, M
1, M
2, M
3, M
4を用いて、S115で生成した観測信号x
t(1≦t≦T)から、出力音s^
t(1≦t≦T)を推定する(S120)。なお、出力音s^
t(1≦t≦T)は、観測信号x
tに含まれる目的音を強調した信号である。以下、
図5〜
図6を参照して音源強調処理部120について説明する。
図5は、音源強調処理部120の構成を示すブロック図である。
図6は、音源強調処理部120の動作を示すフローチャートである。
図5に示すように音源強調処理部120は、音響特徴量抽出部123と、アタック判定ベクトル生成部124と、窓関数ベクトル生成部125と、第1出力音生成部126
1と、第2出力音生成部126
2と、第3出力音生成部126
3と、第4出力音生成部126
4と、出力音生成部127を含む。
【0118】
図6に従い音源強調処理部120の動作について説明する。音響特徴量抽出部123は、S115で生成した観測信号x
t(1≦t≦T)から、音響特徴量φ
t(1≦t≦T)を抽出する(S123)。音響特徴量φ
tはt番目のブロックの音響特徴量である。音響特徴量を抽出する方法はどのようなものであってもよい。
【0119】
アタック判定ベクトル生成部124は、ニューラルネットワークM
Aを用いて、S123で抽出した音響特徴量φ
t(1≦t≦T)から、アタック判定ベクトルa
t(1≦t≦T)を生成する(S124)。アタック判定ベクトルa
tは、t番目のブロックがアタックであるか否か(つまり、音量が大きく変化する部分であるか否か)の判定結果を示すベクトルである。具体的には、以下のようにして生成する。まず、アタック判定ベクトル生成部124は、ニューラルネットワークM
Aを用いて、音響特徴量φ
tから式(28)で計算されるベクトルp(a
t)を生成する。次に、アタック判定ベクトル生成部124は、ベクトルp(a
t)から式(31)によりアタック判定ベクトルa
tを生成する。
【0120】
窓関数ベクトル生成部125は、S124で生成したアタック判定ベクトルa
t(1≦t≦T)から、窓関数ベクトルz
t(1≦t≦T)を生成する(S125)。窓関数ベクトルz
tは、4つの窓関数で分析した出力音、つまり、第1出力音s^
1,tC、第2出力音s^
2,tC、第3出力音s^
3,tC、第4出力音s^
4,tCの和を生成するために用いるベクトルである。具体的には、窓関数ベクトル生成部125は、式(35)で定義される状態遷移行列を用いて、アタック判定ベクトルa
tから式(34)で計算されるz
k,t(k=1, 2, 3, , 4)を第k成分とするベクトルz
tを生成する。
【0121】
第j出力音生成部126
j(j=1, 2, 3, 4)は、第j窓関数に対応するニューラルネットワークM
jを用いて、S115で生成した観測信号x
t(1≦t≦T)とS123で抽出した音響特徴量φ
t(1≦t≦T)から、第j出力音s^
j,tC(1≦t≦T)を生成する(S126
j)。以下、
図7〜
図8を参照して第j出力音生成部126
jについて説明する。
図7は、第j出力音生成部126
jの構成を示すブロック図である。
図8は、第j出力音生成部126
jの動作を示すフローチャートである。
図7に示すように第j出力音生成部126
jは、第j周波数変換部1262
jと、第j時間周波数マスク推定部1263
jと、第j時間周波数マスク処理部1264
jと、第j逆周波数変換部1265
jを含む。
【0122】
図8に従い第j出力音生成部126
jの動作について説明する。
【0123】
第j周波数変換部1262
jは、実数で定義された周波数変換を用いて、S115で生成した観測信号x
t(1≦t≦T)から、第j観測信号周波数変換スペクトルX
j,tC(1≦t≦T)を生成する(S1262
j)。実数で定義された周波数変換としてMDCTを用いる場合、実数で定義された周波数変換は、第j分析行列A
jにより定義され、第j観測信号周波数変換スペクトルX
j,kCは、次式により計算される(式(7)参照)。
【0125】
ここで、第j分析行列A
jは、第j窓関数に対応する分析行列であり、式(20)〜式(23)で定義される。
【0126】
第j時間周波数マスク推定部1263
jは、第j窓関数に対応するニューラルネットワークM
jを用いて、S123で抽出した音響特徴量φ
t(1≦t≦T)から、第j時間周波数マスクG^
j,tC(1≦t≦T)を推定する(S1263
j)。MDCTを用いる場合、第j時間周波数マスクG^
j,tCは次式により計算される(式(14)参照)。
【0128】
最初に回帰関数M
j(φ
t|Θ
j)の値(時間周波数マスクG^
j,tC)を計算するときは、事前に与えてあるパラメータΘ
jの初期値を用いる。その後は、後述するS140で更新されたパラメータΘ
jを用いて回帰関数M
j(φ
t|Θ
j)の値を計算する。
【0129】
第j時間周波数マスク処理部1264
jは、S1263
jで推定した第j時間周波数マスクG^
j,tC(1≦t≦T)とS1262
jで生成した第j観測信号周波数変換スペクトルX
j,tC(1≦t≦T)から、第j出力音周波数変換スペクトルS^
j,tC(1≦t≦T)を生成する(S1264
j)。MDCTを用いる場合、第j出力音周波数変換スペクトルS^
j,tCは次式により計算される(式(15)参照)。
【0131】
第j逆周波数変換部1265
jは、実数で定義された逆周波数変換を用いて、1264
jで生成した第j出力音周波数変換スペクトルS^
j,tC(1≦t≦T)から、第j出力音s^
j,tC(1≦t≦T)を生成する(S1265
j)。実数で定義された周波数変換としてMDCTを用いる場合、実数で定義された逆周波数変換として逆MDCTを用いることになる。この場合、実数で定義された逆周波数変換は、第j分析行列A
jにより定義され、第j出力音s^
j,tCは次式により計算される(式(37)参照)。
【0133】
出力音生成部127は、S126
1で生成した第1出力音s^
1,tC(1≦t≦T)とS126
2で生成した第2出力音s^
2,tC(1≦t≦T)とS126
3で生成した第3出力音s^
3,tC(1≦t≦T)とS126
4で生成した第4出力音s^
4,tC(1≦t≦T)とS125で生成した窓関数ベクトルz
t(1≦t≦T)から、出力音s^
t(1≦t≦T)を生成する(S127)。具体的には、出力音s^
tは式(36)により計算される。
【0134】
目的関数計算部130は、S120で推定した出力音s^
t(1≦t≦T)とS115で生成した目的音s
t(1≦t≦T)から、出力音の推定誤差を示す目的関数T(Θ
A, Θ
1, Θ
2, Θ
3, Θ
4)の値を計算する(S130)。目的関数T(Θ
A, Θ
1, Θ
2, Θ
3, Θ
4)は、時間領域で定義された関数、特にブロック単位での出力音の推定誤差E(s
t, s^
t)を用いて定義される関数であればどのようなものでもよい。例えば、次式のように絶対平均誤差を用いて目的関数T(Θ
A, Θ
1, Θ
2, Θ
3, Θ
4)を定義してもよい(式(17)参照)。
【0136】
この場合、E(s
t, s^
t)=||s
t-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)から、観測信号x
t(1≦t≦T、Tは2以上の整数)を生成する(S215)。生成方法は、S115と同様でよい。
【0144】
音源強調処理部120は、パラメータΘ
A, Θ
1, Θ
2, Θ
3, Θ
4を用いて、S215で生成した観測信号x
t(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】
また、この形態では、コンピュータ上で所定のプログラムを実行させることにより、ハードウェアエンティティを構成することとしたが、これらの処理内容の少なくとも一部をハードウェア的に実現することとしてもよい。