Skip to content

Honor WebSocket offline model selection with CI (preserves #3887) - #3888

Merged
LauraGPT merged 2 commits into
mainfrom
codex/pr3887-websocket-model-ci-20261113
Nov 13, 2026
Merged

LauraGPT merged 2 commits into
mainfrom
codex/pr3887-websocket-model-ci-20261113

Conversation

@LauraGPT

Copy link
Copy Markdown
Collaborator

Summary

Preserve the exact two-file fix from #3887 and its original author commit. Offline WebSocket initialization now honors --asr_model and --asr_model_revision; the default remains the model/revision that the server actually used before this fix. Fixes #3886.

Add a scoped, read-only Python 3.10/3.11/3.12 workflow for constructor and file-finalization regressions. Previously these changed paths had no matching hosted test workflow. No fork branch rewriting or unrelated model/server changes.

Independently Verified

  • Baseline: 2 constructor regression failures, 1 passing default case. Exact contributor candidate: 31 selected CPU tests passed, no skips, with external model dependencies substituted.
  • Real L20Z/CUDA: server initialization invoked the real source AutoModel, parsed local configurations, loaded deterministic synthetic state dictionaries and executed CUDA kernels. Five configurations (default plus two model paths/two revisions), ten raw results from two distinct synthetic waveforms; four custom-selection cases fail on baseline and all five pass on the candidate.
  • The first GPU run retained an additional numeric-fixture failure under the environment's reduced-precision matmul behavior. Explicit strict FP32 (highest, TF32 disabled, private NVIDIA_TF32_OVERRIDE=0) resolved that harness mismatch without changing inputs, reference values or tolerance. The original failure and all raw traces remain preserved.
  • This is model-selection/device-execution contract evidence, not pretrained ASR-quality, hub-download, end-to-end WebSocket network, full-suite or NPU/Nano validation. No external weights were downloaded. Source import paths/hashes are recorded separately from the environment's older installed distribution metadata.
  • New-head CI logs, actual checkout trees and JUnit bytes must be accepted before normal merge. No self-approval, policy change or admin bypass.

This is a source/runtime-script fix, not a new PyPI or production website release.

tanishqbaweja and others added 2 commits November 13, 2026 02:44
funasr_wss_server.py parses --asr_model and --asr_model_revision, and
the README lists --asr_model, but since #2791 the server built its
offline model from a fixed "paraformer-zh" v2.0.4. Both options had no
effect, so a server started with another model, such as an English or
a fine-tuned one, still ran paraformer-zh.

Build the offline model from the two options, as the streaming, VAD and
punctuation models are built from theirs. The default of --asr_model
becomes "paraformer-zh" (it named the Contextual Paraformer, which the
server did not load), so a server started without these options loads
the same model as before.

Add tests/test_websocket_server_asr_model.py: it runs the server module
with AutoModel replaced and checks the model and revision of the
offline model, with and without the options.
Preserve the original #3887 fix and contributor ancestry. Add scoped Python 3.10/3.11/3.12 protocol regression CI.

Signed-off-by: LauraGPT <zhifu.gzf@alibaba-inc.com>
@LauraGPT
LauraGPT merged commit 9fbcf4d into main Nov 13, 2026
3 checks passed
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.

funasr_wss_server.py ignores --asr_model and --asr_model_revision: the offline model is always paraformer-zh v2.0.4

2 participants