Downloads · 30 days
0
marcobarb94/a733-whisper-base
a733-whisper-base is a automatic speech recognition model from marcobarb94. Use it when you need speech turned into text. The card lists the license as mit.
This repository provides optimized models and pre-compiled binaries for running Whisper Base in a hybrid inference architecture on Single Board Computers powered by the Allwinner A733 SoC (e.g., Radxa Cubie A7A and co…
Downloads · 30 days
0
Access
Public
Updated Oct 3, 2026
Repo size
246 MB
Likes
0
Public
Click a slice to open those files.
.onnx197 MB · 80%
From the Hugging Face model README
This repository provides optimized models and pre-compiled binaries for running Whisper Base in a hybrid inference architecture on Single Board Computers powered by the Allwinner A733 SoC (e.g., Radxa Cubie A7A and compatible boards):
network_binary.nb) running directly on the Allwinner/VeriSilicon VIP9000 NPU via VIPLite runtime (ctypes, zero C-wrapper).onnxruntime on the CPU (base-decoder.onnx).| File | Description | Execution Target |
|---|---|---|
network_binary.nb | 15-second static Whisper encoder compiled for A733 NPU | NPU (VIPLite) |
base-decoder.onnx | FP32 autoregressive Whisper decoder | CPU (ONNX Runtime) |
base-tokens.txt | Vocabulary / Tokenizer token mapping | CPU / Python |
To comply with the Allwinner A733 NPU engine requirements, the encoder has been exported with a fixed static tensor shape:
[1, 80, 1500] FP16 (mapped to [1500, 80, 1] in VIPLite's [W,H,C,N] ordering).cross_k and cross_v) with shape [6, 1, 750, 512] FP16 (mapped to [512, 750, 1, 6] in VIPLite), converted to FP32 for CPU decoding.Ensure the board has the NPU kernel device and VIPLite dynamic libraries installed:
# Check device node
ls -l /dev/vipcore
# Verify VIPLite runtime shared libraries
/sbin/ldconfig -p | grep -E 'VIPhal|NBGlinker'
Required system paths:
/dev/vipcore
/lib/libVIPhal.so
/lib/libNBGlinker.so
If missing, obtain them from the official Radxa/Allwinner model zoo:
allwinner-model-zoo/common/npuruntime/lib_linux_aarch64/A733/network_binary.nb Was BuiltThe NBG model was generated from the k2-fsa/sherpa-onnx Whisper Base model using the Acuity/Pegasus toolchain inside a Docker/Podman container.
import onnx
model = onnx.load("base-encoder.onnx")
for inp in model.graph.input:
if inp.name == "mel":
dims = inp.type.tensor_type.shape.dim
dims[0].ClearField("dim_param")
dims[0].dim_value = 1 # Batch size 1
dims[2].ClearField("dim_param")
dims[2].dim_value = 1500 # 15 seconds (1500 frames)
onnx.checker.check_model(model)
onnx.save(model, "base-encoder-static-15s.onnx")
Inside container khalida5/ubuntu-npu:v2.0.10:
alias pegasus="python3 /usr/local/acuity_command_line_tools/pegasus.py"
# Import ONNX model
pegasus import onnx \
--model base-encoder-static-15s.onnx \
--output-data whisper_base_encoder.data \
--output-model whisper_base_encoder.json
# Generate metadata files
pegasus generate inputmeta \
--model whisper_base_encoder.json \
--input-meta-output model_inputmeta.yml
pegasus generate postprocess-file \
--model whisper_base_encoder.json \
--postprocess-file-output model_postprocess.yml
mkdir -p output_nbg
# Export compiled NBG for Allwinner A733 (VIP9000)
pegasus export ovxlib \
--model whisper_base_encoder.json \
--model-data whisper_base_encoder.data \
--dtype float \
--with-input-meta model_inputmeta.yml \
--postprocess-file model_postprocess.yml \
--target-ide-project linux64 \
--optimize VIP9000NANODI_PLUS_PID0X1000003B \
--viv-sdk "${VIV_SDK}" \
--pack-nbg-unify \
--output-path ./output_nbg/whisper_base_encoder