CoolFace
Modelpublic

OpenVINO/distil-whisper-large-v3-int8-ov

sourceHugging Facemitupdated 25d agoView on Hugging Face
5likes8.6kdownloads
Model Card

distil-whisper-large-v3-int8-ov

Description

This is distil-large-v3 model converted to the OpenVINO™ IR (Intermediate Representation) format with weights compressed to INT8 by NNCF.

Quantization Parameters

Weight compression was performed using nncf.compress_weights with the following parameters:

  • mode: INT8_ASYM
  • group_size: 128

For more information on quantization, check the OpenVINO model optimization guide.

Compatibility

The provided OpenVINO™ IR model is compatible with:

  • OpenVINO version 2025.2.0 and higher
  • Optimum Intel 1.23.0 and higher

Running Model Inference with Optimum Intel

  1. 1.Install packages required for using Optimum Intel integration with the OpenVINO backend:
pip install optimum[openvino] "datasets<4" librosa soundfile --extra-index-url https://download.pytorch.org/whl/cpu
  1. 1.Run model inference:
from datasets import load_dataset
from transformers import AutoProcessor
from optimum.intel.openvino import OVModelForSpeechSeq2Seq

model_id = "OpenVINO/distil-whisper-large-v3-int8-ov"
tokenizer = AutoProcessor.from_pretrained(model_id)
model = OVModelForSpeechSeq2Seq.from_pretrained(model_id)

dataset = load_dataset("hf-internal-testing/librispeech_asr_dummy", "clean", split="validation", trust_remote_code=True)
sample = dataset[0]

input_features = tokenizer(
    sample["audio"]["array"],
    sampling_rate=sample["audio"]["sampling_rate"],
    return_tensors="pt",
).input_features

outputs = model.generate(input_features)
text = tokenizer.batch_decode(outputs)[0]
print(text)

Running Model Inference with OpenVINO GenAI

  1. 1.Install packages required for using OpenVINO GenAI.
pip install huggingface_hub "datasets<4" librosa soundfile
pip install -U --pre --extra-index-url https://storage.openvinotoolkit.org/simple/wheels/nightly openvino openvino-tokenizers openvino-genai
  1. 1.Download model from HuggingFace Hub
import huggingface_hub as hf_hub

model_id = "OpenVINO/distil-whisper-large-v3-int8-ov"
model_path = "distil-whisper-large-v3-int8-ov"

hf_hub.snapshot_download(model_id, local_dir=model_path)
  1. 1.Run model inference:
import openvino_genai as ov_genai
import datasets

device = "CPU"
pipe = ov_genai.WhisperPipeline(model_path, device)

dataset = datasets.load_dataset("hf-internal-testing/librispeech_asr_dummy", "clean", split="validation", trust_remote_code=True)
sample = dataset[0]["audio"]["array"]
print(pipe.generate(sample))

More GenAI usage examples can be found in OpenVINO GenAI library docs and samples

Running Model with OpenAI client and OpenVINO Model Server

1a. Deploy model on Windows using binary package:

bat
mkdir C:\models
ovms.exe --rest_port 8000 --source_model OpenVINO/distil-whisper-large-v3-int8-ov --model_repository_path C:\models

1b. Deploy model in a Docker container:

bash
mkdir -p ${HOME}/models
export GPU_ARGS=$(if ls /dev/dri/render* >/dev/null 2>&1; then echo "--device /dev/dri --group-add $(stat -c '%g' /dev/dri/render* | head -n1)"; fi)
docker run ${GPU_ARGS} --rm --user $(id -u):$(id -g) -p 8000:8000 -v ${HOME}/models:/models openvino/model_server:latest-gpu --rest_port 8000 --model_repository_path /models --source_model OpenVINO/distil-whisper-large-v3-int8-ov
  1. 1.Install the client library:
bash
pip install openai datasets soundfile
  1. 1.Run the client:
python
import io

import soundfile as sf
from datasets import Audio, load_dataset
from openai import OpenAI


dataset = load_dataset(
    "hf-internal-testing/librispeech_asr_dummy",
    "clean",
    split="validation",
).cast_column("audio", Audio(decode=False))
audio_bytes = dataset[0]["audio"]["bytes"]

data, rate = sf.read(io.BytesIO(audio_bytes))
buffer = io.BytesIO()
sf.write(buffer, data, rate, format="WAV")

client = OpenAI(base_url="http://localhost:8000/v1", api_key="not_used")
for event in client.audio.transcriptions.create(
    model="OpenVINO/distil-whisper-large-v3-int8-ov",
    file=("sample.wav", buffer.getvalue()),
    language="en",
    stream=True,
):
    if getattr(event, "type", None) == "transcript.text.delta":
        print(event.delta, end="", flush=True)
    elif getattr(event, "type", None) == "transcript.text.done":
        print()
        break

Limitations

Check the original model card for original model card for limitations.

Legal information

The original model is distributed under mit license. More details can be found in original model card.

Disclaimer

Intel is committed to respecting human rights and avoiding causing or contributing to adverse impacts on human rights. See Intel’s Global Human Rights Principles. Intel’s products and software are intended only to be used in applications that do not cause or contribute to adverse impacts on human rights.