{"adoption": {"forks": 422, "observed_at": "2026-08-28T04:08:51.211533+00:00", "stars": 4483}, "canonical_url": "https://ross.abutalabs.com/products/tts-server-android", "card": {"archived": false, "artifact_type": "application", "description": "这是一个Android系统TTS应用，内置微软演示接口，可自定义HTTP请求，可导入其他本地TTS引擎，以及根据中文双引号的简单旁白/对话识别朗读 ，还有自动重试，备用配置，文本替换等更多功能。", "domain": ["speech-processing", "android-tools", "media", "accessibility"], "enriched": true, "function": ["tts", "audio-processing", "http-client"], "health_score": 45, "homepage": null, "language": "Kotlin", "license": null, "license_family": "other", "maturity": "active", "member_repos": ["jing332/tts-server-android"], "name": "jing332/tts-server-android", "platform": ["jvm"], "pushed_at": "2025-08-26T15:50:22+00:00", "repo": "jing332/tts-server-android", "stars": 4483, "tags": ["text-to-speech", "microsoft-tts", "system-tts-engine", "jetpack-compose", "legado", "custom-http-tts", "dialogue-recognition", "android"], "topics": ["golang", "microsoft", "tts", "android", "kotlin", "legado", "compose-ui", "jetpack-compose"], "urls": [], "use_cases": ["use Microsoft Edge TTS voices as the Android system TTS engine", "read ebooks aloud with dialogue vs narration voices", "configure custom HTTP-based TTS APIs on Android", "import and manage multiple local TTS engines in one app", "automatically retry failed TTS synthesis and fall back to backup configs", "replace text before speech synthesis to fix pronunciation"], "what_it_is": "An Android system-wide text-to-speech (TTS) app that provides a TTS engine service with built-in Microsoft demo API support, custom HTTP TTS configurations, and import of other local TTS engines. It also offers narration/dialogue recognition based on Chinese quotation marks, automatic retries, backup configurations, and text replacement features.", "when_to_avoid": ["you need TTS on iOS, desktop, or non-Android platforms", "you want a fully offline solution without any network TTS engines", "you need a library or SDK to embed TTS in your own app rather than a user-facing app"], "when_to_choose": ["you want a free, self-contained Android TTS engine with cloud voices", "you read Chinese novels with legado and want distinct voices for dialogue", "you need to plug arbitrary HTTP TTS endpoints into the Android system TTS"]}, "data_as_of": "2026-08-30T08:39:29.467469+00:00", "members": [{"path": "/products/tts-server-android", "repo": "jing332/tts-server-android", "role": "main", "score": 40}], "provenance": {"archived": {"kind": "observed", "observed_at": "2026-08-28T04:08:51.211533+00:00", "source": "github"}, "artifact_type": {"confidence": null, "enriched_at": "2026-08-29T18:20:31.999331+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "66f7776fbe24ae4c318567e5bb5f97f0b73acc8881229be4da2ed2ead7df9563", "fetched_at": "2026-08-28T04:08:51.211533+00:00", "kind": "readme", "missing": false, "url": "https://github.com/jing332/tts-server-android"}], "taxonomy_version": 1}, "description": {"kind": "observed", "observed_at": "2026-08-28T04:08:51.211533+00:00", "source": "github"}, "domain": {"confidence": null, "enriched_at": "2026-08-29T18:20:31.999331+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "66f7776fbe24ae4c318567e5bb5f97f0b73acc8881229be4da2ed2ead7df9563", "fetched_at": "2026-08-28T04:08:51.211533+00:00", "kind": "readme", "missing": false, "url": "https://github.com/jing332/tts-server-android"}], "taxonomy_version": 1}, "enriched": {"inputs": [], "kind": "computed", "method": "enrichment_status"}, "function": {"confidence": null, "enriched_at": "2026-08-29T18:20:31.999331+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "66f7776fbe24ae4c318567e5bb5f97f0b73acc8881229be4da2ed2ead7df9563", "fetched_at": "2026-08-28T04:08:51.211533+00:00", "kind": "readme", "missing": false, "url": "https://github.com/jing332/tts-server-android"}], "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:08:51.211533+00:00", "source": "github"}, "language": {"kind": "observed", "observed_at": "2026-08-28T04:08:51.211533+00:00", "source": "github"}, "license": {"kind": "observed", "observed_at": "2026-08-28T04:08:51.211533+00:00", "source": "github"}, "license_family": {"inputs": ["license"], "kind": "computed", "method": "license_family"}, "maturity": {"confidence": null, "enriched_at": "2026-08-29T18:20:31.999331+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "66f7776fbe24ae4c318567e5bb5f97f0b73acc8881229be4da2ed2ead7df9563", "fetched_at": "2026-08-28T04:08:51.211533+00:00", "kind": "readme", "missing": false, "url": "https://github.com/jing332/tts-server-android"}], "taxonomy_version": 1}, "member_repos": {"kind": "observed", "observed_at": "2026-08-28T04:08:51.211533+00:00", "source": "github"}, "name": {"kind": "observed", "observed_at": "2026-08-28T04:08:51.211533+00:00", "source": "github"}, "platform": {"confidence": null, "enriched_at": "2026-08-29T18:20:31.999331+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "66f7776fbe24ae4c318567e5bb5f97f0b73acc8881229be4da2ed2ead7df9563", "fetched_at": "2026-08-28T04:08:51.211533+00:00", "kind": "readme", "missing": false, "url": "https://github.com/jing332/tts-server-android"}], "taxonomy_version": 1}, "pushed_at": {"kind": "observed", "observed_at": "2026-08-28T04:08:51.211533+00:00", "source": "github"}, "repo": {"kind": "observed", "observed_at": "2026-08-28T04:08:51.211533+00:00", "source": "github"}, "stars": {"kind": "observed", "observed_at": "2026-08-28T04:08:51.211533+00:00", "source": "github"}, "tags": {"confidence": null, "enriched_at": "2026-08-29T18:20:31.999331+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "66f7776fbe24ae4c318567e5bb5f97f0b73acc8881229be4da2ed2ead7df9563", "fetched_at": "2026-08-28T04:08:51.211533+00:00", "kind": "readme", "missing": false, "url": "https://github.com/jing332/tts-server-android"}], "taxonomy_version": 1}, "topics": {"kind": "observed", "observed_at": "2026-08-28T04:08:51.211533+00:00", "source": "github"}, "urls": {"kind": "observed", "observed_at": "2026-08-28T04:08:51.211533+00:00", "source": "github"}, "use_cases": {"confidence": null, "enriched_at": "2026-08-29T18:20:31.999331+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "66f7776fbe24ae4c318567e5bb5f97f0b73acc8881229be4da2ed2ead7df9563", "fetched_at": "2026-08-28T04:08:51.211533+00:00", "kind": "readme", "missing": false, "url": "https://github.com/jing332/tts-server-android"}], "taxonomy_version": 1}, "what_it_is": {"confidence": null, "enriched_at": "2026-08-29T18:20:31.999331+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "66f7776fbe24ae4c318567e5bb5f97f0b73acc8881229be4da2ed2ead7df9563", "fetched_at": "2026-08-28T04:08:51.211533+00:00", "kind": "readme", "missing": false, "url": "https://github.com/jing332/tts-server-android"}], "taxonomy_version": 1}, "when_to_avoid": {"confidence": null, "enriched_at": "2026-08-29T18:20:31.999331+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "66f7776fbe24ae4c318567e5bb5f97f0b73acc8881229be4da2ed2ead7df9563", "fetched_at": "2026-08-28T04:08:51.211533+00:00", "kind": "readme", "missing": false, "url": "https://github.com/jing332/tts-server-android"}], "taxonomy_version": 1}, "when_to_choose": {"confidence": null, "enriched_at": "2026-08-29T18:20:31.999331+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "66f7776fbe24ae4c318567e5bb5f97f0b73acc8881229be4da2ed2ead7df9563", "fetched_at": "2026-08-28T04:08:51.211533+00:00", "kind": "readme", "missing": false, "url": "https://github.com/jing332/tts-server-android"}], "taxonomy_version": 1}}, "score": {"components": {"activity": 38, "longevity": 100, "rhythm": 8}, "computed_at": "2026-09-03T02:20:16.233290+00:00", "flags": ["no_license"], "formula": "round(0.45*activity + 0.35*rhythm + 0.20*longevity); archived -> min(score, 10)", "inputs": {"age_days": 1449, "days_push": 372, "days_rel": null, "gap_med": null, "n_releases_24m": 0}, "score": 40, "version": 2}, "staleness": {"enrichment_outdated": false, "low_confidence": false, "scrape_days": 9, "stale_scrape": false}}