chikingsley's picture
Add model card
a9de23c verified
|
Raw
History Blame Contribute Delete
4.11 kB
---
license: apache-2.0
base_model: OpenMOSS-Team/MOSS-Transcribe-preview-2B
tags:
- coreml
- asr
- speech-to-text
- audio
- moss
- fluidaudio
pipeline_tag: automatic-speech-recognition
---
# MOSS-Transcribe-preview-2B β€” CoreML bundle (experimental)
CoreML conversion of [`OpenMOSS-Team/MOSS-Transcribe-preview-2B`](https://huggingface.co/OpenMOSS-Team/MOSS-Transcribe-preview-2B), an English speech-to-text model pairing a Qwen3-1.7B-base decoder with a Qwen3-Omni-MoE audio encoder and a gated-MLP adapter (~2.4B parameters, Apache-2.0 upstream).
Produced by the [peacock-asr `moss-mlx-conversion` project](https://github.com/chikingsley/peacock-asr/tree/main/projects/moss-mlx-conversion) as compiled `.mlmodelc` components, packaged as a FluidAudio-style model bundle.
> **Experimental β€” read before use.** This is a correctness-validated research bundle, not a production FluidAudio backend. It is single-window (30-second padded static audio input), decode is autoregressive with explicit KV-cache tensors moved through CoreML every token, and it is far slower than FluidAudio Parakeet-class ASR. Only 20 LibriSpeech clean-test rows were validated through the FluidAudio-shaped runtime. No production parity is claimed.
## Contents
| Path | Component | Size |
| --- | --- | --- |
| `compiled/moss_token_embedding.mlmodelc` | Token embedding | 594 MB |
| `compiled_audio_30s/moss_audio_encoder_adapter_30s_padded.mlmodelc` | Audio encoder + adapter, padded 30 s mel input `[128, 3000]` with masked invalid audio tokens | 1.4 GB |
| `compiled_prefill_cache_512/moss_decoder_prefill_cache_512.mlmodelc` | Full decoder prefill, 512-token padded cache | 3.3 GB |
| `compiled_step_padded/moss_decoder_step_padded_fixture.mlmodelc` | Padded external-cache decoder step (768-slot cache) | 3.3 GB |
| `compiled_step_padded_512/moss_decoder_step_padded_512.mlmodelc` | Padded external-cache decoder step (512-slot cache) | 3.3 GB |
| `compiled_prefill_cache_768/` | Matched 768-token prefill β€” **experimental, crashes in CoreML/MPSGraph cpu-gpu execution** | 3.3 GB |
| `moss_bundle_manifest.json` | Bundle metadata: package paths, tokenizer/runtime paths, cache presets | β€” |
| `moss_runtime_manifest.json` | Prompt template and model constants | β€” |
| `moss_tokenizer.json` | Qwen ByteLevel tokenizer | β€” |
## Cache presets (from `moss_bundle_manifest.json`)
- `short-512`: 512-prefill + 512-cache step. Validated on the 20-row short gate.
- `compat-768` (default): 512-prefill + 768-cache step. Validated on the 20-row compat gate.
- `matched-768`: experimental; Torch-validates but fails in CoreML/MPSGraph `cpu-gpu` execution. Do not use.
## Validation
- 20-row LibriSpeech clean-test gate through the FluidAudio-shaped Swift runtime: **WER 0.0158, CER 0.00418**, 0.69–0.77 RTFx (single row: WER/CER 0.0 on `6930-75918-0001`).
- All exported packages were validated against PyTorch fixture tensors and compiled with `xcrun coremlcompiler`.
- The padded 30 s audio package matches fixture generated IDs exactly under `--compute-units cpu-gpu`; default `.all` dispatch fails on ANE for the audio package β€” use `cpu-gpu`.
## Known limitations
- Single-window only: capped by the 30-second static audio package; no long-audio chunking/stitching.
- English-only ASR (upstream limitation).
- Prompt length + decode budget must fit the selected cache bucket or the run fails.
- ~0.7 RTFx at best β€” usable for evaluation and teacher/reference work, not for production transcription.
## Usage
These compiled packages are consumed by a Swift/CoreML runtime (see the conversion project's `swift/` runner and the private FluidAudio scaffold patch). A runner must load the `.mlmodelc` bundles with `MLModel`, drive prefill and the padded decoder step with explicit KV-cache arrays, and apply the prompt template from `moss_runtime_manifest.json`:
```bash
fluidaudiocli moss-benchmark --model-dir <this-bundle> --cache-preset short-512 ...
```
## License
Apache-2.0, matching the upstream model. Please cite the upstream model (OpenMOSS Team, 2025) when using these weights.