Abstract
文章提出了一种深度卷积GAN,它利用MP3/Vorbis音频压缩技术产生长距离、高质量的音频样本。该模型采用了一种改进的离散余弦变换(MDCT)数据表示方法,它包含了所有的相位信息。因此相位生成是模型主要的一部分。文章利用人耳的听觉掩蔽和心理声学感知极限来扩大真实分布,稳定训练过程。模型结构是一个二维卷积网络,其中每个后续生成器模型块沿时间轴增加分辨率,沿频率轴增加更高的倍频程。更深的层与输出的所有部分相连接,并具有完整轨道的上下文, 这使得能够生成长距离依赖的样本。 我们使用MP3net在单个TPUv2上训练250小时后,以22kHz的采样率创建95s立体声音轨。
Introduction
图像生成领域的巨大进步使得生成模型能够生成与真实图像不可区分的高分辨率图像。音乐生成领域之前的做法主要集中在生成乐谱。 对于这样的模型,最终的声音转换依赖于合成的音乐声音(例如MIDI文件)将符号音乐转换成音频信号。这种方法降低了音频生成问题的维数,但将输出限制为合成声音集的组合。随着近年来计算能力的提高,生成音频模型已经转向直接生成原始音频。 20秒的44.1kHZ的和16位的音频大概为3.4M。 现在可以生成几分钟长的不同且连贯的音频样本。然而,这些生成模型需要大量的计算能力。
另一方面,音频是消费类电子设备不可或缺的一部分,其计算能力要少得多。这在很大程度上是由于音频压缩技术,如MP3和Vorbis压缩成更小的数据格式的音频数据。 MP3将音频大小压缩到原来的75%~93%, 这项技术主要依赖两个方面。 首先, 他利用 了人耳心理声学感知的属性, 如果一个音频信号低于听力阈值,那么人耳就接收不到。 特定的更响的声音会遮蔽掉更小声的声音, 即便单独播放时可以听见。 第二是使用了哈夫曼编码, 减少了数据的大小。 对于(卷积)神经网络来说,哈夫曼编码不是一种容易解析的数据格式,因为编码的长度是可变的。另一方面,心理声学特性允许我们在没有听觉冲击的情况下从音频信号中移除大量数据,从而降低了生成原始音频样本所需的计算能力模型。
耳朵的心理声学特性通常用频域表示,因此MP3net首先使用改进的离散余弦变换(MDCT)转换音频信号。和其他的傅里叶相关的变换相比, MDCT变换的优点是这是在时域里的变换。 原始音频的所有相位信息都被编码了,因此不需要使用复数或者用逆变换来重构相位的信息。此外,与其他傅里叶变换相比,MDCT以较少的幅度分量压缩原始音频信号。
在这项工作中, 我们使用了MDCT幅度来表示音频,并使用了二维的卷积生成对抗网络(GAN)。在判别器的第一层网络中, 我们在数据表示中加入了人耳听不见的心理声学噪声, 和MP3编码中的量化噪声相似。 我们网络的结构受到了ProGAN的启发, 但有个显著不同的是, 不随生成器/鉴别器中的每个连续模型块沿频率轴增加/减少像素密度。相反,每个模型块沿频率轴添加/删除一个八度。
MP3net 不需要频谱的逆变换, 因为在数据表示中已经包含了相位信息。 通过对模型的顶层网络进行更深层次的权重冻结训练,可以消除音频中的噪声和刺耳声。
Model
MDCT
给定信号
x
(
t
)
,
t
∈
[
0
,
T
]
x(t), t\in[0,T]
x(t),t∈[0,T], 采样频率是
f
s
=
1
/
t
0
f_s=1/t_0
fs=1/t0, 将采样点分成M组, 长度为N:
x
(
(
m
N
+
n
)
t
0
)
w
i
t
h
{
n
=
0
,
.
.
.
,
N
−
1
m
=
0
,
.
.
.
,
M
−
1
x((mN+n)t_0) with \left\{ \begin{aligned} n=0,...,N-1\\ m=0,...,M-1 \end{aligned} \right.
x((mN+n)t0)with{n=0,...,N−1m=0,...,M−1
where
T
=
N
M
t
0
T=NMt_0
T=NMt0
对每一组信号进行以下线性变换, 计算MDCT幅度值
A
k
(
m
)
A_k(m)
Ak(m):
A
k
(
m
)
=
∑
n
=
0
2
N
−
1
x
(
(
m
N
+
n
)
t
0
)
w
n
c
o
s
[
π
N
(
n
+
1
2
+
N
2
)
(
k
+
1
2
)
]
A_k(m)=\sum _{n=0}^{2N-1}x((mN+n)t_0)w_n cos[\frac{\pi}{N}(n+\frac{1}{2}+\frac{N}{2})(k+\frac{1}{2})]
Ak(m)=n=0∑2N−1x((mN+n)t0)wncos[Nπ(n+21+2N)(k+21)]
where k = 0…N-1, k是与以下频率滤波器带对应的频率指数:
[
f
k
0
,
f
k
0
+
f
s
2
N
]
=
[
f
s
2
N
k
,
f
s
2
N
(
k
+
1
)
]
[f_k^0,f_k^0+\frac{f_s}{2N}]=[\frac{f_s}{2N}k,\frac{f_s}{2N}(k+1)]
[fk0,fk0+2Nfs]=[2Nfsk,2Nfs(k+1)]
离散的窗函数
w
n
w_n
wn满足:
w
n
=
w
2
N
−
1
−
1
w
n
2
+
w
n
+
N
2
=
1
w_n = w_{2N-1 -1}\\ w_n^2+w_{n+N}^2=1
wn=w2N−1−1wn2+wn+N2=1
这个约束条件保证MDCT变换是可逆的, 因此,MDCT是原始音频信号的无损线性变换。 我们在实验中使用的窗函数是:
w
n
=
s
i
n
(
π
2
s
i
n
2
[
π
2
N
(
n
+
1
2
)
]
)
w_n = sin(\frac{\pi}{2}sin^2[\frac{\pi}{2N}(n+\frac{1}{2})])
wn=sin(2πsin2[2Nπ(n+21)])
MDCT 变换和STFT变换相似,
A
^
k
(
m
)
=
∑
inf
inf
x
(
n
T
)
w
n
−
m
(
cos
k
n
−
i
sin
k
n
)
\hat A_k(m) = \sum_{\inf}^{\inf} x(nT)w_{n-m}(\cos kn - i \sin kn)
A^k(m)=inf∑infx(nT)wn−m(coskn−isinkn)
和STFT相比, MDCT变换的幅度值
A
k
(
m
)
A_k(m)
Ak(m)是实数值, STFT的幅度值
A
^
k
(
m
)
\hat A_k(m)
A^k(m)是复数。 STFT的频谱是
∣
A
^
k
(
m
)
∣
2
|\hat A_k(m)|^2
∣A^k(m)∣2, 将原始音频的相位信息丢失了。 因此生成印谱的时候也需要生成相应的相位来还原信号。 Griffin-Lim和其他方法就是用于重构相位。 与其它离散变换(如STFT)相比,MDCT具有很强的能量压缩特性, 也就是说,要携带相同数量的信息,需要较少的非零振幅。最后,MDCT表示允许利用心理声学过滤效果。
MP3net直接使用MDCT表示,因此,不去除隐含的相位信息,并且受益于音频信号在小幅度中的压缩。图1为音频相应的MDCT和谱图表示。
我们观察到,在我们的模型中表示音频信号时,不将振幅转换为(有符号的)对数比例(dB)有利于模型的收敛性和表达能力。因为MDCT是一个线性变换, 两个样本的叠加是通过增减对应的振幅达到的。 我们假设这有助于模型能够很容易地从不同的特征通道叠加不同的声音来生成输出。不转换的另一个好处是允许使用渐进式训练来减少训练时间。
Psychoacoustic filter
人耳是无法区分所有可能的原始音频信号。这种现象称为心理声学滤波, 从数学上,该滤波器可以用频谱表示, 使音频数据的MDCT 或 STFT变换为更自然的表示。
心理声学滤波器包含两个关键的特征。 首先, 滤波器利用人耳无法听见绝对静音的事实。 人耳的感知水平取决于音调的频率。 根据听觉实验, 这个绝对阈值的振幅强度近似为:
I
a
b
s
o
l
u
t
e
t
h
r
e
s
h
o
l
d
,
j
=
1
0
1
10
L
a
b
s
o
l
u
t
e
t
h
r
e
s
h
o
l
d
(
f
j
)
L
a
b
s
o
l
u
t
e
t
h
r
e
s
h
o
l
d
(
f
)
[
d
B
]
=
3.64
f
−
0.8
−
6.5
e
−
0.6
(
f
−
3.3
)
2
+
1
0
−
3
f
4
I_{absolute\ threshold,j} = 10^{\frac{1}{10} L_{absolute \ threshold}(f_j)}\\ L_{absolute \ threshold}(f)[dB]= 3.64f^{-0.8}-6.5e^{-0.6(f-3.3)^2} +10^{-3}f^4
Iabsolute threshold,j=10101Labsolute threshold(fj)Labsolute threshold(f)[dB]=3.64f−0.8−6.5e−0.6(f−3.3)2+10−3f4
这里的
f
f
f是频率, 单位是KHZ。这个函数通常近似为一个递进函数, 其中
L
a
b
s
o
l
u
t
e
t
h
r
e
s
h
o
l
d
L_{absolute threshold}
Labsolutethreshold在一定的频率范围内是一个常数。在实验中, 这些频率范围被确定为临界带,
f
j
f_j
fj是每隔临界带的中点。
蓝线: 频谱
绿线: 绝对阈值
绿色区域: 由于人耳感知能力限制, 人耳听不见的振幅区域
黄色区域: 黄色区域也是人耳听不见的区域
第二个心理声学效应是更大的噪音可以使人耳听不见较小的声音, 即便这个较小的声音是在绝对阈值之上的。 这个掩蔽效应也是依赖于频率的。振幅
A
j
A_j
Aj的频率j离掩蔽振幅
A
i
A_i
Ai的频率i越远, 那么掩蔽效应越弱, 他们之间满足以下关系:
I
m
a
s
k
,
j
=
(
∑
i
(
A
i
2
)
α
1
0
α
10
(
f
i
j
−
O
j
)
)
1
α
f
i
j
=
15.81
+
7.5
(
i
−
j
+
0.474
)
−
17.5
1
+
(
i
−
j
+
0.474
)
2
O
j
=
τ
(
14.5
+
j
)
+
(
1
−
τ
)
5.5
I_{mask,j}=(\sum _i (A_i^2)^{\alpha} 10^{\frac{\alpha}{10}(f_{ij}-O_j)})^{\frac{1}{\alpha}}\\ f_{ij} = 15.81+7.5(i-j+0.474)-17.5\sqrt{1+(i-j+0.474)^2}\\ O_j=\tau(14.5+j)+(1-\tau)5.5
Imask,j=(i∑(Ai2)α1010α(fij−Oj))α1fij=15.81+7.5(i−j+0.474)−17.51+(i−j+0.474)2
Oj=τ(14.5+j)+(1−τ)5.5
f
i
j
f_{ij}
fij是扩散函数,
O
j
O_j
Oj是补偿函数
α
\alpha
α:一个固定的非线性超参数
τ
\tau
τ: 由谱平坦度度量[我还没弄懂]给出的振幅谱
A
k
A_k
Akd的调性
τ
=
m
i
n
(
1
,
10
−
60
d
B
log
10
e
x
p
(
1
N
∑
k
ln
A
k
)
1
N
∑
k
A
k
)
\tau = min(1, \frac{10}{-60dB}\log_{10} \frac{exp(\frac{1}{N}\sum_k \ln A_k)}{\frac{1}{N}\sum_k A_k})
τ=min(1,−60dB10log10N1∑kAkexp(N1∑klnAk))
0是白噪声, 1 是纯音。
在MP3压缩中, 所有的振幅都被量化为整数:
A
k
(
m
)
≈
a
k
(
m
)
max
(
I
a
b
s
o
l
u
t
e
t
h
r
e
s
h
o
l
d
,
k
,
I
m
a
s
k
,
k
)
A_k(m) \approx a_k(m) \max(I_{absolute\ threshold,k}, I_{mask,k})
Ak(m)≈ak(m)max(Iabsolute threshold,k,Imask,k)
这个离散化过程引入了一个大小不可听见的量化误差:
1
2
max
(
I
a
b
s
o
l
u
t
e
t
h
r
e
s
h
o
l
d
,
k
,
I
m
a
s
k
,
k
)
\frac{1}{2}\max(I_{absolute\ threshold,k}, I_{mask,k})
21max(Iabsolute threshold,k,Imask,k)
在MP3格式中,每个Bark频带的听觉阈值与使用哈夫曼编码的整数倍一起存储。
在生成模型中,两个不同音频信号之间的心理声学听觉等价性可以用来提高训练的稳定性和收敛性。或者,它可以用来降低问题的维数。
在MP3net中,我们选择在真实样本和生成样本进入鉴别器之前,将标准偏差与量化误差成比例的高斯噪声添加到MDCT振幅中。 根据他人的研究表明, 这个过程提高了GAN训练过程的稳定性,因为它平滑了真实分布和生成分布的分布,扩展了对这两个分布的支持。
在我们模型的早期版本中,我们将心理声学滤波器实现为类似于Leaky ReLU的可微投影。这个投影算子通过减弱听不见的频率将真实和生成的样本投影到低维流形上。然而,该模型产生更好的结果与高斯噪声的方法。同样, 心理声学效应同样也适用于VAE生成模型。
Network architecture
2D convolutions to up- and downscale the MDCT amplitude representation
我们的模型结构是基于ProGAN网络,由连续的模型块组成。 这些模型块分别使用生成器和判别器中跨步二维卷积来放大或缩小图像。神生成器中每个模型块将前一层的激活张量作为输入, 并计算一个分辨率加倍的激活张量作为输出。 输出张量的结构使得输入的每隔像素被2*2像素替换。类似的, 判别器的模块将输入的激活张量的分辨率减半。
为了构建一个相似的能够将音频分辨率成倍增加的卷积网络,可以提高MDCT振幅张量所表示的分辨率。 首先,可以通过增强块的数量
M
→
2
M
M \rightarrow 2M
M→2M将采样率加倍
f
s
→
2
f
s
f_s \rightarrow 2f_s
fs→2fs.
x
(
m
^
N
t
0
+
n
t
0
2
)
n
=
0
,
1
,
2....
N
−
1
m
^
=
0
,
1
2
,
1
,
3
2
,
.
.
.
,
M
−
3
2
,
M
−
1
,
M
−
1
2
x(\hat m N t_0+n\frac{t_0}{2})\\ n=0,1,2....N-1\\ \hat m = 0,\frac{1}{2},1,\frac{3}{2},..., M-\frac{3}{2},M-1,M-\frac{1}{2}
x(m^Nt0+n2t0)n=0,1,2....N−1m^=0,21,1,23,...,M−23,M−1,M−21
从上式可以看出, 和图像相似, 输入第m块激活张量
A
k
(
m
)
A_k(m)
Ak(m), 输出两个块
m
^
=
m
a
n
d
m
+
1
/
2
\hat m = m\ and \ m+1/2
m^=m and m+1/2的激活张量
A
k
^
(
m
^
)
\hat {A_k}(\hat m)
Ak^(m^)。同时注意到滤波带N的数量并没有改变, 那么相应的滤波带的频率要增加为原来的两倍:
f
^
k
0
=
(
2
f
s
)
2
N
k
\hat f_k^0 = \frac{(2f_s)}{2N}k
f^k0=2N(2fs)k
同样也可以通过增加块的大小
N
→
2
N
N\rightarrow 2N
N→2N来加倍采样率:
x
(
(
m
2
N
+
n
^
)
t
0
2
)
w
i
t
h
{
n
^
=
0
,
.
.
.
,
2
N
−
1
m
=
0
,
.
.
.
,
M
−
1
x((m2N+\hat n)\frac{t_0}{2})\ with \left\{ \begin{aligned} \hat n=0,...,2N-1\\ m=0,...,M-1 \end{aligned} \right.
x((m2N+n^)2t0) with{n^=0,...,2N−1m=0,...,M−1
此时输出的激活张量
A
^
k
^
(
m
)
\hat A_{\hat k}(m)
A^k^(m)没有改变, 但是滤波带中相应的频率为:
f
^
k
0
=
2
f
s
2
(
2
N
)
k
^
k
^
=
0
,
1
,
.
.
.
N
−
1
,
(
N
.
.
.
2
N
−
1
)
\hat f_k^0 = \frac{2f_s}{2(2N)}\hat k\\ \hat k = 0,1,...N-1,(N...2N-1)
f^k0=2(2N)2fsk^k^=0,1,...N−1,(N...2N−1)
这里我们可以看到每隔频率分量k并没有被两个相应的频率
k
^
=
k
a
n
d
k
+
1
/
2
\hat k= k \ and \ k+1/2
k^=k and k+1/2,相反, 这里首先从输入张量中得到N个原始频率, 再添加N个新的更高的频率。更直观地说, 可以理解成在MDCT振幅的表示中增加一个新的N个频率的高八度, 实际上, 这些指数为偶数k的新频率是输入激活张量中存在的最高倍程的两倍:
f
^
2
k
0
=
2
f
k
0
w
h
e
r
e
k
=
N
2
,
.
.
.
,
N
−
1
\hat f_{2k}^0 = 2f_k^0\ where k = \frac{N}{2},...,N-1
f^2k0=2fk0 wherek=2N,...,N−1
给定这个关系后, 我们可以将最高倍频程(
k
=
N
2
,
.
.
.
,
N
−
1
k = \frac{N}{2},...,N-1
k=2N,...,N−1)的振幅作为输入张量, 然后使用步长为2的反卷积操作来生成新的更高pitch的倍频程, 之后将新生成的倍频程和输入的振幅拼接起来。
使用以上方法我们构建 了一个生成器, 能够将频率分量的数量增加一倍, 将块的数量增加到四倍。 为了使模型能够平衡新产生的八度和低八度的MDCT振幅, 我们引入了一个步长为11, 卷积核为11的卷积层, 在拼接之前不进行激活。
判别器模型块与发生器模型块的结构相同,除了倍频程平衡层的位置外,层顺序相反。在生成器中,这一层正好位于下采样最高倍频程与较低倍频程相加之前。
Overall model architecture
这个模型是一个带有梯度乘法的WGAN, 真实的振幅和生成的MDCT振幅经过声学心理层然后加入高斯噪声。
Experiments with the MAESTRO dataset
MAESTRO dataset
MAESTRO-V2.0.0 dataset2:00h+的古典钢琴曲
Training details
两个实验:
- 生成95秒的音频来评测长时依赖, 音乐性, 多样性
- 对模型重新配置, 生成5秒的样本来测试音频的质量和节奏
95-SECOND MODEL
使用512维潜空间和6个子序列模型块。
生成器的输出维度为16,3841282。将网络特征通道数控制在512, 因此模型的大小为每个TPUv2为8G。batch size=8,并将具有大块长度的激活上的卷积分解为沿着批维度的多个卷积,以避免批维度上的TPU填充开销。发生器和鉴别器各有5900万个参数。我们使用了Adam optmizer,学习率为0.0001,β1=0.5,β2=0.9。