Installer faster-whisper sous windows.


Faster-Whisper est une réimplémentation astucieuse du modèle Whisper original. Au cœur de Faster-Whisper se trouve CTranslate2, un moteur d’inférence optimisé pour les modèles Transformer. En résumé, CTranslate2 est un moteur d’inférence qui maximise les performances de transcription en réduisant de manière significative le temps d’exécution et la consommation de mémoire, sans compromettre la précision.

Le résultat ? Une implémentation qui peut se vanter d’être jusqu’à 4 fois plus rapide que le modèle Whisper original d’OpenAI, tout en étant nettement plus économe en mémoire.

Guide d’installation

Dans ce guide, nous explorerons comment installer efficacement Faster-Whisper et ses modèles associés sous windows, en veillant à une configuration optimale pour l’exécution sur CPU. Pour les chanceux disposant d’une carte graphique Nvidia, nous aborderons également l’installation pour une utilisation avec le GPU via CUDA, avec des performances encore plus folles.

D’accord, allons-y avec la section sur l’installation de Faster-Whisper.

Installation

Pour profiter des capacités avancées de Faster-Whisper, il est essentiel de préparer votre système avec les outils adéquats. La première exigence est la présence de Python 3.8 ou une version supérieure sur votre ordinateur. Python sert de fondation à Faster-Whisper, et heureusement, il existe un module Python spécialement conçu pour faciliter son installation.

Le dépôt officiel de Faster-Whisper est accessible à cette adresse : https://github.com/SYSTRAN/faster-whisper. Ce guide va au-delà d’une simple installation ; il vous montrera comment configurer un emplacement dédié pour stocker les modèles de manière organisée et comment installer CUDA pour booster les performances sur les systèmes équipés de GPU.

Création d’un environnement virtuel

L’installation de Faster-Whisper dans un environnement virtuel présente plusieurs avantages. Non seulement cela permet de maintenir votre système propre en évitant les conflits entre versions de packages, mais cela facilite également la gestion des dépendances spécifiques au projet. En isolant l’installation, vous vous assurez que les mises à jour ou modifications effectuées sur Faster-Whisper n’affectent pas d’autres projets Python que vous pourriez avoir.

Voici les étapes pour préparer votre installation de Faster-Whisper :

Création du dossier d’installation : Commencez par créer un dossier dédié sur votre système où vous souhaitez installer Faster-Whisper. Cela aidera à organiser vos projets et à faciliter l’accès aux fichiers de modèle.

Mise en place de l’environnement virtuel : Dans le dossier créé, initialisez un environnement virtuel en utilisant venv. Cela crée un espace isolé pour les dépendances de votre projet. Ouvrez un terminal ou une invite de commande et naviguez jusqu’au dossier d’installation. Exécutez la commande suivante pour créer l’environnement virtuel :

   python -m venv nom_de_votre_environnement

Activation de l’environnement virtuel : Avant de procéder à l’installation des packages nécessaires, activez l’environnement virtuel avec la commande suivante :

nom_de_votre_environnement\Scripts\activate

Mise à jour de pip : Il est recommandé de mettre à jour le gestionnaire de paquets pip à sa dernière version avant d’installer de nouveaux packages. Cela garantit la compatibilité et la sécurité. Utilisez la commande suivante pour mettre à jour pip :

   pip install --upgrade pip

Avec votre environnement virtuel prêt et à jour, vous êtes bien positionné pour installer Faster-Whisper et ses dépendances sans heurt, tout en gardant votre système global propre et organisé.

Installation des modules pour Faster-Whisper

Après avoir configuré notre environnement virtuel, l’étape suivante consiste à installer le module Faster-Whisper lui-même. Cette opération installera également toutes les dépendances minimales requises pour son bon fonctionnement. Pour ce faire, assurez-vous que votre environnement virtuel est activé, puis exécutez la commande suivante dans votre terminal :

pip install faster-whisper

Cette simple commande équipera votre espace de travail avec Faster-Whisper et les outils nécessaires pour commencer la transcription audio.

Test et installation de modèle

L’environnement virtuel, à ce stade, occupe environ 350 Mo, une taille relativement légère qui permet de démarrer rapidement. Avec les modules nécessaires en place, notre environnement est prêt pour une première exécution. Cependant, il est important de noter que nous avons configuré notre système pour utiliser le mode processeur (CPU), et les modèles seront chargés en RAM.

Pour tester la capacité de transcription de Faster-Whisper, nous allons créer un fichier Python nommé inference.py. Le terme « inference » fait référence au processus d’exécution d’un modèle dans l’espace de travail virtuel de notre ordinateur pour accomplir une tâche spécifique, en l’occurrence, la transcription audio.

Script d’inférence

Copiez le code suivant dans le fichier inference.py que vous avez créé :

Attention ! avant d’exécuter le script, lisez bien les instructions que j’ai laissées en dessous. Sinon, faster-whisper vous téléchargera les modèles dans un endroit secret que vous allez mettre des heures à retrouver 😄. De plus, vérifiez bien le modèle et votre RAM disponible pour voir si vous pouvez l’utiliser sans saturer votre RAM, dans cet exemple, j’utilise le plus gros modèle qui utilisera entre 3.5Go et 4go de Ram.

from faster_whisper import WhisperModel

model_size = "large-v3"

model = WhisperModel(model_size, device="cpu", compute_type="int8")

segments, info = model.transcribe("audio.mp3", beam_size=5)

print("Detected language '%s' with probability %f" % (info.language, info.language_probability))

for segment in segments:
    print("[%.2fs -> %.2fs] %s" % (segment.start, segment.end, segment.text))

Dans ce script, la ligne model_size = "large-v3" indique au système de télécharger automatiquement le modèle large-v3 si ce n’est pas déjà fait. Ce modèle, qui peut occuper plus de 2 Go d’espace disque, nécessitera une quantité significative de RAM pour fonctionner efficacement.

Gestion des emplacements des modèles

Par défaut, le modèle sera téléchargé dans le chemin suivant sur Windows:

C:\utilisateurs\{nom_utilisateur}\.cache\huggingface\hub\models--Systran--faster-whisper-large-v3

Ce qui peut ne pas être idéal si vous souhaitez contrôler l’emplacement de stockage des modèles ou si votre espace disque principal est limité. Si vous préférez stocker le modèle dans un dossier spécifique, il est crucial de configurer cela avant d’exécuter le script inference.py.

Spécifier un emplacement de stockage alternatif pour les modèles

Pour ceux qui préfèrent stocker leurs modèles Faster-Whisper dans un emplacement autre que le cache local par défaut sous Windows, il est possible de le faire directement dans le code avec l’argument :

download_root="chemin_vers_dossier_des_models"

L’argument download_root est utile pour rediriger le téléchargement et l’utilisation des modèles vers un dossier de votre choix. En spécifiant ce chemin absolu, vous indiquez à Faster-Whisper où chercher (et éventuellement télécharger) les modèles nécessaires pour la transcription. Si les modèles sont déjà présents dans ce dossier, le système les utilisera directement sans procéder à un nouveau téléchargement.

Pour appliquer cette configuration, remplacez la ligne de création de l’objet WhisperModel dans votre script inference.py par la suivante, en n’oubliant pas d’ajuster le chemin selon votre configuration :

model = WhisperModel(model_size, device="cpu", compute_type="int8", download_root="C:\\chemin\\absolu\\vers\\les\\modèles")

Utilisation avec CUDA

Pour les détenteurs de cartes graphiques NVIDIA, CUDA offre la possibilité d’augmenter considérablement la vitesse d’exécution des modèles d’intelligence artificielle, notamment lors de l’inférence avec Faster-Whisper. Cependant, l’utilisation de CUDA exige que votre carte graphique dispose d’assez de VRAM pour le modèle que vous comptez utiliser. Par exemple, pour le plus gros modèle de Whisper, vous aurez besoin d’environ 4755 Mo de VRAM pour une inférence en haute précision (FP16) et de 3091 Mo pour une inférence avec quantification 8 bits, qui arrondit les poids du modèle et sacrifie légèrement la précision au profit de la performance.

Installation

La méthode la plus simple pour exploiter CUDA avec PyTorch dans votre environnement virtuel est d’installer PyTorch avec CUDA déjà compilé. Pour cela, vous devrez vous rendre sur le site de PyTorch pour obtenir la commande d’installation adaptée à votre configuration.

  1. Sélectionnez Stable (2.2.1) pour la version stable de PyTorch.
  2. Choisissez Windows comme système d’exploitation si vous êtes sur un PC avec Windows.
  3. Optez pour Pip comme méthode de package, ce qui est compatible avec notre environnement virtuel Python.
  4. Assurez-vous que Python est sélectionné comme langage.
  5. Pour la plateforme de calcul, sélectionnez CUDA 11.8 si c’est la version de CUDA compatible avec votre système et carte graphique.

En appliquant ces filtres, vous obtiendrez une ligne de commande pour installer proprement pytorch avec cuda compilé :

pip3 install torch torchvision torchaudio --index-url https://download.pytorch.org/whl/cu118

Cette commande installera PyTorch, ainsi que torchvision et torchaudio, avec le support pour CUDA 11.8. Exécutez cette commande dans votre environnement virtuel activé pour procéder à l’installation.

Test avec cuda

Maintenant que CUDA est installé avec PyTorch, il est temps de tester si l’accélération graphique fonctionne correctement avec Faster-Whisper. Pour cela, vous pouvez modifier le script inference.py que nous avons utilisé précédemment, en ajustant le périphérique d’exécution (device) de « cpu » à « cuda ». Vous avez également le choix du type de calcul : float16 pour une inférence en haute précision, ou int8_float16 pour utiliser la quantification 8 bits et bénéficier de performances optimisées.

Exemple pour FP16 :

from faster_whisper import WhisperModel

model_size = "large-v3"

# Utilisation de CUDA en haute précision (float16)
model = WhisperModel(model_size, device="cuda", compute_type="float16", download_root="chemin_vers_dossier_des_models")
segments, info = model.transcribe("audio.mp3", beam_size=5)

# Affichage des résultats
print("Detected language '%s' with probability %f" % (info.language, info.language_probability))
for segment in segments:
    print("[%.2fs -> %.2fs] %s" % (segment.start, segment.end, segment.text))

Exemple pour INT8 avec fallback sur FP16 :

from faster_whisper import WhisperModel

model_size = "large-v3"

# Utilisation de CUDA avec quantification 8 bits et fallback sur float16 si nécessaire
model = WhisperModel(model_size, device="cuda", compute_type="int8_float16", download_root="chemin_vers_dossier_des_models")
segments, info = model.transcribe("audio.mp3", beam_size=5)

# Affichage des résultats
print("Detected language '%s' with probability %f" % (info.language, info.language_probability))
for segment in segments:
    print("[%.2fs -> %.2fs] %s" % (segment.start, segment.end, segment.text))

Si votre script s’exécute sans erreur et affiche les transcriptions, cela signifie que CUDA est correctement installé et fonctionne comme attendu sur votre machine. Vous pouvez maintenant profiter des avantages de la vitesse d’inférence accélérée par votre carte graphique NVIDIA. Enjoy 😏.