# faster-whisper — transcription Whisper rapide en Python

faster-whisper : Whisper jusqu'à 4x plus rapide via CTranslate2, 100% local en Python. Installation pip, choix CPU ou GPU, licence MIT et points de vigilance.

URL canonique : https://www.osfria.fr/faster-whisper.html

---

OSIALab · Voix & transcription

## faster-whisper — transcrire en Python, plus vite

faster-whisper réimplémente le modèle **Whisper** sur le moteur d'inférence **CTranslate2**. Résultat : jusqu'à **4× plus rapide** et bien plus sobre en mémoire que l'implémentation d'origine, pour une qualité de transcription équivalente — le tout **en local**.

### Fiabilité & transparence

🟡 **Utilisable, avec points d'attention**

- **Maintenance** : dernière version publiée fin octobre 2025 ; dernier commit novembre 2025. Le rythme de releases s'est ralenti depuis mi-2025, mais le projet reste opérationnel avec 22 000+ étoiles GitHub et des PR traitées rapidement.
- **Adoption** : très largement utilisé comme bibliothèque Python de transcription locale, notamment dans des outils comme Whisper WebUI et des pipelines RAG ; dépôt PyPI actif.
- **Sécurité** : traitement 100 % local, aucune donnée audio ne sort ; aucune faille majeure connue — veillez à aligner les versions CUDA / cuDNN / CTranslate2 pour éviter des incompatibilités.
- **Verdict** : excellent choix pour intégrer la transcription Whisper dans un script ou une application Python ; surveillance recommandée sur la cadence de maintenance en 2026.

> Page informative, sans valeur de conseil. Vérifiez la **licence** du logiciel et des modèles, et gardez en tête qu'une transcription automatique **contient des erreurs** : relisez avant d'exploiter le résultat.

### À quoi ça sert

faster-whisper fait le même travail que [whisper.cpp](https://www.osfria.fr/whisper-cpp.html) — convertir la parole en texte — mais s'intègre comme une **bibliothèque Python**. On lui passe un fichier audio, il renvoie des segments horodatés qu'on manipule directement dans son code. C'est le choix naturel quand la transcription n'est qu'une étape d'un programme plus large : indexation, sous-titrage automatisé, analyse de réunions, alimentation d'un [RAG](https://www.osfria.fr/anythingllm.html).

### Ce qui fait sa force

- **Le moteur CTranslate2.** Développé par OpenNMT, il optimise l'inférence des modèles Transformer (quantification int8/float16, fusion d'opérations, gestion fine du batch). C'est lui qui apporte le gain de vitesse et la baisse de consommation mémoire face au Whisper PyTorch d'origine.
- **CPU comme GPU.** En `int8` sur processeur ou en `float16` sur GPU NVIDIA (CUDA), le même code s'adapte au matériel. On choisit le compromis vitesse/qualité via le type de calcul.
- **Segments structurés et horodatés.** La sortie est une liste de segments avec début, fin et texte, et l'horodatage au mot est disponible — parfait pour générer des sous-titres ou aligner du texte sur de l'audio par programme.
- **Détection d'activité vocale intégrée.** Un filtre VAD (Silero) saute les silences, ce qui accélère le traitement des longs enregistrements et réduit les transcriptions parasites.
- **Modèles prêts à l'emploi.** Les poids Whisper convertis sont récupérés automatiquement depuis Hugging Face au premier appel, par taille (tiny à large-v3) et en variantes distil pour plus de rapidité.

### Pour qui

Pour les développeurs Python qui veulent intégrer la transcription dans une application ou un script. Si vous cherchez plutôt un binaire autonome à lancer en ligne de commande, sans environnement Python à gérer, [whisper.cpp](https://www.osfria.fr/whisper-cpp.html) sera plus direct.

### Installation

#### Prérequis

Python 3.9+ et `pip`. Pour l'accélération GPU : une carte NVIDIA avec les bibliothèques CUDA et cuDNN installées. Sur CPU, aucun prérequis matériel particulier.

#### Installer via pip

```
pip install faster-whisper
```

#### Transcrire un fichier

```
from faster_whisper import WhisperModel

# « small » en int8 sur CPU ; passez device="cuda", compute_type="float16" sur GPU
model = WhisperModel("small", device="cpu", compute_type="int8")

segments, info = model.transcribe("mon_audio.mp3", language="fr")

print(f"Langue detectee : {info.language} (p={info.language_probability:.2f})")
for segment in segments:
    print(f"[{segment.start:.2f}s -> {segment.end:.2f}s] {segment.text}")
```

#### Activer le filtre de silences (VAD)

```
segments, info = model.transcribe(
    "longue_reunion.wav",
    language="fr",
    vad_filter=True,           # ignore les silences
    word_timestamps=True,      # horodatage au mot
)
```

#### Choisir le bon type de calcul

```
# CPU, le plus sobre
model = WhisperModel("small", device="cpu", compute_type="int8")

# GPU NVIDIA, rapide
model = WhisperModel("large-v3", device="cuda", compute_type="float16")

# Compromis GPU avec moindre empreinte mémoire
model = WhisperModel("medium", device="cuda", compute_type="int8_float16")
```

### Bien choisir son modèle

Mêmes tailles que Whisper : de `tiny` à `large-v3`. Le paramètre `compute_type` arbitre vitesse et précision : `int8` est le plus léger (idéal CPU), `float16` tire parti du GPU, `int8_float16` combine les deux. Les variantes `distil-large-v3` offrent une vitesse accrue avec une qualité proche du modèle complet, surtout sur l'anglais.

### Points de vigilance

Comme whisper.cpp, le traitement reste local et l'outil se contente de produire du texte. Les points réels concernent l'usage et l'environnement, pas l'outil lui-même.

| Point d'attention | Niveau | Ce qu'il faut savoir |
| --- | --- | --- |
| Enregistrer une personne sans son accord | 🔴 selon le contexte | Une voix est une donnée personnelle. Transcrire un échange privé sans information ni consentement des intéressés peut contrevenir au RGPD, même si le calcul est 100 % local. |
| Dépendances GPU (CUDA / cuDNN) | 🟡 selon l'installation | L'accélération GPU exige les bonnes versions de CUDA et cuDNN ; une incompatibilité est la cause d'erreur la plus fréquente. La mise en place de la pile CUDA peut être délicate (versions CUDA, cuDNN et CTranslate2 à aligner). Le mode CPU en `int8` fonctionne sans aucun de ces prérequis, mais la vitesse est sensiblement plus basse : pour de longs enregistrements, un GPU fait une vraie différence. |
| Licence du logiciel et des modèles | 🟢 permissive | faster-whisper est sous **MIT**, son moteur **CTranslate2** (OpenNMT) aussi, et les poids Whisper d'OpenAI sont sous **MIT** — usage commercial possible. |

### Sécurité

- **Installez depuis PyPI officiel** et épinglez les versions dans votre projet pour des résultats reproductibles.
- **Les poids sont téléchargés au premier appel** depuis Hugging Face : assurez-vous d'une source fiable lors de ce premier chargement, puis ils sont mis en cache localement.
- **Traitez les enregistrements comme des données sensibles** ; chiffrez le stockage si l'audio contient des informations confidentielles.

### Aller plus loin

- [whisper.cpp](https://www.osfria.fr/whisper-cpp.html) — la même famille Whisper en binaire C/C++ autonome.
- [FFmpeg](https://www.osfria.fr/ffmpeg.html) — préparer, découper et convertir l'audio en amont.
- [Piper](https://www.osfria.fr/piper-tts.html) — synthèse vocale locale, le chemin inverse.
- [OSIALab](https://www.osfria.fr/osialab.html) — tous les outils voix et transcription.

### Sources

- Code source & licence (MIT) : [github.com/SYSTRAN/faster-whisper](https://github.com/SYSTRAN/faster-whisper)
- Moteur CTranslate2 (MIT) : [github.com/OpenNMT/CTranslate2](https://github.com/OpenNMT/CTranslate2)
- Modèle Whisper d'origine (MIT) : [github.com/openai/whisper](https://github.com/openai/whisper)
