Repository navigation
Conversation
|
Follow-up for head This head also fixes a desktop packaging gap found during review: SenseVoice is now hidden unless the complete optional runtime ( Could a maintainer approve the current runs when convenient? |
|
Pushed head What changed:
Fresh validation on All of the above passed. GitHub reports the PR as mergeable; the remaining workflow runs still need maintainer approval before they can execute on the fork. |
Signed-off-by: LauraGPT <18321252+LauraGPT@users.noreply.github.com>
Signed-off-by: LauraGPT <18321252+LauraGPT@users.noreply.github.com>
Summary
SenseVoiceASRprovider backed by FunASR, with lazy model loading, model caching, serialized inference, chunked processing, native timestamp parsing, and a separately loadedfsmn-vadmodel.funasr,torch, andtorchaudioin the optionalsensevoiceextra. Hide the desktop option when any of these packages is missing. This presence-based gate is not a complete runtime health check.The default
iic/SenseVoiceSmallcheckpoint supports Chinese, Cantonese, English, Japanese, and Korean. This PR does not add a FunASR HTTP server, Paraformer, speaker diarization, or a universal performance claim. Desktop release builds do not bundle the optional runtime; the extra is for source/Python installations.Closes #1137
Current Follow-up (2026-09-29)
Head
2bd66acf4e66833009350d210695fc74b9b2c662follows3141cdce1c4ba355bb75abc3fbe8f7efddcf8f0awith a two-file fix and regression tests. No dependency, lockfile, model-loading, or inference configuration changes. The commit is SSH-signed and DCO-signed-off; earlier commits were not rewritten.The official FunASR
SenseVoice.postimplementation retains the SentencePiece marker when the first token starts with it. Executing that extracted postprocessing function alone with deterministic token/timestamp input reproduced this output shape, without loading a model. Both added consumer tests failed before the fix and passed afterward; they cover word and sentence modes across two results and assert exact text and timestamps. This is a source-contract and unit regression, not a new acoustic evaluation.Validation used the existing isolated Python 3.12.3 environment from September 22, with the optional runtime installed:
python -m pytest tests/test_cli tests/test_dubbing tests/test_asr/test_sensevoice_asr.py tests/test_asr/test_platform_utils.py -q: 94 passed, 1 warning. Provider-only run: 8 passed; these are included in the 94, not additional distinct tests.ruff check videocaptioner/ tests/test_asr/test_sensevoice_asr.py: passed.ruff format --check videocaptioner/core/asr/sensevoice.py tests/test_asr/test_sensevoice_asr.py: passed.pyright --pythonpath <test-environment>/bin/python videocaptioner/cli/ videocaptioner/core/asr/sensevoice.py videocaptioner/core/utils/platform_utils.py: 0 errors, 0 warnings. The separate environment-location message remains because the configured.venvdirectory is absent; the interpreter was explicitly selected.uv pip check --python <test-environment>/bin/python: all 142 installed packages compatible. No new installation or dependency resolution is claimed.uv build: sdist and wheel built. Provider bytes in both artifacts match the reviewed candidate. This was a packaging smoke test, not a release.git diff --check, SSH signature verification, and independent source review: passed; no actionable P1/P2 review findings.The provider tests use fake inference. No model downloads, model inference, GPU/MPS checks, desktop UI acceptance, or external translation calls were performed in this follow-up.
Hosted Status
Observed at 2026-09-29T05:28:37.879006+00:00 for head
2bd66acf4e66833009350d210695fc74b9b2c662: CIcompleted/action_required; Claude Code Reviewcompleted/action_required; Build Desktop Appscompleted/action_required. Check runs returned: 0.No workflow approval, merge, or release was performed. Local validation is not a substitute for hosted CI.
Historical Validation (2026-09-22)
The preceding head
3141cdce1c4ba355bb75abc3fbe8f7efddcf8f0aadded eight documentation lines toaeaa7de5e6cafab6655b0210920b64c6027a6f7f. At that time:uv sync --frozen --extra sensevoice --python 3.12,uv lock --check, and checks of all 142 installed packages passed.tests/fixtures/audio/zh.mp3(2.628 s) anden.mp3(3.132 s), each producing 10 timestamped segments with expected Chinese/English weather text, nonempty text, positive durations, and ordered nonoverlapping bounds within the audio. The CLI used--asr sensevoice --sensevoice-device cpu --word-timestamps --format json, explicit languages, and an existing local SenseVoiceSmall path. These runs did not mock the model.The separate VAD model was downloaded through ModelScope during that earlier run despite the local ASR path. Those short-fixture checks are not offline guarantees, long-audio benchmarks, GPU/MPS validation, packaged-desktop acceptance, or external-translation validation, and were not rerun on the current fix.
Full-repository Pyright historically reported 4 errors and 11 warnings, with errors in
core/translate/base.py,core/translate/llm_translator.py(two), andcore/tts/siliconflow.py. The current narrow type check does not establish full-repository type-check success; the full check was not rerun.The previous head's CI, Claude Code Review, and Build Desktop Apps had
action_requiredwith no jobs started. These are historical records, not current-head success.