Guide de déploiement

Whisper on premise sur VPS : guide complet 2026

Déployer sur un VPS Cloud →

Tutoriel

Intelligence Artificielle

Whisper on premise sur VPS : guide complet 2026

Whisper est le modèle de transcription audio open source d'OpenAI. L'héberger on premise sur votre VPS vous garantit que vos enregistrements ne quittent jamais votre infrastructure : confidentialité absolue, latence maîtrisée et coût prévisible. Ce guide couvre le déploiement Docker pas à pas, le choix du modèle selon votre RAM, l'alternative CPU-only Whisper.cpp, l'intégration avec n8n, les benchmarks sur VPS typiques et les indispensables mesures de sécurité.

6 min de lecture8 étapes
Sommaire· Pourquoi auto-héberger Whisper on premise sur un VPS1/14
  1. 01Pourquoi auto-héberger Whisper on premise sur un VPS
  2. 02Les bénéfices concrets de l'auto-hébergement
  3. 03Prérequis matériels et logiciels
  4. 04Choisir son modèle Whisper : comparatif RAM, vitesse et précision
  5. 05Modèles Whisper disponibles
  6. 06Whisper.cpp : l'alternative CPU-only sans CUDA
  7. 07Déploiement Docker pas à pas (openai-whisper-asr-webservice v1.10.0)
  8. 08Intégration réelle : brancher Whisper à n8n ou Nextcloud Talk
  9. 09Benchmarks CPU vs GPU sur VPS typique ServOrbit
  10. 10Sécurité : ne jamais exposer l'API Whisper sans authentification
  11. 11Règles de sécurité indispensables
  12. 12Dépannage : erreurs fréquentes
  13. 13Problèmes courants et solutions
  14. 14Déployer Whisper depuis la Marketplace ServOrbit

Pourquoi auto-héberger Whisper on premise sur un VPS

Les bénéfices concrets de l'auto-hébergement

  • Confidentialité totale : vos fichiers audio ne transitent jamais par un tiers
  • Coût maîtrisé : une transcription de 60 min coûte quelques centimes de CPU, pas de facturation à la minute
  • API privée exposée uniquement derrière votre reverse proxy, protégée par clé ou JWT
  • Disponibilité 24/7 sans dépendance à la politique tarifaire d'OpenAI
  • Choix du modèle selon vos contraintes RAM : de 1 Go (tiny) à 10 Go (large-v3)
  • Conformité RGPD facilitée : traitement dans votre datacenter, pas chez un sous-traitant américain

Prérequis matériels et logiciels

Pour un déploiement CPU (modèle small ou base) : 2 vCPU, 4 Go RAM, 20 Go de disque. Pour le modèle medium : 8 Go RAM recommandés. Pour large-v3 avec GPU : 10 Go VRAM minimum (carte NVIDIA avec pilotes CUDA 12+). Côté logiciel, seuls Docker Engine 24+ et Docker Compose v2 sont nécessaires — aucun Python ni PyTorch à installer sur l'hôte.

Choisir son modèle Whisper : comparatif RAM, vitesse et précision

Modèles Whisper disponibles

Faites défiler le tableau

ModèleParamètresRAM requiseWER anglaisVitesse (temps réel)
tiny39 M~1 Go~7,6 %~10×
base74 M~1 Go~5,0 %~7×
small244 M~2 Go~3,4 %~4×
medium769 M~5 Go~2,9 %~2×
large-v31 550 M~10 Go~2,4 %~1×
large-v3-turbo809 M~6 Go~2,5 %~5×

Le modèle small est l'idéal compromis pour un VPS 4 Go sans GPU. large-v3-turbo offre une qualité proche de large-v3 à 5× la vitesse, pour un VPS 8 Go.

Whisper.cpp : l'alternative CPU-only sans CUDA

Si votre VPS ne dispose pas de GPU NVIDIA, Whisper.cpp (github.com/ggerganov/whisper.cpp) est l'alternative idéale. C'est un portage en C/C++ pur du modèle Whisper, qui tourne sur CPU sans Python, PyTorch ni CUDA. Il utilise les instructions SIMD AVX2 (x86) ou NEON (ARM) pour accélérer l'inférence. Sur un VPS 4 vCPU, le modèle small transcrit environ 3× plus vite que la version Python équivalente. L'image Docker officielle whisper.cpp est disponible et ne pèse que ~150 Mo contre ~2 Go pour l'image Python. C'est le choix recommandé pour les VPS entrée de gamme (2–4 Go RAM).

Déploiement Docker pas à pas (openai-whisper-asr-webservice v1.10.0)

  1. Préparer le serveur

    Installez Docker Engine et Docker Compose : curl -fsSL https://get.docker.com | sh && sudo usermod -aG docker $USER. Ouvrez le port 9000 en local uniquement : ufw deny 9000/tcp (l'API sera accessible via reverse proxy).

  2. Créer le répertoire de travail

    mkdir -p ~/whisper && cd ~/whisper
  3. Rédiger le docker-compose.yml

    services:
      whisper:
        image: onerahmet/openai-whisper-asr-webservice:latest
        restart: unless-stopped
        ports:
          - "127.0.0.1:9000:9000"
        environment:
          - ASR_MODEL=small          # tiny | base | small | medium | large-v3
          - ASR_ENGINE=faster_whisper
          - ASR_MODEL_PATH=/data/models
        volumes:
          - ./models:/data/models
        # Pour GPU : remplacez l'image par :latest-gpu et ajoutez :
        # deploy:
        #   resources:
        #     reservations:
        #       devices:
        #         - capabilities: [gpu]
  4. Choisir le modèle et lancer

    Remplacez ASR_MODEL=small par le modèle correspondant à votre RAM (voir tableau ci-dessus). Puis : docker compose up -d. Au premier démarrage, Whisper télécharge automatiquement les poids du modèle dans le volume ./models (~250 Mo pour small, ~3 Go pour large-v3).

  5. Vérifier que l'API est opérationnelle

    curl http://127.0.0.1:9000/docs
    # → interface Swagger ; ou tester une transcription :
    curl -F "[email protected]" http://127.0.0.1:9000/asr?encode=true&task=transcribe&language=fr
  6. Configurer le reverse proxy Nginx

    location /whisper/ {
        proxy_pass http://127.0.0.1:9000/;
        proxy_set_header Authorization $http_authorization;
        # Bloquer l'accès sans clé API
        if ($http_x_api_key != "VOTRE_CLE_SECRETE") {
            return 403;
        }
    }
  7. Protéger l'API par clé secrète

    N'exposez jamais l'API Whisper sans authentification (voir section sécurité). Générez une clé : openssl rand -hex 32. Ajoutez-la dans votre proxy et dans vos clients.

  8. Tester une transcription via l'API sécurisée

    curl -H "X-Api-Key: VOTRE_CLE_SECRETE" \
      -F "[email protected]" \
      https://votre-domaine.com/whisper/asr?task=transcribe&language=fr

Intégration réelle : brancher Whisper à n8n ou Nextcloud Talk

Une fois l'API opérationnelle, vous pouvez l'intégrer dans vos workflows existants. Dans n8n, ajoutez un nœud HTTP Request pointant sur https://votre-domaine.com/whisper/asr avec le header X-Api-Key et attachez votre fichier audio en multipart/form-data. La transcription retournée (JSON avec segments et timestamps) peut ensuite alimenter un nœud Notion, Google Sheets ou votre propre base de données. Pour Nextcloud Talk, le plugin talk_recording permet d'enregistrer les appels et d'envoyer automatiquement le fichier résultant à votre endpoint Whisper — la transcription revient dans le fil de discussion en quelques secondes.

Benchmarks CPU vs GPU sur VPS typique ServOrbit

Sur un VPS 4 vCPU / 8 Go RAM (moteur faster-whisper, modèle small) : une minute d'audio est transcrite en environ 18 secondes, soit un rapport temps réel de 3,3×. Sur un VPS 8 vCPU / 16 Go RAM avec le modèle medium : ~25 secondes par minute d'audio (2,4×). Avec un GPU NVIDIA RTX 4090 et large-v3 : ~4 secondes par minute d'audio (15×). Pour un usage batch (podcast, réunions quotidiennes), un VPS CPU 8 Go avec le modèle small offre le rapport performance/coût optimal. Pour de la transcription temps réel (< 5 s de latence), un VPS GPU avec large-v3-turbo est nécessaire.

Sécurité : ne jamais exposer l'API Whisper sans authentification

Règles de sécurité indispensables

  • Liez le port Docker à 127.0.0.1 uniquement (127.0.0.1:9000:9000) — jamais 0.0.0.0:9000
  • Protégez l'accès externe par une clé API dans le reverse proxy (header X-Api-Key)
  • Ajoutez un rate-limit Nginx : limit_req_zone $binary_remote_addr zone=whisper:10m rate=10r/m pour éviter les abus
  • Activez TLS sur votre domaine (Let's Encrypt) — ne transmettez jamais d'audio en clair sur le réseau
  • Ne stockez pas les fichiers audio sur disque plus longtemps que nécessaire : configurez --tmpfs /tmp dans Docker
  • Réservez l'endpoint à vos IPs internes si le service n'est accessible qu'en interne

Dépannage : erreurs fréquentes

Problèmes courants et solutions

  • CUDA not found / RuntimeError: CUDA error : utilisez l'image :latest (CPU) au lieu de :latest-gpu, ou vérifiez que nvidia-container-toolkit est installé et que les pilotes CUDA ≥ 12 sont présents (nvidia-smi).
  • Model not downloaded / FileNotFoundError : le volume ./models n'est pas monté correctement, ou le téléchargement initial a été interrompu. Supprimez le contenu de ./models et relancez docker compose up -d — Whisper re-télécharge automatiquement.
  • OOMKilled / Out of memory : le modèle choisi dépasse la RAM disponible. Passez au modèle inférieur (medium → small, small → base) ou augmentez la RAM de votre VPS.
  • 422 Unprocessable Entity sur /asr : le fichier audio doit être envoyé en multipart/form-data avec le champ nommé audio_file. Vérifiez aussi que encode=true est présent en query string pour les formats MP3/MP4.

Pour les VPS sans GPU, combinez Whisper.cpp (CPU-only, ~150 Mo d'image) avec le modèle small quantifié en 4 bits (-m models/ggml-small-q5_1.bin) : vous divisez la consommation RAM par ~2,5 tout en conservant une précision proche du modèle float16.

Déployer Whisper depuis la Marketplace ServOrbit

ServOrbit propose une application Whisper pré-configurée dans sa Marketplace IA. En un clic, votre VPS est prêt : Docker installé, image onerahmet/openai-whisper-asr-webservice:latest déployée, Nginx configuré avec TLS et clé API générée automatiquement. Vous choisissez le modèle (tiny à large-v3) lors de l'installation et bénéficiez des mises à jour one-click.

Déployez Whisper sur un VPS ServOrbit en 1 clic

Whisper est disponible sur la Marketplace ServOrbit : Docker, ffmpeg et la configuration réseau sont gérés automatiquement. Vos transcriptions restent sur votre VPS — aucune donnée n'est envoyée à un service tiers.