# Bonjour j'ai besoin d'aide pour continuer le projet Effi, voici les infos : Projet initial : 📋 CAHIER DES CHARGES - PROJET EFFI v2.0 Assistant IA Personnel Local avec Prise de Notes Intelligente 🎯 OBJECTIFS GÉNÉRAUX CrĂ©er une assistante IA locale nommĂ©e Effi qui : GĂšre automatiquement une base de connaissances personnelle (notes) ConnaĂźt parfaitement Folzo et son contexte (vie pro + perso) Prend des initiatives autonomes (noter, corriger, enrichir, rĂ©sumer) Recherche intelligemment dans la mĂ©moire avec comprĂ©hension sĂ©mantique Accessible partout (desktop + mobile) via reverse proxy sĂ©curisĂ© đŸ’» INFRASTRUCTURE EXISTANTE MatĂ©riel disponible PC Gaming : AMD Ryzen 5800X3D, 32GB RAM, AMD Radeon 7800XT 16GB VRAM NAS Synology : hĂ©bergement applications, reverse proxy configurĂ©, nom de domaine RĂ©seau : reverse proxy fonctionnel pour accĂšs externe sĂ©curisĂ© Stack actuelle Ă  faire Ă©voluer Open WebUI (NAS:3000) → WOL Proxy (NAS:3011) → Ollama PC (11434) └─ mcpo (NAS:8000) → siyuan-mcp → SiYuan (NAS:6806) 📝 BESOINS FONCTIONNELS - PRISE DE NOTES Types de contenus Ă  gĂ©rer Vie Personnelle : Organisation quotidienne (agenda, tĂąches) To-do liste personnelle IdĂ©es de voyages Liste films/sĂ©ries Ă  regarder Documentation tests IA et infrastructure perso Journal personnel (optionnel) Vie Professionnelle : Suivi de projets (quelques projets actifs) To-do liste professionnelle Wiki personnel (aide-mĂ©moires techniques, procĂ©dures) Notes de rĂ©unions/Ă©changes CaractĂ©ristiques techniques requises Format : Markdown pur (fichiers .md) → futur-proof et portable Structure : flexible (pas encore d'habitudes Ă©tablies) MobilitĂ© : accĂšs desktop + mobile (iOS/Android) obligatoire​​ Synchronisation : temps rĂ©el ou quasi temps rĂ©el entre appareils SĂ©curitĂ© : self-hosted, accessible via reverse proxy existant projet "Effi - Assistante IA Personnelle Locale" đŸ€– BESOINS FONCTIONNELS - INTERACTION IA Niveau d'autonomie Maximum souhaitĂ© avec confiance : L'IA doit corriger automatiquement (orthographe, formulation, structure) L'IA doit enrichir automatiquement (ajout contexte, liens entre notes) L'IA doit crĂ©er des notes spontanĂ©ment si Ă©change pertinent dĂ©tectĂ© L'IA doit proposer des amĂ©liorations visibles/validables L'IA doit connaĂźtre profondĂ©ment Folzo (prĂ©fĂ©rences, projets, historique) Workflows d'interaction Mode 1 - Prise de note assistĂ©e (principal) : Folzo Ă©crit une note brute Effi corrige/amĂ©liore en temps rĂ©el ou Ă  la demande Validation/ajustement par Folzo Sauvegarde finale Mode 2 - Capture automatique (autonome) : Conversation Folzo ↔ Effi Effi dĂ©tecte information importante Effi crĂ©e note automatiquement (avec notification) Folzo peut consulter/modifier aprĂšs Mode 3 - Recherche sĂ©mantique : RequĂȘte en langage naturel : "trouve mes problĂšmes Docker avec rĂ©seau" Effi comprend contexte mĂȘme sans mots-clĂ©s exacts RĂ©sultats pertinents avec extraits contextuels 🔍 FONCTIONNALITÉS TECHNIQUES CRITIQUES 1. Recherche AvancĂ©e (RAG SĂ©mantique) Embeddings locaux pour recherche par sens, pas par mots-clĂ©s​ ModĂšle d'embedding : nomic-embed-text ou similaire (lĂ©ger, performant)​ Vector store : Qdrant ou intĂ©grĂ© Ă  l'app de notes​ ComprĂ©hension contextuelle : "projets Docker rĂ©seau" = trouve notes avec "container networking issues", "bridge problems", etc.​ 2. MĂ©moire Persistante Multi-Sessions Historique complet conversations Folzo ↔ Effi accessible Base de connaissances sur Folzo enrichie automatiquement Contexte long-terme (projets en cours, prĂ©fĂ©rences, historique dĂ©cisions) 3. Synchronisation Multi-Devices Desktop : Linux (Fedora/Bazzite) + Windows si nĂ©cessaire Mobile : iOS/Android via app native Sync method : self-hosted, temps rĂ©el, sans conflit​ 4. Actions Autonomes Auto-tagging intelligent des notes (par projet, type, urgence) DĂ©tection automatique informations Ă  noter RĂ©sumĂ©s automatiques de conversations longues CrĂ©ation daily notes automatique chaque matin Proposition Claude sonnet 4.6 : Voici une Ă©valuation complĂšte des solutions pour Effi v2.0, structurĂ©e par composant critique, puis une architecture cible recommandĂ©e. 1. Couche Notes : Quel backend choisir ? C'est la dĂ©cision la plus structurante car elle conditionne la portabilitĂ©, la sync mobile et l'intĂ©gration IA. CritĂšre SiYuan (actuel) Obsidian Logseq Format fichiers ❌ .sy (pas du vrai MD) ✅ .md pur ✅ .md App mobile iOS/Android ✅ native ✅ native \& stable ⚠ instable sur mobile Sync self-hosted ✅ intĂ©grĂ© ✅ LiveSync + CouchDB ⚠ Syncthing (complexe) API pour IA/MCP ✅ siyuan-mcp ✅ Local REST API plugin ❌ trĂšs limitĂ© Futur-proof / portabilitĂ© ❌ lock-in format ✅ maximal ✅ bon ÉcosystĂšme plugins IA Faible ✅ Ă©norme (Adaptive Memory
) Moyen Verdict : Obsidian est le choix optimal pour respecter le cahier des charges. SiYuan ne stocke pas en markdown pur (format .sy propriĂ©taire), ce qui contredit directement l'exigence de futur-proof. Obsidian LiveSync via CouchDB auto-hĂ©bergĂ© sur le NAS offre une sync temps rĂ©el complĂšte sur iOS, Android et desktop sans aucun service cloud. 2. MĂ©moire Persistante \& RAG SĂ©mantique C'est le cƓur technique d'Effi. Trois approches Ă  comparer : Solution SĂ©mantique Local 100% ComplexitĂ© Verdict Open WebUI RAG natif ⚠ partiel (ChromaDB) ✅ Faible Insuffisant pour les besoins mem0 + Qdrant + Ollama ✅ complet ✅ Moyenne ✅ RecommandĂ© pgvector (PostgreSQL) ✅ ✅ Moyenne Alternative viable mem0 + Qdrant est la combinaison idĂ©ale : mem0 gĂšre la mĂ©moire multi-sessions avec enrichissement automatique, Qdrant sert de vector store performant, et nomic-embed-text via Ollama gĂ©nĂšre les embeddings localement. Un serveur MCP pour mem0 existe Ă©galement et peut s'intĂ©grer dans le pipeline mcpo existant. Il y a quelques bugs connus avec Ollama (rĂ©ponse mal parsĂ©e), mais ils sont documentĂ©s et corrigeables. 3. Orchestration Autonome (le cerveau d'Effi) C'est le composant manquant dans le stack actuel pour les modes 2 et 3 (capture automatique, daily notes, auto-tagging). n8n est le seul outil self-hosted qui combine : agent IA Ollama natif, triggers planifiĂ©s, lecture/Ă©criture de fichiers Obsidian, webhooks Open WebUI, et connexion Qdrant — le tout sans code. Il permet de construire exactement les workflows dĂ©crits (dĂ©tection info importante → crĂ©ation note → notification).​ 4. Architecture Cible RecommandĂ©e PC GAMING (Ollama) └─ LLM : qwen2.5:14b (raison + gĂ©nĂ©ration) └─ Embedding : nomic-embed-text (vecteurs RAG) NAS SYNOLOGY (containers Docker) ├─ Open WebUI :3000 → Interface chat Effi ├─ WOL Proxy :3011 → (garder existant) ├─ mcpo :8000 → outils MCP (obsidian-local-rest-api) ├─ mem0 :8765 → mĂ©moire persistante Folzo ↔ Effi ├─ Qdrant :6333 → vector store RAG sĂ©mantique ├─ n8n :5678 → automatisation autonome ├─ CouchDB :5984 → backend sync Obsidian LiveSync └─ Obsidian Vault (volume partagĂ© .md) DEVICES ├─ Desktop : Obsidian app + Open WebUI (navigateur) └─ Mobile : Obsidian iOS/Android ← LiveSync → CouchDB 5. Évaluation par Workflow Fonctionnel Mode 1 – Prise de note assistĂ©e : Open WebUI + pipeline Adaptive Memory v2 + mcpo → obsidian-local-rest-api pour lire/Ă©crire les fichiers .md directement depuis le chat.​ Mode 2 – Capture automatique : n8n dĂ©tecte les conversations Open WebUI via webhook, envoie Ă  un agent Ollama qui juge la pertinence, et Ă©crit la note via l'API Obsidian avec notification.​ Mode 3 – Recherche sĂ©mantique : RequĂȘte naturelle → Open WebUI → mem0 recherche dans Qdrant par similaritĂ© sĂ©mantique (nomic-embed-text) → retourne les extraits contextuels.​ Daily notes + auto-tagging : n8n schedule trigger chaque matin → crĂ©ation note journaliĂšre dans Obsidian + re-indexation des nouvelles notes dans Qdrant via embedding Ollama. Plan de Migration DĂ©ployer CouchDB sur NAS → configurer Obsidian LiveSync (desktop + mobile)​ Migrer les donnĂ©es SiYuan vers Obsidian (export markdown existant dans SiYuan) DĂ©ployer Qdrant sur NAS (container Docker, volume persistant) DĂ©ployer mem0 configurĂ© avec Ollama + Qdrant + nomic-embed-text DĂ©ployer n8n et construire les 3 workflows (capture, daily notes, auto-tagging) Brancher mcpo sur obsidian-local-rest-api plugin (remplace siyuan-mcp) Configurer Open WebUI avec pipeline Adaptive Memory v2 + RAG Knowledge Collection pointant vers le vault Obsidian Charge SystĂšme EstimĂ©e sur NAS Le NAS reste lĂ©ger (mem0, Qdrant, n8n, CouchDB sont peu gourmands). Tout le compute lourd (infĂ©rence LLM, gĂ©nĂ©ration embeddings) reste sur le PC via Ollama, ce qui est parfaitement cohĂ©rent avec ton infrastructure. Le 7800XT avec 16GB VRAM peut faire tourner qwen2.5:14b confortablement, laissant de la marge pour nomic-embed-text en parallĂšle.​ Avancement 1 : # 📋 Projet Effi — Documentation complĂšte ## 🎯 Objectif Effi est un assistant IA personnel **100% self-hosted**, avec : - PersonnalitĂ© joyeuse, mĂ©moire persistante entre sessions - Discussion vocale (STT + TTS) - Recherche internet (Brave Search) - Prise de notes automatique dans AFFiNE - Analyse d'images - RAG sur fichiers personnels (PDF/DOC depuis Nextcloud) --- ## đŸ–„ïž Infrastructure matĂ©rielle | Machine | IP | RĂŽle | CPU/GPU | | :-- | :-- | :-- | :-- | | **effi-server** | `192.168.1.27` | Serveur principal Docker | Intel J5040 / ~7.6 GB RAM | | **folzo-Corp** (PC gaming) | `192.168.1.11` | Ollama LLM + STT + TTS | AMD Ryzen 5800X3D / RX 7800 XT 16 GB VRAM | --- ## 🐳 Stack Docker — effi-server (`~/effi/docker-compose.yml`) ## Services actifs | Service | Image | Port | RĂŽle | | :-- | :-- | :-- | :-- | | `open-webui` | `ghcr.io/open-webui/open-webui:main` | `3000` | Interface principale Effi | | `qdrant` | `qdrant/qdrant` | `6333-6334` | Base vectorielle RAG | | `couchdb` | `couchdb:3.3` | `5984` | Sync Obsidian LiveSync | | `n8n` | `n8nio/n8n` | `5678` | Automatisation workflows | | `mcpo` | `ghcr.io/open-webui/mcpo` | `8000` | Proxy MCP pour outils | | `wol-proxy` | `effi-wol-proxy` (build local) | `3011` | Wake-on-LAN PC gaming | ## Fichier `.env` (`~/effi/.env`) text `OLLAMA_HOST=192.168.1.11 PC_GAMING_MAC=XX:XX:XX:XX:XX:XX WEBUI_SECRET_KEY= COUCHDB_USER=master COUCHDB_PASSWORD= N8N_USER=master N8N_PASSWORD=` ## wol-proxy Image buildĂ©e localement depuis `~/effi/wol-proxy/` — pinge `192.168.1.11:11434`, envoie un magic packet WoL si Ollama ne rĂ©pond pas. --- ## 🎼 Stack Docker — folzo-Corp (`~/speaches/docker-compose.yml`) ## speaches — STT (Speech To Text) text `services: # ───────────────────────────────────────────────────────── # 1. SPEACHES - Speech To Text (STT) OpenAI-compatible # → [http://192.168.1.11:8200](http://192.168.1.11:8200) # ───────────────────────────────────────────────────────── speaches-stt: image: speaches:rocm-ct2 # image buildĂ©e localement (voir ci-dessous) container_name: speaches-stt restart: unless-stopped ports: - "8200:8000" devices: - /dev/kfd - /dev/dri group_add: - "44" # GID video - "991" # GID render security_opt: - seccomp=unconfined environment: - HSA_OVERRIDE_GFX_VERSION=11.0.0 - WHISPER__MODEL=Systran/faster-whisper-large-v3 - WHISPER__LANGUAGE=fr - WHISPER__COMPUTE_TYPE=int8 # float16 non supportĂ© en CPU - WHISPER__DEVICE=cpu # GPU ROCm en cours (rebuild) volumes: - speaches-models:/root/.cache/huggingface speaches-init: image: curlimages/curl:latest container_name: speaches-init restart: "no" depends_on: - speaches-stt entrypoint: > sh -c "sleep 5 && curl -sf -X POST http://speaches-stt:8000/v1/models/Systran%2Ffaster-whisper-large-v3 && echo 'ModĂšle enregistrĂ©'" volumes: speaches-models:` ## openedai-speech — TTS (Text To Speech) (`~/openedai-speech/docker-compose.yml`) text `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" # GID video - "991" # GID render environment: - HSA_OVERRIDE_GFX_VERSION=11.0.0 - HIP_VISIBLE_DEVICES=0` --- ## ⚙ Configuration Open WebUI ## Admin Panel → Settings → Connections - **Ollama URL** : `http://192.168.1.11:3011` ## Admin Panel → Settings → Audio - **STT Engine** : OpenAI - **STT URL** : `http://192.168.1.11:8200/v1` - **STT Model** : `Systran/faster-whisper-large-v3` - **TTS Engine** : OpenAI - **TTS URL** : `http://192.168.1.11:8100/v1` - **TTS Model** : `tts-1-hd` ## Admin Panel → Settings → Documents - **Embedding Engine** : Ollama - **Embedding Model** : `bge-m3:latest` - **Vector Database** : Qdrant - **Qdrant URL** : `http://qdrant:6333`​ ## ModĂšles Ollama disponibles sur folzo-Corp​ - `qwen2.5:14b` — LLM principal d'Effi - `bge-m3` — Embeddings RAG ## Workspace Effi (Open WebUI) - Compte admin : `master` - Compte utilisateur : `folzo` - System prompt global configurĂ© avec personnalitĂ© + contexte infrastructure​ --- ## 🔧 Build speaches ROCm — CTranslate2 gfx1100 ## ProblĂšme rencontrĂ© L'image speaches ne publie pas d'image ROCm. Il faut builder manuellement. La RX 7800 XT est `gfx1100` mais le Dockerfile par dĂ©faut cible `gfx1101` → `hipErrorInvalidDeviceFunction`. ## Solution bash `cd ~/speaches git clone [https://github.com/speaches-ai/speaches](https://github.com/speaches-ai/speaches) . cd src # Corriger l'architecture GPU : gfx1101 → gfx1100 sed -i 's/gfx1101/gfx1100/g' Dockerfile.rocm-ct2 grep gfx Dockerfile.rocm-ct2 # vĂ©rification # Build (~50 min la premiĂšre fois) docker build -f Dockerfile.rocm-ct2 -t speaches:rocm-ct2 .` ## Ajout MIOpen (fix cuDNN)​ text `# Dans Dockerfile.rocm-ct2, ajouter dans le cmake : -DWITH_CUDNN=ON -DCUDnn_LIBRARY=/opt/rocm-6.3.4/lib/libMIOpen.so` > ⚠ **Statut actuel** : Le rebuild avec `gfx1100` est en cours. speaches fonctionne en **CPU** (int8) en attendant — ~10s pour 5s d'audio sur le Ryzen 5800X3D.​ --- ## 🐛 ProblĂšmes rencontrĂ©s et solutions ## 1. wol-proxy — image inexistante **ProblĂšme** : Image Docker inexistante sur le registry​ **Solution** : Build local depuis le code Python maison bash `cd ~/effi && docker compose up -d --build` ## 2. Interface rĂ©seau Ubuntu plantĂ©e​ **ProblĂšme** : La carte rĂ©seau d'effi-server tombe silencieusement **Solution** : Off/On via NetworkManager bash `sudo systemctl restart NetworkManager` **Fix permanent** (pour NIC Intel i225/i226) : bash `echo 'ACTION=="add", SUBSYSTEM=="net", NAME=="enp3s0", RUN+="/usr/sbin/ethtool -s enp3s0 wol g"' \\ | sudo tee /etc/udev/rules.d/99-disable-net-powersave.rules` ## 3. Whisper — mauvais repo HuggingFace **ProblĂšme** : Open WebUI envoyait `Systeme/faster-whisper-tiny` (inexistant) **Solution** : Corriger dans Settings → Audio → STT Model + changer `WHISPER__MODEL` dans docker-compose ## 4. speaches — `PRELOAD_MODELS` format invalide​ **ProblĂšme** : La variable `PRELOAD_MODELS` avec un objet JSON crash le conteneur **Solution** : Supprimer `PRELOAD_MODELS` entiĂšrement, utiliser un service `speaches-init` pour enregistrer le modĂšle via API au dĂ©marrage ## 5. openedai-speech — `group render` introuvable **ProblĂšme** : `group_add: render` échoue car le groupe n'existe pas dans le conteneur **Solution** : Utiliser les GID numĂ©riques `"44"` et `"991"` au lieu des noms ## 6. CTranslate2 float16 sur CPU​ **ProblĂšme** : `ValueError: float16 not supported on CPU backend` **Solution** : `WHISPER__COMPUTE_TYPE=int8` ## 7. mcpo redĂ©marre en boucle​ **ProblĂšme** : Config `mcpo-config/config.json` vide au premier dĂ©marrage **Solution** : bash `cat > ~/effi/mcpo-config/config.json << 'EOF' {"mcpServers": {}} EOF docker compose restart mcpo` ## 8. Open WebUI lent aprĂšs reboot​ **ProblĂšme** : Conteneurs sans `restart: unless-stopped` **Solution** : Ajouter `restart: unless-stopped` à tous les services du docker-compose --- ## 📩 Initialisation CouchDB (une seule fois) bash `curl -X PUT [http://master:MOT_DE_PASSE@192.168.1.27:5984/_users](http://master:MOT_DE_PASSE@192.168.1.27:5984/_users) curl -X PUT [http://master:MOT_DE_PASSE@192.168.1.27:5984/_replicator](http://master:MOT_DE_PASSE@192.168.1.27:5984/_replicator) curl -X PUT http://master:MOT_DE_PASSE@192.168.1.27:5984/obsidian-livesync` --- ## 🔌 Ouverture de ports firewall Sur **folzo-Corp** (Bazzite/Fedora) : bash `sudo firewall-cmd --add-port=8200/tcp --permanent # speaches STT sudo firewall-cmd --add-port=8100/tcp --permanent # openedai-speech TTS sudo firewall-cmd --reload` --- ## ✅ État actuel du pipeline vocal | Étape | Status | DĂ©tail | | :-- | :-- | :-- | | STT (Whisper) | ✅ Fonctionnel | speaches CPU, large-v3, ~10s/phrase | | LLM (Ollama) | ✅ Fonctionnel | qwen2.5:14b sur folzo-Corp | | TTS (openedai-speech) | ✅ Fonctionnel | tts-1-hd, ROCm activĂ© | | WOL PC gaming | ✅ Fonctionnel | wol-proxy sur port 3011 | | RAG Qdrant | 🔧 En cours | Nextcloud → indexation Ă  configurer | --- ## 🚧 Prochaines Ă©tapes - Finaliser le rebuild `speaches:rocm-ct2` avec `gfx1100` → activer GPU pour STT - Configurer le RAG Qdrant avec les fichiers Nextcloud (~1 GB, ~1000 fichiers) - Tester mem0 / MCP pour la mĂ©moire persistante d'Effi​ - Configurer n8n pour les workflows automatiques - Sync Obsidian LiveSync sur mobile​ Avancement 2 : ## 📋 RĂ©sumĂ© Complet du Thread --- ## đŸ–„ïž Infrastructure | Machine | IP | RĂŽle | GPU/CPU | | :-- | :-- | :-- | :-- | | **folzo-Corp** | 192.168.1.11 | PC gaming / STT+TTS | AMD RX 7800 XT (gfx1100) | | **effi-server** | 192.168.1.27 | Serveur IA principal | CPU Intel 4 cores / 7.6GB RAM | | **PC Gaming Ollama** | variable | LLM Ollama | GPU dĂ©diĂ© | --- ## 🎯 Objectif du Thread Faire tourner Whisper (STT) sur la RX 7800 XT de folzo-Corp via ROCm, en construisant CTranslate2-ROCm depuis les sources (speaches), puis migrer le TTS (openedai-speech) d'effi-server vers folzo-Corp pour libĂ©rer le CPU. --- ## 🔹 Étapes RĂ©alisĂ©es ## 1. Build CTranslate2-ROCm pour speaches **ProblĂšme initial :** `RuntimeError: Conv1D on GPU currently requires the cuDNN library which is not integrated in this build` **Cause :** CTranslate2-ROCm compilĂ© sans support MIOpen (Ă©quivalent ROCm de cuDNN) **Solution :** Dockerfile custom `~/speaches/src/Dockerfile.rocm-ct2` avec : text `-DWITH_CUDNN=ON -DCUDnn_INCLUDE_DIR=/opt/rocm-6.3.4/include -DCUDnn_LIBRARY=/opt/rocm-6.3.4/lib/libMIOpen.so` Image base : `rocm/dev-ubuntu-24.04:6.3.4-complete` Source CTranslate2 : `github.com/arlo-phoenix/CTranslate2-rocm` --- ## 2. Erreur Architecture GPU Incorrecte **ProblĂšme :** `RuntimeError: parallel_for failed: hipErrorInvalidDeviceFunction: invalid device function` **Cause :** Build compilĂ© pour `gfx1101` mais la RX 7800 XT est `gfx1100` **Diagnostic :** 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" # → gfx1100 (AMD Radeon RX 7800 XT)` **Fix :** bash `sed -i 's/gfx1101/gfx1100/g' ~/speaches/src/Dockerfile.rocm-ct2 cd ~/speaches/src docker build -f Dockerfile.rocm-ct2 -t speaches:rocm-ct2 .` --- ## 3. Transcription fonctionnelle (CPU en attendant rebuild) AprĂšs le premier build, speaches fonctionne en CPU (fallback) : - `200 OK` sur `/v1/audio/transcriptions` - Langue `fr` dĂ©tectĂ©e Ă  99% - RTF > 1 (13s pour 5.4s audio) → confirme CPU, pas GPU - ONNX Runtime cherche `libcublasLt.so.12` (CUDA) → warning non bloquant, fallback CPU automatique **Rebuild avec gfx1100 en cours** pour activer l'accĂ©lĂ©ration GPU (~10x plus rapide attendu). --- ## 4. ProblĂšme rĂ©seau effi-server **SymptĂŽmes :** Interface filaire effi-server plantĂ©e aprĂšs reboot, OpenWebUI inaccessible **Diagnostic :** text `conflict detected for IP address 192.168.1.11 with host 5C:87:9C:65:95:23` **Cause :** Conflit DHCP — deux machines avec la mĂȘme IP `192.168.1.11` **Fix court terme :** `nmcli device disconnect enp6s0 && nmcli device connect enp6s0` **Fix permanent recommandĂ© :** RĂ©servations DHCP par MAC sur le routeur + `ethtool wol g` pour la carte Realtek RTL8111 --- ## 5. OpenWebUI lent / erreurs 500 **SymptĂŽmes :** `500: Open WebUI: Server Connection Error`, lenteur UI **Diagnostic :** text `ERROR: open_webui.routers.ollama: Connection error` **Cause :** Ollama inaccessible — le PC gaming Ă©tait Ă©teint. Le `wol-proxy` sur effi-server assure le Wake-on-LAN mais le PC n'avait pas rĂ©pondu Ă  temps. **Architecture WOL :** text `OpenWebUI → port 3011 effi → wol-proxy → WOL magic packet → PC Gaming → proxy TCP vers 11434` --- ## 6. Deux processus zombies sur effi-server DĂ©tectĂ©s via `ps aux` : text `[mcpo] [python] ` **Fix :** bash `docker restart mcpo` --- ## 7. Migration openedai-speech → folzo-Corp **Raison :** `openedai-speech` consommait ~100% CPU sur effi-server (1.06GB RAM, CPU intensif) **Étapes :** bash `# ArrĂȘt sur effi docker compose stop openedai-speech && docker compose rm -f openedai-speech # Copie des donnĂ©es depuis folzo-Corp scp -r effi@192.168.1.27:~/effi/tts-voices ~/openedai-speech/ scp -r effi@192.168.1.27:~/effi/tts-config ~/openedai-speech/` **Contenu transfĂ©rĂ© :** modĂšles XTTS (~1.8GB), voix WAV (alloy/echo/nova/shimmer/fable/onyx), modĂšles ONNX piper, configs YAML **ProblĂšme group_add :** `Unable to find group render: no matching entries in group file` **Fix :** Utiliser GID numĂ©riques au lieu des noms : text `group_add: - "44" # video - "991" # render` --- ## 📁 Fichiers ClĂ©s text `folzo-Corp: ├── ~/speaches/ │ ├── src/Dockerfile.rocm-ct2 # Build CTranslate2 gfx1100 + MIOpen │ └── docker-compose.yml # speaches-stt:8200 └── ~/openedai-speech/ ├── docker-compose.yml # TTS ROCm gfx1100 ├── tts-voices/ # Voix XTTS + ONNX └── tts-config/ # voice_to_speaker.yaml etc. effi-server: └── ~/effi/docker-compose.yml # OpenWebUI + WOL + n8n + qdrant...` --- ## ✅ État Final des Services | Service | HĂŽte | Port | État | Notes | | :-- | :-- | :-- | :-- | :-- | | **speaches-stt** | folzo-Corp | 8200 | ✅ Fonctionne | CPU actuellement, rebuild gfx1100 pending | | **openedai-speech** | folzo-Corp | 8100 | ✅ DĂ©marrĂ© | ROCm gfx1100, group_add 44+991 | | **OpenWebUI** | effi-server | 3000 | ✅ Fonctionne | PointĂ© STT+TTS vers 192.168.1.11 | | **wol-proxy** | effi-server | 3011 | ✅ Fonctionne | Proxy Ollama + WOL PC gaming | | **n8n** | effi-server | 5678 | ✅ Running | | | **qdrant** | effi-server | 6333 | ✅ Running | Vector store RAG | | **pipelines** | effi-server | 9099 | ✅ Running | mem0 memory | | **couchdb** | effi-server | 5984 | ✅ Running | Obsidian LiveSync | | **mcpo** | effi-server | 8000 | ⚠ Zombie dĂ©tectĂ© | RedĂ©marrĂ© | --- ## 🔜 Prochaines Étapes 1. **Finaliser rebuild speaches gfx1100** → activer GPU sur Whisper large-v3 2. **Tester TTS ROCm** → vĂ©rifier que openedai-speech utilise bien la RX 7800 XT 3. **Mettre Ă  jour l'URL TTS** dans OpenWebUI Admin → Audio → `http://192.168.1.11:8100` 4. **RĂ©servations DHCP** sur le routeur pour fixer les IPs de façon permanente 5. **Tester pipeline vocal complet** : micro → STT folzo → OpenWebUI effi → LLM Ollama → TTS folzo → speaker Le probleme est que lorsque je fais un vocal avec Effi ma charge CPU explose entre le llm d'effi, le llm de la memoire, le whisper pour la comprehension et la generation vocal, mon pc et ma 7800xt ne suive pas. Alors j'ai besoin de toi pour faire le point et voire quel solution nous pouvons trouver pour ameliorer ca Le goulot d'Ă©tranglement est clair : ton pipeline vocal empile **4 processus lourds sĂ©quentiels** sur la mĂȘme RX 7800 XT, dont deux qui mobilisent le GPU simultanĂ©ment. Voici l'analyse et le plan d'optimisation par ordre d'impact. ## Diagnostic : qui consomme quoi | Composant | ModĂšle actuel | CPU/GPU | VRAM estimĂ©e | | :-- | :-- | :-- | :-- | | STT (speaches) | `large-v3` sur **CPU** | CPU 100% | — | | LLM principal | `qwen2.5:14b` | GPU | ~8.5 GB | | TTS (openedai-speech) | `tts-1-hd` = XTTS v2 | GPU | ~4 GB [^1_1] | | mem0 mĂ©moire | `qwen2.5:14b` (mĂȘme modĂšle) | GPU | (sĂ©quentiel, mais occupe le slot) | | **Total** | | | **~12.5 GB** | Le 7800 XT avec 16 GB est donc Ă  ~78% de VRAM occupĂ©e **au repos** entre le LLM et le TTS, sans mĂȘme compter Whisper sur GPU. Le CPU explose Ă  cause de `large-v3` en mode software. Il y a **3 fixes immĂ©diats** et **1 optimisation structurelle**. *** ## Fix \#1 — STT : `large-v3-turbo` (gain x5 immĂ©diat) `large-v3-turbo` a **exactement la mĂȘme prĂ©cision** que `large-v3` mais est 5x plus rapide. C'est le fix le plus impactant Ă  faire maintenant, sans changer d'architecture.[^1_2] Dans `~/speaches/docker-compose.yml` sur folzo-Corp : ```yaml environment: - WHISPER__MODEL=Systran/faster-whisper-large-v3-turbo # ← Ă©tait large-v3 - WHISPER__COMPUTE_TYPE=int8 - WHISPER__DEVICE=cpu ``` ```bash docker compose pull speaches-stt && docker compose up -d speaches-stt ``` RĂ©sultat attendu : ~2-3s pour 5s d'audio au lieu de ~10-13s, sur le mĂȘme CPU.[^1_2] *** ## Fix \#2 — TTS : basculer de XTTS vers Piper (libĂšre 4 GB VRAM) `openedai-speech` supporte deux backends : `tts-1-hd` = XTTS v2 (GPU, ~4 GB VRAM), et `tts-1` = Piper (CPU uniquement, trĂšs rapide, nĂ©gligeable en ressources). Piper gĂ©nĂšre la parole quasi en temps rĂ©el sur CPU, la qualitĂ© est lĂ©gĂšrement infĂ©rieure Ă  XTTS mais amplement suffisante pour un usage conversationnel.[^1_1][^1_3] **Dans Open WebUI Admin → Settings → Audio :** → Changer **TTS Model** de `tts-1-hd` vers `tts-1` RĂ©sultat : **4 GB VRAM libĂ©rĂ©s**, le CPU de folzo-Corp reste trĂšs peu chargĂ© (Piper est ultra-lĂ©ger ). AprĂšs ce fix, le budget VRAM tombe Ă  ~8.5 GB utilisĂ©s.[^1_4] *** ## Fix \#3 — mem0 : modĂšle dĂ©diĂ© lĂ©ger pour la mĂ©moire mem0 appelle le LLM pour extraire/stocker les souvenirs — tĂąche simple qui n'a pas besoin de 14B paramĂštres. La config mem0 permet de spĂ©cifier un modĂšle sĂ©parĂ© :[^1_5] ```python # Dans la config mem0 (pipeline Open WebUI ou service dĂ©diĂ©) config = { "llm": { "provider": "ollama", "config": { "model": "qwen2.5:3b", # ← au lieu de qwen2.5:14b "ollama_base_url": "http://192.168.1.11:11434" } }, "embedder": { "provider": "ollama", "config": { "model": "bge-m3", "ollama_base_url": "http://192.168.1.11:11434" } } } ``` TĂ©lĂ©charge d'abord le modĂšle sur folzo-Corp : ```bash ollama pull qwen2.5:3b ``` `qwen2.5:3b` occupe ~2 GB VRAM. Avec les fixes \#2 et \#3, le budget VRAM total devient : **8.5 GB (14b) + 2 GB (3b) = ~10.5 GB**, ce qui laisse **5.5 GB libres** — suffisamment pour enfin activer Whisper sur GPU (voir Ă©tape suivante). *** ## Fix \#4 — STT sur GPU (aprĂšs les fixes \#2 et \#3) Une fois 5.5 GB libres, Whisper `large-v3-turbo` sur GPU ne prend que ~1.5 GB VRAM. Le rebuild speaches ROCm `gfx1100` devient utile ici. Avec Piper sur CPU et mem0 sur un 3b :[^1_6] ``` VRAM aprĂšs tous les fixes : qwen2.5:14b → 8.5 GB qwen2.5:3b (mem0) → 2.0 GB Whisper large-v3-t → 1.5 GB ───────────────────────────── Total → 12.0 GB / 16 GB ✅ confortable ``` *** ## Plan d'action prioritaire 1. **Maintenant** : changer `WHISPER__MODEL` → `large-v3-turbo` (restart speaches, 2 min) 2. **Maintenant** : changer TTS model → `tts-1` dans Open WebUI (instantanĂ©) 3. **AprĂšs** : `ollama pull qwen2.5:3b` + reconfigurer mem0 pour pointer sur ce modĂšle 4. **Ensuite** : finaliser le rebuild `speaches:rocm-ct2 gfx1100` pour passer Whisper sur GPU Les fixes \#1 et \#2 seuls devraient **diviser par 3-4 la charge ressentie** lors d'une conversation vocale, sans aucun impact notable sur la qualitĂ© perçue. [^1_10][^1_11][^1_12][^1_13][^1_14][^1_15][^1_7][^1_8][^1_9]
⁂
[^1_1]: https://git.robby.blue/ml/openedai-speech [^1_2]: https://whispernotes.app/blog/introducing-whisper-large-v3-turbo [^1_3]: https://github.com/matatonic/openedai-speech [^1_4]: https://github.com/mdmonsurali/Offline-Fast-CPU-PIPER-TTS [^1_5]: https://docs.mem0.ai/components/llms/config [^1_6]: https://whishper.net/reference/models/ [^1_7]: https://blog.stephane-robert.info/docs/developper/programmation/python/ollama/ [^1_8]: https://dev.to/ajitkumar/the-complete-guide-to-ollama-run-large-language-models-locally-2mge [^1_9]: https://docs.ollama.com/faq [^1_10]: https://docs.mem0.ai/components/embedders/models/ollama [^1_11]: https://github.com/mem0ai/mem0/issues/2758 [^1_12]: https://github.com/ggml-org/whisper.cpp/discussions/3074 [^1_13]: https://komelin.com/blog/using-small-llms-locally [^1_14]: https://www.youtube.com/watch?v=Q-4pkwHiAkA [^1_15]: https://www.whishper.net/reference/models/ --- # go pour ce plan d'action, je te laisse m'accompagner etape par etape Parfait, on y va Ă©tape par Ă©tape. On commence par le **Fix \#1** — c'est le plus rapide et le gain est immĂ©diat. *** ## Étape 1 — Whisper `large-v3-turbo` Sur **folzo-Corp**, Ă©dite le docker-compose de speaches : ```bash nano ~/speaches/docker-compose.yml ``` RepĂšre la ligne `WHISPER__MODEL` et remplace : ```yaml # Avant - WHISPER__MODEL=Systran/faster-whisper-large-v3 # AprĂšs - WHISPER__MODEL=Systran/faster-whisper-large-v3-turbo ``` Puis redĂ©marre le service pour qu'il tĂ©lĂ©charge le nouveau modĂšle : ```bash cd ~/speaches && docker compose up -d speaches-stt ``` Surveille le tĂ©lĂ©chargement du modĂšle (environ 1.5 GB) : ```bash docker logs -f speaches-stt ``` Le conteneur est prĂȘt quand tu vois une ligne indiquant que le modĂšle est chargĂ© et qu'il Ă©coute. *** **Pour tester rapidement** une fois chargĂ© : ```bash curl -s http://192.168.1.11:8200/v1/audio/transcriptions \ -F "file=@/un/fichier.wav" \ -F "model=Systran/faster-whisper-large-v3-turbo" | jq . ``` Dis-moi ce que tu observes dans les logs, et si la transcription de test fonctionne — on passera ensuite au Fix \#2 (basculer TTS vers Piper). --- # voici le docker compose : "cd ~/speaches \&\& docker compose up -d speaches-stt " est-ce bon ? --- # je me suis louper voici le docker compose : "\# ═══════════════════════════════════════════════════════════ # PC GAMING - Stack STT ROCm # Machine : folzo-Corp (192.168.1.11) # GPU : AMD RX 7800 XT (16 GB VRAM) — ROCm gfx1101 # ═══════════════════════════════════════════════════════════ services: # ───────────────────────────────────────────────────────── # 1. SPEACHES - Speech To Text (STT) OpenAI-compatible # → [http://192.168.1.11:8200](http://192.168.1.11:8200) # → UtilisĂ© par Open WebUI sur effi-server # ───────────────────────────────────────────────────────── speaches: image: speaches:rocm-ct2 container_name: speaches-stt restart: unless-stopped ports: - "8200:8000" devices: - /dev/kfd - /dev/dri group_add: - video security_opt: - seccomp=unconfined environment: - HSA_OVERRIDE_GFX_VERSION=11.0.0 - WHISPER__MODEL=Systran/faster-whisper-large-v3-turbo - WHISPER__LANGUAGE=fr - WHISPER__COMPUTE_TYPE=int8 - WHISPER__DEVICE=cpu volumes: - speaches-models:/root/.cache/huggingface # ───────────────────────────────────────────────────────── # 2. SPEACHES-INIT - Enregistre le modĂšle au dĂ©marrage # → S'exĂ©cute une fois puis s'arrĂȘte # ───────────────────────────────────────────────────────── 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/Systran%2Ffaster-whisper-large-v3 \&\& echo 'ModĂšle enregistrĂ©'" volumes: speaches-models: " est-ce bon ? Presque bon ! Il y a **2 corrections Ă  faire** avant de lancer. *** ## Correction 1 — `speaches-init` pointe encore l'ancien modĂšle La ligne du `curl` dans `speaches-init` n'a pas Ă©tĂ© mise Ă  jour. Elle va tenter d'enregistrer `large-v3` au lieu de `large-v3-turbo` : ```yaml # ❌ Avant curl -sf -X POST http://speaches:8000/v1/models/Systran%2Ffaster-whisper-large-v3 # ✅ AprĂšs curl -sf -X POST http://speaches:8000/v1/models/Systran%2Ffaster-whisper-large-v3-turbo ``` *** ## Correction 2 — `group_add` doit utiliser les GID numĂ©riques Comme on l'a dĂ©jĂ  rĂ©solu pour `openedai-speech`, les noms de groupes ne sont pas rĂ©solus dans le conteneur ROCm : ```yaml # ❌ Avant group_add: - video # ✅ AprĂšs group_add: - "44" # video - "991" # render ``` *** ## Fichier final corrigĂ© ```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=Systran/faster-whisper-large-v3-turbo - WHISPER__LANGUAGE=fr - WHISPER__COMPUTE_TYPE=int8 - WHISPER__DEVICE=cpu 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/Systran%2Ffaster-whisper-large-v3-turbo && echo 'ModĂšle enregistrĂ©'" volumes: speaches-models: ``` *** Une fois le fichier sauvegardĂ©, lance : ```bash cd ~/speaches && docker compose up -d ``` Puis surveille les logs : ```bash docker logs -f speaches-stt ``` Tu devrais voir le tĂ©lĂ©chargement du modĂšle `large-v3-turbo` (~1.5 GB). Dis-moi quand c'est prĂȘt ! --- # Invalid model-index. Not loading eval results into CardData. 2026-02-22 11:50:36,197:WARNING:huggingface_hub.repocard_data:__init__:368:Invalid model-index. Not loading eval results into CardData. 2026-02-22 11:50:36,303:DEBUG:urllib3.connectionpool:_make_request:546:https://huggingface.co:443 "GET /api/models?filter=automatic-speech-recognition\&search=istupakov%2Fparakeet-tdt\&cardData=True HTTP/11" 200 1633 2026-02-22 11:50:36,417:DEBUG:urllib3.connectionpool:_make_request:546:https://huggingface.co:443 "GET /api/models?filter=onnx\&filter=text-to-speech\&filter=speaches\&filter=piper\&cardData=True HTTP/11" 200 63637 2026-02-22 11:50:36,546:DEBUG:urllib3.connectionpool:_make_request:546:https://huggingface.co:443 "GET /api/models?filter=onnx\&filter=text-to-speech\&filter=speaches\&filter=kokoro\&cardData=True HTTP/11" 200 1911 2026-02-22 11:50:36,546:ERROR:speaches.main:_custom_http_exception_handler:154:HTTP error: 404: Model 'Systran/faster-whisper-large-v3-turbo' not found INFO: 172.18.0.3:36816 - "POST /v1/models/Systran/faster-whisper-large-v3-turbo HTTP/1.1" 404 Not Found 2026-02-22 11:55:36,172:DEBUG:speaches.dependencies:audio_file_dependency:89:Decoding audio file: 1020a792-24f0-4380-a1c6-a8961d5fc7a9.mp3, content_type: None, header: Headers({'content-disposition': 'form-data; name="file"; filename="1020a792-24f0-4380-a1c6-a8961d5fc7a9.mp3"'}), size: 27885 2026-02-22 11:55:36,254:DEBUG:speaches.dependencies:audio_file_dependency:103:Decoded 3.42s of audio in 0.08189s (RTF: 0.023945732459518514) 2026-02-22 11:55:36,254:DEBUG:asyncio:__init__:64:Using selector: EpollSelector 2026-02-22 11:55:36,255:ERROR:speaches.main:_custom_http_exception_handler:154:HTTP error: 404: Model 'Systran/faster-whisper-large-v3-turbo' is not installed locally. You can download the model using `POST /v1/models` INFO: 192.168.1.27:47886 - "POST /v1/audio/transcriptions HTTP/1.1" 404 Not Found 2026-02-22 11:55:36,259:DEBUG:speaches.dependencies:audio_file_dependency:89:Decoding audio file: 1020a792-24f0-4380-a1c6-a8961d5fc7a9.mp3, content_type: None, header: Headers({'content-disposition': 'form-data; name="file"; filename="1020a792-24f0-4380-a1c6-a8961d5fc7a9.mp3"'}), size: 27885 2026-02-22 11:55:36,317:DEBUG:speaches.dependencies:audio_file_dependency:103:Decoded 3.42s of audio in 0.05753s (RTF: 0.01682135614254022) 2026-02-22 11:55:36,317:DEBUG:asyncio:__init__:64:Using selector: EpollSelector 2026-02-22 11:55:36,318:ERROR:speaches.main:_custom_http_exception_handler:154:HTTP error: 404: Model 'Systran/faster-whisper-large-v3-turbo' is not installed locally. You can download the model using `POST /v1/models` INFO: 192.168.1.27:47892 - "POST /v1/audio/transcriptions HTTP/1.1" 404 Not Found 2026-02-22 11:55:55,631:DEBUG:speaches.dependencies:audio_file_dependency:89:Decoding audio file: 597236d0-11de-45db-8bfc-038ebb55e7c5.mp3, content_type: None, header: Headers({'content-disposition': 'form-data; name="file"; filename="597236d0-11de-45db-8bfc-038ebb55e7c5.mp3"'}), size: 27885 2026-02-22 11:55:55,702:DEBUG:speaches.dependencies:audio_file_dependency:103:Decoded 3.42s of audio in 0.07090s (RTF: 0.020731435089619908) 2026-02-22 11:55:55,702:DEBUG:asyncio:__init__:64:Using selector: EpollSelector 2026-02-22 11:55:55,703:ERROR:speaches.main:_custom_http_exception_handler:154:HTTP error: 404: Model 'Systran/faster-whisper-large-v3-turbo' is not installed locally. You can download the model using `POST /v1/models` INFO: 192.168.1.27:50708 - "POST /v1/audio/transcriptions HTTP/1.1" 404 Not Found 2026-02-22 11:55:55,707:DEBUG:speaches.dependencies:audio_file_dependency:89:Decoding audio file: 597236d0-11de-45db-8bfc-038ebb55e7c5.mp3, content_type: None, header: Headers({'content-disposition': 'form-data; name="file"; filename="597236d0-11de-45db-8bfc-038ebb55e7c5.mp3"'}), size: 27885 2026-02-22 11:55:55,762:DEBUG:speaches.dependencies:audio_file_dependency:103:Decoded 3.42s of audio in 0.05481s (RTF: 0.016025735087636914) 2026-02-22 11:55:55,762:DEBUG:asyncio:__init__:64:Using selector: EpollSelector 2026-02-22 11:55:55,763:ERROR:speaches.main:_custom_http_exception_handler:154:HTTP error: 404: Model 'Systran/faster-whisper-large-v3-turbo' is not installed locally. You can download the model using `POST /v1/models` INFO: 192.168.1.27:50712 - "POST /v1/audio/transcriptions HTTP/1.1" 404 Not Found 2026-02-22 11:56:03,959:DEBUG:speaches.dependencies:audio_file_dependency:89:Decoding audio file: 3a76309e-53f9-409d-a80c-b13a605ae34d.mp3, content_type: None, header: Headers({'content-disposition': 'form-data; name="file"; filename="3a76309e-53f9-409d-a80c-b13a605ae34d.mp3"'}), size: 6189 2026-02-22 11:56:04,026:DEBUG:speaches.dependencies:audio_file_dependency:103:Decoded 0.72s of audio in 0.06635s (RTF: 0.09215139444778389) 2026-02-22 11:56:04,026:DEBUG:asyncio:__init__:64:Using selector: EpollSelector 2026-02-22 11:56:04,026:ERROR:speaches.main:_custom_http_exception_handler:154:HTTP error: 404: Model 'Systran/faster-whisper-large-v3-turbo' is not installed locally. You can download the model using `POST /v1/models` INFO: 192.168.1.27:47664 - "POST /v1/audio/transcriptions HTTP/1.1" 404 Not Found 2026-02-22 11:56:04,031:DEBUG:speaches.dependencies:audio_file_dependency:89:Decoding audio file: 3a76309e-53f9-409d-a80c-b13a605ae34d.mp3, content_type: None, header: Headers({'content-disposition': 'form-data; name="file"; filename="3a76309e-53f9-409d-a80c-b13a605ae34d.mp3"'}), size: 6189 2026-02-22 11:56:04,080:DEBUG:speaches.dependencies:audio_file_dependency:103:Decoded 0.72s of audio in 0.04893s (RTF: 0.06796120000621562) 2026-02-22 11:56:04,080:DEBUG:asyncio:__init__:64:Using selector: EpollSelector 2026-02-22 11:56:04,080:ERROR:speaches.main:_custom_http_exception_handler:154:HTTP error: 404: Model 'Systran/faster-whisper-large-v3-turbo' is not installed locally. You can download the model using `POST /v1/models` INFO: 192.168.1.27:47674 - "POST /v1/audio/transcriptions HTTP/1.1" 404 Not Found Le problĂšme est clair : **Systran n'a pas publiĂ© de version officielle `faster-whisper-large-v3-turbo`**. Le modĂšle n'existe pas sous ce nom sur HuggingFace. Il faut utiliser une conversion communautaire en CTranslate2 — `deepdml/faster-whisper-large-v3-turbo-ct2`.[^5_1][^5_2] ## Correction Ă  appliquer Deux lignes Ă  changer dans `~/speaches/docker-compose.yml` : ```yaml services: speaches: # ... environment: - WHISPER__MODEL=deepdml/faster-whisper-large-v3-turbo-ct2 # ← corrigĂ© speaches-init: 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Ă©'" ``` Puis redĂ©marre tout proprement (le modĂšle en cache `large-v3` reste intact, on ajoute juste le nouveau) : ```bash cd ~/speaches docker compose down docker compose up -d ``` Surveille le tĂ©lĂ©chargement (~800 MB, plus lĂ©ger que large-v3) : ```bash docker logs -f speaches-stt ``` Tu devrais voir `speaches-init` confirmer `ModĂšle enregistrĂ©` au bout de ~30s, puis speaches-stt ĂȘtre prĂȘt. Dis-moi ce que donnent les logs ! [^5_10][^5_11][^5_12][^5_13][^5_14][^5_15][^5_3][^5_4][^5_5][^5_6][^5_7][^5_8][^5_9]
⁂
[^5_1]: https://huggingface.co/deepdml/faster-whisper-large-v3-turbo-ct2 [^5_2]: https://github.com/SYSTRAN/faster-whisper/issues/1030 [^5_3]: https://huggingface.co/Systran/faster-whisper-large-v3 [^5_4]: https://www.toolify.ai/ai-model/systran-faster-whisper-large-v3 [^5_5]: https://github.com/SYSTRAN/faster-whisper [^5_6]: https://console.groq.com/docs/model/whisper-large-v3-turbo [^5_7]: https://github.com/SYSTRAN/faster-whisper/issues/1025 [^5_8]: https://catalog.ngc.nvidia.com/orgs/nvidia/teams/riva/models/whisper_large_turbo [^5_9]: https://github.com/SYSTRAN/faster-whisper/issues/567 [^5_10]: https://www.oreateai.com/blog/downloading-whisperlargev3turbo-a-guide-to-enhanced-speech-recognition/5f278388c08fe192dc30d0c0844ee0a4 [^5_11]: https://www.kaggle.com/datasets/rikstillman/faster-whisper-large-v3-model [^5_12]: https://github.com/openai/whisper [^5_13]: https://www.reddit.com/r/LocalLLaMA/comments/1ftjqg9/whisper_turbo_now_supported_in_transformers/ [^5_14]: https://huggingface.co/openai/whisper-large-v3-turbo [^5_15]: https://github.com/systran/faster-whisper --- # GNU nano 8.4 /home/folzo/speaches/docker-compose.yml 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=int8 - WHISPER__DEVICE=cpu volumes: - speaches-models:/root/.cache/huggingface speaches-init: 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: ^Cfolzo@folzo-Corp:~/speachesnano ~/speaches/docker-compose.yml folzo@folzo-Corp:~/speaches\$ cd ~/speaches docker compose down docker compose up -d service "speaches-init" has neither an image nor a build context specified: invalid compose project service "speaches-init" has neither an image nor a build context specified: invalid compose project Le service `speaches-init` a perdu son champ `image` pendant l'Ă©dition. Voici le fichier complet corrigĂ© : ```bash nano ~/speaches/docker-compose.yml ``` Remplace tout le contenu par : ```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=int8 - WHISPER__DEVICE=cpu 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: ``` Sauvegarde avec `Ctrl+O` → `EntrĂ©e` → `Ctrl+X`, puis : ```bash cd ~/speaches && docker compose up -d ``` --- # encore une erreur : olzo@folzo-Corp:~/speaches\$ docker logs -f speaches-stt 2026-02-22 11:59:59,545:DEBUG:speaches.main:create_app:102:Config: stt_model_ttl=300 tts_model_ttl=300 vad_model_ttl=-1 api_key=None log_level='debug' host='0.0.0.0' port=8000 allow_origins=None enable_ui=True whisper=WhisperConfig(inference_device='auto', device_index=0, compute_type='int8', cpu_threads=0, num_workers=1) loopback_host_url=None chat_completion_base_url='http://localhost:11434/v1' chat_completion_api_key=SecretStr('**********') unstable_ort_opts=OrtOptions(exclude_providers=['TensorrtExecutionProvider'], provider_priority={'CUDAExecutionProvider': 100}, provider_opts={}) otel_exporter_otlp_endpoint=None otel_service_name='speaches' preload_models=[] 2026-02-22 12:00:00,459:DEBUG:urllib3.connectionpool:_new_conn:1051:Starting new HTTPS connection (1): huggingface.co:443 2026-02-22 12:00:00,513:DEBUG:urllib3.connectionpool:_new_conn:1051:Starting new HTTPS connection (1): huggingface.co:443 2026-02-22 12:00:00,631:DEBUG:urllib3.connectionpool:_make_request:546:https://huggingface.co:443 "HEAD /api/telemetry/https%3A/api.gradio.app/gradio-initiated-analytics HTTP/11" 200 0 2026-02-22 12:00:00,760:DEBUG:urllib3.connectionpool:_make_request:546:https://huggingface.co:443 "HEAD /api/telemetry/https%3A/api.gradio.app/gradio-initiated-analytics HTTP/11" 200 0 new 2026-02-22 12:00:00,771:INFO:speaches.main:create_app:202: To view the gradio web ui of speaches open your browser and visit: http://localhost:8000/ INFO: Started server process [1] INFO: Waiting for application startup. INFO: Application startup complete. INFO: Uvicorn running on [http://0.0.0.0:8000](http://0.0.0.0:8000) (Press CTRL+C to quit) 2026-02-22 12:00:01,198:INFO:httpx:_send_single_request:1025:HTTP Request: GET [https://api.gradio.app/pkg-version](https://api.gradio.app/pkg-version) "HTTP/1.1 200 OK" 2026-02-22 12:00:01,198:INFO:httpx:_send_single_request:1025:HTTP Request: GET [https://api.gradio.app/pkg-version](https://api.gradio.app/pkg-version) "HTTP/1.1 200 OK" 2026-02-22 12:00:01,320:INFO:httpx:_send_single_request:1025:HTTP Request: GET [https://api.gradio.app/pkg-version](https://api.gradio.app/pkg-version) "HTTP/1.1 200 OK" 2026-02-22 12:00:01,320:INFO:httpx:_send_single_request:1025:HTTP Request: GET [https://api.gradio.app/pkg-version](https://api.gradio.app/pkg-version) "HTTP/1.1 200 OK" 2026-02-22 12:00:02,520:DEBUG:urllib3.connectionpool:_new_conn:1051:Starting new HTTPS connection (1): huggingface.co:443 2026-02-22 12:00:02,714:DEBUG:urllib3.connectionpool:_make_request:546:https://huggingface.co:443 "GET /api/models?filter=ctranslate2\&filter=automatic-speech-recognition\&cardData=True HTTP/11" 200 244215 Invalid model-index. Not loading eval results into CardData. 2026-02-22 12:00:02,846:WARNING:huggingface_hub.repocard_data:__init__:368:Invalid model-index. Not loading eval results into CardData. 2026-02-22 12:00:02,972:DEBUG:urllib3.connectionpool:_make_request:546:https://huggingface.co:443 "GET /api/models/deepdml/faster-whisper-large-v3-turbo-ct2/revision/main HTTP/11" 200 2873 2026-02-22 12:00:02,974:DEBUG:urllib3.connectionpool:_new_conn:1051:Starting new HTTPS connection (1): huggingface.co:443 2026-02-22 12:00:02,976:DEBUG:urllib3.connectionpool:_new_conn:1051:Starting new HTTPS connection (1): huggingface.co:443 2026-02-22 12:00:02,978:DEBUG:urllib3.connectionpool:_new_conn:1051:Starting new HTTPS connection (1): huggingface.co:443 2026-02-22 12:00:02,978:DEBUG:urllib3.connectionpool:_new_conn:1051:Starting new HTTPS connection (1): huggingface.co:443 2026-02-22 12:00:03,079:DEBUG:urllib3.connectionpool:_make_request:546:https://huggingface.co:443 "HEAD /deepdml/faster-whisper-large-v3-turbo-ct2/resolve/4df90f75321148c3a29a9e2351b7ddf8f5b115a8/model.bin HTTP/11" 302 0 2026-02-22 12:00:03,079:DEBUG:urllib3.connectionpool:_make_request:546:https://huggingface.co:443 "HEAD /deepdml/faster-whisper-large-v3-turbo-ct2/resolve/4df90f75321148c3a29a9e2351b7ddf8f5b115a8/config.json HTTP/11" 307 0 2026-02-22 12:00:03,085:DEBUG:filelock:acquire:331:Attempting to acquire lock 131631311507184 on /root/.cache/huggingface/hub/.locks/models--deepdml--faster-whisper-large-v3-turbo-ct2/e76620f83d5f5b69efd3d87e3dc180c1bd21df9fbebacfd4335e5e1efcc018da.lock 2026-02-22 12:00:03,085:DEBUG:filelock:acquire:334:Lock 131631311507184 acquired on /root/.cache/huggingface/hub/.locks/models--deepdml--faster-whisper-large-v3-turbo-ct2/e76620f83d5f5b69efd3d87e3dc180c1bd21df9fbebacfd4335e5e1efcc018da.lock 2026-02-22 12:00:03,094:DEBUG:urllib3.connectionpool:_make_request:546:https://huggingface.co:443 "HEAD /api/resolve-cache/models/deepdml/faster-whisper-large-v3-turbo-ct2/4df90f75321148c3a29a9e2351b7ddf8f5b115a8/config.json HTTP/11" 200 0 2026-02-22 12:00:03,095:DEBUG:filelock:acquire:331:Attempting to acquire lock 131631311513904 on /root/.cache/huggingface/hub/.locks/models--deepdml--faster-whisper-large-v3-turbo-ct2/0351d1d6870005e865747b781b5d7c23ea0459cd.lock 2026-02-22 12:00:03,095:DEBUG:filelock:acquire:334:Lock 131631311513904 acquired on /root/.cache/huggingface/hub/.locks/models--deepdml--faster-whisper-large-v3-turbo-ct2/0351d1d6870005e865747b781b5d7c23ea0459cd.lock 2026-02-22 12:00:03,128:DEBUG:urllib3.connectionpool:_make_request:546:https://huggingface.co:443 "HEAD /deepdml/faster-whisper-large-v3-turbo-ct2/resolve/4df90f75321148c3a29a9e2351b7ddf8f5b115a8/tokenizer.json HTTP/11" 307 0 2026-02-22 12:00:03,131:DEBUG:urllib3.connectionpool:_make_request:546:https://huggingface.co:443 "HEAD /deepdml/faster-whisper-large-v3-turbo-ct2/resolve/4df90f75321148c3a29a9e2351b7ddf8f5b115a8/vocabulary.json HTTP/11" 307 0 2026-02-22 12:00:03,143:DEBUG:urllib3.connectionpool:_make_request:546:https://huggingface.co:443 "HEAD /api/resolve-cache/models/deepdml/faster-whisper-large-v3-turbo-ct2/4df90f75321148c3a29a9e2351b7ddf8f5b115a8/tokenizer.json HTTP/11" 200 0 2026-02-22 12:00:03,143:DEBUG:filelock:acquire:331:Attempting to acquire lock 131631311512464 on /root/.cache/huggingface/hub/.locks/models--deepdml--faster-whisper-large-v3-turbo-ct2/17456db595adc78a973f97d69d8cb50bc87c0b1c.lock 2026-02-22 12:00:03,143:DEBUG:filelock:acquire:334:Lock 131631311512464 acquired on /root/.cache/huggingface/hub/.locks/models--deepdml--faster-whisper-large-v3-turbo-ct2/17456db595adc78a973f97d69d8cb50bc87c0b1c.lock 2026-02-22 12:00:03,146:DEBUG:urllib3.connectionpool:_make_request:546:https://huggingface.co:443 "HEAD /api/resolve-cache/models/deepdml/faster-whisper-large-v3-turbo-ct2/4df90f75321148c3a29a9e2351b7ddf8f5b115a8/vocabulary.json HTTP/11" 200 0 2026-02-22 12:00:03,146:DEBUG:filelock:acquire:331:Attempting to acquire lock 131631311512944 on /root/.cache/huggingface/hub/.locks/models--deepdml--faster-whisper-large-v3-turbo-ct2/0adcd01e7c237205d593b707e66dd5d7bc785d2d.lock 2026-02-22 12:00:03,146:DEBUG:filelock:acquire:334:Lock 131631311512944 acquired on /root/.cache/huggingface/hub/.locks/models--deepdml--faster-whisper-large-v3-turbo-ct2/0adcd01e7c237205d593b707e66dd5d7bc785d2d.lock 2026-02-22 12:00:03,155:DEBUG:urllib3.connectionpool:_make_request:546:https://huggingface.co:443 "HEAD /deepdml/faster-whisper-large-v3-turbo-ct2/resolve/4df90f75321148c3a29a9e2351b7ddf8f5b115a8/README.md HTTP/11" 307 0 2026-02-22 12:00:03,183:DEBUG:urllib3.connectionpool:_make_request:546:https://huggingface.co:443 "HEAD /deepdml/faster-whisper-large-v3-turbo-ct2/resolve/4df90f75321148c3a29a9e2351b7ddf8f5b115a8/preprocessor_config.json HTTP/11" 307 0 2026-02-22 12:00:03,194:DEBUG:urllib3.connectionpool:_make_request:546:https://huggingface.co:443 "GET /api/resolve-cache/models/deepdml/faster-whisper-large-v3-turbo-ct2/4df90f75321148c3a29a9e2351b7ddf8f5b115a8/config.json HTTP/11" 200 None 2026-02-22 12:00:03,195:DEBUG:filelock:release:364:Attempting to release lock 131631311513904 on /root/.cache/huggingface/hub/.locks/models--deepdml--faster-whisper-large-v3-turbo-ct2/0351d1d6870005e865747b781b5d7c23ea0459cd.lock 2026-02-22 12:00:03,195:DEBUG:filelock:release:367:Lock 131631311513904 released on /root/.cache/huggingface/hub/.locks/models--deepdml--faster-whisper-large-v3-turbo-ct2/0351d1d6870005e865747b781b5d7c23ea0459cd.lock 2026-02-22 12:00:03,196:DEBUG:urllib3.connectionpool:_make_request:546:https://huggingface.co:443 "GET /api/models/deepdml/faster-whisper-large-v3-turbo-ct2/xet-read-token/4df90f75321148c3a29a9e2351b7ddf8f5b115a8 HTTP/11" 200 365 2026-02-22 12:00:03,198:DEBUG:urllib3.connectionpool:_make_request:546:https://huggingface.co:443 "HEAD /api/resolve-cache/models/deepdml/faster-whisper-large-v3-turbo-ct2/4df90f75321148c3a29a9e2351b7ddf8f5b115a8/preprocessor_config.json HTTP/11" 200 0 2026-02-22 12:00:03,198:DEBUG:filelock:acquire:331:Attempting to acquire lock 131631311506848 on /root/.cache/huggingface/hub/.locks/models--deepdml--faster-whisper-large-v3-turbo-ct2/931c77a740890c46365c7ae0c9d350ba3cca908f.lock 2026-02-22 12:00:03,198:DEBUG:filelock:acquire:334:Lock 131631311506848 acquired on /root/.cache/huggingface/hub/.locks/models--deepdml--faster-whisper-large-v3-turbo-ct2/931c77a740890c46365c7ae0c9d350ba3cca908f.lock 2026-02-22 12:00:03,243:DEBUG:urllib3.connectionpool:_make_request:546:https://huggingface.co:443 "GET /api/resolve-cache/models/deepdml/faster-whisper-large-v3-turbo-ct2/4df90f75321148c3a29a9e2351b7ddf8f5b115a8/tokenizer.json HTTP/11" 200 None 2026-02-22 12:00:03,248:DEBUG:urllib3.connectionpool:_make_request:546:https://huggingface.co:443 "GET /api/resolve-cache/models/deepdml/faster-whisper-large-v3-turbo-ct2/4df90f75321148c3a29a9e2351b7ddf8f5b115a8/vocabulary.json HTTP/11" 200 None 2026-02-22 12:00:03,254:DEBUG:urllib3.connectionpool:_make_request:546:https://huggingface.co:443 "HEAD /api/resolve-cache/models/deepdml/faster-whisper-large-v3-turbo-ct2/4df90f75321148c3a29a9e2351b7ddf8f5b115a8/README.md HTTP/11" 200 0 2026-02-22 12:00:03,255:DEBUG:filelock:acquire:331:Attempting to acquire lock 131631311404352 on /root/.cache/huggingface/hub/.locks/models--deepdml--faster-whisper-large-v3-turbo-ct2/fb53844bcca20e84e58c86859351b0af33771b87.lock 2026-02-22 12:00:03,255:DEBUG:filelock:acquire:334:Lock 131631311404352 acquired on /root/.cache/huggingface/hub/.locks/models--deepdml--faster-whisper-large-v3-turbo-ct2/fb53844bcca20e84e58c86859351b0af33771b87.lock 2026-02-22 12:00:03,286:DEBUG:filelock:release:364:Attempting to release lock 131631311512944 on /root/.cache/huggingface/hub/.locks/models--deepdml--faster-whisper-large-v3-turbo-ct2/0adcd01e7c237205d593b707e66dd5d7bc785d2d.lock 2026-02-22 12:00:03,286:DEBUG:filelock:release:367:Lock 131631311512944 released on /root/.cache/huggingface/hub/.locks/models--deepdml--faster-whisper-large-v3-turbo-ct2/0adcd01e7c237205d593b707e66dd5d7bc785d2d.lock 2026-02-22 12:00:03,299:DEBUG:urllib3.connectionpool:_make_request:546:https://huggingface.co:443 "GET /api/resolve-cache/models/deepdml/faster-whisper-large-v3-turbo-ct2/4df90f75321148c3a29a9e2351b7ddf8f5b115a8/preprocessor_config.json HTTP/11" 200 340 2026-02-22 12:00:03,300:DEBUG:filelock:release:364:Attempting to release lock 131631311506848 on /root/.cache/huggingface/hub/.locks/models--deepdml--faster-whisper-large-v3-turbo-ct2/931c77a740890c46365c7ae0c9d350ba3cca908f.lock 2026-02-22 12:00:03,300:DEBUG:filelock:release:367:Lock 131631311506848 released on /root/.cache/huggingface/hub/.locks/models--deepdml--faster-whisper-large-v3-turbo-ct2/931c77a740890c46365c7ae0c9d350ba3cca908f.lock 2026-02-22 12:00:03,300:DEBUG:filelock:release:364:Attempting to release lock 131631311512464 on /root/.cache/huggingface/hub/.locks/models--deepdml--faster-whisper-large-v3-turbo-ct2/17456db595adc78a973f97d69d8cb50bc87c0b1c.lock 2026-02-22 12:00:03,300:DEBUG:filelock:release:367:Lock 131631311512464 released on /root/.cache/huggingface/hub/.locks/models--deepdml--faster-whisper-large-v3-turbo-ct2/17456db595adc78a973f97d69d8cb50bc87c0b1c.lock 2026-02-22 12:00:03,357:DEBUG:urllib3.connectionpool:_make_request:546:https://huggingface.co:443 "GET /api/resolve-cache/models/deepdml/faster-whisper-large-v3-turbo-ct2/4df90f75321148c3a29a9e2351b7ddf8f5b115a8/README.md HTTP/11" 200 None 2026-02-22 12:00:03,358:DEBUG:filelock:release:364:Attempting to release lock 131631311404352 on /root/.cache/huggingface/hub/.locks/models--deepdml--faster-whisper-large-v3-turbo-ct2/fb53844bcca20e84e58c86859351b0af33771b87.lock 2026-02-22 12:00:03,358:DEBUG:filelock:release:367:Lock 131631311404352 released on /root/.cache/huggingface/hub/.locks/models--deepdml--faster-whisper-large-v3-turbo-ct2/fb53844bcca20e84e58c86859351b0af33771b87.lock 2026-02-22 12:00:17,998:DEBUG:speaches.dependencies:audio_file_dependency:89:Decoding audio file: c557b30f-5a36-4f95-8a19-2180897c60ea.mp3, content_type: None, header: Headers({'content-disposition': 'form-data; name="file"; filename="c557b30f-5a36-4f95-8a19-2180897c60ea.mp3"'}), size: 45165 2026-02-22 12:00:18,106:DEBUG:speaches.dependencies:audio_file_dependency:103:Decoded 5.58s of audio in 0.10827s (RTF: 0.01940251379999863) 2026-02-22 12:00:18,107:DEBUG:asyncio:__init__:64:Using selector: EpollSelector 2026-02-22 12:00:18,107:ERROR:speaches.main:_custom_http_exception_handler:154:HTTP error: 404: Model 'Systran/faster-whisper-large-v3-turbo' is not installed locally. You can download the model using `POST /v1/models` INFO: 192.168.1.27:53486 - "POST /v1/audio/transcriptions HTTP/1.1" 404 Not Found 2026-02-22 12:00:18,112:DEBUG:speaches.dependencies:audio_file_dependency:89:Decoding audio file: c557b30f-5a36-4f95-8a19-2180897c60ea.mp3, content_type: None, header: Headers({'content-disposition': 'form-data; name="file"; filename="c557b30f-5a36-4f95-8a19-2180897c60ea.mp3"'}), size: 45165 2026-02-22 12:00:18,181:DEBUG:speaches.dependencies:audio_file_dependency:103:Decoded 5.58s of audio in 0.06847s (RTF: 0.01227030716826021) 2026-02-22 12:00:18,181:DEBUG:asyncio:__init__:64:Using selector: EpollSelector 2026-02-22 12:00:18,181:ERROR:speaches.main:_custom_http_exception_handler:154:HTTP error: 404: Model 'Systran/faster-whisper-large-v3-turbo' is not installed locally. You can download the model using `POST /v1/models` INFO: 192.168.1.27:53496 - "POST /v1/audio/transcriptions HTTP/1.1" 404 Not Found 2026-02-22 12:00:32,620:DEBUG:filelock:release:364:Attempting to release lock 131631311507184 on /root/.cache/huggingface/hub/.locks/models--deepdml--faster-whisper-large-v3-turbo-ct2/e76620f83d5f5b69efd3d87e3dc180c1bd21df9fbebacfd4335e5e1efcc018da.lock 2026-02-22 12:00:32,620:DEBUG:filelock:release:367:Lock 131631311507184 released on /root/.cache/huggingface/hub/.locks/models--deepdml--faster-whisper-large-v3-turbo-ct2/e76620f83d5f5b69efd3d87e3dc180c1bd21df9fbebacfd4335e5e1efcc018da.lock Fetching 6 files: 100%|██████████| 6/6 [00:29<00:00, 4.94s/it] INFO: 172.18.0.3:55182 - "POST /v1/models/deepdml/faster-whisper-large-v3-turbo-ct2 HTTP/1.1" 200 OK Tout se passe bien ! Voici ce que les logs indiquent : - ✅ **ModĂšle tĂ©lĂ©chargĂ©** : `Fetching 6 files: 100%` en 29 secondes - ✅ **speaches-init a enregistrĂ© le modĂšle** : `POST /v1/models/deepdml/faster-whisper-large-v3-turbo-ct2` → **200 OK** - ⚠ **Les erreurs 404** en cours de route viennent d'Open WebUI qui cherchait encore l'ancien nom `Systran/faster-whisper-large-v3-turbo` — c'est normal, il faut mettre Ă  jour la config ## Action : mettre Ă  jour Open WebUI Dans l'interface Open WebUI sur **effi-server** : **Admin Panel → Settings → Audio → STT Model** ``` # Avant Systran/faster-whisper-large-v3 # AprĂšs deepdml/faster-whisper-large-v3-turbo-ct2 ``` Sauvegarde, puis **teste une transcription vocale** dans Effi. Dans les logs speaches, tu devrais maintenant voir apparaĂźtre un bloc du type : ``` Transcribing audio... RTF: 0.0X ← doit ĂȘtre < 0.5 (beaucoup plus rapide qu'avant) ``` Dis-moi le RTF que tu observes — ça confirmera le gain de vitesse — et on passera au **Fix \#2** (basculer TTS sur Piper pour libĂ©rer 4 GB VRAM). --- ## Fix \#2 — Basculer TTS vers Piper (libĂšre 4 GB VRAM) C'est le fix le plus simple, tout se passe dans Open WebUI. **Admin Panel → Settings → Audio → TTS Model** ``` # Avant tts-1-hd ← XTTS v2, ~4 GB VRAM sur la 7800 XT # AprĂšs tts-1 ← Piper, tourne sur CPU, quasi aucune ressource ``` Sauvegarde. C'est tout — pas de redĂ©marrage de conteneur nĂ©cessaire. *** ## Ce que ça change concrĂštement | | Avant | AprĂšs | | :-- | :-- | :-- | | TTS backend | XTTS v2 (GPU) | Piper (CPU) | | VRAM consommĂ©e | ~4 GB | ~0 GB | | QualitĂ© voix | TrĂšs naturelle | Correcte, lĂ©gĂšrement synthĂ©tique | | Latence gĂ©nĂ©ration | ~2-3s | ~0.3s (quasi instantanĂ©) | La qualitĂ© Piper est un cran en dessous d'XTTS, mais la latence est **bien meilleure** pour un usage conversationnel. Si la qualitĂ© vocale te manque vraiment, on pourra revenir Ă  `tts-1-hd` une fois le budget VRAM optimisĂ© avec le Fix \#3. *** Dis-moi quand c'est fait, on attaquera le **Fix \#3** — configurer mem0 pour utiliser `qwen2.5:3b` au lieu du 14b pour les opĂ©rations mĂ©moire. --- # la configuration est bonne ? : L'image est trĂšs petite et difficile Ă  lire en dĂ©tail. Les deux points clĂ©s Ă  vĂ©rifier : **✅ Ce qui doit ĂȘtre configurĂ© :** | Champ | Valeur attendue | | :-- | :-- | | **STT Engine** | OpenAI | | **STT URL** | `http://192.168.1.11:8200/v1` | | **STT Model** | `deepdml/faster-whisper-large-v3-turbo-ct2` | | **TTS Engine** | OpenAI | | **TTS URL** | `http://192.168.1.11:8100/v1` | | **TTS Model** | `tts-1` | Peux-tu confirmer que ces valeurs correspondent Ă  ce que tu vois Ă  l'Ă©cran ? En particulier : - Le **STT Model** est bien `deepdml/faster-whisper-large-v3-turbo-ct2` (et non l'ancien `Systran/...`) ? - Le **TTS Model** est bien `tts-1` (et non `tts-1-hd`) ? Si tout est bon, on passe au **Fix \#3** — mem0 avec `qwen2.5:3b`. [^9_1]
⁂
[^9_1]: image.jpg --- # et la voix est reglĂ© sur alloy c'est la bonne ? **Oui, `alloy` fonctionne** avec `tts-1` (Piper). C'est un bon choix pour commencer. Une petite nuance Ă  avoir en tĂȘte : avec `tts-1-hd` (XTTS), les voix utilisaient les fichiers WAV que tu avais dans `tts-voices/` comme rĂ©fĂ©rence de clonage vocal. Avec `tts-1` (Piper), `alloy` pointe vers un modĂšle ONNX anglais — ça fonctionnera en français mais avec une lĂ©gĂšre "sonoritĂ© anglophone" possible sur certains mots. Si la voix te semble trop robotique ou mal accentuĂ©e en français, on pourra plus tard configurer une voix Piper française native (ex : `fr_FR-upmc-medium`). Mais pour l'instant c'est largement suffisant pour valider le pipeline. *** **Fix \#2 est terminĂ© ✅** RĂ©cap de ce qu'on a fait : - ✅ Fix \#1 — STT : `large-v3-turbo-ct2` (CPU beaucoup plus rapide) - ✅ Fix \#2 — TTS : `tts-1` Piper (libĂšre ~4 GB VRAM) *** ## Fix \#3 — mem0 avec `qwen2.5:3b` On attaque la partie la plus impactante sur le GPU. D'abord, tĂ©lĂ©charge le petit modĂšle sur **folzo-Corp** : ```bash ollama pull qwen2.5:3b ``` Pendant ce temps, montre-moi comment mem0 est configurĂ© actuellement — soit le fichier de config, soit le pipeline Open WebUI qui l'utilise. C'est sur **effi-server**, probablement dans `~/effi/` ou dans les pipelines Open WebUI. --- # ok parfait, mais j'ai toujours un probleme mon gpu touurne a fon longtemps apres avoir demander quelque chose a effi, est-ce normal comment voir ce qui demande du gpu ? **GPU Ă  100% longtemps aprĂšs une requĂȘte, c'est anormal.** La VRAM Ă  8.93 GB correspond au modĂšle `qwen2.5:14b` chargĂ© — c'est normal. Mais le 100% d'utilisation persistant pointe vers un process qui tourne encore. Il faut identifier lequel. ## Diagnostic en temps rĂ©el Sur **folzo-Corp**, ouvre deux terminaux : **Terminal 1 — identifier le process GPU :** ```bash watch -n 1 rocm-smi --showpidgpus ``` **Terminal 2 — voir ce que font les conteneurs Docker :** ```bash docker stats ``` **Terminal 3 — logs Ollama (tourne en natif sur folzo-Corp) :** ```bash journalctl -u ollama -f --no-pager # ou si lancĂ© manuellement : ollama ps ``` *** ## Les coupables les plus probables | Process | Signe dans les logs | Pourquoi ça dure | | :-- | :-- | :-- | | **Ollama (qwen2.5:14b)** | `ollama ps` montre le modĂšle actif | mem0 dĂ©clenche un 2Ăšme appel LLM aprĂšs la rĂ©ponse | | **openedai-speech** | Conteneur Ă  >50% CPU/GPU dans `docker stats` | GĂ©nĂšre l'audio XTTS en post-traitement | | **bge-m3 embeddings** | Pic GPU aprĂšs la rĂ©ponse | Open WebUI indexe la conversation dans Qdrant | Lance ces commandes pendant qu'Effi "refroidit" et dis-moi ce que `rocm-smi --showpidgpus` et `ollama ps` affichent — on identifiera le coupable prĂ©cis. [^11_1]
⁂
[^11_1]: image.jpg --- # eral.languages arr[str,1] = ["en"] fĂ©vr. 22 13:11:11 folzo-Corp ollama[4303]: llama_model_loader: - kv 15: qwen2.block_count u32 = 36 fĂ©vr. 22 13:11:11 folzo-Corp ollama[4303]: llama_model_loader: - kv 16: qwen2.context_length u32 = 32768 fĂ©vr. 22 13:11:11 folzo-Corp ollama[4303]: llama_model_loader: - kv 17: qwen2.embedding_length u32 = 2048 fĂ©vr. 22 13:11:11 folzo-Corp ollama[4303]: llama_model_loader: - kv 18: qwen2.feed_forward_length u32 = 11008 fĂ©vr. 22 13:11:11 folzo-Corp ollama[4303]: llama_model_loader: - kv 19: qwen2.attention.head_count u32 = 16 fĂ©vr. 22 13:11:11 folzo-Corp ollama[4303]: llama_model_loader: - kv 20: qwen2.attention.head_count_kv u32 = 2 fĂ©vr. 22 13:11:11 folzo-Corp ollama[4303]: llama_model_loader: - kv 21: qwen2.rope.freq_base f32 = 1000000.000000 fĂ©vr. 22 13:11:11 folzo-Corp ollama[4303]: llama_model_loader: - kv 22: qwen2.attention.layer_norm_rms_epsilon f32 = 0.000001 fĂ©vr. 22 13:11:11 folzo-Corp ollama[4303]: llama_model_loader: - kv 23: general.file_type u32 = 15 fĂ©vr. 22 13:11:11 folzo-Corp ollama[4303]: llama_model_loader: - kv 24: tokenizer.ggml.model str = gpt2 fĂ©vr. 22 13:11:11 folzo-Corp ollama[4303]: llama_model_loader: - kv 25: tokenizer.ggml.pre str = qwen2 fĂ©vr. 22 13:11:11 folzo-Corp ollama[4303]: llama_model_loader: - kv 26: tokenizer.ggml.tokens arr[str,151936] = ["!", "\\"", "\#", "\$", "%", "\&", "'", ... fĂ©vr. 22 13:11:11 folzo-Corp ollama[4303]: llama_model_loader: - kv 27: tokenizer.ggml.token_type arr[i32,151936] = [1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, ... fĂ©vr. 22 13:11:11 folzo-Corp ollama[4303]: llama_model_loader: - kv 28: tokenizer.ggml.merges arr[str,151387] = ["Ä  Ä ", "Ä Ä  Ä Ä ", "i n", "Ä  t",... fĂ©vr. 22 13:11:11 folzo-Corp ollama[4303]: llama_model_loader: - kv 29: tokenizer.ggml.eos_token_id u32 = 151645 fĂ©vr. 22 13:11:11 folzo-Corp ollama[4303]: llama_model_loader: - kv 30: tokenizer.ggml.padding_token_id u32 = 151643 fĂ©vr. 22 13:11:11 folzo-Corp ollama[4303]: llama_model_loader: - kv 31: tokenizer.ggml.bos_token_id u32 = 151643 fĂ©vr. 22 13:11:11 folzo-Corp ollama[4303]: llama_model_loader: - kv 32: tokenizer.ggml.add_bos_token bool = false fĂ©vr. 22 13:11:11 folzo-Corp ollama[4303]: llama_model_loader: - kv 33: tokenizer.chat_template str = {%- if tools %}\\n {{- '<|im_start|>... fĂ©vr. 22 13:11:11 folzo-Corp ollama[4303]: llama_model_loader: - kv 34: general.quantization_version u32 = 2 fĂ©vr. 22 13:11:11 folzo-Corp ollama[4303]: llama_model_loader: - type f32: 181 tensors fĂ©vr. 22 13:11:11 folzo-Corp ollama[4303]: llama_model_loader: - type q4_K: 216 tensors fĂ©vr. 22 13:11:11 folzo-Corp ollama[4303]: llama_model_loader: - type q6_K: 37 tensors fĂ©vr. 22 13:11:11 folzo-Corp ollama[4303]: print_info: file format = GGUF V3 (latest) fĂ©vr. 22 13:11:11 folzo-Corp ollama[4303]: print_info: file type = Q4_K - Medium fĂ©vr. 22 13:11:11 folzo-Corp ollama[4303]: print_info: file size = 1.79 GiB (4.99 BPW) fĂ©vr. 22 13:11:12 folzo-Corp ollama[4303]: load: printing all EOG tokens: fĂ©vr. 22 13:11:12 folzo-Corp ollama[4303]: load: - 151643 ('<|endoftext|>') fĂ©vr. 22 13:11:12 folzo-Corp ollama[4303]: load: - 151645 ('<|im_end|>') fĂ©vr. 22 13:11:12 folzo-Corp ollama[4303]: load: - 151662 ('<|fim_pad|>') fĂ©vr. 22 13:11:12 folzo-Corp ollama[4303]: load: - 151663 ('<|repo_name|>') fĂ©vr. 22 13:11:12 folzo-Corp ollama[4303]: load: - 151664 ('<|file_sep|>') fĂ©vr. 22 13:11:12 folzo-Corp ollama[4303]: load: special tokens cache size = 22 fĂ©vr. 22 13:11:12 folzo-Corp ollama[4303]: load: token to piece cache size = 0.9310 MB fĂ©vr. 22 13:11:12 folzo-Corp ollama[4303]: print_info: arch = qwen2 fĂ©vr. 22 13:11:12 folzo-Corp ollama[4303]: print_info: vocab_only = 0 fĂ©vr. 22 13:11:12 folzo-Corp ollama[4303]: print_info: no_alloc = 0 fĂ©vr. 22 13:11:12 folzo-Corp ollama[4303]: print_info: n_ctx_train = 32768 fĂ©vr. 22 13:11:12 folzo-Corp ollama[4303]: print_info: n_embd = 2048 fĂ©vr. 22 13:11:12 folzo-Corp ollama[4303]: print_info: n_embd_inp = 2048 fĂ©vr. 22 13:11:12 folzo-Corp ollama[4303]: print_info: n_layer = 36 fĂ©vr. 22 13:11:12 folzo-Corp ollama[4303]: print_info: n_head = 16 fĂ©vr. 22 13:11:12 folzo-Corp ollama[4303]: print_info: n_head_kv = 2 fĂ©vr. 22 13:11:12 folzo-Corp ollama[4303]: print_info: n_rot = 128 fĂ©vr. 22 13:11:12 folzo-Corp ollama[4303]: print_info: n_swa = 0 fĂ©vr. 22 13:11:12 folzo-Corp ollama[4303]: print_info: is_swa_any = 0 fĂ©vr. 22 13:11:12 folzo-Corp ollama[4303]: print_info: n_embd_head_k = 128 fĂ©vr. 22 13:11:12 folzo-Corp ollama[4303]: print_info: n_embd_head_v = 128 fĂ©vr. 22 13:11:12 folzo-Corp ollama[4303]: print_info: n_gqa = 8 fĂ©vr. 22 13:11:12 folzo-Corp ollama[4303]: print_info: n_embd_k_gqa = 256 fĂ©vr. 22 13:11:12 folzo-Corp ollama[4303]: print_info: n_embd_v_gqa = 256 fĂ©vr. 22 13:11:12 folzo-Corp ollama[4303]: print_info: f_norm_eps = 0.0e+00 fĂ©vr. 22 13:11:12 folzo-Corp ollama[4303]: print_info: f_norm_rms_eps = 1.0e-06 fĂ©vr. 22 13:11:12 folzo-Corp ollama[4303]: print_info: f_clamp_kqv = 0.0e+00 fĂ©vr. 22 13:11:12 folzo-Corp ollama[4303]: print_info: f_max_alibi_bias = 0.0e+00 fĂ©vr. 22 13:11:12 folzo-Corp ollama[4303]: print_info: f_logit_scale = 0.0e+00 fĂ©vr. 22 13:11:12 folzo-Corp ollama[4303]: print_info: f_attn_scale = 0.0e+00 fĂ©vr. 22 13:11:12 folzo-Corp ollama[4303]: print_info: n_ff = 11008 fĂ©vr. 22 13:11:12 folzo-Corp ollama[4303]: print_info: n_expert = 0 fĂ©vr. 22 13:11:12 folzo-Corp ollama[4303]: print_info: n_expert_used = 0 fĂ©vr. 22 13:11:12 folzo-Corp ollama[4303]: print_info: n_expert_groups = 0 fĂ©vr. 22 13:11:12 folzo-Corp ollama[4303]: print_info: n_group_used = 0 fĂ©vr. 22 13:11:12 folzo-Corp ollama[4303]: print_info: causal attn = 1 fĂ©vr. 22 13:11:12 folzo-Corp ollama[4303]: print_info: pooling type = -1 fĂ©vr. 22 13:11:12 folzo-Corp ollama[4303]: print_info: rope type = 2 fĂ©vr. 22 13:11:12 folzo-Corp ollama[4303]: print_info: rope scaling = linear fĂ©vr. 22 13:11:12 folzo-Corp ollama[4303]: print_info: freq_base_train = 1000000.0 fĂ©vr. 22 13:11:12 folzo-Corp ollama[4303]: print_info: freq_scale_train = 1 fĂ©vr. 22 13:11:12 folzo-Corp ollama[4303]: print_info: n_ctx_orig_yarn = 32768 fĂ©vr. 22 13:11:12 folzo-Corp ollama[4303]: print_info: rope_yarn_log_mul= 0.0000 fĂ©vr. 22 13:11:12 folzo-Corp ollama[4303]: print_info: rope_finetuned = unknown fĂ©vr. 22 13:11:12 folzo-Corp ollama[4303]: print_info: model type = 3B fĂ©vr. 22 13:11:12 folzo-Corp ollama[4303]: print_info: model params = 3.09 B fĂ©vr. 22 13:11:12 folzo-Corp ollama[4303]: print_info: general.name = Qwen2.5 3B Instruct fĂ©vr. 22 13:11:12 folzo-Corp ollama[4303]: print_info: vocab type = BPE fĂ©vr. 22 13:11:12 folzo-Corp ollama[4303]: print_info: n_vocab = 151936 fĂ©vr. 22 13:11:12 folzo-Corp ollama[4303]: print_info: n_merges = 151387 fĂ©vr. 22 13:11:12 folzo-Corp ollama[4303]: print_info: BOS token = 151643 '<|endoftext|>' fĂ©vr. 22 13:11:12 folzo-Corp ollama[4303]: print_info: EOS token = 151645 '<|im_end|>' fĂ©vr. 22 13:11:12 folzo-Corp ollama[4303]: print_info: EOT token = 151645 '<|im_end|>' fĂ©vr. 22 13:11:12 folzo-Corp ollama[4303]: print_info: PAD token = 151643 '<|endoftext|>' fĂ©vr. 22 13:11:12 folzo-Corp ollama[4303]: print_info: LF token = 198 'Ċ' fĂ©vr. 22 13:11:12 folzo-Corp ollama[4303]: print_info: FIM PRE token = 151659 '<|fim_prefix|>' fĂ©vr. 22 13:11:12 folzo-Corp ollama[4303]: print_info: FIM SUF token = 151661 '<|fim_suffix|>' fĂ©vr. 22 13:11:12 folzo-Corp ollama[4303]: print_info: FIM MID token = 151660 '<|fim_middle|>' fĂ©vr. 22 13:11:12 folzo-Corp ollama[4303]: print_info: FIM PAD token = 151662 '<|fim_pad|>' fĂ©vr. 22 13:11:12 folzo-Corp ollama[4303]: print_info: FIM REP token = 151663 '<|repo_name|>' fĂ©vr. 22 13:11:12 folzo-Corp ollama[4303]: print_info: FIM SEP token = 151664 '<|file_sep|>' fĂ©vr. 22 13:11:12 folzo-Corp ollama[4303]: print_info: EOG token = 151643 '<|endoftext|>' fĂ©vr. 22 13:11:12 folzo-Corp ollama[4303]: print_info: EOG token = 151645 '<|im_end|>' fĂ©vr. 22 13:11:12 folzo-Corp ollama[4303]: print_info: EOG token = 151662 '<|fim_pad|>' fĂ©vr. 22 13:11:12 folzo-Corp ollama[4303]: print_info: EOG token = 151663 '<|repo_name|>' fĂ©vr. 22 13:11:12 folzo-Corp ollama[4303]: print_info: EOG token = 151664 '<|file_sep|>' fĂ©vr. 22 13:11:12 folzo-Corp ollama[4303]: print_info: max token length = 256 fĂ©vr. 22 13:11:12 folzo-Corp ollama[4303]: load_tensors: loading model tensors, this can take a while... (mmap = true) fĂ©vr. 22 13:11:12 folzo-Corp ollama[4303]: load_tensors: offloading 36 repeating layers to GPU fĂ©vr. 22 13:11:12 folzo-Corp ollama[4303]: load_tensors: offloading output layer to GPU fĂ©vr. 22 13:11:12 folzo-Corp ollama[4303]: load_tensors: offloaded 37/37 layers to GPU fĂ©vr. 22 13:11:12 folzo-Corp ollama[4303]: load_tensors: CPU_Mapped model buffer size = 243.43 MiB fĂ©vr. 22 13:11:12 folzo-Corp ollama[4303]: load_tensors: ROCm0 model buffer size = 1834.83 MiB fĂ©vr. 22 13:11:12 folzo-Corp ollama[4303]: llama_context: constructing llama_context fĂ©vr. 22 13:11:12 folzo-Corp ollama[4303]: llama_context: n_seq_max = 1 fĂ©vr. 22 13:11:12 folzo-Corp ollama[4303]: llama_context: n_ctx = 4096 fĂ©vr. 22 13:11:12 folzo-Corp ollama[4303]: llama_context: n_ctx_seq = 4096 fĂ©vr. 22 13:11:12 folzo-Corp ollama[4303]: llama_context: n_batch = 512 fĂ©vr. 22 13:11:12 folzo-Corp ollama[4303]: llama_context: n_ubatch = 512 fĂ©vr. 22 13:11:12 folzo-Corp ollama[4303]: llama_context: causal_attn = 1 fĂ©vr. 22 13:11:12 folzo-Corp ollama[4303]: llama_context: flash_attn = auto fĂ©vr. 22 13:11:12 folzo-Corp ollama[4303]: llama_context: kv_unified = false fĂ©vr. 22 13:11:12 folzo-Corp ollama[4303]: llama_context: freq_base = 1000000.0 fĂ©vr. 22 13:11:12 folzo-Corp ollama[4303]: llama_context: freq_scale = 1 fĂ©vr. 22 13:11:12 folzo-Corp ollama[4303]: llama_context: n_ctx_seq (4096) < n_ctx_train (32768) -- the full capacity of the model will not be utilized fĂ©vr. 22 13:11:12 folzo-Corp ollama[4303]: llama_context: ROCm_Host output buffer size = 0.59 MiB fĂ©vr. 22 13:11:12 folzo-Corp ollama[4303]: llama_kv_cache: ROCm0 KV buffer size = 144.00 MiB fĂ©vr. 22 13:11:12 folzo-Corp ollama[4303]: llama_kv_cache: size = 144.00 MiB ( 4096 cells, 36 layers, 1/1 seqs), K (f16): 72.00 MiB, V (f16): 72.00 MiB fĂ©vr. 22 13:11:12 folzo-Corp ollama[4303]: llama_context: Flash Attention was auto, set to enabled fĂ©vr. 22 13:11:12 folzo-Corp ollama[4303]: llama_context: ROCm0 compute buffer size = 300.75 MiB fĂ©vr. 22 13:11:12 folzo-Corp ollama[4303]: llama_context: ROCm_Host compute buffer size = 12.01 MiB fĂ©vr. 22 13:11:12 folzo-Corp ollama[4303]: llama_context: graph nodes = 1231 fĂ©vr. 22 13:11:12 folzo-Corp ollama[4303]: llama_context: graph splits = 2 fĂ©vr. 22 13:11:12 folzo-Corp ollama[4303]: time=2026-02-22T13:11:12.929+01:00 level=INFO source=server.go:1388 msg="llama runner started in 2.46 seconds" fĂ©vr. 22 13:11:12 folzo-Corp ollama[4303]: time=2026-02-22T13:11:12.929+01:00 level=INFO source=sched.go:537 msg="loaded runners" count=2 fĂ©vr. 22 13:11:12 folzo-Corp ollama[4303]: time=2026-02-22T13:11:12.929+01:00 level=INFO source=server.go:1350 msg="waiting for llama runner to start responding" fĂ©vr. 22 13:11:12 folzo-Corp ollama[4303]: time=2026-02-22T13:11:12.929+01:00 level=INFO source=server.go:1388 msg="llama runner started in 2.46 seconds" fĂ©vr. 22 13:11:12 folzo-Corp ollama[4303]: time=2026-02-22T13:11:12.960+01:00 level=WARN source=runner.go:153 msg="truncating input prompt" limit=4096 prompt=5856 keep=4 new=4096 fĂ©vr. 22 13:11:23 folzo-Corp ollama[4303]: [GIN] 2026/02/22 - 13:11:23 | 200 | 15.107434932s | 192.168.1.27 | POST "/v1/chat/completions" Toutes les 1,0s: rocm-smi --showpidgpus folzo-Corp: Sun Feb 22 13:11:39 2026 ============================ ROCm System Management Interface ============================ ================================== GPUs Indexed by PID =================================== PID 2330840 is using 1 DRM device(s): 0 PID 2331861 is using 1 DRM device(s): 0 PID 2278476 is using 1 DRM device(s): 0 ========================================================================================== ================================== End of ROCm SMI Log =================================== folzo@folzo-Corp:~\$ docker stats permission denied while trying to connect to the docker API at unix:///var/run/docker.sock folzo@folzo-Corp:~\$ Excellente capture ! Plusieurs infos importantes Ă  analyser. ## Ce que rĂ©vĂšlent les logs **Bonne nouvelle — `qwen2.5:3b` est bien chargĂ© :** ``` loaded runners count=2 ← 14b ET 3b en VRAM simultanĂ©ment ROCm0 model buffer size = 1834.83 MiB ← c'est le 3b ``` **ProblĂšme dĂ©tectĂ© — contexte tronquĂ© :** ``` truncating input prompt limit=4096 prompt=5856 ``` mem0 envoie **5856 tokens** au 3b qui n'a que 4096 de contexte — il tronque silencieusement. On corrigera ça. **3 PIDs GPU — il faut identifier lesquels :** ```bash for pid in 2330840 2331861 2278476; do echo "PID $pid: $(cat /proc/$pid/cmdline | tr '\0' ' ')" done ``` **Fix docker stats (manque sudo) :** ```bash sudo docker stats --no-stream ``` *** ## Action immĂ©diate — augmenter le contexte du 3b Le 3b a un contexte limitĂ© par dĂ©faut Ă  4096. Il faut crĂ©er un Modelfile custom : ```bash ollama show qwen2.5:3b --modelfile > /tmp/qwen3b.modelfile echo "PARAMETER num_ctx 8192" >> /tmp/qwen3b.modelfile ollama create qwen2.5:3b-mem0 -f /tmp/qwen3b.modelfile ``` Puis dans la config mem0, pointer vers `qwen2.5:3b-mem0` au lieu de `qwen2.5:3b`. Lance d'abord les deux commandes de diagnostic et montre-moi les rĂ©sultats — surtout les noms des PIDs GPU. --- # folzo@folzo-Corp:~\$ for pid in 2330840 2331861 2278476; do echo "PID \$pid: $(cat /proc/$pid/cmdline | tr '\\0' ' ')" done PID 2330840: /usr/local/bin/ollama runner --model /usr/share/ollama/.ollama/models/blobs/sha256-daec91ffb5dd0c27411bd71f29932917c49cf529a641d0168496c3a501e3062c --port 38881 PID 2331861: /usr/local/bin/ollama runner --model /usr/share/ollama/.ollama/models/blobs/sha256-5ee4f07cdb9beadbbb293e85803c569b01bd37ed059d2715faa7bb405f31caa6 --port 33289 PID 2278476: /home/ubuntu/speaches/.venv/bin/python .venv/bin/uvicorn speaches.main:create_app --host 0.0.0.0 --port 8000 --factory folzo@folzo-Corp:~\$ sudo docker stats --no-stream [sudo: authenticate] Password: CONTAINER ID NAME CPU % MEM USAGE / LIMIT MEM % NET I/O BLOCK I/O PIDS 3a5af44bc8bb speaches-stt 0.14% 2.701GiB / 30.25GiB 8.93% 1.62GB / 14.8MB 1.28GB / 3.3GB 73 36c0ce71710d openedai-speech 0.05% 3.124GiB / 30.25GiB 10.33% 439kB / 394kB 1.2GB / 1.2GB 48 folzo@folzo-Corp:~\$ TrĂšs bonne capture ! Je vois **3 problĂšmes clĂ©s**. ## Analyse des PIDs GPU ``` PID 2330840 → Ollama runner (modĂšle sha256-daec91...) ← 14b ou 3b ? PID 2331861 → Ollama runner (modĂšle sha256-5ee4f0...) ← 14b ou 3b ? PID 2278476 → speaches STT ← utilise le GPU malgrĂ© WHISPER__DEVICE=cpu ! ``` **ProblĂšme \#1 — speaches utilise quand mĂȘme le GPU.** MalgrĂ© `WHISPER__DEVICE=cpu`, les devices `/dev/kfd` et `/dev/dri` sont passĂ©s au conteneur, ROCm s'initialise quand mĂȘme et consomme de la VRAM. C'est lui qui maintient le GPU actif. **ProblĂšme \#2 — openedai-speech consomme 3.1 GB RAM** malgrĂ© le passage Ă  `tts-1` → les modĂšles XTTS sont probablement encore chargĂ©s en mĂ©moire. **ProblĂšme \#3 — deux runners Ollama actifs simultanĂ©ment** → 14b + 3b en VRAM en mĂȘme temps. *** ## Diagnostics immĂ©diats **Identifier les deux modĂšles Ollama chargĂ©s :** ```bash ollama ps ``` **Fix speaches — retirer les devices GPU si on reste en CPU :** ```bash nano ~/speaches/docker-compose.yml ``` Commenter les devices et group_add : ```yaml #devices: # - /dev/kfd # - /dev/dri #group_add: # - "44" # - "991" #security_opt: # - seccomp=unconfined ``` ```bash cd ~/speaches && docker compose up -d ``` Ça libĂ©rera immĂ©diatement la VRAM utilisĂ©e par speaches. Montre-moi d'abord `ollama ps` pour qu'on voit quels modĂšles sont actifs. --- # j'ai changĂ© qwen 2.5:3b par ministral pour la limitation de token et pour la rapiditĂ©, voici les resultats : folzo@folzo-Corp:~\$ ollama ps NAME ID SIZE PROCESSOR CONTEXT UNTIL qwen2.5:14b 7cdf5a0187d5 13 GB 20%/80% CPU/GPU 16690 4 minutes from now folzo@folzo-Corp:~\$ \#devices: # - /dev/kfd # - /dev/dri \#group_add: # - "44" # - "991" \#security_opt: # - seccomp=unconfined folzo@folzo-Corp:~\$ ollama ps NAME ID SIZE PROCESSOR CONTEXT UNTIL ministral-3:3b f04aa1c738f6 4.6 GB 100% GPU 4096 4 minutes from now bge-m3:latest 790764642607 1.2 GB 100% GPU 4096 4 minutes from now folzo@folzo-Corp:~\$ ollama ps Par contre ca tourne toujours longtemps apres les interaction avec effi. Mais concernant la voit c'est plus rapide par contre effi a une voix anglaise... Tu as dĂ©jĂ  fait deux excellents moves : **ministral-3:3b** pour la mĂ©moire et **Piper (`tts-1`)** pour le TTS. On voit maintenant clairement ce qui consomme le GPU : ```text ministral-3:3b → 4.6 GB VRAM (mĂ©moire / outils) bge-m3:latest → 1.2 GB VRAM (embeddings RAG) ``` Ces deux modĂšles restent chargĂ©s ~5 minutes aprĂšs chaque utilisation (`UNTIL 4 minutes from now`). C’est le comportement normal d’Ollama : il garde les modĂšles « chauds » pour accĂ©lĂ©rer les requĂȘtes suivantes. Mais si tu enchaĂźnes les interactions avec Effi, ils restent quasiment tout le temps en VRAM. ### Ce que tu peux faire tout de suite 1. **VĂ©rifier qui appelle quoi :** - `ministral-3:3b` peut ĂȘtre : - le modĂšle de mem0 (mĂ©moire), - un modĂšle d’outils dans Open WebUI (pipelines MCP), - ou un modĂšle de fallback pour le chat. - `bge-m3:latest` est appelĂ© par : - Open WebUI pour le RAG, - et/ou mem0 pour les embeddings. 2. **Voir la charge rĂ©elle GPU vs « juste chargĂ© »** Quand tu ne parles plus Ă  Effi, regarde : ```bash rocm-smi --showuse ``` Si l’occupation GPU est proche de 0% mais la VRAM reste haute, ce n’est pas un problĂšme de charge, juste de modĂšles en cache. Le 100% que tu vois dans le moniteur GNOME est souvent la **file d’attente GPU saturĂ©e** au moment des requĂȘtes, pas en permanence. *** ### Rendre Effi moins « anglophone » Piper (`tts-1`) utilise par dĂ©faut un modĂšle anglais, d’oĂč l’accent. On peut lui forcer une voix française. 1. Ouvre `~/openedai-speech/tts-config/config.yaml` (ou fichier similaire) sur folzo-Corp. 2. Cherche la section de la voix `alloy` (ou la voix par dĂ©faut) et bascule-la sur un modĂšle Piper français, par exemple un de ceux listĂ©s ici.[^14_1] Exemple de mapping (structure typique)  :[^14_2][^14_3] ```yaml voices: alloy: engine: piper model: fr_FR-upmc-medium # ou autre modĂšle fr_* installĂ© ``` 3. RedĂ©marre le conteneur : ```bash cd ~/openedai-speech && docker compose restart openedai-speech ``` Si tu veux, on peut faire Ă©tape par Ă©tape sur le fichier de config Piper : tu peux me coller le contenu de `tts-config` (ou un extrait anonymisĂ©), et je te dirai exactement quoi modifier pour une voix française propre.
⁂
[^14_1]: https://github.com/mdmonsurali/Offline-Fast-CPU-PIPER-TTS [^14_2]: https://github.com/matatonic/openedai-speech [^14_3]: https://git.robby.blue/ml/openedai-speech --- # quand je parle plus a effi : folzo@folzo-Corp:~\$ rocm-smi --showuse ============================ ROCm System Management Interface ============================ =================================== % time GPU is busy =================================== GPU[0] : GPU use (%): 100 ========================================================================================== ================================== End of ROCm SMI Log =================================== folzo@folzo-Corp:~\$ LĂ  on a deux choses diffĂ©rentes : 1. **VRAM occupĂ©e** (modĂšles chargĂ©s) → normal si `ollama ps` montre des modĂšles. 2. **`GPU use 100%` dans `rocm-smi` mĂȘme au repos** → ça ressemble Ă  un bug de monitoring / DPM, pas forcĂ©ment Ă  un calcul rĂ©el, surtout si la conso reste basse. Avant de tout chambouler, vĂ©rifions si le GPU travaille vraiment. *** ## 1. VĂ©rifier la conso rĂ©elle du GPU Lance : ```bash rocm-smi --showpower --showclk ``` Si tu vois un truc du genre : - **Power** autour de 20–40 W - FrĂ©quence mĂ©moire / core basse 
 alors le « 100% » est juste un compteur mal interprĂ©tĂ©, le GPU est en fait idle.[^15_1][^15_2] *** ## 2. Limiter le temps de cache des modĂšles Ollama Par dĂ©faut, Ollama garde les modĂšles jusqu’à **5 minutes** aprĂšs la derniĂšre requĂȘte. Tu peux rĂ©duire ce dĂ©lai globalement.[^15_3][^15_4] Édite le service systemd d’Ollama : ```bash sudo systemctl edit ollama ``` Ajoute : ```ini [Service] Environment="OLLAMA_KEEP_ALIVE=60" ``` Puis : ```bash sudo systemctl daemon-reload sudo systemctl restart ollama ``` Effet : tout modĂšle est dĂ©chargĂ© **60s aprĂšs la derniĂšre requĂȘte**. Tu peux mĂȘme mettre `OLLAMA_KEEP_ALIVE=0` si tu veux qu’il soit dĂ©chargĂ© tout de suite aprĂšs chaque rĂ©ponse (au prix d’un temps de premiĂšre token plus long).[^15_4][^15_3] *** ## 3. Pour forcer un dĂ©chargement immĂ©diat À la main, tu peux aussi Ă©jecter les modĂšles dĂšs que tu as fini ta session Effi : ```bash ollama stop ministral-3:3b ollama stop bge-m3:latest ``` *** Si tu m’indiques les valeurs de `rocm-smi --showpower --showclk`, je te dirai si ton GPU est rĂ©ellement en charge ou juste « marquĂ© Ă  100% » alors qu’il roupille. [^15_10][^15_5][^15_6][^15_7][^15_8][^15_9]
⁂
[^15_1]: https://community.amd.com/t5/gpu-developer-tools/rocm-smi-reports-low-power-usage/m-p/213365 [^15_2]: https://github.com/ROCm/ROCm/issues/504 [^15_3]: https://docs.ollama.com/faq [^15_4]: https://www.reddit.com/r/ollama/comments/1cnxnrv/how_to_set_keepalive_1_on_ollama_linux/ [^15_5]: https://www.reddit.com/r/ollama/comments/1fh040f/question_how_to_keep_ollama_from_unloading_model/ [^15_6]: https://github.com/ollama/ollama/issues/11085 [^15_7]: https://github.com/ollama/ollama/issues/5272 [^15_8]: https://github.com/ollama/ollama/issues/10597 [^15_9]: https://www.reddit.com/r/ollama/comments/1bt1bir/unload_model_from_memory/ [^15_10]: https://blog.csdn.net/gitblog_00488/article/details/151533510 --- # pour le probleme de voi c'est bien ce fichier que je dois modifier ? tts-1: some_other_voice_name_you_want: model: voices/choose your own model.onnx speaker: set your own speaker alloy: model: voices/en_US-libritts_r-medium.onnx speaker: 79 \# 64, 79, 80, 101, 130 echo: model: voices/en_US-libritts_r-medium.onnx speaker: 134 \# 52, 102, 134 echo-alt: model: voices/en_US-ryan-high.onnx speaker: \# default speaker fable: model: voices/en_GB-northern_english_male-medium.onnx speaker: \# default speaker onyx: model: voices/en_US-libritts_r-medium.onnx speaker: 159 \# 55, 90, 132, 136, 137, 159 nova: model: voices/en_US-libritts_r-medium.onnx speaker: 107 \# 57, 61, 107, 150, 162 shimmer: model: voices/en_US-libritts_r-medium.onnx speaker: 163 tts-1-hd: alloy-alt: model: xtts speaker: voices/alloy-alt.wav alloy: model: xtts speaker: voices/alloy.wav echo: model: xtts speaker: voices/echo.wav fable: model: xtts speaker: voices/fable.wav onyx: model: xtts speaker: voices/onyx.wav nova: model: xtts speaker: voices/nova.wav shimmer: model: xtts speaker: voices/shimmer.wav me: model: xtts_v2.0.2 \# you can specify an older xtts version speaker: voices/me.wav \# this could be you language: auto enable_text_splitting: True length_penalty: 1.0 repetition_penalty: 10 speed: 1.0 temperature: 0.75 top_k: 50 top_p: 0.85 comment: You can add a comment here also, which will be persistent and otherwise ignored.? Oui, c’est exactement **ce fichier** qu’il faut modifier. Actuellement, pour `tts-1` tu as uniquement des modĂšles anglais : ```yaml tts-1: alloy: model: voices/en_US-libritts_r-medium.onnx speaker: 79 # ... ``` Pour avoir une voix française, tu dois : 1. Mettre un modĂšle Piper français dans `voices/` (par ex. `fr_FR-upmc-medium.onnx` ou autre modĂšle `fr_*` que tu as tĂ©lĂ©chargĂ© ).[^16_1] 2. Pointer `alloy` dessus : ```yaml tts-1: alloy: model: voices/fr_FR-upmc-medium.onnx # ← modĂšle FR speaker: 0 # ou l’index de speaker adaptĂ© ``` Tu peux laisser le bloc `tts-1-hd` tel quel, il ne sera pas utilisĂ© tant que tu restes sur `tts-1` dans Open WebUI. AprĂšs modification : ```bash cd ~/openedai-speech docker compose restart openedai-speech ``` Ensuite, teste Effi : si la voix reste anglaise, envoie-moi la liste des fichiers dans `~/openedai-speech/tts-voices` pour qu’on choisisse un modĂšle FR prĂ©cis.
⁂
[^16_1]: https://github.com/mdmonsurali/Offline-Fast-CPU-PIPER-TTS --- # si je veux cette voix comment je peux faire ? La voix que tu montres est le modĂšle Piper **`fr_FR-upmc-medium`**, locutrice “jessica”. Pour l’utiliser avec `tts-1` : ### 1. TĂ©lĂ©charger le modĂšle ONNX Sur folzo-Corp, dans le dossier `openedai-speech` : ```bash cd ~/openedai-speech/tts-voices # adapte l’URL si besoin, mais le fichier doit s’appeler ainsi : wget https://github.com/rhasspy/piper/releases/download/v1.2.0/fr_FR-upmc-medium.onnx ``` (Le nom exact du fichier doit correspondre Ă  ce que tu mettras dans la config.) ### 2. Modifier la config `tts-1` Édite ton fichier de config (celui que tu as collĂ©) : ```bash nano ~/openedai-speech/tts-config/config.yaml # ou le nom Ă©quivalent ``` Remplace le bloc `tts-1` par : ```yaml tts-1: alloy: model: voices/fr_FR-upmc-medium.onnx speaker: 0 # Jessica (0), Pierre (1) selon le modĂšle ``` Tu peux laisser les autres voix telles quelles ou les supprimer, ce n’est pas obligatoire. ### 3. RedĂ©marrer openedai-speech ```bash cd ~/openedai-speech docker compose restart openedai-speech ``` Dans Open WebUI, laisse **TTS Model = `tts-1`** et voix **alloy**. Effi devrait maintenant parler avec la voix française `fr_FR-upmc-medium`. Si tu entends encore de l’anglais ou un mauvais speaker, on ajustera juste l’index `speaker` (0 ou 1). [^17_1]
⁂
[^17_1]: image.jpg --- # le lien que tu m'a donnĂ© nme marche plus. voici les derniers telechargement sur piper qui dattent de 2024 : [https://github.com/rhasspy/piper/releases/](https://github.com/rhasspy/piper/releases/) Parfait, on va le prendre directement Ă  la source Hugging Face. ### 1. TĂ©lĂ©charger les fichiers de la voix `fr_FR-upmc-medium` Sur **folzo-Corp** : ```bash cd ~/openedai-speech/tts-voices # ModĂšle wget https://huggingface.co/rhasspy/piper-voices/resolve/main/fr/fr_FR/upmc/medium/fr_FR-upmc-medium.onnx # Config JSON associĂ©e (souvent utilisĂ©e par Piper) wget https://huggingface.co/rhasspy/piper-voices/resolve/main/fr/fr_FR/upmc/medium/fr_FR-upmc-medium.onnx.json ``` Ces fichiers sont listĂ©s ici.[^18_1] ### 2. Configurer `tts-1` pour utiliser cette voix Édite ta config : ```bash nano ~/openedai-speech/tts-config/config.yaml ``` Et adapte la section `tts-1` comme ceci : ```yaml tts-1: alloy: model: voices/fr_FR-upmc-medium.onnx speaker: 0 # 0 = Jessica, 1 = Pierre (tu pourras changer si besoin) ``` Tu peux laisser les autres entrĂ©es, elles ne seront pas utilisĂ©es tant que tu choisis la voix **alloy** cĂŽtĂ© Open WebUI. ### 3. RedĂ©marrer le TTS ```bash cd ~/openedai-speech docker compose restart openedai-speech ``` Ensuite, dans Open WebUI : - TTS Engine : OpenAI - TTS Model : `tts-1` - Voice : `alloy` Teste une phrase française avec Effi. Si la voix ne te plaĂźt pas ou que tu tombes sur Pierre au lieu de Jessica, on ajustera juste `speaker: 1` au lieu de `0`. [^18_10][^18_2][^18_3][^18_4][^18_5][^18_6][^18_7][^18_8][^18_9]
⁂
[^18_1]: https://huggingface.co/rhasspy/piper-voices/tree/main/fr/fr_FR/upmc/medium [^18_2]: https://ftp.us2.freshrpms.net/linux/RPM/openmandriva/cooker/aarch64/main/release/piper-voice-fr_FR-upmc-2023.09.23-1.noarch.html [^18_3]: https://huggingface.co/rhasspy/piper-voices/blame/0c9c5d340496a47205a799eb046aab69334a88e9/fr/fr_FR/upmc/medium/MODEL_CARD [^18_4]: https://github.com/JohnnySn0w/piper-rocm [^18_5]: https://github.com/rhasspy/piper/releases [^18_6]: https://github.com/home-assistant/core/issues/105819 [^18_7]: https://github.com/rhasspy/piper/blob/master/README.md [^18_8]: https://github.com/rhasspy/piper [^18_9]: https://huggingface.co/rhasspy/piper-voices/blob/49a0d23f04e055f1766e5ad15ea2d121a90fa17a/fr/fr_FR/upmc/medium/fr_FR-upmc-medium.onnx.json [^18_10]: https://github.com/home-assistant/addons/issues/3411 --- # folzo@folzo-Corp:~/openedai-speech/tts-voices\$ cd ~/openedai-speech docker compose restart openedai-speech permission denied while trying to connect to the Docker daemon socket at unix:///var/run/docker.sock: Get "http://%2Fvar%2Frun%2Fdocker.sock/v1.51/containers/json?all=1\&filters=%7B%22label%22%3A%7B%22com.docker.compose.config-hash%22%3Atrue%2C%22com.docker.compose.oneoff%3DFalse%22%3Atrue%2C%22com.docker.compose.project%3Dopenedai-speech%22%3Atrue%7D%7D": dial unix /var/run/docker.sock: connect: permission denied folzo@folzo-Corp:~/openedai-speech\$ Il te manque juste les droits Docker, il faut ajouter `sudo`. Dans `~/openedai-speech` : ```bash cd ~/openedai-speech sudo docker compose restart openedai-speech ``` Entre ton mot de passe, attends que le conteneur redĂ©marre, puis teste Effi avec : - TTS Model = `tts-1` - Voice = `alloy` Si la voix n’est pas celle que tu veux (Jessica vs Pierre), dis-le et on ajustera juste la valeur `speaker` (0 ou 1) dans la config. --- # top pour la voix merci c'est vriament pas mal pour le moment. Maintenant concentron nous sur l'utilisation de la carte graphique : ============================ ROCm System Management Interface ============================ ================================== GPUs Indexed by PID =================================== PID 2278476 is using 1 DRM device(s): 0 PID 2526746 is using 1 DRM device(s): 0 ========================================================================================== ================================== End of ROCm SMI Log =================================== Parfait pour la voix, on revient sur le GPU. On voit encore **2 PIDs qui utilisent le GPU** : ```text PID 2278476 PID 2526746 ``` On veut savoir qui c’est exactement. ## 1. Identifier les processus GPU Sur **folzo-Corp** : ```bash for pid in 2278476 2526746; do echo "PID $pid: $(cat /proc/$pid/cmdline | tr '\0' ' ')" done ``` Colle-moi la sortie. On saura si c’est : - un **runner Ollama** (qwen/ministral/bge), - ou encore **speaches** qui tient le GPU. ## 2. VĂ©rifier la conso rĂ©elle En parallĂšle : ```bash rocm-smi --showuse --showpower --showclk ``` Ça nous dira si : - le GPU est vraiment Ă  fond (power Ă©levĂ©, frĂ©quences hautes), - ou juste marquĂ© Ă  100% avec une faible conso (bug de reporting). [^20_1]
⁂
[^20_1]: paste.txt --- # ca c'est juste apres la conversation folzo@folzo-Corp:~\$ rocm-smi --showpower --showclkfrq ============================ ROCm System Management Interface ============================ =================================== Power Consumption ==================================== GPU[0] : Average Graphics Package Power (W): 53.0 ========================================================================================== ============================== Supported clock frequencies =============================== GPU[0] : Supported dcefclk frequencies on GPU0 GPU[0] : 0: 145Mhz GPU[0] : 1: 1563Mhz * GPU[0] : GPU[0] : Supported fclk frequencies on GPU0 GPU[0] : 0: 601Mhz GPU[0] : 1: 1000Mhz GPU[0] : 2: 1200Mhz GPU[0] : 3: 1600Mhz GPU[0] : 4: 1801Mhz GPU[0] : 5: 1950Mhz GPU[0] : 6: 2201Mhz GPU[0] : 7: 2301Mhz * GPU[0] : GPU[0] : Supported mclk frequencies on GPU0 GPU[0] : 0: 96Mhz GPU[0] : 1: 456Mhz GPU[0] : 2: 772Mhz GPU[0] : 3: 1218Mhz * GPU[0] : GPU[0] : Supported sclk frequencies on GPU0 GPU[0] : 0: 500Mhz GPU[0] : 1: 43Mhz * GPU[0] : 2: 2124Mhz GPU[0] : GPU[0] : Supported socclk frequencies on GPU0 GPU[0] : 0: 300Mhz GPU[0] : 1: 1500Mhz * GPU[0] : GPU[0] : Supported PCIe frequencies on GPU0 GPU[0] : 0: 2.5GT/s x1 GPU[0] : 1: 5.0GT/s x4 GPU[0] : 2: 16.0GT/s x16 * GPU[0] : ------------------------------------------------------------------------------------------ ========================================================================================== ================================== End of ROCm SMI Log =================================== folzo@folzo-Corp:~\$ et ca c'est 1min apres la conversation : folzo@folzo-Corp:~\$ rocm-smi --showpower --showclkfrq ============================ ROCm System Management Interface ============================ =================================== Power Consumption ==================================== GPU[0] : Average Graphics Package Power (W): 93.0 ========================================================================================== ============================== Supported clock frequencies =============================== GPU[0] : Supported dcefclk frequencies on GPU0 GPU[0] : 0: 145Mhz GPU[0] : 1: 1563Mhz * GPU[0] : GPU[0] : Supported fclk frequencies on GPU0 GPU[0] : 0: 601Mhz GPU[0] : 1: 1000Mhz GPU[0] : 2: 1200Mhz GPU[0] : 3: 1600Mhz GPU[0] : 4: 1801Mhz GPU[0] : 5: 1950Mhz GPU[0] : 6: 2201Mhz GPU[0] : 7: 2301Mhz * GPU[0] : GPU[0] : Supported mclk frequencies on GPU0 GPU[0] : 0: 96Mhz GPU[0] : 1: 456Mhz GPU[0] : 2: 772Mhz GPU[0] : 3: 1218Mhz * GPU[0] : GPU[0] : Supported sclk frequencies on GPU0 GPU[0] : 0: 500Mhz GPU[0] : 1: 2734Mhz * GPU[0] : 2: 2124Mhz GPU[0] : GPU[0] : Supported socclk frequencies on GPU0 GPU[0] : 0: 300Mhz GPU[0] : 1: 1500Mhz * GPU[0] : GPU[0] : Supported PCIe frequencies on GPU0 GPU[0] : 0: 2.5GT/s x1 GPU[0] : 1: 5.0GT/s x4 GPU[0] : 2: 16.0GT/s x16 * GPU[0] : ------------------------------------------------------------------------------------------ ========================================================================================== ================================== End of ROCm SMI Log =================================== folzo@folzo-Corp:~\$ La conso Ă  **93 W** une minute aprĂšs la fin de la conversation montre que le GPU calcule encore sĂ©rieusement, pas juste un bug d’affichage. Il faut maintenant identifier **qui** le fait. ## 1. Identifier les process GPU actuels Tu avais ça : ```text PID 2278476 PID 2526746 ``` Lance Ă  nouveau : ```bash for pid in 2278476 2526746; do echo "PID $pid: $(cat /proc/$pid/cmdline | tr '\0' ' ')" done ``` Ça va nous dire si : - c’est un **runner Ollama** (ministral / bge / qwen), - ou encore **speaches** (STT), - ou autre chose. Colle-moi la sortie. *** ## 2. VĂ©rifier quels modĂšles Ollama sont actifs Juste aprĂšs une conversation avec Effi, lance : ```bash ollama ps ``` On doit voir si un modĂšle (par ex. `ministral-3:3b` ou `qwen2.5:14b`) reste en gĂ©nĂ©ration ou boucle. Colle aussi cette sortie, et on dĂ©cidera si on : - coupe un process fautif, - rĂ©duit `keep_alive`, - ou corrige un pipeline (mem0 / RAG) qui spamme le LLM. --- # folzo@folzo-Corp:~\$ for pid in 2278476 2526746; do echo "PID \$pid: $(cat /proc/$pid/cmdline | tr '\\0' ' ')" done PID 2278476: /home/ubuntu/speaches/.venv/bin/python .venv/bin/uvicorn speaches.main:create_app --host 0.0.0.0 --port 8000 --factory cat: /proc/2526746/cmdline: No such file or directory (os error 2) PID 2526746: folzo@folzo-Corp:~\$ ollama ps NAME ID SIZE PROCESSOR CONTEXT UNTIL bge-m3:latest 790764642607 1.2 GB 100% GPU 4096 2 minutes from now ministral-3:3b f04aa1c738f6 4.6 GB 100% GPU 4096 2 minutes from now folzo@folzo-Corp:~\$ On a enfin les coupables clairement identifiĂ©s : - **PID 2278476 = speaches (STT)** → tient le GPU inutilement. - **`ministral-3:3b` + `bge-m3:latest`** → modĂšles Ollama encore chauds (normal), mais ils ne devraient pas continuer Ă  consommer 90 W longtemps aprĂšs. On va rĂ©duire la consommation en 3 petits rĂ©glages. *** ## 1. Forcer speaches Ă  ne plus toucher le GPU Tu as dĂ©jĂ  commentĂ© les `devices` dans `~/speaches/docker-compose.yml`. VĂ©rifions qu’il n’est plus attachĂ© au GPU. 1. VĂ©rifier le docker-compose : ```bash cat ~/speaches/docker-compose.yml ``` Assure-toi que tu n’as bien **aucune** section `devices:` active dans `speaches:` (tout commentĂ© ou supprimĂ©). 2. RecrĂ©e le conteneur proprement : ```bash cd ~/speaches sudo docker compose down sudo docker compose up -d ``` 3. VĂ©rifie cĂŽtĂ© ROCm : ```bash rocm-smi --showpidgpus ``` PID `speaches` (python/uvicorn) ne doit plus apparaĂźtre. Si c’est bon, tu as supprimĂ© une source de charge GPU permanente. *** ## 2. RĂ©duire le temps de cache des modĂšles Ollama On veut que `bge-m3` (embeddings) et `ministral-3:3b` (mĂ©moire/outils) soient **dĂ©chargĂ©s** plus vite quand Effi est idle. 1. CrĂ©e un override systemd pour Ollama : ```bash sudo systemctl edit ollama ``` Ajoute : ```ini [Service] Environment="OLLAMA_KEEP_ALIVE=60" ``` 2. Recharge et redĂ©marre Ollama : ```bash sudo systemctl daemon-reload sudo systemctl restart ollama ``` RĂ©sultat : chaque modĂšle est dĂ©chargĂ© **60 secondes** aprĂšs la derniĂšre requĂȘte au lieu de rester plusieurs minutes. Si tu veux plus agressif, tu pourras descendre Ă  `OLLAMA_KEEP_ALIVE=10`.[^22_1][^22_2] *** ## 3. Forcer le calme aprĂšs une session Effi En attendant de voir l’effet de `KEEP_ALIVE`, tu peux explicitement vider la VRAM juste aprĂšs un long Ă©change vocal : ```bash ollama stop ministral-3:3b ollama stop bge-m3:latest ``` Puis vĂ©rifier : ```bash ollama ps # doit ĂȘtre vide rocm-smi --showpower --showuse ``` Tu devrais voir la puissance retomber autour de 20–30 W et `GPU use` proche de 0% aprĂšs quelques secondes. *** Quand tu auras : 1) vĂ©rifiĂ© que `speaches` n’apparaĂźt plus dans `rocm-smi --showpidgpus`, 2) mis `OLLAMA_KEEP_ALIVE=60` et redĂ©marrĂ© Ollama, on pourra refaire un test complet (conversation Effi → attendre 1–2 minutes → `rocm-smi --showpower --showpidgpus`) pour confirmer que le GPU se calme enfin comme prĂ©vu.
⁂
[^22_1]: https://docs.ollama.com/faq [^22_2]: https://www.reddit.com/r/ollama/comments/1cnxnrv/how_to_set_keepalive_1_on_ollama_linux/ --- # folzo@folzo-Corp:~\$ cat ~/speaches/docker-compose.yml 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=int8 - WHISPER__DEVICE=cpu 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: folzo@folzo-Corp:~\$ Je n'ai pas envi de reduire le temps des models ollama, je veux garder en fluiditĂ© lors des echanges ecrit avec effi, ca ne me derange que les modeles restent chargĂ© en memoire, quand ils sont pas utilisĂ© ils utilise pas de gpu. par contre la le gpu reste utilisĂ© a 100% longtemps apres les echange ce que je ne comprenais pas Parfait, on va garder la fluiditĂ© cĂŽtĂ© Ollama et juste **Ă©teindre la source de charge permanente : speaches sur GPU**. Actuellement ton docker-compose attache encore le GPU : ```yaml devices: - /dev/kfd - /dev/dri group_add: - "44" - "991" security_opt: - seccomp=unconfined ``` MĂȘme avec `WHISPER__DEVICE=cpu`, la prĂ©sence de `/dev/kfd` fait que ROCm initialise la carte et la garde active, d’oĂč la conso Ă©levĂ©e. ## 1. DĂ©sactiver complĂštement le GPU pour speaches Édite le fichier : ```bash nano ~/speaches/docker-compose.yml ``` Remplace la partie `speaches` par : ```yaml speaches: image: speaches:rocm-ct2 container_name: speaches-stt restart: unless-stopped ports: - "8200:8000" # AUCUN accĂšs GPU ici environment: - HSA_OVERRIDE_GFX_VERSION=11.0.0 - WHISPER__MODEL=deepdml/faster-whisper-large-v3-turbo-ct2 - WHISPER__LANGUAGE=fr - WHISPER__COMPUTE_TYPE=int8 - WHISPER__DEVICE=cpu volumes: - speaches-models:/root/.cache/huggingface ``` Donc tu supprimes complĂštement : - `devices:` - `group_add:` - `security_opt:` Puis : ```bash cd ~/speaches sudo docker compose down sudo docker compose up -d ``` ## 2. VĂ©rifier que le GPU est enfin au repos aprĂšs STT 1–2 minutes aprĂšs une conversation Effi : ```bash rocm-smi --showpidgpus rocm-smi --showpower --showuse ``` Tu devrais voir : - plus aucun PID `python ... speaches` dans `--showpidgpus`, - **power** qui redescend, et `GPU use` proche de 0% lorsque tu ne parles pas. Les modĂšles Ollama (`ministral-3:3b`, `bge-m3`) resteront chargĂ©s en VRAM pour la fluiditĂ©, mais ne consommeront presque rien tant qu’il n’y a pas de requĂȘtes, ce qui correspond exactement Ă  ce que tu veux.[^23_1]
⁂
[^23_1]: https://docs.ollama.com/faq --- # folzo@folzo-Corp:~\$ nano ~/speaches/docker-compose.yml folzo@folzo-Corp:~\$ cd ~/speaches sudo docker compose down sudo docker compose up -d [sudo: authenticate] Password: [+] down 3/3 ✔ Container speaches-init Removed 0.1s ✔ Container speaches-stt Removed 1.4s ✔ Network speaches_default Removed 0.1s [+] up 3/3 ✔ Network speaches_default Created 0.0s ✔ Container speaches-stt Created 0.1s ✔ Container speaches-init Created 0.1s folzo@folzo-Corp:~/speaches\$ normalement c'est bon ? Oui, le redĂ©ploiement est OK. VĂ©rifions que le GPU est enfin tranquille quand tu ne parles pas. Sur **folzo-Corp**, sans interaction avec Effi pendant 30–60s : ```bash rocm-smi --showpidgpus rocm-smi --showpower --showuse ``` Tu devrais voir : - plus **aucun PID python/uvicorn speaches** dans `--showpidgpus`, - une **puissance bien plus basse** (idĂ©alement <40–50 W) et un `GPU use` qui retombe vers 0% quand tu es idle. Si c’est le cas, on a rĂ©glĂ© la cause principale : speaches ne garde plus la 7800 XT en charge permanente, les modĂšles Ollama restent en VRAM pour la fluiditĂ© mais ne consomment presque rien en dehors des requĂȘtes. --- # j'a iune erreur je dois configurer quelque chose dans openwebui ? L’erreur vient de **speaches** (STT) qui renvoie un 500 sur `/v1/audio/transcriptions`, pas d’Open WebUI. On vient de modifier le conteneur (plus de GPU), donc il y a probablement une stacktrace cĂŽtĂ© logs. Sur **folzo-Corp** : ```bash docker logs -f speaches-stt ``` Refais un test vocal dans Effi et regarde ce qui s’affiche au moment de l’erreur (les 10–20 derniĂšres lignes). Colle-moi ce bloc de logs, on va voir si : - le modĂšle `deepdml/faster-whisper-large-v3-turbo-ct2` se charge bien en CPU, - ou si speaches s’attend Ă  un provider GPU et plante sans `/dev/kfd`. [^25_1]
⁂
[^25_1]: image.jpg --- # folzo@folzo-Corp:~/speaches\$ sudo docker logs -f speaches-stt 2026-02-22 13:05:13,331:DEBUG:speaches.main:create_app:102:Config: stt_model_ttl=300 tts_model_ttl=300 vad_model_ttl=-1 api_key=None log_level='debug' host='0.0.0.0' port=8000 allow_origins=None enable_ui=True whisper=WhisperConfig(inference_device='auto', device_index=0, compute_type='int8', cpu_threads=0, num_workers=1) loopback_host_url=None chat_completion_base_url='http://localhost:11434/v1' chat_completion_api_key=SecretStr('**********') unstable_ort_opts=OrtOptions(exclude_providers=['TensorrtExecutionProvider'], provider_priority={'CUDAExecutionProvider': 100}, provider_opts={}) otel_exporter_otlp_endpoint=None otel_service_name='speaches' preload_models=[] 2026-02-22 13:05:14,290:DEBUG:urllib3.connectionpool:_new_conn:1051:Starting new HTTPS connection (1): huggingface.co:443 2026-02-22 13:05:14,321:DEBUG:urllib3.connectionpool:_new_conn:1051:Starting new HTTPS connection (1): huggingface.co:443 2026-02-22 13:05:14,537:DEBUG:urllib3.connectionpool:_make_request:546:https://huggingface.co:443 "HEAD /api/telemetry/https%3A/api.gradio.app/gradio-initiated-analytics HTTP/11" 200 0 2026-02-22 13:05:14,547:DEBUG:urllib3.connectionpool:_make_request:546:https://huggingface.co:443 "HEAD /api/telemetry/https%3A/api.gradio.app/gradio-initiated-analytics HTTP/11" 200 0 new 2026-02-22 13:05:14,571:INFO:speaches.main:create_app:202: To view the gradio web ui of speaches open your browser and visit: http://localhost:8000/ INFO: Started server process [1] INFO: Waiting for application startup. INFO: Application startup complete. INFO: Uvicorn running on [http://0.0.0.0:8000](http://0.0.0.0:8000) (Press CTRL+C to quit) 2026-02-22 13:05:15,016:INFO:httpx:_send_single_request:1025:HTTP Request: GET [https://api.gradio.app/pkg-version](https://api.gradio.app/pkg-version) "HTTP/1.1 200 OK" 2026-02-22 13:05:15,016:INFO:httpx:_send_single_request:1025:HTTP Request: GET [https://api.gradio.app/pkg-version](https://api.gradio.app/pkg-version) "HTTP/1.1 200 OK" 2026-02-22 13:05:15,063:INFO:httpx:_send_single_request:1025:HTTP Request: GET [https://api.gradio.app/pkg-version](https://api.gradio.app/pkg-version) "HTTP/1.1 200 OK" 2026-02-22 13:05:15,063:INFO:httpx:_send_single_request:1025:HTTP Request: GET [https://api.gradio.app/pkg-version](https://api.gradio.app/pkg-version) "HTTP/1.1 200 OK" 2026-02-22 13:05:15,854:DEBUG:urllib3.connectionpool:_new_conn:1051:Starting new HTTPS connection (1): huggingface.co:443 2026-02-22 13:05:16,031:DEBUG:urllib3.connectionpool:_make_request:546:https://huggingface.co:443 "GET /api/models?filter=ctranslate2\&filter=automatic-speech-recognition\&cardData=True HTTP/11" 200 244215 2026-02-22 13:05:16,083:WARNING:huggingface_hub.repocard_data:__init__:368:Invalid model-index. Not loading eval results into CardData. Invalid model-index. Not loading eval results into CardData. 2026-02-22 13:05:16,228:DEBUG:urllib3.connectionpool:_make_request:546:https://huggingface.co:443 "GET /api/models/deepdml/faster-whisper-large-v3-turbo-ct2/revision/main HTTP/11" 200 2873 Fetching 6 files: 100%|██████████| 6/6 [00:00<00:00, 67108.86it/s] INFO: 172.18.0.3:42604 - "POST /v1/models/deepdml/faster-whisper-large-v3-turbo-ct2 HTTP/1.1" 200 OK 2026-02-22 13:06:38,231:DEBUG:speaches.dependencies:audio_file_dependency:89:Decoding audio file: f876c35d-0a33-43d9-a9f8-d5c35ba83fa4.mp3, content_type: None, header: Headers({'content-disposition': 'form-data; name="file"; filename="f876c35d-0a33-43d9-a9f8-d5c35ba83fa4.mp3"'}), size: 39405 2026-02-22 13:06:38,316:DEBUG:speaches.dependencies:audio_file_dependency:103:Decoded 4.86s of audio in 0.08465s (RTF: 0.01741720123301306) 2026-02-22 13:06:38,316:DEBUG:asyncio:__init__:64:Using selector: EpollSelector 2026-02-22 13:06:38,320:DEBUG:speaches.executors.shared.base_model_manager:_load:72:Loading model silero_vad_v5 2026-02-22 13:06:38,321:DEBUG:speaches.executors.shared.base_model_manager:get_ort_providers_with_options:23:Available ONNX Runtime providers: ['TensorrtExecutionProvider', 'CUDAExecutionProvider', 'CPUExecutionProvider'] 2026-02-22 13:06:38,321:DEBUG:speaches.executors.shared.base_model_manager:get_ort_providers_with_options:33:Using ONNX Runtime providers: [('CUDAExecutionProvider', {}), ('CPUExecutionProvider', {})] 2026-02-22 13:06:38.323054163 [E:onnxruntime:Default, provider_bridge_ort.cc:2195 TryGetProviderInfo_CUDA] /onnxruntime_src/onnxruntime/core/session/provider_bridge_ort.cc:1778 onnxruntime::Provider\& onnxruntime::ProviderLibrary::Get() [ONNXRuntimeError] : 1 : FAIL : Failed to load library libonnxruntime_providers_cuda.so with error: libcublasLt.so.12: cannot open shared object file: No such file or directory 2026-02-22 13:06:38.323066733 [W:onnxruntime:Default, onnxruntime_pybind_state.cc:1055 CreateExecutionProviderInstance] Failed to create CUDAExecutionProvider. Require cuDNN 9.* and CUDA 12.*. Please install all dependencies as mentioned in the GPU requirements page (https://onnxruntime.ai/docs/execution-providers/CUDA-ExecutionProvider.html\#requirements), make sure they're in the PATH, and that your GPU is supported. 2026-02-22 13:06:38.328087859 [E:onnxruntime:Default, provider_bridge_ort.cc:2195 TryGetProviderInfo_CUDA] /onnxruntime_src/onnxruntime/core/session/provider_bridge_ort.cc:1778 onnxruntime::Provider\& onnxruntime::ProviderLibrary::Get() [ONNXRuntimeError] : 1 : FAIL : Failed to load library libonnxruntime_providers_cuda.so with error: libcublasLt.so.12: cannot open shared object file: No such file or directory 2026-02-22 13:06:38.328097539 [W:onnxruntime:Default, onnxruntime_pybind_state.cc:1055 CreateExecutionProviderInstance] Failed to create CUDAExecutionProvider. Require cuDNN 9.* and CUDA 12.*. Please install all dependencies as mentioned in the GPU requirements page (https://onnxruntime.ai/docs/execution-providers/CUDA-ExecutionProvider.html\#requirements), make sure they're in the PATH, and that your GPU is supported. 2026-02-22 13:06:38,329:INFO:speaches.executors.shared.base_model_manager:_load:75:Model silero_vad_v5 loaded in 0.01s 2026-02-22 13:06:38,329:DEBUG:speaches.executors.shared.base_model_manager:_increment_ref:83:Incremented ref count for silero_vad_v5, self.ref_count=1 2026-02-22 13:06:38,346:DEBUG:speaches.executors.silero_vad_v5:__call__:138:VAD model inference took 0.0167s 2026-02-22 13:06:38,346:DEBUG:speaches.executors.shared.base_model_manager:_decrement_ref:88:Decremented ref count for silero_vad_v5, self.ref_count=0 2026-02-22 13:06:38,346:INFO:speaches.executors.shared.base_model_manager:_decrement_ref:98:Model silero_vad_v5 is idle, not unloading 2026-02-22 13:06:38,346:DEBUG:speaches.executors.silero_vad_v5:get_speech_timestamps:307:VAD processing took 0.0260s for 4.86s audio 2026-02-22 13:06:38,347:DEBUG:speaches.executors.shared.base_model_manager:_load:72:Loading model deepdml/faster-whisper-large-v3-turbo-ct2 2026-02-22 13:06:38,461:DEBUG:urllib3.connectionpool:_make_request:546:https://huggingface.co:443 "GET /api/models/deepdml/faster-whisper-large-v3-turbo-ct2/revision/main HTTP/11" 200 2873 INFO: 192.168.1.27:51524 - "POST /v1/audio/transcriptions HTTP/1.1" 500 Internal Server Error ERROR: Exception in ASGI application Traceback (most recent call last): File "/home/ubuntu/speaches/.venv/lib/python3.12/site-packages/uvicorn/protocols/http/h11_impl.py", line 403, in run_asgi result = await app( \# type: ignore[func-returns-value] ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/home/ubuntu/speaches/.venv/lib/python3.12/site-packages/uvicorn/middleware/proxy_headers.py", line 60, in __call__ return await self.app(scope, receive, send) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/home/ubuntu/speaches/.venv/lib/python3.12/site-packages/fastapi/applications.py", line 1134, in __call__ await super().__call__(scope, receive, send) File "/home/ubuntu/speaches/.venv/lib/python3.12/site-packages/starlette/applications.py", line 113, in __call__ await self.middleware_stack(scope, receive, send) File "/home/ubuntu/speaches/.venv/lib/python3.12/site-packages/starlette/middleware/errors.py", line 187, in __call__ raise exc File "/home/ubuntu/speaches/.venv/lib/python3.12/site-packages/starlette/middleware/errors.py", line 165, in __call__ await self.app(scope, receive, _send) File "/home/ubuntu/speaches/.venv/lib/python3.12/site-packages/starlette/middleware/exceptions.py", line 62, in __call__ await wrap_app_handling_exceptions(self.app, conn)(scope, receive, send) File "/home/ubuntu/speaches/.venv/lib/python3.12/site-packages/starlette/_exception_handler.py", line 53, in wrapped_app raise exc File "/home/ubuntu/speaches/.venv/lib/python3.12/site-packages/starlette/_exception_handler.py", line 42, in wrapped_app await app(scope, receive, sender) File "/home/ubuntu/speaches/.venv/lib/python3.12/site-packages/fastapi/middleware/asyncexitstack.py", line 18, in __call__ await self.app(scope, receive, send) File "/home/ubuntu/speaches/.venv/lib/python3.12/site-packages/starlette/routing.py", line 715, in __call__ await self.middleware_stack(scope, receive, send) File "/home/ubuntu/speaches/.venv/lib/python3.12/site-packages/starlette/routing.py", line 735, in app await route.handle(scope, receive, send) File "/home/ubuntu/speaches/.venv/lib/python3.12/site-packages/starlette/routing.py", line 288, in handle await self.app(scope, receive, send) File "/home/ubuntu/speaches/.venv/lib/python3.12/site-packages/fastapi/routing.py", line 125, in app await wrap_app_handling_exceptions(app, request)(scope, receive, send) File "/home/ubuntu/speaches/.venv/lib/python3.12/site-packages/starlette/_exception_handler.py", line 53, in wrapped_app raise exc File "/home/ubuntu/speaches/.venv/lib/python3.12/site-packages/starlette/_exception_handler.py", line 42, in wrapped_app await app(scope, receive, sender) File "/home/ubuntu/speaches/.venv/lib/python3.12/site-packages/fastapi/routing.py", line 111, in app response = await f(request) ^^^^^^^^^^^^^^^^ File "/home/ubuntu/speaches/.venv/lib/python3.12/site-packages/fastapi/routing.py", line 391, in app raw_response = await run_endpoint_function( ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/home/ubuntu/speaches/.venv/lib/python3.12/site-packages/fastapi/routing.py", line 292, in run_endpoint_function return await run_in_threadpool(dependant.call, **values) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/home/ubuntu/speaches/.venv/lib/python3.12/site-packages/starlette/concurrency.py", line 39, in run_in_threadpool return await anyio.to_thread.run_sync(func, *args) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/home/ubuntu/speaches/.venv/lib/python3.12/site-packages/anyio/to_thread.py", line 56, in run_sync return await get_async_backend().run_sync_in_worker_thread( ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/home/ubuntu/speaches/.venv/lib/python3.12/site-packages/anyio/_backends/_asyncio.py", line 2470, in run_sync_in_worker_thread return await future ^^^^^^^^^^^^ File "/home/ubuntu/speaches/.venv/lib/python3.12/site-packages/anyio/_backends/_asyncio.py", line 967, in run result = context.run(func, *args) ^^^^^^^^^^^^^^^^^^^^^^^^ File "/home/ubuntu/speaches/.venv/lib/python3.12/site-packages/speaches/routers/stt.py", line 171, in transcribe_file res = transcription_executor.model_manager.handle_transcription_request(transcription_request) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/home/ubuntu/speaches/.venv/lib/python3.12/site-packages/speaches/executors/whisper.py", line 231, in handle_transcription_request return self.handle_non_streaming_transcription_request(request, **kwargs) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/home/ubuntu/speaches/.venv/lib/python3.12/site-packages/speaches/tracing.py", line 31, in wrapper return func(*args, **kwargs) ^^^^^^^^^^^^^^^^^^^^^ File "/home/ubuntu/speaches/.venv/lib/python3.12/site-packages/speaches/executors/whisper.py", line 154, in handle_non_streaming_transcription_request with self.load_model(request.model) as whisper: File "/home/ubuntu/speaches/.venv/lib/python3.12/site-packages/speaches/executors/shared/base_model_manager.py", line 103, in __enter__ self._load() File "/home/ubuntu/speaches/.venv/lib/python3.12/site-packages/speaches/executors/shared/base_model_manager.py", line 74, in _load self.model = self.load_fn() ^^^^^^^^^^^^^^ File "/home/ubuntu/speaches/.venv/lib/python3.12/site-packages/speaches/executors/shared/base_model_manager.py", line 142, in load_fn=lambda: self._load_fn(model_id), ^^^^^^^^^^^^^^^^^^^^^^^ File "/home/ubuntu/speaches/.venv/lib/python3.12/site-packages/speaches/executors/whisper.py", line 134, in _load_fn return WhisperModel( ^^^^^^^^^^^^^ File "/home/ubuntu/speaches/.venv/lib/python3.12/site-packages/faster_whisper/transcribe.py", line 647, in __init__ self.model = ctranslate2.models.Whisper( ^^^^^^^^^^^^^^^^^^^^^^^^^^^ ValueError: Requested int8 compute type, but the target device or backend do not support efficient int8 computation. 2026-02-22 13:06:39,503:DEBUG:speaches.dependencies:audio_file_dependency:89:Decoding audio file: f876c35d-0a33-43d9-a9f8-d5c35ba83fa4.mp3, content_type: None, header: Headers({'content-disposition': 'form-data; name="file"; filename="f876c35d-0a33-43d9-a9f8-d5c35ba83fa4.mp3"'}), size: 39405 2026-02-22 13:06:39,579:DEBUG:speaches.dependencies:audio_file_dependency:103:Decoded 4.86s of audio in 0.07575s (RTF: 0.01558649218104657) 2026-02-22 13:06:39,579:DEBUG:asyncio:__init__:64:Using selector: EpollSelector 2026-02-22 13:06:39,583:DEBUG:speaches.executors.shared.base_model_manager:load_model:138:silero_vad_v5 model already loaded 2026-02-22 13:06:39,583:DEBUG:speaches.executors.shared.base_model_manager:_increment_ref:83:Incremented ref count for silero_vad_v5, self.ref_count=1 2026-02-22 13:06:39,592:DEBUG:speaches.executors.silero_vad_v5:__call__:138:VAD model inference took 0.0097s 2026-02-22 13:06:39,593:DEBUG:speaches.executors.shared.base_model_manager:_decrement_ref:88:Decremented ref count for silero_vad_v5, self.ref_count=0 2026-02-22 13:06:39,593:INFO:speaches.executors.shared.base_model_manager:_decrement_ref:98:Model silero_vad_v5 is idle, not unloading 2026-02-22 13:06:39,593:DEBUG:speaches.executors.silero_vad_v5:get_speech_timestamps:307:VAD processing took 0.0104s for 4.86s audio 2026-02-22 13:06:39,593:DEBUG:speaches.executors.shared.base_model_manager:load_model:138:deepdml/faster-whisper-large-v3-turbo-ct2 model already loaded 2026-02-22 13:06:39,593:DEBUG:speaches.executors.shared.base_model_manager:_load:72:Loading model deepdml/faster-whisper-large-v3-turbo-ct2 2026-02-22 13:06:39,700:DEBUG:urllib3.connectionpool:_make_request:546:https://huggingface.co:443 "GET /api/models/deepdml/faster-whisper-large-v3-turbo-ct2/revision/main HTTP/11" 200 2873 INFO: 192.168.1.27:51540 - "POST /v1/audio/transcriptions HTTP/1.1" 500 Internal Server Error ERROR: Exception in ASGI application Traceback (most recent call last): File "/home/ubuntu/speaches/.venv/lib/python3.12/site-packages/uvicorn/protocols/http/h11_impl.py", line 403, in run_asgi result = await app( \# type: ignore[func-returns-value] ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/home/ubuntu/speaches/.venv/lib/python3.12/site-packages/uvicorn/middleware/proxy_headers.py", line 60, in __call__ return await self.app(scope, receive, send) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/home/ubuntu/speaches/.venv/lib/python3.12/site-packages/fastapi/applications.py", line 1134, in __call__ await super().__call__(scope, receive, send) File "/home/ubuntu/speaches/.venv/lib/python3.12/site-packages/starlette/applications.py", line 113, in __call__ await self.middleware_stack(scope, receive, send) File "/home/ubuntu/speaches/.venv/lib/python3.12/site-packages/starlette/middleware/errors.py", line 187, in __call__ raise exc File "/home/ubuntu/speaches/.venv/lib/python3.12/site-packages/starlette/middleware/errors.py", line 165, in __call__ await self.app(scope, receive, _send) File "/home/ubuntu/speaches/.venv/lib/python3.12/site-packages/starlette/middleware/exceptions.py", line 62, in __call__ await wrap_app_handling_exceptions(self.app, conn)(scope, receive, send) File "/home/ubuntu/speaches/.venv/lib/python3.12/site-packages/starlette/_exception_handler.py", line 53, in wrapped_app raise exc File "/home/ubuntu/speaches/.venv/lib/python3.12/site-packages/starlette/_exception_handler.py", line 42, in wrapped_app await app(scope, receive, sender) File "/home/ubuntu/speaches/.venv/lib/python3.12/site-packages/fastapi/middleware/asyncexitstack.py", line 18, in __call__ await self.app(scope, receive, send) File "/home/ubuntu/speaches/.venv/lib/python3.12/site-packages/starlette/routing.py", line 715, in __call__ await self.middleware_stack(scope, receive, send) File "/home/ubuntu/speaches/.venv/lib/python3.12/site-packages/starlette/routing.py", line 735, in app await route.handle(scope, receive, send) File "/home/ubuntu/speaches/.venv/lib/python3.12/site-packages/starlette/routing.py", line 288, in handle await self.app(scope, receive, send) File "/home/ubuntu/speaches/.venv/lib/python3.12/site-packages/fastapi/routing.py", line 125, in app await wrap_app_handling_exceptions(app, request)(scope, receive, send) File "/home/ubuntu/speaches/.venv/lib/python3.12/site-packages/starlette/_exception_handler.py", line 53, in wrapped_app raise exc File "/home/ubuntu/speaches/.venv/lib/python3.12/site-packages/starlette/_exception_handler.py", line 42, in wrapped_app await app(scope, receive, sender) File "/home/ubuntu/speaches/.venv/lib/python3.12/site-packages/fastapi/routing.py", line 111, in app response = await f(request) ^^^^^^^^^^^^^^^^ File "/home/ubuntu/speaches/.venv/lib/python3.12/site-packages/fastapi/routing.py", line 391, in app raw_response = await run_endpoint_function( ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/home/ubuntu/speaches/.venv/lib/python3.12/site-packages/fastapi/routing.py", line 292, in run_endpoint_function return await run_in_threadpool(dependant.call, **values) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/home/ubuntu/speaches/.venv/lib/python3.12/site-packages/starlette/concurrency.py", line 39, in run_in_threadpool return await anyio.to_thread.run_sync(func, *args) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/home/ubuntu/speaches/.venv/lib/python3.12/site-packages/anyio/to_thread.py", line 56, in run_sync return await get_async_backend().run_sync_in_worker_thread( ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/home/ubuntu/speaches/.venv/lib/python3.12/site-packages/anyio/_backends/_asyncio.py", line 2470, in run_sync_in_worker_thread return await future ^^^^^^^^^^^^ File "/home/ubuntu/speaches/.venv/lib/python3.12/site-packages/anyio/_backends/_asyncio.py", line 967, in run result = context.run(func, *args) ^^^^^^^^^^^^^^^^^^^^^^^^ File "/home/ubuntu/speaches/.venv/lib/python3.12/site-packages/speaches/routers/stt.py", line 171, in transcribe_file res = transcription_executor.model_manager.handle_transcription_request(transcription_request) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/home/ubuntu/speaches/.venv/lib/python3.12/site-packages/speaches/executors/whisper.py", line 231, in handle_transcription_request return self.handle_non_streaming_transcription_request(request, **kwargs) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/home/ubuntu/speaches/.venv/lib/python3.12/site-packages/speaches/tracing.py", line 31, in wrapper return func(*args, **kwargs) ^^^^^^^^^^^^^^^^^^^^^ File "/home/ubuntu/speaches/.venv/lib/python3.12/site-packages/speaches/executors/whisper.py", line 154, in handle_non_streaming_transcription_request with self.load_model(request.model) as whisper: File "/home/ubuntu/speaches/.venv/lib/python3.12/site-packages/speaches/executors/shared/base_model_manager.py", line 103, in __enter__ self._load() File "/home/ubuntu/speaches/.venv/lib/python3.12/site-packages/speaches/executors/shared/base_model_manager.py", line 74, in _load self.model = self.load_fn() ^^^^^^^^^^^^^^ File "/home/ubuntu/speaches/.venv/lib/python3.12/site-packages/speaches/executors/shared/base_model_manager.py", line 142, in load_fn=lambda: self._load_fn(model_id), ^^^^^^^^^^^^^^^^^^^^^^^ File "/home/ubuntu/speaches/.venv/lib/python3.12/site-packages/speaches/executors/whisper.py", line 134, in _load_fn return WhisperModel( ^^^^^^^^^^^^^ File "/home/ubuntu/speaches/.venv/lib/python3.12/site-packages/faster_whisper/transcribe.py", line 647, in __init__ self.model = ctranslate2.models.Whisper( ^^^^^^^^^^^^^^^^^^^^^^^^^^^ ValueError: Requested int8 compute type, but the target device or backend do not support efficient int8 computation. 2026-02-22 13:08:09,485:DEBUG:speaches.dependencies:audio_file_dependency:89:Decoding audio file: 4e0c529c-2fa4-4183-b569-b3379565bfe4.mp3, content_type: None, header: Headers({'content-disposition': 'form-data; name="file"; filename="4e0c529c-2fa4-4183-b569-b3379565bfe4.mp3"'}), size: 34029 2026-02-22 13:08:09,585:DEBUG:speaches.dependencies:audio_file_dependency:103:Decoded 4.2s of audio in 0.09908s (RTF: 0.023590347381763247) 2026-02-22 13:08:09,585:DEBUG:asyncio:__init__:64:Using selector: EpollSelector 2026-02-22 13:08:09,588:DEBUG:speaches.executors.shared.base_model_manager:load_model:138:silero_vad_v5 model already loaded 2026-02-22 13:08:09,588:DEBUG:speaches.executors.shared.base_model_manager:_increment_ref:83:Incremented ref count for silero_vad_v5, self.ref_count=1 2026-02-22 13:08:09,595:DEBUG:speaches.executors.silero_vad_v5:__call__:138:VAD model inference took 0.0066s 2026-02-22 13:08:09,660:DEBUG:speaches.executors.shared.base_model_manager:_decrement_ref:88:Decremented ref count for silero_vad_v5, self.ref_count=0 2026-02-22 13:08:09,660:INFO:speaches.executors.shared.base_model_manager:_decrement_ref:98:Model silero_vad_v5 is idle, not unloading 2026-02-22 13:08:09,660:DEBUG:speaches.executors.silero_vad_v5:get_speech_timestamps:307:VAD processing took 0.0713s for 4.20s audio 2026-02-22 13:08:09,660:DEBUG:speaches.executors.shared.base_model_manager:load_model:138:deepdml/faster-whisper-large-v3-turbo-ct2 model already loaded 2026-02-22 13:08:09,660:DEBUG:speaches.executors.shared.base_model_manager:_load:72:Loading model deepdml/faster-whisper-large-v3-turbo-ct2 2026-02-22 13:08:09,767:DEBUG:urllib3.connectionpool:_make_request:546:https://huggingface.co:443 "GET /api/models/deepdml/faster-whisper-large-v3-turbo-ct2/revision/main HTTP/11" 200 2873 INFO: 192.168.1.27:55642 - "POST /v1/audio/transcriptions HTTP/1.1" 500 Internal Server Error ERROR: Exception in ASGI application Traceback (most recent call last): File "/home/ubuntu/speaches/.venv/lib/python3.12/site-packages/uvicorn/protocols/http/h11_impl.py", line 403, in run_asgi result = await app( \# type: ignore[func-returns-value] ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/home/ubuntu/speaches/.venv/lib/python3.12/site-packages/uvicorn/middleware/proxy_headers.py", line 60, in __call__ return await self.app(scope, receive, send) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/home/ubuntu/speaches/.venv/lib/python3.12/site-packages/fastapi/applications.py", line 1134, in __call__ await super().__call__(scope, receive, send) File "/home/ubuntu/speaches/.venv/lib/python3.12/site-packages/starlette/applications.py", line 113, in __call__ await self.middleware_stack(scope, receive, send) File "/home/ubuntu/speaches/.venv/lib/python3.12/site-packages/starlette/middleware/errors.py", line 187, in __call__ raise exc File "/home/ubuntu/speaches/.venv/lib/python3.12/site-packages/starlette/middleware/errors.py", line 165, in __call__ await self.app(scope, receive, _send) File "/home/ubuntu/speaches/.venv/lib/python3.12/site-packages/starlette/middleware/exceptions.py", line 62, in __call__ await wrap_app_handling_exceptions(self.app, conn)(scope, receive, send) File "/home/ubuntu/speaches/.venv/lib/python3.12/site-packages/starlette/_exception_handler.py", line 53, in wrapped_app raise exc File "/home/ubuntu/speaches/.venv/lib/python3.12/site-packages/starlette/_exception_handler.py", line 42, in wrapped_app await app(scope, receive, sender) File "/home/ubuntu/speaches/.venv/lib/python3.12/site-packages/fastapi/middleware/asyncexitstack.py", line 18, in __call__ await self.app(scope, receive, send) File "/home/ubuntu/speaches/.venv/lib/python3.12/site-packages/starlette/routing.py", line 715, in __call__ await self.middleware_stack(scope, receive, send) File "/home/ubuntu/speaches/.venv/lib/python3.12/site-packages/starlette/routing.py", line 735, in app await route.handle(scope, receive, send) File "/home/ubuntu/speaches/.venv/lib/python3.12/site-packages/starlette/routing.py", line 288, in handle await self.app(scope, receive, send) File "/home/ubuntu/speaches/.venv/lib/python3.12/site-packages/fastapi/routing.py", line 125, in app await wrap_app_handling_exceptions(app, request)(scope, receive, send) File "/home/ubuntu/speaches/.venv/lib/python3.12/site-packages/starlette/_exception_handler.py", line 53, in wrapped_app raise exc File "/home/ubuntu/speaches/.venv/lib/python3.12/site-packages/starlette/_exception_handler.py", line 42, in wrapped_app await app(scope, receive, sender) File "/home/ubuntu/speaches/.venv/lib/python3.12/site-packages/fastapi/routing.py", line 111, in app response = await f(request) ^^^^^^^^^^^^^^^^ File "/home/ubuntu/speaches/.venv/lib/python3.12/site-packages/fastapi/routing.py", line 391, in app raw_response = await run_endpoint_function( ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/home/ubuntu/speaches/.venv/lib/python3.12/site-packages/fastapi/routing.py", line 292, in run_endpoint_function return await run_in_threadpool(dependant.call, **values) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/home/ubuntu/speaches/.venv/lib/python3.12/site-packages/starlette/concurrency.py", line 39, in run_in_threadpool return await anyio.to_thread.run_sync(func, *args) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/home/ubuntu/speaches/.venv/lib/python3.12/site-packages/anyio/to_thread.py", line 56, in run_sync return await get_async_backend().run_sync_in_worker_thread( ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/home/ubuntu/speaches/.venv/lib/python3.12/site-packages/anyio/_backends/_asyncio.py", line 2470, in run_sync_in_worker_thread return await future ^^^^^^^^^^^^ File "/home/ubuntu/speaches/.venv/lib/python3.12/site-packages/anyio/_backends/_asyncio.py", line 967, in run result = context.run(func, *args) ^^^^^^^^^^^^^^^^^^^^^^^^ File "/home/ubuntu/speaches/.venv/lib/python3.12/site-packages/speaches/routers/stt.py", line 171, in transcribe_file res = transcription_executor.model_manager.handle_transcription_request(transcription_request) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/home/ubuntu/speaches/.venv/lib/python3.12/site-packages/speaches/executors/whisper.py", line 231, in handle_transcription_request return self.handle_non_streaming_transcription_request(request, **kwargs) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/home/ubuntu/speaches/.venv/lib/python3.12/site-packages/speaches/tracing.py", line 31, in wrapper return func(*args, **kwargs) ^^^^^^^^^^^^^^^^^^^^^ File "/home/ubuntu/speaches/.venv/lib/python3.12/site-packages/speaches/executors/whisper.py", line 154, in handle_non_streaming_transcription_request with self.load_model(request.model) as whisper: File "/home/ubuntu/speaches/.venv/lib/python3.12/site-packages/speaches/executors/shared/base_model_manager.py", line 103, in __enter__ self._load() File "/home/ubuntu/speaches/.venv/lib/python3.12/site-packages/speaches/executors/shared/base_model_manager.py", line 74, in _load self.model = self.load_fn() ^^^^^^^^^^^^^^ File "/home/ubuntu/speaches/.venv/lib/python3.12/site-packages/speaches/executors/shared/base_model_manager.py", line 142, in load_fn=lambda: self._load_fn(model_id), ^^^^^^^^^^^^^^^^^^^^^^^ File "/home/ubuntu/speaches/.venv/lib/python3.12/site-packages/speaches/executors/whisper.py", line 134, in _load_fn return WhisperModel( ^^^^^^^^^^^^^ File "/home/ubuntu/speaches/.venv/lib/python3.12/site-packages/faster_whisper/transcribe.py", line 647, in __init__ self.model = ctranslate2.models.Whisper( ^^^^^^^^^^^^^^^^^^^^^^^^^^^ ValueError: Requested int8 compute type, but the target device or backend do not support efficient int8 computation. 2026-02-22 13:08:10,409:DEBUG:speaches.dependencies:audio_file_dependency:89:Decoding audio file: 4e0c529c-2fa4-4183-b569-b3379565bfe4.mp3, content_type: None, header: Headers({'content-disposition': 'form-data; name="file"; filename="4e0c529c-2fa4-4183-b569-b3379565bfe4.mp3"'}), size: 34029 2026-02-22 13:08:10,491:DEBUG:speaches.dependencies:audio_file_dependency:103:Decoded 4.2s of audio in 0.08204s (RTF: 0.01953266142837016) 2026-02-22 13:08:10,491:DEBUG:asyncio:__init__:64:Using selector: EpollSelector 2026-02-22 13:08:10,495:DEBUG:speaches.executors.shared.base_model_manager:load_model:138:silero_vad_v5 model already loaded 2026-02-22 13:08:10,495:DEBUG:speaches.executors.shared.base_model_manager:_increment_ref:83:Incremented ref count for silero_vad_v5, self.ref_count=1 2026-02-22 13:08:10,501:DEBUG:speaches.executors.silero_vad_v5:__call__:138:VAD model inference took 0.0066s 2026-02-22 13:08:10,527:DEBUG:speaches.executors.shared.base_model_manager:_decrement_ref:88:Decremented ref count for silero_vad_v5, self.ref_count=0 2026-02-22 13:08:10,527:INFO:speaches.executors.shared.base_model_manager:_decrement_ref:98:Model silero_vad_v5 is idle, not unloading 2026-02-22 13:08:10,527:DEBUG:speaches.executors.silero_vad_v5:get_speech_timestamps:307:VAD processing took 0.0324s for 4.20s audio 2026-02-22 13:08:10,527:DEBUG:speaches.executors.shared.base_model_manager:load_model:138:deepdml/faster-whisper-large-v3-turbo-ct2 model already loaded 2026-02-22 13:08:10,527:DEBUG:speaches.executors.shared.base_model_manager:_load:72:Loading model deepdml/faster-whisper-large-v3-turbo-ct2 2026-02-22 13:08:10,637:DEBUG:urllib3.connectionpool:_make_request:546:https://huggingface.co:443 "GET /api/models/deepdml/faster-whisper-large-v3-turbo-ct2/revision/main HTTP/11" 200 2873 INFO: 192.168.1.27:55650 - "POST /v1/audio/transcriptions HTTP/1.1" 500 Internal Server Error ERROR: Exception in ASGI application Traceback (most recent call last): File "/home/ubuntu/speaches/.venv/lib/python3.12/site-packages/uvicorn/protocols/http/h11_impl.py", line 403, in run_asgi result = await app( \# type: ignore[func-returns-value] ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/home/ubuntu/speaches/.venv/lib/python3.12/site-packages/uvicorn/middleware/proxy_headers.py", line 60, in __call__ return await self.app(scope, receive, send) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/home/ubuntu/speaches/.venv/lib/python3.12/site-packages/fastapi/applications.py", line 1134, in __call__ await super().__call__(scope, receive, send) File "/home/ubuntu/speaches/.venv/lib/python3.12/site-packages/starlette/applications.py", line 113, in __call__ await self.middleware_stack(scope, receive, send) File "/home/ubuntu/speaches/.venv/lib/python3.12/site-packages/starlette/middleware/errors.py", line 187, in __call__ raise exc File "/home/ubuntu/speaches/.venv/lib/python3.12/site-packages/starlette/middleware/errors.py", line 165, in __call__ await self.app(scope, receive, _send) File "/home/ubuntu/speaches/.venv/lib/python3.12/site-packages/starlette/middleware/exceptions.py", line 62, in __call__ await wrap_app_handling_exceptions(self.app, conn)(scope, receive, send) File "/home/ubuntu/speaches/.venv/lib/python3.12/site-packages/starlette/_exception_handler.py", line 53, in wrapped_app raise exc File "/home/ubuntu/speaches/.venv/lib/python3.12/site-packages/starlette/_exception_handler.py", line 42, in wrapped_app await app(scope, receive, sender) File "/home/ubuntu/speaches/.venv/lib/python3.12/site-packages/fastapi/middleware/asyncexitstack.py", line 18, in __call__ await self.app(scope, receive, send) File "/home/ubuntu/speaches/.venv/lib/python3.12/site-packages/starlette/routing.py", line 715, in __call__ await self.middleware_stack(scope, receive, send) File "/home/ubuntu/speaches/.venv/lib/python3.12/site-packages/starlette/routing.py", line 735, in app await route.handle(scope, receive, send) File "/home/ubuntu/speaches/.venv/lib/python3.12/site-packages/starlette/routing.py", line 288, in handle await self.app(scope, receive, send) File "/home/ubuntu/speaches/.venv/lib/python3.12/site-packages/fastapi/routing.py", line 125, in app await wrap_app_handling_exceptions(app, request)(scope, receive, send) File "/home/ubuntu/speaches/.venv/lib/python3.12/site-packages/starlette/_exception_handler.py", line 53, in wrapped_app raise exc File "/home/ubuntu/speaches/.venv/lib/python3.12/site-packages/starlette/_exception_handler.py", line 42, in wrapped_app await app(scope, receive, sender) File "/home/ubuntu/speaches/.venv/lib/python3.12/site-packages/fastapi/routing.py", line 111, in app response = await f(request) ^^^^^^^^^^^^^^^^ File "/home/ubuntu/speaches/.venv/lib/python3.12/site-packages/fastapi/routing.py", line 391, in app raw_response = await run_endpoint_function( ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/home/ubuntu/speaches/.venv/lib/python3.12/site-packages/fastapi/routing.py", line 292, in run_endpoint_function return await run_in_threadpool(dependant.call, **values) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/home/ubuntu/speaches/.venv/lib/python3.12/site-packages/starlette/concurrency.py", line 39, in run_in_threadpool return await anyio.to_thread.run_sync(func, *args) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/home/ubuntu/speaches/.venv/lib/python3.12/site-packages/anyio/to_thread.py", line 56, in run_sync return await get_async_backend().run_sync_in_worker_thread( ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/home/ubuntu/speaches/.venv/lib/python3.12/site-packages/anyio/_backends/_asyncio.py", line 2470, in run_sync_in_worker_thread return await future ^^^^^^^^^^^^ File "/home/ubuntu/speaches/.venv/lib/python3.12/site-packages/anyio/_backends/_asyncio.py", line 967, in run result = context.run(func, *args) ^^^^^^^^^^^^^^^^^^^^^^^^ File "/home/ubuntu/speaches/.venv/lib/python3.12/site-packages/speaches/routers/stt.py", line 171, in transcribe_file res = transcription_executor.model_manager.handle_transcription_request(transcription_request) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/home/ubuntu/speaches/.venv/lib/python3.12/site-packages/speaches/executors/whisper.py", line 231, in handle_transcription_request return self.handle_non_streaming_transcription_request(request, **kwargs) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/home/ubuntu/speaches/.venv/lib/python3.12/site-packages/speaches/tracing.py", line 31, in wrapper return func(*args, **kwargs) ^^^^^^^^^^^^^^^^^^^^^ File "/home/ubuntu/speaches/.venv/lib/python3.12/site-packages/speaches/executors/whisper.py", line 154, in handle_non_streaming_transcription_request with self.load_model(request.model) as whisper: File "/home/ubuntu/speaches/.venv/lib/python3.12/site-packages/speaches/executors/shared/base_model_manager.py", line 103, in __enter__ self._load() File "/home/ubuntu/speaches/.venv/lib/python3.12/site-packages/speaches/executors/shared/base_model_manager.py", line 74, in _load self.model = self.load_fn() ^^^^^^^^^^^^^^ File "/home/ubuntu/speaches/.venv/lib/python3.12/site-packages/speaches/executors/shared/base_model_manager.py", line 142, in load_fn=lambda: self._load_fn(model_id), ^^^^^^^^^^^^^^^^^^^^^^^ File "/home/ubuntu/speaches/.venv/lib/python3.12/site-packages/speaches/executors/whisper.py", line 134, in _load_fn return WhisperModel( ^^^^^^^^^^^^^ File "/home/ubuntu/speaches/.venv/lib/python3.12/site-packages/faster_whisper/transcribe.py", line 647, in __init__ self.model = ctranslate2.models.Whisper( ^^^^^^^^^^^^^^^^^^^^^^^^^^^ ValueError: Requested int8 compute type, but the target device or backend do not support efficient int8 computation. Parfait, on a l’erreur clĂ© ici : > `ValueError: Requested int8 compute type, but the target device or backend do not support efficient int8 computation.` En gros : **le modĂšle CTranslate2 que tu utilises (`deepdml/faster-whisper-large-v3-turbo-ct2`) ne supporte pas vraiment `int8` sur CPU dans ce conteneur**. On vient de retirer le GPU, donc il n’a plus de backend adaptĂ© pour l’int8. Il suffit de passer le compute type en `float32` (ou `int16`) cĂŽtĂ© speaches. *** ## 1. Modifier le compute type dans speaches Sur folzo-Corp : ```bash nano ~/speaches/docker-compose.yml ``` Dans `environment:` de `speaches`, remplace : ```yaml - WHISPER__COMPUTE_TYPE=int8 ``` par : ```yaml - WHISPER__COMPUTE_TYPE=float32 ``` (Éventuellement tu peux tester `int16` plus tard pour un compromis perf/prĂ©cision.) Sauvegarde, puis redĂ©marre : ```bash cd ~/speaches sudo docker compose down sudo docker compose up -d ``` *** ## 2. Tester Ă  nouveau le vocal Ensuite : 1. VĂ©rifie vite fait les logs au dĂ©marrage : ```bash sudo docker logs -f speaches-stt ``` Tu ne dois plus voir l’exception `Requested int8 compute type`. 2. Re-teste un vocal avec Effi. Si ça fonctionne, on a : - STT en **CPU** (plus de charge GPU rĂ©siduelle), - modĂšle **large-v3-turbo** (donc rapide), - TTS **Piper FR**, - et la 7800XT qui ne bosse que pour les LLM/embeddings. Dis-moi juste si le vocal repasse bien aprĂšs ce changement. [^26_1][^26_10][^26_2][^26_3][^26_4][^26_5][^26_6][^26_7][^26_8][^26_9]
⁂
[^26_1]: https://docs.speechmatics.com/deployments/container/gpu-speech-to-text [^26_2]: https://forums.docker.com/t/enabling-gpu-support-in-docker-containers-for-accelerated-computations/138686 [^26_3]: https://docs.docker.com/desktop/features/gpu/ [^26_4]: https://www.reddit.com/r/docker/comments/htmrj0/how_to_allow_docker_to_access_gpu/ [^26_5]: https://speech.fish.audio/install/ [^26_6]: https://github.com/manzolo/openai-whisper-docker [^26_7]: https://speaches.ai/installation/ [^26_8]: https://github.com/speaches-ai/speaches/issues/561 [^26_9]: https://docs-beta.internal.speechmatics.com/on-prem/containers/gpu-container/gpu-inference-container [^26_10]: https://learn.microsoft.com/de-de/virtualization/windowscontainers/deploy-containers/gpu-acceleration --- # toujours une erreur ; folzo@folzo-Corp:~/speaches\$ sudo docker logs -f speaches-stt 2026-02-22 13:10:20,319:DEBUG:speaches.main:create_app:102:Config: stt_model_ttl=300 tts_model_ttl=300 vad_model_ttl=-1 api_key=None log_level='debug' host='0.0.0.0' port=8000 allow_origins=None enable_ui=True whisper=WhisperConfig(inference_device='auto', device_index=0, compute_type='float32', cpu_threads=0, num_workers=1) loopback_host_url=None chat_completion_base_url='http://localhost:11434/v1' chat_completion_api_key=SecretStr('**********') unstable_ort_opts=OrtOptions(exclude_providers=['TensorrtExecutionProvider'], provider_priority={'CUDAExecutionProvider': 100}, provider_opts={}) otel_exporter_otlp_endpoint=None otel_service_name='speaches' preload_models=[] 2026-02-22 13:10:21,202:DEBUG:urllib3.connectionpool:_new_conn:1051:Starting new HTTPS connection (1): huggingface.co:443 2026-02-22 13:10:21,253:DEBUG:urllib3.connectionpool:_new_conn:1051:Starting new HTTPS connection (1): huggingface.co:443 2026-02-22 13:10:21,380:DEBUG:urllib3.connectionpool:_make_request:546:https://huggingface.co:443 "HEAD /api/telemetry/https%3A/api.gradio.app/gradio-initiated-analytics HTTP/11" 200 0 2026-02-22 13:10:21,496:DEBUG:urllib3.connectionpool:_make_request:546:https://huggingface.co:443 "HEAD /api/telemetry/https%3A/api.gradio.app/gradio-initiated-analytics HTTP/11" 200 0 new 2026-02-22 13:10:21,522:INFO:speaches.main:create_app:202: To view the gradio web ui of speaches open your browser and visit: http://localhost:8000/ INFO: Started server process [1] INFO: Waiting for application startup. INFO: Application startup complete. INFO: Uvicorn running on [http://0.0.0.0:8000](http://0.0.0.0:8000) (Press CTRL+C to quit) 2026-02-22 13:10:21,936:INFO:httpx:_send_single_request:1025:HTTP Request: GET [https://api.gradio.app/pkg-version](https://api.gradio.app/pkg-version) "HTTP/1.1 200 OK" 2026-02-22 13:10:21,936:INFO:httpx:_send_single_request:1025:HTTP Request: GET [https://api.gradio.app/pkg-version](https://api.gradio.app/pkg-version) "HTTP/1.1 200 OK" 2026-02-22 13:10:21,994:INFO:httpx:_send_single_request:1025:HTTP Request: GET [https://api.gradio.app/pkg-version](https://api.gradio.app/pkg-version) "HTTP/1.1 200 OK" 2026-02-22 13:10:21,994:INFO:httpx:_send_single_request:1025:HTTP Request: GET [https://api.gradio.app/pkg-version](https://api.gradio.app/pkg-version) "HTTP/1.1 200 OK" 2026-02-22 13:10:23,321:DEBUG:urllib3.connectionpool:_new_conn:1051:Starting new HTTPS connection (1): huggingface.co:443 2026-02-22 13:10:23,499:DEBUG:urllib3.connectionpool:_make_request:546:https://huggingface.co:443 "GET /api/models?filter=ctranslate2\&filter=automatic-speech-recognition\&cardData=True HTTP/11" 200 244215 Invalid model-index. Not loading eval results into CardData. 2026-02-22 13:10:23,559:WARNING:huggingface_hub.repocard_data:__init__:368:Invalid model-index. Not loading eval results into CardData. 2026-02-22 13:10:23,674:DEBUG:urllib3.connectionpool:_make_request:546:https://huggingface.co:443 "GET /api/models/deepdml/faster-whisper-large-v3-turbo-ct2/revision/main HTTP/11" 200 2873 Fetching 6 files: 100%|██████████| 6/6 [00:00<00:00, 92521.41it/s] INFO: 172.18.0.3:32990 - "POST /v1/models/deepdml/faster-whisper-large-v3-turbo-ct2 HTTP/1.1" 200 OK 2026-02-22 13:10:38,591:DEBUG:speaches.dependencies:audio_file_dependency:89:Decoding audio file: a8eff92c-6bac-4320-b80d-e66e9b9c1c55.mp3, content_type: None, header: Headers({'content-disposition': 'form-data; name="file"; filename="a8eff92c-6bac-4320-b80d-e66e9b9c1c55.mp3"'}), size: 25389 2026-02-22 13:10:38,669:DEBUG:speaches.dependencies:audio_file_dependency:103:Decoded 3.12s of audio in 0.07752s (RTF: 0.024845482053373974) 2026-02-22 13:10:38,669:DEBUG:asyncio:__init__:64:Using selector: EpollSelector 2026-02-22 13:10:38,674:DEBUG:speaches.executors.shared.base_model_manager:_load:72:Loading model silero_vad_v5 2026-02-22 13:10:38,674:DEBUG:speaches.executors.shared.base_model_manager:get_ort_providers_with_options:23:Available ONNX Runtime providers: ['TensorrtExecutionProvider', 'CUDAExecutionProvider', 'CPUExecutionProvider'] 2026-02-22 13:10:38,674:DEBUG:speaches.executors.shared.base_model_manager:get_ort_providers_with_options:33:Using ONNX Runtime providers: [('CUDAExecutionProvider', {}), ('CPUExecutionProvider', {})] 2026-02-22 13:10:38.675920860 [E:onnxruntime:Default, provider_bridge_ort.cc:2195 TryGetProviderInfo_CUDA] /onnxruntime_src/onnxruntime/core/session/provider_bridge_ort.cc:1778 onnxruntime::Provider\& onnxruntime::ProviderLibrary::Get() [ONNXRuntimeError] : 1 : FAIL : Failed to load library libonnxruntime_providers_cuda.so with error: libcublasLt.so.12: cannot open shared object file: No such file or directory 2026-02-22 13:10:38.675933100 [W:onnxruntime:Default, onnxruntime_pybind_state.cc:1055 CreateExecutionProviderInstance] Failed to create CUDAExecutionProvider. Require cuDNN 9.* and CUDA 12.*. Please install all dependencies as mentioned in the GPU requirements page (https://onnxruntime.ai/docs/execution-providers/CUDA-ExecutionProvider.html\#requirements), make sure they're in the PATH, and that your GPU is supported. 2026-02-22 13:10:38.679662590 [E:onnxruntime:Default, provider_bridge_ort.cc:2195 TryGetProviderInfo_CUDA] /onnxruntime_src/onnxruntime/core/session/provider_bridge_ort.cc:1778 onnxruntime::Provider\& onnxruntime::ProviderLibrary::Get() [ONNXRuntimeError] : 1 : FAIL : Failed to load library libonnxruntime_providers_cuda.so with error: libcublasLt.so.12: cannot open shared object file: No such file or directory 2026-02-22 13:10:38.679701570 [W:onnxruntime:Default, onnxruntime_pybind_state.cc:1055 CreateExecutionProviderInstance] Failed to create CUDAExecutionProvider. Require cuDNN 9.* and CUDA 12.*. Please install all dependencies as mentioned in the GPU requirements page (https://onnxruntime.ai/docs/execution-providers/CUDA-ExecutionProvider.html\#requirements), make sure they're in the PATH, and that your GPU is supported. 2026-02-22 13:10:38,681:INFO:speaches.executors.shared.base_model_manager:_load:75:Model silero_vad_v5 loaded in 0.01s 2026-02-22 13:10:38,681:DEBUG:speaches.executors.shared.base_model_manager:_increment_ref:83:Incremented ref count for silero_vad_v5, self.ref_count=1 2026-02-22 13:10:38,691:DEBUG:speaches.executors.silero_vad_v5:__call__:138:VAD model inference took 0.0102s 2026-02-22 13:10:38,691:DEBUG:speaches.executors.shared.base_model_manager:_decrement_ref:88:Decremented ref count for silero_vad_v5, self.ref_count=0 2026-02-22 13:10:38,692:INFO:speaches.executors.shared.base_model_manager:_decrement_ref:98:Model silero_vad_v5 is idle, not unloading 2026-02-22 13:10:38,692:DEBUG:speaches.executors.silero_vad_v5:get_speech_timestamps:307:VAD processing took 0.0181s for 3.12s audio 2026-02-22 13:10:38,692:DEBUG:speaches.executors.shared.base_model_manager:_load:72:Loading model deepdml/faster-whisper-large-v3-turbo-ct2 2026-02-22 13:10:38,800:DEBUG:urllib3.connectionpool:_make_request:546:https://huggingface.co:443 "GET /api/models/deepdml/faster-whisper-large-v3-turbo-ct2/revision/main HTTP/11" 200 2873 2026-02-22 13:10:41,242:INFO:speaches.executors.shared.base_model_manager:_load:75:Model deepdml/faster-whisper-large-v3-turbo-ct2 loaded in 2.55s 2026-02-22 13:10:41,242:DEBUG:speaches.executors.shared.base_model_manager:_increment_ref:83:Incremented ref count for deepdml/faster-whisper-large-v3-turbo-ct2, self.ref_count=1 2026-02-22 13:10:41,242:INFO:faster_whisper:transcribe:391:Processing audio with duration 00:03.120 2026-02-22 13:10:41,242:INFO:faster_whisper:transcribe:428:VAD filter removed 00:00.880 of audio 2026-02-22 13:10:41,262:DEBUG:speaches.executors.shared.base_model_manager:_decrement_ref:88:Decremented ref count for deepdml/faster-whisper-large-v3-turbo-ct2, self.ref_count=0 2026-02-22 13:10:41,262:DEBUG:speaches.executors.shared.base_model_manager:_decrement_ref:91:Model deepdml/faster-whisper-large-v3-turbo-ct2 is idle, scheduling offload in 300s INFO: 192.168.1.27:45124 - "POST /v1/audio/transcriptions HTTP/1.1" 500 Internal Server Error ERROR: Exception in ASGI application Traceback (most recent call last): File "/home/ubuntu/speaches/.venv/lib/python3.12/site-packages/uvicorn/protocols/http/h11_impl.py", line 403, in run_asgi result = await app( \# type: ignore[func-returns-value] ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/home/ubuntu/speaches/.venv/lib/python3.12/site-packages/uvicorn/middleware/proxy_headers.py", line 60, in __call__ return await self.app(scope, receive, send) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/home/ubuntu/speaches/.venv/lib/python3.12/site-packages/fastapi/applications.py", line 1134, in __call__ await super().__call__(scope, receive, send) File "/home/ubuntu/speaches/.venv/lib/python3.12/site-packages/starlette/applications.py", line 113, in __call__ await self.middleware_stack(scope, receive, send) File "/home/ubuntu/speaches/.venv/lib/python3.12/site-packages/starlette/middleware/errors.py", line 187, in __call__ raise exc File "/home/ubuntu/speaches/.venv/lib/python3.12/site-packages/starlette/middleware/errors.py", line 165, in __call__ await self.app(scope, receive, _send) File "/home/ubuntu/speaches/.venv/lib/python3.12/site-packages/starlette/middleware/exceptions.py", line 62, in __call__ await wrap_app_handling_exceptions(self.app, conn)(scope, receive, send) File "/home/ubuntu/speaches/.venv/lib/python3.12/site-packages/starlette/_exception_handler.py", line 53, in wrapped_app raise exc File "/home/ubuntu/speaches/.venv/lib/python3.12/site-packages/starlette/_exception_handler.py", line 42, in wrapped_app await app(scope, receive, sender) File "/home/ubuntu/speaches/.venv/lib/python3.12/site-packages/fastapi/middleware/asyncexitstack.py", line 18, in __call__ await self.app(scope, receive, send) File "/home/ubuntu/speaches/.venv/lib/python3.12/site-packages/starlette/routing.py", line 715, in __call__ await self.middleware_stack(scope, receive, send) File "/home/ubuntu/speaches/.venv/lib/python3.12/site-packages/starlette/routing.py", line 735, in app await route.handle(scope, receive, send) File "/home/ubuntu/speaches/.venv/lib/python3.12/site-packages/starlette/routing.py", line 288, in handle await self.app(scope, receive, send) File "/home/ubuntu/speaches/.venv/lib/python3.12/site-packages/fastapi/routing.py", line 125, in app await wrap_app_handling_exceptions(app, request)(scope, receive, send) File "/home/ubuntu/speaches/.venv/lib/python3.12/site-packages/starlette/_exception_handler.py", line 53, in wrapped_app raise exc File "/home/ubuntu/speaches/.venv/lib/python3.12/site-packages/starlette/_exception_handler.py", line 42, in wrapped_app await app(scope, receive, sender) File "/home/ubuntu/speaches/.venv/lib/python3.12/site-packages/fastapi/routing.py", line 111, in app response = await f(request) ^^^^^^^^^^^^^^^^ File "/home/ubuntu/speaches/.venv/lib/python3.12/site-packages/fastapi/routing.py", line 391, in app raw_response = await run_endpoint_function( ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/home/ubuntu/speaches/.venv/lib/python3.12/site-packages/fastapi/routing.py", line 292, in run_endpoint_function return await run_in_threadpool(dependant.call, **values) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/home/ubuntu/speaches/.venv/lib/python3.12/site-packages/starlette/concurrency.py", line 39, in run_in_threadpool return await anyio.to_thread.run_sync(func, *args) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/home/ubuntu/speaches/.venv/lib/python3.12/site-packages/anyio/to_thread.py", line 56, in run_sync return await get_async_backend().run_sync_in_worker_thread( ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/home/ubuntu/speaches/.venv/lib/python3.12/site-packages/anyio/_backends/_asyncio.py", line 2470, in run_sync_in_worker_thread return await future ^^^^^^^^^^^^ File "/home/ubuntu/speaches/.venv/lib/python3.12/site-packages/anyio/_backends/_asyncio.py", line 967, in run result = context.run(func, *args) ^^^^^^^^^^^^^^^^^^^^^^^^ File "/home/ubuntu/speaches/.venv/lib/python3.12/site-packages/speaches/routers/stt.py", line 171, in transcribe_file res = transcription_executor.model_manager.handle_transcription_request(transcription_request) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/home/ubuntu/speaches/.venv/lib/python3.12/site-packages/speaches/executors/whisper.py", line 231, in handle_transcription_request return self.handle_non_streaming_transcription_request(request, **kwargs) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/home/ubuntu/speaches/.venv/lib/python3.12/site-packages/speaches/tracing.py", line 31, in wrapper return func(*args, **kwargs) ^^^^^^^^^^^^^^^^^^^^^ File "/home/ubuntu/speaches/.venv/lib/python3.12/site-packages/speaches/executors/whisper.py", line 161, in handle_non_streaming_transcription_request segments, transcription_info = whisper_model.transcribe( ^^^^^^^^^^^^^^^^^^^^^^^^^ File "/home/ubuntu/speaches/.venv/lib/python3.12/site-packages/faster_whisper/transcribe.py", line 451, in transcribe ) = self.model.detect_language( ^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/home/ubuntu/speaches/.venv/lib/python3.12/site-packages/faster_whisper/transcribe.py", line 1777, in detect_language encoder_output = self.encode( ^^^^^^^^^^^^ File "/home/ubuntu/speaches/.venv/lib/python3.12/site-packages/faster_whisper/transcribe.py", line 1358, in encode return self.model.encode(features, to_cpu=to_cpu) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ RuntimeError: No SGEMM backend on CPU 2026-02-22 13:10:41,277:DEBUG:speaches.dependencies:audio_file_dependency:89:Decoding audio file: a8eff92c-6bac-4320-b80d-e66e9b9c1c55.mp3, content_type: None, header: Headers({'content-disposition': 'form-data; name="file"; filename="a8eff92c-6bac-4320-b80d-e66e9b9c1c55.mp3"'}), size: 25389 2026-02-22 13:10:41,367:DEBUG:speaches.dependencies:audio_file_dependency:103:Decoded 3.12s of audio in 0.08957s (RTF: 0.028709025000586197) 2026-02-22 13:10:41,368:DEBUG:asyncio:__init__:64:Using selector: EpollSelector 2026-02-22 13:10:41,371:DEBUG:speaches.executors.shared.base_model_manager:load_model:138:silero_vad_v5 model already loaded 2026-02-22 13:10:41,371:DEBUG:speaches.executors.shared.base_model_manager:_increment_ref:83:Incremented ref count for silero_vad_v5, self.ref_count=1 2026-02-22 13:10:41,378:DEBUG:speaches.executors.silero_vad_v5:__call__:138:VAD model inference took 0.0068s 2026-02-22 13:10:41,378:DEBUG:speaches.executors.shared.base_model_manager:_decrement_ref:88:Decremented ref count for silero_vad_v5, self.ref_count=0 2026-02-22 13:10:41,378:INFO:speaches.executors.shared.base_model_manager:_decrement_ref:98:Model silero_vad_v5 is idle, not unloading 2026-02-22 13:10:41,379:DEBUG:speaches.executors.silero_vad_v5:get_speech_timestamps:307:VAD processing took 0.0074s for 3.12s audio 2026-02-22 13:10:41,379:DEBUG:speaches.executors.shared.base_model_manager:load_model:138:deepdml/faster-whisper-large-v3-turbo-ct2 model already loaded 2026-02-22 13:10:41,379:DEBUG:speaches.executors.shared.base_model_manager:_increment_ref:81:Model was set to expire in 300s, cancelling 2026-02-22 13:10:41,379:DEBUG:speaches.executors.shared.base_model_manager:_increment_ref:83:Incremented ref count for deepdml/faster-whisper-large-v3-turbo-ct2, self.ref_count=1 2026-02-22 13:10:41,379:INFO:faster_whisper:transcribe:391:Processing audio with duration 00:03.120 2026-02-22 13:10:41,379:INFO:faster_whisper:transcribe:428:VAD filter removed 00:00.880 of audio 2026-02-22 13:10:41,401:DEBUG:speaches.executors.shared.base_model_manager:_decrement_ref:88:Decremented ref count for deepdml/faster-whisper-large-v3-turbo-ct2, self.ref_count=0 2026-02-22 13:10:41,401:DEBUG:speaches.executors.shared.base_model_manager:_decrement_ref:91:Model deepdml/faster-whisper-large-v3-turbo-ct2 is idle, scheduling offload in 300s INFO: 192.168.1.27:45128 - "POST /v1/audio/transcriptions HTTP/1.1" 500 Internal Server Error ERROR: Exception in ASGI application Traceback (most recent call last): File "/home/ubuntu/speaches/.venv/lib/python3.12/site-packages/uvicorn/protocols/http/h11_impl.py", line 403, in run_asgi result = await app( \# type: ignore[func-returns-value] ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/home/ubuntu/speaches/.venv/lib/python3.12/site-packages/uvicorn/middleware/proxy_headers.py", line 60, in __call__ return await self.app(scope, receive, send) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/home/ubuntu/speaches/.venv/lib/python3.12/site-packages/fastapi/applications.py", line 1134, in __call__ await super().__call__(scope, receive, send) File "/home/ubuntu/speaches/.venv/lib/python3.12/site-packages/starlette/applications.py", line 113, in __call__ await self.middleware_stack(scope, receive, send) File "/home/ubuntu/speaches/.venv/lib/python3.12/site-packages/starlette/middleware/errors.py", line 187, in __call__ raise exc File "/home/ubuntu/speaches/.venv/lib/python3.12/site-packages/starlette/middleware/errors.py", line 165, in __call__ await self.app(scope, receive, _send) File "/home/ubuntu/speaches/.venv/lib/python3.12/site-packages/starlette/middleware/exceptions.py", line 62, in __call__ await wrap_app_handling_exceptions(self.app, conn)(scope, receive, send) File "/home/ubuntu/speaches/.venv/lib/python3.12/site-packages/starlette/_exception_handler.py", line 53, in wrapped_app raise exc File "/home/ubuntu/speaches/.venv/lib/python3.12/site-packages/starlette/_exception_handler.py", line 42, in wrapped_app await app(scope, receive, sender) File "/home/ubuntu/speaches/.venv/lib/python3.12/site-packages/fastapi/middleware/asyncexitstack.py", line 18, in __call__ await self.app(scope, receive, send) File "/home/ubuntu/speaches/.venv/lib/python3.12/site-packages/starlette/routing.py", line 715, in __call__ await self.middleware_stack(scope, receive, send) File "/home/ubuntu/speaches/.venv/lib/python3.12/site-packages/starlette/routing.py", line 735, in app await route.handle(scope, receive, send) File "/home/ubuntu/speaches/.venv/lib/python3.12/site-packages/starlette/routing.py", line 288, in handle await self.app(scope, receive, send) File "/home/ubuntu/speaches/.venv/lib/python3.12/site-packages/fastapi/routing.py", line 125, in app await wrap_app_handling_exceptions(app, request)(scope, receive, send) File "/home/ubuntu/speaches/.venv/lib/python3.12/site-packages/starlette/_exception_handler.py", line 53, in wrapped_app raise exc File "/home/ubuntu/speaches/.venv/lib/python3.12/site-packages/starlette/_exception_handler.py", line 42, in wrapped_app await app(scope, receive, sender) File "/home/ubuntu/speaches/.venv/lib/python3.12/site-packages/fastapi/routing.py", line 111, in app response = await f(request) ^^^^^^^^^^^^^^^^ File "/home/ubuntu/speaches/.venv/lib/python3.12/site-packages/fastapi/routing.py", line 391, in app raw_response = await run_endpoint_function( ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/home/ubuntu/speaches/.venv/lib/python3.12/site-packages/fastapi/routing.py", line 292, in run_endpoint_function return await run_in_threadpool(dependant.call, **values) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/home/ubuntu/speaches/.venv/lib/python3.12/site-packages/starlette/concurrency.py", line 39, in run_in_threadpool return await anyio.to_thread.run_sync(func, *args) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/home/ubuntu/speaches/.venv/lib/python3.12/site-packages/anyio/to_thread.py", line 56, in run_sync return await get_async_backend().run_sync_in_worker_thread( ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/home/ubuntu/speaches/.venv/lib/python3.12/site-packages/anyio/_backends/_asyncio.py", line 2470, in run_sync_in_worker_thread return await future ^^^^^^^^^^^^ File "/home/ubuntu/speaches/.venv/lib/python3.12/site-packages/anyio/_backends/_asyncio.py", line 967, in run result = context.run(func, *args) ^^^^^^^^^^^^^^^^^^^^^^^^ File "/home/ubuntu/speaches/.venv/lib/python3.12/site-packages/speaches/routers/stt.py", line 171, in transcribe_file res = transcription_executor.model_manager.handle_transcription_request(transcription_request) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/home/ubuntu/speaches/.venv/lib/python3.12/site-packages/speaches/executors/whisper.py", line 231, in handle_transcription_request return self.handle_non_streaming_transcription_request(request, **kwargs) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/home/ubuntu/speaches/.venv/lib/python3.12/site-packages/speaches/tracing.py", line 31, in wrapper return func(*args, **kwargs) ^^^^^^^^^^^^^^^^^^^^^ File "/home/ubuntu/speaches/.venv/lib/python3.12/site-packages/speaches/executors/whisper.py", line 161, in handle_non_streaming_transcription_request segments, transcription_info = whisper_model.transcribe( ^^^^^^^^^^^^^^^^^^^^^^^^^ File "/home/ubuntu/speaches/.venv/lib/python3.12/site-packages/faster_whisper/transcribe.py", line 451, in transcribe ) = self.model.detect_language( ^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/home/ubuntu/speaches/.venv/lib/python3.12/site-packages/faster_whisper/transcribe.py", line 1777, in detect_language encoder_output = self.encode( ^^^^^^^^^^^^ File "/home/ubuntu/speaches/.venv/lib/python3.12/site-packages/faster_whisper/transcribe.py", line 1358, in encode return self.model.encode(features, to_cpu=to_cpu) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ RuntimeError: No SGEMM backend on CPU LĂ  on a enfin quelque chose de propre : le modĂšle tourne bien, mais il manque une brique BLAS CPU dans l’image speaches. L’erreur clĂ© est : - `RuntimeError: No SGEMM backend on CPU` Ça vient de CTranslate2/faster-whisper qui a besoin d’un backend SGEMM (OpenBLAS / MKL / etc.) pour faire les multiplications de matrices en float32 sur CPU. Dans l’image `speaches:rocm-ct2` que tu utilises, tout est cĂąblĂ© pour le GPU (ROCm), et le chemin CPU « pur » n’a pas ce backend, donc ça plante dĂšs qu’on enlĂšve le GPU. Tu as donc deux options rĂ©alistes : *** ## Option A — Revenir Ă  l’usage GPU pour STT (simple, efficace) Comme tu as dĂ©jĂ  optimisĂ© la charge globale (LLM + TTS + mem), remettre Whisper sur GPU n’est plus un drame, surtout avec `large-v3-turbo` qui est plus lĂ©ger. 1. **Remettre l’accĂšs GPU dans le compose :** ```yaml 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=int8 - WHISPER__DEVICE=auto ``` 2. RedĂ©marrer : ```bash cd ~/speaches sudo docker compose down sudo docker compose up -d ``` 3. Surveiller la charge GPU : elle montera pendant la transcription, puis retomber Ă  un niveau bas aprĂšs quelques secondes, les autres optimisations (Piper CPU, ministral 3B pour mem, etc.) faisant leur effet. C’est la voie la plus pragmatique : tu profites Ă  fond de la 7800XT pour STT + LLM, tout en gardant le CPU tranquille. *** ## Option B — Rebuilder une image speaches CPU-only (plus long) Si tu tiens absolument Ă  garder STT 100% CPU dans un conteneur sĂ©parĂ©, il faudrait : - repartir d’une image de base CPU (pas la ROCm), - installer CTranslate2 compilĂ© avec support BLAS CPU, - et reconstruire speaches avec cette stack. C’est faisable mais assez long (rebuild complet, ajustements de Dockerfile, tests). On peut le faire ensemble, mais ce sera plusieurs Ă©tapes de compilation. *** À mon avis, au vu de l’état actuel de ta stack (LLM optimisĂ©, TTS sur CPU, mĂ©moire sur petit modĂšle), **Option A** est un bon compromis : tu retrouves un vocal fonctionnel, trĂšs rapide, avec une charge GPU cohĂ©rente et le CPU globalement cool. Si tu veux qu’on parte sur l’option B (image CPU-only), dis-le et on montera un plan de build pas Ă  pas. [^27_1][^27_10][^27_2][^27_3][^27_4][^27_5][^27_6][^27_7][^27_8][^27_9]
⁂
[^27_1]: https://github.com/docker/for-linux/issues/841 [^27_2]: https://stackoverflow.com/questions/20096632/limit-memory-on-a-docker-container-doesnt-work [^27_3]: https://www.devopsroles.com/fix-docker-cannot-allocate-memory-error/ [^27_4]: https://community.atlassian.com/forums/Bitbucket-questions/Container-docker-exceeded-memory-limit-Confusing-cause-remedy/qaq-p/2273380 [^27_5]: https://docs.docker.com/engine/containers/resource_constraints/ [^27_6]: https://forums.docker.com/t/cannot-allocate-memory/1163 [^27_7]: https://stackoverflow.com/questions/77893652/how-to-solve-memory-error-in-docker-container-in-linux-for-error-was-sent-sigk [^27_8]: https://www.reddit.com/r/docker/comments/1fidnei/cant_set_a_memory_limit_in_dockercomposeyaml_am_i/ [^27_9]: https://notes.kodekloud.com/docs/Docker-Certified-Associate-Exam-Course/Docker-Engine-Security/Resource-Limits-Memory [^27_10]: https://www.reddit.com/r/docker/comments/13ud72v/creating_a_docker_container_with_memory_limits/ --- # 026-02-22 13:12:57,132:DEBUG:filelock:acquire:331:Attempting to acquire lock 140358771067648 on /root/.cache/huggingface/hub/.locks/models--deepdml--faster-whisper-large-v3-turbo-ct2/e76620f83d5f5b69efd3d87e3dc180c1bd21df9fbebacfd4335e5e1efcc018da.lock 2026-02-22 13:12:57,133:DEBUG:filelock:acquire:343:Lock 140358771067648 not acquired on /root/.cache/huggingface/hub/.locks/models--deepdml--faster-whisper-large-v3-turbo-ct2/e76620f83d5f5b69efd3d87e3dc180c1bd21df9fbebacfd4335e5e1efcc018da.lock, waiting 0.05 seconds ... 2026-02-22 13:12:57,183:DEBUG:filelock:acquire:331:Attempting to acquire lock 140358771067648 on /root/.cache/huggingface/hub/.locks/models--deepdml--faster-whisper-large-v3-turbo-ct2/e76620f83d5f5b69efd3d87e3dc180c1bd21df9fbebacfd4335e5e1efcc018da.lock 2026-02-22 13:12:57,183:DEBUG:filelock:acquire:343:Lock 140358771067648 not acquired on /root/.cache/huggingface/hub/.locks/models--deepdml--faster-whisper-large-v3-turbo-ct2/e76620f83d5f5b69efd3d87e3dc180c1bd21df9fbebacfd4335e5e1efcc018da.lock, waiting 0.05 seconds ... 2026-02-22 13:12:57,233:DEBUG:filelock:acquire:331:Attempting to acquire lock 140358771067648 on /root/.cache/huggingface/hub/.locks/models--deepdml--faster-whisper-large-v3-turbo-ct2/e76620f83d5f5b69efd3d87e3dc180c1bd21df9fbebacfd4335e5e1efcc018da.lock 2026-02-22 13:12:57,233:DEBUG:filelock:acquire:343:Lock 140358771067648 not acquired on /root/.cache/huggingface/hub/.locks/models--deepdml--faster-whisper-large-v3-turbo-ct2/e76620f83d5f5b69efd3d87e3dc180c1bd21df9fbebacfd4335e5e1efcc018da.lock, waiting 0.05 seconds ... 2026-02-22 13:12:57,283:DEBUG:filelock:acquire:331:Attempting to acquire lock 140358771067648 on /root/.cache/huggingface/hub/.locks/models--deepdml--faster-whisper-large-v3-turbo-ct2/e76620f83d5f5b69efd3d87e3dc180c1bd21df9fbebacfd4335e5e1efcc018da.lock 2026-02-22 13:12:57,283:DEBUG:filelock:acquire:343:Lock 140358771067648 not acquired on /root/.cache/huggingface/hub/.locks/models--deepdml--faster-whisper-large-v3-turbo-ct2/e76620f83d5f5b69efd3d87e3dc180c1bd21df9fbebacfd4335e5e1efcc018da.lock, waiting 0.05 seconds ... 2026-02-22 13:12:57,333:DEBUG:filelock:acquire:331:Attempting to acquire lock 140358771067648 on /root/.cache/huggingface/hub/.locks/models--deepdml--faster-whisper-large-v3-turbo-ct2/e76620f83d5f5b69efd3d87e3dc180c1bd21df9fbebacfd4335e5e1efcc018da.lock 2026-02-22 13:12:57,334:DEBUG:filelock:acquire:343:Lock 140358771067648 not acquired on /root/.cache/huggingface/hub/.locks/models--deepdml--faster-whisper-large-v3-turbo-ct2/e76620f83d5f5b69efd3d87e3dc180c1bd21df9fbebacfd4335e5e1efcc018da.lock, waiting 0.05 seconds ... 2026-02-22 13:12:57,384:DEBUG:filelock:acquire:331:Attempting to acquire lock 140358771067648 on /root/.cache/huggingface/hub/.locks/models--deepdml--faster-whisper-large-v3-turbo-ct2/e76620f83d5f5b69efd3d87e3dc180c1bd21df9fbebacfd4335e5e1efcc018da.lock 2026-02-22 13:12:57,384:DEBUG:filelock:acquire:343:Lock 140358771067648 not acquired on /root/.cache/huggingface/hub/.locks/models--deepdml--faster-whisper-large-v3-turbo-ct2/e76620f83d5f5b69efd3d87e3dc180c1bd21df9fbebacfd4335e5e1efcc018da.lock, waiting 0.05 seconds ... 2026-02-22 13:12:57,434:DEBUG:filelock:acquire:331:Attempting to acquire lock 140358771067648 on /root/.cache/huggingface/hub/.locks/models--deepdml--faster-whisper-large-v3-turbo-ct2/e76620f83d5f5b69efd3d87e3dc180c1bd21df9fbebacfd4335e5e1efcc018da.lock 2026-02-22 13:12:57,434:DEBUG:filelock:acquire:343:Lock 140358771067648 not acquired on /root/.cache/huggingface/hub/.locks/models--deepdml--faster-whisper-large-v3-turbo-ct2/e76620f83d5f5b69efd3d87e3dc180c1bd21df9fbebacfd4335e5e1efcc018da.lock, waiting 0.05 seconds ... 2026-02-22 13:12:57,484:DEBUG:filelock:acquire:331:Attempting to acquire lock 140358771067648 on /root/.cache/huggingface/hub/.locks/models--deepdml--faster-whisper-large-v3-turbo-ct2/e76620f83d5f5b69efd3d87e3dc180c1bd21df9fbebacfd4335e5e1efcc018da.lock 2026-02-22 13:12:57,484:DEBUG:filelock:acquire:343:Lock 140358771067648 not acquired on /root/.cache/huggingface/hub/.locks/models--deepdml--faster-whisper-large-v3-turbo-ct2/e76620f83d5f5b69efd3d87e3dc180c1bd21df9fbebacfd4335e5e1efcc018da.lock, waiting 0.05 seconds ... 2026-02-22 13:12:57,534:DEBUG:filelock:acquire:331:Attempting to acquire lock 140358771067648 on /root/.cache/huggingface/hub/.locks/models--deepdml--faster-whisper-large-v3-turbo-ct2/e76620f83d5f5b69efd3d87e3dc180c1bd21df9fbebacfd4335e5e1efcc018da.lock 2026-02-22 13:12:57,534:DEBUG:filelock:acquire:343:Lock 140358771067648 not acquired on /root/.cache/huggingface/hub/.locks/models--deepdml--faster-whisper-large-v3-turbo-ct2/e76620f83d5f5b69efd3d87e3dc180c1bd21df9fbebacfd4335e5e1efcc018da.lock, waiting 0.05 seconds ... 2026-02-22 13:12:57,585:DEBUG:filelock:acquire:331:Attempting to acquire lock 140358771067648 on /root/.cache/huggingface/hub/.locks/models--deepdml--faster-whisper-large-v3-turbo-ct2/e76620f83d5f5b69efd3d87e3dc180c1bd21df9fbebacfd4335e5e1efcc018da.lock 2026-02-22 13:12:57,585:DEBUG:filelock:acquire:343:Lock 140358771067648 not acquired on /root/.cache/huggingface/hub/.locks/models--deepdml--faster-whisper-large-v3-turbo-ct2/e76620f83d5f5b69efd3d87e3dc180c1bd21df9fbebacfd4335e5e1efcc018da.lock, waiting 0.05 seconds ... 2026-02-22 13:12:57,635:DEBUG:filelock:acquire:331:Attempting to acquire lock 140358771067648 on /root/.cache/huggingface/hub/.locks/models--deepdml--faster-whisper-large-v3-turbo-ct2/e76620f83d5f5b69efd3d87e3dc180c1bd21df9fbebacfd4335e5e1efcc018da.lock 2026-02-22 13:12:57,635:DEBUG:filelock:acquire:343:Lock 140358771067648 not acquired on /root/.cache/huggingface/hub/.locks/models--deepdml--faster-whisper-large-v3-turbo-ct2/e76620f83d5f5b69efd3d87e3dc180c1bd21df9fbebacfd4335e5e1efcc018da.lock, waiting 0.05 seconds ... 2026-02-22 13:12:57,685:DEBUG:filelock:acquire:331:Attempting to acquire lock 140358771067648 on /root/.cache/huggingface/hub/.locks/models--deepdml--faster-whisper-large-v3-turbo-ct2/e76620f83d5f5b69efd3d87e3dc180c1bd21df9fbebacfd4335e5e1efcc018da.lock 2026-02-22 13:12:57,685:DEBUG:filelock:acquire:343:Lock 140358771067648 not acquired on /root/.cache/huggingface/hub/.locks/models--deepdml--faster-whisper-large-v3-turbo-ct2/e76620f83d5f5b69efd3d87e3dc180c1bd21df9fbebacfd4335e5e1efcc018da.lock, waiting 0.05 seconds ... 2026-02-22 13:12:57,735:DEBUG:filelock:acquire:331:Attempting to acquire lock 140358771067648 on /root/.cache/huggingface/hub/.locks/models--deepdml--faster-whisper-large-v3-turbo-ct2/e76620f83d5f5b69efd3d87e3dc180c1bd21df9fbebacfd4335e5e1efcc018da.lock 2026-02-22 13:12:57,736:DEBUG:filelock:acquire:343:Lock 140358771067648 not acquired on /root/.cache/huggingface/hub/.locks/models--deepdml--faster-whisper-large-v3-turbo-ct2/e76620f83d5f5b69efd3d87e3dc180c1bd21df9fbebacfd4335e5e1efcc018da.lock, waiting 0.05 seconds ... 2026-02-22 13:12:57,786:DEBUG:filelock:acquire:331:Attempting to acquire lock 140358771067648 on /root/.cache/huggingface/hub/.locks/models--deepdml--faster-whisper-large-v3-turbo-ct2/e76620f83d5f5b69efd3d87e3dc180c1bd21df9fbebacfd4335e5e1efcc018da.lock 2026-02-22 13:12:57,786:DEBUG:filelock:acquire:343:Lock 140358771067648 not acquired on /root/.cache/huggingface/hub/.locks/models--deepdml--faster-whisper-large-v3-turbo-ct2/e76620f83d5f5b69efd3d87e3dc180c1bd21df9fbebacfd4335e5e1efcc018da.lock, waiting 0.05 seconds ... 2026-02-22 13:12:57,836:DEBUG:filelock:acquire:331:Attempting to acquire lock 140358771067648 on /root/.cache/huggingface/hub/.locks/models--deepdml--faster-whisper-large-v3-turbo-ct2/e76620f83d5f5b69efd3d87e3dc180c1bd21df9fbebacfd4335e5e1efcc018da.lock 2026-02-22 13:12:57,836:DEBUG:filelock:acquire:343:Lock 140358771067648 not acquired on /root/.cache/huggingface/hub/.locks/models--deepdml--faster-whisper-large-v3-turbo-ct2/e76620f83d5f5b69efd3d87e3dc180c1bd21df9fbebacfd4335e5e1efcc018da.lock, waiting 0.05 seconds ... 2026-02-22 13:12:57,886:DEBUG:filelock:acquire:331:Attempting to acquire lock 140358771067648 on /root/.cache/huggingface/hub/.locks/models--deepdml--faster-whisper-large-v3-turbo-ct2/e76620f83d5f5b69efd3d87e3dc180c1bd21df9fbebacfd4335e5e1efcc018da.lock 2026-02-22 13:12:57,887:DEBUG:filelock:acquire:343:Lock 140358771067648 not acquired on /root/.cache/huggingface/hub/.locks/models--deepdml--faster-whisper-large-v3-turbo-ct2/e76620f83d5f5b69efd3d87e3dc180c1bd21df9fbebacfd4335e5e1efcc018da.lock, waiting 0.05 seconds ... 2026-02-22 13:12:57,937:DEBUG:filelock:acquire:331:Attempting to acquire lock 140358771067648 on /root/.cache/huggingface/hub/.locks/models--deepdml--faster-whisper-large-v3-turbo-ct2/e76620f83d5f5b69efd3d87e3dc180c1bd21df9fbebacfd4335e5e1efcc018da.lock 2026-02-22 13:12:57,937:DEBUG:filelock:acquire:343:Lock 140358771067648 not acquired on /root/.cache/huggingface/hub/.locks/models--deepdml--faster-whisper-large-v3-turbo-ct2/e76620f83d5f5b69efd3d87e3dc180c1bd21df9fbebacfd4335e5e1efcc018da.lock, waiting 0.05 seconds ... 2026-02-22 13:12:57,987:DEBUG:filelock:acquire:331:Attempting to acquire lock 140358771067648 on /root/.cache/huggingface/hub/.locks/models--deepdml--faster-whisper-large-v3-turbo-ct2/e76620f83d5f5b69efd3d87e3dc180c1bd21df9fbebacfd4335e5e1efcc018da.lock 2026-02-22 13:12:57,987:DEBUG:filelock:acquire:343:Lock 140358771067648 not acquired on /root/.cache/huggingface/hub/.locks/models--deepdml--faster-whisper-large-v3-turbo-ct2/e76620f83d5f5b69efd3d87e3dc180c1bd21df9fbebacfd4335e5e1efcc018da.lock, waiting 0.05 seconds ... 2026-02-22 13:12:58,037:DEBUG:filelock:acquire:331:Attempting to acquire lock 140358771067648 on /root/.cache/huggingface/hub/.locks/models--deepdml--faster-whisper-large-v3-turbo-ct2/e76620f83d5f5b69efd3d87e3dc180c1bd21df9fbebacfd4335e5e1efcc018da.lock 2026-02-22 13:12:58,037:DEBUG:filelock:acquire:343:Lock 140358771067648 not acquired on /root/.cache/huggingface/hub/.locks/models--deepdml--faster-whisper-large-v3-turbo-ct2/e76620f83d5f5b69efd3d87e3dc180c1bd21df9fbebacfd4335e5e1efcc018da.lock, waiting 0.05 seconds ... 2026-02-22 13:12:58,088:DEBUG:filelock:acquire:331:Attempting to acquire lock 140358771067648 on /root/.cache/huggingface/hub/.locks/models--deepdml--faster-whisper-large-v3-turbo-ct2/e76620f83d5f5b69efd3d87e3dc180c1bd21df9fbebacfd4335e5e1efcc018da.lock 2026-02-22 13:12:58,088:DEBUG:filelock:acquire:343:Lock 140358771067648 not acquired on /root/.cache/huggingface/hub/.locks/models--deepdml--faster-whisper-large-v3-turbo-ct2/e76620f83d5f5b69efd3d87e3dc180c1bd21df9fbebacfd4335e5e1efcc018da.lock, waiting 0.05 seconds ... 2026-02-22 13:12:58,093:DEBUG:filelock:release:364:Attempting to release lock 140358748802176 on /root/.cache/huggingface/hub/.locks/models--deepdml--faster-whisper-large-v3-turbo-ct2/e76620f83d5f5b69efd3d87e3dc180c1bd21df9fbebacfd4335e5e1efcc018da.lock 2026-02-22 13:12:58,093:DEBUG:filelock:release:367:Lock 140358748802176 released on /root/.cache/huggingface/hub/.locks/models--deepdml--faster-whisper-large-v3-turbo-ct2/e76620f83d5f5b69efd3d87e3dc180c1bd21df9fbebacfd4335e5e1efcc018da.lock Fetching 6 files: 100%|██████████| 6/6 [00:28<00:00, 4.79s/it] INFO: 172.18.0.3:49268 - "POST /v1/models/deepdml/faster-whisper-large-v3-turbo-ct2 HTTP/1.1" 200 OK 2026-02-22 13:12:58,138:DEBUG:filelock:acquire:331:Attempting to acquire lock 140358771067648 on /root/.cache/huggingface/hub/.locks/models--deepdml--faster-whisper-large-v3-turbo-ct2/e76620f83d5f5b69efd3d87e3dc180c1bd21df9fbebacfd4335e5e1efcc018da.lock 2026-02-22 13:12:58,138:DEBUG:filelock:acquire:334:Lock 140358771067648 acquired on /root/.cache/huggingface/hub/.locks/models--deepdml--faster-whisper-large-v3-turbo-ct2/e76620f83d5f5b69efd3d87e3dc180c1bd21df9fbebacfd4335e5e1efcc018da.lock 2026-02-22 13:12:58,138:DEBUG:filelock:release:364:Attempting to release lock 140358771067648 on /root/.cache/huggingface/hub/.locks/models--deepdml--faster-whisper-large-v3-turbo-ct2/e76620f83d5f5b69efd3d87e3dc180c1bd21df9fbebacfd4335e5e1efcc018da.lock 2026-02-22 13:12:58,138:DEBUG:filelock:release:367:Lock 140358771067648 released on /root/.cache/huggingface/hub/.locks/models--deepdml--faster-whisper-large-v3-turbo-ct2/e76620f83d5f5b69efd3d87e3dc180c1bd21df9fbebacfd4335e5e1efcc018da.lock 2026-02-22 13:13:06,496:INFO:speaches.executors.shared.base_model_manager:_load:75:Model deepdml/faster-whisper-large-v3-turbo-ct2 loaded in 14.80s 2026-02-22 13:13:06,496:DEBUG:speaches.executors.shared.base_model_manager:_increment_ref:83:Incremented ref count for deepdml/faster-whisper-large-v3-turbo-ct2, self.ref_count=1 2026-02-22 13:13:06,496:INFO:faster_whisper:transcribe:391:Processing audio with duration 00:05.280 2026-02-22 13:13:06,496:INFO:faster_whisper:transcribe:428:VAD filter removed 00:01.184 of audio 2026-02-22 13:13:11,105:INFO:faster_whisper:transcribe:463:Detected language 'fr' with probability 0.99 2026-02-22 13:13:11,328:INFO:speaches.executors.whisper:handle_non_streaming_transcription_request:181:Transcribed 5.28 seconds of audio in 19.632597505988088 seconds 2026-02-22 13:13:11,328:DEBUG:speaches.executors.shared.base_model_manager:_decrement_ref:88:Decremented ref count for deepdml/faster-whisper-large-v3-turbo-ct2, self.ref_count=0 2026-02-22 13:13:11,328:DEBUG:speaches.executors.shared.base_model_manager:_decrement_ref:91:Model deepdml/faster-whisper-large-v3-turbo-ct2 is idle, scheduling offload in 300s 2026-02-22 13:13:11,328:ERROR:speaches.routers.stt:transcription_response_to_http_response:105:Unexpected streaming transcription response type: INFO: 192.168.1.27:37238 - "POST /v1/audio/transcriptions HTTP/1.1" 200 OK LĂ  on est bon cĂŽtĂ© backend : Whisper s’exĂ©cute correctement, en français, sur `deepdml/faster-whisper-large-v3-turbo-ct2` (5.28 s audio, 19.6 s de traitement CPU). L’erreur que tu vois encore cĂŽtĂ© Open WebUI vient juste d’un **mauvais type de rĂ©ponse retournĂ© par speaches**. Ligne clĂ© : > `Unexpected streaming transcription response type: ` Speaches renvoie un objet `Transcription` (rĂ©ponse non-streaming), alors qu’il a cru ĂȘtre en mode « streaming chunk ». Open WebUI, lui, considĂšre la requĂȘte comme streaming (il envoie des chunks) et s’attend Ă  un flux d’events. ### Fix simple cĂŽtĂ© Open WebUI Dans **Admin Panel → Settings → Audio** (STT) : - Assure-toi que : - **STT Engine** : OpenAI - **STT URL** : `http://192.168.1.11:8200/v1` - **STT Model** : `deepdml/faster-whisper-large-v3-turbo-ct2` - DĂ©sactive (si prĂ©sent) tout mode « streaming » pour STT (certains builds d’Open WebUI ont un toggle « Streaming STT » ou similaire). Il faut que la requĂȘte soit de type **/v1/audio/transcriptions** classique, pas streaming. Ensuite, dans Open WebUI, teste le micro en **mode message unique** (un clic, tu parles, tu relĂąches, ça envoie), et non en dictĂ©e continue. Le log speaches montre dĂ©jĂ  : ```text "POST /v1/audio/transcriptions HTTP/1.1" 200 OK ``` Donc cĂŽtĂ© serveur tout est bon, la transcription est bien produite. Il reste juste Ă  ce qu’Open WebUI consomme la rĂ©ponse comme une transcription simple, pas comme un flux. Si aprĂšs avoir vĂ©rifiĂ© ça tu as encore une erreur, envoie-moi la notification exacte affichĂ©e dans l’UI (copier/coller du message rouge complet), et on ajustera le paramĂ©trage Open WebUI (certains thĂšmes ajoutent un flag `chunked` dans la requĂȘte STT qu’on peut dĂ©sactiver). --- # ok c'est bon ca marche, on est bon niveau reconnaissance vocale et voix. FAit moi un descriptif complet de cette configuration audio pour que je puisse facilement la reproduire stp Voici le descriptif complet de ta **config audio Effi** (STT + TTS), telle qu’on l’a stabilisĂ©e. *** ## 1. STT – Speaches (Whisper) sur folzo-Corp ### Conteneur Docker `speaches-stt` (folzo-Corp) Fichier `~/speaches/docker-compose.yml` : ```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: ``` Points importants : - ModĂšle STT : `deepdml/faster-whisper-large-v3-turbo-ct2` (CT2, turbo).[^29_1] - Langue forcĂ©e : `WHISPER__LANGUAGE=fr`. - Compute type CPU : `float32` (Ă©vite les erreurs int8). - `speaches-init` enregistre le modĂšle au dĂ©marrage via `POST /v1/models/...`. Commandes de dĂ©ploiement : ```bash cd ~/speaches sudo docker compose up -d ``` *** ## 2. TTS – openedai-speech + Piper FR sur folzo-Corp ### Fichiers de voix Piper Dans `~/openedai-speech/tts-voices` : ```bash 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 ``` ### Config openedai-speech Fichier `~/openedai-speech/tts-config/config.yaml` (partie utile) : ```yaml tts-1: alloy: model: voices/fr_FR-upmc-medium.onnx speaker: 0 # 0 = Jessica, 1 = Pierre (tu peux changer si besoin) tts-1-hd: alloy: model: xtts speaker: voices/alloy.wav # 
 autres voix XTTS inchangĂ©es ``` - `tts-1` = backend Piper (CPU), voix par dĂ©faut **alloy** ↩ modĂšle FR `fr_FR-upmc-medium`. - L’ancienne config `tts-1-hd` (XTTS GPU) reste, mais n’est plus utilisĂ©e. Docker compose (rappel) : ```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 ``` RedĂ©marrage : ```bash cd ~/openedai-speech sudo docker compose restart openedai-speech ``` *** ## 3. Configuration Open WebUI (effi-server) Dans **Admin Panel → Settings → Audio** : - **STT Engine** : `OpenAI` - **STT URL** : `http://192.168.1.11:8200/v1` - **STT Model** : `deepdml/faster-whisper-large-v3-turbo-ct2` - **TTS Engine** : `OpenAI` - **TTS URL** : `http://192.168.1.11:8100/v1` - **TTS Model** : `tts-1` - **Voice / Speaker** : `alloy` (qui correspond Ă  `fr_FR-upmc-medium` cĂŽtĂ© Piper) C’est cette combinaison qui donne : - STT rapide, prĂ©cis en français (large-v3-turbo CT2 sur GPU).[^29_2][^29_1] - TTS français fluide, lĂ©ger cĂŽtĂ© CPU (Piper `fr_FR-upmc-medium`).[^29_3] - GPU principalement utilisĂ© par les LLM (qwen/ministral, bge-m3), plus de charge « fantĂŽme » aprĂšs les Ă©changes. Avec ce descriptif, tu peux reconstruire l’audio d’Effi sur une autre machine en reprenant exactement ces trois blocs : compose speaches, compose openedai-speech + config, et rĂ©glages Open WebUI. [^29_4]
⁂
[^29_1]: https://huggingface.co/deepdml/faster-whisper-large-v3-turbo-ct2 [^29_2]: https://github.com/SYSTRAN/faster-whisper/issues/1030 [^29_3]: https://huggingface.co/rhasspy/piper-voices/tree/main/fr/fr_FR/upmc/medium [^29_4]: https://huggingface.co/rhasspy/piper-voices/blob/49a0d23f04e055f1766e5ad15ea2d121a90fa17a/fr/fr_FR/upmc/medium/fr_FR-upmc-medium.onnx.json