Downloads · 30 days
79
100% of all-time downloads
VocaHQ/whisperkit-coreml
whisperkit-coreml is a automatic speech recognition model from VocaHQ. Use it when you need speech turned into text. It is set up for whisperkit. The card lists the license as apache-2.0.
Community Whisper fine-tunes converted to WhisperKit CoreML, so they run on-device on Apple Silicon: on the Neural Engine, offline, with no audio leaving the Mac. They power the extra languages in VocaMac, an open-sou…
Downloads · 30 days
79
100% of all-time downloads
All-time downloads
79
Public
Repo size
2.3 GB
Likes
0
Public
Click a slice to open those files.
.bin2.3 GB · 99%
From the Hugging Face model README
Community Whisper fine-tunes converted to WhisperKit CoreML, so they run on-device on Apple Silicon: on the Neural Engine, offline, with no audio leaving the Mac. They power the extra languages in VocaMac, an open-source macOS dictation app, and any other WhisperKit app can load them too.
The layout matches argmaxinc/whisperkit-coreml: one folder per model, with the tokenizer and configs inside it.
| Folder | Speak | Get | Base | Weights | Size | Decode with |
|---|---|---|---|---|---|---|
vocahq_voca-hinglish_820MB | Hindi, English, or a mix | Hinglish (Hindi in Roman script) | Whisper large-v3-turbo | 8-bit palettized | 824 MB | language: "en" |
whisper-medium-hindi-hinglish | Hindi, English, or a mix | Devanagari, or English | Whisper medium | fp16 | 1.53 GB | language: "hi" or auto-detect |
Which one? Use Voca Hinglish if you want Hindi written the way people text it (kal meeting hai, please calendar update kar do). It is smaller, faster, and the one VocaMac ships. Use the medium model if you want Devanagari output.
Open Settings → Speech Model and pick Voca Hinglish. VocaMac downloads it, pins the decoder language, and filters out decoder loops for you.
Add the argmax-oss-swift package (product WhisperKit), then:
import WhisperKit
let whisper = try await WhisperKit(WhisperKitConfig(
model: "vocahq_voca-hinglish_820MB",
modelRepo: "VocaHQ/whisperkit-coreml"
))
let options = DecodingOptions(
language: "en", // required: this is what makes it write Hinglish
temperature: 0,
usePrefillPrompt: true,
detectLanguage: false
)
let results = try await whisper.transcribe(audioPath: "voice-note.wav", decodeOptions: options)
print(results.map(\.text).joined(separator: " "))
WhisperKit downloads the folder on first use. To fetch it ahead of time, for bundling or offline machines:
hf download VocaHQ/whisperkit-coreml --include "vocahq_voca-hinglish_820MB/*" --local-dir ./models
Then point WhisperKit at it with WhisperKitConfig(modelFolder: "./models/vocahq_voca-hinglish_820MB").
Speak Hindi, get Hinglish: Hindi speech written in Roman script, the way people actually type it. English stays English, and sentences that switch between the two come out as spoken.
Voca Hinglish is the VocaMac build of Oriserve/Whisper-Hindi2Hinglish-Apex (Apache-2.0), a fine-tune of Whisper large-v3-turbo on about 700 hours of noisy, Indian-accented Hindi. All credit for the model goes to Oriserve; VocaHQ only converted and compressed it. Oriserve reports 29.8% WER on FLEURS hi_in and 36.0% on Common Voice 20 Hindi for the original model; see their card for details.
| Folder | vocahq_voca-hinglish_820MB |
| Architecture | Whisper large-v3-turbo (32 encoder layers, 4 decoder layers) |
| Weights | Audio encoder and text decoder palettized to 8 bits (k-means); mel spectrogram at fp16 |
| Download | 824 MB |
| Hardware | Apple Silicon, M1 or newer (same device support as openai_whisper-large-v3-v20240930_626MB) |
| Decoder language | en, always |
The model was trained to write Hinglish when decoding as English. Force language: "en" and turn language detection off. Asked for Hindi, or left to detect, it falls back to Devanagari or translates to English.
Compression was checked against the unquantized fp16 CoreML conversion on 60 clips of FLEURS hi_in test:
| Metric | Result |
|---|---|
| WER vs. fp16 | 0.9% |
| CER vs. fp16 | 0.3% |
| Identical transcripts | 48 / 60 |
| PSNR vs. PyTorch, encoder | 53.2 dB |
| PSNR vs. PyTorch, decoder | 32–34 dB (the fp16 decoder scores 34.3) |
A 6-bit build was also tried and rejected: 3.4% WER against fp16.
CoreML compiles the model for the Neural Engine the first time it loads. On an M1 Pro that took about 5 minutes and peaked at 3.1 GB of memory, most of it in macOS's ANECompilerService rather than the app, because the compiler expands the palettized weights. Later loads come from the compile cache and take seconds.
nahi / nahin, thik / theek). It is not a standard transliteration scheme.в к followed by ~170 т). VocaMac detects loops and removes letters outside Latin and Devanagari; if you use the model directly, filter the output the same way.generation_config.json gains the alignment_heads of openai/whisper-large-v3-turbo, which the source repo omits and the converter requires.Converted from shujaAK/whisper-medium-hindi-hinglish-asr-fine-tuned (Apache-2.0), a fine-tune of openai/whisper-medium for Hindi and Hinglish, trained on synthetic conversational speech. All credit for the weights goes to the original author; this repository only republishes them in the format WhisperKit loads. It is not in the VocaMac model catalog.
| Folder | whisper-medium-hindi-hinglish |
| Architecture | Whisper medium (24 encoder layers, 24 decoder layers) |
| Weights | fp16, no quantization |
| Download | 1.53 GB |
| Decoder language | hi for Devanagari, auto-detect for English |
The fine-tune expects Hindi or Hinglish input and is sensitive to the language you force on it. On a Hinglish sentence ("Kal ka meeting postpone ho gaya hai, so please update the calendar"):
| Language | Output |
|---|---|
hi | कल का मीटिंग पोस्पोन हो गया है, सो प्लीज अपडेट दो कैलंदर। |
| auto-detect | The meeting of yesterday has been postponed. So please update the calendar. |
en | (empty) |
Use Hindi for Devanagari output and auto-detect for English output. Forcing English can return nothing at all. Plain English speech transcribes correctly under all three.
tokenizer_config.json stores extra_special_tokens as a list, which current transformers rejects. The key is dropped here, since those tokens are already in tokenizer.json.Each model keeps the license of its source checkpoint. Both are Apache-2.0.
Found a problem with a conversion, or want another fine-tune converted? Open an issue on VocaHQ/vocamac.