Convertir un texte en nombre

Salutations amies/amis internautes

Actuellement, je m’amuse à créer des commandes vocales. Mais je suis tombé sur un os quand j’ai voulu commander un minuteur. Quand par exemple je prononce :

Lance le minuteur pour 10 minutes

Faster-whisper va parfois me le retranscrire :

Lance le minuteur pour dix minutes

Et là mon automatisation tombe à l’eau, car la variable que je récupère est censée contenir un nombre … Donc pour résumer tout fonctionne bien, que ça soit le satellite, le déclenchement de l’automatisation, même changer la valeur du minuteur (quand faster-whisper écrit les nombres avec des chiffres). Là où ça coince c’est vraiment cette conversion STT qui parfois m’écrit le nombre en toutes lettres …

J’ai beau cherché, je ne trouve pas de solution à mon problème, le mieux que j’ai pu trouver est :
https://pypi.org/project/word2number/
Mais quand on regarde l’intégration python de home assistant, il est écrit :

It is not possible to use Python imports with this integration

Donc je ne pourrai pas importer ce module.

Si quelqu’un a une idée, soit pour forcer faster-whisper à écrire les nombre avec des chiffres, ou un moyen dans HA pour transformer les nombres écrit en toutes lettres.

Merci d’avance

Hello

Quel matériel utilise tu pour assist ?
Les sentences « minuteur » sont natives dans HA, pas la peine de creer des automatisations.
La seule contrainte, avoir un équipement compatible : ESP intégrant le bon code, Wyoming satellite, application companion.

Tu peux par exemple dire : « Démarre un minuteur pizza de 10 minutes », ou " allume la télévision dans 5 minutes"…etc

Et pas de pb de conversion texte en nombre :wink:

intents/sentences/fr at main · home-assistant/intents · GitHub

Et au passage un petit conseil, remplace whisper par vosk :wink:

1 « J'aime »

HA

Apparemment non, les minuteurs ne sont pas natifs avec HA.

En ce qui concerne VOSK, j’ai déjà regardé un petit peu, mais quand je vois ça :

Recognition is very poor compared to Whisper unless you use one of the larger models.

Et ça :

Big models are for the high-accuracy transcription on the server. Big models require up to 16Gb in memory since they apply advanced AI algorithms

Source

Mon serveur risque d’être sur les rotules pour les mêmes résultats. À l’occasion je testerai quand même ça sur mon pc de bureau histoire de voir les résultats et combien ce modèle consomme en ressource.

Tu as lancé le minuteur sur quel équipement ?
Comme indiqué ça ne fonctionne pas sur tous.

Exemple sur companion :

Pour vosk, fais un test et tu reviens nous dire :grin:

Faster Whisper est optimal qu’en anglais, par contre pour les autres langues…no comment .

Donc normal que les retours sur un forum anglophone,pour des anglophones , ne soient pas très bon.
Mais sur ce même forum anglophone, sur lequel j’ai conseillé vosk pour de l’espagnol, de l’Allemand, du Suédois,…etc tous les retours sont plus que positifs comparés à Whisper.

Plusieurs d’entre nous ici utilisent vosk ( même sur RPI) et en sont plus que satisfait comparé à Whisper.

Et pas la peine d’utiliser un modèle différent que celui chargé par défaut par l’addon. Il est largement suffisant pour les sentences natives HA ou autres

A toi de voir…

@+

J’ai simplement utilisé assist.

Exemple concret du comportement que je souhaite :
Quand je suis dans la cuisine, je veux pouvoir dire à mon téléphone :

Démarre le minuteur pour dix minutes

Puis dix minutes plus tard, mon téléphone m’avertira que le temps est écoulé.

En utilisant le modèle « medium-int8 », je suis très satisfait, le seul problème qui persiste est cette fameuse retranscription de certains nombres en toutes lettres.

C’est natif HA avec companion et fonctionne très bien .

Pour ton pipeline Whisper, quel délais entre l’ordre et l’action ?

Je viens de tester et à la louche sans chrono c’est 6s.

1 à 2 secondes sur RPI environ, et moins d’une seconde sur un i3

Ok, comme je l’ai déjà mentionné : à l’occasion je testerai.
Pour l’instant je suis satisfait, quand je cuisine je ne suis pas à 4s près, et on dévie du problème posé : comment s’assurer qu’un nombre sera bien transcrit en numérique plutôt qu’en toutes lettres ?

En utilisant les sentences natives :wink:

HA

Bah non … ça n’a pas changé depuis tout à l’heure.

HA_jackbot

Et l’exemple qui à fonctionné chez toi, ne fonctionne pas chez moi. Donc par définition ce n’est pas natif.

Les sentences sont bien natives cf mon lien vers le github de home assistant dans mon premier post : intents/sentences/fr at main · home-assistant/intents · GitHub

Tu es sur Android ou iOS ? Ta version de HA ?

Ni l’un ni l’autre

En ce qui concerne ma version de HA : 2024.8.1

Depuis tout à l’heure je te dis que les minuteurs fonctionnent nativement avec esp32, Wyoming satellite…et companion ( iOS et Android).

Tu utilises quoi comme matériel/ satellite pour Assist ?

Un pinephone sur lequel j’ai installé ça : GitHub - rhasspy/wyoming-satellite: Remote voice satellite using Wyoming protocol
C’est donc bien un wyoming satellite !

Et comme je l’ai dis dans mon premier post, toute la chaîne wyoming fonctionne très bien, le seul truc qui foire c’est que, parfois, certains nombres sont écrit en toutes lettres par faster-whisper.

Et je suis prêt à parier que si tu prononce : « 2 minutes », n’importe quel STT pourrait te sortir :
« de minutes »
« deux minutes »
« d’eux minutes »
ou encore d’autres trucs qui sont bien des mots français, mais pas des nombres. Or pour démarrer un minuteur il faut une valeur numérique, là est tout le problème.

Tu as mis à jour ton Wyoming Satellite ?
Dans le github tu as bien les fonctions de timer d’implementées.

Ce que j’essaie de te faire comprendre c’est qu’avec ces fonctions timer natives pas de pb de conversion texte vers nombre et pas besoin de s’embêter avec des auto

J’ai fais l’installation ce week-end, donc ça ne peut pas être plus à jour.

Tu me parles de téléphone au début, et maintenant c’est finalement Wyoming satellite :thinking:.

Les 2 sont bien nativement pris en charge pour les minuteurs depuis plusieurs mois et sont fonctionnels sans créer des automatisations.

Je n’ai pas d’autres réponses à t’apporter sur fe sujet mais d’autres membres prendront certainement le relais

@+

Un pinephone sur lequel j’ai installé ça : GitHub - rhasspy/wyoming-satellite: Remote voice satellite using Wyoming protocol

C’est les 2, un téléphone ET un wyoming satellite