Initial commit: Documentation Effi v1.0
- 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
This commit is contained in:
@@ -0,0 +1,230 @@
|
||||
# 🎤 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)
|
||||
|
||||
```yaml
|
||||
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
|
||||
|
||||
1. **Build personnalisé** : L'image `speaches:rocm-ct2` doit être construite localement
|
||||
2. **Architecture GPU** : gfx1100 (RX 7800 XT)
|
||||
3. **Compute type** : `float32` en CPU, `float16` en GPU
|
||||
4. **Initialisation** : Le service `speaches-init` enregistre le modèle au démarrage
|
||||
|
||||
---
|
||||
|
||||
## TTS - OpenedAI-Speech (Piper)
|
||||
|
||||
### Configuration Docker Compose
|
||||
|
||||
Fichier : `~/openedai-speech/docker-compose.yml` (sur folzo-Corp)
|
||||
|
||||
```yaml
|
||||
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`
|
||||
|
||||
```bash
|
||||
# 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`) :
|
||||
```yaml
|
||||
tts-1:
|
||||
alloy:
|
||||
model: voices/fr_FR-upmc-medium.onnx
|
||||
speaker: 0 # 0 = voix féminine
|
||||
```
|
||||
|
||||
### Points importants
|
||||
|
||||
1. **group_add numériques** : Utiliser `"44"` et `"991"` (pas les noms)
|
||||
2. **ROCm activé** : `HSA_OVERRIDE_GFX_VERSION=11.0.0`
|
||||
3. **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
|
||||
|
||||
```bash
|
||||
# 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 :
|
||||
```bash
|
||||
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` :
|
||||
```yaml
|
||||
environment:
|
||||
- WHISPER__COMPUTE_TYPE=int8 # ou float32
|
||||
```
|
||||
|
||||
### Erreur : "Unable to find group render"
|
||||
|
||||
**Solution** : Utiliser les GID numériques :
|
||||
```yaml
|
||||
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 |
|
||||
Reference in New Issue
Block a user