{"adoption": {"forks": 612, "observed_at": "2026-08-28T04:09:47.740182+00:00", "stars": 6691}, "canonical_url": "https://ross.abutalabs.com/products/capswriter-offline", "card": {"archived": false, "artifact_type": "application", "description": "PC 端语音输入工具，离线识别，高准确率、低延迟，支持热词、LLM润色。按住CapsLock或鼠标侧键X2说话，松开自动上屏。", "domain": ["speech-processing", "developer-tools", "windows"], "enriched": true, "function": ["speech-recognition", "audio-processing", "llm-inference", "ocr"], "health_score": 99, "homepage": null, "language": "Python", "license": "MIT", "license_family": "permissive", "maturity": "active", "member_repos": ["HaujetZhao/CapsWriter-Offline"], "name": "HaujetZhao/CapsWriter-Offline", "platform": ["windows", "python"], "pushed_at": "2026-08-26T03:28:58+00:00", "repo": "HaujetZhao/CapsWriter-Offline", "stars": 6691, "tags": ["voice-input", "offline-asr", "dictation", "hotwords", "push-to-talk", "subtitle-transcription", "paraformer", "sensevoice", "natural-language-processing", "desktop"], "topics": [], "urls": [], "use_cases": ["dictate text offline by holding CapsLock", "transcribe audio and video files to srt subtitles", "replace misrecognized rare words with hotwords", "polish dictated text with an LLM", "convert spoken Chinese numbers to digits", "keep a daily archive of voice notes"], "what_it_is": "CapsWriter-Offline is a fully offline voice input tool for Windows that transcribes speech to text when you hold CapsLock or mouse side button X2 and release it. It supports hotword replacement, regex rules, LLM-based polishing, and audio/video file transcription to subtitles and text.", "when_to_avoid": ["you are on macOS or Linux, which are not supported", "you need cloud-based multilingual ASR with broad language coverage", "you cannot download separate ASR model packages", "you need a GUI-first dictation product rather than config-file customization"], "when_to_choose": ["you need private, fully offline speech-to-text on Windows 10/11", "you want low-latency push-to-talk dictation anywhere on the system", "you need custom hotword or regex replacement for domain terms", "you want to transcribe media files into subtitles and timestamps"]}, "data_as_of": "2026-08-30T08:39:29.467469+00:00", "members": [{"path": "/products/capswriter-offline", "repo": "HaujetZhao/CapsWriter-Offline", "role": "main", "score": 92}], "provenance": {"archived": {"kind": "observed", "observed_at": "2026-08-28T04:09:47.740182+00:00", "source": "github"}, "artifact_type": {"confidence": null, "enriched_at": "2026-08-29T17:42:59.018087+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "fa6f4e53f879b86af5861f84608a99cf629e5e1e8b7c454bedb2b9146ccbb7e5", "fetched_at": "2026-08-28T04:09:47.740182+00:00", "kind": "readme", "missing": false, "url": "https://github.com/HaujetZhao/CapsWriter-Offline"}], "taxonomy_version": 1}, "description": {"kind": "observed", "observed_at": "2026-08-28T04:09:47.740182+00:00", "source": "github"}, "domain": {"confidence": null, "enriched_at": "2026-08-29T17:42:59.018087+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "fa6f4e53f879b86af5861f84608a99cf629e5e1e8b7c454bedb2b9146ccbb7e5", "fetched_at": "2026-08-28T04:09:47.740182+00:00", "kind": "readme", "missing": false, "url": "https://github.com/HaujetZhao/CapsWriter-Offline"}], "taxonomy_version": 1}, "enriched": {"inputs": [], "kind": "computed", "method": "enrichment_status"}, "function": {"confidence": null, "enriched_at": "2026-08-29T17:42:59.018087+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "fa6f4e53f879b86af5861f84608a99cf629e5e1e8b7c454bedb2b9146ccbb7e5", "fetched_at": "2026-08-28T04:09:47.740182+00:00", "kind": "readme", "missing": false, "url": "https://github.com/HaujetZhao/CapsWriter-Offline"}], "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:09:47.740182+00:00", "source": "github"}, "language": {"kind": "observed", "observed_at": "2026-08-28T04:09:47.740182+00:00", "source": "github"}, "license": {"kind": "observed", "observed_at": "2026-08-28T04:09:47.740182+00:00", "source": "github"}, "license_family": {"inputs": ["license"], "kind": "computed", "method": "license_family"}, "maturity": {"confidence": null, "enriched_at": "2026-08-29T17:42:59.018087+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "fa6f4e53f879b86af5861f84608a99cf629e5e1e8b7c454bedb2b9146ccbb7e5", "fetched_at": "2026-08-28T04:09:47.740182+00:00", "kind": "readme", "missing": false, "url": "https://github.com/HaujetZhao/CapsWriter-Offline"}], "taxonomy_version": 1}, "member_repos": {"kind": "observed", "observed_at": "2026-08-28T04:09:47.740182+00:00", "source": "github"}, "name": {"kind": "observed", "observed_at": "2026-08-28T04:09:47.740182+00:00", "source": "github"}, "platform": {"confidence": null, "enriched_at": "2026-08-29T17:42:59.018087+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "fa6f4e53f879b86af5861f84608a99cf629e5e1e8b7c454bedb2b9146ccbb7e5", "fetched_at": "2026-08-28T04:09:47.740182+00:00", "kind": "readme", "missing": false, "url": "https://github.com/HaujetZhao/CapsWriter-Offline"}], "taxonomy_version": 1}, "pushed_at": {"kind": "observed", "observed_at": "2026-08-28T04:09:47.740182+00:00", "source": "github"}, "repo": {"kind": "observed", "observed_at": "2026-08-28T04:09:47.740182+00:00", "source": "github"}, "stars": {"kind": "observed", "observed_at": "2026-08-28T04:09:47.740182+00:00", "source": "github"}, "tags": {"confidence": null, "enriched_at": "2026-08-29T17:42:59.018087+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "fa6f4e53f879b86af5861f84608a99cf629e5e1e8b7c454bedb2b9146ccbb7e5", "fetched_at": "2026-08-28T04:09:47.740182+00:00", "kind": "readme", "missing": false, "url": "https://github.com/HaujetZhao/CapsWriter-Offline"}], "taxonomy_version": 1}, "topics": {"kind": "observed", "observed_at": "2026-08-28T04:09:47.740182+00:00", "source": "github"}, "urls": {"kind": "observed", "observed_at": "2026-08-28T04:09:47.740182+00:00", "source": "github"}, "use_cases": {"confidence": null, "enriched_at": "2026-08-29T17:42:59.018087+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "fa6f4e53f879b86af5861f84608a99cf629e5e1e8b7c454bedb2b9146ccbb7e5", "fetched_at": "2026-08-28T04:09:47.740182+00:00", "kind": "readme", "missing": false, "url": "https://github.com/HaujetZhao/CapsWriter-Offline"}], "taxonomy_version": 1}, "what_it_is": {"confidence": null, "enriched_at": "2026-08-29T17:42:59.018087+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "fa6f4e53f879b86af5861f84608a99cf629e5e1e8b7c454bedb2b9146ccbb7e5", "fetched_at": "2026-08-28T04:09:47.740182+00:00", "kind": "readme", "missing": false, "url": "https://github.com/HaujetZhao/CapsWriter-Offline"}], "taxonomy_version": 1}, "when_to_avoid": {"confidence": null, "enriched_at": "2026-08-29T17:42:59.018087+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "fa6f4e53f879b86af5861f84608a99cf629e5e1e8b7c454bedb2b9146ccbb7e5", "fetched_at": "2026-08-28T04:09:47.740182+00:00", "kind": "readme", "missing": false, "url": "https://github.com/HaujetZhao/CapsWriter-Offline"}], "taxonomy_version": 1}, "when_to_choose": {"confidence": null, "enriched_at": "2026-08-29T17:42:59.018087+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "fa6f4e53f879b86af5861f84608a99cf629e5e1e8b7c454bedb2b9146ccbb7e5", "fetched_at": "2026-08-28T04:09:47.740182+00:00", "kind": "readme", "missing": false, "url": "https://github.com/HaujetZhao/CapsWriter-Offline"}], "taxonomy_version": 1}}, "score": {"components": {"activity": 99, "longevity": 85, "rhythm": 86}, "computed_at": "2026-09-02T17:46:02.011165+00:00", "flags": [], "formula": "round(0.45*activity + 0.35*rhythm + 0.20*longevity); archived -> min(score, 10)", "inputs": {"age_days": 1193, "days_push": 7, "days_rel": 95, "gap_med": 9.0, "n_releases_24m": 7}, "score": 92, "version": 2}, "staleness": {"enrichment_outdated": false, "low_confidence": false, "scrape_days": 9, "stale_scrape": false}}