Implementation of the YAAPT pitch tracker in PyTorch.
This version relies solely on PyTorch, does not hog all CPU threads (making it possible to use in a dataloader),
is torch.jit-able, and is batch compatible.
For using (no development required)
pip install yaapt.torchTo install for development, clone the repository, and then run the following from within the root directory.
pip install -e .import torchaudio, yaapt_torch
audio, sr = torchaudio.load("audio.wav")
yaapt_opts = {
"sr": sr,
"frame_length": 35.0,
"frame_space": 20.0,
"nccf_thresh1": 0.25,
"tda_frame_length": 25.0,
}
pitch = yaapt_torch.yaapt(
audio, # (Batch, feature) torch.tensor input
yaapt_opts,
)
print(pitch) # (Batch, F0) torch.tensor output- The original NumPy/SciPy/Python program was written by Bernardo Jose B. (https://github.com/bjbschmitt).
- The original MATLAB program was written by Hongbing Hu and Stephen A. Zahorian (http://www.ws.binghamton.edu/zahorian/yaapt.htm).
This repository aims to wrap up these implementations in easy-installable PyPi packages, which can be used directly in PyTorch based neural network training.
If you find this repository useful, please cite our project:
@misc{yaapt_torch,
author = {Pierre Champion},
title = {The YAAPT pitch tracker in PyTorch},
year = {2024},
publisher = {GitHub},
journal = {GitHub repository},
howpublished = {\url{https://github.com/pchampio/yaapt.torch}},
}