VoiceStudio is the open-source, fully-local ElevenLabs alternative — voice cloning, voice design, video dubbing, dictation, transcription & audiobook creation in 646 languages.
This report summarizes scanner evidence for debpalash/VoiceStudio, a Python project with 58,342 GitHub stars. SynthScan examined 774,848 lines of code across 3030 source files, recording 13506 pattern matches distributed across 21 syntactic categories. The legacy adjusted pattern signal is 26.0 (Elevated pattern signal); it is not an authorship estimate.
Use the findings to ask whether maintainers can explain intent, verify dependencies, simplify unnecessary scaffolding, and focus review effort. Risk Payload v1 adds ownership, supply-chain, over-engineering, and review-effort vectors when available. These are prompts for human verification, not probabilities, security findings, or measured maintenance costs.
Use each vector to guide manual verification of the underlying findings.
Can maintainers explain intent, assumptions, and trade-offs? 8663 finding(s).
Are imports declared and package/API names verified? 1023 finding(s).
Are wrappers, guards, and repeated structures necessary? 11703 finding(s).
Which changes need focused human review? 13506 finding(s).
This chart tracks the legacy adjusted pattern score across scan runs. Changes can reflect source changes, scan coverage, or detector/scoring versions; they do not measure AI adoption or prove that a team refactored code. Compare runs only when their scoring versions are compatible. The dashed line tracks the raw pattern-hit count.
Groups findings by configured severity weight. Severity is not a confidence estimate, security rating, or proof that a package is missing. Verify imports against the project's manifests and inspect each finding in its local design context.
This horizontal bar chart shows where configured pattern scores accumulate across directories. Treat the bars as locations to inspect, not as evidence of authorship or code quality. Use the file-level findings to decide whether a directory needs a focused ownership, dependency, complexity, or review check.
The scanner identified 13506 distinct pattern matches across 21 syntactic categories. Each entry below represents a discrete location in the source code where the engine recorded a detector match to inspect in context. Expand any category row to inspect the individual file paths, line numbers, code snippets, and the lexical context (CODE, COMMENT, or STRING) in which each match was detected.
Reading the findings table: The Severity column indicates the configured finding weight (CRITICAL / HIGH / MEDIUM / LOW). The Context column identifies whether the match occurred inside executable code, an inline comment, or a string literal — legacy comment-context matches receive a ×1.5 score weight. The ⚡ bolt icon marks clustered matches: three or more patterns within a 10-line window, each receiving an additional ×1.5 density multiplier under the legacy scoring model.
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | conftest.py | 13 | def _clean_model_manager_shutdown_state(request): | CODE |
| LOW | omnivoice/training/builder.py | 49 | def build_model_and_tokenizer( | CODE |
| LOW | omnivoice/training/trainer.py | 161 | def create_optimizer_and_scheduler(self): | CODE |
| LOW | omnivoice/utils/audio.py | 55 | def clone_ref_transcript_too_long_message(duration_s: float) -> str: | CODE |
| LOW | omnivoice/utils/voice_design.py | 77 | def _valid_instruct_from_items(items): | CODE |
| LOW⚡ | omnivoice/models/omnivoice.py | 443 | def _can_set_experts_implementation(cls) -> bool: | CODE |
| LOW⚡ | omnivoice/models/omnivoice.py | 447 | def _can_set_attn_implementation(cls) -> bool: | CODE |
| LOW | omnivoice/models/omnivoice.py | 373 | def _find_cached_reference_asr() -> Optional[str]: | CODE |
| LOW | omnivoice/models/omnivoice.py | 596 | def _load_cached_reference_asr(self): | CODE |
| LOW | omnivoice/models/omnivoice.py | 882 | def create_voice_clone_prompt( | CODE |
| LOW | omnivoice/models/omnivoice.py | 1419 | def _prepare_inference_inputs( | CODE |
| LOW | omnivoice/models/omnivoice.py | 1654 | def _predict_tokens_with_scoring(self, c_logits, u_logits, gen_config): | CODE |
| LOW | omnivoice/models/omnivoice.py | 1887 | def _tokenize_with_nonverbal_tags(text: str, tokenizer) -> torch.Tensor: | CODE |
| LOW | omnivoice/models/omnivoice_flashinfer.py | 98 | def _fi_attention_module_forward( | CODE |
| LOW | omnivoice/models/omnivoice_flashinfer.py | 228 | def _generate_iterative_packed( | CODE |
| LOW | omnivoice/models/omnivoice_flashinfer.py | 559 | def _get_or_capture_bucket_graph(model, B, U_b, C_b): | CODE |
| LOW | omnivoice/cli/infer_batch.py | 256 | def estimate_sample_total_duration( | CODE |
| LOW | omnivoice/cli/infer_batch.py | 275 | def cluster_samples_by_duration( | CODE |
| LOW | omnivoice/cli/infer_batch.py | 317 | def cluster_samples_by_batch_size( | CODE |
| LOW | omnivoice/eval/wer/sensevoice.py | 185 | def run_eval_worker_sensevoice(data_chunk, batch_size): | CODE |
| LOW | omnivoice/eval/wer/minimax.py | 48 | def read_language_mapping_from_tsv( | CODE |
| LOW | omnivoice/eval/wer/minimax.py | 333 | def run_eval_worker_paraformer(data_chunk, batch_size): | CODE |
| LOW | omnivoice/eval/wer/fleurs.py | 90 | def read_language_mapping_from_tsv( | CODE |
| LOW | omnivoice/data/dataset.py | 66 | def prepare_data_manifests_from_json( | CODE |
| LOW | omnivoice/data/dataset.py | 161 | def webdataset_manifest_reader( | CODE |
| LOW⚡ | tests/test_no_unspeakable_chunks_1330.py | 50 | def test_a_punctuation_tail_never_becomes_its_own_chunk(ct, pad, tail): | CODE |
| LOW⚡ | tests/test_no_unspeakable_chunks_1330.py | 56 | def test_nothing_is_lost_when_a_chunk_is_folded(ct): | CODE |
| LOW⚡ | tests/test_no_unspeakable_chunks_1330.py | 64 | def test_the_fold_keeps_the_punctuation_adjacent_to_its_sentence(ct): | CODE |
| LOW⚡ | tests/test_no_unspeakable_chunks_1330.py | 71 | def test_a_realistic_ellipsis_ending_stays_whole(ct): | CODE |
| LOW⚡ | tests/test_no_unspeakable_chunks_1330.py | 81 | def test_text_made_entirely_of_punctuation_still_returns_one_chunk(ct): | CODE |
| LOW⚡ | tests/test_no_unspeakable_chunks_1330.py | 91 | def test_a_leading_unspeakable_chunk_folds_forward(ct, monkeypatch): | CODE |
| LOW⚡ | tests/test_no_unspeakable_chunks_1330.py | 102 | def test_normal_prose_is_chunked_exactly_as_before(ct): | CODE |
| LOW⚡ | tests/test_no_unspeakable_chunks_1330.py | 110 | def test_a_single_short_text_is_still_one_chunk(ct): | CODE |
| LOW⚡ | tests/test_no_unspeakable_chunks_1330.py | 114 | def test_empty_input_still_yields_nothing(ct): | CODE |
| LOW⚡ | tests/test_no_unspeakable_chunks_1330.py | 119 | def test_cjk_counts_as_speakable(ct): | CODE |
| LOW⚡ | tests/test_no_unspeakable_chunks_1330.py | 130 | def test_the_fold_prefers_moving_a_word_over_overflowing(ct): | CODE |
| LOW⚡ | tests/test_no_unspeakable_chunks_1330.py | 138 | def test_a_borrowed_word_must_itself_be_speakable(ct): | CODE |
| LOW⚡ | tests/test_no_unspeakable_chunks_1330.py | 146 | def test_any_overflow_is_punctuation_only_and_small(ct): | CODE |
| LOW | tests/test_webvtt_character_references.py | 24 | def test_downloaded_caption_track_decodes_character_references(tmp_path): | STRING |
| LOW | tests/test_webvtt_character_references.py | 36 | def test_pasted_webvtt_translation_decodes_character_references(): | STRING |
| LOW | tests/test_webvtt_character_references.py | 48 | def test_webvtt_references_are_decoded_once_and_srt_is_unchanged(): | STRING |
| LOW | tests/test_ffmpeg_filter_file_2236.py | 15 | def test_filter_file_works_with_legacy_and_modern_ffmpeg(fu, monkeypatch, tmp_path, modern): | CODE |
| LOW | tests/test_ffmpeg_filter_file_2236.py | 44 | def test_filter_file_does_not_retry_a_real_processing_error(fu, monkeypatch, tmp_path): | CODE |
| LOW | tests/test_ffmpeg_filter_file_2236.py | 60 | def test_externalized_graph_survives_retry_then_is_cleaned(fu, monkeypatch, tmp_path): | CODE |
| LOW | tests/test_ffmpeg_filter_file_2236.py | 83 | def test_modern_file_syntax_produces_real_audio(fu, monkeypatch, tmp_path): | CODE |
| LOW | tests/test_profile_storage_recovery.py | 9 | def test_upload_recreates_missing_voice_directory(tmp_path, monkeypatch): | CODE |
| LOW | tests/test_install_disk_full.py | 18 | def test_disk_full_is_recognised(reason): | CODE |
| LOW | tests/test_install_disk_full.py | 24 | def test_disk_full_is_found_through_a_wrapped_cause(): | CODE |
| LOW⚡ | tests/test_install_disk_full.py | 37 | def test_platform_quota_errno_is_disk_full(): | CODE |
| LOW⚡ | tests/test_install_disk_full.py | 43 | def test_other_failures_are_not_disk_full(): | CODE |
| LOW⚡ | tests/test_install_disk_full.py | 51 | def test_model_install_does_not_retry_a_full_disk(): | CODE |
| LOW⚡ | tests/test_install_disk_full.py | 58 | def test_disk_full_message_names_free_space_and_cache(tmp_path): | CODE |
| LOW⚡ | tests/test_install_disk_full.py | 65 | def test_sidecar_install_reports_full_disk_from_uv_output(): | CODE |
| LOW | tests/test_install_disk_full.py | 76 | def test_earlier_recovered_disk_full_does_not_relabel_a_later_uv_failure(monkeypatch): | CODE |
| LOW⚡ | tests/test_mastering_no_hidden_reverb.py | 40 | def test_mastering_chain_contains_no_reverb(self): | CODE |
| LOW⚡ | tests/test_mastering_no_hidden_reverb.py | 44 | def test_mastering_chain_keeps_highpass_and_compressor(self): | CODE |
| LOW⚡ | tests/test_mastering_no_hidden_reverb.py | 53 | def test_no_reverb_presets_stay_reverb_free(self, preset_id): | CODE |
| LOW⚡ | tests/test_mastering_no_hidden_reverb.py | 58 | def test_user_chosen_reverb_survives(self, preset_id): | CODE |
| LOW⚡ | tests/test_mastering_no_hidden_reverb.py | 64 | def test_returns_same_shape_and_device(self): | CODE |
| LOW⚡ | tests/test_mastering_no_hidden_reverb.py | 72 | def test_no_echo_tail_bleeds_into_silence(self): | CODE |
| 7788 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| MEDIUM | native/desktop-bridge/src/dictation_output.rs | 803 | // ── Destination capture and reactivation ──────────────────────────────── | COMMENT |
| MEDIUM | native/desktop-bridge/src/dictation_output.rs | 1117 | // ── Wayland insertion adapters ────────────────────────────────────────── | COMMENT |
| MEDIUM | omnivoice/utils/duration.py | 33 | # ========================================== | COMMENT |
| MEDIUM | omnivoice/utils/duration.py | 35 | # ========================================== | COMMENT |
| MEDIUM | omnivoice/utils/duration.py | 68 | # ========================================== | COMMENT |
| MEDIUM | omnivoice/utils/duration.py | 70 | # ========================================== | COMMENT |
| MEDIUM | omnivoice/utils/duration.py | 261 | # ========================================== | COMMENT |
| MEDIUM | omnivoice/utils/duration.py | 263 | # ========================================== | COMMENT |
| MEDIUM⚡ | omnivoice/models/omnivoice.py | 434 | # ── Desktop-bundle safety overrides ───────────────────────────────── | COMMENT |
| MEDIUM | omnivoice/models/omnivoice.py | 95 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM | omnivoice/models/omnivoice.py | 97 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM | omnivoice/models/omnivoice.py | 220 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM | omnivoice/models/omnivoice.py | 222 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM | omnivoice/models/omnivoice.py | 572 | # ------------------------------------------------------------------- | COMMENT |
| MEDIUM | omnivoice/models/omnivoice.py | 574 | # ------------------------------------------------------------------- | COMMENT |
| MEDIUM | omnivoice/models/omnivoice.py | 752 | # ------------------------------------------------------------------- | COMMENT |
| MEDIUM | omnivoice/models/omnivoice.py | 754 | # ------------------------------------------------------------------- | COMMENT |
| MEDIUM | omnivoice/models/omnivoice.py | 1680 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM | omnivoice/models/omnivoice.py | 1682 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM | omnivoice/models/omnivoice.py | 1949 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM | omnivoice/models/omnivoice.py | 1951 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM⚡ | omnivoice/cli/demo.py | 48 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM⚡ | omnivoice/cli/demo.py | 50 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM⚡ | omnivoice/cli/demo.py | 54 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM⚡ | omnivoice/cli/demo.py | 56 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM | omnivoice/cli/demo.py | 109 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM | omnivoice/cli/demo.py | 111 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM | omnivoice/cli/demo.py | 150 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM | omnivoice/cli/demo.py | 152 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM⚡ | omnivoice/cli/demo.py | 224 | # ===================================================================== | COMMENT |
| MEDIUM⚡ | omnivoice/cli/demo.py | 226 | # ===================================================================== | COMMENT |
| MEDIUM | omnivoice/cli/demo.py | 318 | # ============================================================== | STRING |
| MEDIUM | omnivoice/cli/demo.py | 320 | # ============================================================== | STRING |
| MEDIUM | omnivoice/cli/demo.py | 403 | # ============================================================== | STRING |
| MEDIUM | omnivoice/cli/demo.py | 405 | # ============================================================== | STRING |
| MEDIUM | omnivoice/cli/demo.py | 503 | # --------------------------------------------------------------------------- | STRING |
| MEDIUM | omnivoice/cli/demo.py | 505 | # --------------------------------------------------------------------------- | STRING |
| MEDIUM | omnivoice/scripts/denoise_audio.py | 219 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM | omnivoice/scripts/denoise_audio.py | 221 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM | omnivoice/scripts/denoise_audio.py | 399 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM | omnivoice/scripts/denoise_audio.py | 401 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM | omnivoice/scripts/denoise_audio.py | 470 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM | omnivoice/scripts/denoise_audio.py | 472 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM | omnivoice/scripts/denoise_audio.py | 518 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM | omnivoice/scripts/denoise_audio.py | 520 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM | omnivoice/scripts/denoise_audio.py | 735 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM | omnivoice/scripts/denoise_audio.py | 737 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM | deploy/docker-compose.yml | 1 | # ────────────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | deploy/docker-compose.yml | 26 | # ────────────────────────────────────────────────────────────── | COMMENT |
| MEDIUM⚡ | tests/test_no_unspeakable_chunks_1330.py | 43 | # ── the bug ──────────────────────────────────────────────────────────────── | COMMENT |
| MEDIUM⚡ | tests/test_no_unspeakable_chunks_1330.py | 78 | # ── input that is ONLY punctuation ───────────────────────────────────────── | COMMENT |
| MEDIUM⚡ | tests/test_no_unspeakable_chunks_1330.py | 99 | # ── the ordinary path is untouched ───────────────────────────────────────── | COMMENT |
| MEDIUM⚡ | tests/test_no_unspeakable_chunks_1330.py | 127 | # ── the fold respects the size contract ──────────────────────────────────── | COMMENT |
| MEDIUM | tests/test_dub_batch_width_and_budget.py | 119 | # ── cached-segment payload guard (Greptile, #1620 review) ───────────────── | COMMENT |
| MEDIUM⚡ | tests/test_why_no_gpu_1274.py | 52 | # ── the wheel itself has no GPU support ──────────────────────────────────── | COMMENT |
| MEDIUM⚡ | tests/test_why_no_gpu_1274.py | 62 | # ── ROCm ─────────────────────────────────────────────────────────────────── | COMMENT |
| MEDIUM⚡ | tests/test_why_no_gpu_1274.py | 200 | # ── CUDA ─────────────────────────────────────────────────────────────────── | COMMENT |
| MEDIUM⚡ | tests/test_why_no_gpu_1274.py | 217 | # ── contract ─────────────────────────────────────────────────────────────── | COMMENT |
| MEDIUM⚡ | tests/test_analytics_optin.py | 65 | # ── Rule 1: off unless the user says yes ──────────────────────────────────── | COMMENT |
| MEDIUM⚡ | tests/test_analytics_optin.py | 137 | # ── First-run consent prompt: asked exactly once, never defaulted ──────────── | COMMENT |
| 1860 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| HIGH | omnivoice/models/omnivoice.py | 396 | except (LocalEntryNotFoundError, ValueError): | CODE |
| HIGH | omnivoice/scripts/denoise_audio.py | 670 | except Exception: | CODE |
| HIGH | tests/conftest.py | 500 | except Exception: | CODE |
| HIGH | tests/test_event_bus_thread_emit.py | 83 | except asyncio.TimeoutError: | CODE |
| HIGH | tests/test_recurrence_hardening.py | 211 | except OSError: | CODE |
| HIGH | tests/test_dub_error_transparency.py | 234 | except Exception: | CODE |
| HIGH | tests/test_dub_error_transparency.py | 76 | except asyncio.CancelledError: | CODE |
| HIGH | tests/test_voice_design_profile_and_capability.py | 189 | except OSError: | CODE |
| HIGH | tests/test_smart_fit_export.py | 447 | except (TypeError, ValueError): | CODE |
| HIGH | tests/test_storage_partials_regression.py | 91 | except PermissionError: | CODE |
| HIGH | tests/test_task_stream_failure.py | 36 | except asyncio.CancelledError: pass | CODE |
| HIGH | tests/test_task_stream_failure.py | 81 | except asyncio.CancelledError: pass | CODE |
| HIGH | tests/test_task_stream_failure.py | 117 | except asyncio.CancelledError: | CODE |
| HIGH | tests/test_fdl_segmented_download.py | 177 | except asyncio.TimeoutError: | CODE |
| HIGH | tests/test_no_hardcoded_cjk.py | 129 | except Exception: | CODE |
| HIGH | tests/test_tasks_stream_keepalive.py | 45 | except asyncio.TimeoutError: | CODE |
| HIGH | tests/test_dub_browser_media.py | 120 | except asyncio.CancelledError: | CODE |
| HIGH | tests/test_sherpa_ws_streaming.py | 147 | except Exception: | CODE |
| HIGH | tests/test_video_context.py | 169 | except asyncio.CancelledError: | CODE |
| HIGH | tests/test_render_trace.py | 121 | except (asyncio.CancelledError, RuntimeError): | CODE |
| HIGH | tests/test_worker_agent.py | 51 | except OSError: | CODE |
| HIGH | tests/test_mcp_startup_timeout.py | 53 | except BaseException: | CODE |
| HIGH | tests/test_download_range_contract.py | 35 | except (BrokenPipeError, ConnectionResetError): | CODE |
| HIGH | tests/backend/services/test_indextts_sidecar.py | 77 | except Exception: | CODE |
| HIGH | tests/backend/services/test_subprocess_reaper.py | 55 | except Exception: | CODE |
| HIGH | tests/backend/services/test_subprocess_backend.py | 94 | except Exception: | CODE |
| HIGH | tests/backend/services/test_subprocess_backend.py | 329 | except Exception: | CODE |
| HIGH | tests/backend/services/test_subprocess_asr.py | 53 | except Exception: | CODE |
| HIGH | tests/backend/services/test_subprocess_asr.py | 145 | except Exception: | CODE |
| HIGH | tests/probe/conftest.py | 76 | except Exception: # noqa: BLE001 — triage is best-effort, never break reporting | CODE |
| HIGH | tests/probe/web.py | 176 | except Exception: # noqa: BLE001 — treat lookup errors as "not found" | CODE |
| HIGH | backend/main.py | 136 | except ImportError: | CODE |
| HIGH | backend/main.py | 211 | except Exception: | CODE |
| HIGH | backend/main.py | 108 | except Exception: # noqa: BLE001 — pythonw/frozen builds may lack reconfigure | CODE |
| HIGH | backend/main.py | 607 | except Exception: | CODE |
| HIGH | backend/main.py | 619 | except Exception: | CODE |
| HIGH | backend/main.py | 636 | except Exception: | CODE |
| HIGH | backend/main.py | 644 | except Exception: | CODE |
| HIGH | backend/main.py | 654 | except Exception: # noqa: BLE001 — never block startup on a preload | CODE |
| HIGH | backend/main.py | 686 | except Exception: | CODE |
| HIGH | backend/main.py | 766 | except Exception: | CODE |
| HIGH | backend/main.py | 869 | except Exception: | CODE |
| HIGH | backend/main.py | 1133 | except Exception: | CODE |
| HIGH | backend/main.py | 1324 | except Exception: | CODE |
| HIGH | backend/main.py | 1330 | except Exception: | CODE |
| HIGH | backend/main.py | 1336 | except Exception: | CODE |
| HIGH | backend/main.py | 543 | except (asyncio.CancelledError, asyncio.TimeoutError): | CODE |
| HIGH | backend/main.py | 1214 | except (asyncio.TimeoutError, asyncio.CancelledError): | CODE |
| HIGH | backend/main.py | 1216 | except Exception: | CODE |
| HIGH | backend/main.py | 1259 | except (asyncio.TimeoutError, asyncio.CancelledError): | CODE |
| HIGH | backend/main.py | 1261 | except Exception: | CODE |
| HIGH | backend/main.py | 2080 | except Exception: | CODE |
| HIGH | backend/main.py | 262 | except Exception: | CODE |
| HIGH | backend/mcp_server.py | 537 | except Exception: | CODE |
| HIGH | backend/mcp_server.py | 589 | except Exception: | CODE |
| HIGH | backend/core/browser_guard.py | 175 | except ValueError: | CODE |
| HIGH | backend/core/db.py | 33 | except Exception: | CODE |
| HIGH | backend/core/gpu_inventory.py | 176 | except Exception: # noqa: BLE001 - inventory is advisory, never fatal | CODE |
| HIGH | backend/core/device_caps.py | 594 | except Exception: | CODE |
| HIGH | backend/core/device_caps.py | 607 | except Exception: | CODE |
| 339 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | omnivoice/models/omnivoice.py | 274 | except Exception as e: | CODE |
| LOW | omnivoice/models/omnivoice.py | 305 | except Exception: | CODE |
| LOW | omnivoice/models/omnivoice.py | 548 | except Exception as exc: | CODE |
| LOW | omnivoice/cli/infer_batch.py | 500 | except Exception as e: | CODE |
| LOW⚡ | omnivoice/cli/demo.py | 214 | except Exception as e: | CODE |
| LOW | omnivoice/scripts/extract_audio_tokens.py | 256 | except Exception as e: | CODE |
| LOW | omnivoice/scripts/extract_audio_tokens.py | 317 | except Exception as e: | CODE |
| LOW | omnivoice/scripts/extract_audio_tokens.py | 506 | except Exception as exc: | CODE |
| LOW | omnivoice/scripts/extract_audio_tokens.py | 579 | except Exception: | CODE |
| LOW | omnivoice/scripts/denoise_audio.py | 607 | except Exception as e: | CODE |
| LOW | omnivoice/scripts/denoise_audio.py | 670 | except Exception: | CODE |
| LOW | omnivoice/scripts/denoise_audio.py | 930 | except Exception as exc: | CODE |
| LOW | omnivoice/scripts/denoise_audio.py | 1002 | except Exception: | CODE |
| LOW | omnivoice/scripts/jsonl_to_webdataset.py | 186 | except Exception as e: | CODE |
| LOW | omnivoice/scripts/jsonl_to_webdataset.py | 401 | except Exception as e: | CODE |
| MEDIUM | omnivoice/scripts/jsonl_to_webdataset.py | 421 | print(f"Error details: {error_log_path}") | CODE |
| LOW | omnivoice/scripts/extract_audio_tokens_add_noise.py | 334 | except Exception as e: | CODE |
| LOW | omnivoice/scripts/extract_audio_tokens_add_noise.py | 345 | except Exception as e: | CODE |
| LOW | omnivoice/scripts/extract_audio_tokens_add_noise.py | 380 | except Exception as e: | CODE |
| LOW | omnivoice/scripts/extract_audio_tokens_add_noise.py | 446 | except Exception as e: | CODE |
| LOW | omnivoice/scripts/extract_audio_tokens_add_noise.py | 507 | except Exception as e: | CODE |
| LOW | omnivoice/scripts/extract_audio_tokens_add_noise.py | 701 | except Exception as exc: | CODE |
| LOW | omnivoice/scripts/extract_audio_tokens_add_noise.py | 779 | except Exception: | CODE |
| LOW | omnivoice/eval/mos/utmos.py | 127 | except Exception as e: | CODE |
| LOW | omnivoice/eval/mos/utmos.py | 151 | except Exception as e: | CODE |
| LOW | omnivoice/eval/mos/utmos.py | 191 | except Exception as e: | CODE |
| LOW | omnivoice/eval/speaker_similarity/sim.py | 178 | except Exception as e: | CODE |
| LOW | omnivoice/eval/wer/sensevoice.py | 138 | except Exception: | CODE |
| LOW | omnivoice/eval/wer/sensevoice.py | 157 | except Exception as e: | CODE |
| LOW | omnivoice/eval/wer/sensevoice.py | 223 | except Exception: | CODE |
| LOW | omnivoice/eval/wer/sensevoice.py | 309 | except Exception as e: | CODE |
| LOW | omnivoice/eval/wer/minimax.py | 191 | except Exception: | CODE |
| LOW | omnivoice/eval/wer/minimax.py | 211 | except Exception as e: | CODE |
| LOW | omnivoice/eval/wer/minimax.py | 226 | except Exception as e: | CODE |
| LOW | omnivoice/eval/wer/minimax.py | 324 | except Exception: | CODE |
| LOW | omnivoice/eval/wer/minimax.py | 365 | except Exception: | CODE |
| LOW | omnivoice/eval/wer/minimax.py | 482 | except Exception as e: | CODE |
| LOW | omnivoice/eval/wer/minimax.py | 514 | except Exception as e: | CODE |
| LOW | omnivoice/eval/wer/fleurs.py | 220 | except Exception as e: | STRING |
| LOW | omnivoice/eval/wer/fleurs.py | 236 | except Exception: | STRING |
| LOW | omnivoice/eval/wer/fleurs.py | 250 | except Exception as e: | STRING |
| LOW | omnivoice/eval/wer/fleurs.py | 318 | except Exception: | STRING |
| LOW | omnivoice/eval/wer/fleurs.py | 423 | except Exception as e: | STRING |
| LOW | omnivoice/eval/wer/hubert.py | 102 | except Exception: | CODE |
| LOW | omnivoice/eval/wer/hubert.py | 115 | except Exception as e: | CODE |
| LOW | omnivoice/eval/wer/hubert.py | 192 | except Exception: | CODE |
| LOW | omnivoice/eval/wer/seedtts.py | 194 | except Exception: | CODE |
| LOW | omnivoice/eval/wer/seedtts.py | 210 | except Exception as e: | CODE |
| LOW | omnivoice/eval/wer/seedtts.py | 273 | except Exception: | CODE |
| LOW | omnivoice/eval/wer/seedtts.py | 353 | except Exception as e: | CODE |
| LOW | omnivoice/data/batching.py | 144 | except Exception as e: | CODE |
| LOW | omnivoice/data/dataset.py | 447 | except Exception as e: | CODE |
| LOW | tests/test_model_load_extends_generate_budget.py | 310 | except Exception as e: # pragma: no cover - surfaced via result | CODE |
| LOW | tests/conftest.py | 461 | except Exception: | CODE |
| LOW | tests/conftest.py | 479 | except Exception: | CODE |
| LOW | tests/conftest.py | 500 | except Exception: | CODE |
| LOW | tests/conftest.py | 659 | except Exception: | CODE |
| LOW | tests/test_poll_guard_2594.py | 95 | except Exception as exc: # noqa: BLE001 | CODE |
| LOW | tests/test_poll_guard_2594.py | 210 | except Exception as exc: # noqa: BLE001 | CODE |
| LOW | tests/test_watermark_prefetch_coldstart.py | 73 | except Exception as exc: # pragma: no cover - surfaced by assertion | CODE |
| 1279 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | omnivoice/utils/dtype.py | 12 | CODE | |
| LOW | omnivoice/utils/text.py | 27 | CODE | |
| LOW | omnivoice/cli/dub.py | 23 | CODE | |
| LOW | omnivoice/scripts/denoise_audio.py | 50 | CODE | |
| LOW | tests/test_webvtt_character_references.py | 8 | CODE | |
| LOW | tests/test_dub_batch_width_and_budget.py | 14 | CODE | |
| LOW | tests/test_why_no_gpu_1274.py | 21 | CODE | |
| LOW | tests/test_dub_language_code_paths.py | 7 | CODE | |
| LOW | tests/test_analytics_optin.py | 13 | CODE | |
| LOW | tests/test_dub_voice_match.py | 18 | CODE | |
| LOW | tests/test_worker_capacity.py | 8 | CODE | |
| LOW | tests/test_worker_capacity.py | 268 | CODE | |
| LOW | tests/test_pronunciation.py | 6 | CODE | |
| LOW | tests/test_pronunciation.py | 10 | CODE | |
| LOW | tests/test_under_provisioned_gpu_budget_1804.py | 22 | CODE | |
| LOW | tests/test_nemo_parakeet_install_hint.py | 16 | CODE | |
| LOW | tests/test_contact_emails.py | 12 | CODE | |
| LOW | tests/test_funasr_global_speaker_chunking.py | 3 | CODE | |
| LOW | tests/test_model_status_events.py | 1 | CODE | |
| LOW | tests/test_startup_progress_early_bind.py | 19 | CODE | |
| LOW | tests/test_translator.py | 9 | CODE | |
| LOW | tests/test_pedalboard_sigill_pin.py | 12 | CODE | |
| LOW | tests/test_model_load_timeout.py | 8 | CODE | |
| LOW | tests/test_model_load_extends_generate_budget.py | 19 | CODE | |
| LOW | tests/test_longform_e2e.py | 12 | CODE | |
| LOW | tests/test_longform_e2e.py | 16 | CODE | |
| LOW | tests/test_model_manager_preload.py | 1 | CODE | |
| LOW | tests/test_resolve_heartbeat_1414.py | 18 | CODE | |
| LOW | tests/test_pockettts_sidecar.py | 20 | CODE | |
| LOW | tests/test_issue_template_labels.py | 8 | CODE | |
| LOW | tests/test_win_accept_guard.py | 14 | CODE | |
| LOW | tests/test_dub_phrase_embedding_recovery.py | 3 | CODE | |
| LOW | tests/test_worker_inputs.py | 25 | CODE | |
| LOW | tests/test_worker_routing.py | 7 | CODE | |
| LOW | tests/test_generate_abort_budget.py | 9 | CODE | |
| LOW | tests/test_compile_mode_cudagraph_arch.py | 15 | CODE | |
| LOW | tests/test_model_license_category.py | 2 | CODE | |
| LOW | tests/test_dub_dialect.py | 7 | CODE | |
| LOW | tests/test_dub_dialect.py | 9 | CODE | |
| LOW | …ts/test_chunk_progress_extends_generate_budget_1391.py | 20 | CODE | |
| LOW | tests/test_profile_design_save_decouple.py | 16 | CODE | |
| LOW | tests/test_transcribe_media_tool_failure.py | 11 | CODE | |
| LOW | tests/test_llm_skills.py | 15 | CODE | |
| LOW | tests/test_windows_paging_file.py | 19 | CODE | |
| LOW | tests/test_prompt_disk_cache.py | 15 | CODE | |
| LOW | tests/test_prompt_disk_cache.py | 194 | CODE | |
| LOW | tests/test_event_bus_thread_emit.py | 15 | CODE | |
| LOW | tests/test_confucius4_sidecar.py | 14 | CODE | |
| LOW | tests/test_segmentation.py | 5 | CODE | |
| LOW | tests/test_segmentation.py | 5 | CODE | |
| LOW | tests/test_segmentation.py | 5 | CODE | |
| LOW | tests/test_segmentation.py | 5 | CODE | |
| LOW | tests/test_segmentation.py | 5 | CODE | |
| LOW | tests/test_broken_dependency_diagnosis_1415.py | 24 | CODE | |
| LOW | tests/test_model_license_workflow.py | 6 | CODE | |
| LOW | tests/test_watermark_no_torch_compile_1615.py | 24 | CODE | |
| LOW | tests/test_unified_memory_offload.py | 17 | CODE | |
| LOW | tests/test_mlx_supported.py | 6 | CODE | |
| LOW | tests/test_electron_release_assets.py | 1 | CODE | |
| LOW | tests/test_ci_windows_ffmpeg_retry.py | 13 | CODE | |
| 765 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| HIGH | tests/test_ci_windows_ffmpeg_retry.py | 78 | f"n=$(cat {str(counter)!r} 2>/dev/null || echo 0); n=$((n+1));" | CODE |
| HIGH | tests/test_dub_remote.py | 82 | '"watermark":false}],"ref_audio":[null,null]}' | CODE |
| HIGH | tests/test_dub_remote.py | 117 | '"watermark":false}],"ref_audio":[null,null]}' | CODE |
| HIGH⚡ | tests/test_caption_markup_not_speech.py | 138 | assert parse_srt(vtt).segments[0]["text"] == "x < y && y > z" | STRING |
| HIGH | tests/test_electron_rehearsal_runtime.py | 48 | assert "if (setup || install || existing)" in smoke | CODE |
| HIGH⚡ | tests/test_glossary_scrub.py | 86 | "Candidates:\nMarcus || WRONG || draft\n</think>\n" | CODE |
| HIGH⚡ | tests/test_glossary_scrub.py | 87 | "Marcus || Marcus || character name\n" | CODE |
| HIGH⚡ | tests/test_glossary_scrub.py | 132 | _use("Émile || Emile || name\nМосква || Moscow || city\nStraße || street || word\n") | CODE |
| HIGH⚡ | tests/test_glossary_scrub.py | 134 | _use("émile || Emile || name\nМОСКВА || Moscow || city\nSTRASSE || street || word\n") | CODE |
| HIGH | tests/test_glossary_scrub.py | 168 | _use("Moscow || Moscow || city\nFiona || Fiona || name\n") | CODE |
| HIGH | tests/test_glossary_scrub.py | 170 | _use(f"{fullwidth_moscow} || Moscow || city\n{ligature_fiona} || Fiona || name\n") | CODE |
| HIGH | tests/test_profile_language_rejection_2156.py | 11 | reads "Auto" (`electron/src/shared/hooks/useProfiles.js`: `if (reqLang && reqLang !== | STRING |
| HIGH⚡ | tests/test_audiobook_expressive.py | 550 | expected = ('{"class_temperature": null, "emo_alpha": null, "emo_text": "calm", ' | CODE |
| HIGH⚡ | tests/test_audiobook_expressive.py | 551 | '"emo_vector": null, "guidance_scale": null, "num_step": null, ' | CODE |
| HIGH⚡ | tests/test_audiobook_expressive.py | 552 | '"position_temperature": null, "postprocess_output": null, ' | CODE |
| HIGH⚡ | tests/test_commit_identities.py | 318 | event.write_text('{"pull_request": {"body": null}}') | CODE |
| HIGH | tests/test_sentence_chunker.py | 29 | emitted.extend(chunker.push(token)) | CODE |
| HIGH⚡ | tests/test_sentence_chunker.py | 57 | out = chunker.push("First thing here today. Second thing follows it. Third!") | CODE |
| HIGH⚡ | tests/test_sentence_chunker.py | 64 | out = chunker.push("Just the one sentence without much else going on.") | CODE |
| HIGH⚡ | tests/test_sentence_chunker.py | 77 | assert chunker.push("Yes.") == ["Yes."] | CODE |
| HIGH⚡ | tests/test_sentence_chunker.py | 80 | assert chunker.push(clause) == [] | CODE |
| HIGH⚡ | tests/test_voice_chunk_markers.py | 12 | out.extend(chunker.push(text[start:start + step])) | CODE |
| HIGH⚡ | tests/test_voice_chunk_markers.py | 24 | assert chunker.push(text) + chunker.flush() == [ | CODE |
| HIGH | tests/test_perf_operation_budgets.py | 130 | expected = chunker.push(real_norm(text, "en")) | CODE |
| HIGH⚡ | tests/test_call_agent.py | 442 | events += vad.push(quiet) | CODE |
| HIGH⚡ | tests/test_call_agent.py | 444 | events += vad.push(loud) | CODE |
| HIGH⚡ | tests/test_call_agent.py | 446 | events += vad.push(quiet) | CODE |
| HIGH⚡ | tests/test_call_agent.py | 450 | assert "barge" not in [e for _ in range(9) for e in fresh.push(loud)] # < 200 ms is not a barge-in | CODE |
| HIGH⚡ | tests/test_call_agent.py | 451 | assert fresh.push(loud) == ["barge"] | CODE |
| HIGH⚡ | tests/test_call_agent.py | 456 | events += vad.push(loud) | CODE |
| HIGH⚡ | tests/test_call_agent.py | 458 | events += vad.push(quiet) | CODE |
| HIGH⚡ | tests/test_dub_translation_quality.py | 80 | "TERM: Chef Okonkwo || Chef Okonkwo\n" | CODE |
| HIGH⚡ | tests/test_dub_translation_quality.py | 81 | "TERM: flat-top grill || plancha\n" | CODE |
| HIGH⚡ | tests/test_low_vram_advisory.py | 119 | # Engines without a floor report null, not 0.0 — "unknown", not "none". | COMMENT |
| HIGH | tests/scripts/test_uninstall_elevation.py | 59 | $tokens = $null; $errors = $null | CODE |
| HIGH | tests/probe/web.py | 229 | raise RuntimeError("playwright not installed: `uv add playwright && playwright install chromium`") | CODE |
| HIGH⚡ | tests/probe/test_probe_web.py | 171 | pytest.importorskip("playwright", reason="L2 live browser: `uv add playwright && playwright install chromium`") | CODE |
| HIGH | backend/engines/moss_tts_v15/__init__.py | 72 | uv venv && uv pip install -e ".[torch-runtime]" | STRING |
| HIGH | backend/engines/dots_tts/__init__.py | 58 | uv venv && uv pip install -e . -c constraints/recommended.txt | STRING |
| HIGH | backend/engines/confucius4/__init__.py | 51 | uv venv --python 3.10 && uv pip install -r requirements.txt | STRING |
| HIGH | backend/engines/indextts/__init__.py | 114 | cd index-tts && uv pip install -e . # NOT uv sync --all-extras | STRING |
| HIGH⚡ | backend/api/routers/system.py | 1543 | returns ``{"quarantined": false, "error_class": null}``. The React | STRING |
| HIGH | backend/api/routers/tts_stream.py | 193 | sentences = chunker.push(text) | CODE |
| HIGH | backend/api/routers/glossary.py | 188 | SOURCE || TARGET || one-line note (or empty) | CODE |
| HIGH | backend/services/translation_quality.py | 47 | TERM: SOURCE || TARGET | CODE |
| HIGH | backend/services/translation_quality.py | 48 | TERM: SOURCE || TARGET | CODE |
| HIGH | backend/services/tts_backend.py | 3437 | "moss-tts-nano": "git clone OpenMOSS/MOSS-TTS-Nano && pip install -e . (not on PyPI)", | CODE |
| HIGH | backend/services/tts_backend.py | 3438 | "indextts2": "git clone --branch indextts-2.5 https://github.com/index-tts/index-tts.git && cd index-tts && uv v | CODE |
| HIGH | backend/services/tts_backend.py | 2841 | cd CosyVoice && pip install -r requirements.txt | STRING |
| HIGH | backend/services/sentence_chunker.py | 318 | for sentence in chunker.push(token): | STRING |
| HIGH | backend/services/telephony/agent.py | 586 | for event in self._vad.push(pcm[i:i + FRAME_SAMPLES]): | CODE |
| HIGH | backend/services/telephony/agent.py | 745 | for sentence in chunker.push(parser.feed(delta)): | CODE |
| HIGH | backend/services/telephony/agent.py | 747 | for sentence in chunker.push(parser.finish()) + chunker.flush(): | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | alembic.ini | 1 | # Alembic configuration for VoiceStudio. | COMMENT |
| LOW | pyproject.toml | 41 | "accelerate", | COMMENT |
| LOW | pyproject.toml | 61 | "pyannote-audio>=3.3.2,<4.0", | COMMENT |
| LOW | pyproject.toml | 81 | # succeed on Linux/Windows/mac-Intel (no mlx wheels exist for those). | COMMENT |
| LOW | pyproject.toml | 101 | # voices (Bella, Jasper, Luna, Bruno, Rosie, Hugo, Kiki, Leo), CPU | COMMENT |
| LOW | pyproject.toml | 121 | # Offline translation — listed as builtin in the engine registry so the | COMMENT |
| LOW | pyproject.toml | 141 | # hf-xet is 64-bit only (fine for every OmniVoice target). Do NOT add | COMMENT |
| LOW | pyproject.toml | 161 | "openai>=1.40", | COMMENT |
| LOW | pyproject.toml | 181 | # identical on macOS/Windows/Linux. | COMMENT |
| LOW | pyproject.toml | 241 | # Publisher verified per Plan 03-01 Task 1 (Package Legitimacy Audit): | COMMENT |
| LOW | .gitleaks.toml | 1 | # Gitleaks config — extends the default ruleset. | COMMENT |
| LOW | .coderabbit.yaml | 1 | # CodeRabbit configuration — https://docs.coderabbit.ai/guides/configure-coderabbit | COMMENT |
| LOW | native/desktop-bridge/src/watch_folder_core.rs | 1 | //! Shared capability-scoped batch watch-folder scan and streaming upload. | COMMENT |
| LOW | native/desktop-bridge/src/watch_folder_core.rs | 41 | COMMENT | |
| LOW | native/desktop-bridge/src/watch_folder_core.rs | 81 | info.dwVolumeSerialNumber, | COMMENT |
| LOW | omnivoice/__init__.py | 21 | COMMENT | |
| LOW | omnivoice/training/config.py | 1 | #!/usr/bin/env python3 | COMMENT |
| LOW | omnivoice/training/checkpoint.py | 1 | #!/usr/bin/env python3 | COMMENT |
| LOW | omnivoice/training/builder.py | 1 | #!/usr/bin/env python3 | COMMENT |
| LOW | omnivoice/training/trainer.py | 1 | #!/usr/bin/env python3 | COMMENT |
| LOW | omnivoice/utils/duration.py | 1 | #!/usr/bin/env python3 | COMMENT |
| LOW | omnivoice/utils/data_utils.py | 1 | #!/usr/bin/env python3 | COMMENT |
| LOW | omnivoice/utils/common.py | 1 | #!/usr/bin/env python3 | COMMENT |
| LOW | omnivoice/utils/text.py | 1 | #!/usr/bin/env python3 | COMMENT |
| LOW | omnivoice/utils/audio.py | 1 | #!/usr/bin/env python3 | COMMENT |
| LOW | omnivoice/utils/lang_map.py | 1 | #!/usr/bin/env python3 | COMMENT |
| LOW | omnivoice/utils/voice_design.py | 1 | #!/usr/bin/env python3 | COMMENT |
| LOW | omnivoice/models/omnivoice.py | 1 | #!/usr/bin/env python3 | COMMENT |
| LOW | omnivoice/cli/train.py | 1 | #!/usr/bin/env python3 | COMMENT |
| LOW | omnivoice/cli/infer_batch.py | 1 | #!/usr/bin/env python3 | COMMENT |
| LOW | omnivoice/cli/demo.py | 1 | #!/usr/bin/env python3 | COMMENT |
| LOW | omnivoice/scripts/extract_audio_tokens.py | 1 | #!/usr/bin/env python3 | COMMENT |
| LOW | omnivoice/scripts/denoise_audio.py | 1 | #!/usr/bin/env python3 | COMMENT |
| LOW | omnivoice/scripts/denoise_audio.py | 521 | # | COMMENT |
| LOW | omnivoice/scripts/jsonl_to_webdataset.py | 1 | #!/usr/bin/env python3 | COMMENT |
| LOW | omnivoice/scripts/extract_audio_tokens_add_noise.py | 1 | #!/usr/bin/env python3 | COMMENT |
| LOW | omnivoice/eval/utils.py | 1 | #!/usr/bin/env python3 | COMMENT |
| LOW | omnivoice/eval/mos/utmos.py | 1 | #!/usr/bin/env python3 | COMMENT |
| LOW | omnivoice/eval/models/utmos.py | 1 | #!/usr/bin/env python3 | COMMENT |
| LOW | omnivoice/eval/models/ecapa_tdnn_wavlm.py | 1 | #!/usr/bin/env python3 | COMMENT |
| LOW | omnivoice/eval/speaker_similarity/sim.py | 1 | #!/usr/bin/env python3 | COMMENT |
| LOW | omnivoice/eval/wer/sensevoice.py | 1 | #!/usr/bin/env python3 | COMMENT |
| LOW | omnivoice/eval/wer/minimax.py | 1 | #!/usr/bin/env python3 | COMMENT |
| LOW | omnivoice/eval/wer/common.py | 1 | #!/usr/bin/env python3 | COMMENT |
| LOW | omnivoice/eval/wer/fleurs.py | 1 | #!/usr/bin/env python3 | COMMENT |
| LOW | omnivoice/eval/wer/hubert.py | 1 | #!/usr/bin/env python3 | COMMENT |
| LOW | omnivoice/eval/wer/seedtts.py | 1 | #!/usr/bin/env python3 | COMMENT |
| LOW | omnivoice/data/batching.py | 1 | #!/usr/bin/env python3 | COMMENT |
| LOW | omnivoice/data/collator.py | 1 | #!/usr/bin/env python3 | COMMENT |
| LOW | omnivoice/data/processor.py | 1 | #!/usr/bin/env python3 | COMMENT |
| LOW | omnivoice/data/dataset.py | 1 | #!/usr/bin/env python3 | COMMENT |
| LOW | deploy/docker-compose.yml | 1 | # ────────────────────────────────────────────────────────────── | COMMENT |
| LOW | deploy/docker-compose.yml | 21 | # machine can reach the API. To expose VoiceStudio on your LAN (or | COMMENT |
| LOW | deploy/torch-constraints.txt | 1 | # Torch stack pins for the `uv pip install --system` install paths. | COMMENT |
| LOW | deploy/torch-constraints.txt | 21 | # Keep in lockstep with `[tool.uv] constraint-dependencies` in pyproject.toml. | COMMENT |
| LOW | tests/test_router_smoke.py | 21 | from main import app | COMMENT |
| LOW | tests/conftest.py | 21 | # test module, which is what freezes DATA_DIR at `core.config` import time) | COMMENT |
| LOW | tests/conftest.py | 41 | # sentinel is honored verbatim by `resolve_omnivoice_checkpoint()` (never | COMMENT |
| LOW | tests/conftest.py | 81 | # file are shared by every test in the run. Anything a test persists there — | COMMENT |
| LOW | tests/conftest.py | 221 | # every test boundary. ``begin_watermark_pool_lifecycle`` still refuses to | COMMENT |
| 321 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | omnivoice/training/checkpoint.py | 85 | CODE | |
| LOW | omnivoice/training/trainer.py | 243 | CODE | |
| LOW | omnivoice/utils/text.py | 120 | CODE | |
| LOW | omnivoice/models/omnivoice.py | 347 | CODE | |
| LOW | omnivoice/models/omnivoice.py | 373 | CODE | |
| LOW | omnivoice/models/omnivoice.py | 491 | CODE | |
| LOW | omnivoice/models/omnivoice.py | 882 | CODE | |
| LOW | omnivoice/cli/dub.py | 85 | CODE | |
| LOW | omnivoice/cli/infer_batch.py | 406 | CODE | |
| LOW | omnivoice/cli/demo.py | 155 | CODE | |
| LOW | omnivoice/scripts/extract_audio_tokens.py | 322 | CODE | |
| LOW | omnivoice/scripts/denoise_audio.py | 740 | CODE | |
| LOW | omnivoice/scripts/denoise_audio.py | 426 | CODE | |
| LOW | omnivoice/scripts/jsonl_to_webdataset.py | 190 | CODE | |
| LOW | omnivoice/scripts/jsonl_to_webdataset.py | 267 | CODE | |
| LOW | omnivoice/scripts/extract_audio_tokens_add_noise.py | 512 | CODE | |
| LOW | omnivoice/eval/mos/utmos.py | 159 | CODE | |
| LOW | omnivoice/eval/speaker_similarity/sim.py | 183 | CODE | |
| LOW | omnivoice/eval/wer/sensevoice.py | 230 | CODE | |
| LOW | omnivoice/eval/wer/minimax.py | 372 | CODE | |
| LOW | omnivoice/eval/wer/fleurs.py | 327 | CODE | |
| LOW | omnivoice/eval/wer/seedtts.py | 215 | CODE | |
| LOW | omnivoice/eval/wer/seedtts.py | 282 | CODE | |
| LOW | omnivoice/data/dataset.py | 66 | CODE | |
| LOW | omnivoice/data/dataset.py | 222 | CODE | |
| LOW | tests/test_no_unspeakable_chunks_1330.py | 146 | CODE | |
| LOW | tests/test_startup_progress_early_bind.py | 43 | CODE | |
| LOW | tests/conftest.py | 442 | CODE | |
| LOW | tests/conftest.py | 484 | CODE | |
| LOW | tests/conftest.py | 631 | CODE | |
| LOW | tests/test_no_literal_borders.py | 116 | CODE | |
| LOW | tests/test_uv_cross_drive.py | 224 | CODE | |
| LOW | tests/test_uv_cross_drive.py | 331 | CODE | |
| LOW | tests/test_bot_configs.py | 43 | CODE | |
| LOW | tests/test_bot_configs.py | 115 | CODE | |
| LOW | tests/test_cla_workflow.py | 99 | CODE | |
| LOW | tests/test_synthetic_audio_watermark_1169.py | 258 | CODE | |
| LOW | tests/test_vendored_omnivoice_imports_1417.py | 47 | CODE | |
| LOW | tests/test_vendored_omnivoice_imports_1417.py | 81 | CODE | |
| LOW | tests/test_voice_design_profile_and_capability.py | 154 | CODE | |
| LOW | tests/test_bun_toolchain_pins.py | 35 | CODE | |
| LOW | tests/test_worker_hang_guards.py | 71 | CODE | |
| LOW | tests/test_worker_hang_guards.py | 107 | CODE | |
| LOW | tests/test_worker_hang_guards.py | 111 | CODE | |
| LOW | tests/test_no_hardcoded_cjk.py | 113 | CODE | |
| LOW | tests/test_changelog_style.py | 81 | CODE | |
| LOW | tests/test_cla_check.py | 354 | CODE | |
| LOW | tests/test_sherpa_ws_streaming.py | 126 | CODE | |
| LOW | tests/test_api.py | 322 | CODE | |
| LOW | tests/test_worker_protocol_contract.py | 44 | CODE | |
| LOW | tests/test_symlink_guards.py | 70 | CODE | |
| LOW | tests/test_call_agent.py | 215 | CODE | |
| LOW | tests/test_dub_source_revision.py | 21 | CODE | |
| LOW | tests/backend/test_dub_pipeline_wav.py | 55 | CODE | |
| LOW | tests/backend/core/test_parent_liveness.py | 194 | CODE | |
| LOW | tests/backend/services/test_prosody_mirror.py | 128 | CODE | |
| LOW | tests/probe/spec.py | 177 | CODE | |
| LOW | backend/main.py | 235 | CODE | |
| LOW | backend/core/auth.py | 327 | CODE | |
| LOW | backend/core/browser_guard.py | 134 | CODE | |
| 272 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| HIGH | omnivoice/cli/infer.py | 0 | auto-detect the best available device: cuda > mps > cpu. | STRING |
| HIGH | omnivoice/cli/infer_batch.py | 0 | auto-detect the best available device: cuda > mps > cpu. | STRING |
| HIGH | omnivoice/cli/demo.py | 0 | auto-detect the best available device: cuda > mps > cpu. | STRING |
| HIGH | omnivoice/scripts/extract_audio_tokens.py | 0 | convert tensors and numpy scalars to serialisable python objects. | STRING |
| HIGH | omnivoice/scripts/denoise_audio.py | 0 | convert tensors and numpy scalars to serialisable python objects. | STRING |
| HIGH | omnivoice/scripts/extract_audio_tokens_add_noise.py | 0 | convert tensors and numpy scalars to serialisable python objects. | STRING |
| HIGH | omnivoice/eval/wer/minimax.py | 0 | cleans and normalizes text for wer calculation. args: text (str): the input text to be processed. returns: str: the clea | STRING |
| HIGH | omnivoice/eval/wer/fleurs.py | 0 | cleans and normalizes text for wer calculation. args: text (str): the input text to be processed. returns: str: the clea | STRING |
| HIGH | omnivoice/eval/wer/seedtts.py | 0 | cleans and normalizes text for wer calculation. args: text (str): the input text to be processed. returns: str: the clea | STRING |
| HIGH | omnivoice/eval/wer/hubert.py | 0 | cleans and normalizes text for wer calculation. args: text (str): the input text to be processed. returns: str: the clea | STRING |
| HIGH | omnivoice/eval/wer/minimax.py | 0 | worker function to process a chunk of data. uses the global worker_pipe initialized by process_init. | STRING |
| HIGH | omnivoice/eval/wer/fleurs.py | 0 | worker function to process a chunk of data. uses the global worker_pipe initialized by process_init. | STRING |
| HIGH | omnivoice/eval/wer/seedtts.py | 0 | worker function to process a chunk of data. uses the global worker_pipe initialized by process_init. | STRING |
| HIGH | tests/test_broken_dependency_diagnosis_1415.py | 0 | resolved at run time, not import time: a module-level import of an app module keeps mutable state in sys.modules across | STRING |
| HIGH | tests/test_engine_venv_probe_1414.py | 0 | resolved at run time, not import time: a module-level import of an app module keeps mutable state in sys.modules across | STRING |
| HIGH | tests/test_wedge_vs_slow_hardware_1416.py | 0 | resolved at run time, not import time: a module-level import of an app module keeps mutable state in sys.modules across | STRING |
| HIGH | tests/test_text_normalization_routes.py | 0 | resolve services.tts_backend at run time (same rationale as test_generate_engine.py — collection-time bindings can go st | STRING |
| HIGH | tests/test_text_normalization.py | 0 | resolve services.tts_backend at run time (same rationale as test_generate_engine.py — collection-time bindings can go st | STRING |
| HIGH | tests/test_perf_operation_budgets.py | 0 | resolve services.tts_backend at run time (same rationale as test_generate_engine.py — collection-time bindings can go st | STRING |
| HIGH | tests/test_generation_timeout_is_named.py | 0 | resolve at call time — sibling suites reload/purge ``services.*``. | STRING |
| HIGH | tests/test_dropped_chunk_is_not_silent.py | 0 | resolve at call time — sibling suites reload/purge ``services.*``. | STRING |
| HIGH | tests/test_missing_clone_ref_is_not_silent.py | 0 | resolve at call time — sibling suites reload/purge ``services.*``. | STRING |
| HIGH | tests/test_lmstudio_model_discovery.py | 0 | resolve at call time — sibling suites reload/purge ``services.*``. | STRING |
| HIGH | tests/test_migration_0007_instruct_rebuild.py | 0 | create table voice_profiles ( id text primary key, name text not null, ref_audio_path text, ref_text text default '', in | STRING |
| HIGH | tests/test_profile_consent.py | 0 | create table voice_profiles ( id text primary key, name text not null, ref_audio_path text, ref_text text default '', in | STRING |
| HIGH | tests/test_migration_0006_instruct.py | 0 | create table voice_profiles ( id text primary key, name text not null, ref_audio_path text, ref_text text default '', in | STRING |
| HIGH | tests/test_dub_multispeaker_voice_486.py | 0 | adapts the list-returning _fakemodel above to the ttsbackend.generate() contract (a single tensor, not a list) that reso | STRING |
| HIGH | tests/test_smart_fit_generate.py | 0 | adapts the list-returning _fakemodel above to the ttsbackend.generate() contract (a single tensor, not a list) that reso | STRING |
| HIGH | tests/test_redub_incremental.py | 0 | adapts the list-returning _fakemodel above to the ttsbackend.generate() contract (a single tensor, not a list) that reso | STRING |
| HIGH | tests/test_worker_server_integrity.py | 0 | throwaway db, patched where the stores actually read it. | STRING |
| HIGH | tests/test_worker_transport.py | 0 | throwaway db, patched where the stores actually read it. | STRING |
| HIGH | tests/test_worker_upload_server.py | 0 | throwaway db, patched where the stores actually read it. | STRING |
| HIGH | backend/engines/moss_tts_v15/bootstrap.py | 0 | uv cache co-location for installs on a non-system volume (d:-drive / portable installs): without it uv stages every whee | STRING |
| HIGH | backend/engines/dots_tts/bootstrap.py | 0 | uv cache co-location for installs on a non-system volume (d:-drive / portable installs): without it uv stages every whee | STRING |
| HIGH | backend/engines/confucius4/bootstrap.py | 0 | uv cache co-location for installs on a non-system volume (d:-drive / portable installs): without it uv stages every whee | STRING |
| HIGH | backend/engines/indextts/bootstrap.py | 0 | uv cache co-location for installs on a non-system volume (d:-drive / portable installs): without it uv stages every whee | STRING |
| HIGH | backend/engines/moss_tts_v15/bootstrap.py | 0 | clear the resolved-python cache. tests call this between scenarios. | STRING |
| HIGH | backend/engines/dots_tts/bootstrap.py | 0 | clear the resolved-python cache. tests call this between scenarios. | STRING |
| HIGH | backend/engines/confucius4/bootstrap.py | 0 | clear the resolved-python cache. tests call this between scenarios. | STRING |
| HIGH | backend/engines/indextts/bootstrap.py | 0 | clear the resolved-python cache. tests call this between scenarios. | STRING |
| HIGH | backend/engines/moss_tts_v15/bootstrap.py | 0 | spawn the candidate python and verify the engine imports. tri-state — "yes" / "no" / "unproven". see ``engines._venv_pro | STRING |
| HIGH | backend/engines/dots_tts/bootstrap.py | 0 | spawn the candidate python and verify the engine imports. tri-state — "yes" / "no" / "unproven". see ``engines._venv_pro | STRING |
| HIGH | backend/engines/confucius4/bootstrap.py | 0 | spawn the candidate python and verify the engine imports. tri-state — "yes" / "no" / "unproven". see ``engines._venv_pro | STRING |
| HIGH | backend/engines/moss_tts_v15/main.py | 0 | dispatch one synthesize request. emits the audio frame or raises. | STRING |
| HIGH | backend/engines/pockettts/main.py | 0 | dispatch one synthesize request. emits the audio frame or raises. | STRING |
| HIGH | backend/engines/dots_tts/main.py | 0 | dispatch one synthesize request. emits the audio frame or raises. | STRING |
| HIGH | backend/engines/supertonic3/sidecar.py | 0 | dispatch one synthesize request. emits the audio frame or raises. | STRING |
| HIGH | backend/engines/omnivoice_subprocess/main.py | 0 | dispatch one synthesize request. emits the audio frame or raises. | STRING |
| HIGH | backend/engines/indextts/main.py | 0 | dispatch one synthesize request. emits the audio frame or raises. | STRING |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | tests/test_capture_ws.py | 144 | wav.write_bytes(b"placeholder") | CODE |
| LOW⚡ | tests/test_call_agent.py | 529 | bad = api.put("/calls/settings", json={"from_number": "555-0100"}) | CODE |
| LOW⚡ | tests/test_dictation_prompt.py | 126 | wav.write_bytes(b"placeholder") | CODE |
| LOW | tests/test_openai_speech_binary_guard_1172.py | 82 | assert "placeholder" in detail | CODE |
| LOW | tests/backend/engines/test_omnivoice_gguf.py | 509 | assert "placeholder" in reason.lower() or "empty" in reason.lower() | CODE |
| LOW⚡ | tests/backend/services/test_tts_backend_registry.py | 403 | fake_token = "hf_" + "A" * 34 | CODE |
| LOW⚡ | tests/backend/services/test_tts_backend_registry.py | 404 | masked = tts_backend._available_hint(f"ready — re-auth with {fake_token}") | CODE |
| LOW⚡ | tests/backend/services/test_tts_backend_registry.py | 406 | assert fake_token not in masked | CODE |
| LOW⚡ | tests/backend/services/test_binary_preflight.py | 33 | assert "placeholder" in reason | CODE |
| LOW | scripts/blocked_identity_hashes.txt | 8 | # printf '%s' 'someone@example.org' | tr A-Z a-z | sha256sum | cut -d' ' -f1 | COMMENT |
| LOW | …/renderer/src/features/settings/llm-providers.test.tsx | 136 | expect(key).toHaveAttribute('placeholder', 'settings.llmp_key_paste'); | CODE |
| LOW | …/renderer/src/features/settings/model-license.test.tsx | 421 | 'https://user:secret@example.org', | CODE |
| LOW | electron/src/renderer/src/lib/themes/t3-palettes.ts | 71 | 'placeholder', | CODE |
| LOW | electron/src/renderer/src/i18n/locales/tr.json | 52 | "placeholder": "Bir şey oluşturmamı, kurmamı veya düzeltmemi isteyin…", | CODE |
| LOW | electron/src/renderer/src/i18n/locales/tr.json | 2946 | "placeholder": "Ne yanlış gitti? Adımları, görünen hataları veya beklenen davranışı ekleyin.", | CODE |
| LOW | electron/src/renderer/src/i18n/locales/nl.json | 52 | "placeholder": "Vraag me iets te maken, in te stellen of te repareren…", | CODE |
| LOW | electron/src/renderer/src/i18n/locales/nl.json | 2946 | "placeholder": "Wat ging er mis? Voeg stappen, zichtbare fouten of verwacht gedrag toe.", | CODE |
| LOW | electron/src/renderer/src/i18n/locales/ja.json | 52 | "placeholder": "作成、設定、修復を依頼してください…", | CODE |
| LOW | electron/src/renderer/src/i18n/locales/ja.json | 2946 | "placeholder": "何が起きましたか?手順、表示されたエラー、期待する動作を入力してください。", | CODE |
| LOW | electron/src/renderer/src/i18n/locales/de.json | 52 | "placeholder": "Bitte mich, etwas zu erstellen, einzurichten oder zu reparieren…", | CODE |
| LOW | electron/src/renderer/src/i18n/locales/de.json | 2946 | "placeholder": "Was ist schiefgelaufen? Ergänze Schritte, sichtbare Fehler oder das erwartete Verhalten.", | CODE |
| LOW | electron/src/renderer/src/i18n/locales/ru.json | 52 | "placeholder": "Попросите создать, настроить или исправить что-нибудь…", | CODE |
| LOW | electron/src/renderer/src/i18n/locales/ru.json | 2950 | "placeholder": "Что пошло не так? Укажите шаги, видимые ошибки или ожидаемое поведение.", | CODE |
| LOW | electron/src/renderer/src/i18n/locales/pl.json | 52 | "placeholder": "Poproś o stworzenie, konfigurację lub naprawę…", | CODE |
| LOW | electron/src/renderer/src/i18n/locales/pl.json | 2950 | "placeholder": "Co poszło nie tak? Dodaj kroki, widoczne błędy lub oczekiwane działanie.", | CODE |
| LOW | electron/src/renderer/src/i18n/locales/uk.json | 52 | "placeholder": "Попросіть створити, налаштувати або виправити щось…", | CODE |
| LOW | electron/src/renderer/src/i18n/locales/uk.json | 2950 | "placeholder": "Що пішло не так? Додайте кроки, видимі помилки або очікувану поведінку.", | CODE |
| LOW | electron/src/renderer/src/i18n/locales/zh-CN.json | 52 | "placeholder": "让我帮你创建、设置或修复…", | CODE |
| LOW | electron/src/renderer/src/i18n/locales/zh-CN.json | 2946 | "placeholder": "出了什么问题?请添加操作步骤、可见错误或预期行为。", | CODE |
| LOW | electron/src/renderer/src/i18n/locales/pt.json | 52 | "placeholder": "Peça para criar, configurar ou reparar algo…", | CODE |
| LOW | electron/src/renderer/src/i18n/locales/pt.json | 2948 | "placeholder": "O que deu errado? Adicione etapas, erros visíveis ou o comportamento esperado.", | CODE |
| LOW | electron/src/renderer/src/i18n/locales/en.json | 52 | "placeholder": "Ask me to create, set up, or fix something…", | CODE |
| LOW | electron/src/renderer/src/i18n/locales/en.json | 2946 | "placeholder": "What went wrong? Add steps, visible errors, or expected behavior.", | CODE |
| LOW | electron/src/renderer/src/i18n/locales/it.json | 52 | "placeholder": "Chiedimi di creare, configurare o riparare qualcosa…", | CODE |
| LOW | electron/src/renderer/src/i18n/locales/it.json | 2948 | "placeholder": "Che cosa non ha funzionato? Aggiungi passaggi, errori visibili o comportamento previsto.", | CODE |
| LOW | electron/src/renderer/src/i18n/locales/fr.json | 52 | "placeholder": "Demandez-moi de créer, configurer ou réparer…", | CODE |
| LOW | electron/src/renderer/src/i18n/locales/fr.json | 2948 | "placeholder": "Que s’est-il passé ? Ajoutez les étapes, les erreurs visibles ou le comportement attendu.", | CODE |
| LOW | electron/src/renderer/src/i18n/locales/hi.json | 52 | "placeholder": "कुछ बनाने, सेट करने या ठीक करने को कहें…", | CODE |
| LOW | electron/src/renderer/src/i18n/locales/hi.json | 2946 | "placeholder": "क्या गलत हुआ? चरण, दिखाई देने वाली त्रुटियाँ या अपेक्षित व्यवहार जोड़ें।", | CODE |
| LOW | electron/src/renderer/src/i18n/locales/ko.json | 52 | "placeholder": "만들기, 설정 또는 수리를 요청하세요…", | CODE |
| LOW | electron/src/renderer/src/i18n/locales/ko.json | 2946 | "placeholder": "무엇이 잘못되었나요? 단계, 표시된 오류 또는 예상 동작을 추가하세요.", | CODE |
| LOW | electron/src/renderer/src/i18n/locales/zh-TW.json | 52 | "placeholder": "讓我幫你建立、設定或修復…", | CODE |
| LOW | electron/src/renderer/src/i18n/locales/zh-TW.json | 2946 | "placeholder": "出了什麼問題?請加入操作步驟、可見錯誤或預期行為。", | CODE |
| LOW | electron/src/renderer/src/i18n/locales/vi.json | 52 | "placeholder": "Yêu cầu tôi tạo, thiết lập hoặc sửa điều gì đó…", | CODE |
| LOW | electron/src/renderer/src/i18n/locales/vi.json | 2946 | "placeholder": "Điều gì đã xảy ra? Thêm các bước, lỗi hiển thị hoặc hành vi mong đợi.", | CODE |
| LOW | electron/src/renderer/src/i18n/locales/id.json | 52 | "placeholder": "Minta saya membuat, menyiapkan, atau memperbaiki sesuatu…", | CODE |
| LOW | electron/src/renderer/src/i18n/locales/id.json | 2946 | "placeholder": "Apa yang salah? Tambahkan langkah, galat yang terlihat, atau perilaku yang diharapkan.", | CODE |
| LOW | electron/src/renderer/src/i18n/locales/th.json | 52 | "placeholder": "ขอให้ฉันสร้าง ตั้งค่า หรือแก้ไขบางอย่าง…", | CODE |
| LOW | electron/src/renderer/src/i18n/locales/th.json | 2946 | "placeholder": "เกิดอะไรขึ้น? เพิ่มขั้นตอน ข้อผิดพลาดที่เห็น หรือพฤติกรรมที่คาดหวัง", | CODE |
| LOW | electron/src/renderer/src/i18n/locales/sv.json | 52 | "placeholder": "Be mig skapa, konfigurera eller reparera något…", | CODE |
| LOW | electron/src/renderer/src/i18n/locales/sv.json | 2946 | "placeholder": "Vad gick fel? Lägg till steg, synliga fel eller förväntat beteende.", | CODE |
| LOW | electron/src/renderer/src/i18n/locales/es.json | 52 | "placeholder": "Pídeme crear, configurar o reparar algo…", | CODE |
| LOW | electron/src/renderer/src/i18n/locales/es.json | 2948 | "placeholder": "¿Qué salió mal? Añade los pasos, los errores visibles o el comportamiento esperado.", | CODE |
| LOW | electron/src/renderer/src/i18n/locales/ar.json | 52 | "placeholder": "اطلب مني إنشاء شيء أو إعداده أو إصلاحه…", | CODE |
| LOW | electron/src/renderer/src/i18n/locales/ar.json | 2954 | "placeholder": "ما الذي حدث؟ أضف الخطوات أو الأخطاء الظاهرة أو السلوك المتوقع.", | CODE |
| LOW | electron/src/shared/test/SupportPageSponsors.test.jsx | 64 | name: 'Acme Corp', | CODE |
| LOW | electron/src/shared/test/SupportPageSponsors.test.jsx | 87 | const img = screen.getByAltText('Acme Corp'); | CODE |
| LOW | electron/src/shared/test/visual/specs.jsx | 754 | <Input placeholder="Jane Doe" /> | CODE |
| LOW | electron/src/shared/config/sponsors.js | 22 | * name: 'Acme Corp', // display name + <img alt> | COMMENT |
| LOW | …red/components/settings/HistoryRetentionPanel.test.jsx | 87 | expect(screen.getByTestId('history-retention-input')).toHaveAttribute('placeholder', '200'); | CODE |
| 85 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | omnivoice/__init__.py | 22 | __all__ = ["OmniVoice", "OmniVoiceConfig", "OmniVoiceGenerationConfig"] | CODE |
| LOW | omnivoice/training/checkpoint.py | 39 | logger = logging.getLogger(__name__) | CODE |
| LOW | omnivoice/training/builder.py | 46 | logger = logging.getLogger(__name__) | CODE |
| LOW | omnivoice/training/trainer.py | 45 | logger = logging.getLogger(__name__) | CODE |
| LOW | omnivoice/utils/audio.py | 34 | logger = logging.getLogger(__name__) | CODE |
| LOW | omnivoice/models/omnivoice.py | 82 | logger = logging.getLogger(__name__) | CODE |
| LOW | tests/conftest.py | 110 | def _settings_files_restore(snapshot: dict) -> None: | CODE |
| LOW | tests/test_worker_client_liveness.py | 117 | async def _settle(client: WorkerClient, timeout: float = 10.0) -> None: | CODE |
| LOW | tests/test_gallery_previews.py | 158 | def set_tarball(self, data: bytes) -> None: | CODE |
| LOW⚡ | tests/test_worker_upload_client.py | 327 | async def _settle(client: WorkerClient, timeout: float = 20.0) -> None: | CODE |
| LOW | tests/probe/__init__.py | 26 | __all__ = ["JudgeResult", "Spec", "load_spec", "run_judges", "JUDGE_REGISTRY"] | CODE |
| LOW | backend/core/gpu_inventory.py | 213 | __all__ = [ | CODE |
| LOW⚡ | backend/core/device_caps.py | 784 | __all__ = [ | CODE |
| LOW | backend/core/onboarding.py | 15 | logger = logging.getLogger(__name__) | CODE |
| LOW | backend/core/safe_archive.py | 112 | __all__ = [ | CODE |
| LOW | backend/core/audio_validation.py | 143 | __all__ = ["is_playable_wav", "resolve_regular_file"] | CODE |
| LOW | backend/core/http_headers.py | 30 | __all__ = ["ascii_filename", "content_disposition"] | CODE |
| LOW | backend/core/prefs.py | 78 | def update_mapping(key: str, changes: dict, *, replace: bool = False) -> None: | CODE |
| LOW | backend/core/gpu_report.py | 223 | __all__ = [ | CODE |
| LOW | backend/core/user_env.py | 97 | def set_user_env(key: str, value: str, path: Optional[str] = None) -> None: | CODE |
| LOW | backend/core/analytics.py | 110 | def set_opted_in(enabled: bool) -> None: | CODE |
| LOW | backend/core/job_store.py | 82 | def _update_status(job_id: str, status: str, *, finished: bool = False, error: Optional[str] = None) -> None: | CODE |
| LOW | backend/core/cudnn8.py | 40 | logger = logging.getLogger(__name__) | CODE |
| LOW | backend/utils/hf_progress.py | 78 | def set_byte_sink(fn: Optional[Callable]) -> None: | CODE |
| LOW | backend/utils/download_aggregator.py | 67 | def update_byte_bar(self, key: object, downloaded: int, total: Optional[int]) -> None: | CODE |
| LOW | backend/utils/download_aggregator.py | 79 | def update_files(self, done: int, total: Optional[int]) -> None: | CODE |
| LOW | backend/engines/audiocpp/bootstrap.py | 732 | __all__ = [ | CODE |
| LOW⚡ | backend/engines/audiocpp/__init__.py | 585 | __all__ = [ | CODE |
| LOW | backend/engines/moss_tts_nano_subprocess/__init__.py | 90 | __all__ = ["MossTTSNanoSubprocessBackend", "VENV_ENV_VAR", "own_venv_python"] | CODE |
| LOW | backend/engines/omnivoice_gguf/backend.py | 926 | __all__ = [ | CODE |
| LOW | backend/engines/omnivoice_gguf/__init__.py | 22 | __all__ = ["OmniVoiceGGUFBackend"] | CODE |
| LOW | backend/engines/omnivoice_gguf/hardware_probe.py | 127 | __all__ = ["ComputeClass", "HardwareCapabilities", "detect_capabilities"] | CODE |
| LOW | backend/engines/moss_tts_v15/bootstrap.py | 299 | __all__ = [ | CODE |
| LOW | backend/engines/moss_tts_v15/__init__.py | 205 | __all__ = ["MossTTSV15Backend", "TOKENS_PER_SECOND"] | CODE |
| LOW | backend/engines/pockettts/__init__.py | 191 | __all__ = ["PocketTTSBackend"] | CODE |
| LOW | backend/engines/dots_tts/bootstrap.py | 259 | __all__ = [ | CODE |
| LOW | backend/engines/dots_tts/__init__.py | 202 | __all__ = ["DotsTTSBackend"] | CODE |
| LOW | backend/engines/cosyvoice_subprocess/__init__.py | 97 | __all__ = [ | CODE |
| LOW | backend/engines/supertonic3/backend.py | 240 | __all__ = ["Supertonic3Backend", "SUPERTONIC3_SIDECAR_SCRIPT"] | CODE |
| LOW | backend/engines/supertonic3/__init__.py | 35 | __all__ = ["Supertonic3Backend"] | CODE |
| LOW | backend/engines/confucius4/bootstrap.py | 255 | __all__ = [ | CODE |
| LOW | backend/engines/confucius4/__init__.py | 167 | __all__ = ["Confucius4Backend"] | CODE |
| LOW | backend/engines/voxcpm2_subprocess/__init__.py | 114 | __all__ = ["VENV_ENV_VAR", "VoxCPM2SubprocessBackend", "own_venv_python"] | CODE |
| LOW | backend/engines/omnivoice_subprocess/__init__.py | 168 | __all__ = ["OmniVoiceMPSSubprocessBackend", "OmniVoiceSubprocessBackend"] | CODE |
| LOW | backend/engines/indextts/bootstrap.py | 303 | __all__ = [ | CODE |
| LOW | backend/engines/indextts/__init__.py | 350 | __all__ = ["IndexTTS2Backend"] | CODE |
| LOW | backend/api/routers/auth.py | 110 | def _set_session_cookie(response: Response, request: Request, token: str, expires_at: float) -> None: | CODE |
| LOW | backend/api/routers/workers.py | 228 | async def _set_worker_mode(worker_agent, enabled: bool) -> None: | CODE |
| LOW | backend/api/routers/setup/models.py | 568 | def _set_cache(key: str, value: object) -> None: | CODE |
| LOW⚡ | backend/worker/service.py | 94 | def set_remote_workers_enabled(enabled: bool) -> None: | CODE |
| LOW⚡ | backend/worker/service.py | 484 | __all__ = [ | CODE |
| LOW | backend/worker/deadlines.py | 251 | __all__ = ["Deadlines", "Operation", "default_grace_seconds", "for_task"] | CODE |
| LOW | backend/worker/params.py | 89 | __all__ = ["INPUT_PARAM_KEYS", "input_values", "rewrite_inputs", "undeclared_inputs"] | CODE |
| LOW | backend/worker/capacity.py | 349 | __all__ = [ | CODE |
| LOW | backend/worker/task_store.py | 912 | __all__ = [ | STRING |
| LOW | backend/worker/async_utils.py | 57 | __all__ = [ | CODE |
| LOW | backend/worker/registry.py | 497 | def set_enabled(worker_id: str, enabled: bool) -> None: | CODE |
| LOW | backend/worker/registry.py | 504 | def set_priority(worker_id: str, priority: int) -> None: | CODE |
| LOW | backend/worker/registry.py | 594 | __all__ = [ | CODE |
| LOW | backend/worker/breaker.py | 294 | __all__ = [ | CODE |
| 51 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| MEDIUM | pyproject.toml | 103 | # zero-shot clone: when the caller just needs fast English narration with | COMMENT |
| MEDIUM⚡ | tests/test_speaker_clone_purity.py | 195 | # ref_text) breaks zero-shot TTS prompt priming badly enough that the | COMMENT |
| MEDIUM⚡ | tests/test_autofit_838.py | 84 | assert res["text"] == text # hallucination never adopted | CODE |
| MEDIUM | tests/probe/README.md | 128 | uv add anthropic # L2 agentic self-heal (LLMHealer); set ANTHROPIC_API_KEY | CODE |
| MEDIUM⚡ | tests/probe/test_probe_web.py | 111 | # ── LLM-backed agentic healer (offline, injected completion) ───────────────────── | COMMENT |
| MEDIUM | backend/engines/pockettts/__init__.py | 73 | supports_cloning = True # zero-shot clone from a reference clip | CODE |
| MEDIUM | backend/engines/omnivoice_subprocess/__init__.py | 134 | # OmniVoice advertises 600+ zero-shot; "multi" is the honest tag. | COMMENT |
| MEDIUM | backend/api/routers/dub_generate.py | 315 | # Below ~3 s zero-shot prompt-priming gets unstable, so prefer clips at or | COMMENT |
| MEDIUM | backend/api/routers/capture.py | 273 | # Wave 1.1: strip Whisper hallucination loops from the final text. | COMMENT |
| MEDIUM | backend/api/routers/voice_convert.py | 235 | # Same final-text hygiene as /transcribe: strip Whisper hallucination | COMMENT |
| MEDIUM | backend/api/routers/capture_ws.py | 288 | # level; WebSocket dependency injection differs across FastAPI versions, so we | COMMENT |
| MEDIUM | backend/api/routers/capture_ws.py | 1264 | # Wave 1.1: strip Whisper hallucination loops from the final | COMMENT |
| MEDIUM | backend/api/routers/profiles.py | 1007 | # check — agentic features and gallery sharing gate on the flag; plain local | COMMENT |
| MEDIUM | backend/api/routers/glossary.py | 218 | # Concat all text — capped so we don't blow the context window on long projects. | COMMENT |
| MEDIUM | backend/services/tts_backend.py | 1557 | # OmniVoice advertises 600+ zero-shot — `"multi"` is the honest tag. | COMMENT |
| MEDIUM | backend/services/tts_backend.py | 3331 | # cross-lingual zero-shot cloning, Apache-2.0. Opt-in + subprocess-isolated | COMMENT |
| MEDIUM | backend/services/refinement.py | 157 | # ("wooooooow", "hmmmmm") that aren't hallucinations. re.DOTALL so a | COMMENT |
| MEDIUM | backend/services/speaker_clone.py | 42 | # is the empirical floor below which our zero-shot clone gets unstable. | COMMENT |
| MEDIUM | backend/services/llm_backend.py | 38 | #: chain of thought in a <think> block ahead of the answer. It is not part of | COMMENT |
| MEDIUM | docs/competitive-analysis.md | 20 | the feature roadmap announced in discussion #346 — agentic voice workflows, remote | CODE |
| MEDIUM | docs/competitive-analysis.md | 238 | | 3 | **Dictation refinement**: deterministic repetition-collapse pre-pass + optional local-LLM filler-word removal befo | CODE |
| MEDIUM | docs/specs/2026-07-16-dictation-flow-program.md | 33 | - **Opt-in hotword biasing** for offline Parakeet: sherpa-onnx `modified_beam_search` + hotwords file (upstream PR #3077 | CODE |
| MEDIUM | docs/specs/00-roadmap-elevenlabs-parity.md | 151 | | `longform/` (#21–#34) | **F** | Granular per-task implementation specs (tied to tasks #21–34). Their capabilities feed | CODE |
| MEDIUM | docs/specs/longform/32-phone-calls.md | 5 | Ship the §R1 **v3 telephony** rung of the agentic-voice workflow: outbound phone calls placed by an embedded [pipecat](h | CODE |
| MEDIUM | docs/specs/longform/32-phone-calls.md | 5 | Ship the §R1 **v3 telephony** rung of the agentic-voice workflow: outbound phone calls placed by an embedded [pipecat](h | CODE |
| MEDIUM | docs/specs/longform/32-phone-calls.md | 197 | ### Watermark: always-on for agentic output | COMMENT |
| MEDIUM | …derer/src/features/integrations/openai-agents-setup.ts | 65 | docs: 'https://github.com/debpalash/VoiceStudio/blob/main/docs/agentic-voice.md#openai-agents-sdk', | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| MEDIUM | tests/test_ci_windows_ffmpeg_retry.py | 62 | # this harness went wrong the first time. | COMMENT |
| MEDIUM⚡ | tests/test_synthetic_audio_watermark_1169.py | 178 | # ── Sanity: the harness itself can't fake a pass ───────────────────────────── | COMMENT |
| MEDIUM⚡ | tests/test_synthetic_audio_watermark_1169.py | 363 | # ── Batch dub queue (harness from test_text_normalization_routes.py) ───────── | COMMENT |
| MEDIUM | tests/test_dub_error_transparency.py | 89 | # Capture directly on the task logger — robust against the app's logging | COMMENT |
| MEDIUM | tests/test_dictation_router.py | 78 | # the store the handler actually used — robust to prefs-reference swaps). | COMMENT |
| MEDIUM⚡ | tests/probe/test_triage.py | 41 | # It also documents its own None case — "the harness works without a GitHub | COMMENT |
| MEDIUM | tests/probe/specs/i18n_parity.probe.yaml | 8 | # since fixing the en locale is a product change, not a harness change. | COMMENT |
| MEDIUM | backend/api/routers/audiobook.py | 796 | # invalidation robust even where resolution is short-circuited/stubbed. | COMMENT |
| MEDIUM | backend/services/srt_parser.py | 125 | # timing line (or end of file). This is robust to missing index | COMMENT |
| LOW | backend/services/speech_rate.py | 71 | # Max LLM attempts per segment. Past this we just return the best we got. | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| HIGH | pyproject.toml | 109 | # in AI-generated speech for provenance detection (SynthID-like). | COMMENT |
| HIGH⚡ | tests/test_commit_identities.py | 326 | ("Generated by AI researchers at the lab", False), | CODE |
| HIGH⚡ | tests/test_commit_identities.py | 332 | ("Generated by AI assistant and reviewed by me", True), | CODE |
| HIGH⚡ | tests/test_commit_identities.py | 340 | ("Generated by Claude", True), | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | omnivoice/models/omnivoice.py | 757 | CODE | |
| LOW | omnivoice/models/omnivoice.py | 1253 | CODE | |
| LOW | omnivoice/scripts/denoise_audio.py | 237 | CODE | |
| LOW | omnivoice/scripts/jsonl_to_webdataset.py | 267 | CODE | |
| LOW | omnivoice/eval/models/ecapa_tdnn_wavlm.py | 158 | CODE | |
| LOW | omnivoice/eval/models/ecapa_tdnn_wavlm.py | 222 | CODE | |
| LOW | omnivoice/eval/models/ecapa_tdnn_wavlm.py | 272 | CODE | |
| LOW | tests/test_auth_principal.py | 50 | CODE | |
| LOW | tests/test_device_caps.py | 21 | CODE | |
| LOW | tests/backend/services/test_prosody_mirror.py | 18 | CODE | |
| LOW | backend/core/archetypes.py | 439 | CODE | |
| LOW | backend/api/routers/audiobook.py | 1079 | CODE | |
| LOW | backend/api/routers/generation.py | 1216 | CODE | |
| LOW | backend/api/routers/generation.py | 1807 | CODE | |
| LOW | backend/api/routers/archetypes.py | 482 | CODE | |
| LOW | backend/api/routers/sonitranslate.py | 60 | CODE | |
| LOW | backend/api/routers/community.py | 396 | CODE | |
| LOW | backend/api/routers/openai_compat.py | 1183 | CODE | |
| LOW | backend/api/routers/dub_export.py | 670 | CODE | |
| LOW | backend/api/routers/profiles.py | 121 | CODE | |
| LOW | backend/worker/protocol/gen/worker_v1_pb2_grpc.py | 150 | CODE | |
| LOW | backend/worker/protocol/gen/worker_v1_pb2_grpc.py | 177 | CODE | |
| LOW | backend/worker/protocol/gen/worker_v1_pb2_grpc.py | 204 | CODE | |
| LOW | backend/worker/protocol/gen/worker_v1_pb2_grpc.py | 231 | CODE | |
| LOW | backend/worker/protocol/gen/worker_v1_pb2_grpc.py | 258 | CODE | |
| LOW | backend/worker/protocol/gen/worker_v1_pb2_grpc.py | 418 | CODE | |
| LOW | backend/worker/protocol/gen/worker_v1_pb2_grpc.py | 445 | CODE | |
| LOW | backend/worker/protocol/gen/worker_v1_pb2_grpc.py | 472 | CODE | |
| LOW | backend/worker/inbound/artifacts.py | 96 | CODE | |
| LOW | backend/services/tts_backend.py | 528 | CODE | |
| LOW | backend/services/segmented_download.py | 130 | CODE | |
| LOW | backend/services/asr_backend.py | 1285 | CODE | |
| LOW | backend/services/admin_sessions.py | 106 | CODE | |
| LOW | backend/services/segmentation.py | 932 | CODE | |
| LOW | backend/services/telephony/agent.py | 68 | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| MEDIUM | tests/test_router_smoke.py | 23 | # Create the DB schema explicitly against whatever DB is active *now*. | COMMENT |
| MEDIUM | tests/conftest.py | 692 | # Creating a symlink on Windows needs SeCreateSymbolicLinkPrivilege, which a | COMMENT |
| MEDIUM | tests/backend/engines/test_omnivoice_gguf.py | 111 | # Create a fake binary on disk with known contents (valid ELF magic so | COMMENT |
| MEDIUM | backend/core/user_env.py | 41 | # Create the file with 0600 from the start (no world-readable window before | COMMENT |
| MEDIUM | backend/config/models.yaml | 3 | # This file is the source of truth for all known HuggingFace models. | COMMENT |
| MEDIUM | backend/api/routers/marketplace.py | 253 | # Create the profile in the database | COMMENT |
| MEDIUM | backend/worker/protocol/gen/worker_v1_pb2_grpc.py | 143 | # This class is part of an EXPERIMENTAL API. | COMMENT |
| MEDIUM | backend/worker/protocol/gen/worker_v1_pb2_grpc.py | 399 | # This class is part of an EXPERIMENTAL API. | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | .claude/skills/omnivoice/scripts/record-reference.sh | 4 | # Usage: | COMMENT |
| LOW | scripts/build-omnivoice-tts.sh | 9 | # Usage: | COMMENT |
| LOW⚡ | scripts/verify-remote-worker.sh | 5 | # Usage: | COMMENT |
| LOW | scripts/macos-dev-unquarantine.sh | 13 | # Usage: | COMMENT |
| LOW | scripts/run.sh | 7 | # Usage: | COMMENT |
| LOW | scripts/build_demos.sh | 13 | # Usage: | COMMENT |
| LOW | scripts/smoke-gguf.sh | 10 | # Usage: | COMMENT |
| LOW | scripts/verify-macos-signing.sh | 24 | # Usage: | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| HIGH | omnivoice/models/omnivoice.py | 1720 | Validate and normalise a voice-design instruct string. Supported instruct items (case-insensitive for English): | STRING |
| HIGH | omnivoice/eval/utils.py | 34 | Load an audio file, preprocess it, and convert to a PyTorch tensor. Args: fname (str): Path to the aud | STRING |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | omnivoice/data/batching.py | 153 | # Check if adding this sample exceeds the batch token limit | COMMENT |
| LOW⚡ | backend/services/model_manager.py | 3840 | # Check if there's enough free VRAM to skip offloading | COMMENT |
| LOW | scripts/setup.py | 115 | # Check if vcruntime140.dll is already loadable | COMMENT |
| LOW | scripts/setup.py | 228 | # Check if CUDA is available before installing GPU-only libs | COMMENT |
| LOW | scripts/translate_all.py | 140 | # Check if the split parts match the batch keys length | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | examples/README.md | 55 | ### Step 1: Prepare Your Data | COMMENT |
| LOW | examples/README.md | 68 | ### Step 2: Configure the Script | COMMENT |
| LOW | examples/README.md | 80 | ### Step 3: Run | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| MEDIUM | tests/test_worker_security_boundaries.py | 56 | CODE | |
| MEDIUM | tests/test_degraded_api_observability.py | 12 | CODE |