Name | pitchsqueezer JSON |
Version |
0.1.0
JSON |
| download |
home_page | |
Summary | Robust pitch tracker for speech, using synchrosqueezing and spectral autocorrelation |
upload_time | 2024-01-03 13:43:07 |
maintainer | |
docs_url | None |
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"
}