{"adoption": {"forks": 306, "observed_at": "2026-08-28T04:05:32.320435+00:00", "stars": 1757}, "canonical_url": "https://ross.abutalabs.com/products/bailing", "card": {"archived": false, "artifact_type": "application", "description": "百聆 是一个类似GPT-4o的语音对话机器人，通过ASR+LLM+TTS实现，集成DeepSeek R1等优秀大模型，接入openClaw，真正的个人语音助手，时延低至800ms，Mac等低配置也可运行，支持打断", "domain": ["artificial-intelligence", "large-language-models", "speech-processing", "chatbots"], "enriched": true, "function": ["speech-recognition", "tts", "llm-inference", "chatbot", "agent-framework", "audio-processing"], "health_score": 79, "homepage": null, "language": "Python", "license": "MIT", "license_family": "permissive", "maturity": "active", "member_repos": ["wwbin2017/bailing"], "name": "wwbin2017/bailing", "platform": ["python", "cross-platform", "self-hosted"], "pushed_at": "2026-04-06T04:21:13+00:00", "repo": "wwbin2017/bailing", "stars": 1757, "tags": ["voice-assistant", "asr", "vad", "gpt-4o-like", "low-latency", "interruptible", "openclaw", "deepseek", "funasr", "chattts", "ai-agents", "macos"], "topics": ["ai", "asr", "chatgpt", "chattts", "deepseek", "funasr", "gpt-4o", "llm", "openai", "tts", "voice-assistant", "openclaw"], "urls": [], "use_cases": ["build a personal voice assistant like GPT-4o", "run a low-latency voice chatbot on a Mac without GPU", "create a speech-to-speech AI assistant with interruption support", "add voice interaction with tool calling to an LLM", "self-host an open-source voice assistant with DeepSeek", "build a JARVIS-style assistant that can execute tasks", "experiment with ASR + LLM + TTS pipelines"], "what_it_is": "Bailing is an open-source voice assistant application similar to GPT-4o, built with an ASR + VAD + LLM + TTS pipeline (FunASR, silero-vad, DeepSeek, edge-tts/Kokoro/ChatTTS). It achieves ~800ms end-to-end latency, runs without a GPU on low-end hardware like Macs, and supports interruptions, memory, tool calling via OpenClaw, and task management.", "when_to_avoid": ["you need a production-grade commercial voice assistant with SLAs", "you want a fully on-device offline solution without API-based LLM/TTS", "you need multilingual support beyond what the bundled models provide", "you prefer a managed cloud voice assistant rather than assembling Python components"], "when_to_choose": ["you want a self-hosted, GPU-free voice assistant with sub-second latency", "you need a modular ASR/VAD/LLM/TTS stack you can swap components in", "you want voice-driven tool calling and task management via OpenClaw", "you're running on low-resource hardware like a Mac"]}, "data_as_of": "2026-08-30T08:39:29.467469+00:00", "members": [{"path": "/products/bailing", "repo": "wwbin2017/bailing", "role": "main", "score": 54}], "provenance": {"archived": {"kind": "observed", "observed_at": "2026-08-28T04:05:32.320435+00:00", "source": "github"}, "artifact_type": {"confidence": null, "enriched_at": "2026-08-30T03:27:40.895352+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "d03502e694cd98da790cbd8d4c951a31f069c9a94de6d81ae30992a2582f6ad8", "fetched_at": "2026-08-28T04:05:32.320435+00:00", "kind": "readme", "missing": false, "url": "https://github.com/wwbin2017/bailing"}], "taxonomy_version": 1}, "description": {"kind": "observed", "observed_at": "2026-08-28T04:05:32.320435+00:00", "source": "github"}, "domain": {"confidence": null, "enriched_at": "2026-08-30T03:27:40.895352+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "d03502e694cd98da790cbd8d4c951a31f069c9a94de6d81ae30992a2582f6ad8", "fetched_at": "2026-08-28T04:05:32.320435+00:00", "kind": "readme", "missing": false, "url": "https://github.com/wwbin2017/bailing"}], "taxonomy_version": 1}, "enriched": {"inputs": [], "kind": "computed", "method": "enrichment_status"}, "function": {"confidence": null, "enriched_at": "2026-08-30T03:27:40.895352+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "d03502e694cd98da790cbd8d4c951a31f069c9a94de6d81ae30992a2582f6ad8", "fetched_at": "2026-08-28T04:05:32.320435+00:00", "kind": "readme", "missing": false, "url": "https://github.com/wwbin2017/bailing"}], "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:05:32.320435+00:00", "source": "github"}, "language": {"kind": "observed", "observed_at": "2026-08-28T04:05:32.320435+00:00", "source": "github"}, "license": {"kind": "observed", "observed_at": "2026-08-28T04:05:32.320435+00:00", "source": "github"}, "license_family": {"inputs": ["license"], "kind": "computed", "method": "license_family"}, "maturity": {"confidence": null, "enriched_at": "2026-08-30T03:27:40.895352+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "d03502e694cd98da790cbd8d4c951a31f069c9a94de6d81ae30992a2582f6ad8", "fetched_at": "2026-08-28T04:05:32.320435+00:00", "kind": "readme", "missing": false, "url": "https://github.com/wwbin2017/bailing"}], "taxonomy_version": 1}, "member_repos": {"kind": "observed", "observed_at": "2026-08-28T04:05:32.320435+00:00", "source": "github"}, "name": {"kind": "observed", "observed_at": "2026-08-28T04:05:32.320435+00:00", "source": "github"}, "platform": {"confidence": null, "enriched_at": "2026-08-30T03:27:40.895352+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "d03502e694cd98da790cbd8d4c951a31f069c9a94de6d81ae30992a2582f6ad8", "fetched_at": "2026-08-28T04:05:32.320435+00:00", "kind": "readme", "missing": false, "url": "https://github.com/wwbin2017/bailing"}], "taxonomy_version": 1}, "pushed_at": {"kind": "observed", "observed_at": "2026-08-28T04:05:32.320435+00:00", "source": "github"}, "repo": {"kind": "observed", "observed_at": "2026-08-28T04:05:32.320435+00:00", "source": "github"}, "stars": {"kind": "observed", "observed_at": "2026-08-28T04:05:32.320435+00:00", "source": "github"}, "tags": {"confidence": null, "enriched_at": "2026-08-30T03:27:40.895352+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "d03502e694cd98da790cbd8d4c951a31f069c9a94de6d81ae30992a2582f6ad8", "fetched_at": "2026-08-28T04:05:32.320435+00:00", "kind": "readme", "missing": false, "url": "https://github.com/wwbin2017/bailing"}], "taxonomy_version": 1}, "topics": {"kind": "observed", "observed_at": "2026-08-28T04:05:32.320435+00:00", "source": "github"}, "urls": {"kind": "observed", "observed_at": "2026-08-28T04:05:32.320435+00:00", "source": "github"}, "use_cases": {"confidence": null, "enriched_at": "2026-08-30T03:27:40.895352+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "d03502e694cd98da790cbd8d4c951a31f069c9a94de6d81ae30992a2582f6ad8", "fetched_at": "2026-08-28T04:05:32.320435+00:00", "kind": "readme", "missing": false, "url": "https://github.com/wwbin2017/bailing"}], "taxonomy_version": 1}, "what_it_is": {"confidence": null, "enriched_at": "2026-08-30T03:27:40.895352+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "d03502e694cd98da790cbd8d4c951a31f069c9a94de6d81ae30992a2582f6ad8", "fetched_at": "2026-08-28T04:05:32.320435+00:00", "kind": "readme", "missing": false, "url": "https://github.com/wwbin2017/bailing"}], "taxonomy_version": 1}, "when_to_avoid": {"confidence": null, "enriched_at": "2026-08-30T03:27:40.895352+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "d03502e694cd98da790cbd8d4c951a31f069c9a94de6d81ae30992a2582f6ad8", "fetched_at": "2026-08-28T04:05:32.320435+00:00", "kind": "readme", "missing": false, "url": "https://github.com/wwbin2017/bailing"}], "taxonomy_version": 1}, "when_to_choose": {"confidence": null, "enriched_at": "2026-08-30T03:27:40.895352+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "d03502e694cd98da790cbd8d4c951a31f069c9a94de6d81ae30992a2582f6ad8", "fetched_at": "2026-08-28T04:05:32.320435+00:00", "kind": "readme", "missing": false, "url": "https://github.com/wwbin2017/bailing"}], "taxonomy_version": 1}}, "score": {"components": {"activity": 76, "longevity": 52, "rhythm": 28}, "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": 738, "days_push": 149, "days_rel": 460, "gap_med": 77, "n_releases_24m": 2}, "score": 54, "version": 2}, "staleness": {"enrichment_outdated": false, "low_confidence": false, "scrape_days": 9, "stale_scrape": false}}