Files
voice-assistant/server/voice_server/text_normalize.py
T
Denis Defolie d20976fea2 Assistant vocal local ESP32 : étapes 1 à 15, et 15b écrite
État du projet au premier commit :
- firmware ESP32 : micro I2S, lecture anti-gigue, MQTT (état retenu, testament),
  mains libres, domotique de démonstration, chien de garde, présence du serveur ;
- serveur Python : sessions, VAD, faster-whisper, pyannote, identification,
  droits par profil, domotique, mot de réveil, Piper ;
- broker Mosquitto : configuration, comptes et ACL (non activés en développement) ;
- étape 15b écrite, en attente d'essai : agent MQTT pour machines Linux.

Étapes 1 à 15 validées. 203 tests, pyright sans erreur.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-09-30 17:41:11 +02:00

14 lines
516 B
Python

"""Normalisation du texte transcrit, commune à l'assistant et à la domotique."""
from __future__ import annotations
import re
import unicodedata
def normalize(text: str) -> str:
"""Minuscules, sans accents ni ponctuation : « Quelle heure est-il ? » → « quelle heure est il »."""
decomposed = unicodedata.normalize("NFD", text.lower())
without_accents = "".join(c for c in decomposed if unicodedata.category(c) != "Mn")
return " ".join(re.sub(r"[^a-z0-9]+", " ", without_accents).split())