{"granite_fp16_candidate":{"config":{"architectures":["GraniteSpeech5ForCTC"],"ctc_loss_reduction":"mean","ctc_zero_infinity":true,"dtype":"bfloat16","encoder_config":{"activation_dropout":0.0,"attention_bias":true,"attention_dropout":0.0,"context_size":128,"conv_expansion_factor":2,"conv_kernel_size":7,"head_dim":128,"hidden_act":"silu","hidden_size":1024,"initializer_range":0.02,"intermediate_size":4096,"max_position_embeddings":512,"model_type":"granite_speech5_encoder","num_attention_heads":8,"num_hidden_layers":16,"num_key_value_heads":8,"num_mel_bins":80,"subsample_layers":[0,1],"vocab_size":16384},"initializer_range":0.02,"model_type":"granite_speech5_ctc","pad_token_id":0,"tie_word_embeddings":true,"transformers_version":"5.16.0.dev0","vocab_size":16384},"files":[{"blobId":"a6344aac8c09253b3b630fb776ae94478aa0275b","rfilename":".gitattributes","size":1519},{"blobId":"dcb812c7b9a71b8324f7e9300cfb8816acc6f9ae","rfilename":"README.md","size":4164},{"blobId":"414a84beb986d361bf0deea530a26dbc976fd556","rfilename":"config.json","size":926},{"blobId":"8420944da0737bb633731744de1e39c8fa083403","rfilename":"generation_config.json","size":158},{"blobId":"f3307d2c61bb8289d57638b60065702c91bdcadd","rfilename":"granite-mlx-manifest.json","size":2591},{"blobId":"6fdc63b202f3a2a72a7034935c65407d9935608a","lfs":{"pointerSize":134,"sha256":"4687cafcc38c99e6a1aa16c2d421699395a5f3c521b3bc5420e02fb3f7ffdc1d","size":946047608},"rfilename":"model.safetensors","size":946047608},{"blobId":"c8222a479c4928f120b872bb6de1216759f4d450","rfilename":"preprocessor_config.json","size":327},{"blobId":"d4eb351001a12367c7defce320ced6ae7dc6921a","rfilename":"processor_config.json","size":430},{"blobId":"1eb4e3283fb905c14d3ea1f0aa6619d631ac9e05","rfilename":"tokenizer.json","size":1137492},{"blobId":"eaef00853556fc57f9cb575dd2f92b10beaee211","rfilename":"tokenizer_config.json","size":218}],"limitations":["No complete tensor-name/shape inventory or strict weight load was performed.","Metadata compatibility does not establish quality, latency, or numerical parity."],"repo":"iky1e/granite-speech-5.0-470m-turboctc-mlx-fp16","revision":"319abff7072204bc6cd30485aac58da6c1216214","source":{"model_id":"ibm-granite/granite-speech-5.0-470m-turboctc","revision":"7e74c6438b7cfb5090cb6a131538f5e8515a7de3"},"status":"static_candidate_not_loaded_or_qualified","total_file_bytes":947195433,"weight":{"blobId":"6fdc63b202f3a2a72a7034935c65407d9935608a","lfs":{"pointerSize":134,"sha256":"4687cafcc38c99e6a1aa16c2d421699395a5f3c521b3bc5420e02fb3f7ffdc1d","size":946047608},"rfilename":"model.safetensors","size":946047608},"weight_layout_claims":{"depthwise_conv_transpose":"[O,I,K] to [O,K,I]","tracked_batch_counters_removed":true}},"granite_q8":{"blocker":{"effect":"The loader ignores nested group_sizes and keeps input_linear as unquantized Linear. Non-strict weight loading can accept the packed tensor without checking shape, so successful preload alone would not prove usable inference. A later request may fail or be invalid. No live failure is claimed.","extracted_predicate_probe":{"bits":8,"group_size":128,"mode":"affine","predicates":{"encoder.input_linear":false,"encoder.layers.0.ffn1.linear1":true}},"global_divisibility_remainder":64,"global_group_size":128,"input_width":320,"installed_source_lines":["mlx_audio/utils.py:230-251","mlx_audio/stt/models/granite_speech5_ctc/granite_speech5.py:283","mlx_audio/stt/models/granite_speech5_ctc/granite_speech5.py:477-489"],"layer":"encoder.input_linear","layer_group_size":64,"per_layer_divisibility_remainder":0,"width_derivation":"encoder_config.num_mel_bins (80) * 4, as instantiated by the pinned Granite model"},"conversion_manifest":{"format":"granite-mlx","precision":"fp16","quantization":{"bits":8,"group_size":128,"group_sizes":{"encoder.input_linear":64},"mode":"affine","quantized_tensor_count":179},"quantized_tensor_count":null,"source":{"model_id":"ibm-granite/granite-speech-5.0-470m-turboctc","revision":"7e74c6438b7cfb5090cb6a131538f5e8515a7de3"},"transposed_tensors":["encoder.layers.0.conv.depthwise_conv.weight","encoder.layers.1.conv.depthwise_conv.weight","encoder.layers.10.conv.depthwise_conv.weight","encoder.layers.11.conv.depthwise_conv.weight","encoder.layers.12.conv.depthwise_conv.weight","encoder.layers.13.conv.depthwise_conv.weight","encoder.layers.14.conv.depthwise_conv.weight","encoder.layers.15.conv.depthwise_conv.weight","encoder.layers.2.conv.depthwise_conv.weight","encoder.layers.3.conv.depthwise_conv.weight","encoder.layers.4.conv.depthwise_conv.weight","encoder.layers.5.conv.depthwise_conv.weight","encoder.layers.6.conv.depthwise_conv.weight","encoder.layers.7.conv.depthwise_conv.weight","encoder.layers.8.conv.depthwise_conv.weight","encoder.layers.9.conv.depthwise_conv.weight"]},"durable_remedies":[{"kind":"explicit_different_artifact_candidate","reason":"FP16 conversion avoids quantized group-size dispatch entirely. Static candidate only, requiring exact verified pull, managed preload and independent audio smoke.","repo":"iky1e/granite-speech-5.0-470m-turboctc-mlx-fp16","revision":"319abff7072204bc6cd30485aac58da6c1216214"},{"kind":"reviewed_derived_runtime","requirement":"Honor nested per-path group_sizes before the global divisibility filter, construct the 320-wide input layer at 64 while preserving remaining layers at 128, and pin the changed runtime separately with focused regression tests. No runtime mutation or implementation was performed."}],"model_type":"granite_speech5_ctc","quantization":{"bits":8,"group_size":128,"group_sizes":{"encoder.input_linear":64},"mode":"affine"},"repo":"iky1e/granite-speech-5.0-470m-turboctc-mlx-q8","revision":"f8911a51b3be9092a71fd0c676b9d8c3b9812035","status":"static_incompatible_do_not_load_with_unmodified_pinned_runtime","unsafe_workarounds":["Do not edit the immutable snapshot config.","Do not set global group_size to 64: other tensors were encoded with group_size 128.","Do not treat cached model metadata/readiness as a quantization compatibility smoke."],"weight_files":[{"blobId":"8c8a05866ed56666483aabce89b821d1c66b135b","lfs":{"pointerSize":134,"sha256":"8573d17e397c58d4fb32ca954b5e9938c565f8b840ed90027c1a322780b4005b","size":488666129},"rfilename":"model.safetensors","size":488666129}],"weight_index_present":false,"weight_tensor_inventory_observed":false},"local_source_evidence":[{"path":"runtime-artifact:audio-runtime/lib/python3.13/site-packages/mlx_audio/utils.py","sha256":"a9a6e2c29962949ce0e278d4b923394d81529586feec4599616af292ce64de42"},{"path":"runtime-artifact:audio-runtime/lib/python3.13/site-packages/mlx_audio/stt/utils.py","sha256":"ee1e5c954b0dd2b1618b638179a758a002e5207bdd55fd411b91cf5f97d5d21d"},{"path":"runtime-artifact:audio-runtime/lib/python3.13/site-packages/mlx_audio/registry.py","sha256":"d3fcc464f2c897fb0da98239e8939672abf6b665d80200f7b33e0fd2332b704a"},{"path":"runtime-artifact:audio-runtime/lib/python3.13/site-packages/mlx_audio/stt/models/granite_speech5_ctc/granite_speech5.py","sha256":"2cac937fc3ce4f22f6872146b3f9f8c1b2a4f7bff5b8fac4caffbe2674e7ecae"},{"path":"runtime-artifact:audio-runtime/lib/python3.13/site-packages/mlx_audio/stt/models/nemotron_asr/config.py","sha256":"c5a8a98204a7b739dff6e41b618132b02df9a2ac339882f7b79759f73d13e706"},{"path":"runtime-artifact:audio-runtime/lib/python3.13/site-packages/mlx/nn/layers/base.py","sha256":"ec749e1d50fd1a5e57e0aedc8e6eb13fc697e630f59333a0e24aee62a8dc7f0f"}],"nemotron_english":{"config_fields":{"att_context_size":[[70,13],[70,6],[70,1],[70,0]],"causal_downsampling":true,"conv_norm_type":"layer_norm","model_type":null,"quantization":{"bits":8,"group_size":64},"target":"nemo.collections.asr.models.rnnt_bpe_models.EncDecRNNTBPEModel","vocab_size":1024},"converter_source_revision":"4888115ea5ee6aa95491523ff5c59aafe640f5c6","decision":"Retain the artifact as blocked metadata-only candidate. Do not build a new engine or fake config fields for this campaign. Choose a declared compatible STT artifact/runtime separately.","mlx_audio_blockers":["The exact config has no model_type, and pinned STT remapping does not select this English Nemotron conversion.","The installed nemotron_asr loader targets Nemotron 3.5 EncDecRNNTBPEModelWithPrompt with a mandatory prompt configuration and different conversion schema. Assigning its model_type would substitute a different architecture."],"parakeet_runtime_checks":[{"result":"RNNT target recognized, but causal_downsampling=True rejected with NotImplementedError; no conv_norm_type support.","role":"converter lockfile dependency","version":"0.4.1","wheel_sha256":"9ab4afe49c655d28d52d4790bb1b3dc7933834542c60e01232eb59dcf6a627f0"},{"result":"Same causal_downsampling rejection; from_pretrained also lacks config-driven quantization application.","source_revision":"2d9748c04aca31405274a13c20ef9b62f1a73351","version":"0.5.3","wheel_sha256":"64c1f0f48445f6a1b99e6ddc2670f9b4d7218e0237ba883a8cfa850b24dca7c8"}],"repo":"animaslabs/nemotron-speech-streaming-en-0.6b-mlx-8bit","revision":"678a03646fceb33f78d1aa18897726cfd73b8943","status":"static_incompatible_no_straight_supported_versioned_runtime_found"},"observed_at_utc":"2026-10-06T07:30:29.115099+00:00","public_sources":[{"bytes":2352,"kind":"public_metadata_or_source_only","retrieved_at_utc":"2026-10-06T07:30:27.878015+00:00","sha256":"221583348e9bf9bf308b1b2dc459f2fe64e188daf72ae636da2a6fa039fea06c","url":"https://huggingface.co/api/models/iky1e/granite-speech-5.0-470m-turboctc-mlx-fp16/revision/319abff7072204bc6cd30485aac58da6c1216214?blobs=true"},{"bytes":926,"kind":"public_metadata_or_source_only","retrieved_at_utc":"2026-10-06T07:30:27.974403+00:00","sha256":"41b72a7596bebe5106573f9e0f64c6b0acdac145373386946e7d1ef277fe0c9f","url":"https://huggingface.co/iky1e/granite-speech-5.0-470m-turboctc-mlx-fp16/raw/319abff7072204bc6cd30485aac58da6c1216214/config.json"},{"bytes":2591,"kind":"public_metadata_or_source_only","retrieved_at_utc":"2026-10-06T07:30:28.078284+00:00","sha256":"866a26f08fcd99bb98fa9547be0285e3583426296c652e101a21f7e96e5938ff","url":"https://huggingface.co/iky1e/granite-speech-5.0-470m-turboctc-mlx-fp16/raw/319abff7072204bc6cd30485aac58da6c1216214/granite-mlx-manifest.json"},{"bytes":2879,"kind":"public_metadata_or_source_only","retrieved_at_utc":"2026-10-06T07:30:28.182543+00:00","sha256":"27dd5c3a118e129536623055ad2ee4a1ea6a5723eab12d63357c30f0ba97937a","url":"https://huggingface.co/iky1e/granite-speech-5.0-470m-turboctc-mlx-q8/raw/f8911a51b3be9092a71fd0c676b9d8c3b9812035/granite-mlx-manifest.json"},{"bytes":4252,"kind":"public_metadata_or_source_only","retrieved_at_utc":"2026-10-06T07:30:28.296819+00:00","sha256":"c47f24eda508e205035678d403c8bc9441eccf35d2934bf392f2235a1cb01f49","url":"https://huggingface.co/iky1e/granite-speech-5.0-470m-turboctc-mlx-q8/raw/f8911a51b3be9092a71fd0c676b9d8c3b9812035/README.md"},{"bytes":2028,"kind":"public_metadata_or_source_only","retrieved_at_utc":"2026-10-06T07:30:28.393212+00:00","sha256":"0eb528a691bc52545c437ce57e3797453d21832dc84e40a33c4cc0ca893dd9a4","url":"https://huggingface.co/animaslabs/nemotron-speech-streaming-en-0.6b-mlx-8bit/raw/678a03646fceb33f78d1aa18897726cfd73b8943/README.md"},{"bytes":236331,"kind":"public_metadata_or_source_only","retrieved_at_utc":"2026-10-06T07:30:28.438360+00:00","sha256":"4cd572299fe637832e847ff404d6a469f1c022bd377a95c59890b471f9aaaa91","url":"https://raw.githubusercontent.com/animaslabs/mlx-models/4888115ea5ee6aa95491523ff5c59aafe640f5c6/uv.lock"},{"bytes":20695,"kind":"public_metadata_or_source_only","retrieved_at_utc":"2026-10-06T07:30:28.469762+00:00","sha256":"b43d1c2b4cfa32225166672310d090c713a1af0d3c35a5805875ed3deccff318","url":"https://raw.githubusercontent.com/animaslabs/mlx-models/4888115ea5ee6aa95491523ff5c59aafe640f5c6/convert_nemo.py"},{"bytes":4141,"kind":"public_metadata_or_source_only","retrieved_at_utc":"2026-10-06T07:30:28.676230+00:00","sha256":"2e31d75a817013ac2ee9461bab6ccbd48a6519ef291e28bdd12060ba6fb40f99","url":"https://api.github.com/repos/senstella/parakeet-mlx/commits/2d9748c04aca31405274a13c20ef9b62f1a73351"},{"bytes":13804,"kind":"public_metadata_or_source_only","retrieved_at_utc":"2026-10-06T07:30:28.862198+00:00","sha256":"a3291f158dac4a203d7565a031f14585aba9eadc75de2f06cac62a48da4cd362","url":"https://raw.githubusercontent.com/senstella/parakeet-mlx/2d9748c04aca31405274a13c20ef9b62f1a73351/parakeet_mlx/conformer.py"},{"bytes":2668,"kind":"public_metadata_or_source_only","retrieved_at_utc":"2026-10-06T07:30:29.008583+00:00","sha256":"62bba06c888428ac07748815e40093b25bf4c5bd5ab683b4448741c4eaab9e47","url":"https://raw.githubusercontent.com/senstella/parakeet-mlx/2d9748c04aca31405274a13c20ef9b62f1a73351/parakeet_mlx/utils.py"},{"bytes":13693,"kind":"public_metadata_or_source_only","retrieved_at_utc":"2026-10-06T07:30:29.111234+00:00","sha256":"b15b14d8a87bd8166bfeb12b96b0b8cc948faa62dc241796dba09900ef81c847","url":"https://pypi.org/pypi/parakeet-mlx/0.5.3/json"}],"runtime":{"distribution":"mlx-audio","revision":"70f4add32911bab6f869b824864ad9f1e24dcb97","source":"https://github.com/Blaizzy/mlx-audio","version":"0.5.8"},"schema":"anvil-serving-voice-compatibility-notes/v1","scope":{"basis":"Exact public configs/manifests, public versioned runtime source, installed source, and a stdlib-only extracted quantization-predicate probe.","host_lifecycle_performed":false,"inference_performed":false,"model_load_performed":false,"weight_headers_requested":false,"weights_downloaded":false}}
