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
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file pitchsqueezer-0.1.0.tar.gz.
File metadata
- Download URL: pitchsqueezer-0.1.0.tar.gz
- Upload date:
- Size: 26.9 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/4.0.2 CPython/3.9.18
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
e6ca96225e635fd48df82bf25c535727a2237916230512ee8f7cc16882b87d7a
|
|
| MD5 |
46e60f5f64f0b10407c1bd9d98db8c37
|
|
| BLAKE2b-256 |
55016a02a63634d6d5ecb6389e14a485342518940d6fdffa05f4c2484d373235
|
File details
Details for the file pitchsqueezer-0.1.0-py3-none-any.whl.
File metadata
- Download URL: pitchsqueezer-0.1.0-py3-none-any.whl
- Upload date:
- Size: 23.3 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/4.0.2 CPython/3.9.18
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
c97867d47cc258558e0cbb368f1c3ccbc75f35235e206f2b83b269205fd3c265
|
|
| MD5 |
f33a28e168be46973fc379c5b7cac749
|
|
| BLAKE2b-256 |
d86efa7cec4d35c06b5530382aaffbc2df73da44c6c53d88e95b02eb21bf9256
|