Repository Analysis

microsoft/VibeVoice

Open-Source Frontier Voice AI

22.2 Moderate AI signal View on GitHub
22.2
Adjusted Score
22.2
Raw Score
100%
Time Factor
2026-05-06
Last Push
47,561
Stars
Python
Language
19,924
Lines of Code
55
Files
330
Pattern Hits
2026-05-31
Scan Date

Score History

Severity Breakdown

CRITICAL 0HIGH 10MEDIUM 45LOW 275

Pattern Findings

330 matches across 11 categories. Click a row to expand file-level details.

Unused Imports101 hits · 100 pts
SeverityFileLineSnippet
LOWdemo/vibevoice_asr_gradio_demo.py14
LOWdemo/vibevoice_asr_gradio_demo.py949
LOWdemo/vibevoice_asr_inference_from_file.py10
LOWdemo/vibevoice_asr_inference_from_file.py13
LOWdemo/vibevoice_asr_inference_from_file.py16
LOWdemo/vibevoice_asr_inference_from_file.py17
LOWdemo/vibevoice_asr_inference_from_file.py19
LOWdemo/vibevoice_asr_inference_from_file.py292
LOWdemo/vibevoice_asr_inference_from_file.py488
LOWdemo/realtime_model_inference_from_file.py3
LOWdemo/realtime_model_inference_from_file.py5
LOWdemo/realtime_model_inference_from_file.py5
LOWdemo/realtime_model_inference_from_file.py5
LOWdemo/realtime_model_inference_from_file.py5
LOWdemo/realtime_model_inference_from_file.py5
LOWdemo/web/app.py2
LOWdemo/web/app.py18
LOWvibevoice/__init__.py2
LOWvibevoice/__init__.py2
LOWvibevoice/__init__.py6
LOWvibevoice/__init__.py6
LOWvibevoice/processor/vibevoice_streaming_processor.py2
LOWvibevoice/processor/vibevoice_streaming_processor.py3
LOWvibevoice/processor/vibevoice_streaming_processor.py5
LOWvibevoice/processor/vibevoice_streaming_processor.py10
LOWvibevoice/processor/vibevoice_streaming_processor.py10
LOWvibevoice/processor/vibevoice_streaming_processor.py57
LOWvibevoice/processor/vibevoice_processor.py2
LOWvibevoice/processor/vibevoice_processor.py61
LOWvibevoice/processor/__init__.py2
LOWvibevoice/processor/__init__.py3
LOWvibevoice/processor/__init__.py4
LOWvibevoice/processor/__init__.py4
LOWvibevoice/processor/vibevoice_tokenizer_processor.py6
LOWvibevoice/processor/vibevoice_tokenizer_processor.py7
LOWvibevoice/processor/vibevoice_asr_processor.py9
LOWvibevoice/processor/audio_utils.py6
LOWvibevoice/processor/audio_utils.py6
LOWvibevoice/processor/audio_utils.py6
LOWvibevoice/processor/audio_utils.py6
LOWvibevoice/modular/modeling_vibevoice.py3
LOWvibevoice/modular/modeling_vibevoice.py4
LOWvibevoice/modular/modeling_vibevoice.py12
LOWvibevoice/modular/modeling_vibevoice.py13
LOWvibevoice/modular/modeling_vibevoice.py17
LOWvibevoice/modular/modeling_vibevoice.py21
LOWvibevoice/modular/modeling_vibevoice.py21
LOWvibevoice/modular/modeling_vibevoice.py21
LOWvibevoice/modular/streamer.py1
LOWvibevoice/modular/streamer.py7
LOWvibevoice/modular/modular_vibevoice_text_tokenizer.py3
LOWvibevoice/modular/modular_vibevoice_text_tokenizer.py3
LOWvibevoice/modular/modular_vibevoice_text_tokenizer.py3
LOWvibevoice/modular/configuration_vibevoice_streaming.py3
LOWvibevoice/modular/modular_vibevoice_tokenizer.py4
LOWvibevoice/modular/modular_vibevoice_tokenizer.py15
LOWvibevoice/modular/__init__.py2
LOWvibevoice/modular/__init__.py3
LOWvibevoice/modular/__init__.py4
LOWvibevoice/modular/__init__.py4
41 more matches not shown…
Excessive Try-Catch Wrapping78 hits · 80 pts
SeverityFileLineSnippet
MEDIUMdemo/vibevoice_asr_gradio_demo.py407 print(f"Error on segment {idx}: {e}")
MEDIUMdemo/vibevoice_asr_gradio_demo.py428 print(f"Error loading audio file: {e}")
MEDIUMdemo/vibevoice_asr_gradio_demo.py623def run_transcription():
LOWdemo/vibevoice_asr_gradio_demo.py43except Exception as e:
LOWdemo/vibevoice_asr_gradio_demo.py230 except Exception as e:
LOWdemo/vibevoice_asr_gradio_demo.py323 except Exception as e:
LOWdemo/vibevoice_asr_gradio_demo.py338 except Exception as e:
LOWdemo/vibevoice_asr_gradio_demo.py403 except Exception as e:
LOWdemo/vibevoice_asr_gradio_demo.py427 except Exception as e:
LOWdemo/vibevoice_asr_gradio_demo.py512 except Exception as e:
LOWdemo/vibevoice_asr_gradio_demo.py595 except Exception as exc:
LOWdemo/vibevoice_asr_gradio_demo.py635 except Exception as e:
MEDIUMdemo/vibevoice_asr_gradio_demo.py912 print(f"Error during transcription: {e}")
LOWdemo/vibevoice_asr_gradio_demo.py911 except Exception as e:
LOWdemo/vibevoice_asr_inference_from_file.py184 except Exception as e:
LOWdemo/vibevoice_asr_inference_from_file.py391 except Exception as e:
MEDIUMdemo/vibevoice_asr_inference_from_file.py392 print(f"Error loading dataset: {e}")
MEDIUMdemo/realtime_model_inference_from_file.py149 print(f"Error: txt file not found: {args.txt_path}")
MEDIUMdemo/realtime_model_inference_from_file.py158 print("Error: No valid scripts found in the txt file")
LOWdemo/realtime_model_inference_from_file.py201 except Exception as e:
MEDIUMdemo/realtime_model_inference_from_file.py205 print("Error loading the model. Trying to use SDPA. However, note that only flash_attention_2 has been fully
LOWdemo/web/app.py100 except Exception as e:
MEDIUMdemo/web/app.py102 print("Error loading the model. Trying to use SDPA. However, note that only flash_attention_2 has been f
LOWdemo/web/app.py232 except Exception as exc: # pragma: no cover - diagnostic logging
LOWdemo/web/app.py259 except Exception as exc:
LOWdemo/web/app.py401 except Exception:
LOWdemo/web/app.py430 except Exception:
LOWdemo/web/app.py473 except Exception as e:
MEDIUMdemo/web/app.py474 print(f"Error in websocket stream: {e}")
LOWdemo/web/app.py486 except Exception:
LOWdemo/web/app.py497 except Exception as e:
MEDIUMdemo/web/app.py498 print(f"Error closing websocket: {e}")
LOWvibevoice/processor/vibevoice_streaming_processor.py80 except Exception as e:
LOWvibevoice/processor/vibevoice_processor.py84 except Exception as e:
LOWvibevoice/processor/vibevoice_asr_processor.py128 except Exception as e:
LOWvibevoice/processor/vibevoice_asr_processor.py293 except Exception as e:
LOWvibevoice/processor/vibevoice_asr_processor.py563 except Exception as e:
LOWvibevoice/processor/audio_utils.py85 except Exception:
LOW…oice/modular/modeling_vibevoice_streaming_inference.py334 except Exception:
LOWfinetuning-asr/lora_finetune.py234 except Exception as e:
LOWfinetuning-asr/inference_lora.py137 except Exception as e:
LOWvllm_plugin/__init__.py46 except Exception:
LOWvllm_plugin/__init__.py52 except Exception:
LOWvllm_plugin/model.py519 except Exception:
LOWvllm_plugin/model.py981 except Exception:
LOWvllm_plugin/model.py1095 except Exception as e:
LOWvllm_plugin/tests/test_api.py130 except Exception as e:
MEDIUMvllm_plugin/tests/test_api.py131 print(f"Error preparing audio: {e}")
LOWvllm_plugin/tests/test_api.py224 except Exception as e:
LOWvllm_plugin/tests/test_api_auto_recover.py453 except Exception as e:
LOWvllm_plugin/tests/test_api_auto_recover.py508 except Exception as e:
MEDIUMvllm_plugin/scripts/gradio_asr_demo_api_video.py690 print(f"Error loading audio file: {e}")
MEDIUMvllm_plugin/scripts/gradio_asr_demo_api_video.py1804def _copy_file():
LOWvllm_plugin/scripts/gradio_asr_demo_api_video.py689 except Exception as e:
LOWvllm_plugin/scripts/gradio_asr_demo_api_video.py88 except Exception as e:
LOWvllm_plugin/scripts/gradio_asr_demo_api_video.py156 except Exception:
LOWvllm_plugin/scripts/gradio_asr_demo_api_video.py161 except Exception:
LOWvllm_plugin/scripts/gradio_asr_demo_api_video.py196 except Exception as e:
LOWvllm_plugin/scripts/gradio_asr_demo_api_video.py224 except Exception as e:
LOWvllm_plugin/scripts/gradio_asr_demo_api_video.py232 except Exception:
18 more matches not shown…
Decorative Section Separators21 hits · 66 pts
SeverityFileLineSnippet
MEDIUM…oice/modular/modeling_vibevoice_streaming_inference.py33# ============================================================================
MEDIUM…oice/modular/modeling_vibevoice_streaming_inference.py36# ============================================================================
MEDIUMvllm_plugin/model.py16# ============================================================================
MEDIUMvllm_plugin/model.py18# ============================================================================
MEDIUMvllm_plugin/model.py87# ============================================================================
MEDIUMvllm_plugin/model.py381 # ==========================================
MEDIUMvllm_plugin/model.py383 # ==========================================
MEDIUMvllm_plugin/model.py473# ============================================================================
MEDIUMvllm_plugin/model.py475# ============================================================================
MEDIUMvllm_plugin/model.py920# ============================================================================
MEDIUMvllm_plugin/model.py922# ============================================================================
MEDIUMvllm_plugin/scripts/gradio_asr_demo_api_video.py694# ============================================================================
MEDIUMvllm_plugin/scripts/gradio_asr_demo_api_video.py696# ============================================================================
MEDIUMvllm_plugin/scripts/gradio_asr_demo_api_video.py66# ============================================================================
MEDIUMvllm_plugin/scripts/gradio_asr_demo_api_video.py68# ============================================================================
MEDIUMvllm_plugin/scripts/gradio_asr_demo_api_video.py121# ============================================================================
MEDIUMvllm_plugin/scripts/gradio_asr_demo_api_video.py123# ============================================================================
MEDIUMvllm_plugin/scripts/gradio_asr_demo_api_video.py1140# ============================================================================
MEDIUMvllm_plugin/scripts/gradio_asr_demo_api_video.py1142# ============================================================================
MEDIUMvllm_plugin/scripts/gradio_asr_demo_api_video.py1153# ============================================================================
MEDIUMvllm_plugin/scripts/gradio_asr_demo_api_video.py1155# ============================================================================
Cross-File Repetition10 hits · 50 pts
SeverityFileLineSnippet
HIGHvibevoice/modular/modeling_vibevoice.py0set the speech tokenizers used for encoding and decoding speech.
HIGHvibevoice/modular/modeling_vibevoice_asr.py0set the speech tokenizers used for encoding and decoding speech.
HIGHvibevoice/modular/modeling_vibevoice_streaming.py0set the speech tokenizers used for encoding and decoding speech.
HIGH…oice/modular/modeling_vibevoice_streaming_inference.py0set the speech tokenizers used for encoding and decoding speech.
HIGHvibevoice/modular/modeling_vibevoice.py0tie the weights between the input embeddings and the output embeddings.
HIGHvibevoice/modular/modeling_vibevoice_asr.py0tie the weights between the input embeddings and the output embeddings.
HIGH…oice/modular/modeling_vibevoice_streaming_inference.py0tie the weights between the input embeddings and the output embeddings.
HIGHvibevoice/modular/configuration_vibevoice_streaming.py0override to_dict to handle torch.dtype serialization. fixes: https://github.com/microsoft/vibevoice/issues/199
HIGHvibevoice/modular/configuration_vibevoice.py0override to_dict to handle torch.dtype serialization. fixes: https://github.com/microsoft/vibevoice/issues/199
HIGHvibevoice/modular/configuration_vibevoice.py0override to_dict to handle torch.dtype serialization. fixes: https://github.com/microsoft/vibevoice/issues/199
Deep Nesting41 hits · 38 pts
SeverityFileLineSnippet
LOWdemo/vibevoice_asr_gradio_demo.py247
LOWdemo/vibevoice_asr_gradio_demo.py344
LOWdemo/vibevoice_asr_gradio_demo.py518
LOWdemo/vibevoice_asr_gradio_demo.py962
LOWdemo/vibevoice_asr_gradio_demo.py115
LOWdemo/vibevoice_asr_inference_from_file.py269
LOWdemo/web/app.py367
LOWvibevoice/schedule/dpm_solver.py28
LOWvibevoice/schedule/dpm_solver.py203
LOWvibevoice/schedule/dpm_solver.py321
LOWvibevoice/schedule/dpm_solver.py528
LOWvibevoice/schedule/dpm_solver.py627
LOWvibevoice/schedule/dpm_solver.py696
LOWvibevoice/processor/vibevoice_tokenizer_processor.py65
LOWvibevoice/processor/vibevoice_tokenizer_processor.py282
LOWvibevoice/processor/vibevoice_asr_processor.py267
LOWvibevoice/processor/vibevoice_asr_processor.py490
LOWvibevoice/modular/modeling_vibevoice.py274
LOWvibevoice/modular/streamer.py216
LOWvibevoice/modular/modeling_vibevoice_asr.py208
LOWvibevoice/modular/modular_vibevoice_tokenizer.py242
LOWvibevoice/modular/modular_vibevoice_tokenizer.py788
LOWvibevoice/modular/modular_vibevoice_tokenizer.py926
LOWvibevoice/modular/modular_vibevoice_tokenizer.py1079
LOWvibevoice/modular/modular_vibevoice_tokenizer.py1169
LOW…oice/modular/modeling_vibevoice_streaming_inference.py242
LOW…oice/modular/modeling_vibevoice_streaming_inference.py574
LOWfinetuning-asr/lora_finetune.py201
LOWvllm_plugin/model.py318
LOWvllm_plugin/model.py988
LOWvllm_plugin/model.py1010
LOWvllm_plugin/tools/generate_tokenizer_files.py387
LOWvllm_plugin/tools/generate_tokenizer_files.py414
LOWvllm_plugin/tests/test_api.py86
LOWvllm_plugin/tests/test_api_auto_recover.py220
LOWvllm_plugin/tests/test_api_auto_recover.py143
LOWvllm_plugin/scripts/gradio_asr_demo_api_video.py1157
LOWvllm_plugin/scripts/gradio_asr_demo_api_video.py1596
LOWvllm_plugin/scripts/gradio_asr_demo_api_video.py776
LOWvllm_plugin/scripts/gradio_asr_demo_api_video.py923
LOWvllm_plugin/scripts/gradio_asr_demo_api_video.py984
Hyper-Verbose Identifiers41 hits · 38 pts
SeverityFileLineSnippet
LOWdemo/vibevoice_asr_inference_from_file.py72 def _prepare_generation_config(
LOWdemo/vibevoice_asr_inference_from_file.py269def load_dataset_and_concatenate(
LOWvibevoice/schedule/dpm_solver.py87def rescale_zero_terminal_snr(betas):
LOWvibevoice/schedule/dpm_solver.py627 def dpm_solver_first_order_update(
LOWvibevoice/schedule/dpm_solver.py696 def multistep_dpm_solver_second_order_update(
LOWvibevoice/schedule/dpm_solver.py819 def multistep_dpm_solver_third_order_update(
LOWvibevoice/processor/vibevoice_streaming_processor.py170 def process_input_with_cached_prompt(
LOWvibevoice/processor/vibevoice_asr_processor.py490 def post_process_transcription(self, text: str) -> List[Dict[str, Any]]:
LOWvibevoice/processor/audio_utils.py80def _get_ffmpeg_max_concurrency() -> int:
LOWvibevoice/processor/audio_utils.py107def load_audio_bytes_use_ffmpeg(data: bytes, *, resample: bool = False, target_sr: int = 24000):
LOWvibevoice/modular/modular_vibevoice_text_tokenizer.py66 def _add_vibevoice_special_tokens(self):
LOWvibevoice/modular/modular_vibevoice_text_tokenizer.py163 def _add_vibevoice_special_tokens(self):
LOWvibevoice/modular/modular_vibevoice_text_tokenizer.py264 def _add_vibevoice_special_tokens(self):
LOWvibevoice/modular/modeling_vibevoice_asr.py426 def prepare_inputs_for_generation(
LOWvibevoice/modular/modular_vibevoice_tokenizer.py97def apply_parametrization_norm(module: nn.Module, norm: str = 'none') -> nn.Module:
LOW…oice/modular/modeling_vibevoice_streaming_inference.py117def _update_model_kwargs_for_generation(
LOW…oice/modular/modeling_vibevoice_streaming_inference.py242 def prepare_inputs_for_generation(
LOW…oice/modular/modeling_vibevoice_streaming_inference.py300 def _update_model_kwargs_for_generation(
LOW…oice/modular/modeling_vibevoice_streaming_inference.py315 def _init_cache_for_generation(self, generation_config, model_kwargs, batch_size, max_cache_length, device):
LOW…oice/modular/modeling_vibevoice_streaming_inference.py498 def _build_generate_config_model_kwargs(self, generation_config, inputs, tokenizer, return_processors=False, **kwarg
LOWvllm_plugin/model.py272 def _ensure_audio_encoder_dtype(self):
LOWvllm_plugin/model.py559 def get_mm_max_tokens_per_item(
LOWvllm_plugin/model.py666 def get_dummy_processor_inputs(
LOWvllm_plugin/model.py787 def _hf_processor_applies_updates(
LOWvllm_plugin/inputs.py43def vibevoice_audio_input_mapper(ctx, data: Union[str, bytes, np.ndarray, List[str]]) -> MultiModalInputs:
LOWvllm_plugin/tools/generate_tokenizer_files.py151def download_qwen_tokenizer_files(output_dir: str, qwen_model: str = DEFAULT_QWEN_MODEL) -> None:
LOWvllm_plugin/tools/generate_tokenizer_files.py293def generate_added_tokens_json(output_dir: str) -> None:
LOWvllm_plugin/tools/generate_tokenizer_files.py315def generate_special_tokens_map_json(output_dir: str) -> None:
LOWvllm_plugin/tools/generate_tokenizer_files.py355def generate_vibevoice_tokenizer_files(output_dir: str, qwen_model: str = DEFAULT_QWEN_MODEL) -> None:
LOWvllm_plugin/tests/test_api.py47def _get_duration_seconds_ffprobe(path: str) -> float:
LOWvllm_plugin/tests/test_api.py65def _extract_audio_from_video(video_path: str) -> str:
LOWvllm_plugin/tests/test_api.py86def test_transcription_with_hotwords(
LOWvllm_plugin/tests/test_api_auto_recover.py64def _get_duration_seconds_ffprobe(path: str) -> float:
LOWvllm_plugin/tests/test_api_auto_recover.py75def _extract_audio_from_video(video_path: str) -> str:
LOWvllm_plugin/tests/test_api_auto_recover.py102def _find_last_segment_boundary(text: str) -> int:
LOWvllm_plugin/tests/test_api_auto_recover.py114def _find_safe_print_boundary(text: str, max_pos: int) -> int:
LOWvllm_plugin/tests/test_api_auto_recover.py463def test_transcription_with_recovery(
LOWvllm_plugin/scripts/gradio_asr_demo_api_video.py144def _get_duration_seconds_ffprobe(path: str) -> float:
LOWvllm_plugin/scripts/gradio_asr_demo_api_video.py721 def get_available_models_sync(self) -> List[str]:
LOWvllm_plugin/scripts/gradio_asr_demo_api_video.py984 def _parse_truncated_segments(self, text: str) -> Optional[List[Dict]]:
LOWvllm_plugin/scripts/gradio_asr_demo_api_video.py1054 def _recover_incomplete_segment(self, incomplete_text: str) -> Optional[Dict]:
Redundant / Tautological Comments16 hits · 25 pts
SeverityFileLineSnippet
LOWdemo/vibevoice_asr_inference_from_file.py336 # Check if adding this chunk exceeds max_duration
LOWdemo/vibevoice_asr_inference_from_file.py571 # Print results
LOWdemo/realtime_model_inference_from_file.py33 # Check if voices directory exists
LOWdemo/realtime_model_inference_from_file.py147 # Check if txt file exists
LOWvibevoice/processor/vibevoice_processor.py255 # Check if it's a file path
LOWvibevoice/processor/vibevoice_processor.py621 # Check if we need to normalize speaker IDs (only if all are > 0)
LOWvibevoice/processor/vibevoice_tokenizer_processor.py161 # Check if it's a list of file paths
LOWvibevoice/processor/vibevoice_tokenizer_processor.py167 # Check if it's batched audio arrays
LOWvibevoice/modular/modeling_vibevoice_asr.py294 # Check if this is the final segment
LOW…oice/modular/modeling_vibevoice_streaming_inference.py715 # # Check if audio_streamer has been ended (stopped externally)
LOWfinetuning-asr/inference_lora.py215 # Print results
LOWvllm_plugin/model.py404 # Check if this is the final segment
LOWvllm_plugin/scripts/gradio_asr_demo_api_video.py994 # Check if text starts with array
LOWvllm_plugin/scripts/gradio_asr_demo_api_video.py1213 # Check if uploaded file is a video
LOWvllm_plugin/scripts/gradio_asr_demo_api_video.py1327 # Check if stopped by user
LOWvllm_plugin/scripts/gradio_asr_demo_api_video.py1983 # Check if it's a recorded video that needs conversion
Self-Referential Comments7 hits · 21 pts
SeverityFileLineSnippet
MEDIUMvibevoice/processor/vibevoice_tokenizer_processor.py182 # Create a proper batch dimension (B, T)
MEDIUMvibevoice/modular/streamer.py37 # Create a queue for each sample in the batch
MEDIUMvibevoice/modular/modular_vibevoice_tokenizer.py286 # Create a unique layer ID for cache management
MEDIUMvibevoice/modular/modular_vibevoice_tokenizer.py461 # Create a unique layer ID for cache management
MEDIUMvibevoice/modular/modular_vibevoice_diffusion_head.py219 # Create the intermediate layers
MEDIUMvllm_plugin/scripts/gradio_asr_demo_api_video.py1300 # Create a stopped result - parse whatever we have so far
MEDIUMvllm_plugin/scripts/gradio_asr_demo_api_video.py2011 # Create a temp VTT file for the video player
Verbosity Indicators10 hits · 15 pts
SeverityFileLineSnippet
LOWvllm_plugin/tools/generate_tokenizer_files.py369 # Step 1: Download base files from Qwen2
LOWvllm_plugin/tools/generate_tokenizer_files.py372 # Step 2: Patch tokenizer_config.json
LOWvllm_plugin/tools/generate_tokenizer_files.py375 # Step 3: Patch tokenizer.json
LOWvllm_plugin/tools/generate_tokenizer_files.py378 # Step 4: Generate added_tokens.json
LOWvllm_plugin/tools/generate_tokenizer_files.py381 # Step 5: Generate special_tokens_map.json
LOWvllm_plugin/scripts/start_server.py415 # Step 1: Install system dependencies
LOWvllm_plugin/scripts/start_server.py419 # Step 2: Install VibeVoice
LOWvllm_plugin/scripts/start_server.py422 # Step 3: Download model
LOWvllm_plugin/scripts/start_server.py425 # Step 4: Generate tokenizer files
LOWvllm_plugin/scripts/start_server.py429 # Step 5: Start server
AI Slop Vocabulary3 hits · 8 pts
SeverityFileLineSnippet
LOWvibevoice/processor/vibevoice_processor.py362 # No padding, just create attention masks
MEDIUMvibevoice/processor/vibevoice_processor.py579 # Use regex to be more robust
MEDIUMvibevoice/processor/audio_utils.py129 # For stdin bytes, we don't have a cheap/robust way to probe original sr.
Over-Commented Block2 hits · 2 pts
SeverityFileLineSnippet
LOWvibevoice/schedule/dpm_solver.py1# Copyright 2024 TSAIL Team and The HuggingFace Team. All rights reserved.
LOWvllm_plugin/__init__.py61# Note: This function is called via vllm.general_plugins entry point