{"adoption": {"forks": 158, "observed_at": "2026-09-03T02:15:18.025884+00:00", "stars": 1161}, "canonical_url": "https://ross.abutalabs.com/products/speech-swift", "card": {"archived": false, "artifact_type": "library", "description": "AI speech toolkit for Apple Silicon — ASR, TTS, speech-to-speech, VAD, and diarization powered by MLX and CoreML", "domain": ["speech-processing", "machine-learning", "artificial-intelligence", "apple-ecosystem", "mobile-development", "developer-tools"], "enriched": true, "function": ["speech-recognition", "tts", "audio-processing", "machine-learning", "llm-inference", "cli", "http-server", "websocket"], "health_score": 100, "homepage": "https://soniqo.audio", "language": "Swift", "license": "Apache-2.0", "license_family": "permissive", "maturity": "active", "member_repos": ["soniqo/speech-swift"], "name": "soniqo/speech-swift", "platform": ["cli"], "pushed_at": "2026-09-02T17:56:41+00:00", "repo": "soniqo/speech-swift", "stars": 1161, "tags": ["on-device", "apple-silicon", "mlx", "coreml", "voice-activity-detection", "speaker-diarization", "voice-cloning", "offline-inference", "voice-agents", "speech-to-speech", "openai-compatible-api", "macos", "ios", "swift", "apple-ecosystem"], "topics": ["apple-silicon", "asr", "coreml", "ios", "macos", "mlx", "neural-engine", "on-device", "speaker-diarization", "speech-enhancement", "speech-recognition", "speech-to-speech", "swift", "text-to-speech", "tts", "voice-activity-detection"], "urls": [], "use_cases": ["transcribe audio to text locally on a Mac", "generate speech from text on-device", "build a privacy-preserving voice agent with VAD, STT, LLM, and TTS", "run speaker diarization on meeting recordings", "clone a voice and synthesize speech offline", "add dictation to an iOS app without cloud APIs", "serve local speech AI through an OpenAI-compatible realtime endpoint"], "what_it_is": "An open-source Swift toolkit for on-device speech AI on Apple Silicon, providing ASR, TTS, speech-to-speech, VAD, and speaker diarization via MLX (Metal GPU) and CoreML (Neural Engine). It ships as a Swift package with modular components, plus a Homebrew CLI and an OpenAI-compatible HTTP/WebSocket server, all running fully offline.", "when_to_avoid": ["you need to run on non-Apple hardware (Android/Windows/Linux support is via separate SDKs, not this Swift package)", "you target macOS below 15 or iOS below 18", "you need MLX-based models on iOS, which are macOS-only", "your project is not in the Swift/Apple ecosystem"], "when_to_choose": ["you need fully offline, private speech AI on Apple Silicon Macs or iOS", "you want a native Swift async/await API instead of C++ bridges", "you need low-latency realtime transcription or full-duplex speech-to-speech", "you want to avoid cloud API costs and per-minute pricing"]}, "data_as_of": "2026-08-30T08:39:29.467469+00:00", "members": [{"path": "/products/speech-swift", "repo": "soniqo/speech-swift", "role": "main", "score": 83}], "provenance": {"archived": {"kind": "observed", "observed_at": "2026-09-03T02:15:18.025884+00:00", "source": "github"}, "artifact_type": {"confidence": null, "enriched_at": "2026-08-30T06:33:46.966051+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "9afbe53963bbfc608ae75d49a847c4cd6c97e0a7bb212b00b4e93cb727a85104", "fetched_at": "2026-09-03T02:15:18.025884+00:00", "kind": "readme", "missing": false, "url": "https://github.com/soniqo/speech-swift"}, {"content_hash": "5ae9b4faa19d88a62178d1b1a043bb423ce6804fbc619076d3a1808d45f67d5e", "fetched_at": "2026-08-29T12:38:49.158648+00:00", "kind": "homepage", "missing": false, "url": "https://soniqo.audio"}, {"content_hash": "15a90c94f512bfa3b0bb236a5a3741dfd6e864271065977e77d9763b3f551ea1", "fetched_at": "2026-08-29T12:38:49.161246+00:00", "kind": "site_page", "missing": false, "url": "https://soniqo.audio/getting-started"}, {"content_hash": "877129c3effefbfaba33e38c105068508146e1952ae2a74d1f0e62a1c66dcb16", "fetched_at": "2026-08-29T12:38:49.163119+00:00", "kind": "site_page", "missing": false, "url": "https://soniqo.audio/faq"}], "taxonomy_version": 1}, "description": {"kind": "observed", "observed_at": "2026-09-03T02:15:18.025884+00:00", "source": "github"}, "domain": {"confidence": null, "enriched_at": "2026-08-30T06:33:46.966051+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "9afbe53963bbfc608ae75d49a847c4cd6c97e0a7bb212b00b4e93cb727a85104", "fetched_at": "2026-09-03T02:15:18.025884+00:00", "kind": "readme", "missing": false, "url": "https://github.com/soniqo/speech-swift"}, {"content_hash": "5ae9b4faa19d88a62178d1b1a043bb423ce6804fbc619076d3a1808d45f67d5e", "fetched_at": "2026-08-29T12:38:49.158648+00:00", "kind": "homepage", "missing": false, "url": "https://soniqo.audio"}, {"content_hash": "15a90c94f512bfa3b0bb236a5a3741dfd6e864271065977e77d9763b3f551ea1", "fetched_at": "2026-08-29T12:38:49.161246+00:00", "kind": "site_page", "missing": false, "url": "https://soniqo.audio/getting-started"}, {"content_hash": "877129c3effefbfaba33e38c105068508146e1952ae2a74d1f0e62a1c66dcb16", "fetched_at": "2026-08-29T12:38:49.163119+00:00", "kind": "site_page", "missing": false, "url": "https://soniqo.audio/faq"}], "taxonomy_version": 1}, "enriched": {"inputs": [], "kind": "computed", "method": "enrichment_status"}, "function": {"confidence": null, "enriched_at": "2026-08-30T06:33:46.966051+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "9afbe53963bbfc608ae75d49a847c4cd6c97e0a7bb212b00b4e93cb727a85104", "fetched_at": "2026-09-03T02:15:18.025884+00:00", "kind": "readme", "missing": false, "url": "https://github.com/soniqo/speech-swift"}, {"content_hash": "5ae9b4faa19d88a62178d1b1a043bb423ce6804fbc619076d3a1808d45f67d5e", "fetched_at": "2026-08-29T12:38:49.158648+00:00", "kind": "homepage", "missing": false, "url": "https://soniqo.audio"}, {"content_hash": "15a90c94f512bfa3b0bb236a5a3741dfd6e864271065977e77d9763b3f551ea1", "fetched_at": "2026-08-29T12:38:49.161246+00:00", "kind": "site_page", "missing": false, "url": "https://soniqo.audio/getting-started"}, {"content_hash": "877129c3effefbfaba33e38c105068508146e1952ae2a74d1f0e62a1c66dcb16", "fetched_at": "2026-08-29T12:38:49.163119+00:00", "kind": "site_page", "missing": false, "url": "https://soniqo.audio/faq"}], "taxonomy_version": 1}, "health_score": {"inputs": ["days_since_push", "days_since_release", "archived"], "kind": "computed", "method": "health_v1"}, "homepage": {"kind": "observed", "observed_at": "2026-09-03T02:15:18.025884+00:00", "source": "github"}, "language": {"kind": "observed", "observed_at": "2026-09-03T02:15:18.025884+00:00", "source": "github"}, "license": {"kind": "observed", "observed_at": "2026-09-03T02:15:18.025884+00:00", "source": "github"}, "license_family": {"inputs": ["license"], "kind": "computed", "method": "license_family"}, "maturity": {"confidence": null, "enriched_at": "2026-08-30T06:33:46.966051+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "9afbe53963bbfc608ae75d49a847c4cd6c97e0a7bb212b00b4e93cb727a85104", "fetched_at": "2026-09-03T02:15:18.025884+00:00", "kind": "readme", "missing": false, "url": "https://github.com/soniqo/speech-swift"}, {"content_hash": "5ae9b4faa19d88a62178d1b1a043bb423ce6804fbc619076d3a1808d45f67d5e", "fetched_at": "2026-08-29T12:38:49.158648+00:00", "kind": "homepage", "missing": false, "url": "https://soniqo.audio"}, {"content_hash": "15a90c94f512bfa3b0bb236a5a3741dfd6e864271065977e77d9763b3f551ea1", "fetched_at": "2026-08-29T12:38:49.161246+00:00", "kind": "site_page", "missing": false, "url": "https://soniqo.audio/getting-started"}, {"content_hash": "877129c3effefbfaba33e38c105068508146e1952ae2a74d1f0e62a1c66dcb16", "fetched_at": "2026-08-29T12:38:49.163119+00:00", "kind": "site_page", "missing": false, "url": "https://soniqo.audio/faq"}], "taxonomy_version": 1}, "member_repos": {"kind": "observed", "observed_at": "2026-09-03T02:15:18.025884+00:00", "source": "github"}, "name": {"kind": "observed", "observed_at": "2026-09-03T02:15:18.025884+00:00", "source": "github"}, "platform": {"confidence": null, "enriched_at": "2026-08-30T06:33:46.966051+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "9afbe53963bbfc608ae75d49a847c4cd6c97e0a7bb212b00b4e93cb727a85104", "fetched_at": "2026-09-03T02:15:18.025884+00:00", "kind": "readme", "missing": false, "url": "https://github.com/soniqo/speech-swift"}, {"content_hash": "5ae9b4faa19d88a62178d1b1a043bb423ce6804fbc619076d3a1808d45f67d5e", "fetched_at": "2026-08-29T12:38:49.158648+00:00", "kind": "homepage", "missing": false, "url": "https://soniqo.audio"}, {"content_hash": "15a90c94f512bfa3b0bb236a5a3741dfd6e864271065977e77d9763b3f551ea1", "fetched_at": "2026-08-29T12:38:49.161246+00:00", "kind": "site_page", "missing": false, "url": "https://soniqo.audio/getting-started"}, {"content_hash": "877129c3effefbfaba33e38c105068508146e1952ae2a74d1f0e62a1c66dcb16", "fetched_at": "2026-08-29T12:38:49.163119+00:00", "kind": "site_page", "missing": false, "url": "https://soniqo.audio/faq"}], "taxonomy_version": 1}, "pushed_at": {"kind": "observed", "observed_at": "2026-09-03T02:15:18.025884+00:00", "source": "github"}, "repo": {"kind": "observed", "observed_at": "2026-09-03T02:15:18.025884+00:00", "source": "github"}, "stars": {"kind": "observed", "observed_at": "2026-09-03T02:15:18.025884+00:00", "source": "github"}, "tags": {"confidence": null, "enriched_at": "2026-08-30T06:33:46.966051+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "9afbe53963bbfc608ae75d49a847c4cd6c97e0a7bb212b00b4e93cb727a85104", "fetched_at": "2026-09-03T02:15:18.025884+00:00", "kind": "readme", "missing": false, "url": "https://github.com/soniqo/speech-swift"}, {"content_hash": "5ae9b4faa19d88a62178d1b1a043bb423ce6804fbc619076d3a1808d45f67d5e", "fetched_at": "2026-08-29T12:38:49.158648+00:00", "kind": "homepage", "missing": false, "url": "https://soniqo.audio"}, {"content_hash": "15a90c94f512bfa3b0bb236a5a3741dfd6e864271065977e77d9763b3f551ea1", "fetched_at": "2026-08-29T12:38:49.161246+00:00", "kind": "site_page", "missing": false, "url": "https://soniqo.audio/getting-started"}, {"content_hash": "877129c3effefbfaba33e38c105068508146e1952ae2a74d1f0e62a1c66dcb16", "fetched_at": "2026-08-29T12:38:49.163119+00:00", "kind": "site_page", "missing": false, "url": "https://soniqo.audio/faq"}], "taxonomy_version": 1}, "topics": {"kind": "observed", "observed_at": "2026-09-03T02:15:18.025884+00:00", "source": "github"}, "urls": {"kind": "observed", "observed_at": "2026-09-03T02:15:18.025884+00:00", "source": "github"}, "use_cases": {"confidence": null, "enriched_at": "2026-08-30T06:33:46.966051+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "9afbe53963bbfc608ae75d49a847c4cd6c97e0a7bb212b00b4e93cb727a85104", "fetched_at": "2026-09-03T02:15:18.025884+00:00", "kind": "readme", "missing": false, "url": "https://github.com/soniqo/speech-swift"}, {"content_hash": "5ae9b4faa19d88a62178d1b1a043bb423ce6804fbc619076d3a1808d45f67d5e", "fetched_at": "2026-08-29T12:38:49.158648+00:00", "kind": "homepage", "missing": false, "url": "https://soniqo.audio"}, {"content_hash": "15a90c94f512bfa3b0bb236a5a3741dfd6e864271065977e77d9763b3f551ea1", "fetched_at": "2026-08-29T12:38:49.161246+00:00", "kind": "site_page", "missing": false, "url": "https://soniqo.audio/getting-started"}, {"content_hash": "877129c3effefbfaba33e38c105068508146e1952ae2a74d1f0e62a1c66dcb16", "fetched_at": "2026-08-29T12:38:49.163119+00:00", "kind": "site_page", "missing": false, "url": "https://soniqo.audio/faq"}], "taxonomy_version": 1}, "what_it_is": {"confidence": null, "enriched_at": "2026-08-30T06:33:46.966051+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "9afbe53963bbfc608ae75d49a847c4cd6c97e0a7bb212b00b4e93cb727a85104", "fetched_at": "2026-09-03T02:15:18.025884+00:00", "kind": "readme", "missing": false, "url": "https://github.com/soniqo/speech-swift"}, {"content_hash": "5ae9b4faa19d88a62178d1b1a043bb423ce6804fbc619076d3a1808d45f67d5e", "fetched_at": "2026-08-29T12:38:49.158648+00:00", "kind": "homepage", "missing": false, "url": "https://soniqo.audio"}, {"content_hash": "15a90c94f512bfa3b0bb236a5a3741dfd6e864271065977e77d9763b3f551ea1", "fetched_at": "2026-08-29T12:38:49.161246+00:00", "kind": "site_page", "missing": false, "url": "https://soniqo.audio/getting-started"}, {"content_hash": "877129c3effefbfaba33e38c105068508146e1952ae2a74d1f0e62a1c66dcb16", "fetched_at": "2026-08-29T12:38:49.163119+00:00", "kind": "site_page", "missing": false, "url": "https://soniqo.audio/faq"}], "taxonomy_version": 1}, "when_to_avoid": {"confidence": null, "enriched_at": "2026-08-30T06:33:46.966051+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "9afbe53963bbfc608ae75d49a847c4cd6c97e0a7bb212b00b4e93cb727a85104", "fetched_at": "2026-09-03T02:15:18.025884+00:00", "kind": "readme", "missing": false, "url": "https://github.com/soniqo/speech-swift"}, {"content_hash": "5ae9b4faa19d88a62178d1b1a043bb423ce6804fbc619076d3a1808d45f67d5e", "fetched_at": "2026-08-29T12:38:49.158648+00:00", "kind": "homepage", "missing": false, "url": "https://soniqo.audio"}, {"content_hash": "15a90c94f512bfa3b0bb236a5a3741dfd6e864271065977e77d9763b3f551ea1", "fetched_at": "2026-08-29T12:38:49.161246+00:00", "kind": "site_page", "missing": false, "url": "https://soniqo.audio/getting-started"}, {"content_hash": "877129c3effefbfaba33e38c105068508146e1952ae2a74d1f0e62a1c66dcb16", "fetched_at": "2026-08-29T12:38:49.163119+00:00", "kind": "site_page", "missing": false, "url": "https://soniqo.audio/faq"}], "taxonomy_version": 1}, "when_to_choose": {"confidence": null, "enriched_at": "2026-08-30T06:33:46.966051+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "9afbe53963bbfc608ae75d49a847c4cd6c97e0a7bb212b00b4e93cb727a85104", "fetched_at": "2026-09-03T02:15:18.025884+00:00", "kind": "readme", "missing": false, "url": "https://github.com/soniqo/speech-swift"}, {"content_hash": "5ae9b4faa19d88a62178d1b1a043bb423ce6804fbc619076d3a1808d45f67d5e", "fetched_at": "2026-08-29T12:38:49.158648+00:00", "kind": "homepage", "missing": false, "url": "https://soniqo.audio"}, {"content_hash": "15a90c94f512bfa3b0bb236a5a3741dfd6e864271065977e77d9763b3f551ea1", "fetched_at": "2026-08-29T12:38:49.161246+00:00", "kind": "site_page", "missing": false, "url": "https://soniqo.audio/getting-started"}, {"content_hash": "877129c3effefbfaba33e38c105068508146e1952ae2a74d1f0e62a1c66dcb16", "fetched_at": "2026-08-29T12:38:49.163119+00:00", "kind": "site_page", "missing": false, "url": "https://soniqo.audio/faq"}], "taxonomy_version": 1}}, "score": {"components": {"activity": 100, "longevity": 15, "rhythm": 100}, "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": 211, "days_push": 0, "days_rel": 0, "gap_med": 4.5, "n_releases_24m": 27}, "score": 83, "version": 2}, "staleness": {"enrichment_outdated": false, "low_confidence": false, "scrape_days": 3, "stale_scrape": false}}