This package is written for subband operations.
Project description
torchsubband
This's a package for subband decomposition.
It can transform waveform into three kinds of revertable subband feature representations, which are potentially useful features for music source separation or similar tasks.
Usage
Installation
pip install torchsubband
A simple example:
from torchsubband import SubbandDSP
import torch
# nn.Module
model = SubbandDSP(subband=2) # You can choose 1,2,4, or 8
batchsize=3 # any int number
channel=1 # any int number
length = 44100*2 # any int number
input = torch.randn((batchsize,channel,length))
# Get subband waveform
subwav = model.wav_to_sub(input)
reconstruct_1 = model.sub_to_wav(subwav,length=length)
# Get subband magnitude spectrogram
sub_spec,cos,sin = model.wav_to_mag_phase_sub_spec(input)
reconstruct_2 = model.mag_phase_sub_spec_to_wav(sub_spec,cos,sin,length=length)
# Get subband complex spectrogram
sub_complex_spec = model.wav_to_complex_sub_spec(input)
reconstruct_3 = model.complex_sub_spec_to_wav(sub_complex_spec,length=length)
Reconstruction loss
The following table shows the reconstruction quality. We tried a set of audio to conduct subband decomposition and reconstruction.
Subbands | L1loss | PESQ | SiSDR |
---|---|---|---|
2 | 1e-6 | 4.64 | 61.8 |
4 | 1e-6 | 4.64 | 58.9 |
8 | 5e-5 | 4.64 | 58.2 |
You can also test this program by running the following test script. It will give you some evaluation output.
from torchsubband import test
test()
Citation
If you find our code useful for your research, please consider citing:
@misc{liu2021cwspresunet,
title={CWS-PResUNet: Music Source Separation with Channel-wise Subband Phase-aware ResUNet},
author={Haohe Liu and Qiuqiang Kong and Jiafeng Liu},
year={2021},
eprint={2112.04685},
archivePrefix={arXiv},
primaryClass={cs.SD}
}
@inproceedings{Liu2020,
author={Haohe Liu and Lei Xie and Jian Wu and Geng Yang},
title={{Channel-Wise Subband Input for Better Voice and Accompaniment Separation on High Resolution Music}},
year=2020,
booktitle={Proc. Interspeech 2020},
pages={1241--1245},
doi={10.21437/Interspeech.2020-2555},
url={http://dx.doi.org/10.21437/Interspeech.2020-2555}
}
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distributions
Built Distribution
File details
Details for the file torchsubband-0.0.9-py3-none-any.whl
.
File metadata
- Download URL: torchsubband-0.0.9-py3-none-any.whl
- Upload date:
- Size: 21.0 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/4.0.1 CPython/3.9.12
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | b63f68250b7190b95c48188d4432e24a112c1633cb8cd775bc4ab07d5d8650d8 |
|
MD5 | 53b8b18940d5730651f77b15578d804a |
|
BLAKE2b-256 | 63bfc2157c7f379c69a62cc0b28eb5718015598b72f1ae037bdcc6117473fe51 |