Very low latency speech to text, intent recognition, and text to speech, for building voice agents and interfaces
This report summarizes scanner evidence for moonshine-ai/moonshine, a C++ project with 11,210 GitHub stars. SynthScan examined 527,139 lines of code across 1784 source files, recording 3186 pattern matches distributed across 22 syntactic categories. The legacy adjusted pattern signal is 6.3 (Moderate 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? 2761 finding(s).
Are imports declared and package/API names verified? 128 finding(s).
Are wrappers, guards, and repeated structures necessary? 532 finding(s).
Which changes need focused human review? 3186 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 3186 distinct pattern matches across 22 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 | micro/CMakeLists.txt | 1 | # moonshine-micro -- on-device spelling recognition for the Raspberry Pi Pico 2 | COMMENT |
| LOW | micro/CMakeLists.txt | 21 | # Builds one .uf2 per app under build/examples/rp2350/: | COMMENT |
| LOW | micro/CMakeLists.txt | 101 | COMMENT | |
| LOW | micro/feature-generation/CMakeLists.txt | 1 | # feature-generation -- portable log-mel front-end (batch + streaming). | COMMENT |
| LOW | …ration/include/feature_generation/feature_generation.h | 1 | // feature-generation -- portable, heap-free log-mel spectrogram front-end. | COMMENT |
| LOW | …ration/include/feature_generation/feature_generation.h | 21 | // on fatal misconfiguration). No app, VAD, or STT dependencies -- so the module | COMMENT |
| LOW | …ration/include/feature_generation/feature_generation.h | 141 | // Active views: either the precomputed flash arrays or the *_storage_ | COMMENT |
| LOW | micro/feature-generation/src/fft_scratch.h | 1 | // Shared FFT scratch pool for the on-device log-mel front-ends. | COMMENT |
| LOW | micro/stt-training/requirements.txt | 1 | # Python dependencies for the moonshine-micro STT training recipe. | COMMENT |
| LOW | micro/stt-training/words.txt | 1 | # Robot command vocabulary -- the ONLY file you normally need to edit. | COMMENT |
| LOW | micro/neural-tts/host/CMakeLists.txt | 1 | # Native (desktop) build of the on-device neural TTS engine. | COMMENT |
| LOW | micro/neural-tts/host/tflm_ref/host_platform.cpp | 1 | // Host (desktop) implementations of the TFLM platform hooks the RP2350 build | COMMENT |
| LOW | micro/neural-tts/host/tflm_ref/transpose_conv.cpp | 21 | #include "tensorflow/lite/c/builtin_op_data.h" | COMMENT |
| LOW | micro/neural-tts/host/tflm_ref/conv.cpp | 21 | // reusing conv_common.cpp's ConvInit / ConvPrepare so the Prepare-stage | COMMENT |
| LOW | micro/neural-tts/host/tflm_ref/add.cpp | 21 | #include "tensorflow/lite/c/common.h" | COMMENT |
| LOW | micro/neural-tts/include/neural_tts/neural_tts.h | 1 | // neural_tts -- black-box text-to-speech for the RP2350. | COMMENT |
| LOW | micro/neural-tts/include/neural_tts/neural_tts.h | 21 | // | COMMENT |
| LOW | micro/neural-tts/include/neural_tts/pack_format.h | 1 | // Binary layout of the neural-TTS flash pack, mirroring | COMMENT |
| LOW | micro/neural-tts/include/neural_tts/pack_format.h | 21 | COMMENT | |
| LOW | micro/neural-tts/include/neural_tts/pb_decoder.h | 1 | // TFLM wrapper for the Phase B RVQ decoder (s16x8: int16 activations, | COMMENT |
| LOW | micro/neural-tts/include/neural_tts/pb_decoder.h | 61 | static void GetFrameThunk(void* user, int t, WorldFrame* frame); | COMMENT |
| LOW | micro/neural-tts/include/neural_tts/worldlite_synth.h | 1 | // WORLD-lite vocoder synthesis (float32, kissfft) for the RP2350. | COMMENT |
| LOW | micro/klatt-tts/include/tts/synth_internal.h | 1 | // Shared internals for the batch (synth.cc) and streaming (synth_stream.cc) | COMMENT |
| LOW | micro/klatt-tts/include/tts/tts.h | 1 | // tts -- portable, dependency-free formant (Klatt-style) text-to-speech. | COMMENT |
| LOW | micro/klatt-tts/include/tts/tts.h | 21 | // float buf[256]; | COMMENT |
| LOW | micro/klatt-tts/include/tts/config.h | 1 | // Externalized, tunable voice parameters. | COMMENT |
| LOW | micro/klatt-tts/include/tts/config.h | 41 | // --- Legacy Rosenberg pulse shape (fractions of a pitch period) --- | COMMENT |
| LOW | micro/klatt-tts/include/tts/config.h | 61 | // single 0..1 control, but they are independently tunable (e.g. raise pitch | COMMENT |
| LOW | micro/klatt-tts/include/tts/phonemes.h | 1 | // English phoneme inventory for the formant synthesizer. | COMMENT |
| LOW | micro/klatt-tts/include/tts/synth_stream.h | 1 | // Streaming, caller-arena formant synthesizer for the RP2350 (and desktop). | COMMENT |
| LOW | micro/klatt-tts/include/tts/synth_stream.h | 21 | #ifndef TTS_SYNTH_STREAM_H_ | COMMENT |
| LOW | micro/klatt-tts/include/tts/klatt.h | 1 | // Klatt-style cascade formant synthesizer (simplified). | COMMENT |
| LOW | micro/klatt-tts/include/tts/klatt.h | 81 | // Cycle-to-cycle micro-perturbations applied once per glottal period: jitter | COMMENT |
| LOW | micro/g2p/include/g2p/g2p_dict.h | 1 | // Baked common-word pronunciation dictionary + runtime override table. | COMMENT |
| LOW | micro/g2p/include/g2p/g2p.h | 1 | // English grapheme-to-phoneme front end. | COMMENT |
| LOW | micro/g2p/include/g2p/g2p.h | 21 | #include <vector> | COMMENT |
| LOW | micro/g2p/src/g2p_dict_data.h | 1 | // AUTO-GENERATED by tools/build_g2p_dict.py -- do not edit by hand. | COMMENT |
| LOW | micro/g2p/src/g2p_rules.h | 1 | // Rule-based English letter-to-sound (grapheme -> IPA). | COMMENT |
| LOW | micro/g2p/src/g2p_numbers.h | 1 | // English number-token normalization (numeral -> IPA). | COMMENT |
| LOW | micro/examples/rp2350/CMakeLists.txt | 1 | # examples/rp2350 -- the RP2350 (Raspberry Pi Pico 2) firmware that ties the | COMMENT |
| LOW | micro/examples/rp2350/CMakeLists.txt | 181 | # target. Shared by both WiFi apps (USB-bridge audio and on-board hardware | COMMENT |
| LOW | micro/examples/rp2350/lwipopts.h | 1 | // Minimal lwIP configuration for the voice WiFi-setup app (moonshine_micro_echo_wifi). | COMMENT |
| LOW | micro/examples/rp2350/lwipopts.h | 21 | #define LWIP_SOCKET 0 | COMMENT |
| LOW | micro/examples/rp2350/lwipopts.h | 41 | #define LWIP_ICMP 1 | COMMENT |
| LOW | micro/examples/rp2350/lwipopts.h | 61 | #define MEM_STATS 0 | COMMENT |
| LOW | micro/examples/rp2350/scripts/flash.sh | 1 | #!/usr/bin/env bash | COMMENT |
| LOW | micro/examples/rp2350/scripts/flash.sh | 21 | # Build directory: | COMMENT |
| LOW | micro/examples/rp2350/scripts/flash.sh | 41 | # first. The RP2350 bootrom usually labels its mass-storage volume | COMMENT |
| LOW | micro/examples/rp2350/scripts/build.sh | 1 | #!/usr/bin/env bash | COMMENT |
| LOW | micro/examples/rp2350/scripts/build.sh | 21 | # configure step (e.g. -DSPELLING_TINY_VAD=ON). | COMMENT |
| LOW | micro/examples/rp2350/scripts/monitor.sh | 1 | #!/usr/bin/env bash | COMMENT |
| LOW | micro/examples/rp2350/scripts/monitor.sh | 21 | # /dev/tty.usbmodem* - "modem callin" device. open() blocks until | COMMENT |
| LOW | micro/examples/rp2350/scripts/monitor.sh | 41 | # - Polls for /dev/cu.usbmodem* until it appears (or honors an | COMMENT |
| LOW | micro/examples/rp2350/scripts/monitor.sh | 61 | # moonshine-micro/examples/rp2350/scripts/monitor.sh /dev/cu.usbmodem1101 | COMMENT |
| LOW | micro/examples/rp2350/src/i2s_audio_out.h | 1 | // I2S speaker output for the on-board echo service (MAX98357A / Adafruit 3006). | COMMENT |
| LOW | micro/examples/rp2350/src/audio_service.h | 1 | // Live USB audio service: turns the laptop into the RP2350's mic + speaker. | COMMENT |
| LOW | micro/examples/rp2350/src/audio_service.h | 41 | // front-align the 1 s clip into `window`, classify it with the SpellingCNN, and | COMMENT |
| LOW | micro/examples/rp2350/src/wifi_hardware_app.h | 1 | // Voice-driven WiFi setup on the on-board hardware audio I/O (I2S mic + I2S | COMMENT |
| LOW | micro/examples/rp2350/src/test_app.h | 1 | // The embedded-clip accuracy sweep (the moonshine_micro_echo_test target): run | COMMENT |
| LOW | micro/examples/rp2350/src/op_profiler.h | 1 | // Lightweight per-op profiler for the moonshine-micro SpellingCNN build. | COMMENT |
| 2295 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| MEDIUM | micro/CMakeLists.txt | 35 | # =========================================================================== | COMMENT |
| MEDIUM | micro/CMakeLists.txt | 37 | # =========================================================================== | COMMENT |
| MEDIUM | micro/CMakeLists.txt | 68 | # =========================================================================== | COMMENT |
| MEDIUM | micro/CMakeLists.txt | 70 | # =========================================================================== | COMMENT |
| MEDIUM | micro/stt-training/tools/mine_peoples_speech.py | 66 | # -------------------------------------------------------------------------- | COMMENT |
| MEDIUM | micro/stt-training/tools/mine_peoples_speech.py | 68 | # -------------------------------------------------------------------------- | COMMENT |
| MEDIUM | micro/stt-training/tools/mine_peoples_speech.py | 184 | # -------------------------------------------------------------------------- | COMMENT |
| MEDIUM | micro/stt-training/tools/mine_peoples_speech.py | 186 | # -------------------------------------------------------------------------- | COMMENT |
| MEDIUM | micro/neural-tts/host/CMakeLists.txt | 31 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM | micro/neural-tts/host/CMakeLists.txt | 33 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM⚡ | micro/neural-tts/host/CMakeLists.txt | 104 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM⚡ | micro/neural-tts/host/CMakeLists.txt | 106 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM⚡ | micro/neural-tts/host/CMakeLists.txt | 114 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM⚡ | micro/neural-tts/host/CMakeLists.txt | 117 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM | micro/klatt-tts/include/tts/klatt.h | 13 | // aspiration noise ─────────────────────┘ │ | COMMENT |
| MEDIUM | micro/klatt-tts/include/tts/klatt.h | 17 | // frication noise ► [highpass] ► R_fric ──────────┴──► output | COMMENT |
| MEDIUM | micro/examples/rp2350/CMakeLists.txt | 25 | # ---------------------------------------------------------------------------- | COMMENT |
| MEDIUM | micro/examples/rp2350/CMakeLists.txt | 216 | # ---------------------------------------------------------------------------- | COMMENT |
| MEDIUM | micro/examples/rp2350/CMakeLists.txt | 225 | # ---------------------------------------------------------------------------- | COMMENT |
| MEDIUM | micro/examples/rp2350/CMakeLists.txt | 239 | # ---------------------------------------------------------------------------- | COMMENT |
| MEDIUM | micro/examples/rp2350/CMakeLists.txt | 269 | # ---------------------------------------------------------------------------- | COMMENT |
| MEDIUM | micro/examples/rp2350/CMakeLists.txt | 307 | # ---------------------------------------------------------------------------- | COMMENT |
| MEDIUM | micro/examples/rp2350/CMakeLists.txt | 335 | # ---------------------------------------------------------------------------- | COMMENT |
| MEDIUM | micro/examples/rp2350/CMakeLists.txt | 383 | # ---------------------------------------------------------------------------- | COMMENT |
| MEDIUM | micro/examples/rp2350/CMakeLists.txt | 415 | # ---------------------------------------------------------------------------- | COMMENT |
| MEDIUM | micro/examples/rp2350/CMakeLists.txt | 445 | # ---------------------------------------------------------------------------- | COMMENT |
| MEDIUM | micro/examples/rp2350/CMakeLists.txt | 500 | # ---------------------------------------------------------------------------- | COMMENT |
| MEDIUM | micro/examples/rp2350/CMakeLists.txt | 705 | # ---------------------------------------------------------------------------- | COMMENT |
| MEDIUM | micro/examples/rp2350/CMakeLists.txt | 746 | # ---------------------------------------------------------------------------- | COMMENT |
| MEDIUM | micro/examples/rp2350/CMakeLists.txt | 784 | # ---------------------------------------------------------------------------- | COMMENT |
| MEDIUM | micro/third-party/pico-tflmicro/CMakeLists_template.txt | 14 | # ==================================================================================== | COMMENT |
| MEDIUM | micro/third-party/pico-tflmicro/sync/create_tests.py | 16 | # ============================================================================== | COMMENT |
| MEDIUM | …cro/third-party/pico-tflmicro/sync/transform_source.py | 15 | # ============================================================================== | COMMENT |
| MEDIUM | …ird-party/pico-tflmicro/sync/fix_arduino_subfolders.py | 15 | # ============================================================================== | COMMENT |
| MEDIUM | …/third-party/pico-tflmicro/sync/create_tflm_arduino.py | 15 | # ============================================================================== | COMMENT |
| MEDIUM | micro/stt/scripts/generate_embedded_data.py | 225 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM | examples/python/agent_flow.py | 25 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM | examples/python/agent_flow.py | 27 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM | examples/python/agent_flow.py | 81 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM | examples/python/agent_flow.py | 83 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM | examples/python/agent_flow.py | 137 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM | examples/python/agent_flow.py | 139 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM | examples/python/agent_flow.py | 174 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM | examples/python/agent_flow.py | 176 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM | examples/python/agent_flow.py | 209 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM | examples/python/agent_flow.py | 211 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM | examples/python/agent_flow.py | 241 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM | examples/python/agent_flow.py | 243 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM | scripts/start-candidate.sh | 3 | # ============================================================================= | COMMENT |
| MEDIUM | scripts/start-candidate.sh | 5 | # ============================================================================= | COMMENT |
| MEDIUM⚡ | scripts/start-candidate.sh | 45 | # ============================================================================= | COMMENT |
| MEDIUM⚡ | scripts/start-candidate.sh | 47 | # ============================================================================= | COMMENT |
| MEDIUM | scripts/reliability-remote.sh | 108 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM | scripts/reliability-remote.sh | 111 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM | scripts/reliability-remote.sh | 157 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM | scripts/reliability-remote.sh | 159 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM | scripts/reliability-remote.sh | 180 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM | scripts/reliability-remote.sh | 182 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM | scripts/reliability-remote.sh | 327 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM | scripts/reliability-remote.sh | 329 | # --------------------------------------------------------------------------- | COMMENT |
| 90 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | micro/stt-training/stt_training/checkpoint.py | 61 | def load_representative_waveforms( | CODE |
| LOW | micro/stt-training/stt_training/export.py | 197 | def _default_calibration_roots(args: argparse.Namespace) -> list[str]: | CODE |
| LOW | micro/stt-training/stt_training/dataset.py | 120 | def speaker_independent_split( | CODE |
| LOW | micro/stt-training/stt_training/dataset.py | 142 | def build_class_balanced_sampler( | CODE |
| LOW | …cro/third-party/pico-tflmicro/sync/transform_source.py | 73 | def add_example_ino_library_include(input_text): | CODE |
| LOW | …cro/third-party/pico-tflmicro/sync/transform_source.py | 79 | def replace_arduino_example_includes(line, _): | CODE |
| LOW | …cro/third-party/pico-tflmicro/sync/transform_source.py | 93 | def replace_esp_example_includes(line, source_path): | CODE |
| LOW | …cro/third-party/pico-tflmicro/sync/transform_source.py | 110 | def transform_arduino_sources(input_lines, flags): | CODE |
| LOW | …ird-party/pico-tflmicro/sync/fix_arduino_subfolders.py | 29 | def rename_example_subfolder_files(library_dir): | CODE |
| LOW | …/third-party/pico-tflmicro/sync/create_tflm_arduino.py | 75 | def _remove_empty_directories_recursive(paths: Iterable[Path], | CODE |
| LOW | …/third-party/pico-tflmicro/sync/create_tflm_arduino.py | 281 | def _create_output_directories( | CODE |
| LOW | …/third-party/pico-tflmicro/sync/create_tflm_arduino.py | 421 | def _generate_base_paths_relative( | CODE |
| LOW | …/third-party/pico-tflmicro/sync/create_tflm_arduino.py | 474 | def _generate_repo_paths_relative( | CODE |
| LOW | …/third-party/pico-tflmicro/sync/create_tflm_arduino.py | 511 | def _remove_empty_directories(self) -> None: | CODE |
| LOW | examples/python/basic_transcription.py | 16 | def transcribe_without_streaming( | CODE |
| LOW | examples/python/basic_transcription.py | 30 | def transcribe_with_streaming( | CODE |
| LOW | examples/web/assets/moonshine-ui.js | 244 | export async function purgeModelCacheIfRequested() { | CODE |
| LOW | examples/web/assets/moonshine-ui.js | 461 | export function setPreferredSnippetLanguage(language) { | CODE |
| LOW | examples/web/assets/moonshine-ui.js | 489 | export function setPreferredAudioDeviceId(deviceId) { | CODE |
| LOW | examples/web/assets/moonshine-ui.js | 538 | export async function preferredAudioDeviceLabel() { | CODE |
| LOW | scripts/check-ort-weight-storage.py | 52 | def initializer_bytes_by_dtype(path: Path) -> dict[str, int]: | CODE |
| LOW | scripts/eval-alphanumeric.py | 46 | def folder_name_to_expected_char(name: str, matcher: AlphanumericMatcher) -> str: | CODE |
| LOW | scripts/tts_g2p_intelligibility.py | 226 | def moonshine_tag_to_wikipedia_lang(tag: str) -> Optional[str]: | CODE |
| LOW | scripts/tts_g2p_intelligibility.py | 238 | def moonshine_tag_to_whisper_language(tag: str) -> Optional[str]: | CODE |
| LOW | scripts/tts_g2p_intelligibility.py | 250 | def moonshine_tag_to_upstream_kokoro_lang_code(tag: str) -> Optional[str]: | CODE |
| LOW | scripts/tts_g2p_intelligibility.py | 325 | def _wiki_max_graphemes_for_moonshine_tag(tag: Optional[str], base_max: int = 450) -> int: | CODE |
| LOW | scripts/tts_g2p_intelligibility.py | 360 | def _split_oversized_wiki_piece( | CODE |
| LOW | scripts/tts_g2p_intelligibility.py | 446 | def wikipedia_paragraph_to_candidates( | CODE |
| LOW | scripts/tts_g2p_intelligibility.py | 486 | def _parse_datasets_version_tuple(version: str) -> Tuple[int, int, int]: | CODE |
| LOW | scripts/tts_g2p_intelligibility.py | 506 | def require_datasets_compatible_with_python() -> None: | CODE |
| LOW | scripts/tts_g2p_intelligibility.py | 569 | def _prefers_natural_wikipedia_prose_for_tag(tag: Optional[str]) -> bool: | CODE |
| LOW | scripts/tts_g2p_intelligibility.py | 576 | def _german_wikipedia_lead_penalty(line: str) -> int: | CODE |
| LOW | scripts/tts_g2p_intelligibility.py | 655 | def fetch_lines_for_moonshine_language( | CODE |
| LOW | scripts/tts_g2p_intelligibility.py | 672 | def all_moonshine_tts_language_tags() -> List[str]: | CODE |
| LOW | scripts/tts_g2p_intelligibility.py | 754 | def _tts_track_to_engine_slug(track: str) -> str: | CODE |
| LOW | scripts/tts_g2p_intelligibility.py | 766 | def _tts_sentence_prefix_for_cache(text: str, max_chars: int = 12) -> str: | CODE |
| LOW | scripts/tts_g2p_intelligibility.py | 785 | def _tts_cache_wav_and_meta_paths(root: Path, lang: str, stem: str) -> Tuple[Path, Path]: | CODE |
| LOW | scripts/tts_g2p_intelligibility.py | 955 | def overlay_repo_tts_data_into_asset_root( | CODE |
| LOW | scripts/tts_g2p_intelligibility.py | 989 | def _kokoro_ja_text_for_misaki_cutlet(text: str) -> str: | CODE |
| LOW | scripts/tts_g2p_intelligibility.py | 995 | def moonshine_kokoro_catalog_voice_to_package_voice(catalog_id: str) -> str: | CODE |
| LOW | scripts/tts_g2p_intelligibility.py | 1023 | def ensure_piper_espeak_phonemizer_uses_nfc_for_eval() -> None: | CODE |
| LOW | scripts/tts_g2p_intelligibility.py | 1094 | def build_upstream_kokoro_pipeline( | CODE |
| LOW | scripts/tts_g2p_intelligibility.py | 1112 | def synthesize_upstream_kokoro_package( | CODE |
| LOW | scripts/tts_g2p_intelligibility.py | 1144 | def synthesize_upstream_piper_package( | CODE |
| LOW | scripts/tts_g2p_intelligibility.py | 1518 | def _reference_cer_from_upstream_averages( | CODE |
| LOW | scripts/tts_g2p_intelligibility.py | 1532 | def format_cer_summary_markdown_table( | CODE |
| LOW | language-bindings/python/tests/test_import_isolation.py | 18 | def test_inference_import_does_not_load_requests(): | STRING |
| LOW | language-bindings/python/tests/test_agent_flow_api.py | 23 | def test_otherwise_receives_speech_that_matched_nothing(agent): | CODE |
| LOW | language-bindings/python/tests/test_agent_flow_api.py | 31 | def test_otherwise_does_not_see_triggers_or_answers(agent): | CODE |
| LOW | language-bindings/python/tests/test_agent_flow_api.py | 51 | def test_the_built_in_cancel_stops_the_active_flow(agent): | CODE |
| LOW | language-bindings/python/tests/test_agent_flow_api.py | 69 | def test_the_built_in_start_over_restarts_the_active_flow(agent): | CODE |
| LOW | language-bindings/python/tests/test_agent_flow_api.py | 86 | def test_the_built_in_globals_do_not_claim_speech_outside_a_flow(agent): | CODE |
| LOW | language-bindings/python/tests/test_agent_flow_api.py | 102 | def test_registering_a_built_in_phrase_with_always_makes_it_live(agent): | CODE |
| LOW | language-bindings/python/tests/test_agent_flow_api.py | 114 | def test_otherwise_silences_the_didnt_get_that_cue(agent): | CODE |
| LOW⚡ | language-bindings/python/tests/test_agent_flow_api.py | 126 | def test_otherwise_returns_the_agent_for_chaining(agent): | CODE |
| LOW⚡ | language-bindings/python/tests/test_agent_flow_api.py | 130 | def test_a_failing_otherwise_handler_is_reported_not_raised(agent): | CODE |
| LOW⚡ | language-bindings/python/tests/test_agent_flow_api.py | 140 | def test_say_stream_speaks_the_pieces_a_flow_yields(agent): | CODE |
| LOW | language-bindings/python/tests/test_agent_flow_api.py | 153 | def test_a_failing_say_stream_source_is_reported_not_raised(agent): | CODE |
| LOW | language-bindings/python/tests/test_agent_flow_api.py | 172 | def test_say_stream_outside_a_flow_speaks_as_one_utterance(agent): | CODE |
| LOW | language-bindings/python/tests/test_lora_isolation.py | 26 | def test_inference_import_does_not_load_training_stack(): | STRING |
| 172 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| HIGH | micro/stt-training/tools/mine_peoples_speech.py | 126 | except Exception: # noqa: BLE001 | CODE |
| HIGH | micro/stt-training/tools/synthesize.py | 71 | except Exception: # noqa: BLE001 - fall back to the baked-in list | CODE |
| HIGH | micro/examples/rp2350/scripts/usb_audio_bridge.py | 96 | except termios.error: | CODE |
| HIGH | micro/examples/rp2350/scripts/usb_audio_bridge.py | 416 | except KeyboardInterrupt: | CODE |
| HIGH | micro/examples/rp2350/scripts/usb_audio_bridge.py | 212 | except queue.Full: | CODE |
| HIGH | micro/examples/rp2350/scripts/usb_audio_bridge.py | 264 | except queue.Empty: | CODE |
| HIGH | micro/examples/rp2350/scripts/usb_audio_bridge.py | 308 | except OSError: | CODE |
| HIGH | micro/examples/rp2350/scripts/usb_audio_bridge.py | 331 | except (IndexError, ValueError): | CODE |
| HIGH | micro/examples/rp2350/scripts/capture_stt.py | 66 | except termios.error: | CODE |
| HIGH | examples/python/mic_transcription.py | 60 | except KeyboardInterrupt: | CODE |
| HIGH | examples/python/ollama-voice/ollama_voice.py | 150 | except KeyboardInterrupt: | CODE |
| HIGH | scripts/export-decoder-with-attention.py | 137 | except (IndexError, ValueError): | CODE |
| HIGH | scripts/eval-librispeech.py | 723 | except ImportError: | CODE |
| HIGH | scripts/export_zipvoice_voices_for_cpp.py | 173 | except Exception: | CODE |
| HIGH | language-bindings/python/tests/test_docs.py | 195 | except SyntaxError: | CODE |
| HIGH | …bindings/python/src/moonshine_voice/mic_transcriber.py | 634 | except KeyboardInterrupt: | CODE |
| HIGH | …age-bindings/python/src/moonshine_voice/transcriber.py | 743 | except Exception: | CODE |
| HIGH | …age-bindings/python/src/moonshine_voice/transcriber.py | 741 | except Exception: | CODE |
| HIGH | language-bindings/python/src/moonshine_voice/tts.py | 352 | except (IndexError, KeyError, TypeError): | CODE |
| HIGH | language-bindings/python/src/moonshine_voice/tts.py | 1776 | except Exception: | CODE |
| HIGH | language-bindings/python/src/moonshine_voice/tts.py | 1045 | except (IndexError, KeyError, TypeError): | CODE |
| HIGH | …uage-bindings/python/src/moonshine_voice/agent_flow.py | 1727 | except Exception: | CODE |
| HIGH | …uage-bindings/python/src/moonshine_voice/agent_flow.py | 2397 | except Exception: | CODE |
| HIGH | …uage-bindings/python/src/moonshine_voice/agent_flow.py | 2462 | except Exception: | CODE |
| HIGH | …uage-bindings/python/src/moonshine_voice/agent_flow.py | 2418 | except Exception: | CODE |
| HIGH | language-bindings/python/src/moonshine_voice/cli.py | 67 | except ImportError: # pragma: no cover - Python < 3.8 has no importlib.metadata | CODE |
| HIGH | language-bindings/python/src/moonshine_voice/cli.py | 65 | except PackageNotFoundError: | CODE |
| HIGH | …gs/python/src/moonshine_voice/alphanumeric_listener.py | 1093 | except KeyboardInterrupt: | CODE |
| HIGH | language-bindings/python/src/moonshine_voice/g2p.py | 163 | except (AttributeError, ValueError): | CODE |
| HIGH | language-bindings/python/src/moonshine_voice/g2p.py | 114 | except Exception: | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | micro/stt-training/tools/mine_peoples_speech.py | 32 | CODE | |
| LOW | micro/stt-training/tools/synthesize.py | 19 | CODE | |
| LOW | micro/stt-training/tools/download_musan_rirs.py | 20 | CODE | |
| LOW | micro/stt-training/tools/extract_clips.py | 21 | CODE | |
| LOW | micro/stt-training/stt_training/checkpoint.py | 3 | CODE | |
| LOW | micro/stt-training/stt_training/__init__.py | 12 | CODE | |
| LOW | micro/stt-training/stt_training/__init__.py | 12 | CODE | |
| LOW | micro/stt-training/stt_training/__init__.py | 12 | CODE | |
| LOW | micro/stt-training/stt_training/__init__.py | 12 | CODE | |
| LOW | micro/stt-training/stt_training/features.py | 8 | CODE | |
| LOW | micro/stt-training/stt_training/export.py | 24 | CODE | |
| LOW | micro/stt-training/stt_training/augment.py | 12 | CODE | |
| LOW | micro/stt-training/stt_training/augment.py | 18 | CODE | |
| LOW | micro/stt-training/stt_training/model.py | 9 | CODE | |
| LOW | micro/stt-training/stt_training/model.py | 14 | CODE | |
| LOW | micro/stt-training/stt_training/dataset.py | 8 | CODE | |
| LOW | micro/stt-training/stt_training/train.py | 14 | CODE | |
| LOW | micro/stt-training/stt_training/words.py | 7 | CODE | |
| LOW | micro/stt-training/stt_training/evaluate.py | 14 | CODE | |
| LOW | micro/examples/rp2350/scripts/usb_audio_bridge.py | 30 | CODE | |
| LOW | micro/examples/rp2350/scripts/usb_audio_bridge.py | 36 | CODE | |
| LOW | micro/examples/rp2350/scripts/usb_audio_bridge.py | 219 | CODE | |
| LOW | …examples/rp2350/scripts/generate_speaker_test_clips.py | 11 | CODE | |
| LOW | micro/examples/rp2350/scripts/capture_neural_tts.py | 11 | CODE | |
| LOW | micro/examples/rp2350/scripts/capture_stt.py | 25 | CODE | |
| LOW | micro/third-party/pico-tflmicro/sync/create_tests.py | 19 | CODE | |
| LOW | micro/third-party/pico-tflmicro/sync/create_tests.py | 20 | CODE | |
| LOW | micro/third-party/pico-tflmicro/sync/create_tests.py | 21 | CODE | |
| LOW | …cro/third-party/pico-tflmicro/sync/transform_source.py | 21 | CODE | |
| LOW | …cro/third-party/pico-tflmicro/sync/transform_source.py | 22 | CODE | |
| LOW | …cro/third-party/pico-tflmicro/sync/transform_source.py | 23 | CODE | |
| LOW | …ird-party/pico-tflmicro/sync/fix_arduino_subfolders.py | 18 | CODE | |
| LOW | …ird-party/pico-tflmicro/sync/fix_arduino_subfolders.py | 19 | CODE | |
| LOW | …ird-party/pico-tflmicro/sync/fix_arduino_subfolders.py | 20 | CODE | |
| LOW | micro/vad/scripts/generate_vad_embedded_data.py | 23 | CODE | |
| LOW | micro/vad/scripts/generate_vad_embedded_data.py | 26 | CODE | |
| LOW | micro/stt/scripts/desktop_parity.py | 21 | CODE | |
| LOW | micro/stt/scripts/desktop_parity.py | 25 | CODE | |
| LOW | micro/stt/scripts/generate_embedded_data.py | 32 | CODE | |
| LOW | micro/stt/scripts/generate_embedded_data.py | 36 | CODE | |
| LOW | examples/python/finetune/publish_uwb_splits.py | 7 | CODE | |
| LOW | scripts/piper-stream-prototype.py | 39 | CODE | |
| LOW | scripts/split-kokoro-stages.py | 31 | CODE | |
| LOW | scripts/zipvoice-chunk-cost.py | 29 | CODE | |
| LOW | scripts/check-ort-weight-storage.py | 15 | CODE | |
| LOW | scripts/kokoro-stream-timing.py | 25 | CODE | |
| LOW | scripts/split-piper-stages.py | 33 | CODE | |
| LOW | scripts/build-cached-embeddings.py | 21 | CODE | |
| LOW | scripts/split-model-weights.py | 26 | CODE | |
| LOW | scripts/convert_tokenizer.py | 24 | CODE | |
| LOW | scripts/kokoro-stream-prototype.py | 91 | CODE | |
| LOW | scripts/check-ep-partitioning.py | 29 | CODE | |
| LOW | scripts/build-piper-stages.py | 25 | CODE | |
| LOW | scripts/generate-diarization-test-audio.py | 14 | CODE | |
| LOW | scripts/generate-diarization-test-audio.py | 18 | CODE | |
| LOW | scripts/convert-models-to-ort.py | 49 | CODE | |
| LOW | scripts/eval-model-accuracy.py | 16 | CODE | |
| LOW | scripts/eval-model-accuracy.py | 21 | CODE | |
| LOW | scripts/eval-model-accuracy.py | 22 | CODE | |
| LOW | scripts/eval-model-accuracy.py | 24 | CODE | |
| 62 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | micro/stt-training/tools/mine_peoples_speech.py | 114 | except Exception as exc: # noqa: BLE001 | CODE |
| LOW | micro/stt-training/tools/mine_peoples_speech.py | 126 | except Exception: # noqa: BLE001 | CODE |
| LOW | micro/stt-training/tools/mine_peoples_speech.py | 168 | except Exception: # noqa: BLE001 | CODE |
| LOW | micro/stt-training/tools/synthesize.py | 71 | except Exception: # noqa: BLE001 - fall back to the baked-in list | CODE |
| LOW | micro/stt-training/tools/synthesize.py | 158 | except Exception as exc: # noqa: BLE001 | CODE |
| LOW | micro/stt-training/tools/download_musan_rirs.py | 89 | except Exception as exc: # noqa: BLE001 | CODE |
| LOW | micro/stt-training/tools/extract_clips.py | 248 | except Exception: # noqa: BLE001 | CODE |
| LOW | micro/stt-training/tools/extract_clips.py | 298 | except Exception: # noqa: BLE001 | CODE |
| LOW | micro/stt-training/stt_training/checkpoint.py | 76 | except Exception: # noqa: BLE001 | CODE |
| LOW | micro/stt-training/stt_training/augment.py | 93 | except Exception: # noqa: BLE001 | CODE |
| LOW | micro/stt-training/stt_training/augment.py | 119 | except Exception: # noqa: BLE001 | CODE |
| LOW | micro/stt-training/stt_training/dataset.py | 95 | except Exception as exc: # noqa: BLE001 | CODE |
| LOW | micro/examples/rp2350/scripts/usb_audio_bridge.py | 191 | except Exception as exc: # noqa: BLE001 | CODE |
| LOW | micro/examples/rp2350/scripts/usb_audio_bridge.py | 202 | except Exception as exc: # noqa: BLE001 | CODE |
| LOW | micro/examples/rp2350/scripts/usb_audio_bridge.py | 303 | except Exception as exc: # noqa: BLE001 | CODE |
| MEDIUM | micro/examples/rp2350/scripts/usb_audio_bridge.py | 108 | def _fill(self) -> bool: | CODE |
| LOW | scripts/generate-ort-op-config.py | 231 | except Exception as error: # noqa: BLE001 - reported, not swallowed | CODE |
| LOW | scripts/check-ort-weight-storage.py | 105 | except Exception as exc: # noqa: BLE001 - report the file, keep walking | CODE |
| LOW | scripts/list-manifest-assets.py | 99 | except Exception as err: | CODE |
| LOW | scripts/split-piper-stages.py | 418 | except Exception as error: # noqa: BLE001 | CODE |
| LOW | scripts/eval-alphanumeric.py | 221 | except Exception as e: | CODE |
| MEDIUM | scripts/convert_tokenizer.py | 56 | print("Error: sentencepiece package required. Install with: pip install sentencepiece") | CODE |
| MEDIUM | scripts/convert_tokenizer.py | 94 | print("Error: Could not find vocabulary in tokenizer.json") | CODE |
| MEDIUM | scripts/convert_tokenizer.py | 139 | print(f"Error: Input file not found: {input_path}") | CODE |
| MEDIUM | scripts/convert_tokenizer.py | 149 | print(f"Error: Unknown file type: {input_path.suffix}") | CODE |
| LOW | scripts/convert-models-to-ort.py | 191 | except Exception as exc: # noqa: BLE001 - report rather than abort the batch | CODE |
| LOW | scripts/convert-models-to-ort.py | 207 | except Exception as exc: # noqa: BLE001 | CODE |
| MEDIUM | scripts/tts_g2p_intelligibility.py | 477 | def try_import_datasets(): | CODE |
| MEDIUM | scripts/tts_g2p_intelligibility.py | 894 | def try_import_cer(): | CODE |
| LOW | scripts/tts_g2p_intelligibility.py | 678 | except Exception: | CODE |
| LOW | scripts/tts_g2p_intelligibility.py | 721 | except Exception as e: | CODE |
| LOW | scripts/tts_g2p_intelligibility.py | 1108 | except Exception as e: # noqa: BLE001 | CODE |
| LOW | scripts/tts_g2p_intelligibility.py | 1299 | except Exception as e: # noqa: BLE001 | CODE |
| MEDIUM⚡ | scripts/export-decoder-with-attention.py | 70 | print(f"Error: No decoder model found in {model_dir}", file=sys.stderr) | CODE |
| MEDIUM | scripts/export-decoder-with-attention.py | 113 | print("Error: Could not detect encoder_attn Softmax nodes.", file=sys.stderr) | CODE |
| MEDIUM | scripts/export-decoder-with-attention.py | 172 | print("Error: Could not detect cross-attention Softmax nodes.", file=sys.stderr) | CODE |
| LOW | scripts/generate-model-file-metadata.py | 290 | except Exception as exc: # noqa: BLE001 | CODE |
| LOW | scripts/eval-librispeech.py | 732 | except Exception: | CODE |
| MEDIUM | scripts/eval-librispeech.py | 378 | def language_config(language): | CODE |
| LOW | scripts/export_zipvoice_voices_for_cpp.py | 173 | except Exception: | CODE |
| MEDIUM | scripts/export_zipvoice_voices_for_cpp.py | 170 | def close(self): | CODE |
| LOW | …age-bindings/python/src/moonshine_voice/voice_clone.py | 290 | except Exception as e: | CODE |
| LOW | …bindings/python/src/moonshine_voice/mic_transcriber.py | 278 | except Exception as e: | CODE |
| LOW | …bindings/python/src/moonshine_voice/mic_transcriber.py | 427 | except Exception as e: | CODE |
| LOW | …age-bindings/python/src/moonshine_voice/transcriber.py | 589 | except Exception as e: | CODE |
| LOW | …age-bindings/python/src/moonshine_voice/transcriber.py | 727 | except Exception as e: | CODE |
| LOW | …age-bindings/python/src/moonshine_voice/transcriber.py | 741 | except Exception: | CODE |
| LOW | …age-bindings/python/src/moonshine_voice/transcriber.py | 743 | except Exception: | CODE |
| LOW⚡ | …nguage-bindings/python/src/moonshine_voice/download.py | 489 | except Exception: | CODE |
| LOW | …nguage-bindings/python/src/moonshine_voice/download.py | 591 | except Exception as exc: # pragma: no cover - best-effort prefetch | CODE |
| MEDIUM | language-bindings/python/src/moonshine_voice/tts.py | 1773 | def __del__(self) -> None: | CODE |
| LOW | language-bindings/python/src/moonshine_voice/tts.py | 121 | except Exception: | CODE |
| LOW | language-bindings/python/src/moonshine_voice/tts.py | 143 | except Exception: | CODE |
| LOW | language-bindings/python/src/moonshine_voice/tts.py | 290 | except Exception: | CODE |
| LOW | language-bindings/python/src/moonshine_voice/tts.py | 297 | except Exception: | CODE |
| LOW | language-bindings/python/src/moonshine_voice/tts.py | 334 | except Exception: | CODE |
| LOW | language-bindings/python/src/moonshine_voice/tts.py | 338 | except Exception as e: | CODE |
| LOW | language-bindings/python/src/moonshine_voice/tts.py | 971 | except Exception: | CODE |
| LOW | language-bindings/python/src/moonshine_voice/tts.py | 1039 | except Exception: | CODE |
| LOW | language-bindings/python/src/moonshine_voice/tts.py | 1060 | except Exception as e: | CODE |
| 47 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | micro/examples/rp2350/scripts/flash.sh | 5 | # Usage: | COMMENT |
| LOW | micro/examples/rp2350/scripts/build.sh | 14 | # Usage: | COMMENT |
| LOW | micro/examples/rp2350/scripts/monitor.sh | 59 | # Usage: | COMMENT |
| LOW | …co-tflmicro/src/tensorflow/lite/micro/micro_profiler.h | 108 | // Usage example: | COMMENT |
| LOW | core/moonshine-cpp.h | 893 | /// Example usage: | COMMENT |
| LOW | core/moonshine-cpp.h | 1061 | /// Example usage: | COMMENT |
| LOW | scripts/measure-mobile-size.sh | 14 | # Usage: | COMMENT |
| LOW | scripts/test-android.sh | 12 | # Usage: | COMMENT |
| LOW | scripts/check-banned-constructs.sh | 21 | # Usage: | COMMENT |
| LOW | scripts/test-mobile-latency.sh | 9 | # Usage: | COMMENT |
| LOW | scripts/build-android.sh | 15 | # Usage: | COMMENT |
| LOW | scripts/finish-release.sh | 7 | # Usage: | COMMENT |
| LOW | scripts/test-model-downloads.sh | 32 | # Usage: | COMMENT |
| LOW | scripts/tag-hf-voice-assets.sh | 4 | # Usage: | COMMENT |
| LOW | scripts/test-python.sh | 11 | # Usage: | COMMENT |
| LOW | scripts/web-example-archive.sh | 15 | # Usage: | COMMENT |
| LOW | scripts/build-ort-android.sh | 30 | # Usage: | COMMENT |
| LOW | scripts/check-clang-tidy.sh | 16 | # Usage: | COMMENT |
| LOW | scripts/fetch-voice-assets.sh | 14 | # Usage: | COMMENT |
| LOW | scripts/test-examples.sh | 18 | # Usage: | COMMENT |
| LOW | scripts/format-core.sh | 8 | # Usage: | COMMENT |
| LOW⚡ | scripts/start-candidate.sh | 49 | # Usage: | COMMENT |
| LOW | scripts/update-version.sh | 5 | # Usage: | COMMENT |
| LOW | scripts/test-docs.sh | 11 | # Usage: | COMMENT |
| LOW | scripts/gh-upload-retry.sh | 14 | # Usage: | COMMENT |
| LOW | scripts/build-all-platforms.sh | 5 | # Usage: | COMMENT |
| LOW | scripts/reliability.sh | 18 | # Usage: | COMMENT |
| LOW | scripts/preflight-release.sh | 7 | # Usage: | COMMENT |
| LOW | scripts/build-ort-ios.sh | 32 | # Usage: | COMMENT |
| LOW | scripts/windows-vm/create-vm.sh | 14 | # Usage: | COMMENT |
| LOW | scripts/windows-vm/send-keys.sh | 9 | # Usage: | COMMENT |
| LOW | …e-bindings/python/src/moonshine_voice/download_file.py | 289 | # Example usage | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | micro/stt-training/tools/mine_peoples_speech.py | 131 | CODE | |
| LOW | micro/stt-training/tools/mine_peoples_speech.py | 247 | CODE | |
| LOW | micro/stt-training/tools/synthesize.py | 85 | CODE | |
| LOW | micro/stt-training/tools/download_musan_rirs.py | 37 | CODE | |
| LOW | micro/stt-training/tools/download_musan_rirs.py | 67 | CODE | |
| LOW | micro/stt-training/tools/extract_clips.py | 171 | CODE | |
| LOW | micro/stt-training/stt_training/model.py | 146 | CODE | |
| LOW | micro/stt-training/stt_training/train.py | 88 | CODE | |
| LOW | micro/stt-training/stt_training/evaluate.py | 38 | CODE | |
| LOW | micro/examples/rp2350/scripts/usb_audio_bridge.py | 140 | CODE | |
| LOW | micro/examples/rp2350/scripts/usb_audio_bridge.py | 224 | CODE | |
| LOW | micro/examples/rp2350/scripts/usb_audio_bridge.py | 268 | CODE | |
| LOW | micro/examples/rp2350/scripts/capture_stt.py | 117 | CODE | |
| LOW | micro/third-party/pico-tflmicro/sync/create_tests.py | 33 | CODE | |
| LOW | …/third-party/pico-tflmicro/sync/create_tflm_arduino.py | 358 | CODE | |
| LOW | …/third-party/pico-tflmicro/sync/create_tflm_arduino.py | 421 | CODE | |
| LOW | micro/stt/scripts/generate_embedded_data.py | 617 | CODE | |
| LOW | examples/python/ollama-voice/ollama_voice.py | 69 | CODE | |
| LOW | scripts/split-kokoro-stages.py | 109 | CODE | |
| LOW | scripts/split-piper-stages.py | 240 | CODE | |
| LOW | scripts/eval-keyterm-biasing.py | 154 | CODE | |
| LOW | scripts/eval-keyterm-biasing.py | 217 | CODE | |
| LOW | scripts/eval-alphanumeric.py | 138 | CODE | |
| LOW | scripts/make-keyterm-testset.py | 131 | CODE | |
| LOW | scripts/convert_tokenizer.py | 29 | CODE | |
| LOW | scripts/convert-models-to-ort.py | 249 | CODE | |
| LOW | scripts/tts_g2p_intelligibility.py | 360 | CODE | |
| LOW | scripts/tts_g2p_intelligibility.py | 1205 | CODE | |
| LOW | scripts/tts_g2p_intelligibility.py | 1569 | CODE | |
| LOW | scripts/export-decoder-with-attention.py | 33 | CODE | |
| LOW | scripts/generate-model-file-metadata.py | 65 | CODE | |
| LOW | scripts/generate-model-file-metadata.py | 135 | CODE | |
| LOW | language-bindings/python/tests/test_docs.py | 217 | CODE | |
| LOW | …bindings/python/src/moonshine_voice/mic_transcriber.py | 247 | CODE | |
| LOW | …age-bindings/python/src/moonshine_voice/transcriber.py | 232 | CODE | |
| LOW | …age-bindings/python/src/moonshine_voice/transcriber.py | 706 | CODE | |
| LOW | …nguage-bindings/python/src/moonshine_voice/download.py | 730 | CODE | |
| LOW | …nguage-bindings/python/src/moonshine_voice/download.py | 1113 | CODE | |
| LOW | language-bindings/python/src/moonshine_voice/tts.py | 1803 | CODE | |
| LOW | language-bindings/python/src/moonshine_voice/tts.py | 1505 | CODE | |
| LOW | language-bindings/python/src/moonshine_voice/tts.py | 1737 | CODE | |
| LOW | …e-bindings/python/src/moonshine_voice/moonshine_api.py | 208 | CODE | |
| LOW | …e-bindings/python/src/moonshine_voice/moonshine_api.py | 226 | CODE | |
| LOW | …uage-bindings/python/src/moonshine_voice/agent_flow.py | 2335 | CODE | |
| LOW | …uage-bindings/python/src/moonshine_voice/agent_flow.py | 399 | CODE | |
| LOW | …uage-bindings/python/src/moonshine_voice/agent_flow.py | 1616 | CODE | |
| LOW | …uage-bindings/python/src/moonshine_voice/agent_flow.py | 1759 | CODE | |
| LOW | …uage-bindings/python/src/moonshine_voice/agent_flow.py | 1811 | CODE | |
| LOW | …uage-bindings/python/src/moonshine_voice/agent_flow.py | 1830 | CODE | |
| LOW | …uage-bindings/python/src/moonshine_voice/agent_flow.py | 1891 | CODE | |
| LOW | …uage-bindings/python/src/moonshine_voice/agent_flow.py | 2072 | CODE | |
| LOW | language-bindings/python/src/moonshine_voice/utils.py | 50 | CODE | |
| LOW | language-bindings/python/src/moonshine_voice/errors.py | 107 | CODE | |
| LOW | …e-bindings/python/src/moonshine_voice/download_file.py | 94 | CODE | |
| LOW | …gs/python/src/moonshine_voice/alphanumeric_listener.py | 1059 | CODE | |
| LOW | …ge-bindings/python/src/moonshine_voice/lora/adapter.py | 94 | CODE | |
| LOW | …uage-bindings/python/src/moonshine_voice/lora/train.py | 274 | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| MEDIUM | …arty/flatbuffers/include/flatbuffers/vector_downward.h | 34 | // Essentially, this supports 2 std::vectors in a single buffer. | COMMENT |
| MEDIUM | …tflmicro/src/tensorflow/lite/micro/micro_interpreter.h | 144 | // utilize the space. If it's not the case, the optimial arena size would be | COMMENT |
| MEDIUM | …src/tensorflow/lite/micro/kernels/micro_tensor_utils.h | 41 | // TODO(b/230666277): consider removing this since micro does not utilize it | COMMENT |
| MEDIUM | …ensorflow/lite/kernels/internal/optimized/neon_check.h | 18 | // TFLM does not need to utilize any Neon optimizations. | COMMENT |
| MEDIUM | core/third-party/Eigen/src/Core/ConditionEstimator.h | 128 | // added to make the algorithm more robust in certain corner cases where | COMMENT |
| MEDIUM | core/third-party/Eigen/src/Core/arch/SSE/PacketMath.h | 123 | // to leverage AVX instructions. | COMMENT |
| MEDIUM | core/third-party/Eigen/src/Core/arch/SSE/Complex.h | 26 | // to leverage AVX instructions. | COMMENT |
| MEDIUM | core/third-party/Eigen/src/Core/arch/SSE/Complex.h | 194 | // to leverage AVX instructions. | COMMENT |
| MEDIUM | core/third-party/Eigen/src/Core/arch/AVX/PacketMath.h | 56 | // to leverage AVX512 instructions. | COMMENT |
| MEDIUM | core/third-party/Eigen/src/Core/arch/AVX/PacketMath.h | 638 | // NOTE: leverage _mm256_i32gather_ps and _mm256_i32gather_pd if AVX2 instructions are available | COMMENT |
| MEDIUM | core/third-party/Eigen/src/Geometry/AngleAxis.h | 200 | // let's use the robust Quaternion implementation: | COMMENT |
| MEDIUM | scripts/publish-examples.sh | 82 | # Internal latency harness, not a user-facing example (uses in-tree | COMMENT |
| MEDIUM | scripts/test-examples.sh | 735 | # Internal on-device latency harness (scripts/test-mobile-latency.sh); it | COMMENT |
| LOW | scripts/reliability-remote.sh | 410 | # cheap threaded sanity check. Building the whole tree would just add minutes. | COMMENT |
| MEDIUM | scripts/eval-librispeech.py | 801 | # the longest clips. Seeded shuffle matches the internal eval harness. | COMMENT |
| LOW | …age-bindings/python/src/moonshine_voice/transcriber.py | 586 | # transcribe() already calls _notify_from_transcript(), so we just call it | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | micro/examples/rp2350/CMakeLists.txt | 502 | # Step 1: blink the LED, nothing else. | COMMENT |
| LOW | micro/examples/rp2350/CMakeLists.txt | 523 | # Step 2: blinky + one printf per second over USB CDC. | COMMENT |
| LOW | micro/examples/rp2350/CMakeLists.txt | 537 | # Step 3: step 2 + heap probe + kissfft plans + one FFT per tick. | COMMENT |
| LOW | micro/examples/rp2350/CMakeLists.txt | 551 | # Step 4: same code as step 3, but with the TTS app's custom memory | COMMENT |
| LOW | micro/examples/rp2350/CMakeLists.txt | 570 | # Step 5: step 4 + real WorldLiteSynth construction + FFT self-test/tick. | COMMENT |
| LOW | micro/examples/rp2350/CMakeLists.txt | 588 | # Step 6: step 5 + PbDecoder (TFLM) + one tile decode per tick. | COMMENT |
| LOW | micro/examples/rp2350/CMakeLists.txt | 619 | # Step 7: step 6 + full synthesis per utterance, PCM discarded. | COMMENT |
| LOW⚡ | …arty/pico-tflmicro/src/tensorflow/lite/core/c/common.h | 1428 | // NOTE: This function is part of the TensorFlow Lite Extension APIs, see above. | COMMENT |
| LOW⚡ | …arty/pico-tflmicro/src/tensorflow/lite/core/c/common.h | 1434 | // NOTE: This function is part of the TensorFlow Lite Extension APIs, see above. | COMMENT |
| LOW⚡ | …arty/pico-tflmicro/src/tensorflow/lite/core/c/common.h | 1440 | // NOTE: This function is part of the TensorFlow Lite Extension APIs, see above. | COMMENT |
| LOW | …arty/pico-tflmicro/src/tensorflow/lite/core/c/common.h | 1009 | /// NOTE: This function is expected to be paired with ReleaseSubgraphContext() | COMMENT |
| LOW | …arty/pico-tflmicro/src/tensorflow/lite/core/c/common.h | 1020 | /// NOTE: This function is expected to be used after AcquireSubgraphContext() | COMMENT |
| LOW⚡ | core/word-alignment.cpp | 196 | // Step 1: Copy cross_attention_data into a working buffer | COMMENT |
| LOW⚡ | core/word-alignment.cpp | 204 | // Step 2: Z-score normalize per head (along the time/encoder_frames axis) | COMMENT |
| LOW⚡ | core/word-alignment.cpp | 242 | // Step 3: Median filter (width=7) along the last axis | COMMENT |
| LOW⚡ | core/word-alignment.cpp | 248 | // Step 4: Average across all heads/layers -> [n_steps, encoder_frames] | COMMENT |
| LOW | core/word-alignment.cpp | 267 | // Step 5: Run DTW on the negated matrix | COMMENT |
| LOW | core/word-alignment.cpp | 279 | // Step 6: Group tokens into words using SentencePiece word boundaries | COMMENT |
| LOW | core/word-alignment.cpp | 332 | // Step 7: Map DTW alignment to word start/end times | COMMENT |
| LOW | core/word-alignment.cpp | 383 | // Step 8: Fix overlapping word boundaries (snap to midpoint) | COMMENT |
| LOW⚡ | scripts/export-decoder-with-attention.py | 76 | # Step 1: Load the original .ort and save as ONNX | COMMENT |
| LOW⚡ | scripts/export-decoder-with-attention.py | 84 | # Step 2: Modify the ONNX graph to add attention outputs | COMMENT |
| LOW⚡ | scripts/export-decoder-with-attention.py | 194 | # Step 3: Convert to ORT format | COMMENT |
| LOW⚡ | scripts/export-decoder-with-attention.py | 204 | # Step 4: Verify | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| MEDIUM | core/moonshine-tts/CMakeLists.txt | 177 | # ZipVoice zero-shot voice-cloning engine: compiled-in ai.zipvoice custom ops + embedded VCTK | COMMENT |
| MEDIUM | docs/api/classes.md | 231 | A flow is an ordinary Python generator function that takes a [`Dialog`](classes.md#dialog) as its argument and yields pr | CODE |
| MEDIUM | examples/raspberry-pi/my-dalek/my-dalek.py | 36 | # embedding model it downloads and loads for us. These are "globals": one-shot | COMMENT |
| MEDIUM | scripts/eval-speaker-id.py | 14 | # Starting point for v1 of speaker identification (embedding model + | COMMENT |
| MEDIUM | scripts/eval-model-accuracy.py | 131 | # so we can use a lower max tokens per second to avoid hallucinations. | COMMENT |
| MEDIUM | …bindings/python/src/moonshine_voice/embedding_model.py | 58 | # Create the embedding model | COMMENT |
| MEDIUM⚡ | …bindings/python/src/moonshine_voice/embedding_model.py | 77 | # Create embedding model | COMMENT |
| MEDIUM⚡ | …bindings/python/src/moonshine_voice/embedding_model.py | 85 | # Free embedding model | COMMENT |
| MEDIUM | …nguage-bindings/python/src/moonshine_voice/download.py | 40 | # The speech-to-text and embedding model tables used to be duplicated here. They | COMMENT |
| MEDIUM⚡ | …uage-bindings/python/src/moonshine_voice/agent_flow.py | 2330 | # and every trigger / confirmation / choice goes through the embedding model. | COMMENT |
| MEDIUM | …uage-bindings/python/src/moonshine_voice/agent_flow.py | 670 | # utterances) fall through to the embedding model, which | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| MEDIUM | …o/third-party/pico-tflmicro/sync/sync_with_upstream.sh | 22 | # Create the TFLM base tree | COMMENT |
| MEDIUM | …o/third-party/pico-tflmicro/sync/sync_with_upstream.sh | 30 | # Create the final tree in ${ARDUINO_REPO_DIR} using the base tree in ${TFLM_TREE_DIR} | COMMENT |
| MEDIUM | micro/third-party/pico-tflmicro/sync/MANIFEST.ini | 2 | # This file is parsed by the create_tflm_arduino.py script using | COMMENT |
| MEDIUM | micro/third-party/pico-tflmicro/sync/MANIFEST.ini | 11 | # The following sections are required: | COMMENT |
| MEDIUM | scripts/eval-speaker-id.py | 100 | # Create a new transcriber for each sample to avoid remembering previous speaker IDs. | COMMENT |
| MEDIUM | scripts/gh-upload-retry.sh | 31 | # Create the release if it is missing. Pass -R explicitly because callers may | COMMENT |
| MEDIUM | scripts/publish-swift.sh | 73 | # Create the release without assets first, then upload with --clobber. | COMMENT |
| MEDIUM | scripts/publish-binary.sh | 125 | # Create the release if needed and upload with a bounded per-attempt timeout | COMMENT |
| MEDIUM | …bindings/python/src/moonshine_voice/embedding_model.py | 58 | # Create the embedding model | COMMENT |
| MEDIUM | …age-bindings/python/src/moonshine_voice/transcriber.py | 145 | # Create a ctypes array from the options list | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW⚡ | core/word-alignment.cpp | 196 | // Step 1: Copy cross_attention_data into a working buffer | COMMENT |
| LOW⚡ | core/word-alignment.cpp | 204 | // Step 2: Z-score normalize per head (along the time/encoder_frames axis) | COMMENT |
| LOW⚡ | core/word-alignment.cpp | 242 | // Step 3: Median filter (width=7) along the last axis | COMMENT |
| LOW⚡ | core/word-alignment.cpp | 248 | // Step 4: Average across all heads/layers -> [n_steps, encoder_frames] | COMMENT |
| LOW | core/word-alignment.cpp | 267 | // Step 5: Run DTW on the negated matrix | COMMENT |
| LOW | core/word-alignment.cpp | 279 | // Step 6: Group tokens into words using SentencePiece word boundaries | COMMENT |
| LOW | core/word-alignment.cpp | 332 | // Step 7: Map DTW alignment to word start/end times | COMMENT |
| LOW | core/word-alignment.cpp | 383 | // Step 8: Fix overlapping word boundaries (snap to midpoint) | COMMENT |
| LOW⚡ | scripts/export-decoder-with-attention.py | 76 | # Step 1: Load the original .ort and save as ONNX | COMMENT |
| LOW⚡ | scripts/export-decoder-with-attention.py | 84 | # Step 2: Modify the ONNX graph to add attention outputs | COMMENT |
| LOW⚡ | scripts/export-decoder-with-attention.py | 194 | # Step 3: Convert to ORT format | COMMENT |
| LOW⚡ | scripts/export-decoder-with-attention.py | 204 | # Step 4: Verify | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| HIGH | core/third-party/Eigen/src/Core/arch/SSE/PacketMath.h | 547 | // In this implementation, we take advantage of the fact that pmin/pmax for SSE | COMMENT |
| HIGH | core/third-party/Eigen/src/Core/arch/SSE/PacketMath.h | 556 | // In this implementation, we take advantage of the fact that pmin/pmax for SSE | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| HIGH | language-bindings/python/src/moonshine_voice/utils.py | 51 | Load a WAV file and return audio data as float array and sample rate. Supports 16-bit and 24-bit PCM WAV files | STRING |
| HIGH | …e-bindings/python/src/moonshine_voice/download_file.py | 105 | Download a file with progress bar, resume support, and integrity checking. Args: url: URL to download | STRING |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | micro/stt-training/stt_training/__init__.py | 14 | __all__ = [ | CODE |
| LOW | …bindings/python/src/moonshine_voice/mic_transcriber.py | 472 | def set_keyterms(self, keyterms: Optional[Sequence[str]]) -> None: | CODE |
| LOW | …bindings/python/src/moonshine_voice/mic_transcriber.py | 487 | def set_context(self, context: Optional[str], max_terms: int = 0) -> None: | CODE |
| LOW⚡ | …bindings/python/src/moonshine_voice/mic_transcriber.py | 530 | def set_transcribe_flags(self, flags: int) -> None: | CODE |
| LOW | …age-bindings/python/src/moonshine_voice/transcriber.py | 317 | def set_keyterms(self, keyterms: Optional[Sequence[str]]) -> None: | CODE |
| LOW | …age-bindings/python/src/moonshine_voice/transcriber.py | 358 | def set_context(self, context: Optional[str], max_terms: int = 0) -> None: | CODE |
| LOW | …age-bindings/python/src/moonshine_voice/transcriber.py | 562 | def set_transcribe_flags(self, flags: int) -> None: | CODE |
| LOW | …nguage-bindings/python/src/moonshine_voice/__init__.py | 299 | __all__ = [ | CODE |
| LOW | …uage-bindings/python/src/moonshine_voice/agent_flow.py | 1077 | def set_spelling_mode(active: bool) -> None: | CODE |
| LOW | …uage-bindings/python/src/moonshine_voice/agent_flow.py | 1654 | def _set_spelling_mode(self, active: bool) -> None: | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| MEDIUM | core/third-party/Eigen/src/Core/util/SymbolicIndex.h | 19 | * Here is a simple example: | COMMENT |
| MEDIUM | …hird-party/Eigen/src/Core/arch/AltiVec/MatrixProduct.h | 114 | * As mentioned earlier MatrixProduct breaks complex numbers into a real vector and a complex vector so packing has | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | core/moonshine-utils/debug-utils-test.cpp | 71 | "Lorem ipsum dolor sit amet, consectetur adipiscing " | CODE |
| LOW | core/moonshine-utils/debug-utils-test.cpp | 71 | "Lorem ipsum dolor sit amet, consectetur adipiscing " | CODE |
| LOW | examples/web/agent-flow/index.html | 200 | <span class="placeholder"> | CODE |
| LOW | examples/web/stt/index.html | 109 | <span class="placeholder">Your words will appear here.</span> | CODE |
| LOW | examples/web/stt/index.html | 313 | '<span class="placeholder">Your words will appear here.</span>'; | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| HIGH | scripts/generate-model-file-metadata.py | 250 | " if (it != end && it->url == key) {", | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | micro/stt-training/stt_training/features.py | 23 | CODE | |
| LOW | micro/stt-training/stt_training/augment.py | 36 | CODE | |
| LOW | …uage-bindings/python/src/moonshine_voice/lora/train.py | 274 | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | examples/c++/download-library.sh | 29 | # Set MOONSHINE_LIBRARY_ARCHIVE to a moonshine-voice-<platform>.tar.gz you built | COMMENT |
| LOW | scripts/publish-examples.sh | 42 | # Check if the GitHub release exists; create it if missing | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | …rd_party/flatbuffers/include/flatbuffers/flexbuffers.h | 128 | // TODO: implement proper support for 8/16bit floats, or decide not to | COMMENT |