File size: 4,501 Bytes
			
			| 940a6ff 9fa0281 940a6ff | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 | ---
sdk: gradio
sdk_version: 5.36.2
---
# Whisper-WebUI
A Gradio-based browser interface for [Whisper](https://github.com/openai/whisper)
# Features
- Select the Whisper implementation you want to use between:
   - [openai/whisper](https://github.com/openai/whisper)
   - [SYSTRAN/faster-whisper](https://github.com/SYSTRAN/faster-whisper) (used by default)
   - [Vaibhavs10/insanely-fast-whisper](https://github.com/Vaibhavs10/insanely-fast-whisper)
- Generate transcriptions from various sources, including **files** & **microphone**
- Currently supported output formats: **csv**, **srt** & **txt**
- Speech to Text Translation:
  - From other languages to English (This is Whisper's end-to-end speech-to-text translation feature)
  - Translate transcription files using Facebook NLLB models
- Pre-processing audio input with [Silero VAD](https://github.com/snakers4/silero-vad)
- Post-processing with speaker diarization using the [pyannote](https://huggingface.co/pyannote/speaker-diarization-3.1) model:
   - To download the pyannote model, you need to have a Huggingface token and manually accept their terms in the pages below:
      1. https://huggingface.co/pyannote/speaker-diarization-3.1
      2. https://huggingface.co/pyannote/segmentation-3.0
# Installation and Running
- ## Run Locally
    ### Prerequisite
    To run this WebUI, you need to have `git`, `python` version 3.8 ~ 3.10 & `FFmpeg`.<BR>If you're not using an Nvida GPU, or using a different `CUDA` version than 12.4,  edit the file `requirements.txt` to match your environment.
      
    Please follow the links below to install the necessary software:
    - git : [https://git-scm.com/downloads](https://git-scm.com/downloads)
    - python : [https://www.python.org/downloads/](https://www.python.org/downloads/)
    - FFmpeg :  [https://ffmpeg.org/download.html](https://ffmpeg.org/download.html)
    - CUDA : [https://developer.nvidia.com/cuda-downloads](https://developer.nvidia.com/cuda-downloads)
    
    After installing `FFmpeg`, make sure to **add** the `FFmpeg/bin` folder to your system `PATH`
    ### Installation using the script files
    
    1. Download the the repository and extract its contents 
    2. Run `install.bat` or `install.sh` to install dependencies (It will create a `venv` directory and install dependencies there)
    3. Start WebUI with `start-webui.bat` or `start-webui.sh` (It will run `python app.py` after activating the venv)
- ## Running with Docker
    1. Install and launch [Docker-Desktop](https://www.docker.com/products/docker-desktop/)
    2. Get the repository
    3. If needed, update the `docker-compose.yaml` to match your environment
    4. Docker commands:
        Build the image ( Image is about ~7GB)
        ```sh
        docker compose build 
        ```
        Run the container 
        ```sh
        docker compose up
        ```
    5. Connect to the WebUI with your browser at `http://localhost:7860`
    
# VRAM Usages
- This project is integrated with [faster-whisper](https://github.com/guillaumekln/faster-whisper) by default for better VRAM usage and transcription speed.<BR>According to faster-whisper, the efficiency of the optimized whisper model is as follows: 
    | Implementation    | Precision | Beam size | Time  | Max. GPU memory | Max. CPU memory |
    |-------------------|-----------|-----------|-------|-----------------|-----------------|
    | openai/whisper    | fp16      | 5         | 4m30s | 11325MB         | 9439MB          |
    | faster-whisper    | fp16      | 5         | 54s   | 4755MB          | 3244MB          |
- Whisper's original VRAM usage table for available models:
    |  Size  | Parameters | English-only model | Multilingual model | Required VRAM | Relative speed |
    |:------:|:----------:|:------------------:|:------------------:|:-------------:|:--------------:|
    |  tiny  |    39 M    |     `tiny.en`      |       `tiny`       |     ~1 GB     |      ~32x      |
    |  base  |    74 M    |     `base.en`      |       `base`       |     ~1 GB     |      ~16x      |
    | small  |   244 M    |     `small.en`     |      `small`       |     ~2 GB     |      ~6x       |
    | medium |   769 M    |    `medium.en`     |      `medium`      |     ~5 GB     |      ~2x       |
    | large  |   1550 M   |        N/A         |      `large`       |    ~10 GB     |       1x       |
    Note: `.en` models are for English only, and you can use the `Translate to English` option from the other models |