Skip to content

feat(asr): add local FunASR provider - #1044

Merged
wyuc merged 3 commits into
THU-MAIC:mainfrom
LauraGPT:codex/funasr-asr-provider-20260804
Aug 5, 2026
Merged

feat(asr): add local FunASR provider#1044
wyuc merged 3 commits into
THU-MAIC:mainfrom
LauraGPT:codex/funasr-asr-provider-20260804

Conversation

@LauraGPT

@LauraGPT LauraGPT commented Aug 4, 2026

Copy link
Copy Markdown
Contributor

Summary

  • add a first-class, keyless funasr-asr provider for the local OpenAI-compatible FunASR server
  • expose the public FunASR v1.4.0 model selectors: sensevoice, paraformer, and fun-asr-nano
  • normalize browser recordings to WAV, forward model/language settings, and preserve optional bearer auth for protected deployments
  • add fresh-install state, request URL preview, env/YAML-managed configuration, an official FunASR icon, nine UI locales, and six documentation locales
  • document CPU SenseVoice and CUDA/vLLM Fun-ASR-Nano deployment paths

This addresses the FunASR ASR portion of #618. The requested IndexTTS integration remains separate, so this PR intentionally does not close the issue.

Validation

  • pnpm check:i18n-keys
  • pnpm exec tsc --noEmit
  • pnpm lint (0 errors; 15 pre-existing warnings outside this change)
  • Prettier check across every changed text file
  • focused regression suite: 155 passed
  • main application production build: passed (44 pages/routes generated)
  • standalone documentation production build: passed (34 pages generated)
  • pnpm check:package-versions origin/main
  • git diff --check

Real service validation used the public PyPI package funasr==1.4.0 on CPU with sensevoice. A real WAV passed through OpenMAIC's transcribeAudio() provider path to POST /v1/audio/transcriptions, returned HTTP 200, and produced the non-empty Chinese transcript 甚至出现交易几乎停滞的情况.

The full Vitest run completed with 3,383 passing tests and 44 failures across 14 files under parallel load. A single-worker rerun recovered 12 of those 14 files; the remaining tests/runtime/chat-storage.test.ts and tests/quiz/runtime.test.ts failures are identical on pristine main@12ccd315 (27 existing IndexedDB/Web Locks timeout/assertion failures). No remaining failure touches this provider or its dependencies.

AI assistance

This PR was implemented with AI assistance and manually self-reviewed. The final commit is SSH-signed, includes DCO, and was tested against the public FunASR v1.4.0 release rather than a local source checkout.

Current-main sync (2026-08-04)

The branch now merges exact upstream main@54f959bb4501ded27529637110200108eef2cd75 at SSH-signed+DCO head 4000ab677c20dbaa10ce83dfd5ee3fc374dbfff1. The two content conflicts were limited to the bilingual provider lists: the resolution keeps upstream's complete Amazon Bedrock example and retains FunASR as a local ASR provider. The PR-relative path set remains unchanged at 37 files.

Fresh merged-tree validation:

  • 204/204 combined FunASR, Bedrock, provider-config, model-resolution, formula-rendering, and settings tests
  • i18n key alignment across all nine UI locales
  • tsc --noEmit
  • package-version and changed-file Prettier checks
  • full ESLint: 0 errors, 15 pre-existing warnings outside this PR
  • main application production build: 44 routes generated
  • standalone documentation build: 34 pages generated
  • git diff --check and conflict-marker scan

Signed-off-by: LauraGPT <199134975+LauraGPT@users.noreply.github.com>

wyuc commented Aug 4, 2026

Copy link
Copy Markdown
Contributor

Hi @LauraGPT, thanks for the FunASR integration. main has advanced and this PR now has merge conflicts. Could you merge the latest THU-MAIC/OpenMAIC:main into your branch and resolve them? Once CI is green again, we’ll continue the review and merge process.

LauraGPT added 2 commits August 4, 2026 06:43
Signed-off-by: LauraGPT <199134975+LauraGPT@users.noreply.github.com>
Signed-off-by: LauraGPT <199134975+LauraGPT@users.noreply.github.com>
@LauraGPT

LauraGPT commented Aug 5, 2026

Copy link
Copy Markdown
Contributor Author

@wyuc Synced the branch again to exact current main@378579e9df9b72c684b910b1f55f0883fe965d63 in signed+DCO merge head 3022d844fe57858920ee32f8c288ae57972a00f6.

This update merged cleanly. The PR-relative scope remains the same 37 FunASR provider, settings, localization, documentation, logo, and regression-test files.

Fresh validation on the pushed head:

  • focused FunASR/provider/settings suite: 151 passed
  • TypeScript tsc --noEmit: passed
  • nine-locale i18n key alignment: passed
  • repository-wide Prettier check: passed
  • package-version gate against current main: passed
  • full ESLint: 0 errors (14 existing warnings outside this integration)
  • git diff --check: passed

I will monitor the new CI run and address any code failure immediately.

@wyuc
wyuc merged commit 2b3f2ea into THU-MAIC:main Aug 5, 2026
5 checks passed
@LauraGPT

Copy link
Copy Markdown
Contributor Author

Thank you for merging the native local FunASR provider.

FunASR has now added OpenMAIC to the official bilingual community catalog and the public ecosystem pages, and published an operator-ready bilingual announcement:

The official-side regression covers the merged provider attribution, ASR_FUNASR_BASE_URL, SenseVoiceSmall / Paraformer / Fun-ASR-Nano selection, mobile and desktop layout, and public links. No additional action is requested here; we will route concrete deployment feedback back to the relevant project.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants