Whishper is an awsome project built on top of LibreTranslate, that we can SelfHost to make local audio transcription.

The Whishper Project

Whishper - Open-source, local-first audio transcription and subtitling with UI

SelfHosting Whishper

๐Ÿš€ Self-Hosting Whisper Project with Docker: Step-by-Step Guide

  1. CPU: Surprise! No GPU is required for this setup. You don’t need an expensive GPU to dive into AI projects!

  2. Docker Installation: Make sure Docker is installed on your machine. Docker simplifies the deployment of complex AI projects and provides a consistent environment across different platforms.

  1. Portainer Guide (Optional): If you’re not comfortable with Docker CLI commands, consider using Portainer, a web-based management interface for Docker. Follow the guide to set up Portainer and manage Docker containers with ease.

  2. Whisper Docker Configuration File: This file contains the settings and parameters required to run the Whisper project in a Docker container.

Whishper with Docker

You will need the docker-compose configuration and the .env to specify your variables

You can always have a look at Whishper Official Docs

Whishper Docker-Compose

This configuration file for Whisper is kind of long, but dont worry, you can just copy paste it:

#version: "3.9"
services:
  mongo:
    image: mongo
    env_file:
      - .env
    restart: unless-stopped
    volumes:
      - ./whishper_data/db_data:/data/db
      - ./whishper_data/db_data/logs/:/var/log/mongodb/
    environment:
      MONGO_INITDB_ROOT_USERNAME: ${DB_USER:-whishper}
      MONGO_INITDB_ROOT_PASSWORD: ${DB_PASS:-whishper}
    expose:
      - 27017
    command: ['--logpath', '/var/log/mongodb/mongod.log']

  translate:
    container_name: whisper-libretranslate
    image: libretranslate/libretranslate:latest
    restart: unless-stopped
    volumes:
      - ./whishper_data/libretranslate/data:/home/libretranslate/.local/share
      - ./whishper_data/libretranslate/cache:/home/libretranslate/.local/cache
    env_file:
      - .env
    tty: true
    environment:
      LT_DISABLE_WEB_UI: True
      LT_UPDATE_MODELS: True
    expose:
      - 5000
    networks:
      default:
        aliases:
          - translate
    healthcheck:
      test: ['CMD-SHELL', './venv/bin/python scripts/healthcheck.py']
      interval: 2s
      timeout: 3s
      retries: 5

  whishper:
    pull_policy: always
    image: pluja/whishper:${WHISHPER_VERSION:-latest}
    env_file:
      - .env
    volumes:
      - ./whishper_data/uploads:/app/uploads
      - ./whishper_data/logs:/var/log/whishper
    container_name: whishper
    restart: unless-stopped
    networks:
      default:
        aliases:
          - whishper
    ports:
      - 8082:80
    depends_on:
      - mongo
      - translate
    environment:
      PUBLIC_INTERNAL_API_HOST: "http://127.0.0.1:80"
      PUBLIC_TRANSLATION_API_HOST: ""
      PUBLIC_API_HOST: ${WHISHPER_HOST:-}
      PUBLIC_WHISHPER_PROFILE: cpu
      WHISPER_MODELS_DIR: /app/models
      UPLOAD_DIR: /app/uploads
      CPU_THREADS: 4

Whishper .env

# Libretranslate Configuration
## Check out https://github.com/LibreTranslate/LibreTranslate#configuration-parameters for more libretranslate configuration options
LT_LOAD_ONLY=es,en,fr

# Whisper Configuration
WHISPER_MODELS=tiny,small
WHISHPER_HOST=http://127.0.0.1:8082

# Database Configuration
DB_USER=whishper
DB_PASS=whishper

Just configure your desired variables and deploy whishper with:

docker-compose up -d

Your Whishper instance is ready will be waiting for you at http://localhost:8082

This is how the Whishper interface looks like:

Whishper UI


FAQ

Other F/OSS Audio Transcription Tools

How to Install AudioCraft?

  1. Get Python installed
  2. Get Familiar with Virtual Environments

And the Gradio UI will be available at http://localhost:7860

How to install Bark?