diff --git a/docs/community_growth_20k.md b/docs/community_growth_20k.md index 460001251..2bb0f7618 100644 --- a/docs/community_growth_20k.md +++ b/docs/community_growth_20k.md @@ -130,6 +130,7 @@ Set `GITHUB_TOKEN` when running this from CI or a shared network so GitHub's pub | `ray-project/ray#64053` Ray Serve FunASR ASR example | Puts FunASR in production serving docs for teams already using Ray | Monitor review, answer questions quickly, and keep the example command aligned with the current OpenAI-compatible API behavior. | | `huggingface/optimum-intel#1801` OpenVINO support | Helps CPU and edge users evaluate Fun-ASR on Intel hardware | Watch for CI or reviewer feedback, then validate a minimal inference path before promoting it in FunASR docs. | | `huggingface/speech-to-speech#319` SenseVoice STT handler | Adds SenseVoice/FunASR to local open-source voice-agent pipelines where low-latency STT is a core comparison point | Keep lint/import fixes on the PR head, explain optional `speech-to-speech[sensevoice]` install behavior, and answer handler-scope review quickly. | +| `livekit/agents#6176` FunASR/SenseVoice realtime STT plugin | Opens a path into LiveKit's realtime voice-agent ecosystem where local STT is evaluated alongside hosted providers | CI and CLA are green; avoid duplicate pings and monitor for maintainer review on plugin scope, package metadata, or optional dependency expectations. | | `run-llama/llama_index#21958` FunASR endpoint reader | Puts FunASR behind a LlamaIndex reader for OpenAI-compatible transcription endpoints used in RAG and agent pipelines | Keep the endpoint contract clear, avoid forcing local `funasr` dependencies into the main package, and validate one request/response example when the author updates. | | `run-llama/llama_index#21996` local FunASR reader | Gives LlamaIndex users a local SenseVoice/FunASR reader for private transcription workflows | Keep optional dependencies isolated, verify the reader does not affect default installs, and watch for maintainer guidance on package extras. | | `xinnan-tech/xiaozhi-esp32-server#3255` configurable FunASR language | Improves a high-star ESP32 voice-agent backend by letting users pin SenseVoice/FunASR language for short utterances | Keep the single-module config and multi-module database migration aligned, then watch for maintainer review on the dynamic config form. | @@ -144,6 +145,7 @@ Set `GITHUB_TOKEN` when running this from CI or a shared network so GitHub's pub | `activepieces/activepieces#13985` FunASR speech recognition piece | Gives no-code workflow users a direct FunASR speech recognition action | The CLA status is author-controlled; monitor only for maintainer feedback or test failures until the author-side gate clears. | | `Uberi/speech_recognition#903` FunASR recognizer | Exposes FunASR through a widely known Python speech-recognition wrapper | Keep the recognizer optional and lightweight, and be ready with a minimal install/import smoke test if maintainers ask for scope reduction. | | `ai4s-research/awesome-ai-for-science#69` FunASR science toolkit listing | Creates a discovery path from scientific AI tooling lists to FunASR for transcription and field-recording workflows | Validate the link, keep the description technically accurate, and avoid extra comments unless maintainers ask for category or wording changes. | +| `lukasmasuch/best-of-ml-python#455` FunASR project listing | Adds FunASR to a high-star ranked Python ML discovery list that is refreshed weekly | The PR is mergeable and already has prior pings; keep monitoring without adding more comments unless new maintainer feedback or validation evidence appears. | | `mahseema/awesome-ai-tools#1689` FunClip video-tool listing | Adds FunClip to a high-visibility AI tools list where video creators discover clipping and subtitle workflows | Validate the FunClip link, keep the description aligned with local transcription/SRT/AI clipping capabilities, and avoid status pings after evidence is posted. | Operating rules: diff --git a/scripts/collect_growth_metrics.py b/scripts/collect_growth_metrics.py index cc492969e..d4377fab8 100755 --- a/scripts/collect_growth_metrics.py +++ b/scripts/collect_growth_metrics.py @@ -34,6 +34,7 @@ "ray-project/ray#64053", "huggingface/optimum-intel#1801", "huggingface/speech-to-speech#319", + "livekit/agents#6176", "run-llama/llama_index#21958", "run-llama/llama_index#21996", "xinnan-tech/xiaozhi-esp32-server#3255", @@ -48,6 +49,7 @@ "activepieces/activepieces#13985", "Uberi/speech_recognition#903", "ai4s-research/awesome-ai-for-science#69", + "lukasmasuch/best-of-ml-python#455", "mahseema/awesome-ai-tools#1689", ] FAILED_CHECK_CONCLUSIONS = {"action_required", "cancelled", "failure", "startup_failure", "timed_out"} diff --git a/tests/test_collect_growth_metrics.py b/tests/test_collect_growth_metrics.py index 5b3b5e09d..7d469c641 100644 --- a/tests/test_collect_growth_metrics.py +++ b/tests/test_collect_growth_metrics.py @@ -80,6 +80,17 @@ def test_default_integration_prs_include_video_discovery_lanes(): assert expected_prs.issubset(set(module.DEFAULT_INTEGRATION_PRS)) +def test_default_integration_prs_include_voice_agent_and_ml_discovery_lanes(): + module = load_growth_metrics_module() + + expected_prs = { + "livekit/agents#6176", + "lukasmasuch/best-of-ml-python#455", + } + + assert expected_prs.issubset(set(module.DEFAULT_INTEGRATION_PRS)) + + def test_collect_github_repo_metrics_splits_open_issues_and_pull_requests(monkeypatch): module = load_growth_metrics_module()