Klang Pianissimo for Danish: CoreML
CoreML versions of Klang Pianissimo for Danish, our Danish speech recognition model, for Macs, iPhones and iPads with Apple silicon. They run on the Neural Engine with FluidAudio, in the same folder layout as FluidAudio's own Parakeet v3 model.
Versions
| Folder | Encoder weights | Encoder size | FLEURS (200 clips) | Speed, Neural Engine |
|---|---|---|---|---|
| Original fp32 (ONNX on Linux) | fp32 | 6.5 | ||
/ (top level, recommended) |
8-bit palettized | 567 MB | 6.9 | 183ร |
fp16/ |
fp16 | 1.1 GB | 7.0 | 174ร |
| Stock Parakeet v3 (FluidInference), for comparison | 434 MB | 18.6 | 180ร |
Word error rate (WER, %) on 200 Danish FLEURS test clips, lowercased with punctuation removed; lower is better. Speed is audio duration divided by processing time (RTFx) over these 200 clips (38 minutes) on an Apple M5 (MacBook Pro, 24 GB) with the models already loaded. First load, including compilation for the Neural Engine, takes about 7 seconds (8-bit) or 9 seconds (fp16).
The 8-bit version is as fast as stock Parakeet v3 and makes far fewer errors on Danish. Both versions produce slightly different transcripts from the original on about a quarter of the clips. CPU-only inference produces the same results as the Neural Engine.
Usage
Download the repository:
hf download KlangAI/pianissimo-da-coreml --local-dir pianissimo-da-coreml
Add FluidAudio to your Swift package, then load the folder as a local Parakeet v3 model and transcribe an audio file:
import FluidAudio
let folder = URL(fileURLWithPath: "pianissimo-da-coreml") // or "pianissimo-da-coreml/fp16"
let models = try AsrModels.loadLocal(from: folder, version: .v3)
let asr = AsrManager()
try await asr.loadModels(models)
var state = try TdtDecoderState()
let result = try await asr.transcribe(URL(fileURLWithPath: "audio.wav"), decoderState: &state)
print(result.text)
FluidAudio splits long recordings automatically.
How they were made
Converted from the released checkpoint with coremltools to CoreML packages, then compiled on a Mac. The encoder, decoder and joint network are Pianissimo-da's; they have the same inputs and outputs as FluidAudio's Parakeet v3 files (Encoder, Decoder and JointDecisionv3). Preprocessor.mlmodelc, config.json and the two vocabulary files are FluidInference's unchanged Parakeet v3 files (CC BY 4.0): Pianissimo keeps v3's audio features and tokenizer.
In the 8-bit version, the encoder's weights are palettized to 256 values per layer with k-means. Tested with FluidAudio commit 1b0ed50d on macOS 26.7.2.
License and citation
Released under CC BY 4.0, like the original model.
@misc{klang2026pianissimoda,
title = {Klang Pianissimo for Danish},
author = {{Klang}},
year = {2026},
howpublished = {Hugging Face model repository},
url = {https://huggingface.co/KlangAI/pianissimo-da}
}
- Downloads last month
- -