- Structure complète du projet - Docker compose de production - Documentation organisée par thèmes - Guides d'installation et configuration - Section dépannage détaillée - Journal historique
5.3 KiB
5.3 KiB
🎤 Configuration Audio (STT + TTS)
Vue d'ensemble
Effi dispose d'un pipeline vocal complet fonctionnant sur folzo-Corp (PC Gaming avec RX 7800 XT) :
- STT (Speech-to-Text) : Whisper via speaches avec ROCm
- TTS (Text-to-Speech) : Piper/XTTS via openedai-speech
STT - Speaches (Whisper)
Configuration Docker Compose
Fichier : ~/speaches/docker-compose.yml (sur folzo-Corp)
services:
speaches:
image: speaches:rocm-ct2
container_name: speaches-stt
restart: unless-stopped
ports:
- "8200:8000"
devices:
- /dev/kfd
- /dev/dri
group_add:
- "44"
- "991"
security_opt:
- seccomp=unconfined
environment:
- HSA_OVERRIDE_GFX_VERSION=11.0.0
- WHISPER__MODEL=deepdml/faster-whisper-large-v3-turbo-ct2
- WHISPER__LANGUAGE=fr
- WHISPER__COMPUTE_TYPE=float32
- WHISPER__DEVICE=auto
volumes:
- speaches-models:/root/.cache/huggingface
speaches-init:
image: curlimages/curl:latest
container_name: speaches-init
restart: "no"
depends_on:
- speaches
entrypoint: >
sh -c "sleep 5 &&
curl -sf -X POST http://speaches:8000/v1/models/deepdml%2Ffaster-whisper-large-v3-turbo-ct2 &&
echo 'Modèle enregistré'"
volumes:
speaches-models:
Modèle utilisé
deepdml/faster-whisper-large-v3-turbo-ct2
- Version optimisée CTranslate2
- Support ROCm (GPU AMD)
- Turbo = version rapide du large-v3
- Langue : Français forcé (
fr)
Points importants
- Build personnalisé : L'image
speaches:rocm-ct2doit être construite localement - Architecture GPU : gfx1100 (RX 7800 XT)
- Compute type :
float32en CPU,float16en GPU - Initialisation : Le service
speaches-initenregistre le modèle au démarrage
TTS - OpenedAI-Speech (Piper)
Configuration Docker Compose
Fichier : ~/openedai-speech/docker-compose.yml (sur folzo-Corp)
services:
openedai-speech:
image: ghcr.io/matatonic/openedai-speech
container_name: openedai-speech
restart: unless-stopped
ports:
- "8100:8000"
volumes:
- ./tts-voices:/app/voices
- ./tts-config:/app/config
devices:
- /dev/kfd
- /dev/dri
group_add:
- "44"
- "991"
environment:
- HSA_OVERRIDE_GFX_VERSION=11.0.0
- HIP_VISIBLE_DEVICES=0
Voix disponibles
Piper (CPU - Recommandé pour usage standard)
Voix française : fr_FR-upmc-medium
# Téléchargement
cd ~/openedai-speech/tts-voices
wget https://huggingface.co/rhasspy/piper-voices/resolve/main/fr/fr_FR/upmc/medium/fr_FR-upmc-medium.onnx
wget https://huggingface.co/rhasspy/piper-voices/resolve/main/fr/fr_FR/upmc/medium/fr_FR-upmc-medium.onnx.json
Configuration (tts-config/config.yaml) :
tts-1:
alloy:
model: voices/fr_FR-upmc-medium.onnx
speaker: 0 # 0 = voix féminine
Points importants
- group_add numériques : Utiliser
"44"et"991"(pas les noms) - ROCm activé :
HSA_OVERRIDE_GFX_VERSION=11.0.0 - Fallback CPU : Piper fonctionne aussi en CPU si GPU indisponible
Configuration Open WebUI
Admin Panel → Settings → Audio
Paramètres STT
| Paramètre | Valeur |
|---|---|
| Engine | OpenAI |
| URL | http://192.168.1.11:8200/v1 |
| Model | deepdml/faster-whisper-large-v3-turbo-ct2 |
| API Key | anything (valeur quelconque) |
Paramètres TTS
| Paramètre | Valeur |
|---|---|
| Engine | OpenAI |
| URL | http://192.168.1.11:8100/v1 |
| Model | tts-1 (Piper) ou tts-1-hd (XTTS) |
| Voice | alloy |
Build CTranslate2 ROCm (speaches)
Pourquoi un build personnalisé ?
L'image officielle speaches ne publie pas d'image ROCm. Il faut builder CTranslate2 depuis les sources avec :
- Support MIOpen (équivalent ROCm de cuDNN)
- Architecture gfx1100 (RX 7800 XT)
Procédure de build
# 1. Cloner le repo
cd ~
git clone https://github.com/speaches-ai/speaches.git
cd speaches
# 2. Modifier le Dockerfile pour gfx1100
cd src
sed -i 's/gfx1101/gfx1100/g' Dockerfile.rocm-ct2
# 3. Build (~50 min la première fois)
docker build -f Dockerfile.rocm-ct2 -t speaches:rocm-ct2 .
Architecture GPU
Vérifier votre architecture :
docker run --device /dev/kfd --device /dev/dri \
-e HSA_OVERRIDE_GFX_VERSION=11.0.0 speaches:rocm-ct2 \
/opt/rocm-6.3.4/bin/rocminfo | grep -E "gfx|Name"
Cartes courantes :
- RX 7800 XT :
gfx1100 - RX 7900 XTX :
gfx1100 - RX 7700 XT :
gfx1101
Dépannage audio
Erreur : "float16 not supported on CPU backend"
Solution : Changer WHISPER__COMPUTE_TYPE :
environment:
- WHISPER__COMPUTE_TYPE=int8 # ou float32
Erreur : "Unable to find group render"
Solution : Utiliser les GID numériques :
group_add:
- "44" # video
- "991" # render
Erreur : "hipErrorInvalidDeviceFunction"
Cause : Mauvaise architecture GPU dans le build Solution : Rebuilder avec la bonne valeur gfx (voir section Build)
Performance attendue
| Composant | Mode | Latence | Notes |
|---|---|---|---|
| STT | CPU (int8) | ~10s pour 5s audio | Utilisation 100% CPU |
| STT | GPU (ROCm) | ~1s pour 5s audio | Objectif après rebuild |
| TTS Piper | CPU | ~300ms | Léger, utilisable |
| TTS XTTS | GPU | ~500ms-2s | Qualité supérieure |