Whisper Turbo AZ in the browser
This repo is the ONNX export of hasan0v/whisper-turbo-az, an Azerbaijani fine-tune of Whisper large-v3-turbo. It is laid out for transformers.js, so it can transcribe entirely in the browser with WebGPU. No audio leaves the device.
Which variant to load
The table below was measured with transformers.js on the first 40 FLEURS-az test clips, using greedy decoding and the same normalisation as the main card.
encoder_model / decoder_model_merged |
WER ↓ | CER ↓ | Download | Use for |
|---|---|---|---|---|
| fp32 / fp32 | 10.11% | 3.11% | 3.4 GB | reference (not uploaded) |
| fp16 / q4 | 10.23% | 3.11% | 1.65 GB | WebGPU (recommended) |
| q8 / q8 | 10.48% | 3.12% | 1.1 GB | CPU / WASM |
| q4 / q4 | 11.33% | 3.31% | 0.8 GB | WebGPU without shader-f16, low bandwidth |
Usage
import { pipeline } from "@huggingface/transformers";
const asr = await pipeline("automatic-speech-recognition", "hasan0v/whisper-turbo-az-onnx", {
device: "webgpu",
dtype: { encoder_model: "fp16", decoder_model_merged: "q4" },
});
// audio: Float32Array, 16 kHz mono
const { text } = await asr(audio, { language: "azerbaijani", task: "transcribe", chunk_length_s: 30, stride_length_s: 5 });
console.log(text);
On CPU (Node.js or browsers without WebGPU), use device: "wasm" (or "cpu" in Node) with dtype: { encoder_model: "q8", decoder_model_merged: "q8" }.
For the training data, method, full benchmark, limitations and licences, see the main model card.