pitchsqueezer


Namepitchsqueezer JSON
Version 0.1.0 PyPI version JSON
download
home_page
SummaryRobust pitch tracker for speech, using synchrosqueezing and spectral autocorrelation
upload_time2024-01-03 13:43:07
maintainer
docs_urlNone
author
requires_python>=3.7
license
keywords speech analysis pitch prosody tts
VCS
bugtrack_url
requirements No requirements were recorded.
Travis-CI No Travis.
coveralls test coverage No coveralls.
            # 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](https://github.com/OverLordGoldDragon/ssqueezepy/tree/master/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: <img src="images/Figure_1.png">



 comparison with librosa.pyin on creaky female voice: <img src="images/squeezer_vs_pyin.png">

            

Raw data

            {
    "_id": null,
    "home_page": "",
    "name": "pitchsqueezer",
    "maintainer": "",
    "docs_url": null,
    "requires_python": ">=3.7",
    "maintainer_email": "Antti Suni <antti.suni@helsinki.fi>",
    "keywords": "speech analysis,pitch,prosody,tts",
    "author": "",
    "author_email": "Antti Suni <antti.suni@helsinki.fi>",
    "download_url": "https://files.pythonhosted.org/packages/55/01/6a02a63634d6d5ecb6389e14a485342518940d6fdffa05f4c2484d373235/pitchsqueezer-0.1.0.tar.gz",
    "platform": null,
    "description": "# PitchSqueezer\nA pitch tracker for speech, using synchro-squeezed stft and frequency domain autocorrelation, designed to analyze imperfect recordings of spontaneous speech.\nRelies heavily on the nice [ssqueezepy](https://github.com/OverLordGoldDragon/ssqueezepy/tree/master/ssqueezepy]) package.\n\n\nFeatures:\n* (mostly) better quality than popular Python trackers (pyin, pyaapt) \n* robust to creaky voices and bad recordings\n* does not need finetuning for min and max f0, works fine with both low and high pitched voices\n* acceptable speed (~ 10x faster than librosa.pyin)\n* (alternatively) a continuous pitch track, filling unvoiced gaps relatively naturally\n* a wavelet decomposition of the pitch track (reversible, except for mean value) \n* compatible with librosa's pyin and pytorch_audio spectrograms, regarding number of frames\n* a command line tool for parallel batch processing of directories (as well as API)\n\nInstallation: \n```\nsoon: pip install pitchsqueezer\n```\nMeanwhile, download the repository, and in the directory where pyproject.toml resides, do\n```\npip install .\n```\n\nExamples of basic usage:\n```\n;; Command line, extract f0 for all wavs in a directory using 10 ms frame shift, save as numpy files\n$ pitch_squeezer path/to/wavs/ -r 100 -f npy\n\n;; API\nimport pitch_squeezer as ps\nf0, if0 = ps.track_pitch(input_file, min_hz=50, max_hz=500)\nf0_cwt = ps.f0_cwt(if0)\n```\ndocs: https://asuni.github.io/PitchSqueezer/\n\nVisualization of the method: <img src=\"images/Figure_1.png\">\n\n\n\n comparison with librosa.pyin on creaky female voice: <img src=\"images/squeezer_vs_pyin.png\">\n",
    "bugtrack_url": null,
    "license": "",
    "summary": "Robust pitch tracker for speech, using synchrosqueezing and spectral autocorrelation",
    "version": "0.1.0",
    "project_urls": {
        "Bug Reports": "https://github.com/asuni/PitchSqueezer/issues",
        "Funding": "https://donate.pypi.org",
        "Homepage": "https://github.com/asuni/PitchSqueezer",
        "Source": "https://github.com/asuni/PitchSqueezer"
    },
    "split_keywords": [
        "speech analysis",
        "pitch",
        "prosody",
        "tts"
    ],
    "urls": [
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "d86efa7cec4d35c06b5530382aaffbc2df73da44c6c53d88e95b02eb21bf9256",
                "md5": "f33a28e168be46973fc379c5b7cac749",
                "sha256": "c97867d47cc258558e0cbb368f1c3ccbc75f35235e206f2b83b269205fd3c265"
            },
            "downloads": -1,
            "filename": "pitchsqueezer-0.1.0-py3-none-any.whl",
            "has_sig": false,
            "md5_digest": "f33a28e168be46973fc379c5b7cac749",
            "packagetype": "bdist_wheel",
            "python_version": "py3",
            "requires_python": ">=3.7",
            "size": 23251,
            "upload_time": "2024-01-03T13:43:04",
            "upload_time_iso_8601": "2024-01-03T13:43:04.978093Z",
            "url": "https://files.pythonhosted.org/packages/d8/6e/fa7cec4d35c06b5530382aaffbc2df73da44c6c53d88e95b02eb21bf9256/pitchsqueezer-0.1.0-py3-none-any.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "55016a02a63634d6d5ecb6389e14a485342518940d6fdffa05f4c2484d373235",
                "md5": "46e60f5f64f0b10407c1bd9d98db8c37",
                "sha256": "e6ca96225e635fd48df82bf25c535727a2237916230512ee8f7cc16882b87d7a"
            },
            "downloads": -1,
            "filename": "pitchsqueezer-0.1.0.tar.gz",
            "has_sig": false,
            "md5_digest": "46e60f5f64f0b10407c1bd9d98db8c37",
            "packagetype": "sdist",
            "python_version": "source",
            "requires_python": ">=3.7",
            "size": 26926,
            "upload_time": "2024-01-03T13:43:07",
            "upload_time_iso_8601": "2024-01-03T13:43:07.221270Z",
            "url": "https://files.pythonhosted.org/packages/55/01/6a02a63634d6d5ecb6389e14a485342518940d6fdffa05f4c2484d373235/pitchsqueezer-0.1.0.tar.gz",
            "yanked": false,
            "yanked_reason": null
        }
    ],
    "upload_time": "2024-01-03 13:43:07",
    "github": true,
    "gitlab": false,
    "bitbucket": false,
    "codeberg": false,
    "github_user": "asuni",
    "github_project": "PitchSqueezer",
    "travis_ci": false,
    "coveralls": false,
    "github_actions": false,
    "requirements": [],
    "lcname": "pitchsqueezer"
}
        
Elapsed time: 2.72884s