--- title: Speaches created: 2026-06-07 updated: 2026-06-07 type: app tags: [catalogue, artificial-intelligence, stt, tts, whisper, openai-compatible, audio, python, mit] confidence: high contested: false sources: [https://selfh.st/apps/?tag=artificial-intelligence, https://github.com/speaches-ai/speaches] --- # Speaches 🎙️ > **Le « Ollama du son »** — serveur OpenAI-compatible pour la **transcription vocale (STT)** et la **synthèse vocale (TTS)**, basé sur faster-whisper, Piper et Kokoro, 100 % local et auto-hébergé. | Métadonnée | Valeur | | :--- | :--- | | **Site web** | https://speaches.ai/ | | **GitHub** | https://github.com/speaches-ai/speaches | | **License** | MIT | | **Langage** | Python (99 %) | | **Étoiles** | 399 | | **Dernière MAJ** | 2025-12-27 (v0.9.0-rc.3) | | **Catégorie** | [[cat-artificial-intelligence]] | ## 📝 Description **Speaches** (jeu de mots sur *speech* + *es*) est un **serveur HTTP compatible avec l'API OpenAI Audio** (`/v1/audio/transcriptions`, `/v1/audio/translations`, `/v1/audio/speech`) qui s'installe en une ligne de Docker et accepte n'importe quel client OpenAI existant : **Home Assistant**, **Open WebUI**, **Cody**, **Continue**, **n8n**, scripts Python avec le SDK `openai>=1.0`, applications **ESP32** de transcription, etc. Le slogan officiel est *« Ollama, but for TTS/STT models »* : on télécharge un modèle à la demande, il est **chargé dynamiquement en GPU/CPU/RAM**, utilisé, puis déchargé après inactivité pour libérer la VRAM. Côté **STT (speech-to-text)**, Speaches utilise **faster-whisper** (le port CTranslate2 de Whisper, 4 à 6× plus rapide que le Python original) avec diarisation **pyannote** (identification du locuteur). Tous les modèles Whisper sont supportés : `tiny`, `base`, `small`, `medium`, `large-v3`, `turbo`, et les **distil-whisper** distillés. Le **streaming SSE** envoie la transcription au fur et à mesure — utile pour sous-titrer un direct ou afficher le live-caption dans un dashboard. Côté **TTS (text-to-speech)**, deux backends au choix : **Piper** (modèles on-device, voix offline très légères, ~15 Mo par voix, multilingue) et **Kokoro-82M** (Rank #1 du TTS Arena HuggingFace, qualité proche de XTTS/OpenAI TTS, modèles EN/ZH/JA/ES/FR/IT/PT/HI). Le projet est **très actif** : 3 400 ⭐, 740 commits, 35 contributeurs, 9 releases, soutenu par le mainteneur principal **Fedir Zadniprovskyi** (également mainteneur d'`faster-whisper`). Speaches supporte **GPU (CUDA) et CPU**, propose une **Realtime API** pour la conversation bidirectionnelle (micro → STT → LLM → TTS → haut-parleur, façon Voice Mode de ChatGPT), et un **CLI** (`speaches-cli`) avec alias de commandes pour scripter facilement. C'est aujourd'hui la **référence self-hosted** pour remplacer l'audio OpenAI sans payer au token. ## 🚀 Installation ### Option 1 : Docker Compose (recommandé) ```yaml # docker-compose.yml services: speaches: image: ghcr.io/speaches-ai/speaches:latest container_name: speaches restart: unless-stopped ports: - "8000:8000" volumes: - speaches-models:/root/.cache/huggingface environment: - TZ=Europe/Paris - WHISPER_MODEL=base # tiny/base/small/medium/large-v3/turbo - WHISPER_COMPUTE_TYPE=int8 # int8/int8_float16/float16/float32 - KOKoro_MODEL=hexgrad/Kokoro-82M - PIPER_VOICE=en_US-amy-low # voix Piper par défaut - ENABLE_DIARIZATION=true # nécessite HF_TOKEN + pyannote accept deploy: resources: reservations: devices: - driver: nvidia count: all capabilities: [gpu] # commenter pour CPU-only healthcheck: test: ["CMD", "wget", "--no-verbose", "--tries=1", "--spider", "http://localhost:8000/health"] interval: 30s timeout: 5s retries: 3 volumes: speaches-models: ``` Pour CPU uniquement (sans GPU), supprimez le bloc `deploy.resources` — Speaches tournera avec `int8` par défaut et sera ~3× plus lent qu'en CUDA. Le **premier téléchargement** d'un modèle Whisper ou Kokoro prend 30 s à 2 min selon la bande passante. ### Option 2 : Installation manuelle Prérequis : **Python 3.11+**, **ffmpeg** dans le PATH, **CUDA Toolkit 12.x** (optionnel). Clone, `uv sync` (le projet utilise `uv` au lieu de pip), puis `uv run speaches`. L'image Docker officielle utilise `nvidia/cuda` comme base pour gagner 2-4 Go par rapport à un `pytorch` complet. Voir la [doc d'install](https://speaches.ai/installation/) pour les détails Nix et les configs CDI (Container Device Interface). ## ⚙️ Configuration Speaches se configure par **variables d'environnement** ou fichier `.env` : - `WHISPER_MODEL` : nom du modèle (défaut `base`, recommandé `small` ou `turbo` pour un bon compromis vitesse/qualité). - `WHISPER_COMPUTE_TYPE` : précision (`int8` = CPU-friendly, `float16` = GPU). - `KOKORO_MODEL` : modèle TTS HuggingFace à précharger. - `PIPER_VOICE` : voix Piper par défaut (voix FR : `fr_FR-siwis-medium`, voix EN : `en_US-amy-low`). - `ENABLE_DIARIZATION=true` + `HF_TOKEN` (token HuggingFace + acceptation des conditions **pyannote/speaker-diarization-3.0** sur la page modèle). - `UVICORN_HOST=0.0.0.0` / `UVICORN_PORT=8000` (rare à changer). **Test rapide** après install : ```bash # Transcrire un fichier curl -X POST http://localhost:8000/v1/audio/transcriptions \ -F file=@podcast.mp3 -F model=base # Générer de la parole curl -X POST http://localhost:8000/v1/audio/speech \ -H "Content-Type: application/json" \ -d '{"input":"Bonjour le monde","voice":"fr","model":"kokoro"}' \ --output bonjour.wav ``` ## 🔄 Alternatives ### Open Source - **Whisper.cpp** — moteur bas-niveau C++ (utilisé par Speaches en interne via faster-whisper), pas de serveur HTTP out-of-the-box. - **WhisperX** — Whisper + diarisation + word-level alignment, pas d'API REST propre. - **Faster-WhisperServer** (fedirz) — ancêtre simplifié de Speaches, sans TTS. - **Piper** (sans wrapper serveur) — moteur TTS brut, à intégrer manuellement. - **OpenVoice**, **Coqui TTS (XTTS)** — TTS multi-langue avec clonage de voix, plus lourds. - **Coqui Studio** — fermé depuis 2024. - [[app-ollama]] — pour les LLM ; Speaches complète le trio LLM + STT + TTS. ### Propriétaires (ce que Speaches remplace) - **OpenAI Whisper API** ($0.006/min) — Speaches `large-v3` local est **gratuit et équivalent** qualité. - **OpenAI TTS API** ($15/1M caractères) — Kokoro-82M est **gratuit** et classé #1 sur le TTS Arena. - **ElevenLabs** ($5-$330/mois) — clonage de voix excellent, mais cloud et cher. - **Google Cloud Speech / Azure Speech** — APIs enterprise, facturation à l'usage. - **AssemblyAI** — diarisation cloud de référence, latence <500 ms. ## 🔐 Sécurité - **Exposé sans auth par défaut** : Speaches n'a **aucun système d'authentification intégré**. Placez-le **derrière un reverse-proxy authentifié** (Authelia, Authentik, oauth2-proxy) ou un **VPN/Tailscale** — sinon n'importe qui peut l'utiliser (et consommer votre GPU !). - **Reverse proxy HTTPS** (Caddy/Traefik) — les flux audio sont souvent considérés comme personnels. - **HF_TOKEN** : si vous activez la diarisation, le token est passé au runtime, **ne le logguez pas** (Speaches ne le fait pas par défaut). - **Modèles volumineux** : `large-v3` = 3 Go, `Kokoro-82M` = 330 Mo. Prévoyez un volume dédié (`speaches-models` ici) sur un disque rapide (SSD/NVMe), pas sur un partage NFS lent. - **FFmpeg** : vulnérabilités régulières, gardez l'image Docker à jour (`docker compose pull` mensuel) — Speaches est basé sur `nvidia/cuda` qui reçoit les patchs de sécurité upstream. ## 📚 Ressources - [GitHub speaches-ai/speaches](https://github.com/speaches-ai/speaches) - [Site officiel](https://speaches.ai/) - [Documentation](https://speaches.ai/installation/) - [Demo Realtime API](https://speaches.ai/usage/realtime-api) - [Kokoro-82M sur HuggingFace](https://huggingface.co/hexgrad/Kokoro-82M) - [faster-whisper](https://github.com/SYSTRAN/faster-whisper) - [Piper TTS](https://github.com/rhasspy/piper) ## Pages Liées - [[cat-artificial-intelligence]] — Catégorie AI - [[app-ollama]] — Runtime LLM (équivalent pour le texte) - [[app-open-webui]] — Interface qui peut utiliser Speaches comme provider STT - [[app-scriberr]] — Transcription audio concurrente (Whisper-only, plus simple) - [[recettes-docker-compose]] — Templates Docker - [[securisation-home-lab]] — Reverse proxy, authentification