Repository Analysis

OpenBMB/VoxCPM

VoxCPM2: Tokenizer-Free TTS for Multilingual Speech Generation, Creative Voice Design, and True-to-Life Cloning

15.0 Moderate AI signal View on GitHub
15.0
Adjusted Score
15.0
Raw Score
100%
Time Factor
2026-05-22
Last Push
22,743
Stars
Python
Language
13,324
Lines of Code
55
Files
148
Pattern Hits
2026-05-31
Scan Date

Score History

Severity Breakdown

CRITICAL 0HIGH 4MEDIUM 14LOW 130

Pattern Findings

148 matches across 6 categories. Click a row to expand file-level details.

Hyper-Verbose Identifiers43 hits · 48 pts
SeverityFileLineSnippet
LOWlora_ft_webui.py194def load_lora_config_from_checkpoint(lora_path):
LOWlora_ft_webui.py1001 def on_pretrained_path_change(path):
LOWtests/test_lora_checkpoint_loading.py118def test_load_lora_weights_accepts_tensor_only_legacy_checkpoints(monkeypatch, tmp_path, module_name):
LOWtests/test_lora_checkpoint_loading.py132def test_load_lora_weights_rejects_malicious_pickle_payloads(monkeypatch, tmp_path, module_name):
LOWtests/test_model_utils.py23def test_resolve_runtime_device_auto_falls_back_to_cpu(monkeypatch):
LOWtests/test_model_utils.py30def test_resolve_runtime_device_auto_uses_mps_when_available(monkeypatch):
LOWtests/test_model_utils.py37def test_resolve_runtime_device_respects_explicit_cpu(monkeypatch):
LOWtests/test_model_utils.py44def test_resolve_runtime_device_rejects_unavailable_explicit_cuda(monkeypatch):
LOWtests/test_validate.py177 def test_validation_result_properties(self):
LOWtests/test_validate.py187 def test_invalid_audio_not_counted_as_valid(self, tmp_dir):
LOWtests/test_validate.py200 def test_sample_rate_mismatch(self, tmp_dir):
LOWtests/test_validate.py221 def test_mixed_ref_audio_warns_for_each_missing(self, tmp_dir):
LOWtests/test_validate.py240 def test_cli_validate_exit_code(self, tmp_dir):
LOWtests/test_cli.py70def test_load_model_respects_no_optimize_for_local_model(monkeypatch):
LOWtests/test_cli.py98def test_load_model_defaults_optimize_for_hf(monkeypatch):
LOWtests/test_cli.py124def test_load_model_respects_no_optimize_for_hf(monkeypatch):
LOWtests/test_cli.py151def test_load_model_passes_explicit_device_to_hf(monkeypatch):
LOWtests/test_cli.py178def test_design_subcommand_applies_control(monkeypatch, tmp_path):
LOWtests/test_cli.py201def test_clone_subcommand_reads_prompt_file(monkeypatch, tmp_path):
LOWtests/test_cli.py278def test_legacy_root_args_still_work_and_warn(monkeypatch, tmp_path, capsys):
LOWtests/test_cli.py298def test_batch_subcommand_applies_control(monkeypatch, tmp_path):
LOWtests/test_cli.py325def test_legacy_clone_with_prompt_file_still_works(monkeypatch, tmp_path, capsys):
LOWtests/test_cli.py354def test_invalid_prompt_text_and_prompt_file_combination(monkeypatch, tmp_path, capsys):
LOWtests/test_cli.py385def test_missing_prompt_file_reports_parser_error(monkeypatch, tmp_path, capsys):
LOWtests/test_cli.py411def test_design_rejects_prompt_audio_args(monkeypatch, tmp_path, capsys):
LOWtests/test_cli.py437def test_clone_rejects_prompt_audio_without_transcript(monkeypatch, tmp_path, capsys):
LOWtests/test_cli.py464def test_clone_rejects_transcript_without_prompt_audio(monkeypatch, tmp_path, capsys):
LOWtests/test_cli.py488def test_batch_rejects_control_with_prompt_transcript(monkeypatch, tmp_path, capsys):
LOWtests/test_cli.py518def test_detect_model_architecture_uses_local_configs():
LOWsrc/voxcpm/cli.py88def detect_model_architecture(args) -> str | None:
LOWsrc/voxcpm/cli.py116def validate_prompt_related_args(args, parser, prompt_text: str | None):
LOWsrc/voxcpm/cli.py129def validate_reference_support(args, parser):
LOWsrc/voxcpm/cli.py371def _add_common_generation_args(parser):
LOWsrc/voxcpm/cli.py395def _add_prompt_reference_args(parser):
LOWsrc/voxcpm/training/packers.py322 def process_tts_data_with_ref(
LOWsrc/voxcpm/model/voxcpm.py584 def generate_with_prompt_cache(self, *args, **kwargs) -> Tuple[torch.Tensor, torch.Tensor, torch.Tensor]:
LOWsrc/voxcpm/model/voxcpm.py587 def generate_with_prompt_cache_streaming(
LOWsrc/voxcpm/model/voxcpm.py593 def _generate_with_prompt_cache(
LOWsrc/voxcpm/model/utils.py24def mask_multichar_chinese_tokens(tokenizer: PreTrainedTokenizer):
LOWsrc/voxcpm/model/voxcpm2.py774 def generate_with_prompt_cache(self, *args, **kwargs) -> Tuple[torch.Tensor, torch.Tensor, torch.Tensor]:
LOWsrc/voxcpm/model/voxcpm2.py777 def generate_with_prompt_cache_streaming(
LOWsrc/voxcpm/model/voxcpm2.py783 def _generate_with_prompt_cache(
LOWsrc/voxcpm/modules/layers/lora.py98def apply_lora_to_named_linear_modules(
Excessive Try-Catch Wrapping36 hits · 45 pts
SeverityFileLineSnippet
LOWapp_old.py54 except Exception as e:
LOWapp.py394 except Exception as e:
LOWlora_ft_webui.py144 except Exception as e:
LOWlora_ft_webui.py204 except Exception as e:
LOWlora_ft_webui.py280 except Exception as e:
LOWlora_ft_webui.py290 except Exception as e:
LOWlora_ft_webui.py316 except Exception as e:
LOWlora_ft_webui.py322 except Exception as e:
MEDIUMlora_ft_webui.py323 print(f"Error loading LoRA: {e}", file=sys.stderr)
LOWlora_ft_webui.py351 except Exception as e:
LOWlora_ft_webui.py367 except Exception as e:
LOWlora_ft_webui.py446 except Exception:
LOWscripts/train_voxcpm_finetune.py241 except Exception:
LOWscripts/train_voxcpm_finetune.py248 except Exception as e:
MEDIUMscripts/train_voxcpm_finetune.py249 print(f"Error saving checkpoint on signal: {e}", file=sys.stderr)
LOWscripts/train_voxcpm_finetune.py449 except Exception as e:
LOWscripts/train_voxcpm_finetune.py583 except Exception as e:
LOWscripts/train_voxcpm_finetune.py637 except Exception as e:
LOWscripts/train_voxcpm_finetune.py640 except Exception as e:
LOWscripts/train_voxcpm_finetune.py655 except Exception as e:
LOWscripts/train_voxcpm_finetune.py823 except Exception:
MEDIUMscripts/train_voxcpm_finetune.py226def _signal_handler(
LOWscripts/test_pick_runtime_dtype.py36 except Exception as e:
LOWscripts/test_pick_runtime_dtype.py55 except Exception as e:
MEDIUMscripts/test_pick_runtime_dtype.py30def expect_raises(fn, exc_type, label):
LOWsrc/voxcpm/zipenhancer.py65 except Exception as e:
LOWsrc/voxcpm/cli.py215 except Exception as e:
LOWsrc/voxcpm/cli.py234 except Exception as e:
LOWsrc/voxcpm/cli.py360 except Exception as e:
LOWsrc/voxcpm/training/validate.py55 except Exception as e:
LOWsrc/voxcpm/training/validate.py66 except Exception:
LOWsrc/voxcpm/training/validate.py112 except Exception as e:
LOWsrc/voxcpm/model/voxcpm.py245 except Exception as e:
LOWsrc/voxcpm/model/utils.py119 except Exception as e:
LOWsrc/voxcpm/model/voxcpm2.py74 except Exception:
LOWsrc/voxcpm/model/voxcpm2.py293 except Exception as e:
Unused Imports36 hits · 36 pts
SeverityFileLineSnippet
LOWtests/test_lora_checkpoint_loading.py1
LOWtests/test_model_utils.py1
LOWtests/test_validate.py3
LOWtests/test_validate.py6
LOWtests/test_cli.py1
LOWsrc/voxcpm/__init__.py1
LOWsrc/voxcpm/training/config.py1
LOWsrc/voxcpm/training/__init__.py9
LOWsrc/voxcpm/training/__init__.py10
LOWsrc/voxcpm/training/__init__.py11
LOWsrc/voxcpm/training/__init__.py11
LOWsrc/voxcpm/training/__init__.py11
LOWsrc/voxcpm/training/__init__.py11
LOWsrc/voxcpm/training/__init__.py17
LOWsrc/voxcpm/training/__init__.py18
LOWsrc/voxcpm/training/__init__.py18
LOWsrc/voxcpm/training/tracker.py1
LOWsrc/voxcpm/training/accelerator.py1
LOWsrc/voxcpm/training/state.py1
LOWsrc/voxcpm/model/__init__.py1
LOWsrc/voxcpm/model/__init__.py2
LOWsrc/voxcpm/model/voxcpm.py233
LOWsrc/voxcpm/model/voxcpm2.py281
LOWsrc/voxcpm/modules/layers/__init__.py1
LOWsrc/voxcpm/modules/audiovae/__init__.py1
LOWsrc/voxcpm/modules/audiovae/__init__.py1
LOWsrc/voxcpm/modules/audiovae/__init__.py2
LOWsrc/voxcpm/modules/audiovae/__init__.py2
LOWsrc/voxcpm/modules/locenc/__init__.py1
LOWsrc/voxcpm/modules/minicpm4/__init__.py1
LOWsrc/voxcpm/modules/minicpm4/__init__.py2
LOWsrc/voxcpm/modules/minicpm4/__init__.py3
LOWsrc/voxcpm/modules/locdit/__init__.py1
LOWsrc/voxcpm/modules/locdit/__init__.py1
LOWsrc/voxcpm/modules/locdit/__init__.py2
LOWsrc/voxcpm/modules/locdit/__init__.py3
Decorative Section Separators10 hits · 32 pts
SeverityFileLineSnippet
MEDIUMsrc/voxcpm/cli.py16# -----------------------------
MEDIUMsrc/voxcpm/cli.py18# -----------------------------
MEDIUMsrc/voxcpm/cli.py166# -----------------------------
MEDIUMsrc/voxcpm/cli.py168# -----------------------------
MEDIUMsrc/voxcpm/cli.py239# -----------------------------
MEDIUMsrc/voxcpm/cli.py241# -----------------------------
MEDIUMsrc/voxcpm/cli.py366# -----------------------------
MEDIUMsrc/voxcpm/cli.py368# -----------------------------
MEDIUMsrc/voxcpm/cli.py621# -----------------------------
MEDIUMsrc/voxcpm/cli.py623# -----------------------------
Docstring Block Structure4 hits · 20 pts
SeverityFileLineSnippet
HIGHsrc/voxcpm/zipenhancer.py41 Audio denoising enhancement Args: input_path: Input audio file path output_path
HIGHsrc/voxcpm/core.py117Instantiate ``VoxCPM`` from a Hugging Face Hub snapshot. Args: hf_model_id: Explicit Hugging Face r
HIGHsrc/voxcpm/core.py318Load LoRA weights from a checkpoint file. Args: lora_weights_path: Path to LoRA weights (.pth file
HIGHsrc/voxcpm/model/utils.py99Call the tokenizer and return token IDs. This method provides the same interface as the original tokenizer
Deep Nesting19 hits · 19 pts
SeverityFileLineSnippet
LOWapp_old.py150
LOWapp.py345
LOWlora_ft_webui.py149
LOWlora_ft_webui.py255
LOWscripts/train_voxcpm_finetune.py45
LOWscripts/train_voxcpm_finetune.py365
LOWscripts/train_voxcpm_finetune.py538
LOWscripts/train_voxcpm_finetune.py745
LOWsrc/voxcpm/core.py180
LOWsrc/voxcpm/training/validate.py70
LOWsrc/voxcpm/model/voxcpm.py357
LOWsrc/voxcpm/model/voxcpm.py593
LOWsrc/voxcpm/model/voxcpm.py860
LOWsrc/voxcpm/model/utils.py125
LOWsrc/voxcpm/model/voxcpm2.py463
LOWsrc/voxcpm/model/voxcpm2.py783
LOWsrc/voxcpm/model/voxcpm2.py1111
LOWsrc/voxcpm/modules/audiovae/audio_vae_v2.py219
LOWsrc/voxcpm/modules/audiovae/audio_vae_v2.py532