Breeze ASR 25 — GGML (whisper.cpp)
MediaTek-Research/Breeze-ASR-25 converted to GGML for whisper.cpp.
本倉庫是把 MediaTek Research 官方的 Breeze ASR 25 權重轉成 whisper.cpp 可用的 GGML 格式。 轉換自官方 safetensors,非二次轉錄;來源雜湊與轉換步驟完整記錄於下,可自行重現。
Breeze ASR 25 is fine-tuned from Whisper large-v2 and is optimised for Taiwanese Mandarin and Mandarin–English code-switching.
Files
| File | Size | SHA256 |
|---|---|---|
ggml-breeze-asr-25-q5_0.bin |
1,080,732,108 | 2cb3fed23e52f706b8e4e01403131860e95ab60b51ee0b1bed538a3b484d6a40 |
ggml-breeze-asr-25-f16.bin |
3,094,623,708 | 9832c95c87ea5a60a552a4d02fe695429744f9a668bd2ee53ae0f37e126a0fad |
q5_0 是一般使用的建議版本。f16 為未量化中間產物,供想自行量化或比對的人使用。
⚠️ 量化只改善檔案大小與載入時間,不會讓推論變快。 實測
q5_0推論 1,986 ms 反而比f16的 1,702 ms 慢 (Apple M2 Pro / whisper.cpp / 10 秒音訊)。
Usage
./build/bin/whisper-cli -m ggml-breeze-asr-25-q5_0.bin -l zh -f audio.wav
模型為標準 Whisper encoder-decoder 架構,tokenizer 與前處理未修改, 任何支援 whisper.cpp GGML 的工具都能直接使用。
Provenance / 來源與可重現性
來源檔
https://huggingface.co/MediaTek-Research/Breeze-ASR-25/resolve/main/model.safetensors
size 3,086,761,032 bytes
SHA256 c5d952b3bc03ea277209aff0ef5b5c4c055d74449ff794c02d8f4e315fdef6b6
此雜湊與 HuggingFace API 回報的 LFS oid 相符。
轉換工具
| whisper.cpp | commit eacbd8234c6654cdbf2c377f72b2106875479bdc |
| script | models/convert-h5-to-ggml.py(兩處最小修改,見下) |
| mel filters | openai/whisper whisper/assets/mel_filters.npz |
| runtime | Python 3.9.7 / torch 2.8.0 / numpy 1.26.4 / safetensors |
對官方腳本的修改(兩處)
改用
safetensors.torch.load_file取代WhisperForConditionalGeneration.from_pretrained。 該腳本只用到state_dict(),不需要實例化整個nn.Module。 已驗證 safetensors 的 1,259 個 key 與 HFstate_dict完全一致。**
data = list_vars[src].float().squeeze().numpy()**(多一個.float())。 safetensors 內為bfloat16,numpy 不支援該型別。 來源config.json標示torch_dtype: float32,from_pretrained本來就會先 materialise 成 fp32 再交給腳本,因此此改動與原始路徑等價, 非額外的精度損失。
重現步驟
# 1. 取得官方權重(只需要 model.safetensors 與 config / tokenizer,不需要 optimizer.bin)
huggingface-cli download MediaTek-Research/Breeze-ASR-25 \
model.safetensors config.json vocab.json added_tokens.json \
--local-dir src/
# 2. 轉成 GGML f16
python3 convert-h5-to-ggml.py src/ path/to/whisper-repo/ out/
mv out/ggml-model.bin out/ggml-breeze-asr-25-f16.bin
# 3. 量化
whisper.cpp/build/bin/whisper-quantize \
out/ggml-breeze-asr-25-f16.bin out/ggml-breeze-asr-25-q5_0.bin q5_0
與既有第三方轉換的比對
與 danielkao0421/Breeze-ASR-25-ggml
的 f16 逐張量比對過:1,259 個張量、3.09 GB 張量資料,數值零不一致。
兩者檔案大小相同但 SHA256 不同,差異僅在張量的寫入順序
(safetensors.load_file() 回傳排序過的 key,state_dict() 為模組註冊順序;
whisper.cpp 依名稱載入,與順序無關)。
也就是說該第三方轉換是正確的。本倉庫存在的意義是提供一份來源鏈可稽核的版本。
License
Apache 2.0,與上游一致。授權鏈:
| Layer | Source | License |
|---|---|---|
| Base model | openai/whisper-large-v2 |
Apache-2.0 |
| Fine-tuned weights | MediaTek-Research/Breeze-ASR-25 |
Apache-2.0 |
| Conversion tooling | ggml-org/whisper.cpp |
MIT |
MediaTek Research 在其 model card 中逐筆列出訓練資料授權(中文資料為合成資料, 來源包含 ODC License 的 FineWeb2 與 Apache-2.0 的 BreezyVoice;NTUML2021 為 MIT), 全部為 permissive 授權。
LICENSE 為上游隨附的授權全文副本。本倉庫未修改模型權重,僅做格式轉換與量化。
Citation
模型本身請引用原作者:
@article{breeze-asr-25,
title = {Breeze ASR 25},
author = {MediaTek Research},
url = {https://huggingface.co/MediaTek-Research/Breeze-ASR-25},
note = {arXiv:2506.11130}
}
Model tree for MomoSoft/Breeze-ASR-25-ggml
Base model
openai/whisper-large-v2