OSFRIA Découvrir les outils

OSIALab · Voix & synthèse

Piper — transformer du texte en voix, en local

Piper est un moteur de synthèse vocale (text-to-speech) neuronal qui tourne entièrement hors ligne. Léger et rapide — il génère une voix naturelle en quelques millisecondes, jusque sur un Raspberry Pi — c'est le TTS local de référence des assistants vocaux libres.

Page informative, sans valeur de conseil. Téléchargez depuis la source officielle, vérifiez la licence du logiciel et de chaque voix, et indiquez toujours qu'une voix est générée par IA lorsque vous la diffusez.

À quoi ça sert

Piper transforme du texte en parole. Il repose sur l'architecture VITS et des modèles exportés au format ONNX, ce qui lui donne une inférence très rapide sur processeur, sans GPU ni cloud. On l'utilise pour lire des documents à voix haute, donner une voix à un assistant domotique (c'est le TTS par défaut de Home Assistant), vocaliser des notifications, ou intégrer la parole dans une application. Plusieurs voix françaises sont disponibles.

Ce qui fait sa force

  • Rapide et sobre. Grâce à ONNX Runtime, Piper synthétise plus vite que le temps réel sur un CPU modeste. Pas de carte graphique requise, empreinte mémoire minime.
  • Un catalogue de voix multilingue. Des dizaines de langues et, pour chacune, plusieurs voix déclinées en qualités low / medium / high. On choisit le compromis taille/naturel selon la cible.
  • Voix figées et reproductibles. Contrairement à un modèle génératif, Piper rend la même sortie pour le même texte : indispensable pour un produit, où l'on veut une voix stable et prévisible.
  • Deux poids par voix, c'est tout. Un fichier .onnx (le modèle) et un .onnx.json (sa configuration). Facile à embarquer, à versionner, à déployer.
  • Pensé pour l'embarqué et l'intégration. Binaire autonome, sortie audio brute chaînable, et bibliothèque Python pour l'inclure dans un service.

Pour qui

Pour qui veut une voix locale rapide et stable dans un projet ou un assistant. Si vous cherchez une expressivité plus marquée (rires, émotions, intonations variables) et acceptez un modèle plus lourd et non déterministe, regardez Bark. Pour le chemin inverse — transcrire la parole — voyez whisper.cpp.

Installation

Point important sur le dépôt

Le dépôt historique rhasspy/piper a été archivé en octobre 2025 ; le développement se poursuit sous OHF-Voice/piper1-gpl, maintenu par l'Open Home Foundation. C'est cette version qu'installe le paquet pip piper-tts aujourd'hui. La distinction a une conséquence concrète sur la licence (voir plus bas).

Installer via pip

pip install piper-tts

Télécharger une voix française

Une voix se compose de deux fichiers (.onnx et .onnx.json). On peut les laisser télécharger automatiquement par leur identifiant :

# Récupère la voix « fr_FR-siwis-medium » dans le dossier courant
python -m piper.download_voices fr_FR-siwis-medium

Synthétiser de la voix

# Générer un fichier WAV
echo "Bonjour, ceci est un test de synthese vocale locale." | \
  piper -m fr_FR-siwis-medium -f sortie.wav

# Envoyer directement vers les haut-parleurs (sortie audio brute)
echo "Lecture immediate." | \
  piper -m fr_FR-siwis-medium --output-raw | \
  aplay -r 22050 -f S16_LE -t raw -

Depuis Python

from piper import PiperVoice
import wave

voice = PiperVoice.load("fr_FR-siwis-medium.onnx")
with wave.open("sortie.wav", "wb") as wav:
    voice.synthesize_wav("Texte a vocaliser.", wav)

Bien choisir sa voix

Chaque voix existe en plusieurs qualités : low (la plus légère, un peu robotique), medium (le meilleur compromis pour la plupart des usages), high (la plus naturelle, fichiers plus lourds). Le débit se règle via le paramètre de longueur ; testez quelques voix françaises (siwis, tom, upmc…) pour trouver le timbre qui convient à votre projet.

Points de vigilance

Piper synthétise localement et n'envoie rien en ligne. Les deux vrais points concernent la licence — qui a changé avec le dépôt — et l'usage de la voix.

Point d'attention Niveau Ce qu'il faut savoir
Licence du logiciel : MIT puis GPL-3.0 🟡 selon la version L'ancien rhasspy/piper était sous MIT. La version actuelle, OHF-Voice/piper1-gpl (paquet piper-tts), est sous GPL-3.0 — du fait de l'intégration d'espeak-ng pour la phonémisation. À intégrer dans un produit propriétaire, la GPL impose ses obligations : vérifiez la version exacte que vous embarquez.
Licence propre à chaque voix 🟡 selon la voix Les voix ne suivent pas la licence du moteur : chacune a la sienne (CC0, CC-BY, MIT…) selon le corpus d'entraînement. Lisez la licence de la voix retenue avant toute diffusion ou usage commercial.
Mention de l'origine synthétique 🟡 bonne pratique & obligation émergente Faire passer une voix de synthèse pour une personne réelle est trompeur. Signalez clairement qu'une voix est générée par IA — l'AI Act européen va dans le sens d'une obligation de transparence.

Sécurité

  • Installez depuis les sources officielles : le paquet PyPI piper-tts ou le dépôt OHF-Voice/piper1-gpl. Méfiez-vous des binaires non vérifiés.
  • Récupérez les voix depuis le catalogue officiel (Hugging Face rhasspy/piper-voices) et conservez le couple .onnx + .onnx.json cohérent.
  • Tenez le moteur à jour pour les correctifs et les améliorations de qualité vocale.

Aller plus loin

  • whisper.cpp — le chemin inverse : de la parole vers le texte.
  • Bark — synthèse plus expressive, plus lourde et non déterministe.
  • FFmpeg — convertir ou assembler les fichiers audio produits.
  • OSIALab — tous les outils voix.

Sources