Whisper is a general-purpose speech recognition model from OpenAI. The model is able to almost flawlessly transcribe speech across dozens of languages and even handle poor audio quality or excessive background noise. This notebook will run the model with OpenVINO to generate transcription of a video.
This notebook demonstrates how to generate video subtitles using the open-source Whisper model. Whisper is an automatic speech recognition (ASR) system trained on 680,000 hours of multilingual and multitask supervised data collected from the web. It is a multi-task model that can perform multilingual speech recognition as well as speech translation and language identification. You can find more information about this model in the research paper, OpenAI blog, model card and GitHub repository.
This folder contains two notebooks that show how to convert and quantize model with OpenVINO:
In these notebooks, you will use its capabilities for generation of subtitles for a video.
The first notebook contains the following steps:
- Download the model.
- Instantiate original PyTorch model pipeline.
- Convert model to OpenVINO IR, using model conversion API.
- Run the Whisper pipeline with OpenVINO.
A simplified demo pipeline is represented in the diagram below:
The final output of running this notebook is an srt file
(popular video captioning format) with subtitles for a sample video downloaded from YouTube.
This file can be integrated with a video player during playback or embedded directly into a video file with ffmpeg
or similar tools that support working with subtitles.
The image below shows an example of the video as input and corresponding transcription as output.
The second notebook will guide you through steps of improving model performance by INT8 quantization with NNCF:
- Quantize the converted OpenVINO model from 227-whisper-convert notebook with NNCF.
- Check model result for the demo video.
- Compare model size, performance and accuracy of FP32 and quantized INT8 models.
This is a self-contained example that relies solely on its own code.
We recommend running the notebook in a virtual environment. You only need a Jupyter server to start.
For details, please refer to Installation Guide.