{"adoption": {"forks": 247, "observed_at": "2026-08-28T04:03:19.847862+00:00", "stars": 1039}, "canonical_url": "https://ross.abutalabs.com/products/pykaldi", "card": {"archived": false, "artifact_type": "library", "description": "A Python wrapper for Kaldi", "domain": ["speech-processing", "machine-learning", "developer-tools"], "enriched": true, "function": ["speech-recognition", "nlp", "audio-processing", "machine-learning", "parser"], "health_score": 53, "homepage": "https://pykaldi.github.io", "language": "Python", "license": "Apache-2.0", "license_family": "permissive", "maturity": "maintenance", "member_repos": ["pykaldi/pykaldi"], "name": "pykaldi/pykaldi", "platform": ["python", "cpp"], "pushed_at": "2025-11-30T20:55:37+00:00", "repo": "pykaldi/pykaldi", "stars": 1039, "tags": ["kaldi", "openfst", "asr", "wrapper", "clif", "numpy", "feature-extraction", "language-model", "natural-language-processing", "linux", "macos"], "topics": ["python", "wrapper", "kaldi", "openfst", "asr", "speech-recognition", "speech", "language-model", "feature-extraction", "clif", "numpy"], "urls": [], "use_cases": ["run a pre-trained Kaldi ASR model from Python", "extract speech features like MFCCs and ivectors in Python", "manipulate Kaldi lattices and OpenFst FSTs in Python code", "convert Kaldi matrices to NumPy arrays and back", "prototype new speech recognition algorithms without writing C++", "implement custom Kaldi tools in Python", "force-align and segment audio transcripts"], "what_it_is": "PyKaldi is a Python scripting layer providing wrappers for the C++ APIs of the Kaldi speech recognition toolkit and OpenFst library. It enables low-level access to Kaldi functions, objects, and data structures from Python, plus high-level modules for ASR, alignment, and segmentation.", "when_to_avoid": ["you just want a simple pretrained speech-to-text API with no Kaldi knowledge", "you need a maintained, actively developed library with broad community support", "you want end-to-end deep learning ASR like Whisper rather than classic Kaldi/HMM-GMM systems", "you cannot build C++ dependencies, since installation is complex"], "when_to_choose": ["you need low-level access to Kaldi or OpenFst internals from Python", "you are a speech recognition researcher building custom pipelines", "you want to integrate a trained Kaldi system into a Python application", "you need to read, write, or manipulate Kaldi file formats and tables"]}, "data_as_of": "2026-08-30T08:39:29.467469+00:00", "members": [{"path": "/products/pykaldi", "repo": "pykaldi/pykaldi", "role": "main", "score": 47}], "provenance": {"archived": {"kind": "observed", "observed_at": "2026-08-28T04:03:19.847862+00:00", "source": "github"}, "artifact_type": {"confidence": null, "enriched_at": "2026-08-30T07:03:55.210496+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "a0bd84914a79817d8a891c2a9c78a71a0178c92af47093a3c7d093c285cab8df", "fetched_at": "2026-08-28T04:03:19.847862+00:00", "kind": "readme", "missing": false, "url": "https://github.com/pykaldi/pykaldi"}, {"content_hash": "f583adf6bb29047f862ea23fd576e908953fd2e5beeb2a82f7edd737fa9d036f", "fetched_at": "2026-08-29T13:04:59.699226+00:00", "kind": "homepage", "missing": false, "url": "https://pykaldi.github.io"}], "taxonomy_version": 1}, "description": {"kind": "observed", "observed_at": "2026-08-28T04:03:19.847862+00:00", "source": "github"}, "domain": {"confidence": null, "enriched_at": "2026-08-30T07:03:55.210496+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "a0bd84914a79817d8a891c2a9c78a71a0178c92af47093a3c7d093c285cab8df", "fetched_at": "2026-08-28T04:03:19.847862+00:00", "kind": "readme", "missing": false, "url": "https://github.com/pykaldi/pykaldi"}, {"content_hash": "f583adf6bb29047f862ea23fd576e908953fd2e5beeb2a82f7edd737fa9d036f", "fetched_at": "2026-08-29T13:04:59.699226+00:00", "kind": "homepage", "missing": false, "url": "https://pykaldi.github.io"}], "taxonomy_version": 1}, "enriched": {"inputs": [], "kind": "computed", "method": "enrichment_status"}, "function": {"confidence": null, "enriched_at": "2026-08-30T07:03:55.210496+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "a0bd84914a79817d8a891c2a9c78a71a0178c92af47093a3c7d093c285cab8df", "fetched_at": "2026-08-28T04:03:19.847862+00:00", "kind": "readme", "missing": false, "url": "https://github.com/pykaldi/pykaldi"}, {"content_hash": "f583adf6bb29047f862ea23fd576e908953fd2e5beeb2a82f7edd737fa9d036f", "fetched_at": "2026-08-29T13:04:59.699226+00:00", "kind": "homepage", "missing": false, "url": "https://pykaldi.github.io"}], "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:03:19.847862+00:00", "source": "github"}, "language": {"kind": "observed", "observed_at": "2026-08-28T04:03:19.847862+00:00", "source": "github"}, "license": {"kind": "observed", "observed_at": "2026-08-28T04:03:19.847862+00:00", "source": "github"}, "license_family": {"inputs": ["license"], "kind": "computed", "method": "license_family"}, "maturity": {"confidence": null, "enriched_at": "2026-08-30T07:03:55.210496+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "a0bd84914a79817d8a891c2a9c78a71a0178c92af47093a3c7d093c285cab8df", "fetched_at": "2026-08-28T04:03:19.847862+00:00", "kind": "readme", "missing": false, "url": "https://github.com/pykaldi/pykaldi"}, {"content_hash": "f583adf6bb29047f862ea23fd576e908953fd2e5beeb2a82f7edd737fa9d036f", "fetched_at": "2026-08-29T13:04:59.699226+00:00", "kind": "homepage", "missing": false, "url": "https://pykaldi.github.io"}], "taxonomy_version": 1}, "member_repos": {"kind": "observed", "observed_at": "2026-08-28T04:03:19.847862+00:00", "source": "github"}, "name": {"kind": "observed", "observed_at": "2026-08-28T04:03:19.847862+00:00", "source": "github"}, "platform": {"confidence": null, "enriched_at": "2026-08-30T07:03:55.210496+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "a0bd84914a79817d8a891c2a9c78a71a0178c92af47093a3c7d093c285cab8df", "fetched_at": "2026-08-28T04:03:19.847862+00:00", "kind": "readme", "missing": false, "url": "https://github.com/pykaldi/pykaldi"}, {"content_hash": "f583adf6bb29047f862ea23fd576e908953fd2e5beeb2a82f7edd737fa9d036f", "fetched_at": "2026-08-29T13:04:59.699226+00:00", "kind": "homepage", "missing": false, "url": "https://pykaldi.github.io"}], "taxonomy_version": 1}, "pushed_at": {"kind": "observed", "observed_at": "2026-08-28T04:03:19.847862+00:00", "source": "github"}, "repo": {"kind": "observed", "observed_at": "2026-08-28T04:03:19.847862+00:00", "source": "github"}, "stars": {"kind": "observed", "observed_at": "2026-08-28T04:03:19.847862+00:00", "source": "github"}, "tags": {"confidence": null, "enriched_at": "2026-08-30T07:03:55.210496+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "a0bd84914a79817d8a891c2a9c78a71a0178c92af47093a3c7d093c285cab8df", "fetched_at": "2026-08-28T04:03:19.847862+00:00", "kind": "readme", "missing": false, "url": "https://github.com/pykaldi/pykaldi"}, {"content_hash": "f583adf6bb29047f862ea23fd576e908953fd2e5beeb2a82f7edd737fa9d036f", "fetched_at": "2026-08-29T13:04:59.699226+00:00", "kind": "homepage", "missing": false, "url": "https://pykaldi.github.io"}], "taxonomy_version": 1}, "topics": {"kind": "observed", "observed_at": "2026-08-28T04:03:19.847862+00:00", "source": "github"}, "urls": {"kind": "observed", "observed_at": "2026-08-28T04:03:19.847862+00:00", "source": "github"}, "use_cases": {"confidence": null, "enriched_at": "2026-08-30T07:03:55.210496+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "a0bd84914a79817d8a891c2a9c78a71a0178c92af47093a3c7d093c285cab8df", "fetched_at": "2026-08-28T04:03:19.847862+00:00", "kind": "readme", "missing": false, "url": "https://github.com/pykaldi/pykaldi"}, {"content_hash": "f583adf6bb29047f862ea23fd576e908953fd2e5beeb2a82f7edd737fa9d036f", "fetched_at": "2026-08-29T13:04:59.699226+00:00", "kind": "homepage", "missing": false, "url": "https://pykaldi.github.io"}], "taxonomy_version": 1}, "what_it_is": {"confidence": null, "enriched_at": "2026-08-30T07:03:55.210496+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "a0bd84914a79817d8a891c2a9c78a71a0178c92af47093a3c7d093c285cab8df", "fetched_at": "2026-08-28T04:03:19.847862+00:00", "kind": "readme", "missing": false, "url": "https://github.com/pykaldi/pykaldi"}, {"content_hash": "f583adf6bb29047f862ea23fd576e908953fd2e5beeb2a82f7edd737fa9d036f", "fetched_at": "2026-08-29T13:04:59.699226+00:00", "kind": "homepage", "missing": false, "url": "https://pykaldi.github.io"}], "taxonomy_version": 1}, "when_to_avoid": {"confidence": null, "enriched_at": "2026-08-30T07:03:55.210496+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "a0bd84914a79817d8a891c2a9c78a71a0178c92af47093a3c7d093c285cab8df", "fetched_at": "2026-08-28T04:03:19.847862+00:00", "kind": "readme", "missing": false, "url": "https://github.com/pykaldi/pykaldi"}, {"content_hash": "f583adf6bb29047f862ea23fd576e908953fd2e5beeb2a82f7edd737fa9d036f", "fetched_at": "2026-08-29T13:04:59.699226+00:00", "kind": "homepage", "missing": false, "url": "https://pykaldi.github.io"}], "taxonomy_version": 1}, "when_to_choose": {"confidence": null, "enriched_at": "2026-08-30T07:03:55.210496+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "a0bd84914a79817d8a891c2a9c78a71a0178c92af47093a3c7d093c285cab8df", "fetched_at": "2026-08-28T04:03:19.847862+00:00", "kind": "readme", "missing": false, "url": "https://github.com/pykaldi/pykaldi"}, {"content_hash": "f583adf6bb29047f862ea23fd576e908953fd2e5beeb2a82f7edd737fa9d036f", "fetched_at": "2026-08-29T13:04:59.699226+00:00", "kind": "homepage", "missing": false, "url": "https://pykaldi.github.io"}], "taxonomy_version": 1}}, "score": {"components": {"activity": 54, "longevity": 100, "rhythm": 8}, "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": 3362, "days_push": 276, "days_rel": null, "gap_med": null, "n_releases_24m": 0}, "score": 47, "version": 2}, "staleness": {"enrichment_outdated": false, "low_confidence": false, "scrape_days": 9, "stale_scrape": false}}