1 points par GN⁺ 2026-03-18 | Aucun commentaire pour le moment. | Partager sur WhatsApp
  • Retour d’expérience détaillant étape par étape la mise en place d’un assistant vocal entièrement local basé sur Home Assistant, pour s’affranchir de Google Home
  • Utilisation de llama.cpp et d’une architecture local-first afin d’obtenir des réponses rapides et de préserver la confidentialité sans dépendance au cloud
  • Expérimentation de diverses combinaisons de GPU, modèles, STT et TTS pour comparer performances et qualité, puis déterminer la configuration optimale
  • Mise en œuvre de fonctions concrètes du quotidien, comme la météo, la recherche ou la lecture de musique, grâce à la conception de prompts et à des scripts d’automatisation
  • Au final, création d’un environnement d’assistant vocal local fiable garantissant la protection de la vie privée

Configuration matérielle

  • Home Assistant fonctionne sur un NAS UnRaid, et le serveur vocal utilise un MiniPC Beelink compatible USB4 ainsi qu’un boîtier eGPU
    • Plusieurs GPU ont été testés, dont les RTX 3050 à 3090 et la RX 7900XTX
    • Les RTX 3090 et RX 7900XTX répondent en 1 à 2 secondes, la RTX 3050 en environ 3 secondes
  • Le matériel vocal se compose de HA Voice Preview Satellite, de deux Satellite1 Small Squircle Enclosure et d’un Pixel 7a

Modèles et performances

  • Plusieurs modèles ont été testés, dont GGML GPT-OSS:20B, la série Unsloth Qwen3 et GLM 4.7 Flash (30B)
  • Tous les modèles prennent en charge les fonctions de base de tool calling
  • Les critères d’évaluation comprennent le contrôle multi-appareils, la compréhension du contexte, la gestion des commandes mal reconnues et la capacité à ignorer les entrées erronées

Logiciels du serveur vocal

  • llama.cpp est recommandé comme moteur d’exécution des modèles
  • Entrée vocale (STT)
    • Wyoming ONNX ASR (Nvidia Parakeet V2, branche OpenVINO) : temps d’inférence CPU d’environ 0,3 seconde
    • Rhasspy Faster Whisper : relativement plus lent sur une base ONNX CPU
  • Sortie vocale (TTS)
    • Kokoro TTS : permet plusieurs combinaisons de voix et traite bien le texte
    • Piper (CPU) : prend en charge diverses voix, mais montre des faiblesses pour les nombres et les adresses
  • Intégration LLM dans Home Assistant
    • LLM Conversation : améliore la qualité des conversations de base
    • LLM Intents : fournit des outils comme la recherche web, la recherche de lieux et les prévisions météo

Passage de Google Assistant à un assistant local

  • La baisse progressive de la précision des réponses et des fonctionnalités de Google Assistant a fait apparaître la nécessité d’une alternative
  • Les problèmes de confidentialité et l’impossibilité de garder le contrôle lors d’une panne du cloud ont également été des facteurs majeurs du changement

Premières tentatives et amélioration des modèles

  • Au départ, les modèles par défaut d’Ollama étaient utilisés, mais les échecs de tool calling étaient fréquents
  • L’utilisation de modèles GGUF haute précision de HuggingFace a nettement amélioré les performances
  • Pour éviter les coupures dans la sortie vocale liées à l’instabilité du Wi‑Fi, une configuration de streaming et un réseau IoT dédié ont été mis en place

Extension des fonctionnalités et conception des prompts LLM

  • L’assistant vocal a été configuré pour gérer la météo, les horaires d’ouverture, les connaissances générales et la lecture de musique
  • L’intégration llm-intents a permis d’étendre les fonctions, mais les premiers résultats restaient limités
  • La conception des prompts s’est révélée être un élément clé
    • L’ajout de sections # par service et de listes d’instructions précises a amélioré la précision du tool calling du LLM
    • La suppression des exclamations et emojis inutiles a permis d’obtenir un format de réponse mieux adapté au TTS
    • ChatGPT a été utilisé pour améliorer les prompts de manière itérative

Résolution de problèmes par l’automatisation

  • La fonction de lecture musicale ne pouvant pas être gérée directement par le LLM, elle a été complétée par des scripts d’automatisation Home Assistant
    • La commande « Play {music} » sert de déclencheur pour lancer la musique sur le media_player correspondant à l’appareil satellite demandé
    • La commande « Stop playing » permet l’arrêt
  • Par la suite, des mises à jour ont permis au LLM d’effectuer naturellement la recherche et la lecture de musique, mais l’automatisation reste une approche utile

Entraînement d’un mot d’activation personnalisé

  • Le mot d’activation « Hey Robot » est utilisé à la place du mot d’activation par défaut
  • L’entraînement a duré environ 30 minutes avec microWakeWord-Trainer-Nvidia-Docker
  • Le taux de faux positifs est comparable à celui de Google Home, avec une amélioration possible grâce à une fonction de coupure automatique du micro

Résultat final

  • Même si l’ensemble reste un peu complexe pour l’utilisateur moyen, un environnement d’assistant vocal local finement réglable a été mis en place
  • Il permet la protection de la vie privée, un contrôle stable et un ajustement des performances selon les besoins de l’utilisateur
  • Cet assistant vocal totalement indépendant du cloud offre à la fois fiabilité et plaisir d’utilisation

Aucun commentaire pour le moment.

Aucun commentaire pour le moment.