Robust pitch tracker for speech, using synchrosqueezing and spectral autocorrelation
Project description
PitchSqueezer
A pitch tracker for speech, using synchro-squeezed stft and frequency domain autocorrelation, designed to analyze imperfect recordings of spontaneous speech. Relies heavily on the nice ssqueezepy package.
Features:
- (mostly) better quality than popular Python trackers (pyin, pyaapt)
- robust to creaky voices and bad recordings
- does not need finetuning for min and max f0, works fine with both low and high pitched voices
- acceptable speed (~ 10x faster than librosa.pyin)
- (alternatively) a continuous pitch track, filling unvoiced gaps relatively naturally
- a wavelet decomposition of the pitch track (reversible, except for mean value)
- compatible with librosa's pyin and pytorch_audio spectrograms, regarding number of frames
- a command line tool for parallel batch processing of directories (as well as API)
Installation:
soon: pip install pitchsqueezer
Meanwhile, download the repository, and in the directory where pyproject.toml resides, do
pip install .
Examples of basic usage:
;; Command line, extract f0 for all wavs in a directory using 10 ms frame shift, save as numpy files
$ pitch_squeezer path/to/wavs/ -r 100 -f npy
;; API
import pitch_squeezer as ps
f0, if0 = ps.track_pitch(input_file, min_hz=50, max_hz=500)
f0_cwt = ps.f0_cwt(if0)
docs: https://asuni.github.io/PitchSqueezer/
Visualization of the method:
comparison with librosa.pyin on creaky female voice:
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 Distribution
pitchsqueezer-0.1.0.tar.gz
(26.9 kB
view hashes)
Built Distribution
Close
Hashes for pitchsqueezer-0.1.0-py3-none-any.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | c97867d47cc258558e0cbb368f1c3ccbc75f35235e206f2b83b269205fd3c265 |
|
MD5 | f33a28e168be46973fc379c5b7cac749 |
|
BLAKE2b-256 | d86efa7cec4d35c06b5530382aaffbc2df73da44c6c53d88e95b02eb21bf9256 |