Skip to main content

PyTorch 中以音频为中心的损失函数的集合。

项目描述

光环

PyTorch 中以音频为中心的损失函数的集合。

[ PDF ]

设置

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 查看哈希)

已上传 source

内置分布

auraloss-0.2.2-py3-none-any.whl (15.6 kB 查看哈希

已上传 py3