Cross-domain Neural Pitch and Periodicity Estimation
Max Morrison, Caedon Hsieh, Nathan Pruyne, Bryan Pardo
TL;DR
This work tackles cross-domain neural pitch and periodicity estimation for speech and music, addressing limited generalization and speed in existing neural estimators. It introduces a comprehensive set of improvements to baseline predictors, plus a novel entropy-based periodicity extraction, and releases the Penn library for training, evaluation, and inference. The proposed FCNF0++ with entropy-based periodicity and unpitched-frame training achieves state-of-the-art results, with pitch accuracy and voicing decisions robust across domains and CPU speeds approaching those of DSP methods, while GPU inference is significantly faster. Together, these contributions enable fast, accurate, and generalizable pitch and periodicity estimation suitable for real-time and cross-domain audio applications.
Abstract
Pitch is a foundational aspect of our perception of audio signals. Pitch contours are commonly used to analyze speech and music signals and as input features for many audio tasks, including music transcription, singing voice synthesis, and prosody editing. In this paper, we describe a set of techniques for improving the accuracy of widely-used neural pitch and periodicity estimators to achieve state-of-the-art performance on both speech and music. We also introduce a novel entropy-based method for extracting periodicity and per-frame voiced-unvoiced classifications from statistical inference-based pitch estimators (e.g., neural networks), and show how to train a neural pitch estimator to simultaneously handle both speech and music data (i.e., cross-domain estimation) without performance degradation. Our estimator implementations run 11.2x faster than real-time on a Intel i9-9820X 10-core 3.30 GHz CPU$\unicode{x2014}$approaching the speed of state-of-the-art DSP-based pitch estimators$\unicode{x2014}$or 408x faster than real-time on a NVIDIA GeForce RTX 3090 GPU. We release all of our code and models as Pitch-Estimating Neural Networks (penn), an open-source, pip-installable Python module for training, evaluating, and performing inference with pitch- and periodicity-estimating neural networks. The code for penn is available at https://github.com/interactiveaudiolab/penn.
