OpenBMB/VoxCPM
61.9
Adequate · 3 October 2026
15.6k
lines of production code
Python
primary language
1
measurement over time
What this system is
This system is an existing audio generation platform, centered around the 'voxcpm' component, that provides a Gradio-based interface and a command-line tool for managing model inference. Recent development has focused on enhancing usability and performance by adding macOS MPS support, optimizing CLI startup through lazy loading, and introducing reproducible generation via seed control. The codebase also includes maintenance efforts to fix LoRA configuration loading and expand test coverage for CLI arguments, indicating a shift towards stabilizing the user experience and tooling reliability.
Narrated so far: 2026-05-08 – 2026-06-05; 7 days pending; history before 2026-05-08 not narrated yet; history after 2026-06-05 not narrated yet.
How it got here
Week 19 of 2026 (4 May – 10 May) — not summarised yet
- Add macOS MPS device support to the Gradio app — The Gradio application now supports running on macOS Metal Performance Shaders (MPS) hardware. Users can specify the runtime device via the new \--device\ command-line argument (accepting values like \auto\, \cpu\, \mps\, \cuda\, or \cuda:N\). The application automatically detects the available device and configures both the VoxCPM and ASR models to run on the selected backend, enabling local inference on Apple Silicon Macs without requiring CUDA. ((repo-wide), src/voxcpm)
Week 21 of 2026 (18 May – 24 May) — CLI lazy loading optimization
2 changes.
The project implemented lazy loading for heavy dependencies within the CLI to improve startup performance. This change was accompanied by updates to the test suite to ensure the new import behavior functioned correctly.
Week 23 of 2026 (1 Jun – 7 Jun) — not summarised yet
- Added tests for CLI seed argument handling — Added tests verifying that the CLI parser correctly accepts and parses the --seed argument for both the design and batch subcommands, ensuring the seed value is passed through to the model execution. (tests)
- Add reproducible audio generation via random seed support — Users can now pass a \--seed\ argument to CLI scripts (including \voxcpm\, \test\_voxcpm\_ft\_infer\, and \test\_voxcpm\_lora\_infer\) and the Python API to control the random number generator during audio synthesis. This ensures that identical inputs and seeds produce identical audio outputs, enabling reproducible results. The implementation sets PyTorch seeds for both CPU and CUDA before generation and automatically increments the seed on retry attempts for bad cases to maintain determinism across retries. (scripts, src/voxcpm)
- Fix LoRA configuration loading from saved files — When loading LoRA weights without an explicit configuration, the system now attempts to load the saved \lora\_config.json\ from the weights directory to ensure parameter consistency (such as r/alpha values) with the checkpoint. If this file is not found, it falls back to the previous behavior of auto-creating a default configuration. (src/voxcpm)
Written by watchdog.canine.dev from the codebase's own history, inside the signed delivery this page is composed from.
How this codebase got here
Baseline
- First survey — no prior run to compare against. CAI 62.
Lenses
- Code Health 72
- Architecture 86
- Maturity 65
- Readiness 52
- Security 79
Changes since last survey
- 173 commits — 134 feature/other, 39 fixes
By area
- (root) — 73 commits
- src/voxcpm — 48 commits
- (repo) — 32 commits
- docker/README.md — 4 commits
- conf/voxcpm_v2 — 3 commits
- scripts/train_voxcpm_finetune.py — 3 commits
- .github/workflows — 1 commit
- assets/wechat.png — 1 commit
- conf/voxcpm_v1 — 1 commit
- docs/finetune.md — 1 commit
- docs/release_note.md — 1 commit
- docs/usage_guide.md — 1 commit
- scripts/test_pick_runtime_dtype.py — 1 commit
- scripts/test_voxcpm_ft_infer.py — 1 commit
- tests/test_cli.py — 1 commit
- tests/test_validate.py — 1 commit
Notable commits
- fix: FIX:When a prompt is present, concatenate two patches as the context for VAE decoding
- fix: FIX:When a prompt is present, concatenate two patches as the context for VAE decoding
- fix: FX: fixed find_package error
- fix: Fix load saved lora_config.json when loading LoRA weights
- fix: Fix: optimize save ckpt function
- fix: Merge pull request #188 from haosenwang1018/fix/bare-excepts
- fix: Merge pull request #229 from kuishou68/fix/issue-228-validate-text-type-order
- fix: Merge pull request #246 from sharziki/fix/unclosed-file-handles
- fix: Merge pull request #263 from Oumnya/fix/mps-bf16-dtype
- fix: Merge pull request #268 from shaun0927/fix/lora-weights-only
- fix: Merge pull request #329 from zhuxiaoxuhit/fix/lora-config-autoload
- fix: fix README
- fix: fix VoxCPM2 training sample_rate: 48000 -> 16000 (match AudioVAE encoder)
- fix: fix(mps): align VOXCPM_MPS_DTYPE override set with get_dtype parser
- fix: fix(mps): force float32 on Apple Silicon to avoid bf16 quality loss
- fix: fix: .dockerignore exclude venv/ and .venv-bench/
- fix: fix: add health check + clarify volume mounts
- fix: fix: address four validation correctness issues from review
- fix: fix: close file handles in from_local() config loading
- fix: fix: complete shared generator cleanup coverage
- …and 153 more
Written by watchdog.canine.dev from the codebase's own history, inside the signed delivery this page is composed from.
Survey your own repository
OpenBMB/VoxCPM was measured the same way every project in this corpus was: the same rubric, at a pinned commit, with the result published in full. Point a surveyor at a repository you know and see whether you agree with it.
About this page
- The score is its most recent published measurement, taken on 3 October 2026 at a pinned commit. It is not a live figure and does not change until the project is measured again.
- Measured at commit f0c787f0937dc1c9a8f4f64d9a332d9c5da2e629 — the exact code this score is about.
- Scored under rubric-2026.10.1 — the same rubric and the same method as every other entry in this index.
- Measured by watchdog.canine.dev using codehealth-analyzer preprod-24c657e50118.