CoreML conversion of
OzLabs/Caspi-1.7B for on-device Hebrew speech recognition on Apple Silicon (macOS/iOS).
Caspi is a Hebrew-optimized fine-tune of
Qwen/Qwen3-ASR-1.7B , achieving ~5% WER on Hebrew benchmarks.
qwen3_asr_audio_encoder_v2.mlmodelc/ # Audio encoder (606 MB)
qwen3_asr_decoder_stateful.mlmodelc/ # Fused decoder + LM head with KV-cache (1.6 GB)
qwen3_asr_embeddings.bin # Token embeddings (151936 x 2048, float16, 594 MB)
vocab.json # Vocabulary (151643 tokens)
These models are designed for use with
FluidAudio 's
Qwen3AsrManager:
1 import FluidAudio
2
3 let manager = Qwen3AsrManager ( )
4 try await manager . loadModels ( from : modelDirectory )
5
6 let samples = try AudioConverter ( ) . resampleAudioFile ( audioURL )
7 let text = try await manager . transcribe ( audioSamples : samples , language : "he" )
8 print ( text )
Note: FluidAudio's
Qwen3AsrConfig must be updated for 1.7B dimensions (hidden_size=2048, etc.). See
alandotcom/FluidAudio caspi-1.7b branch for the required config changes.
A fork of
Hex (macOS dictation app) with Caspi support is available at
alandotcom/Hex caspi-hebrew branch .
Conversion scripts are available at
alandotcom/caspi-hebrew-asr , forked from
FluidInference/mobius with dimensions updated for the 1.7B architecture.
1 git clone https://github.com/alandotcom/caspi-hebrew-asr.git
2 cd caspi-hebrew-asr/conversion
3 uv sync
4 uv run python convert-qwen3-asr.py # full f32 conversion
5 uv run python convert_decoder_fused.py # fused stateful decoder
6 uv run python extract_embeddings.py # embeddings + vocab
7 uv run python quantize_model.py input.mlpackage output.mlpackage --dtype int8 # quantize
The conversion scripts are from
FluidInference/mobius (Apache-2.0).
1 @misc{caspi_hebrew_asr,
2 title={Caspi-1.7B: Hebrew ASR fine-tuned from Qwen3-ASR-1.7B},
3 author={Oz Labs},
4 year={2026},
5 howpublished={Hugging Face model card}
6 }
1 @article{qwen3asr,
2 title={Qwen3-ASR Technical Report},
3 author={Qwen Team},
4 journal={arXiv preprint arXiv:2601.21337},
5 year={2025}
6 }