{"adoption": {"forks": 131, "observed_at": "2026-08-28T04:04:14.880086+00:00", "stars": 1286}, "canonical_url": "https://ross.abutalabs.com/products/parselmouth", "card": {"archived": false, "artifact_type": "library", "description": "Praat in Python, the Pythonic way", "domain": ["speech-processing"], "enriched": true, "function": ["audio-processing"], "health_score": 95, "homepage": "https://parselmouth.readthedocs.io/", "language": "C++", "license": "GPL-3.0", "license_family": "copyleft", "maturity": "stable", "member_repos": ["YannickJadoul/Parselmouth"], "name": "YannickJadoul/Parselmouth", "platform": ["python", "cross-platform", "windows"], "pushed_at": "2026-08-21T20:13:39+00:00", "repo": "YannickJadoul/Parselmouth", "stars": 1286, "tags": ["praat", "phonetics", "speech-analysis", "acoustic-analysis", "pitch-analysis", "formants", "spectrogram", "python-bindings", "jupyter", "audio", "linux", "macos"], "topics": [], "urls": [], "use_cases": ["analyze speech audio with Praat algorithms from Python", "extract pitch contours and formants from wav files", "compute spectrograms and intensity programmatically", "batch-process audio files for phonetic research", "automate Praat analyses without writing Praat scripts", "integrate acoustic measurements into NumPy and matplotlib pipelines"], "what_it_is": "Parselmouth is a Python library that exposes Praat's internal C/C++ speech and acoustic analysis code through a complete, Pythonic interface. Because it links directly to Praat's source rather than wrapping its scripting language, analysis results are identical to those produced by Praat itself.", "when_to_avoid": ["You need speech recognition or transcription rather than acoustic analysis", "You only need audio playback, editing, or format conversion that simpler audio libraries cover", "You are not working in Python and just want the standalone Praat application"], "when_to_choose": ["You need Praat-identical analysis results inside a Python workflow", "You want to script or automate acoustic/phonetic analyses at scale instead of using Praat's GUI or scripting language", "You are building scientific pipelines that combine speech analysis with NumPy, SciPy, or matplotlib"]}, "data_as_of": "2026-08-30T08:39:29.467469+00:00", "members": [{"path": "/products/parselmouth", "repo": "YannickJadoul/Parselmouth", "role": "main", "score": 74}], "provenance": {"archived": {"kind": "observed", "observed_at": "2026-08-28T04:04:14.880086+00:00", "source": "github"}, "artifact_type": {"confidence": null, "enriched_at": "2026-08-30T04:56:08.088301+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "2d36db3463b9201f85e4ff3bc94defd62b3642cc936d51429c259bb0a7e31525", "fetched_at": "2026-08-28T04:04:14.880086+00:00", "kind": "readme", "missing": false, "url": "https://github.com/YannickJadoul/Parselmouth"}], "taxonomy_version": 1}, "description": {"kind": "observed", "observed_at": "2026-08-28T04:04:14.880086+00:00", "source": "github"}, "domain": {"confidence": null, "enriched_at": "2026-08-30T04:56:08.088301+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "2d36db3463b9201f85e4ff3bc94defd62b3642cc936d51429c259bb0a7e31525", "fetched_at": "2026-08-28T04:04:14.880086+00:00", "kind": "readme", "missing": false, "url": "https://github.com/YannickJadoul/Parselmouth"}], "taxonomy_version": 1}, "enriched": {"inputs": [], "kind": "computed", "method": "enrichment_status"}, "function": {"confidence": null, "enriched_at": "2026-08-30T04:56:08.088301+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "2d36db3463b9201f85e4ff3bc94defd62b3642cc936d51429c259bb0a7e31525", "fetched_at": "2026-08-28T04:04:14.880086+00:00", "kind": "readme", "missing": false, "url": "https://github.com/YannickJadoul/Parselmouth"}], "taxonomy_version": 1}, "health_score": {"inputs": ["days_since_push", "days_since_release", "archived"], "kind": "computed", "method": "health_v1"}, "homepage": {"kind": "observed", "observed_at": "2026-08-28T04:04:14.880086+00:00", "source": "github"}, "language": {"kind": "observed", "observed_at": "2026-08-28T04:04:14.880086+00:00", "source": "github"}, "license": {"kind": "observed", "observed_at": "2026-08-28T04:04:14.880086+00:00", "source": "github"}, "license_family": {"inputs": ["license"], "kind": "computed", "method": "license_family"}, "maturity": {"confidence": null, "enriched_at": "2026-08-30T04:56:08.088301+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "2d36db3463b9201f85e4ff3bc94defd62b3642cc936d51429c259bb0a7e31525", "fetched_at": "2026-08-28T04:04:14.880086+00:00", "kind": "readme", "missing": false, "url": "https://github.com/YannickJadoul/Parselmouth"}], "taxonomy_version": 1}, "member_repos": {"kind": "observed", "observed_at": "2026-08-28T04:04:14.880086+00:00", "source": "github"}, "name": {"kind": "observed", "observed_at": "2026-08-28T04:04:14.880086+00:00", "source": "github"}, "platform": {"confidence": null, "enriched_at": "2026-08-30T04:56:08.088301+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "2d36db3463b9201f85e4ff3bc94defd62b3642cc936d51429c259bb0a7e31525", "fetched_at": "2026-08-28T04:04:14.880086+00:00", "kind": "readme", "missing": false, "url": "https://github.com/YannickJadoul/Parselmouth"}], "taxonomy_version": 1}, "pushed_at": {"kind": "observed", "observed_at": "2026-08-28T04:04:14.880086+00:00", "source": "github"}, "repo": {"kind": "observed", "observed_at": "2026-08-28T04:04:14.880086+00:00", "source": "github"}, "stars": {"kind": "observed", "observed_at": "2026-08-28T04:04:14.880086+00:00", "source": "github"}, "tags": {"confidence": null, "enriched_at": "2026-08-30T04:56:08.088301+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "2d36db3463b9201f85e4ff3bc94defd62b3642cc936d51429c259bb0a7e31525", "fetched_at": "2026-08-28T04:04:14.880086+00:00", "kind": "readme", "missing": false, "url": "https://github.com/YannickJadoul/Parselmouth"}], "taxonomy_version": 1}, "topics": {"kind": "observed", "observed_at": "2026-08-28T04:04:14.880086+00:00", "source": "github"}, "urls": {"kind": "observed", "observed_at": "2026-08-28T04:04:14.880086+00:00", "source": "github"}, "use_cases": {"confidence": null, "enriched_at": "2026-08-30T04:56:08.088301+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "2d36db3463b9201f85e4ff3bc94defd62b3642cc936d51429c259bb0a7e31525", "fetched_at": "2026-08-28T04:04:14.880086+00:00", "kind": "readme", "missing": false, "url": "https://github.com/YannickJadoul/Parselmouth"}], "taxonomy_version": 1}, "what_it_is": {"confidence": null, "enriched_at": "2026-08-30T04:56:08.088301+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "2d36db3463b9201f85e4ff3bc94defd62b3642cc936d51429c259bb0a7e31525", "fetched_at": "2026-08-28T04:04:14.880086+00:00", "kind": "readme", "missing": false, "url": "https://github.com/YannickJadoul/Parselmouth"}], "taxonomy_version": 1}, "when_to_avoid": {"confidence": null, "enriched_at": "2026-08-30T04:56:08.088301+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "2d36db3463b9201f85e4ff3bc94defd62b3642cc936d51429c259bb0a7e31525", "fetched_at": "2026-08-28T04:04:14.880086+00:00", "kind": "readme", "missing": false, "url": "https://github.com/YannickJadoul/Parselmouth"}], "taxonomy_version": 1}, "when_to_choose": {"confidence": null, "enriched_at": "2026-08-30T04:56:08.088301+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "2d36db3463b9201f85e4ff3bc94defd62b3642cc936d51429c259bb0a7e31525", "fetched_at": "2026-08-28T04:04:14.880086+00:00", "kind": "readme", "missing": false, "url": "https://github.com/YannickJadoul/Parselmouth"}], "taxonomy_version": 1}}, "score": {"components": {"activity": 98, "longevity": 100, "rhythm": 27}, "computed_at": "2026-09-03T02:20:16.233290+00:00", "flags": [], "formula": "round(0.45*activity + 0.35*rhythm + 0.20*longevity); archived -> min(score, 10)", "inputs": {"age_days": 3375, "days_push": 12, "days_rel": 279, "gap_med": 206.0, "n_releases_24m": 3}, "score": 74, "version": 2}, "staleness": {"enrichment_outdated": false, "low_confidence": false, "scrape_days": 9, "stale_scrape": false}}