AI Slop Code RIsk Monitor

FunAudioLLM/SenseVoice

Open-source SenseVoiceSmall model for Mandarin, Cantonese, English, Japanese, and Korean ASR, language ID, emotion recognition, and audio event detection.

4.6 Low pattern signal View on GitHub

Maintenance and Governance Review

This report summarizes scanner evidence for FunAudioLLM/SenseVoice, a C project with 9,490 GitHub stars. SynthScan examined 31,788 lines of code across 79 source files, recording 130 pattern matches distributed across 8 syntactic categories. The legacy adjusted pattern signal is 4.6 (Low 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.

4.6
Adjusted Signal
4.6
Raw Pattern Score
100%
Time Factor
2026-09-30
Last Push
9.5K
Stars
C
Language
31.8K
Lines of Code
79
Files
130
Pattern Hits
2026-10-12
Scan Date
0.03
HC Hit Rate

Risk Review · v3

Use each vector to guide manual verification of the underlying findings.

Cognitive Ownership Risk 16.5/100 · LOW

Can maintainers explain intent, assumptions, and trade-offs? 105 finding(s).

Hallucinated Dependency & Supply Chain Risk 2.9/100 · LOW

Are imports declared and package/API names verified? 19 finding(s).

Agent Over-Engineering Ratio 11.4/100 · LOW

Are wrappers, guards, and repeated structures necessary? 59 finding(s).

PR Review Velocity Impact 20.8/100 · LOW

Which changes need focused human review? 130 finding(s).

What These Metrics Mean

Adjusted Signal
Legacy pattern score normalized per 1,000 scanned lines and multiplied by the repository-level time factor. It is not an estimate of AI authorship.
Raw Pattern Score
Sum of severity- and context-weighted pattern findings before applying the time factor.
Time Factor
A coarse multiplier based on repository last-push metadata. It does not identify when individual code was written.
Pattern Hits
Count of configured pattern findings. Review each location and surrounding code before acting.
HC Hit Rate
High- and critical-severity findings per scanned file. Severity is a configured detector weight, not proof of a vulnerability or authorship.
Lines / Files
Scan coverage denominators used by the legacy normalized score.

Pattern-Signal History

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.

Severity Breakdown

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.

CRITICAL 0HIGH 2MEDIUM 4LOW 124

Directory Score Breakdown

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.

Pattern Findings

The scanner identified 130 distinct pattern matches across 8 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.

Hyper-Verbose Identifiers50 hits · 60 pts
SeverityFileLineSnippetContext
LOWruntime/llama.cpp/test_export_sensevoice_gguf.py29 def test_rejects_non_sense_asr_family(self):CODE
LOWruntime/llama.cpp/export_sensevoice_gguf.py20def load_audio_cpp_model_spec(path):CODE
LOW⚡tests/test_funasr_requirement.py9def test_funasr_minimum_version_matches_current_examples():CODE
LOW⚡tests/test_funasr_requirement.py16def test_readmes_explain_upgrade_for_existing_installs():CODE
LOW⚡tests/test_funasr_requirement.py23def test_readmes_surface_sensevoice_gguf_edge_path():CODE
LOWtests/test_funasr_requirement.py34def test_readmes_surface_current_funasr_release():CODE
LOWtests/test_funasr_requirement.py46def test_readmes_surface_orca_sensevoice_desktop_integration():CODE
LOWtests/test_funasr_requirement.py63def test_readme_relative_markdown_links_point_to_existing_files():CODE
LOWtests/test_github_templates.py7def test_pull_request_template_keeps_sensevoice_validation_visible():CODE
LOW⚡tests/test_ser_benchmark.py19def test_normalize_label_accepts_casia_aliases():CODE
LOW⚡tests/test_ser_benchmark.py27def test_extract_emotion_reads_raw_sensevoice_tag():CODE
LOW⚡tests/test_ser_benchmark.py36def test_compute_metrics_reports_ua_wa_and_confusion_without_dropping_classes():CODE
LOWtests/test_ser_benchmark.py49def test_extract_emotion_rejects_output_without_an_emotion_tag():CODE
LOWtests/test_ser_benchmark.py56def test_readmes_link_the_ser_reproduction_contract():CODE
LOWtests/test_license_clarification.py14def test_readmes_surface_official_sensevoicesmall_commercial_use_clarification():CODE
LOWtests/test_license_clarification.py50def test_license_clarification_keeps_code_and_weight_terms_distinct():CODE
LOW⚡tests/test_ctc_alignment.py20 def test_frames_past_the_length_do_not_move_the_alignment(self):CODE
LOW⚡tests/test_ctc_alignment.py28 def test_full_length_alignment_stays(self):CODE
LOW⚡tests/test_ctc_alignment.py33 def test_ignore_id_does_not_change_the_targets(self):CODE
LOW⚡tests/test_ctc_alignment.py39 def test_an_unequal_length_batch_matches_each_item_cropped(self):CODE
LOWtests/test_ctc_alignment.py54 def test_lengths_on_the_cpu_work_with_emissions_on_an_accelerator(self):CODE
LOWtests/test_whats_new.py15def test_whats_new_is_a_current_three_item_summary():CODE
LOWtests/test_long_audio_no_vad.py27 def test_model_is_created_without_vad_or_remote_code(self):CODE
LOWtests/test_long_audio_no_vad.py51 def test_windows_cover_input_and_do_not_emit_overlap_only_tail(self):CODE
LOWtests/test_long_audio_no_vad.py70 def test_window_validation_rejects_invalid_overlap(self):CODE
LOWtests/test_long_audio_no_vad.py83 def test_merge_only_removes_exact_boundary_overlap(self):CODE
LOWtests/test_long_audio_no_vad.py93 def test_atomic_outputs_keep_raw_chunks_when_merged_text_deduplicates(self):CODE
LOWtests/test_device_env.py15 def test_auto_prefers_cuda_when_present(self):CODE
LOWtests/test_device_env.py20 def test_auto_falls_back_to_cpu(self):CODE
LOWtests/test_container_contract.py9 def test_build_context_excludes_local_credentials_and_git_metadata(self):CODE
LOW⚡tests/test_container_contract.py21 def test_context_changes_run_ci_without_persisting_checkout_credentials(self):CODE
LOW⚡tests/test_container_contract.py29 def test_container_base_matches_repository_torch_floor(self):CODE
LOW⚡tests/test_container_contract.py38 def test_container_installs_dependencies_in_an_isolated_venv(self):CODE
LOW⚡tests/test_container_contract.py48 def test_container_workflow_builds_prs_and_only_pushes_trusted_refs(self):CODE
LOWtests/test_container_contract.py62 def test_readme_uses_real_service_port_and_no_retired_registry(self):CODE
LOWtests/test_container_contract.py72 def test_verified_docker_run_is_identical_across_docs(self):CODE
LOW⚡tests/test_container_contract.py87 def test_default_compose_starts_without_a_gpu_reservation(self):CODE
LOW⚡tests/test_container_contract.py94 def test_api_uses_resolved_device_not_raw_auto(self):CODE
LOW⚡tests/test_container_contract.py103 def test_readmes_do_not_offer_private_ghcr_image_as_anonymous_pull(self):CODE
LOW⚡tests/test_model_timestamps.py40 def test_module_supports_checkpoint_state_and_device_transfer(self):CODE
LOW⚡tests/test_model_timestamps.py46 def test_call_matches_forward_without_resizing_the_input(self):CODE
LOW⚡tests/test_model_timestamps.py56 def test_multiple_ids_keep_their_original_token_time_range(self):CODE
LOWtests/test_model_timestamps.py92 def test_batch_alignment_uses_each_items_length(self):CODE
LOWtests/test_model_timestamps.py121 def test_inference_returns_word_aligned_millisecond_pairs(self):CODE
LOWtests/test_model_timestamps.py148 def test_word_boundaries_empty_input_and_nonmutation(self):CODE
LOWtests/test_canonical_qwenaudio_links.py35def test_legacy_owner_matcher_covers_repository_api_and_charts():CODE
LOWtests/test_canonical_qwenaudio_links.py63def test_tracked_files_use_qwenaudio_for_canonical_github_repositories():CODE
LOWtests/test_canonical_qwenaudio_links.py77def test_readme_homepage_links_use_live_funasr_site():CODE
LOWutils/infer_utils.py313def code_mix_split_words_jieba(seg_dict_file: str):CODE
LOWutils/device_env.py4def resolve_sensevoice_device(requested=None, cuda_available=None):CODE
Over-Commented Block40 hits · 32 pts
SeverityFileLineSnippetContext
LOWruntime/llama.cpp/CMakeLists.txt1# Standalone, CI-friendly build for the FunASR llama.cpp runtime.COMMENT
LOW…time/llama.cpp/funasr-sensevoice/funasr-sensevoice.cpp1// funasr-sensevoice: SenseVoiceSmall (SAN-M encoder + CTC) on ggml.COMMENT
LOW…time/llama.cpp/sensevoice-server/sensevoice-server.cpp1// sensevoice-server — OpenAI-compatible STT server for SenseVoiceSmall on ggml.COMMENT
LOW…time/llama.cpp/sensevoice-server/sensevoice-server.cpp21#include "ggml-backend.h"COMMENT
LOWruntime/llama.cpp/funasr-common/httplib.h1//COMMENT
LOWruntime/llama.cpp/funasr-common/httplib.h21/*COMMENT
LOWruntime/llama.cpp/funasr-common/httplib.h41#ifndef CPPHTTPLIB_CONNECTION_TIMEOUT_USECONDCOMMENT
LOWruntime/llama.cpp/funasr-common/httplib.h61#ifndef CPPHTTPLIB_CLIENT_READ_TIMEOUT_SECONDCOMMENT
LOWruntime/llama.cpp/funasr-common/httplib.h81#ifndef CPPHTTPLIB_EXPECT_100_THRESHOLDCOMMENT
LOWruntime/llama.cpp/funasr-common/httplib.h101#ifndef CPPHTTPLIB_IDLE_INTERVAL_USECONDCOMMENT
LOWruntime/llama.cpp/funasr-common/httplib.h121#ifndef CPPHTTPLIB_REDIRECT_MAX_COUNTCOMMENT
LOWruntime/llama.cpp/funasr-common/httplib.h141#ifndef CPPHTTPLIB_TCP_NODELAYCOMMENT
LOWruntime/llama.cpp/funasr-common/httplib.h161#ifndef CPPHTTPLIB_THREAD_POOL_COUNTCOMMENT
LOWruntime/llama.cpp/funasr-common/httplib.h181#define CPPHTTPLIB_SEND_FLAGS 0COMMENT
LOWruntime/llama.cpp/funasr-common/httplib.h201#define CPPHTTPLIB_WEBSOCKET_CLOSE_TIMEOUT_SECOND 5COMMENT
LOWruntime/llama.cpp/funasr-common/httplib.h221#ifndef _CRT_NONSTDC_NO_DEPRECATECOMMENT
LOWruntime/llama.cpp/funasr-common/httplib.h241COMMENT
LOWruntime/llama.cpp/funasr-common/httplib.h261COMMENT
LOWruntime/llama.cpp/funasr-common/httplib.h281#endifCOMMENT
LOWruntime/llama.cpp/funasr-common/httplib.h301#endifCOMMENT
LOWruntime/llama.cpp/funasr-common/httplib.h321#include <functional>COMMENT
LOWruntime/llama.cpp/funasr-common/httplib.h341#include <vector>COMMENT
LOWruntime/llama.cpp/funasr-common/httplib.h361#error \COMMENT
LOWruntime/llama.cpp/funasr-common/httplib.h381#ifdef _WIN32COMMENT
LOWruntime/llama.cpp/funasr-common/httplib.h401COMMENT
LOWruntime/llama.cpp/funasr-common/httplib.h421#endifCOMMENT
LOWruntime/llama.cpp/funasr-common/httplib.h441#include <mbedtls/md5.h>COMMENT
LOWruntime/llama.cpp/funasr-common/httplib.h461#define CPPHTTPLIB_MBEDTLS_V4COMMENT
LOWruntime/llama.cpp/funasr-common/httplib.h481#ifndef WOLFSSL_GEN_URICOMMENT
LOWruntime/llama.cpp/funasr-common/httplib.h501#include <Security/Security.h>COMMENT
LOWruntime/llama.cpp/funasr-common/httplib.h721// grammar is (RFC 9110 12.4.2):COMMENT
LOWruntime/llama.cpp/funasr-common/httplib.h981// wrote them. Neither standard container expresses it: std::unordered_multimapCOMMENT
LOWruntime/llama.cpp/funasr-common/httplib.h5621 return false;COMMENT
LOWruntime/llama.cpp/funasr-common/httplib.h8001 // is the final transfer coding. A single field value may list severalCOMMENT
LOWruntime/llama.cpp/funasr-common/httplib.h9341 // NOTE: RFC-9110 '14.1.2. Byte Ranges':COMMENT
LOWruntime/llama.cpp/funasr-common/httplib.h14761 // response (e.g. 4xx) and avoid sending a potentially large request bodyCOMMENT
LOWruntime/llama.cpp/funasr-common/httplib.h18741 bool has_peeked_byte = false;COMMENT
LOWruntime/llama.cpp/funasr-common/funasr_audio.h1// funasr_audio.h — load any audio file (WAV/MP3/FLAC/OGG...) as 16 kHz mono f32,COMMENT
LOWruntime/llama.cpp/funasr-common/funasr_vad.h1// funasr_vad.h — single-header FSMN-VAD for the funasr ggml runtime.COMMENT
LOWruntime/llama.cpp/funasr-vad/funasr-vad.cpp1// funasr-vad: FSMN-VAD on ggml. WAV(any fmt/rate) -> speech segments [start_ms,end_ms].COMMENT
Unused Imports19 hits · 19 pts
SeverityFileLineSnippetContext
LOWwebui.py4CODE
LOWwebui.py5CODE
LOWwebui.py6CODE
LOWwebui.py8CODE
LOWwebui.py37CODE
LOWmodel.py6CODE
LOWmodel.py11CODE
LOWmodel.py14CODE
LOWutils/infer_utils.py6CODE
LOWutils/frontend.py3CODE
LOWutils/frontend.py3CODE
LOWutils/frontend.py3CODE
LOWutils/frontend.py3CODE
LOWutils/frontend.py3CODE
LOWutils/frontend.py3CODE
LOWutils/model_bin.py13CODE
LOWutils/model_bin.py13CODE
LOWutils/model_bin.py13CODE
LOWutils/model_bin.py23CODE
AI Slop Vocabulary4 hits · 12 pts
SeverityFileLineSnippetContext
MEDIUMruntime/llama.cpp/funasr-common/httplib.h14493 // Cross-host/scheme redirect - create new client with robust setupCOMMENT
MEDIUMruntime/llama.cpp/funasr-common/httplib.h14498// New method for robust redirect client creationCOMMENT
MEDIUMruntime/llama.cpp/funasr-common/httplib.h14560 // Setup client with robust configurationCOMMENT
MEDIUMruntime/llama.cpp/funasr-common/httplib.h14568// New method for robust client setup (based on basic_manual_redirect.cppCOMMENT
Empty Error Handlers2 hits · 10 pts
SeverityFileLineSnippetContext
HIGHruntime/llama.cpp/tests/stream_client.py127except OSError:CODE
HIGHruntime/llama.cpp/benchmarks/compute_cer.py49except ValueError: passCODE
Deep Nesting8 hits · 8 pts
SeverityFileLineSnippetContext
LOWwebui.py233CODE
LOWmodel.py781CODE
LOWruntime/llama.cpp/tests/stream_client.py132CODE
LOWruntime/llama.cpp/benchmarks/compute_cer.py32CODE
LOWutils/infer_utils.py273CODE
LOWutils/infer_utils.py131CODE
LOWutils/frontend.py125CODE
LOWutils/frontend.py172CODE
Excessive Try-Catch Wrapping4 hits · 4 pts
SeverityFileLineSnippetContext
LOWwebui.py25except Exception:CODE
LOWruntime/llama.cpp/tests/stream_client.py161 except Exception:CODE
LOWruntime/llama.cpp/tests/stream_client.py177 except Exception:CODE
LOWutils/infer_utils.py228 except Exception as e:CODE
AI Structural Patterns3 hits · 3 pts
SeverityFileLineSnippetContext
LOWmodel.py445CODE
LOWmodel.py584CODE
LOWutils/frontend.py17CODE