  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. While neural pitch
trackers have historically been significantly slower than signal processing
based pitch trackers, our estimator implementations approach the speed of
state-of-the-art DSP-based pitch estimators on a standard CPU, but with
significantly more accurate pitch and periodicity estimation. Our experiments
show that an accurate, cross-domain pitch and periodicity estimator written in
PyTorch with a hopsize of ten milliseconds can run 11.2x faster than real-time
on a Intel i9-9820X 10-core 3.30 GHz CPU or 408x faster than real-time on a
NVIDIA GeForce RTX 3090 GPU, without hardware optimization. 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.
