PyTorch 中以音频为中心的损失函数的集合。
项目描述
设置
pip install auraloss
用法
import torch
import auraloss
mrstft = auraloss.freq.MultiResolutionSTFTLoss()
input = torch.rand(8,1,44100)
target = torch.rand(8,1,44100)
loss = mrstft(input, target)
损失函数
我们将损失函数分类为时域或频域方法。此外,我们还包括感知变换。
| 损失函数 | 界面 | 参考 |
|---|---|---|
| 时域 | ||
| 误差信号比 (ESR) | auraloss.time.ESRLoss() |
赖特和瓦利马基,2019 |
| 直流误差 (DC) | auraloss.time.DCLoss() |
赖特和瓦利马基,2019 |
| 对数双曲余弦 (Log-cosh) | auraloss.time.LogCoshLoss() |
陈等人,2019 |
| 信噪比 (SNR) | auraloss.time.SNRLoss() |
|
| 尺度不变的信号失真 比 (SI-SDR) |
auraloss.time.SISDRLoss() |
Le Roux 等人,2018 年 |
| 尺度相关的信号失真 比 (SD-SDR) |
auraloss.time.SDSDRLoss() |
Le Roux 等人,2018 年 |
| 频域 | ||
| 聚合 STFT | auraloss.freq.STFTLoss() |
阿里克等人,2018 |
| 聚合梅尔尺度 STFT | auraloss.freq.MelSTFTLoss(sample_rate) |
|
| 多分辨率 STFT | auraloss.freq.MultiResolutionSTFTLoss() |
山本等人,2019* |
| 随机分辨率 STFT | auraloss.freq.RandomResolutionSTFTLoss() |
Steinmetz & Reiss, 2020 |
| 和差 STFT 损失 | auraloss.freq.SumAndDifferenceSTFTLoss() |
斯坦梅茨等人,2020 |
| 感知变换 | ||
| 和差信号变换 | auraloss.perceptual.SumAndDifference() |
|
| FIR 预加重滤波器 | auraloss.perceptual.FIRFilter() |
赖特和瓦利马基,2019 |
* Wang 等人,2019 年还提出了多分辨率光谱损失(Engel 等人,2020 年遵循),但它们不包括Arik 等人介绍的对数幅度(L1 距离)和光谱收敛项。 , 2018 年,然后扩展到Yamamoto 等人,2019 年的多分辨率案例。
例子
目前,我们包含一个使用一组损失函数来训练 TCN 以对模拟动态范围压缩器进行建模的示例。有关详细信息,请参阅 中的详细信息examples/compressor。我们提供预训练模型、评估脚本来计算论文中的指标,以及重新训练模型的脚本。
您可以根据STFTLoss课程做一些更高级的事情。例如,您可以计算线性和对数缩放的 STFT 误差,如Engel et al., 2020中所述。在这种情况下,我们不包括光谱收敛项。
stft_loss = auraloss.freq.STFTLoss(w_log_mag=1.0,
w_lin_mag=1.0,
w_sc=0.0, )
还有一个 Mel-scaled STFT loss,它有一些特殊的要求。这种损失需要您设置采样率并指定正确的设备。
sample_rate = 44100
melstft_loss = auraloss.freq.MelSTFTLoss(sample_rate, device="cuda")
您还可以轻松构建具有 64 个 bin 的多分辨率 Mel-scaled STFT loss。确保传递要比较的张量所在的正确设备。
mrmelstft_loss = auraloss.freq.MultiResolutionSTFTLoss(scale="mel",
n_bins=64,
sample_rate=sample_rate,
device="cuda")
发展
我们目前没有测试,但这些测试也将很快推出,因此请谨慎行事。未来要包含的损失函数将针对基于神经网络的感知损失,这往往比我们迄今为止所包含的要复杂一些。
如果您有兴趣添加损失函数,请提出拉取请求。
要添加的损失函数
引用
如果您在工作中使用此代码,请考虑引用我们。
@inproceedings{steinmetz2020auraloss,
title={auraloss: {A}udio focused loss functions in {PyTorch}},
author={Steinmetz, Christian J. and Reiss, Joshua D.},
booktitle={Digital Music Research Network One-day Workshop (DMRN+15)},
year={2020}}
项目详情
下载文件
下载适用于您平台的文件。如果您不确定要选择哪个,请了解有关安装包的更多信息。
源分布
auraloss-0.2.2.tar.gz
(15.7 kB
查看哈希)
内置分布
auraloss-0.2.2-py3-none-any.whl
(15.6 kB
查看哈希)