The Open-Source Elevenlabs alternative AI Voice Clone, Dub, Dictate, Transcribe, Audiobook creator and Voice workflow studio.
This report presents the forensic synthetic code analysis of debpalash/VoiceStudio, a Python project with 9,755 GitHub stars. SynthScan v2.0 examined 356,191 lines of code across 1471 source files, recording 7127 pattern matches distributed across 19 syntactic categories. The overall adjusted score of 32.1 places this repository in the Strong AI signal band.
The scanner applied 160+ deterministic lexical heuristics, multi-line block detectors, abstract syntax tree depth profilers, and a cross-file Jaccard similarity matrix to construct a statistically normalised synthetic code estimate. All matches are individually weighted by severity coefficient and contextual multiplier before summation, and the resulting headline score is temporally discounted to account for the repository's development history relative to the commercial emergence of large language model coding tooling (November 2022 onward).
Longitudinal tracking requires multiple scan runs. Once this repository is re-scanned after new commits land, this chart will visualise how the synthetic code signal evolves over time — enabling you to detect whether AI authorship is growing, stabilising, or being actively corrected by human engineers.
Classifies detected patterns by their diagnostic confidence and structural impact. CRITICAL patterns (coefficient 10) represent definitive synthetic signatures — hallucinated imports, explicit LLM attribution metadata — virtually never produced by human authors. HIGH (5) indicates strong structural tells such as cross-file repetition or cross-linguistic idioms. MEDIUM (2) covers recognisable conversational padding and AI-specific vocabulary. LOW (1) captures subtle indicators like tautological comments and generic boilerplate that require density to carry independent signal.
This horizontal bar chart decomposes the repository's raw synthetic code score by top-level directory, allowing you to pinpoint precisely which modules or components carry the highest AI authorship density. Directories with disproportionately high scores relative to their size warrant targeted manual review: concentrated AI signatures often trace back to mass-generated configuration layers, auto-ported test suites, LLM-scaffolded boilerplate classes, or entire subsystems authored under heavy copilot assistance. Use this view to prioritise your human code-review effort.
The scanner identified 7127 distinct pattern matches across 19 syntactic categories. Each entry below represents a discrete location in the source code where the engine recorded a statistically significant AI authorship indicator. 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 diagnostic confidence level (CRITICAL / HIGH / MEDIUM / LOW). The Context column identifies whether the match occurred inside executable code, an inline comment, or a string literal — comment-context matches receive a ×1.5 weight because LLMs systematically over-annotate. The ⚡ bolt icon marks clustered matches: three or more patterns within a 10-line window, each receiving an additional ×1.5 density multiplier as dense clusters constitute far stronger evidence of synthetic authorship than isolated hits.
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| MEDIUM | frontend/src-tauri/appimage/AppRun.test.sh | 75 | # ── Bundled-version marker cases (#961 follow-up) ─────────────────────────── | COMMENT |
| MEDIUM | frontend/src-tauri/appimage/AppRun.test.sh | 133 | # ── System-vs-bundled WebKit priority (#1258, #1244) ──────────────────────── | COMMENT |
| MEDIUM | frontend/src-tauri/appimage/AppRun.test.sh | 430 | # ── The load probe must be a REAL binary, and must test the REAL value ────── | COMMENT |
| MEDIUM | frontend/src-tauri/src/reset.rs | 550 | // ── End-to-end deletion against a real on-disk tree ─────────────────────── | COMMENT |
| MEDIUM | frontend/src-tauri/src/tools.rs | 65 | // ── Sidecar detection ───────────────────────────────────────────────────── | COMMENT |
| MEDIUM | frontend/src-tauri/src/tools.rs | 105 | // ── On-demand ffmpeg / ffprobe download ─────────────────────────────────── | COMMENT |
| MEDIUM | frontend/src-tauri/src/tools.rs | 399 | // ── uv resolution ───────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | frontend/src-tauri/src/crash.rs | 38 | // ── Exit-status decomposition ────────────────────────────────────────────── | COMMENT |
| MEDIUM | frontend/src-tauri/src/crash.rs | 77 | // ── Marker model ─────────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | frontend/src-tauri/src/crash.rs | 132 | // ── Version gating ───────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | frontend/src-tauri/src/crash.rs | 161 | // ── Persistence ──────────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | frontend/src-tauri/src/crash.rs | 228 | // ── Tauri commands ───────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | frontend/src-tauri/src/config.rs | 10 | // ── Persistent app config ───────────────────────────────────────────────── | COMMENT |
| MEDIUM | frontend/src-tauri/src/config.rs | 198 | // ── Region helpers ──────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | frontend/src-tauri/src/config.rs | 279 | // ── Tauri commands ──────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | frontend/src-tauri/src/backend.rs | 21 | // ── Port probing ────────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | frontend/src-tauri/src/backend.rs | 243 | // ── Log paths ───────────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | frontend/src-tauri/src/backend.rs | 315 | // ── Spawn the backend via the bootstrapped venv Python ──────────────────── | COMMENT |
| MEDIUM | frontend/src-tauri/src/backend.rs | 612 | // attached to) ───────────────────────────────────────────────────── | COMMENT |
| MEDIUM | frontend/src-tauri/src/updater_channel.rs | 189 | // ── GitHub releases (changelog/history panel) ───────────────────────────── | COMMENT |
| MEDIUM | frontend/src-tauri/src/lib.rs | 35 | // ── Port ────────────────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | frontend/src-tauri/src/lib.rs | 44 | // ── Shared state types ──────────────────────────────────────────────────── | COMMENT |
| MEDIUM | frontend/src-tauri/src/lib.rs | 74 | // ── WebView media-capture permissions ───────────────────────────────────── | COMMENT |
| MEDIUM | frontend/src-tauri/src/lib.rs | 226 | // ── Windows: dictation pill must never take foreground focus (#982) ──────── | COMMENT |
| MEDIUM | frontend/src-tauri/src/lib.rs | 226 | // ── Windows: dictation pill must never take foreground focus (#982) ──────── | COMMENT |
| MEDIUM | frontend/src-tauri/src/lib.rs | 342 | // ── Tauri entry ─────────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | frontend/src-tauri/src/lib.rs | 351 | // ── Detect pill mode from CLI args OR persisted config ──────────────── | COMMENT |
| MEDIUM | frontend/src-tauri/src/lib.rs | 488 | // ── Programmatic widget window creation ────────────────────── | COMMENT |
| MEDIUM | frontend/src-tauri/src/lib.rs | 546 | // ── Global dictation shortcut (hold-to-talk) ───────────────── | COMMENT |
| MEDIUM | frontend/src-tauri/src/lib.rs | 602 | // ── System tray ────────────────────────────────────────────── | COMMENT |
| MEDIUM | frontend/src-tauri/src/lib.rs | 742 | // ── Hide the unused window per mode ────────────────────────── | COMMENT |
| MEDIUM | frontend/src-tauri/src/lib.rs | 809 | // ── Bootstrap ──────────────────────────────────────────────── | COMMENT |
| MEDIUM | frontend/src-tauri/src/bootstrap.rs | 19 | // ── Bootstrap stages ────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | frontend/src-tauri/src/bootstrap.rs | 114 | // ── Splash log + byte-progress event channel ───────────────────────────── | COMMENT |
| MEDIUM | frontend/src-tauri/src/bootstrap.rs | 174 | // ── Tauri commands ──────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | frontend/src-tauri/src/bootstrap.rs | 457 | // ── Backend supervisor (auto-restart) ───────────────────────────────────── | COMMENT |
| MEDIUM | frontend/src-tauri/src/bootstrap.rs | 683 | // ── Venv bootstrap ──────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | frontend/src-tauri/src/bootstrap.rs | 779 | // ── plan-03 (#130): restricted-network bootstrap resilience ──────────────── | COMMENT |
| MEDIUM | frontend/src-tauri/src/bootstrap.rs | 779 | // ── plan-03 (#130): restricted-network bootstrap resilience ──────────────── | COMMENT |
| MEDIUM | frontend/src-tauri/src/bootstrap.rs | 940 | // ── #314: broken-venv detection + self-heal ──────────────────────────────── | COMMENT |
| MEDIUM | frontend/src-tauri/src/bootstrap.rs | 940 | // ── #314: broken-venv detection + self-heal ──────────────────────────────── | COMMENT |
| MEDIUM | frontend/src-tauri/src/bootstrap.rs | 1076 | // ── Linux/Windows: cuDNN 8 compat side-load ──────────────────────────────── | COMMENT |
| MEDIUM | frontend/src-tauri/src/commands.rs | 15 | // ── System metrics ──────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | frontend/src-tauri/src/commands.rs | 47 | // ── Log tail ────────────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | frontend/src-tauri/src/commands.rs | 161 | // ── HuggingFace cache scan ──────────────────────────────────────────────── | COMMENT |
| MEDIUM | frontend/src-tauri/src/commands.rs | 256 | // ── Simulate paste ──────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | frontend/src-tauri/src/commands.rs | 312 | // ── OS permission probes (microphone / input monitoring) ───────────────── | COMMENT |
| MEDIUM | frontend/src-tauri/src/commands.rs | 572 | // ── Simulate live typing ────────────────────────────────────────────────── | COMMENT |
| MEDIUM | frontend/src-tauri/src/commands.rs | 621 | // ── Tray icon swap ──────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | frontend/src-tauri/src/commands.rs | 643 | // ── Quit ────────────────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | frontend/src-tauri/src/commands.rs | 651 | // ── Dictation hotkey ────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | frontend/src-tauri/src/commands.rs | 695 | // ── Launch-mode persistence ─────────────────────────────────────────────── | COMMENT |
| MEDIUM | frontend/src-tauri/src/commands.rs | 729 | // ── WebView cache repair (issue #879) ───────────────────────────────────── | COMMENT |
| MEDIUM | frontend/src-tauri/src/commands.rs | 729 | // ── WebView cache repair (issue #879) ───────────────────────────────────── | COMMENT |
| MEDIUM | frontend/src-tauri/src/setup.rs | 24 | // ── Requirements ────────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | frontend/src-tauri/src/setup.rs | 45 | // ── Disk probing ────────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | frontend/src-tauri/src/setup.rs | 104 | // ── Path resolution ─────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | frontend/src-tauri/src/setup.rs | 359 | // ── uv volume co-location ───────────────────────────────────────────────── | COMMENT |
| MEDIUM | frontend/src-tauri/src/setup.rs | 411 | // ── First-run detection ─────────────────────────────────────────────────── | COMMENT |
| MEDIUM | frontend/src-tauri/src/setup.rs | 454 | // ── IPC payloads ────────────────────────────────────────────────────────── | COMMENT |
| 1450 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | frontend/src/utils/download.js | 14 | export function parseFilenameFromContentDisposition(header) { | CODE |
| LOW | frontend/src/utils/segments.js | 53 | export function applySpeakerCloneDefaults(segments, speakerClones) { | CODE |
| LOW | frontend/src/utils/backendContact.ts | 133 | export function unreachableBackendMessage( | CODE |
| LOW | frontend/src/utils/globalErrorHandlers.js | 48 | export function installGlobalErrorHandlers() { | CODE |
| LOW | frontend/src/utils/webCompat.js | 29 | export function installAbortSignalTimeout() { | CODE |
| LOW | frontend/src/utils/bugReport.js | 226 | function captureReachabilitySection(error) { | CODE |
| LOW | frontend/src/utils/generatePreflight.js | 121 | export async function warnIfEngineUnderProvisioned(text = '') { | CODE |
| LOW | frontend/src/utils/permissions.js | 105 | export function openAccessibilitySettings() { | CODE |
| LOW | frontend/src/utils/permissions.js | 115 | export function openInputMonitoringSettings() { | CODE |
| LOW | frontend/src/utils/backendCrash.ts | 178 | export async function getUnacknowledgedBackendCrash(): Promise<BackendCrashMarker | null> { | CODE |
| LOW | frontend/src/components/BackendStartFailureNotice.jsx | 35 | export default function BackendStartFailureNotice() { | CODE |
| LOW | frontend/src/components/EngineCompatibilityMatrix.jsx | 220 | export default function EngineCompatibilityMatrix({ | CODE |
| LOW | frontend/src/components/WizardLibrary.jsx | 130 | export function reduceWizardDownloadEvent(prev, ev) { | CODE |
| LOW | …ntend/src/components/dub/DubPasteTranslationDialog.jsx | 28 | export default function DubPasteTranslationDialog({ open, segments = [], onApply, onClose }) { | CODE |
| LOW | frontend/src/components/dub/DubLeftColumn.jsx | 201 | async function hydrateMissingTranslations(code) { | CODE |
| LOW | frontend/src/api/hooks.ts | 86 | export function isDismissibleNotification(n: { level?: string }): boolean { | 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/voice_design.py | 77 | def _valid_instruct_from_items(items): | CODE |
| LOW⚡ | omnivoice/models/omnivoice.py | 256 | def _can_set_experts_implementation(cls) -> bool: | CODE |
| LOW⚡ | omnivoice/models/omnivoice.py | 260 | def _can_set_attn_implementation(cls) -> bool: | CODE |
| LOW | omnivoice/models/omnivoice.py | 675 | def create_voice_clone_prompt( | CODE |
| LOW | omnivoice/models/omnivoice.py | 1139 | def _prepare_inference_inputs( | CODE |
| LOW | omnivoice/models/omnivoice.py | 1374 | def _predict_tokens_with_scoring(self, c_logits, u_logits, gen_config): | CODE |
| LOW | omnivoice/models/omnivoice.py | 1607 | def _tokenize_with_nonverbal_tags(text: str, tokenizer) -> torch.Tensor: | CODE |
| LOW | omnivoice/cli/infer_batch.py | 255 | def estimate_sample_total_duration( | CODE |
| LOW | omnivoice/cli/infer_batch.py | 274 | def cluster_samples_by_duration( | CODE |
| LOW | omnivoice/cli/infer_batch.py | 316 | 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_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 |
| LOW | tests/test_mastering_no_hidden_reverb.py | 88 | def test_passthrough_when_pedalboard_missing(self, monkeypatch): | CODE |
| LOW | tests/test_db_schema_reconcile.py | 44 | def test_init_db_self_heals_missing_columns_when_alembic_fails(tmp_path, monkeypatch): | STRING |
| LOW | tests/test_db_schema_reconcile.py | 69 | def test_reconcile_converges_voice_profiles_to_base_schema(tmp_path): | STRING |
| LOW | tests/test_db_schema_reconcile.py | 78 | def test_reconcile_is_idempotent_and_additive_only(tmp_path): | STRING |
| LOW⚡ | tests/test_why_no_gpu_1274.py | 54 | def test_a_cpu_only_wheel_says_nothing(): | CODE |
| LOW⚡ | tests/test_why_no_gpu_1274.py | 69 | def test_rocm_without_the_kernel_interface_names_the_docker_flags(linux, monkeypatch): | CODE |
| LOW⚡ | tests/test_why_no_gpu_1274.py | 77 | def test_rocm_that_cannot_open_the_device_names_the_group_trap(linux, monkeypatch): | CODE |
| 3331 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW⚡ | omnivoice/models/omnivoice.py | 237 | except Exception: | CODE |
| LOW | omnivoice/models/omnivoice.py | 206 | except Exception as e: | CODE |
| LOW | omnivoice/cli/infer_batch.py | 499 | except Exception as e: | CODE |
| LOW⚡ | omnivoice/cli/demo.py | 213 | 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 |
| MEDIUM | tests/conftest.py | 333 | def _llm_prefs_snapshot() -> dict: | CODE |
| LOW | tests/conftest.py | 283 | except Exception: | CODE |
| LOW | tests/conftest.py | 301 | except Exception: | CODE |
| LOW | tests/conftest.py | 322 | except Exception: | CODE |
| LOW | tests/conftest.py | 337 | except Exception: | CODE |
| LOW | tests/conftest.py | 352 | except Exception: | CODE |
| LOW | tests/conftest.py | 390 | except Exception: | CODE |
| LOW | tests/conftest.py | 519 | except Exception: | CODE |
| 855 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| 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_why_no_gpu_1274.py | 21 | CODE | |
| LOW | tests/test_analytics_optin.py | 13 | CODE | |
| LOW | tests/test_dub_voice_match.py | 18 | CODE | |
| LOW | tests/test_pronunciation.py | 6 | CODE | |
| LOW | tests/test_pronunciation.py | 10 | CODE | |
| LOW | tests/test_nemo_parakeet_install_hint.py | 16 | CODE | |
| LOW | tests/test_funasr_global_speaker_chunking.py | 3 | CODE | |
| LOW | tests/test_translator.py | 9 | CODE | |
| LOW | tests/test_translator.py | 10 | 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_pockettts_sidecar.py | 20 | 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_llm_skills.py | 15 | CODE | |
| LOW | tests/test_windows_paging_file.py | 19 | 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_unified_memory_offload.py | 17 | CODE | |
| LOW | tests/test_mlx_supported.py | 6 | CODE | |
| LOW | tests/test_ci_windows_ffmpeg_retry.py | 13 | CODE | |
| LOW | tests/test_longform_synth_params.py | 22 | CODE | |
| LOW | tests/test_dub_transcribe.py | 8 | CODE | |
| LOW | tests/test_dub_transcribe.py | 10 | CODE | |
| LOW | tests/test_dub_transcribe.py | 12 | CODE | |
| LOW | tests/test_dub_transcribe.py | 170 | CODE | |
| LOW | tests/test_torch_constraints_are_applied.py | 26 | CODE | |
| LOW | tests/test_duration_planner.py | 16 | CODE | |
| LOW | tests/test_dub_no_tts_load_for_asr.py | 19 | CODE | |
| LOW | tests/test_moss_entry_point_1287.py | 14 | CODE | |
| LOW | tests/test_network_beats_install_diagnosis.py | 35 | CODE | |
| LOW | tests/test_socks_proxy.py | 22 | CODE | |
| LOW | tests/test_dub_job_deleted_mid_ingest.py | 22 | CODE | |
| LOW | tests/test_recurrence_hardening.py | 8 | CODE | |
| LOW | tests/test_synth_error_classes.py | 17 | CODE | |
| LOW | tests/test_asr_vram_preflight.py | 13 | CODE | |
| LOW | tests/test_asr_vram_preflight.py | 15 | CODE | |
| LOW | tests/test_generation_takes.py | 18 | CODE | |
| LOW | tests/test_memory_budget.py | 7 | CODE | |
| LOW | tests/test_generate_engine.py | 26 | CODE | |
| LOW | tests/test_generation_timeout_is_named.py | 24 | CODE | |
| LOW | tests/test_pytorch_whisper_fallback.py | 11 | CODE | |
| LOW | tests/test_llm_openai_available.py | 10 | CODE | |
| LOW | tests/test_llm_openai_available.py | 14 | CODE | |
| LOW | tests/test_llm_openai_available.py | 15 | CODE | |
| LOW | tests/test_longform_render.py | 7 | CODE | |
| LOW | tests/test_longform_limits.py | 6 | CODE | |
| 470 more matches not shown… | ||||
| 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 | # Apple Silicon-only Parakeet TDT v3 ASR (mlx-community/parakeet-tdt-0.6b-v3 | COMMENT |
| LOW | pyproject.toml | 101 | # Invisible audio watermarking — embeds imperceptible neural watermarks | COMMENT |
| LOW | pyproject.toml | 121 | "mcp>=1.2", | COMMENT |
| LOW | pyproject.toml | 141 | "pypdf>=4.0", | COMMENT |
| LOW | pyproject.toml | 161 | # SOCKS proxy support for httpx (#959). huggingface_hub's get_session() | COMMENT |
| LOW | pyproject.toml | 201 | "unidecode", # Unicode normalization | COMMENT |
| LOW | .coderabbit.yaml | 1 | # CodeRabbit configuration — https://docs.coderabbit.ai/guides/configure-coderabbit | COMMENT |
| LOW | frontend/playwright.prod.config.ts | 1 | import { defineConfig, devices } from '@playwright/test'; | COMMENT |
| LOW | frontend/src-tauri/Cargo.toml | 41 | enigo = { version = "0.3", features = ["serde"] } | COMMENT |
| LOW | frontend/src-tauri/Cargo.toml | 61 | # First-run setup screen: per-path free-disk-space probe (statvfs / | COMMENT |
| LOW | frontend/src-tauri/appimage/AppRun.test.sh | 121 | # (This case used to pair marker 2.46 with host 2.48 and expect the workaround. | COMMENT |
| LOW | frontend/src-tauri/appimage/AppRun.test.sh | 321 | run_workaround_with_system "broken host re-arms it" "2.44.3" "2.46.1" "1" | COMMENT |
| LOW | frontend/src-tauri/appimage/AppRun.test.sh | 421 | run_gst_case "no host GStreamer is harmless" "" "none" "no-gst+libdir-intact+private-registry" | COMMENT |
| LOW | frontend/src-tauri/src/reset.rs | 1 | //! Scoped reset — Settings → Storage → "Reset & remove". | COMMENT |
| LOW | frontend/src-tauri/src/reset.rs | 21 | //! pointing at paths that no longer exist. | COMMENT |
| LOW | frontend/src-tauri/src/reset.rs | 201 | /// empty scope rather than silently omitting it. | COMMENT |
| LOW | frontend/src-tauri/src/tools.rs | 21 | /// `python -c` capability probes), so the user sees a storm of terminal | COMMENT |
| LOW | frontend/src-tauri/src/tools.rs | 41 | cmd.creation_flags(CREATE_NO_WINDOW); | COMMENT |
| LOW | frontend/src-tauri/src/tools.rs | 61 | // | COMMENT |
| LOW | frontend/src-tauri/src/crash.rs | 1 | //! Backend crash forensics (#941). | COMMENT |
| LOW | frontend/src-tauri/src/crash.rs | 81 | /// Unix seconds when the death was detected. | COMMENT |
| LOW | frontend/src-tauri/src/crash.rs | 101 | /// Tail of backend_err.log captured at death time. | COMMENT |
| LOW | frontend/src-tauri/src/crash.rs | 241 | /// | COMMENT |
| LOW | frontend/src-tauri/src/config.rs | 21 | /// - restricted: ghproxy.net for GitHub (catch-all for MENA, Africa, etc.) | COMMENT |
| LOW | frontend/src-tauri/src/config.rs | 41 | /// `updater_channel.rs` via `UpdaterExt::endpoints`, so switching takes | COMMENT |
| LOW | frontend/src-tauri/src/config.rs | 61 | /// None → backend platform default (env var not set at all). | COMMENT |
| LOW | frontend/src-tauri/src/config.rs | 81 | /// after sync). Env var OMNIVOICE_TORCH_VARIANT still wins for power users. | COMMENT |
| LOW | frontend/src-tauri/src/backend.rs | 321 | /// passes the `POSTHOG_PROJECT_TOKEN` secret to the tauri-action step as | COMMENT |
| LOW | frontend/src-tauri/src/updater_channel.rs | 1 | //! Channel-aware auto-update (Stable / Preview). | COMMENT |
| LOW | frontend/src-tauri/src/updater_channel.rs | 21 | const STABLE_MANIFEST: &str = | COMMENT |
| LOW | frontend/src-tauri/src/updater_channel.rs | 81 | /// `a` (the earlier-checked manifest, i.e. preview) wins ties. | COMMENT |
| LOW | frontend/src-tauri/src/updater_channel.rs | 261 | /// Documents the #326 root cause: under plain semver (the plugin's | COMMENT |
| LOW | frontend/src-tauri/src/lib.rs | 81 | // 300×64 transparent, undecorated, always-on-top window that can't host | COMMENT |
| LOW | frontend/src-tauri/src/lib.rs | 221 | assert!(!is_app_origin("http://localhost.evil.com:3901/")); | COMMENT |
| LOW | frontend/src-tauri/src/lib.rs | 241 | // Two pieces, both required (verified by reading how `.show()` is used at | COMMENT |
| LOW | frontend/src-tauri/src/lib.rs | 781 | let _ = win.hide(); | COMMENT |
| LOW | frontend/src-tauri/src/lib.rs | 881 | // First-run gate: never auto-install. With nothing on disk to | COMMENT |
| LOW | frontend/src-tauri/src/bootstrap.rs | 21 | #[derive(Clone, Serialize, Debug)] | COMMENT |
| LOW | frontend/src-tauri/src/bootstrap.rs | 41 | Ready, | COMMENT |
| LOW | frontend/src-tauri/src/bootstrap.rs | 401 | // here with the generic "never started — no error output captured" | COMMENT |
| LOW | frontend/src-tauri/src/bootstrap.rs | 461 | // uvicorn process then died mid-session — a CUDA OOM/context fault under a | COMMENT |
| LOW | frontend/src-tauri/src/bootstrap.rs | 781 | /// gh-proxy mirror for python-build-standalone, used as a fallback when the | COMMENT |
| LOW | frontend/src-tauri/src/bootstrap.rs | 841 | } | COMMENT |
| LOW | frontend/src-tauri/src/bootstrap.rs | 881 | } | COMMENT |
| LOW | frontend/src-tauri/src/bootstrap.rs | 901 | /// Deliberately NOT applied to the repair sync (`repair_sync_args`): repair | COMMENT |
| LOW | frontend/src-tauri/src/bootstrap.rs | 941 | COMMENT | |
| LOW | frontend/src-tauri/src/bootstrap.rs | 1021 | /// very early with "No module named 'encodings'" (exit 1). Both are | COMMENT |
| LOW | frontend/src-tauri/src/bootstrap.rs | 1081 | // packaged-install bootstrap path below never called that script — so every | COMMENT |
| LOW | frontend/src-tauri/src/bootstrap.rs | 1181 | /// anything that re-syncs the venv in place must call | COMMENT |
| LOW | frontend/src-tauri/src/bootstrap.rs | 2441 | /// copy of why the last start failed. The frontend asks for the diagnosis | COMMENT |
| LOW | frontend/src-tauri/src/commands.rs | 301 | /// other OSes (nothing to grant there). | COMMENT |
| LOW | frontend/src-tauri/src/commands.rs | 321 | /// AVMediaTypeAudio]`. Hand-rolled ObjC-runtime FFI, same spirit as | COMMENT |
| LOW | frontend/src-tauri/src/commands.rs | 361 | } | COMMENT |
| LOW | frontend/src-tauri/src/commands.rs | 501 | } | COMMENT |
| LOW | frontend/src-tauri/src/commands.rs | 581 | /// Cross-platform: `enigo`'s `.text()` synthesizes Unicode key events on macOS | COMMENT |
| LOW | frontend/src-tauri/src/commands.rs | 721 | return Err("save path must be absolute".into()); | COMMENT |
| LOW | frontend/src-tauri/src/commands.rs | 741 | // 1. the command writes a marker file next to the cache and relaunches; | COMMENT |
| 295 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_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 | 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 | omnivoice/training/checkpoint.py | 85 | CODE | |
| LOW | omnivoice/training/trainer.py | 243 | CODE | |
| LOW | omnivoice/utils/text.py | 120 | CODE | |
| LOW | omnivoice/cli/dub.py | 85 | CODE | |
| LOW | omnivoice/cli/infer_batch.py | 405 | CODE | |
| LOW | omnivoice/cli/demo.py | 154 | 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/conftest.py | 264 | CODE | |
| LOW | tests/conftest.py | 306 | CODE | |
| LOW | tests/conftest.py | 491 | CODE | |
| LOW | tests/test_no_literal_borders.py | 107 | CODE | |
| LOW | tests/test_uv_cross_drive.py | 221 | CODE | |
| LOW | tests/test_synthetic_audio_watermark_1169.py | 257 | CODE | |
| LOW | tests/test_vendored_omnivoice_imports_1417.py | 47 | CODE | |
| LOW | tests/test_vendored_omnivoice_imports_1417.py | 81 | CODE | |
| LOW | tests/test_no_hardcoded_cjk.py | 102 | CODE | |
| LOW | tests/test_changelog_style.py | 62 | CODE | |
| LOW | tests/test_sherpa_ws_streaming.py | 107 | CODE | |
| LOW | tests/test_api.py | 322 | CODE | |
| LOW | tests/backend/test_dub_pipeline_wav.py | 55 | CODE | |
| LOW | tests/probe/spec.py | 182 | CODE | |
| LOW | backend/main.py | 228 | CODE | |
| LOW | backend/core/db.py | 228 | CODE | |
| LOW | backend/core/tasks.py | 97 | CODE | |
| LOW | backend/core/archetypes.py | 378 | CODE | |
| LOW | backend/core/device_caps.py | 281 | CODE | |
| LOW | backend/core/device_caps.py | 378 | CODE | |
| LOW | backend/core/failure.py | 570 | CODE | |
| LOW | backend/core/logging_filter.py | 32 | CODE | |
| LOW | backend/core/error_journal.py | 153 | CODE | |
| LOW | backend/core/error_journal.py | 177 | CODE | |
| LOW | backend/core/job_queue.py | 174 | CODE | |
| LOW | backend/engines/_echo/main.py | 79 | CODE | |
| LOW | backend/engines/omnivoice_gguf/backend.py | 205 | CODE | |
| LOW | backend/engines/omnivoice_gguf/backend.py | 330 | CODE | |
| LOW | backend/engines/omnivoice_gguf/backend.py | 470 | CODE | |
| LOW | backend/engines/moss_tts_v15/main.py | 254 | CODE | |
| LOW | backend/engines/pockettts/main.py | 261 | CODE | |
| LOW | backend/engines/dots_tts/main.py | 210 | CODE | |
| LOW | backend/engines/supertonic3/sidecar.py | 318 | CODE | |
| LOW | backend/engines/_asr_sidecar/main.py | 84 | CODE | |
| LOW | backend/engines/_asr_sidecar/main.py | 131 | CODE | |
| LOW | backend/engines/confucius4/main.py | 177 | CODE | |
| LOW | backend/engines/omnivoice_subprocess/main.py | 204 | CODE | |
| LOW | backend/engines/indextts/main.py | 269 | CODE | |
| 116 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_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_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/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 | 74 | uv venv && uv pip install -e ".[torch-runtime]" | STRING |
| HIGH | backend/engines/dots_tts/__init__.py | 56 | uv venv && uv pip install -e . -c constraints/recommended.txt | STRING |
| HIGH | backend/engines/confucius4/__init__.py | 49 | uv venv --python 3.10 && uv pip install -r requirements.txt | STRING |
| HIGH | backend/engines/indextts/__init__.py | 65 | cd index-tts && uv pip install -e . # NOT uv sync --all-extras | STRING |
| HIGH⚡ | backend/api/routers/system.py | 1092 | returns ``{"quarantined": false, "error_class": null}``. The React | STRING |
| HIGH | backend/api/routers/tts_stream.py | 209 | sentences = _chunker.push(text) | CODE |
| HIGH | backend/api/routers/glossary.py | 180 | 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 | 2039 | "moss-tts-nano": "git clone OpenMOSS/MOSS-TTS-Nano && pip install -e . (not on PyPI)", | CODE |
| HIGH | backend/services/tts_backend.py | 2040 | "indextts2": "git clone index-tts/index-tts && uv pip install -e . (NOT uv sync --all-extras)", | CODE |
| HIGH | backend/services/tts_backend.py | 1517 | cd CosyVoice && pip install -r requirements.txt | STRING |
| HIGH | backend/services/sentence_chunker.py | 310 | for sentence in chunker.push(token): | STRING |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| MEDIUM | pyproject.toml | 96 | # zero-shot clone: when the caller just needs fast English narration with | COMMENT |
| MEDIUM⚡ | tests/test_speaker_clone_purity.py | 157 | # 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 | 127 | 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 | 60 | supports_cloning = True # zero-shot clone from a reference clip | CODE |
| MEDIUM | backend/engines/omnivoice_subprocess/__init__.py | 101 | # OmniVoice advertises 600+ zero-shot; "multi" is the honest tag. | COMMENT |
| MEDIUM | backend/api/routers/dub_generate.py | 169 | # Below ~3 s zero-shot prompt-priming gets unstable, so prefer clips at or | COMMENT |
| MEDIUM | backend/api/routers/capture.py | 132 | # Wave 1.1: strip Whisper hallucination loops from the final text. | COMMENT |
| MEDIUM⚡ | backend/api/routers/capture_ws.py | 142 | # WebSocket dependency injection differs across FastAPI versions, so we | COMMENT |
| MEDIUM | backend/api/routers/capture_ws.py | 921 | # Wave 1.1: strip Whisper hallucination loops from the final | COMMENT |
| MEDIUM | backend/api/routers/profiles.py | 423 | # check — agentic features and gallery sharing gate on the flag; plain local | COMMENT |
| MEDIUM | backend/api/routers/glossary.py | 210 | # Concat all text — capped so we don't blow the context window on long projects. | COMMENT |
| MEDIUM | backend/services/tts_backend.py | 549 | # OmniVoice advertises 600+ zero-shot — `"multi"` is the honest tag. | COMMENT |
| MEDIUM | backend/services/tts_backend.py | 1940 | # 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 | docs/competitive-analysis.md | 17 | the feature roadmap announced in discussion #346 — agentic voice workflows, remote | CODE |
| MEDIUM | docs/competitive-analysis.md | 235 | | 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 | scripts/validate-install-docs.py | 59 | # Skip pure-comment lines — they're docs scaffolding, not commands. | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | frontend/src/test/SupportPageSponsors.test.jsx | 64 | name: 'Acme Corp', | CODE |
| LOW | frontend/src/test/SupportPageSponsors.test.jsx | 87 | const img = screen.getByAltText('Acme Corp'); | CODE |
| LOW | frontend/src/test/visual/specs.jsx | 380 | <Input placeholder="Jane Doe" /> | CODE |
| LOW | frontend/src/config/sponsors.js | 22 | * name: 'Acme Corp', // display name + <img alt> | COMMENT |
| LOW | …src/components/settings/HistoryRetentionPanel.test.jsx | 87 | expect(screen.getByTestId('history-retention-input')).toHaveAttribute('placeholder', '200'); | CODE |
| LOW | frontend/src/i18n/locales/tr.json | 1436 | "placeholder": "örneğin acil ve şaşırmış / sıcak, umutlu / fısıldayan, samimi", | CODE |
| LOW | frontend/src/i18n/locales/tr.json | 1553 | "placeholder": "Duymak için bir şeyler yazın…", | CODE |
| LOW | frontend/src/i18n/locales/nl.json | 1436 | "placeholder": "bijv. urgent en verrast/warm, hoopvol/gefluisterd, intiem", | CODE |
| LOW | frontend/src/i18n/locales/nl.json | 1553 | "placeholder": "Typ iets om te horen...", | CODE |
| LOW | frontend/src/i18n/locales/ja.json | 1436 | "placeholder": "例:緊急で驚いた / 温かく、希望に満ちた / ささやき、親密な", | CODE |
| LOW | frontend/src/i18n/locales/ja.json | 1553 | "placeholder": "聞きたいことを入力してください…", | CODE |
| LOW | frontend/src/i18n/locales/de.json | 1436 | "placeholder": "z.B. dringend und überrascht / warm, hoffnungsvoll / geflüstert, intim", | CODE |
| LOW | frontend/src/i18n/locales/de.json | 1553 | "placeholder": "Geben Sie etwas ein, das Sie hören möchten …", | CODE |
| LOW | frontend/src/i18n/locales/ru.json | 1436 | "placeholder": "например настойчиво и удивленно / тепло, обнадеживающе / шепотом, интимно", | CODE |
| LOW | frontend/src/i18n/locales/ru.json | 1553 | "placeholder": "Введите что-нибудь, чтобы услышать…", | CODE |
| LOW | frontend/src/i18n/locales/pl.json | 1436 | "placeholder": "np. pilne i zaskoczone / ciepłe, pełne nadziei / szeptane, intymne", | CODE |
| LOW | frontend/src/i18n/locales/pl.json | 1553 | "placeholder": "Wpisz coś, co chcesz usłyszeć…", | CODE |
| LOW | frontend/src/i18n/locales/uk.json | 1436 | "placeholder": "напр. терміновий і здивований / теплий, з надією / прошепотів, інтимний", | CODE |
| LOW | frontend/src/i18n/locales/uk.json | 1553 | "placeholder": "Введіть щось, щоб почути…", | CODE |
| LOW | frontend/src/i18n/locales/zh-CN.json | 1442 | "placeholder": "例如紧急而惊讶/温暖、充满希望/低声、亲密", | CODE |
| LOW | frontend/src/i18n/locales/zh-CN.json | 1559 | "placeholder": "输入要听的内容...", | CODE |
| LOW | frontend/src/i18n/locales/pt.json | 1436 | "placeholder": "por exemplo urgente e surpreso / caloroso, esperançoso / sussurrado, íntimo", | CODE |
| LOW | frontend/src/i18n/locales/pt.json | 1553 | "placeholder": "Digite algo para ouvir…", | CODE |
| LOW | frontend/src/i18n/locales/en.json | 1823 | "placeholder": "e.g. urgent and surprised / warm, hopeful / whispered, intimate", | CODE |
| LOW | frontend/src/i18n/locales/en.json | 2098 | "placeholder": "Type something to hear…", | CODE |
| LOW | frontend/src/i18n/locales/it.json | 1436 | "placeholder": "ad es. urgente e sorpreso / caldo, speranzoso / sussurrato, intimo", | CODE |
| LOW | frontend/src/i18n/locales/it.json | 1553 | "placeholder": "Digita qualcosa da ascoltare...", | CODE |
| LOW | frontend/src/i18n/locales/fr.json | 1436 | "placeholder": "par ex. urgent et surpris / chaleureux, plein d'espoir / murmuré, intime", | CODE |
| LOW | frontend/src/i18n/locales/fr.json | 1553 | "placeholder": "Tapez quelque chose à entendre…", | CODE |
| LOW | frontend/src/i18n/locales/hi.json | 1436 | "placeholder": "जैसे अत्यावश्यक और आश्चर्यचकित / गर्म, आशावान / फुसफुसाए हुए, अंतरंग", | CODE |
| LOW | frontend/src/i18n/locales/hi.json | 1553 | "placeholder": "सुनने के लिए कुछ टाइप करें...", | CODE |
| LOW | frontend/src/i18n/locales/ko.json | 1436 | "placeholder": "예를 들어 다급하고 놀라는 / 따뜻하고 희망적인 / 속삭이는, 친밀한", | CODE |
| LOW | frontend/src/i18n/locales/ko.json | 1553 | "placeholder": "듣고 싶은 내용을 입력하세요…", | CODE |
| LOW | frontend/src/i18n/locales/zh-TW.json | 1436 | "placeholder": "例如緊急而驚訝/溫暖、充滿希望/低聲、親密", | CODE |
| LOW | frontend/src/i18n/locales/zh-TW.json | 1553 | "placeholder": "輸入要聽的內容...", | CODE |
| LOW | frontend/src/i18n/locales/vi.json | 1436 | "placeholder": "ví dụ: cấp bách và ngạc nhiên/ấm áp, hy vọng/thì thầm, thân mật", | CODE |
| LOW | frontend/src/i18n/locales/vi.json | 1553 | "placeholder": "Nhập nội dung nào đó để nghe…", | CODE |
| LOW | frontend/src/i18n/locales/id.json | 1436 | "placeholder": "misalnya mendesak dan terkejut / hangat, penuh harapan / berbisik, intim", | CODE |
| LOW | frontend/src/i18n/locales/id.json | 1553 | "placeholder": "Ketik sesuatu untuk didengar…", | CODE |
| LOW | frontend/src/i18n/locales/th.json | 1436 | "placeholder": "เช่น เร่งด่วนและประหลาดใจ / อบอุ่น มีความหวัง / กระซิบใกล้ชิด", | CODE |
| LOW | frontend/src/i18n/locales/th.json | 1553 | "placeholder": "พิมพ์บางอย่างเพื่อฟัง...", | CODE |
| LOW | frontend/src/i18n/locales/sv.json | 1436 | "placeholder": "t.ex. akut och förvånad / varm, hoppfull / viskande, intim", | CODE |
| LOW | frontend/src/i18n/locales/sv.json | 1553 | "placeholder": "Skriv något att höra...", | CODE |
| LOW | frontend/src/i18n/locales/es.json | 1436 | "placeholder": "por ej. urgente y sorprendido / cálido, esperanzado / susurrado, íntimo", | CODE |
| LOW | frontend/src/i18n/locales/es.json | 1553 | "placeholder": "Escribe algo para escuchar...", | CODE |
| LOW | frontend/src/i18n/locales/ar.json | 1436 | "placeholder": "على سبيل المثال عاجل ومتفاجئ / دافئ، متفائل / هامس، حميم", | CODE |
| LOW | frontend/src/i18n/locales/ar.json | 1553 | "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 | 503 | assert "placeholder" in reason.lower() or "empty" in reason.lower() | CODE |
| LOW⚡ | tests/backend/services/test_tts_backend_registry.py | 350 | fake_token = "hf_" + "A" * 34 | CODE |
| LOW⚡ | tests/backend/services/test_tts_backend_registry.py | 351 | masked = tts_backend._available_hint(f"ready — re-auth with {fake_token}") | CODE |
| LOW⚡ | tests/backend/services/test_tts_backend_registry.py | 353 | assert fake_token not in masked | CODE |
| LOW⚡ | tests/backend/services/test_binary_preflight.py | 33 | assert "placeholder" in reason | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| MEDIUM | frontend/src/App.jsx | 153 | // Measuring a real zoomed element is robust where @supports(zoom)/UA-sniffing | COMMENT |
| MEDIUM | frontend/src/App.jsx | 706 | // 4. Global Drag and drop for seamless native feeling | COMMENT |
| 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 | 177 | # ── Sanity: the harness itself can't fake a pass ───────────────────────────── | COMMENT |
| MEDIUM⚡ | tests/test_synthetic_audio_watermark_1169.py | 362 | # ── 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 | 64 | # 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 | 636 | # invalidation robust even where resolution is short-circuited/stubbed. | COMMENT |
| MEDIUM | backend/services/srt_parser.py | 74 | # timing line (or end of file). This is robust to missing index | COMMENT |
| MEDIUM | backend/services/pronunciation.py | 84 | # casefold (not lower) for robust Unicode case-insensitive lookup. | COMMENT |
| LOW | backend/services/speech_rate.py | 70 | # Max LLM attempts per segment. Past this we just return the best we got. | COMMENT |
| MEDIUM | scripts/smoke-test.sh | 332 | # isn't reachable from this harness. | COMMENT |
| MEDIUM | scripts/smoke-test.sh | 345 | # bootstrap regression, not harness networking. UV_PYTHON_PREFERENCE=only-system | COMMENT |
| MEDIUM | .github/workflows/ci.yml | 88 | # the only place that logic is exercised is this shell harness. It had | COMMENT |
| 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 | 76 | logger = logging.getLogger(__name__) | CODE |
| LOW | tests/probe/__init__.py | 26 | __all__ = ["JudgeResult", "Spec", "load_spec", "run_judges", "JUDGE_REGISTRY"] | CODE |
| LOW⚡ | backend/core/device_caps.py | 572 | __all__ = [ | CODE |
| LOW | backend/core/onboarding.py | 14 | logger = logging.getLogger(__name__) | CODE |
| LOW | backend/core/http_headers.py | 30 | __all__ = ["ascii_filename", "content_disposition"] | CODE |
| LOW | backend/core/user_env.py | 63 | 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 | 65 | 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 | 75 | def set_byte_sink(fn: Optional[Callable]) -> None: | CODE |
| LOW | backend/utils/download_aggregator.py | 65 | def update_byte_bar(self, key: object, downloaded: int, total: Optional[int]) -> None: | CODE |
| LOW | backend/utils/download_aggregator.py | 77 | def update_files(self, done: int, total: Optional[int]) -> None: | CODE |
| LOW | backend/engines/omnivoice_gguf/backend.py | 885 | __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 | 293 | __all__ = [ | CODE |
| LOW | backend/engines/moss_tts_v15/__init__.py | 194 | __all__ = ["MossTTSV15Backend", "TOKENS_PER_SECOND"] | CODE |
| LOW | backend/engines/pockettts/__init__.py | 111 | __all__ = ["PocketTTSBackend"] | CODE |
| LOW | backend/engines/dots_tts/bootstrap.py | 254 | __all__ = [ | CODE |
| LOW | backend/engines/dots_tts/__init__.py | 187 | __all__ = ["DotsTTSBackend"] | CODE |
| LOW | backend/engines/supertonic3/backend.py | 215 | __all__ = ["Supertonic3Backend", "SUPERTONIC3_SIDECAR_SCRIPT"] | CODE |
| LOW | backend/engines/supertonic3/__init__.py | 35 | __all__ = ["Supertonic3Backend"] | CODE |
| LOW | backend/engines/confucius4/bootstrap.py | 249 | __all__ = [ | CODE |
| LOW | backend/engines/confucius4/__init__.py | 134 | __all__ = ["Confucius4Backend"] | CODE |
| LOW | backend/engines/omnivoice_subprocess/__init__.py | 105 | __all__ = ["OmniVoiceSubprocessBackend"] | CODE |
| LOW | backend/engines/indextts/bootstrap.py | 299 | __all__ = [ | CODE |
| LOW | backend/engines/indextts/__init__.py | 214 | __all__ = ["IndexTTS2Backend"] | CODE |
| LOW | backend/api/routers/setup/models.py | 440 | def _set_cache(key: str, value: object) -> None: | CODE |
| LOW | backend/services/persona_bundle.py | 433 | __all__ = [ | CODE |
| LOW | backend/services/subprocess_backend.py | 763 | __all__ = [ | CODE |
| LOW | backend/services/settings_store.py | 76 | def set_hf_token(token: str) -> None: | CODE |
| LOW | backend/services/settings_store.py | 166 | def set_secret(name: str, value: str) -> None: | CODE |
| LOW | backend/services/settings_store.py | 250 | def set_text(key: str, value: str) -> None: | CODE |
| LOW | backend/services/settings_store.py | 297 | def set_quant_override(value: Optional[str]) -> None: | CODE |
| LOW | backend/services/settings_store.py | 408 | def set_license_accepted(engine_id: str, accepted: bool) -> None: | CODE |
| LOW | backend/services/llm_providers.py | 409 | def set_active_provider(pid: str) -> None: | CODE |
| LOW | backend/services/engine_routing.py | 209 | __all__ = [ | CODE |
| LOW⚡ | backend/services/media_tools.py | 117 | def _set_op(op: str, **fields) -> None: | CODE |
| LOW⚡ | backend/services/loudness.py | 68 | __all__ = ["measure_loudness"] | CODE |
| LOW | backend/services/sidecar_install.py | 1000 | __all__ = [ | CODE |
| LOW⚡ | backend/services/endpoint_race.py | 282 | def set_mode_pref(value: str) -> None: | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | omnivoice/models/omnivoice.py | 550 | CODE | |
| LOW | omnivoice/models/omnivoice.py | 973 | 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_device_caps.py | 19 | CODE | |
| LOW | backend/core/archetypes.py | 439 | CODE | |
| LOW | backend/api/routers/audiobook.py | 736 | CODE | |
| LOW | backend/api/routers/generation.py | 962 | CODE | |
| LOW | backend/api/routers/archetypes.py | 227 | CODE | |
| LOW | backend/api/routers/sonitranslate.py | 59 | CODE | |
| LOW | backend/api/routers/community.py | 177 | CODE | |
| LOW | backend/api/routers/profiles.py | 43 | CODE | |
| LOW | backend/services/tts_backend.py | 302 | CODE | |
| LOW | backend/services/segmented_download.py | 106 | CODE | |
| LOW | backend/services/asr_backend.py | 1096 | 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/backend/engines/test_omnivoice_gguf.py | 107 | # Create a fake binary on disk with known contents (valid ELF magic so | COMMENT |
| MEDIUM | backend/core/user_env.py | 32 | # 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 | 204 | # Create the profile in the database | 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/desktop-prod.sh | 11 | # Usage: | COMMENT |
| LOW | scripts/macos-dev-unquarantine.sh | 13 | # Usage: | COMMENT |
| LOW | scripts/install.sh | 7 | # 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 |
| LOW | scripts/smoke-test.sh | 21 | # Usage: | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| HIGH | omnivoice/models/omnivoice.py | 1440 | 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 | 2571 | # Check if there's enough free VRAM to skip offloading | COMMENT |
| LOW | scripts/setup.py | 60 | # Check if vcruntime140.dll is already loadable | COMMENT |
| LOW | scripts/setup.py | 169 | # 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 |
| LOW | scripts/smoke-test.sh | 221 | # Check if app crashed | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| HIGH | pyproject.toml | 102 | # in AI-generated speech for provenance detection (SynthID-like). | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | examples/README.md | 54 | ### Step 1: Prepare Your Data | COMMENT |
| LOW | examples/README.md | 67 | ### Step 2: Configure the Script | COMMENT |
| LOW | examples/README.md | 79 | ### Step 3: Run | COMMENT |