A text-to-speech (TTS), speech-to-text (STT) and speech-to-speech (STS) library built on Apple's MLX framework, providing efficient speech analysis on Apple Silicon.
This report summarizes scanner evidence for Blaizzy/mlx-audio, a Python project with 8,025 GitHub stars. SynthScan examined 244,179 lines of code across 1009 source files, recording 3557 pattern matches distributed across 20 syntactic categories. The legacy adjusted pattern signal is 18.2 (Elevated pattern signal); it is not an authorship estimate.
Use the findings to ask whether maintainers can explain intent, verify dependencies, simplify unnecessary scaffolding, and focus review effort. Risk Payload v1 adds ownership, supply-chain, over-engineering, and review-effort vectors when available. These are prompts for human verification, not probabilities, security findings, or measured maintenance costs.
Use each vector to guide manual verification of the underlying findings.
Can maintainers explain intent, assumptions, and trade-offs? 2121 finding(s).
Are imports declared and package/API names verified? 922 finding(s).
Are wrappers, guards, and repeated structures necessary? 2250 finding(s).
Which changes need focused human review? 3557 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 3557 distinct pattern matches across 20 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 | mlx_audio/server.py | 240 | def _load_model_for_inference(model_name: str): | CODE |
| LOW | mlx_audio/server.py | 444 | def _cancel_disconnected_requests(self) -> None: | CODE |
| LOW | mlx_audio/server.py | 559 | def _can_call_continuous_session(self, model, request: InferenceRequest) -> bool: | CODE |
| LOW | mlx_audio/server.py | 572 | def supports_continuous_batch(self, request: InferenceRequest) -> bool: | CODE |
| LOW | mlx_audio/server.py | 596 | def create_continuous_batch_session(self, request: InferenceRequest): | CODE |
| LOW | mlx_audio/server.py | 870 | async def _stream_inference_results( | CODE |
| LOW | mlx_audio/server.py | 1267 | async def stt_realtime_transcriptions(websocket: WebSocket): | CODE |
| LOW | mlx_audio/server.py | 1505 | def _default_transcription_delay_ms() -> Optional[int]: | CODE |
| LOW | mlx_audio/server.py | 1548 | def _resolve_realtime_model_name(requested_model: Optional[str]) -> Optional[str]: | CODE |
| LOW | mlx_audio/server_inference.py | 76 | def supports_continuous_batch(self, request: InferenceRequest) -> bool: ... | CODE |
| LOW | mlx_audio/server_inference.py | 80 | def create_continuous_batch_session( | CODE |
| LOW | mlx_audio/server_inference.py | 115 | def supports_continuous_batch(self, request: InferenceRequest) -> bool: | CODE |
| LOW | mlx_audio/server_inference.py | 122 | def create_continuous_batch_session( | CODE |
| LOW | mlx_audio/server_inference.py | 315 | def _route_continuous_requests(self, pending: list[InferenceRequest]) -> None: | CODE |
| LOW⚡ | mlx_audio/server_inference.py | 347 | def _step_continuous_sessions(self) -> None: | CODE |
| LOW | mlx_audio/convert.py | 174 | def _discover_detection_hints(domain: str) -> dict: | CODE |
| LOW | mlx_audio/audio_io.py | 39 | def _detect_format_from_bytes(data: bytes) -> str: | CODE |
| LOW | mlx_audio/audio_io.py | 193 | def _decode_miniaudio_downsampled( | CODE |
| LOW | mlx_audio/utils.py | 520 | def random_select_audio_segment(audio, length: int): | CODE |
| LOW | mlx_audio/music/tests/test_generate.py | 13 | def test_parser_exposes_only_music_generation_controls() -> None: | CODE |
| LOW | mlx_audio/music/tests/test_generate.py | 57 | def test_generate_music_joins_results_and_writes_audio(mock_write, tmp_path) -> None: | CODE |
| LOW | mlx_audio/music/tests/test_generate.py | 93 | def test_main_reads_lyrics_file(tmp_path) -> None: | CODE |
| LOW | mlx_audio/music/tests/test_minimax_music3.py | 23 | def test_tiny_generation_returns_finite_stereo_audio() -> None: | CODE |
| LOW | mlx_audio/music/tests/test_minimax_music3.py | 67 | def test_waveform_crops_match_the_official_chunk_stitching() -> None: | CODE |
| LOW | mlx_audio/music/tests/test_minimax_music3.py | 85 | def test_flow_schedule_runs_from_noise_to_data() -> None: | CODE |
| LOW | mlx_audio/music/tests/test_minimax_music3.py | 94 | def test_quantization_policy_targets_only_large_generation_linears() -> None: | CODE |
| LOW | mlx_audio/music/tests/test_minimax_music3.py | 128 | def test_all_mlx_quantization_modes_rebuild_the_same_quantized_topology( | CODE |
| LOW | mlx_audio/music/tests/test_minimax_music3.py | 220 | def _write_official_tiny_tree(source: Path) -> None: | CODE |
| LOW | mlx_audio/music/tests/test_minimax_music3.py | 277 | def test_official_tree_converts_and_loads_in_every_mlx_quantization_mode( | CODE |
| LOW | mlx_audio/music/models/minimax_music3/minimax_music3.py | 78 | def _encode_official_text_pair( | CODE |
| LOW | mlx_audio/music/models/minimax_music3/fusion.py | 19 | def latent_length_from_frames(num_frames: int, config: ModelConfig) -> int: | CODE |
| LOW | mlx_audio/ui/app/speech-to-text/realtime/page.tsx | 10 | export default function RealtimeTranscriptionPage() { | CODE |
| LOW | mlx_audio/lm/generate.py | 92 | def _supports_input_embeddings(model: nn.Module) -> bool: | CODE |
| LOW | mlx_audio/lm/convert.py | 16 | def mixed_quant_predicate_builder(recipe: str, model: nn.Module, group_size: int = 64): | CODE |
| LOW | mlx_audio/lm/sample_utils.py | 301 | def repetition_penalty_processor(tokens, logits): | CODE |
| LOW | mlx_audio/lm/sample_utils.py | 333 | def presence_penalty_processor(tokens, logits): | CODE |
| LOW | mlx_audio/lm/sample_utils.py | 362 | def frequency_penalty_processor(tokens, logits): | CODE |
| LOW | mlx_audio/lm/models/rope_utils.py | 153 | def yarn_find_correction_range(): | CODE |
| LOW | mlx_audio/lm/models/base.py | 64 | def scaled_dot_product_attention( | CODE |
| LOW | mlx_audio/codec/tests/test_moss_audio_tokenizer.py | 58 | def test_parent_config_defaults_to_mono(self): | CODE |
| LOW | mlx_audio/codec/tests/test_moss_audio_tokenizer.py | 72 | def test_import_from_codec_models(self): | CODE |
| LOW | mlx_audio/codec/tests/test_moss_audio_tokenizer.py | 75 | def test_from_pretrained_tiny_tokenizer_encode_decode(self): | CODE |
| LOW | mlx_audio/codec/tests/test_moss_audio_tokenizer.py | 94 | def test_streaming_decoder_matches_offline_without_decoder_modules(self): | CODE |
| LOW | mlx_audio/codec/tests/test_moss_audio_tokenizer.py | 115 | def test_streaming_decoder_matches_offline_with_causal_transformer(self): | CODE |
| LOW | mlx_audio/codec/tests/test_moss_audio_tokenizer.py | 174 | def test_from_model_dir_prefers_nested_audio_tokenizer(self): | CODE |
| LOW | mlx_audio/codec/tests/test_moss_audio_tokenizer.py | 188 | def test_same_dimension_projection_keys_force_linear_modules(self): | CODE |
| LOW | mlx_audio/codec/tests/test_fish_s1_dac.py | 110 | def test_streaming_step_matches_full_decode(self): | CODE |
| LOW | mlx_audio/codec/tests/test_fish_s1_dac.py | 122 | def test_streaming_state_resets_between_streams(self): | CODE |
| LOW | mlx_audio/codec/tests/test_fish_s1_dac.py | 130 | def test_streaming_continues_past_rope_table(self): | CODE |
| LOW | mlx_audio/codec/tests/test_fish_s1_dac.py | 141 | def test_streaming_rejects_chunk_larger_than_rope_table(self): | CODE |
| LOW | mlx_audio/codec/tests/test_stepaudio2.py | 9 | def test_tiny_dit_forward_shape(self): | CODE |
| LOW | mlx_audio/codec/tests/test_ecapa_backbone.py | 143 | def test_global_context_changes_attention_input(self): | CODE |
| LOW | mlx_audio/codec/tests/test_ecapa_backbone.py | 155 | def test_output_shape_default_config(self): | CODE |
| LOW | mlx_audio/codec/tests/test_ecapa_backbone.py | 166 | def test_output_shape_spark_config(self): | CODE |
| LOW | mlx_audio/codec/tests/test_ecapa_backbone.py | 179 | def test_submodules_accessible(self): | CODE |
| LOW | mlx_audio/codec/tests/test_ecapa_backbone.py | 204 | def test_import_from_codec_models(self): | CODE |
| LOW | mlx_audio/codec/tests/test_ecapa_backbone.py | 209 | def test_import_from_codec_top_level(self): | CODE |
| LOW | mlx_audio/codec/tests/test_ecapa_backbone.py | 238 | def test_different_inputs_give_different_outputs(self): | CODE |
| LOW | mlx_audio/codec/tests/test_ecapa_backbone.py | 253 | def test_lid_ecapa_uses_shared_backbone(self): | CODE |
| LOW | mlx_audio/codec/tests/test_ecapa_backbone.py | 262 | def test_lid_forward_pass_unchanged(self): | CODE |
| 1487 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | mlx_audio/server_inference.py | 1 | CODE | |
| LOW | mlx_audio/registry.py | 10 | CODE | |
| LOW | mlx_audio/utils.py | 31 | CODE | |
| LOW | mlx_audio/utils.py | 31 | CODE | |
| LOW | mlx_audio/utils.py | 31 | CODE | |
| LOW | mlx_audio/utils.py | 31 | CODE | |
| LOW | mlx_audio/utils.py | 31 | CODE | |
| LOW | mlx_audio/utils.py | 31 | CODE | |
| LOW | mlx_audio/utils.py | 31 | CODE | |
| LOW | mlx_audio/utils.py | 31 | CODE | |
| LOW | mlx_audio/realtime_vad.py | 18 | CODE | |
| LOW | mlx_audio/music/generate.py | 3 | CODE | |
| LOW | mlx_audio/music/__init__.py | 3 | CODE | |
| LOW | mlx_audio/music/__init__.py | 3 | CODE | |
| LOW | mlx_audio/music/tests/test_minimax_music3.py | 3 | CODE | |
| LOW | mlx_audio/music/models/minimax_music3/vocoder.py | 3 | CODE | |
| LOW | mlx_audio/music/models/minimax_music3/config.py | 3 | CODE | |
| LOW | mlx_audio/music/models/minimax_music3/conversion.py | 3 | CODE | |
| LOW | mlx_audio/music/models/minimax_music3/__init__.py | 3 | CODE | |
| LOW | mlx_audio/music/models/minimax_music3/__init__.py | 3 | CODE | |
| LOW | mlx_audio/music/models/minimax_music3/__init__.py | 3 | CODE | |
| LOW | mlx_audio/music/models/minimax_music3/__init__.py | 4 | CODE | |
| LOW | mlx_audio/music/models/minimax_music3/__init__.py | 4 | CODE | |
| LOW | mlx_audio/music/models/minimax_music3/minimax_music3.py | 3 | CODE | |
| LOW | mlx_audio/music/models/minimax_music3/depth.py | 3 | CODE | |
| LOW | mlx_audio/music/models/minimax_music3/fusion.py | 3 | CODE | |
| LOW | mlx_audio/music/models/minimax_music3/sampling.py | 3 | CODE | |
| LOW | mlx_audio/music/models/minimax_music3/ar.py | 3 | CODE | |
| LOW | mlx_audio/music/models/minimax_music3/prompt.py | 3 | CODE | |
| LOW | mlx_audio/music/models/minimax_music3/dit.py | 3 | CODE | |
| LOW | mlx_audio/music/models/minimax_music3/euler.py | 3 | CODE | |
| LOW | mlx_audio/lm/models/nemotron_h.py | 5 | CODE | |
| LOW | mlx_audio/lm/models/switch_layers.py | 5 | CODE | |
| LOW | mlx_audio/codec/__init__.py | 1 | CODE | |
| LOW | mlx_audio/codec/__init__.py | 1 | CODE | |
| LOW | mlx_audio/codec/__init__.py | 1 | CODE | |
| LOW | mlx_audio/codec/__init__.py | 1 | CODE | |
| LOW | mlx_audio/codec/__init__.py | 1 | CODE | |
| LOW | mlx_audio/codec/__init__.py | 1 | CODE | |
| LOW | mlx_audio/codec/__init__.py | 1 | CODE | |
| LOW | mlx_audio/codec/__init__.py | 1 | CODE | |
| LOW | mlx_audio/codec/__init__.py | 1 | CODE | |
| LOW | mlx_audio/codec/models/__init__.py | 1 | CODE | |
| LOW | mlx_audio/codec/models/__init__.py | 2 | CODE | |
| LOW | mlx_audio/codec/models/__init__.py | 3 | CODE | |
| LOW | mlx_audio/codec/models/__init__.py | 4 | CODE | |
| LOW | mlx_audio/codec/models/__init__.py | 5 | CODE | |
| LOW | mlx_audio/codec/models/__init__.py | 6 | CODE | |
| LOW | mlx_audio/codec/models/__init__.py | 7 | CODE | |
| LOW | mlx_audio/codec/models/__init__.py | 8 | CODE | |
| LOW | mlx_audio/codec/models/__init__.py | 9 | CODE | |
| LOW | mlx_audio/codec/models/__init__.py | 10 | CODE | |
| LOW | mlx_audio/codec/models/s3/__init__.py | 1 | CODE | |
| LOW | mlx_audio/codec/models/s3/__init__.py | 1 | CODE | |
| LOW | mlx_audio/codec/models/s3/__init__.py | 2 | CODE | |
| LOW | mlx_audio/codec/models/s3/__init__.py | 2 | CODE | |
| LOW | mlx_audio/codec/models/s3/__init__.py | 2 | CODE | |
| LOW | mlx_audio/codec/models/s3/__init__.py | 2 | CODE | |
| LOW | mlx_audio/codec/models/s3/__init__.py | 2 | CODE | |
| LOW | mlx_audio/codec/models/s3/model.py | 2 | CODE | |
| 842 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| MEDIUM | mlx_audio/dsp.py | 757 | # ============================================================================= | COMMENT |
| MEDIUM | mlx_audio/dsp.py | 759 | # ============================================================================= | COMMENT |
| MEDIUM | mlx_audio/utils.py | 79 | # ============================================================================= | COMMENT |
| MEDIUM | mlx_audio/utils.py | 81 | # ============================================================================= | COMMENT |
| MEDIUM | mlx_audio/codec/models/dacvae/codec.py | 45 | # ============================================================================= | COMMENT |
| MEDIUM | mlx_audio/codec/models/dacvae/codec.py | 47 | # ============================================================================= | COMMENT |
| MEDIUM | mlx_audio/codec/models/dacvae/codec.py | 252 | # ============================================================================= | COMMENT |
| MEDIUM | mlx_audio/codec/models/dacvae/codec.py | 254 | # ============================================================================= | COMMENT |
| MEDIUM | mlx_audio/codec/models/dacvae/codec.py | 325 | # ============================================================================= | COMMENT |
| MEDIUM | mlx_audio/codec/models/dacvae/codec.py | 327 | # ============================================================================= | COMMENT |
| MEDIUM | mlx_audio/codec/models/dacvae/codec.py | 387 | # ============================================================================= | COMMENT |
| MEDIUM | mlx_audio/codec/models/dacvae/codec.py | 389 | # ============================================================================= | COMMENT |
| MEDIUM | mlx_audio/codec/models/dacvae/codec.py | 462 | # ============================================================================= | COMMENT |
| MEDIUM | mlx_audio/codec/models/dacvae/codec.py | 464 | # ============================================================================= | COMMENT |
| MEDIUM | mlx_audio/codec/models/dacvae/codec.py | 617 | # ============================================================================= | COMMENT |
| MEDIUM | mlx_audio/codec/models/dacvae/codec.py | 619 | # ============================================================================= | COMMENT |
| MEDIUM | mlx_audio/codec/models/dacvae/codec.py | 783 | # ============================================================================= | COMMENT |
| MEDIUM | mlx_audio/codec/models/dacvae/codec.py | 785 | # ============================================================================= | COMMENT |
| MEDIUM | mlx_audio/codec/models/dacvae/codec.py | 908 | # ============================================================================= | COMMENT |
| MEDIUM | mlx_audio/codec/models/dacvae/codec.py | 910 | # ============================================================================= | COMMENT |
| MEDIUM | mlx_audio/codec/models/dacvae/codec.py | 960 | # ============================================================================= | COMMENT |
| MEDIUM | mlx_audio/codec/models/dacvae/codec.py | 962 | # ============================================================================= | COMMENT |
| MEDIUM⚡ | mlx_audio/tests/test_server.py | 261 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM⚡ | mlx_audio/tests/test_server.py | 263 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM⚡ | mlx_audio/tests/test_server.py | 799 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM⚡ | mlx_audio/tests/test_server.py | 801 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM | mlx_audio/tests/test_server.py | 365 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM | mlx_audio/tests/test_server.py | 367 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM | mlx_audio/lid/models/ecapa_tdnn/ecapa_tdnn.py | 18 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM | mlx_audio/lid/models/ecapa_tdnn/ecapa_tdnn.py | 20 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM | mlx_audio/lid/models/ecapa_tdnn/ecapa_tdnn.py | 76 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM | mlx_audio/lid/models/ecapa_tdnn/ecapa_tdnn.py | 78 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM⚡ | mlx_audio/tts/tests/test_models.py | 4520 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM⚡ | mlx_audio/tts/tests/test_models.py | 4522 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM⚡ | mlx_audio/tts/tests/test_models.py | 4961 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM⚡ | mlx_audio/tts/tests/test_models.py | 4963 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM⚡ | mlx_audio/tts/tests/test_models.py | 5516 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM⚡ | mlx_audio/tts/tests/test_models.py | 5518 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM⚡ | mlx_audio/tts/tests/test_models.py | 6114 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM⚡ | mlx_audio/tts/tests/test_models.py | 6116 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM | mlx_audio/tts/tests/test_models.py | 4442 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM | mlx_audio/tts/tests/test_models.py | 4444 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM | mlx_audio/tts/tests/test_models.py | 5021 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM | mlx_audio/tts/tests/test_models.py | 5023 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM | mlx_audio/tts/tests/test_models.py | 5288 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM | mlx_audio/tts/tests/test_models.py | 5290 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM | mlx_audio/tts/tests/test_models.py | 8663 | # ── VoxCPM2 ────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | mlx_audio/tts/tests/test_models.py | 10283 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM | mlx_audio/tts/tests/test_models.py | 10285 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM⚡ | mlx_audio/tts/models/kitten_tts/preprocess.py | 1017 | # ───────────────────────────────────────────── | COMMENT |
| MEDIUM⚡ | mlx_audio/tts/models/kitten_tts/preprocess.py | 1019 | # ───────────────────────────────────────────── | COMMENT |
| MEDIUM⚡ | mlx_audio/tts/models/kitten_tts/preprocess.py | 1025 | # ── Numbers ──────────────────────────────────────────────────── | COMMENT |
| MEDIUM⚡ | mlx_audio/tts/models/kitten_tts/preprocess.py | 1035 | # ── Scientific notation ───────────────────────────────────────── | COMMENT |
| MEDIUM⚡ | mlx_audio/tts/models/kitten_tts/preprocess.py | 1039 | # ── Scale suffixes ───────────────────────────────────────────── | COMMENT |
| MEDIUM⚡ | mlx_audio/tts/models/kitten_tts/preprocess.py | 1043 | # ── Currency ─────────────────────────────────────────────────── | COMMENT |
| MEDIUM⚡ | mlx_audio/tts/models/kitten_tts/preprocess.py | 1047 | # ── Percentages ──────────────────────────────────────────────── | COMMENT |
| MEDIUM⚡ | mlx_audio/tts/models/kitten_tts/preprocess.py | 1050 | # ── Ordinals ─────────────────────────────────────────────────── | COMMENT |
| MEDIUM⚡ | mlx_audio/tts/models/kitten_tts/preprocess.py | 1055 | # ── Fractions ────────────────────────────────────────────────── | COMMENT |
| MEDIUM⚡ | mlx_audio/tts/models/kitten_tts/preprocess.py | 1060 | # ── Time ─────────────────────────────────────────────────────── | COMMENT |
| MEDIUM⚡ | mlx_audio/tts/models/kitten_tts/preprocess.py | 1065 | # ── Decades ──────────────────────────────────────────────────── | COMMENT |
| 194 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | mlx_audio/server.py | 67 | CODE | |
| LOW | mlx_audio/server.py | 1037 | CODE | |
| LOW | mlx_audio/server.py | 1267 | CODE | |
| LOW | mlx_audio/server.py | 1594 | CODE | |
| LOW | mlx_audio/server.py | 295 | CODE | |
| LOW | mlx_audio/server_inference.py | 195 | CODE | |
| LOW | mlx_audio/convert.py | 174 | CODE | |
| LOW | mlx_audio/convert.py | 312 | CODE | |
| LOW | mlx_audio/convert.py | 334 | CODE | |
| LOW | mlx_audio/audio_io.py | 39 | CODE | |
| LOW | mlx_audio/audio_io.py | 235 | CODE | |
| LOW | mlx_audio/audio_io.py | 409 | CODE | |
| LOW | mlx_audio/audio_io.py | 490 | CODE | |
| LOW | mlx_audio/utils.py | 734 | CODE | |
| LOW | mlx_audio/utils.py | 787 | CODE | |
| LOW | mlx_audio/lm/models/rope_utils.py | 236 | CODE | |
| LOW | mlx_audio/lm/models/bailing_moe.py | 347 | CODE | |
| LOW | mlx_audio/lm/models/nemotron_h.py | 443 | CODE | |
| LOW | mlx_audio/lm/models/falcon_h1.py | 460 | CODE | |
| LOW | mlx_audio/codec/tests/test_nemotron_voicechat.py | 62 | CODE | |
| LOW | mlx_audio/codec/models/s3/model_v2.py | 378 | CODE | |
| LOW | mlx_audio/codec/models/s3/model_v2.py | 543 | CODE | |
| LOW | mlx_audio/codec/models/fish_s1_dac/fish_s1_dac.py | 1424 | CODE | |
| LOW | mlx_audio/codec/models/higgs_audio/higgs_audio.py | 182 | CODE | |
| LOW | mlx_audio/codec/models/bigvgan/bigvgan.py | 124 | CODE | |
| LOW | mlx_audio/codec/models/stepaudio2/convert.py | 70 | CODE | |
| LOW | mlx_audio/codec/models/stepaudio2/convert.py | 169 | CODE | |
| LOW | mlx_audio/codec/models/descript/base.py | 107 | CODE | |
| LOW | mlx_audio/codec/models/dacvae/codec.py | 1170 | CODE | |
| LOW | mlx_audio/codec/models/dacvae/codec.py | 1364 | CODE | |
| LOW | mlx_audio/tests/test_no_mlx_lm.py | 21 | CODE | |
| LOW | mlx_audio/lid/models/ecapa_tdnn/mel.py | 27 | CODE | |
| LOW | mlx_audio/tts/generate.py | 151 | CODE | |
| LOW | mlx_audio/tts/audio_player.py | 73 | CODE | |
| LOW | mlx_audio/tts/models/moss_tts_nano/text.py | 251 | CODE | |
| LOW | mlx_audio/tts/models/voxcpm2/audio_vae.py | 450 | CODE | |
| LOW | mlx_audio/tts/models/voxcpm2/voxcpm2.py | 315 | CODE | |
| LOW | …_audio/tts/models/chatterbox_turbo/chatterbox_turbo.py | 147 | CODE | |
| LOW | …_audio/tts/models/chatterbox_turbo/chatterbox_turbo.py | 210 | CODE | |
| LOW | …_audio/tts/models/chatterbox_turbo/chatterbox_turbo.py | 271 | CODE | |
| LOW | …_audio/tts/models/chatterbox_turbo/chatterbox_turbo.py | 352 | CODE | |
| LOW | …_audio/tts/models/chatterbox_turbo/chatterbox_turbo.py | 780 | CODE | |
| LOW | …_audio/tts/models/chatterbox_turbo/chatterbox_turbo.py | 1018 | CODE | |
| LOW | …udio/tts/models/chatterbox_turbo/models/s3gen/s3gen.py | 415 | CODE | |
| LOW | …io/tts/models/chatterbox_turbo/models/s3gen/xvector.py | 45 | CODE | |
| LOW | …io/tts/models/chatterbox_turbo/models/s3gen/xvector.py | 696 | CODE | |
| LOW | mlx_audio/tts/models/kugelaudio/kugelaudio.py | 394 | CODE | |
| LOW | mlx_audio/tts/models/kitten_tts/convert.py | 188 | CODE | |
| LOW | mlx_audio/tts/models/kitten_tts/convert.py | 230 | CODE | |
| LOW | mlx_audio/tts/models/kitten_tts/convert.py | 529 | CODE | |
| LOW | mlx_audio/tts/models/kitten_tts/kitten_tts.py | 42 | CODE | |
| LOW | mlx_audio/tts/models/kitten_tts/kitten_tts.py | 512 | CODE | |
| LOW | mlx_audio/tts/models/kitten_tts/kitten_tts.py | 541 | CODE | |
| LOW | mlx_audio/tts/models/vibevoice/vibevoice.py | 210 | CODE | |
| LOW | mlx_audio/tts/models/vibevoice/vibevoice.py | 584 | CODE | |
| LOW | mlx_audio/tts/models/vibevoice/scheduler.py | 234 | CODE | |
| LOW | mlx_audio/tts/models/zonos2/model.py | 851 | CODE | |
| LOW | mlx_audio/tts/models/zonos2/speaker_encoder.py | 40 | CODE | |
| LOW | mlx_audio/tts/models/omnivoice/omnivoice.py | 266 | CODE | |
| LOW | mlx_audio/tts/models/omnivoice/omnivoice.py | 293 | CODE | |
| 157 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | mlx_audio/dsp.py | 900 | CODE | |
| LOW | mlx_audio/server.py | 1037 | CODE | |
| LOW | mlx_audio/convert.py | 594 | CODE | |
| LOW | mlx_audio/lm/generate.py | 122 | CODE | |
| LOW | mlx_audio/lm/sample_utils.py | 11 | CODE | |
| LOW | mlx_audio/lm/models/rope_utils.py | 130 | CODE | |
| LOW | mlx_audio/lm/models/gemma3_text.py | 163 | CODE | |
| LOW | mlx_audio/lm/models/gpt2.py | 109 | CODE | |
| LOW | mlx_audio/lm/models/gpt2.py | 169 | CODE | |
| LOW | mlx_audio/lm/models/llama.py | 149 | CODE | |
| LOW | mlx_audio/lm/models/cohere2.py | 200 | CODE | |
| LOW | mlx_audio/lm/models/lfm2.py | 236 | CODE | |
| LOW | mlx_audio/lm/models/qwen3.py | 127 | CODE | |
| LOW | mlx_audio/lm/models/granite.py | 135 | CODE | |
| LOW | mlx_audio/lm/models/qwen2.py | 122 | CODE | |
| LOW | mlx_audio/codec/models/fish_s1_dac/fish_s1_dac.py | 947 | CODE | |
| LOW | mlx_audio/codec/models/fish_s1_dac/fish_s1_dac.py | 1284 | CODE | |
| LOW | mlx_audio/codec/models/bigvgan/resample.py | 98 | CODE | |
| LOW | …x_audio/codec/models/stepaudio2/upsample_encoder_v2.py | 81 | CODE | |
| LOW | mlx_audio/codec/models/stepaudio2/flow.py | 10 | CODE | |
| LOW | mlx_audio/codec/models/snac/snac.py | 16 | CODE | |
| LOW | mlx_audio/codec/models/descript/dac.py | 133 | CODE | |
| LOW | mlx_audio/codec/models/dacvae/codec.py | 260 | CODE | |
| LOW | mlx_audio/codec/models/dacvae/codec.py | 905 | CODE | |
| LOW | mlx_audio/codec/models/dacvae/codec.py | 1067 | CODE | |
| LOW | mlx_audio/tts/generate.py | 151 | CODE | |
| LOW | mlx_audio/tts/utils.py | 214 | CODE | |
| LOW | mlx_audio/tts/models/interpolate.py | 117 | CODE | |
| LOW | mlx_audio/tts/models/base.py | 68 | CODE | |
| LOW | mlx_audio/tts/models/moss_tts_nano/moss_tts_nano.py | 335 | CODE | |
| LOW | mlx_audio/tts/models/voxcpm2/voxcpm2.py | 404 | CODE | |
| LOW | …_audio/tts/models/chatterbox_turbo/chatterbox_turbo.py | 780 | CODE | |
| LOW | …_audio/tts/models/chatterbox_turbo/chatterbox_turbo.py | 1018 | CODE | |
| LOW | …io/tts/models/chatterbox_turbo/models/s3gen/decoder.py | 431 | CODE | |
| LOW | …io/tts/models/chatterbox_turbo/models/s3gen/hifigan.py | 334 | CODE | |
| LOW | …_audio/tts/models/chatterbox_turbo/models/s3gen/mel.py | 56 | CODE | |
| LOW | …io/tts/models/chatterbox_turbo/models/s3gen/xvector.py | 104 | CODE | |
| LOW | …io/tts/models/chatterbox_turbo/models/s3gen/xvector.py | 281 | CODE | |
| LOW | …io/tts/models/chatterbox_turbo/models/s3gen/xvector.py | 336 | CODE | |
| LOW | mlx_audio/tts/models/kitten_tts/istftnet.py | 848 | CODE | |
| LOW | mlx_audio/tts/models/kitten_tts/istftnet.py | 945 | CODE | |
| LOW | mlx_audio/tts/models/kitten_tts/preprocess.py | 909 | CODE | |
| LOW | mlx_audio/tts/models/vibevoice/scheduler.py | 54 | CODE | |
| LOW | mlx_audio/tts/models/zonos2/model.py | 851 | CODE | |
| LOW | mlx_audio/tts/models/zonos2/model.py | 1009 | CODE | |
| LOW | mlx_audio/tts/models/zonos2/prompt.py | 315 | CODE | |
| LOW | mlx_audio/tts/models/omnivoice/omnivoice.py | 293 | CODE | |
| LOW | mlx_audio/tts/models/omnivoice/omnivoice.py | 483 | CODE | |
| LOW | mlx_audio/tts/models/irodori_tts/model.py | 824 | CODE | |
| LOW | mlx_audio/tts/models/irodori_tts/irodori_tts.py | 296 | CODE | |
| LOW | mlx_audio/tts/models/irodori_tts/sampling.py | 72 | CODE | |
| LOW | mlx_audio/tts/models/echo_tts/sampling.py | 53 | CODE | |
| LOW | mlx_audio/tts/models/echo_tts/sampling.py | 164 | CODE | |
| LOW | mlx_audio/tts/models/qwen3/qwen3.py | 291 | CODE | |
| LOW | mlx_audio/tts/models/higgs_audio/generation.py | 77 | CODE | |
| LOW | mlx_audio/tts/models/higgs_audio/serve.py | 593 | CODE | |
| LOW | mlx_audio/tts/models/higgs_audio/serve.py | 420 | CODE | |
| LOW | mlx_audio/tts/models/higgs_audio/serve.py | 485 | CODE | |
| LOW | mlx_audio/tts/models/higgs_audio/serve.py | 534 | CODE | |
| LOW | mlx_audio/tts/models/higgs_audio/model.py | 121 | CODE | |
| 129 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| MEDIUM | mlx_audio/server.py | 1436 | print(f"Error during initial transcription: {error_msg}") | CODE |
| MEDIUM | mlx_audio/server.py | 1470 | print(f"Error during transcription: {error_msg}") | CODE |
| LOW⚡ | mlx_audio/server.py | 1481 | except Exception: | CODE |
| LOW⚡ | mlx_audio/server.py | 1486 | except Exception as e: | CODE |
| LOW⚡ | mlx_audio/server.py | 1489 | except Exception: | CODE |
| LOW⚡ | mlx_audio/server.py | 1494 | except Exception: | CODE |
| LOW⚡ | mlx_audio/server.py | 1967 | except Exception as e: | CODE |
| LOW⚡ | mlx_audio/server.py | 1973 | except Exception: | CODE |
| LOW⚡ | mlx_audio/server.py | 1978 | except Exception: | CODE |
| LOW | mlx_audio/server.py | 272 | except Exception as exc: | CODE |
| LOW | mlx_audio/server.py | 885 | except Exception as exc: | CODE |
| LOW | mlx_audio/server.py | 1021 | except Exception as e: | CODE |
| LOW | mlx_audio/server.py | 1124 | except Exception: | CODE |
| LOW | mlx_audio/server.py | 1323 | except Exception: | CODE |
| LOW | mlx_audio/server.py | 1431 | except Exception as e: | CODE |
| LOW | mlx_audio/server.py | 1465 | except Exception as e: | CODE |
| LOW | mlx_audio/server.py | 1650 | except Exception as e: | CODE |
| LOW | mlx_audio/server.py | 1784 | except Exception as e: | CODE |
| LOW | mlx_audio/server.py | 1817 | except Exception as e: | CODE |
| LOW | mlx_audio/server.py | 2024 | except Exception as e: | CODE |
| LOW | mlx_audio/server_inference.py | 248 | except Exception as exc: # pragma: no cover - defensive broker guard | CODE |
| LOW⚡ | mlx_audio/server_inference.py | 340 | except Exception as exc: | CODE |
| LOW⚡ | mlx_audio/server_inference.py | 351 | except Exception as exc: | CODE |
| LOW | mlx_audio/convert.py | 490 | except Exception: | CODE |
| LOW | mlx_audio/tests/test_server.py | 141 | except Exception as e: | CODE |
| LOW | mlx_audio/tests/test_server.py | 453 | except Exception: | CODE |
| LOW | mlx_audio/tts/generate.py | 446 | except Exception as e: | CODE |
| MEDIUM | mlx_audio/tts/generate.py | 447 | print(f"Error loading model: {e}") | CODE |
| MEDIUM | mlx_audio/tts/tests/test_models.py | 224 | def run_sine_generator(): | CODE |
| MEDIUM | mlx_audio/tts/tests/test_models.py | 8429 | def _require_g2p(self): | CODE |
| LOW | mlx_audio/tts/tests/test_models.py | 229 | except Exception as exc: | CODE |
| LOW | mlx_audio/tts/tests/test_models.py | 3584 | except Exception: | CODE |
| LOW | mlx_audio/tts/tests/test_models.py | 3605 | except Exception: | CODE |
| LOW | mlx_audio/tts/tests/test_models.py | 9120 | except Exception: | CODE |
| LOW | …_audio/tts/models/chatterbox_turbo/chatterbox_turbo.py | 295 | except Exception as e: | CODE |
| LOW | …_audio/tts/models/chatterbox_turbo/chatterbox_turbo.py | 313 | except Exception as e: | CODE |
| LOW | …_audio/tts/models/chatterbox_turbo/chatterbox_turbo.py | 344 | except Exception as e: | CODE |
| LOW | …_audio/tts/models/chatterbox_turbo/chatterbox_turbo.py | 414 | except Exception as e: | CODE |
| LOW | …_audio/tts/models/chatterbox_turbo/chatterbox_turbo.py | 424 | except Exception as e: | CODE |
| LOW | …_audio/tts/models/chatterbox_turbo/chatterbox_turbo.py | 500 | except Exception as e: | CODE |
| LOW | …_audio/tts/models/chatterbox_turbo/chatterbox_turbo.py | 537 | except Exception as e: | CODE |
| LOW | …_audio/tts/models/chatterbox_turbo/chatterbox_turbo.py | 587 | except Exception as e: | CODE |
| LOW | …_audio/tts/models/chatterbox_turbo/chatterbox_turbo.py | 641 | except Exception as e: | CODE |
| LOW | …_audio/tts/models/chatterbox_turbo/chatterbox_turbo.py | 1301 | except Exception as e: | CODE |
| LOW⚡ | mlx_audio/tts/models/kitten_tts/istftnet.py | 169 | except Exception as e: | CODE |
| MEDIUM⚡ | mlx_audio/tts/models/kitten_tts/istftnet.py | 170 | print(f"Error: {e}") | CODE |
| LOW | mlx_audio/tts/models/kitten_tts/preprocess.py | 503 | except Exception: | CODE |
| LOW | mlx_audio/tts/models/kitten_tts/kitten_tts.py | 578 | except Exception: | CODE |
| LOW | mlx_audio/tts/models/omnivoice/omnivoice.py | 670 | except Exception as e: | CODE |
| LOW⚡ | mlx_audio/tts/models/irodori_tts/irodori_tts.py | 117 | except Exception as e: | CODE |
| LOW | mlx_audio/tts/models/echo_tts/echo_tts.py | 88 | except Exception: | CODE |
| LOW | mlx_audio/tts/models/chatterbox/tokenizer.py | 136 | except Exception as e: | CODE |
| LOW | mlx_audio/tts/models/chatterbox/tokenizer.py | 195 | except Exception as e: | CODE |
| LOW | mlx_audio/tts/models/chatterbox/tokenizer.py | 263 | except Exception as e: | CODE |
| MEDIUM | mlx_audio/tts/models/chatterbox/tokenizer.py | 170 | def _load_cangjie_mapping(self, model_dir=None): | CODE |
| LOW⚡ | mlx_audio/tts/models/tada/tada.py | 1486 | except Exception as e: | CODE |
| LOW⚡ | mlx_audio/tts/models/tada/tada.py | 1492 | except Exception as e: | CODE |
| LOW | mlx_audio/tts/models/tada/tada.py | 485 | except Exception as e: | CODE |
| LOW | mlx_audio/tts/models/tada/tada.py | 954 | except Exception: | CODE |
| LOW | mlx_audio/tts/models/tada/tada.py | 1475 | except Exception as e: | CODE |
| 60 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| HIGH | mlx_audio/server.py | 1484 | except WebSocketDisconnect: | CODE |
| HIGH | mlx_audio/server.py | 1965 | except WebSocketDisconnect: | CODE |
| HIGH | mlx_audio/server.py | 1494 | except Exception: | CODE |
| HIGH | mlx_audio/server.py | 1978 | except Exception: | CODE |
| HIGH | mlx_audio/server.py | 1489 | except Exception: | CODE |
| HIGH | mlx_audio/server.py | 1973 | except Exception: | CODE |
| HIGH | mlx_audio/server.py | 1481 | except Exception: | CODE |
| HIGH | mlx_audio/codec/models/vocos/vocos.py | 335 | except KeyError: | CODE |
| HIGH | mlx_audio/tts/tests/test_models.py | 9120 | except Exception: | CODE |
| HIGH | mlx_audio/tts/tests/test_models.py | 3584 | except Exception: | CODE |
| HIGH | mlx_audio/tts/tests/test_models.py | 3605 | except Exception: | CODE |
| HIGH | mlx_audio/tts/models/voxcpm2/voxcpm2.py | 343 | except ImportError: | CODE |
| HIGH | mlx_audio/tts/models/kitten_tts/kitten_tts.py | 88 | except KeyError: | CODE |
| HIGH | mlx_audio/tts/models/kitten_tts/kitten_tts.py | 578 | except Exception: | CODE |
| HIGH | mlx_audio/tts/models/tada/tada.py | 954 | except Exception: | CODE |
| HIGH | mlx_audio/tts/models/voxtral_tts/voxtral_tts.py | 421 | except Exception: | CODE |
| HIGH | mlx_audio/sts/voice_pipeline.py | 1565 | except KeyboardInterrupt: | CODE |
| HIGH | mlx_audio/sts/audio_player.py | 49 | except Exception: | CODE |
| HIGH | mlx_audio/sts/models/deepfilternet/weight_loader.py | 209 | except (KeyError, AttributeError, TypeError, IndexError): | CODE |
| HIGH | mlx_audio/sts/models/moshi/moshi.py | 145 | except Exception: | CODE |
| HIGH | mlx_audio/stt/models/fireredasr2/fireredasr2.py | 601 | except ValueError: | CODE |
| HIGH | mlx_audio/stt/models/sensevoice/sensevoice.py | 591 | except ImportError: | CODE |
| HIGH | mlx_audio/stt/models/moonshine/moonshine.py | 462 | except Exception: | CODE |
| HIGH | mlx_audio/stt/eval/seed_tts.py | 181 | except Exception: | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | mlx_audio/dsp.py | 10 | __all__ = [ | CODE |
| LOW | mlx_audio/utils.py | 687 | __all__ = [ | CODE |
| LOW | mlx_audio/music/__init__.py | 5 | __all__ = ["load", "load_model"] | CODE |
| LOW | mlx_audio/music/utils.py | 40 | __all__ = ["MODEL_REMAPPING", "load", "load_model"] | CODE |
| LOW | mlx_audio/music/models/minimax_music3/conversion.py | 214 | __all__ = ["copy_supporting_files", "load_source_weights", "prepare_config"] | CODE |
| LOW | mlx_audio/music/models/minimax_music3/__init__.py | 19 | __all__ = [ | CODE |
| LOW | mlx_audio/music/models/minimax_music3/minimax_music3.py | 273 | __all__ = ["Model", "ModelConfig"] | CODE |
| LOW | mlx_audio/codec/__init__.py | 13 | __all__ = [ | CODE |
| LOW | mlx_audio/codec/models/__init__.py | 12 | __all__ = [ | CODE |
| LOW | mlx_audio/codec/models/s3/__init__.py | 17 | __all__ = [ | CODE |
| LOW | mlx_audio/codec/models/fish_s1_dac/__init__.py | 3 | __all__ = ["DAC", "ModelArgs", "build_ae"] | CODE |
| LOW | mlx_audio/codec/models/moss_audio_tokenizer/__init__.py | 8 | __all__ = [ | CODE |
| LOW | mlx_audio/codec/models/mimo_audio_tokenizer/__init__.py | 4 | __all__ = ["MiMoAudioTokenizer", "Model", "ModelConfig"] | CODE |
| LOW | mlx_audio/codec/models/higgs_audio/__init__.py | 11 | __all__ = [ | CODE |
| LOW | mlx_audio/codec/models/stepaudio2/__init__.py | 9 | __all__ = [ | CODE |
| LOW | mlx_audio/codec/models/nemotron_voicechat/__init__.py | 9 | __all__ = [ | CODE |
| LOW | mlx_audio/codec/models/ecapa_tdnn/__init__.py | 4 | __all__ = ["EcapaTdnnBackbone", "EcapaTdnnConfig"] | CODE |
| LOW | mlx_audio/lid/__init__.py | 3 | __all__ = ["load", "load_model"] | CODE |
| LOW | mlx_audio/tts/__init__.py | 3 | __all__ = ["load", "load_model"] | CODE |
| LOW | mlx_audio/tts/models/pocket_tts/conditioners.py | 10 | logger = logging.getLogger(__name__) | CODE |
| LOW | mlx_audio/tts/models/moss_tts_nano/__init__.py | 4 | __all__ = ["GPT2Config", "Model", "ModelConfig"] | CODE |
| LOW | mlx_audio/tts/models/bark/__init__.py | 4 | __all__ = ["Model", "Pipeline", "ModelConfig"] | CODE |
| LOW | …_audio/tts/models/chatterbox_turbo/chatterbox_turbo.py | 24 | logger = logging.getLogger(__name__) | CODE |
| LOW | mlx_audio/tts/models/chatterbox_turbo/__init__.py | 11 | __all__ = [ | CODE |
| LOW | …x_audio/tts/models/chatterbox_turbo/models/__init__.py | 7 | __all__ = [ | CODE |
| LOW | …models/chatterbox_turbo/models/s3tokenizer/__init__.py | 19 | __all__ = [ | CODE |
| LOW | …udio/tts/models/chatterbox_turbo/models/t3/__init__.py | 8 | __all__ = [ | CODE |
| LOW | …dels/chatterbox_turbo/models/voice_encoder/__init__.py | 7 | __all__ = [ | CODE |
| LOW | …o/tts/models/chatterbox_turbo/models/s3gen/__init__.py | 17 | __all__ = [ | CODE |
| LOW | …_audio/tts/models/chatterbox_turbo/models/s3gen/mel.py | 12 | logger = logging.getLogger(__name__) | CODE |
| LOW | …udio/tts/models/chatterbox_turbo/models/s3gen/s3gen.py | 19 | logger = logging.getLogger(__name__) | CODE |
| LOW | mlx_audio/tts/models/kugelaudio/__init__.py | 4 | __all__ = ["Model", "ModelConfig"] | CODE |
| LOW | mlx_audio/tts/models/kitten_tts/__init__.py | 3 | __all__ = ["Model", "ModelConfig"] | CODE |
| LOW | mlx_audio/tts/models/vibevoice/__init__.py | 9 | __all__ = [ | CODE |
| LOW | mlx_audio/tts/models/zonos2/convert.py | 233 | def update_largest(key: str, value: mx.array) -> None: | CODE |
| LOW | mlx_audio/tts/models/zonos2/__init__.py | 4 | __all__ = ["Model", "ModelConfig", "Zonos2Config"] | CODE |
| LOW | mlx_audio/tts/models/omnivoice/__init__.py | 7 | __all__ = ["Model", "ModelConfig", "OmniVoiceConfig", "create_voice_clone_prompt"] | CODE |
| LOW | mlx_audio/tts/models/omnivoice/utils.py | 8 | logger = logging.getLogger(__name__) | CODE |
| LOW | mlx_audio/tts/models/qwen3/__init__.py | 3 | __all__ = ["Model", "ModelConfig"] | CODE |
| LOW | mlx_audio/tts/models/higgs_audio/__init__.py | 14 | __all__ = [ | CODE |
| LOW | mlx_audio/tts/models/chatterbox/__init__.py | 5 | __all__ = ["Model", "ModelConfig", "convert_from_source"] | CODE |
| LOW | mlx_audio/tts/models/chatterbox/tokenizer.py | 20 | logger = logging.getLogger(__name__) | CODE |
| LOW | mlx_audio/tts/models/chatterbox/s3tokenizer/__init__.py | 17 | __all__ = [ | CODE |
| LOW | mlx_audio/tts/models/chatterbox/t3/__init__.py | 6 | __all__ = [ | CODE |
| LOW | …_audio/tts/models/chatterbox/voice_encoder/__init__.py | 5 | __all__ = ["VoiceEncoder", "VoiceEncConfig", "melspectrogram"] | CODE |
| LOW | mlx_audio/tts/models/chatterbox/s3gen/__init__.py | 10 | __all__ = [ | CODE |
| LOW | …io/tts/models/chatterbox/s3gen/transformer/__init__.py | 10 | __all__ = [ | CODE |
| LOW | …x_audio/tts/models/chatterbox/s3gen/matcha/__init__.py | 12 | __all__ = [ | CODE |
| LOW | mlx_audio/tts/models/dense/__init__.py | 3 | __all__ = ["Model", "ModelConfig"] | CODE |
| LOW | mlx_audio/tts/models/confucius4/__init__.py | 4 | __all__ = ["Model", "ModelConfig"] | CODE |
| LOW | mlx_audio/tts/models/melotts/__init__.py | 3 | __all__ = ["Model", "ModelConfig"] | CODE |
| LOW | mlx_audio/tts/models/rumik_oss/__init__.py | 3 | __all__ = ["Model", "ModelConfig"] | CODE |
| LOW | mlx_audio/tts/models/moss_tts_delay/__init__.py | 3 | __all__ = ["Model", "ModelConfig"] | CODE |
| LOW | mlx_audio/tts/models/higgs_audio_v3/__init__.py | 17 | __all__ = [ | CODE |
| LOW | mlx_audio/tts/models/tada/__init__.py | 4 | __all__ = ["Model", "ModelConfig"] | CODE |
| LOW | mlx_audio/tts/models/qwen3_tts/__init__.py | 3 | __all__ = ["Model", "ModelConfig"] | CODE |
| LOW | mlx_audio/tts/models/breeze_tts/__init__.py | 4 | __all__ = ["Model", "ModelConfig"] | CODE |
| LOW | mlx_audio/tts/models/moss_tts/__init__.py | 4 | __all__ = ["Model", "ModelConfig"] | CODE |
| LOW | mlx_audio/tts/models/dramabox/__init__.py | 4 | __all__ = ["Model", "ModelConfig"] | CODE |
| LOW | mlx_audio/tts/models/bailingmm/__init__.py | 18 | __all__ = ["Model", "ModelConfig", "convert_campplus_onnx_to_safetensors"] | CODE |
| 49 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| HIGH | mlx_audio/server.py | 954 | Remove a model from the API. Args: model_name (str): The name of the model to remove. Returns: | STRING |
| HIGH | mlx_audio/audio_io.py | 67 | Decode audio using ffmpeg (for formats not supported by miniaudio like M4A). Args: input_data: Path to the | STRING |
| HIGH | mlx_audio/utils.py | 115 | Ensures the model is available locally. If the path does not exist locally, it is downloaded from the Hugging F | STRING |
| HIGH | mlx_audio/utils.py | 157 | Load model configuration from a path or Hugging Face repo. Args: model_path: Local path or Hugging Face rep | STRING |
| HIGH | mlx_audio/utils.py | 181 | Load model weights from safetensors or npz files. Args: model_path: Path to the model directory Return | STRING |
| HIGH | mlx_audio/utils.py | 266 | Retrieve the model architecture module based on the model type and name. Args: model_type: The type of | STRING |
| HIGH | mlx_audio/utils.py | 628 | Load audio from file path or return mx.array as-is. Args: audio: Audio input - can be: - str: P | STRING |
| HIGH | mlx_audio/utils.py | 834 | Load a TTS, STT, STS, LID, or VAD model based on its configuration and name. Args: model_name (str): Name o | STRING |
| HIGH | mlx_audio/lid/models/wav2vec2/wav2vec_lid.py | 106 | Predict language from raw audio waveform. Automatically applies zero-mean unit-variance normalization b | STRING |
| HIGH | mlx_audio/tts/generate.py | 27 | Detect the start and end points of speech in an audio signal using RMS energy. Args: wav: Input audio signa | STRING |
| HIGH | mlx_audio/tts/generate.py | 71 | Remove silence from both ends of an audio signal. Args: wav: Input audio signal array sample_rate: | STRING |
| HIGH | mlx_audio/tts/utils.py | 75 | Retrieve the model architecture module based on the model type and name. This function attempts to find the ap | STRING |
| HIGH | mlx_audio/tts/utils.py | 109 | Load and initialize the model from a given path. Args: model_path (Path): The path to load the model f | STRING |
| HIGH | …odels/chatterbox/s3gen/transformer/upsample_encoder.py | 129 | Make mask tensor containing indices of padded part. Args: lengths: Batch of lengths (B,). max_len: | STRING |
| HIGH | …odels/chatterbox/s3gen/transformer/upsample_encoder.py | 164 | Create mask for subsequent steps (size, size) with chunk size. This is for streaming encoder. Args: si | STRING |
| HIGH | mlx_audio/tts/models/dia/config.py | 239 | Load and validate a Dia configuration from a JSON file. Args: path: The path to the configuration f | STRING |
| HIGH | mlx_audio/tts/models/dia/dia.py | 50 | Loads the Dia model from local configuration and checkpoint files. Args: config_path: Path to the c | STRING |
| HIGH | mlx_audio/tts/models/dia/dia.py | 85 | Loads the Dia model from a Hugging Face Hub repository. Downloads the configuration and checkpoint files from t | STRING |
| HIGH | mlx_audio/tts/models/kokoro/pipeline.py | 312 | Generate audio from either raw phonemes or pre-processed tokens. Args: tokens: Either a phoneme str | STRING |
| HIGH | mlx_audio/tts/models/spark/utils/audio.py | 144 | Detect the start and end points of speech in an audio signal using RMS energy. Args: wav: Input audio signa | STRING |
| HIGH | mlx_audio/tts/models/spark/utils/audio.py | 188 | Remove silence from both ends of an audio signal. Args: wav: Input audio signal array sample_rate: | STRING |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| HIGH | mlx_audio/server.py | 1841 | # Manual-commit mode (turn_detection: null): no VAD, so | COMMENT |
| HIGH | mlx_audio/realtime_vad.py | 187 | events.extend(self._detector.push(prob, VAD_FRAME_MS)) | CODE |
| HIGH⚡ | mlx_audio/tests/test_realtime_vad.py | 73 | events.extend(detector.push(p, frame_ms)) | CODE |
| HIGH | mlx_audio/sts/voice_pipeline.py | 232 | for chunk in self.chunker.push(samples): | CODE |
| HIGH | mlx_audio/sts/models/nemotron_voicechat/streaming.py | 214 | mel = self._mel_stream.push(frame) | CODE |
| HIGH | mlx_audio/sts/models/nemotron_voicechat/streaming.py | 215 | chunks = self._conformer_stream.push(mel, emit_partial=True) | CODE |
| HIGH | …o/sts/models/mossformer2_se/depthwise_conv1d_kernel.py | 31 | if (batch >= B || time >= L_out || chan >= C) { | CODE |
| HIGH | …o/sts/models/mossformer2_se/depthwise_conv1d_kernel.py | 41 | if (in_time >= 0 && in_time < L_in) { | CODE |
| HIGH⚡ | mlx_audio/stt/tests/test_nemotron_asr.py | 173 | chunks.append(frontend.push(audio[start : start + 937])) | CODE |
| HIGH | mlx_audio/stt/tests/test_nemotron_asr.py | 204 | mel = frontend.push(frame) | CODE |
| HIGH | mlx_audio/stt/tests/test_nemotron_asr.py | 205 | outputs = state.push(mel, emit_partial=True) | CODE |
| HIGH | mlx_audio/stt/models/nemotron_asr/session.py | 122 | mel = self._frontend.push(mx.array(samples), final=final) | CODE |
| HIGH | mlx_audio/stt/models/nemotron_asr/session.py | 123 | for encoded in self._encoder.push(mel, final=final): | CODE |
| HIGH | mlx_audio/stt/models/nemotron_asr/speaker_streaming.py | 150 | mel = self._frontend.push(samples, final=final) | CODE |
| HIGH | mlx_audio/stt/models/nemotron_asr/speaker_streaming.py | 197 | for encoded in encoder.push(masked, final=last): | CODE |
| HIGH | mlx_audio/stt/models/nemotron_asr/audio.py | 291 | return self.push(mx.zeros((0,), dtype=self._samples.dtype), final=True) | CODE |
| HIGH | mlx_audio/stt/models/nemotron_asr/streaming.py | 191 | for encoded in state.push(current): | CODE |
| HIGH | mlx_audio/stt/models/nemotron_asr/streaming.py | 195 | for encoded in state.push(current, final=True): | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| MEDIUM | mlx_audio/lm/models/cache.py | 97 | # Create an instance of cls without calling __init__ | COMMENT |
| MEDIUM | mlx_audio/codec/models/snac/vq.py | 44 | # Create a new tensor with the expanded shape | COMMENT |
| MEDIUM | mlx_audio/tts/tests/test_models.py | 16 | # Create a patch for the deprecated open_text function | COMMENT |
| MEDIUM | mlx_audio/tts/tests/test_models.py | 194 | # Create a mock output | COMMENT |
| MEDIUM | mlx_audio/tts/tests/test_models.py | 388 | # Create a mock output | COMMENT |
| MEDIUM | mlx_audio/tts/tests/test_models.py | 393 | # Create a Result instance | COMMENT |
| MEDIUM | mlx_audio/tts/tests/test_models.py | 535 | # Create a minimal config | COMMENT |
| MEDIUM | mlx_audio/tts/tests/test_models.py | 721 | # Create a minimal config | COMMENT |
| MEDIUM | mlx_audio/tts/tests/test_models.py | 775 | # Create a config with tie_word_embeddings=True | COMMENT |
| MEDIUM | mlx_audio/tts/tests/test_models.py | 869 | # Create a minimal config | COMMENT |
| MEDIUM | mlx_audio/tts/tests/test_models.py | 1031 | # Create a minimal config | COMMENT |
| MEDIUM | mlx_audio/tts/tests/test_models.py | 1146 | # Create a config instance | COMMENT |
| MEDIUM | mlx_audio/tts/tests/test_models.py | 2690 | # Create a simple test audio | COMMENT |
| MEDIUM | mlx_audio/tts/tests/test_base.py | 13 | # Define a test subclass | COMMENT |
| MEDIUM | mlx_audio/tts/tests/test_interpolate.py | 42 | # Create a simple test array | COMMENT |
| MEDIUM | mlx_audio/tts/tests/test_interpolate.py | 63 | # Create a simple test array | COMMENT |
| MEDIUM | mlx_audio/tts/models/qwen3/qwen3.py | 142 | # Create a mask and filter manually since boolean indexing isn't supported | COMMENT |
| MEDIUM | mlx_audio/tts/models/dia/dia.py | 510 | # Create a mask for setting tokens beyond 1025 to -inf | COMMENT |
| MEDIUM | mlx_audio/tts/models/spark/modules/blocks/sampler.py | 61 | # Create a new tensor with the expanded shape | COMMENT |
| MEDIUM | mlx_audio/tts/models/llama/llama.py | 174 | # Create a mask and filter manually since boolean indexing isn't supported | COMMENT |
| MEDIUM | mlx_audio/sts/models/sam_audio/model.py | 928 | # Create the generator | COMMENT |
| MEDIUM | mlx_audio/sts/models/mossformer2_se/mossformerblock.py | 74 | # Create a list of attention layers using FLASH_ShareA_FFConvM | COMMENT |
| MEDIUM | …dio/sts/models/mossformer2_se/mossformerblock_gfsmn.py | 65 | # Create a list of Gated FSMN blocks | COMMENT |
| MEDIUM | …dio/sts/models/mossformer2_se/mossformerblock_gfsmn.py | 73 | # Create a list of attention layers using FLASH_ShareA_FFConvM | COMMENT |
| MEDIUM | mlx_audio/stt/models/vibevoice_asr/audio_encoder.py | 67 | # Create the convolution layer (no padding in conv, we'll handle it manually) | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | mlx_audio/audio_io.py | 261 | # Check if this is a file that needs ffmpeg | COMMENT |
| LOW⚡ | mlx_audio/base.py | 21 | # Check if the shape has 4 dimensions | COMMENT |
| LOW⚡ | mlx_audio/base.py | 24 | # Check if out_channels is the largest, and kH and KW are the same | COMMENT |
| LOW⚡ | mlx_audio/base.py | 29 | # Check if the shape has 3 dimensions | COMMENT |
| LOW⚡ | mlx_audio/base.py | 32 | # Check if out_channels is the largest | COMMENT |
| LOW | mlx_audio/lm/models/falcon_h1.py | 461 | # Check if needs sanitization | COMMENT |
| LOW | mlx_audio/codec/models/s3/model_v2.py | 364 | # Check if any audio exceeds 30 seconds | COMMENT |
| LOW | mlx_audio/tests/test_audio_io.py | 14 | # Check if ffmpeg is available for optional tests | COMMENT |
| LOW | mlx_audio/tts/models/base.py | 24 | # Check if the shape has 4 dimensions | COMMENT |
| LOW | mlx_audio/tts/models/base.py | 30 | # Check if out_channels is the largest, and kH and KW are the same | COMMENT |
| LOW | …_audio/tts/models/chatterbox_turbo/chatterbox_turbo.py | 121 | # Check if first argument is a config dict (from load_model) | COMMENT |
| LOW | mlx_audio/tts/models/kugelaudio/kugelaudio.py | 428 | # Check if target key exists | COMMENT |
| LOW⚡ | mlx_audio/tts/models/kitten_tts/istftnet.py | 162 | # Check if channels last match or if groups > 1 for ConvTransposed1d | COMMENT |
| LOW | mlx_audio/tts/models/kitten_tts/istftnet.py | 1005 | # Check if this block has upsampling | COMMENT |
| LOW | mlx_audio/tts/models/vibevoice/vibevoice.py | 264 | # Check if key exists in model | COMMENT |
| LOW | mlx_audio/tts/models/vibevoice/vibevoice.py | 280 | # Check if it's a transposed conv weight | COMMENT |
| LOW | mlx_audio/tts/models/qwen3/qwen3.py | 128 | # Check if we found any tokens BEFORE converting to MLX array | COMMENT |
| LOW | mlx_audio/tts/models/chatterbox/chatterbox.py | 187 | # Check if first argument is a config | COMMENT |
| LOW | mlx_audio/tts/models/chatterbox/chatterbox.py | 511 | # Check if we have quantized weights (scales) for this path | COMMENT |
| LOW | mlx_audio/tts/models/chatterbox/t3/t3.py | 94 | # Check if already converted (idempotent) | COMMENT |
| LOW | mlx_audio/tts/models/chatterbox/s3gen/s3gen.py | 407 | # Check if this is ConvTranspose (ups) or regular Conv | COMMENT |
| LOW | …udio/tts/models/chatterbox/s3gen/matcha/transformer.py | 65 | # Check if it's additive bias (contains large negative values) | COMMENT |
| LOW | mlx_audio/tts/models/outetts/audio_processor.py | 158 | if audio.size == 0: # Check if array is empty | CODE |
| LOW | mlx_audio/tts/models/qwen3_tts/qwen3_tts.py | 1231 | # Check if we should use ICL mode | COMMENT |
| LOW⚡ | mlx_audio/tts/models/kokoro/istftnet.py | 160 | # Check if channels last match or if groups > 1 for ConvTransposed1d | COMMENT |
| LOW | mlx_audio/tts/models/kokoro/istftnet.py | 993 | # Check if this block has upsampling | COMMENT |
| LOW | mlx_audio/tts/models/kokoro/pipeline.py | 177 | # Check if voice exists in local snapshot first | COMMENT |
| LOW | mlx_audio/tts/models/spark/utils/file.py | 61 | # Open the file for reading | COMMENT |
| LOW | mlx_audio/tts/models/spark/utils/file.py | 116 | # Check if there is a base configuration specified and merge if necessary | COMMENT |
| LOW | mlx_audio/tts/models/spark/utils/file.py | 169 | # Set headers to keys from the first dictionary in data if not explicitly provided | COMMENT |
| LOW | mlx_audio/tts/models/spark/modules/residual.py | 130 | # Check if indices are empty | COMMENT |
| LOW | mlx_audio/tts/models/voxcpm/audio_vae.py | 538 | # Check if this is a 3D weight that needs transposition by comparing with model shape | COMMENT |
| LOW | mlx_audio/sts/models/sam_audio/processor.py | 33 | # Check if file exists first | COMMENT |
| LOW | mlx_audio/sts/models/sam_audio/model.py | 507 | ] = None, # Set it to 50 for better performance | CODE |
| LOW | mlx_audio/sts/models/deepfilternet/network.py | 310 | # Check if separable (has pointwise conv at index '2') | COMMENT |
| LOW | …udio/sts/models/mossformer2_se/flash_sharea_ffconvm.py | 230 | # Check if it's mlx.nn.RoPE or custom implementation | COMMENT |
| LOW | mlx_audio/sts/models/mossformer2_se/model.py | 235 | # Check if segmented processing is needed | COMMENT |
| LOW | mlx_audio/sts/models/mossformer2_se/mossformerm.py | 92 | # Set MossFormerBlock to eval mode | COMMENT |
| LOW | mlx_audio/sts/models/mossformer2_se/mossformerm.py | 99 | # Set MossFormerBlock to train mode | COMMENT |
| LOW | mlx_audio/stt/models/qwen3_asr/config.py | 100 | # Check if this is a forced aligner config | COMMENT |
| LOW | mlx_audio/stt/models/whisper/whisper.py | 301 | # Check if this is HuggingFace format (has d_model or encoder_layers) | COMMENT |
| LOW | mlx_audio/stt/models/whisper/whisper.py | 586 | # Check if this is HuggingFace format (has 'model.' prefix) | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW⚡ | …io/tts/models/chatterbox_turbo/models/s3gen/xvector.py | 194 | # Step 1: Remove DC offset per frame (before preemphasis) | COMMENT |
| LOW⚡ | …io/tts/models/chatterbox_turbo/models/s3gen/xvector.py | 198 | # Step 2: Apply preemphasis PER FRAME (Kaldi applies it after framing) | COMMENT |
| LOW⚡ | …io/tts/models/chatterbox_turbo/models/s3gen/xvector.py | 209 | # Step 3: Apply window | COMMENT |
| LOW⚡ | …io/tts/models/chatterbox_turbo/models/s3gen/xvector.py | 212 | # Step 4: Pad to FFT length | COMMENT |
| LOW⚡ | …io/tts/models/chatterbox_turbo/models/s3gen/xvector.py | 216 | # Step 5: Compute FFT and get magnitude/power spectrum | COMMENT |
| LOW⚡ | …io/tts/models/chatterbox_turbo/models/s3gen/xvector.py | 222 | # Step 6: Apply mel filterbank | COMMENT |
| LOW⚡ | …io/tts/models/chatterbox_turbo/models/s3gen/xvector.py | 225 | # Step 7: Apply log with epsilon floor | COMMENT |
| LOW⚡ | mlx_audio/sts/models/mel_roformer/model.py | 587 | # Step 1: STFT → real/imag [B, 2, freq_bins, T] | COMMENT |
| LOW⚡ | mlx_audio/sts/models/mel_roformer/model.py | 593 | # Step 2: CaC interleave — [B, 2, freq_bins, T] → [B, freq_bins*2, T] | COMMENT |
| LOW⚡ | mlx_audio/sts/models/mel_roformer/model.py | 600 | # Step 3: BandSplit → [B, T, num_bands, dim] | COMMENT |
| LOW⚡ | mlx_audio/sts/models/mel_roformer/model.py | 605 | # Step 4: 6× dual-axis transformer | COMMENT |
| LOW⚡ | mlx_audio/sts/models/mel_roformer/model.py | 617 | # Step 5: Mask estimation → list of [B, T, band_dim] | COMMENT |
| LOW⚡ | mlx_audio/sts/models/mel_roformer/model.py | 620 | # Step 6: Merge masks → [B, freq_bins*2, T, 2] | COMMENT |
| LOW⚡ | mlx_audio/sts/models/mel_roformer/model.py | 623 | # Step 7: Complex multiply (input × mask) | COMMENT |
| LOW⚡ | mlx_audio/sts/models/mel_roformer/model.py | 632 | # Step 8: De-interleave → [B, 2, freq_bins, T] | COMMENT |
| LOW⚡ | mlx_audio/sts/models/mel_roformer/model.py | 636 | # Step 9: iSTFT → [B, 2, samples] | COMMENT |
| LOW⚡ | …o/sts/models/mossformer2_se/flash_attention_kernels.py | 115 | # Step 1: Q @ K^T scaled | COMMENT |
| LOW⚡ | …o/sts/models/mossformer2_se/flash_attention_kernels.py | 118 | # Step 2: Apply fused ReLU² kernel | COMMENT |
| LOW | …o/sts/models/mossformer2_se/flash_attention_kernels.py | 133 | # Step 3: Attention @ V | COMMENT |
| LOW | mlx_audio/stt/models/qwen3_asr/qwen3_asr.py | 973 | # Step 1: Encode audio features | COMMENT |
| LOW | mlx_audio/stt/models/qwen3_asr/qwen3_asr.py | 987 | # Step 2: Build input embeddings with audio merged | COMMENT |
| LOW | docs/contributing/adding-a-model.md | 28 | ## Step 1: Create the Model Package | COMMENT |
| LOW | docs/contributing/adding-a-model.md | 39 | ## Step 2: Implement the Model | COMMENT |
| LOW | docs/contributing/adding-a-model.md | 148 | ## Step 3: Register the Model | COMMENT |
| LOW | docs/contributing/adding-a-model.md | 185 | ## Step 4: Convert and Test | COMMENT |
| LOW | docs/contributing/adding-a-model.md | 230 | ## Step 5: Add Documentation | COMMENT |
| LOW⚡ | docs/models/tts/omnivoice.md | 45 | # Step 1: Preprocess reference audio (silence removal, RMS norm) | COMMENT |
| LOW⚡ | docs/models/tts/omnivoice.md | 49 | # Step 2: Decode preprocessed tokens back to audio, then transcribe | COMMENT |
| LOW⚡ | docs/models/tts/omnivoice.md | 59 | # Step 3: Generate with ref_tokens + ref_text from the same source | COMMENT |
| LOW | examples/qwen3_asr_transcription.py | 55 | # Step 1: Transcribe audio with Qwen3-ASR | COMMENT |
| LOW | examples/qwen3_asr_transcription.py | 90 | # Step 2: Run forced alignment with Qwen3-ForcedAligner | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW⚡ | …io/tts/models/chatterbox_turbo/models/s3gen/xvector.py | 194 | # Step 1: Remove DC offset per frame (before preemphasis) | COMMENT |
| LOW⚡ | …io/tts/models/chatterbox_turbo/models/s3gen/xvector.py | 198 | # Step 2: Apply preemphasis PER FRAME (Kaldi applies it after framing) | COMMENT |
| LOW⚡ | …io/tts/models/chatterbox_turbo/models/s3gen/xvector.py | 209 | # Step 3: Apply window | COMMENT |
| LOW⚡ | …io/tts/models/chatterbox_turbo/models/s3gen/xvector.py | 212 | # Step 4: Pad to FFT length | COMMENT |
| LOW⚡ | …io/tts/models/chatterbox_turbo/models/s3gen/xvector.py | 216 | # Step 5: Compute FFT and get magnitude/power spectrum | COMMENT |
| LOW⚡ | …io/tts/models/chatterbox_turbo/models/s3gen/xvector.py | 222 | # Step 6: Apply mel filterbank | COMMENT |
| LOW⚡ | …io/tts/models/chatterbox_turbo/models/s3gen/xvector.py | 225 | # Step 7: Apply log with epsilon floor | COMMENT |
| LOW⚡ | mlx_audio/sts/models/mel_roformer/model.py | 587 | # Step 1: STFT → real/imag [B, 2, freq_bins, T] | COMMENT |
| LOW⚡ | mlx_audio/sts/models/mel_roformer/model.py | 593 | # Step 2: CaC interleave — [B, 2, freq_bins, T] → [B, freq_bins*2, T] | COMMENT |
| LOW⚡ | mlx_audio/sts/models/mel_roformer/model.py | 600 | # Step 3: BandSplit → [B, T, num_bands, dim] | COMMENT |
| LOW⚡ | mlx_audio/sts/models/mel_roformer/model.py | 605 | # Step 4: 6× dual-axis transformer | COMMENT |
| LOW⚡ | mlx_audio/sts/models/mel_roformer/model.py | 617 | # Step 5: Mask estimation → list of [B, T, band_dim] | COMMENT |
| LOW⚡ | mlx_audio/sts/models/mel_roformer/model.py | 620 | # Step 6: Merge masks → [B, freq_bins*2, T, 2] | COMMENT |
| LOW⚡ | mlx_audio/sts/models/mel_roformer/model.py | 623 | # Step 7: Complex multiply (input × mask) | COMMENT |
| LOW⚡ | mlx_audio/sts/models/mel_roformer/model.py | 632 | # Step 8: De-interleave → [B, 2, freq_bins, T] | COMMENT |
| LOW⚡ | mlx_audio/sts/models/mel_roformer/model.py | 636 | # Step 9: iSTFT → [B, 2, samples] | COMMENT |
| LOW⚡ | …o/sts/models/mossformer2_se/flash_attention_kernels.py | 115 | # Step 1: Q @ K^T scaled | COMMENT |
| LOW⚡ | …o/sts/models/mossformer2_se/flash_attention_kernels.py | 118 | # Step 2: Apply fused ReLU² kernel | COMMENT |
| LOW | …o/sts/models/mossformer2_se/flash_attention_kernels.py | 133 | # Step 3: Attention @ V | COMMENT |
| LOW | mlx_audio/stt/models/qwen3_asr/qwen3_asr.py | 973 | # Step 1: Encode audio features | COMMENT |
| LOW | mlx_audio/stt/models/qwen3_asr/qwen3_asr.py | 987 | # Step 2: Build input embeddings with audio merged | COMMENT |
| LOW | examples/qwen3_asr_transcription.py | 55 | # Step 1: Transcribe audio with Qwen3-ASR | COMMENT |
| LOW | examples/qwen3_asr_transcription.py | 90 | # Step 2: Run forced alignment with Qwen3-ForcedAligner | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| HIGH | mlx_audio/lid/utils.py | 0 | load and initialize an stt model from a given path. args: model_path: the path or huggingface repo to load the model fro | STRING |
| HIGH | mlx_audio/vad/utils.py | 0 | load and initialize an stt model from a given path. args: model_path: the path or huggingface repo to load the model fro | STRING |
| HIGH | mlx_audio/stt/utils.py | 0 | load and initialize an stt model from a given path. args: model_path: the path or huggingface repo to load the model fro | STRING |
| HIGH | mlx_audio/tts/models/qwen3/qwen3.py | 0 | hook called after model weights are loaded. used to initialize the tokenizer which is required for text input. | STRING |
| HIGH | mlx_audio/tts/models/spark/spark.py | 0 | hook called after model weights are loaded. used to initialize the tokenizer which is required for text input. | STRING |
| HIGH | mlx_audio/tts/models/voxcpm/voxcpm.py | 0 | hook called after model weights are loaded. used to initialize the tokenizer which is required for text input. | STRING |
| HIGH | mlx_audio/stt/models/glmasr/glmasr.py | 0 | hook called after model weights are loaded. used to initialize the tokenizer which is required for text input. | STRING |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| MEDIUM | mlx_audio/tts/tests/test_models.py | 9047 | # Simulate zero-shot input | COMMENT |
| MEDIUM | mlx_audio/tts/models/voxcpm2/voxcpm2.py | 616 | # In zero-shot/ref modes, warmup patches are generated for conditioning | COMMENT |
| MEDIUM | mlx_audio/tts/models/tada/tada.py | 1334 | # For zero-shot: skip structural prefix features | COMMENT |
| MEDIUM | mlx_audio/sts/models/mimo_audio/README.md | 104 | ## Base: few-shot speech tasks and completion | COMMENT |
| MEDIUM | mlx_audio/stt/models/whisper/whisper.py | 1192 | # skip silence before possible hallucinations | COMMENT |
| MEDIUM | mlx_audio/stt/models/whisper/whisper.py | 1207 | # if first segment might be a hallucination, skip leading silence | COMMENT |
| MEDIUM | mlx_audio/stt/models/whisper/whisper.py | 1219 | # skip silence before any possible hallucination that is surrounded | COMMENT |
| MEDIUM | mlx_audio/stt/models/whisper/whisper.py | 1220 | # by silence or more hallucinations | COMMENT |
| MEDIUM | examples/nemotron_diarization_asr.py | 231 | # Silence has no speaker stream to transcribe; avoid ASR silence hallucinations. | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | …udio/tts/models/chatterbox_turbo/models/s3gen/s3gen.py | 441 | COMMENT | |
| LOW | mlx_audio/tts/models/omnivoice/duration.py | 1 | #!/usr/bin/env python3 | COMMENT |
| LOW | mlx_audio/tts/models/chatterbox/s3gen/s3gen.py | 361 | ) | COMMENT |
| LOW | mlx_audio/tts/models/spark/utils/audio.py | 1 | # Copyright (c) 2025 SparkAudio | COMMENT |
| LOW | …/tts/models/spark/modules/speaker/perceiver_encoder.py | 1 | # Copyright (c) 2025 SparkAudio | COMMENT |
| LOW | …x_audio/tts/models/spark/modules/speaker/ecapa_tdnn.py | 1 | # Copyright (c) 2021 Zhengyang Chen (chenzhengyang117@gmail.com) | COMMENT |
| LOW | …x_audio/tts/models/spark/modules/speaker/ecapa_tdnn.py | 281 | # x_np = torch.randn(1, 200, 80) | COMMENT |
| LOW | …dio/tts/models/spark/modules/speaker/pooling_layers.py | 1 | # Copyright (c) 2021 Shuai Wang (wsstriving@gmail.com) | COMMENT |
| LOW | …io/tts/models/spark/modules/speaker/speaker_encoder.py | 1 | # Copyright (c) 2025 SparkAudio | COMMENT |
| LOW | …s/models/spark/modules/encoder_decoder/feat_decoder.py | 1 | # Copyright (c) 2025 SparkAudio | COMMENT |
| LOW | …s/models/spark/modules/encoder_decoder/feat_encoder.py | 1 | # Copyright (c) 2025 SparkAudio | COMMENT |
| LOW | mlx_audio/vad/models/sortformer/convert.py | 41 | # | COMMENT |
| LOW | mlx_audio/vad/models/fsmn/convert.py | 41 | # 2. 去掉多余的 ".linear" (in_linear1.linear.weight → in_linear1.weight) | COMMENT |
| LOW | mlx_audio/sts/models/sam_audio/model.py | 1301 | ) | COMMENT |
| LOW | …udio/sts/models/mossformer2_se/flash_sharea_ffconvm.py | 341 | # Compute k^T @ v: (batch, query_key_dim, value_dim) | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| HIGH | mlx_audio/tts/models/sesame/sesame.py | 672 | # This applies an imperceptible watermark to identify audio as AI-generated. | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| HIGH | mlx_audio/tts/models/voxcpm/audio_vae.py | 228 | # I'll implement it just in case. | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | mlx_audio/tts/models/voxcpm2/README.md | 88 | --ref_text "placeholder" \ | CODE |
| LOW | mlx_audio/tts/models/kitten_tts/preprocess.py | 669 | "555-1234" → "five five five one two three four" | STRING |