Instructions to use majentik/Gemma-4-E4B-BF16-MERaLiON-Speech-LoRA-SG-MLX with libraries, inference providers, notebooks, and local apps. Follow these links to get started.
- Libraries
- MLX
How to use majentik/Gemma-4-E4B-BF16-MERaLiON-Speech-LoRA-SG-MLX with MLX:
# Download the model from the Hub pip install huggingface_hub[hf_xet] huggingface-cli download --local-dir Gemma-4-E4B-BF16-MERaLiON-Speech-LoRA-SG-MLX majentik/Gemma-4-E4B-BF16-MERaLiON-Speech-LoRA-SG-MLX
- Notebooks
- Google Colab
- Kaggle
- Local Apps Settings
- LM Studio
- Atomic Chat
Gemma-4-E4B-BF16 + MERaLiON Speech LoRA for Singapore English (MLX)
A composed Singapore-English ASR model that connects the MERaLiON-3 speech encoder to a BF16 Gemma-4-E4B decoder through a trained projector and rank-16 speech LoRA.
This BF16 release is the recommended quality-first edition: it keeps the decoder in native bfloat16, avoids quantization artifacts, and improves the standalone MERaLiON-3 baseline by 9.69 WER points on the MNSC ASR Part 2 test set.
Acknowledgment and public-release license notice
The development of this product/service was assisted by MERaLiON, an AI model developed by the Agency for Science Technology And Research ("A*STAR").
This model is a derivative work of Gemma 4 (Apache 2.0) and is distributed subject to the Gemma Terms of Use (ai.google.dev/gemma/terms) and the Gemma Prohibited Use Policy (see licenses/gemma-prohibited-use-policy.txt). All downstream users are bound by Gemma Section 3.2 use restrictions, the Gemma Prohibited Use Policy, the MERaLiON-3 Public Licence, and the Singapore Open Data Licence v1 for the MNSC-derived components.
Bundled local license texts include licenses/gemma-prohibited-use-policy.txt, licenses/gemma-4-apache-2.txt, licenses/gemma-terms.txt, licenses/meralion-public-license-v3.txt, and licenses/singapore-open-data-licence-v1.txt.
Important: this is a private full-bundle MLX release, not a vanilla
transformers.pipelinecheckpoint. Use the bundledruntime/(or equivalent wiring) to connectspeech_encoder/,projector/,decoder/, andlora/.Identity note: This private full-bundle package converts the SG-named adapter repo into a complete MLX bundle using the MNSC-evaluated BF16 full-bundle source. The evaluation rerun is for MNSC ASR Part 2; the SG slug is the repo identifier inherited from the prior public adapter release. No new SG-only evaluation beyond MNSC ASR Part 2 is claimed.
Result summary
Evaluated on MERaLiON Multitask National Speech Corpus v1 — ASR Part 2 Test (3000 utterance-level clips).
| System | WER ↓ | Notes |
|---|---|---|
| MERaLiON-3 baseline | 25.78% | stock MERaLiON-3 encoder + native decoder |
| 8-bit Gemma-4 + MERaLiON speech LoRA | 18.86% | smaller sibling release |
| This BF16 release | 16.09% | best-quality bundle |
- Absolute improvement vs. MERaLiON-3 baseline: −9.69pp
- Absolute improvement vs. 8-bit sibling: −2.77pp
- Normalization: lowercase, ASCII punctuation stripped, whitespace collapsed, speaker-prefix tags removed from reference and hypothesis.
Audience
Currently owner-only/private. A public visibility flip is authorized only if the public-release license gate passes and the user explicitly approves the follow-up visibility change. Do not infer public status from this preparation.
Example outputs
These are actual model outputs from artifacts/run_3000_bf16_r16mlp/eval_predictions.jsonl, selected from the held-out MNSC ASR Part 2 test set. Each row scores 0% WER under the release normalizer (lowercase, punctuation removed, whitespace collapsed).
| # | Reference | Model output | WER |
|---|---|---|---|
| 1 | There IS A Food Court Selling Chicken Pasta behind Delmas' House | There is a food court selling Chicken Pasta behind Delma's house. | 0% |
| 2 | what is the distance to The Seletar Mall | What is the distance to The Seletar Mall? | 0% |
| 3 | Number sequence IS S seven six nine Zero four one three A and Date of birth IS thirteen September nineteen seventy seven | Number sequence is S. seven, six, nine, zero, four, one, three, A, and date of birth is thirteen, September, nineteen seventy seven. | 0% |
| 4 | six nine eight four four six eight three five three | Six, nine, eight, four, four, six, eight, three, five, three. | 0% |
| 5 | eight five six four one seven four five | Eight, five, six, four, one, seven, four, five. | 0% |
| 6 | Pita is a Traditional Local Cuisine | Pita is a traditional local cuisine. | 0% |
| 7 | it is faster to take the bus to Jalan Asas | It is faster to take the bus to Jalan Asas. | 0% |
| 8 | a new television show documented the lives of various people including Syed Sheikh Syed Ahmad Al Hadi and Lucien Wang | A new television show documented the lives of various people, including Syed Sheikh Syed Ahmad Al Hadi and Lucien Wang. | 0% |
| 9 | Hiyashi Chuka Takikomi Gohan and Fugu | Hiyashi Chuka Takikomi Gohan and Fugu. | 0% |
| 10 | where can I get cheap food in Kathmandu | Where can I get Cheap Food in Kathmandu? | 0% |
Across the full saved evaluation file, 1071 / 3000 utterances scored 0% WER, and another 857 scored ≤20% WER under the same normalizer.
What is inside
| Path | Contents | Precision |
|---|---|---|
decoder/ |
Gemma-4-E4B instruction decoder, MLX format | bfloat16 |
speech_encoder/ |
MERaLiON-3 acoustic encoder + frame adaptor | fp16 |
projector/ |
LayerNorm -> Linear(3584,3072) -> SiLU -> Linear(3072,2560) -> RMSNorm |
fp32 |
lora/ |
rank-16 speech-alignment LoRA adapters + lora_config.json |
fp32 |
config.json |
composition manifest | JSON |
runtime/ |
Bundled MLX composition and inference runtime (runtime/inference.py, runtime/meralion3/) |
Python |
PROVENANCE.md |
chain of custody, evaluation, license notes | Markdown |
No MNSC-derived audio sample or sample metadata is bundled. For inference, bring your own 16 kHz mono PCM16 WAV.
The speech path is:
audio -> Whisper-style log-mel -> MERaLiON-3 encoder/adaptor -> 3584-d speech embeddings
-> projector -> 2560-d Gemma embedding space -> Gemma-4-E4B BF16 + speech LoRA -> text
Quickstart
Download or locate the private full bundle. Bring your own 16 kHz mono PCM16 WAV; no MNSC-derived recording is packaged. Then use the bundled runtime from this repository root:
from pathlib import Path
import sys
from huggingface_hub import snapshot_download
bundle = Path(snapshot_download("majentik/Gemma-4-E4B-BF16-MERaLiON-Speech-LoRA-SG-MLX"))
sys.path.insert(0, str(bundle))
from runtime.inference import load_pipeline, transcribe_with_pipeline
pipeline = load_pipeline(
meralion_dir=str(bundle / "speech_encoder"),
gemma_id=str(bundle / "decoder"),
projector_path=str(bundle / "projector"),
lora_path=str(bundle / "lora"),
lora_rank=16,
lora_target_names=(
"q_proj", "k_proj", "v_proj", "o_proj",
"gate_proj", "up_proj", "down_proj",
),
)
text = transcribe_with_pipeline(pipeline, "your_audio.wav", max_tokens=128)
print(text)
Runtime notes:
lora_pathshould point to the directory containingadapters.safetensors(lora/), not to the file itself.- The target module list must match the adapter:
q/k/v/o/gate/up/downacross all 42 decoder layers. - Use the prompt
Transcribe the following audio:unless you intentionally fine-tune/evaluate a different prompt contract. - The speech LoRA is switchable in the runtime: enable speech mode for ASR, disable/scale to
0.0for plain text generation.
Intended use
Good fits:
- Singapore English / Singlish automatic speech recognition
- utterance-level voice notes, routing, search, and agent input
- MLX-native speech-language research with a shared text decoder
Not intended for:
- safety-critical or legal/medical transcription
- diarization, timestamps, speaker identification, or streaming ASR
- Mandarin-only ASR; a separate switchable Mandarin LoRA is planned
Limitations
- The LoRA is specialized for Singapore English. Other accents and languages may degrade.
- Residual errors mostly cluster around rare or ambiguous proper nouns, especially code-switched names and places.
- Long-form audio was not the optimization target; split long recordings into utterance-sized chunks.
- This repo is a composed bundle. Generic hub inference widgets will not know how to run it without the
elderwiseruntime.
Architecture details
- Speech encoder output dimension: 3584
- Projector hidden dimension: 3072
- Decoder embedding dimension: 2560
- Decoder depth: 42 layers
- LoRA rank: 16
- LoRA targets:
q_proj,k_proj,v_proj,o_proj,gate_proj,up_proj,down_proj - Speech-mode LoRA scale used by the release runtime: 20.0
Gemma-4's per-layer embedding side channel is handled in the runtime by supplying explicit per-layer inputs for speech positions instead of forcing speech embeddings through token nearest-neighbor recovery.
License & Attribution
See PROVENANCE.md for the full chain of custody. Summary:
- Decoder:
google/gemma-4-E4B-it, converted to MLX bfloat16; Gemma Terms, Gemma 4 Apache 2.0 text, and the Gemma Prohibited Use Policy apply. - Speech tower:
MERaLiON/MERaLiON-3-10B; MERaLiON-3 Public Licence applies. - Training/evaluation corpus:
MERaLiON/Multitask-National-Speech-Corpus-v1, derived from IMDA National Speech Corpus / MNSC v1; Singapore Open Data Licence v1 applies to MNSC-derived training/evaluation components and requires attribution without implying official endorsement. - Projector + LoRA: trained alignment components for this composition; Gemma Terms as derivative, MERaLiON-3 Public Licence for the speech-derived path, and Singapore Open Data Licence v1 for MNSC-derived training/evaluation components.
Required Gemma notice: Gemma is provided under and subject to the Gemma Terms of Use found at ai.google.dev/gemma/terms.
MERaLiON acknowledgment: The development of this product/service was assisted by MERaLiON, an AI model developed by the Agency for Science Technology And Research ("A*STAR").
This model is a derivative work of Gemma 4 (Apache 2.0) and is distributed subject to the Gemma Terms of Use (ai.google.dev/gemma/terms) and the Gemma Prohibited Use Policy (see licenses/gemma-prohibited-use-policy.txt). All downstream users are bound by Gemma Section 3.2 use restrictions, the Gemma Prohibited Use Policy, the MERaLiON-3 Public Licence, and the Singapore Open Data Licence v1 for the MNSC-derived components.
License archives are bundled in licenses/, and the root NOTICE records the required notices. No MNSC-derived audio sample is redistributed in this public-release-prep bundle.
The repository remains private until the user explicitly approves a follow-up visibility change after the public-release license gate.
Prominent modified-file notices
The following files were modified from upstream/source staging and are called out for Gemma/Apache/MERaLiON notice compliance:
config.json— T6.5 stale repository slug corrected to the full-bundle repo name.speech_encoder/composite_config.json— T6.5 upstream-inherited absolute training paths redacted.speech_encoder/encoder_config.json— T6.5 upstream-inherited absolute training path redacted.README.md— T11 public-release compliance text added, including MERaLiON acknowledgment, Gemma Section 3.2 binding language, license archive links, and no-packaged-audio-sample notice.NOTICE— T11 Gemma, MERaLiON, MNSC, Apache 2.0, and Prohibited Use Policy notices expanded.PROVENANCE.md— T11 modification log and evaluation/sample provenance updated.
Citation
@misc{gemma4_meralion_bf16_speech_lora_mlx_2026,
title = {Gemma-4-E4B-BF16 + MERaLiON Speech LoRA for Singapore English (MLX)},
author = {majentik},
year = {2026},
url = {https://huggingface.co/majentik/Gemma-4-E4B-BF16-MERaLiON-Speech-LoRA-SG-MLX}
}
Related releases
- 8-bit sibling:
majentik/Gemma-4-E4B-MERaLiON-Speech-LoRA-MNSC-MLX— smaller, 18.86% WER. - This BF16 edition is the recommended release for best transcription quality.
- Downloads last month
- 79
Quantized
Model tree for majentik/Gemma-4-E4B-BF16-MERaLiON-Speech-LoRA-SG-MLX
Dataset used to train majentik/Gemma-4-E4B-BF16-MERaLiON-Speech-LoRA-SG-MLX
Evaluation results
- WER on MNSC ASR Part 2 Testtest set self-reported16.090