--- license: cc-by-nc-4.0 language: - multilingual library_name: coreml tags: - forced-alignment - mms - wav2vec2 - ctc - coreml - lyrics - ios pipeline_tag: automatic-speech-recognition --- # MMS-FA Multilingual Forced Aligner (CoreML) On-device CTC **forced aligner** for word-level lyric timestamps, multilingual (1000+ languages via romanization). Alignment half of a WhisperX-style pipeline: a transcript is aligned to audio by Viterbi-decoding CTC emissions. Converted from `torchaudio.pipelines.MMS_FA` (Meta MMS `ctc_alignment_mling_uroman`). > ⚠️ **LICENSE: CC-BY-NC-4.0 (non-commercial).** Inherited from Meta's MMS > release. Hosting/attribution is fine; **shipping in a commercial app requires > resolving the non-commercial restriction first.** For commercial production > use the Apache-2.0 `wav2vec2-base960h-aligner-coreml` (English) instead, or > obtain a commercial MMS license / a differently-licensed multilingual model. ## I/O contract | | | |---|---| | input | `waveform` float32 `[1, 960000]` — a fixed **60 s** window @ 16 kHz mono | | output | `emissions` float32 `[1, 2999, 28]` — log-probs; **20 ms / frame** (stride 320) | | dict | `mms_fa_dict.json` = `{label: index}`, blank `-`=0, then lowercase romanized a–z + apostrophe (no word-separator) | Text must be **romanized** (uroman) before tokenization for non-Latin scripts. Long audio: overlapping 60 s windows (hop 50 s), center-crop, single CTC Viterbi over concatenated emissions. A synthetic star (garbage) token wraps the transcript to absorb instrumental intros/outros — align on a **separated vocal stem** for heavily-produced tracks. Precision FLOAT16; target iOS 17.