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:
Metadata
Release files for pitchsqueezer 0.1.0
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| pitchsqueezer-0.1.0.tar.gz | 26.9 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| pitchsqueezer-0.1.0-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 50.2 kB
Release files / pitchsqueezer-0.1.0.tar.gz
| Download URL | pitchsqueezer-0.1.0.tar.gz |
|---|---|
| Size | 26.9 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
e6ca96225e635fd48df82bf25c535727a2237916230512ee8f7cc16882b87d7a
|
|
BLAKE2b-256 checksum How to use checksums |
55016a02a63634d6d5ecb6389e14a485342518940d6fdffa05f4c2484d373235
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/4.0.2 CPython/3.9.18
|
Release files / pitchsqueezer-0.1.0-py3-none-any.whl
| Download URL | pitchsqueezer-0.1.0-py3-none-any.whl |
|---|---|
| Size | 23.3 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
c97867d47cc258558e0cbb368f1c3ccbc75f35235e206f2b83b269205fd3c265
|
|
BLAKE2b-256 checksum How to use checksums |
d86efa7cec4d35c06b5530382aaffbc2df73da44c6c53d88e95b02eb21bf9256
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/4.0.2 CPython/3.9.18
|