IdentifiantMot de passe
Loading...
Mot de passe oubli� ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les r�ponses en temps r�el, voter pour les messages, poser vos propres questions et recevoir la newsletter

Python Discussion :

traitement de phrases assistent vocal


Sujet :

Python

  1. #1
    Membre averti
    Homme Profil pro
    �tudiant
    Inscrit en
    Mars 2018
    Messages
    12
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Alpes Maritimes (Provence Alpes C�te d'Azur)

    Informations professionnelles :
    Activit� : �tudiant

    Informations forums :
    Inscription : Mars 2018
    Messages : 12
    Par d�faut traitement de phrases assistent vocal
    bonjours a tous ! (d�soler par avance pour les fautes, je suis dyslexique) je d�veloppe un assistent vocal domotique sans pr�tention depuis quelque temps en python 3.X. pour la reconnaissance vocal j'utilise l'API de google et je lance la reconnaissance vocale a l'aide d'un mot clef gr�ce a snowboy. il peut allumer des lampes, le chauffage mai aussi effectuer de recherche web, des traduction, donner de d�finition avec la librairie Wikipedia etc. il tourne sous Raspbian sur une rpi. mon probl�me est le suivent :

    quand je r�cup�re la phrase reconnue par google. je doit la traiter pour d�terminer l'action a effectuer (recherche, d�finition etc.), cependant pour l�instant je fonctionne par mot clef avec des ligne de codes b�te et m�chant. le code n'est qu'un alignement de :

    if mot_clef1 in phrase or mot_clef2 in phrase and mot_clef3 in phrase : effectuer l'action

    cependant ce syst�me est fastidieux a coder, et peut perforent car le temps de travaille serai tr�s long si on devais programmer tout les phrase possible or si on met peut de mot clef dans notre condition cela peut �tre pr�sidentiable pour la pr�cision (faut positifs).

    j'aimerai donc savoirs si il y aurai un moyen plus �l�gant que des condition � outrance ou/et plus pr�ci pour analyser les phrase reconnue ?

  2. #2
    Membre chevronn�
    Homme Profil pro
    BTS SN IR
    Inscrit en
    Mai 2017
    Messages
    514
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    �ge : 26
    Localisation : France, Sa�ne et Loire (Bourgogne)

    Informations professionnelles :
    Activit� : BTS SN IR

    Informations forums :
    Inscription : Mai 2017
    Messages : 514
    Par d�faut
    Bonjour,
    Je ne conna�t pas L'api Google, mais quand je voit : if mot_clef1 in phrase or mot_clef2 in phrase and mot_clef3 in phrase : effectuer l'action est-ce que faire quelque chose du style:
    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
    4
    5
    6
    7
     
    if phrase.split()[0] == "recherche":
    	a = phrase.split().pop(0)
    	fonction_recherche_google(' '.join(a))
    elif phrase in "allume les lampes":
    	...
    elif ..
    Ce n'est qu'une proposition, sinon si tu souhaite avoir plein de commande je suis pas sur que tu puisse le faire autrement que comme �a.
    Le seul truc que tu peut faire c'est � la limite passer ta phrase en argument d'une fonction (ex recherche_google)

  3. #3
    Membre averti
    Homme Profil pro
    �tudiant
    Inscrit en
    Mars 2018
    Messages
    12
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Alpes Maritimes (Provence Alpes C�te d'Azur)

    Informations professionnelles :
    Activit� : �tudiant

    Informations forums :
    Inscription : Mars 2018
    Messages : 12
    Par d�faut
    oui c'est �a, vous auriez une id�e plus �l�gante que mon fonctionnent actuel ? quand � l'API google elle ne fais que transcrire en texte un enregistrent audio.

  4. #4
    Membre chevronn�
    Homme Profil pro
    BTS SN IR
    Inscrit en
    Mai 2017
    Messages
    514
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    �ge : 26
    Localisation : France, Sa�ne et Loire (Bourgogne)

    Informations professionnelles :
    Activit� : BTS SN IR

    Informations forums :
    Inscription : Mai 2017
    Messages : 514
    Par d�faut
    Bah je pense pas qu'il va y avoir 15 000 fonctions.
    D�tecter le mot clef de l'instruction (ex recherche Google, recherche wikipedia, recherche YouTube, Ect ..) qui sera le premier mot de la phrase, et tu passes en argument le reste de la phrase, exemple d'utilisation dans mon pr�c�dant post.


    Pour des instructions du type 'allume les lampes' le mot clef peut �tre 'allumer':
    et apr�s je ne sais pas comment tu g�res �a et je n'y conna�t rien mais si tu passes par un controller physique qui g�re lampe, chauffage et compagnie je pense que l'utilisation d'un dictionnaire du type {'lampe' : 1, 'gaz': 2, 'volet': 3, ... } peut �tre int�ressant, tu passes au controller juste un ID et lui pourrait switch on/off la sortie n�ID ?
    Bien sur c'est dans le cas o� tu aurais un controller physique, m'enfin maintenant avec l'explosion du "tout connecter" je suis pas certains..

  5. #5
    Membre averti
    Homme Profil pro
    �tudiant
    Inscrit en
    Mars 2018
    Messages
    12
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Alpes Maritimes (Provence Alpes C�te d'Azur)

    Informations professionnelles :
    Activit� : �tudiant

    Informations forums :
    Inscription : Mars 2018
    Messages : 12
    Par d�faut
    si si j'ai un contr�le physique, je g�re �a avec des des relais ou j��mule les t�l�commandes IR de mes lampes led. et le dictionnaire serai une bonne id�e, j'ai aussi entendu parler du xml mai je sais pas trop si c'est adapter a cette situation.

  6. #6
    Membre chevronn�
    Homme Profil pro
    BTS SN IR
    Inscrit en
    Mai 2017
    Messages
    514
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    �ge : 26
    Localisation : France, Sa�ne et Loire (Bourgogne)

    Informations professionnelles :
    Activit� : BTS SN IR

    Informations forums :
    Inscription : Mai 2017
    Messages : 514
    Par d�faut
    Citation Envoy� par micka.Lo Voir le message
    si si j'ai un contr�le physique, je g�re �a avec des des relais ou j��mule les t�l�commandes IR de mes lampes led. et le dictionnaire serai une bonne id�e, j'ai aussi entendu parler du xml mai je sais pas trop si c'est adapter a cette situation.
    Je peut donner des pistes mais difficile de vous donner le meilleur syst�me sans conna�tre la configuration exacte.
    Avec un bout de code pour l'allumage de la lampe ou autre je pourrait toujours voir comment �a marche.

  7. #7
    Membre averti
    Homme Profil pro
    �tudiant
    Inscrit en
    Mars 2018
    Messages
    12
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Alpes Maritimes (Provence Alpes C�te d'Azur)

    Informations professionnelles :
    Activit� : �tudiant

    Informations forums :
    Inscription : Mars 2018
    Messages : 12
    Par d�faut
    en fait c'est tout con ca resemble en gros a ca : je d�tecte l'action a effectuer avec mes condition :
    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    if ('table' in phrase and 'nuit' in phrase) or 'chevet' in phrase:
                    self.control_arduino(1)
    ensuite avec la fonction controle_arduino j'envoi un chiffre entre 1 et 14 (mes 14 appareilles contr�lable) a mon arduino (les GPIO de ma rpi sont mort). elle regarde ensuit si la lampe est allum� ou non et elle change son �tat.
    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
    4
    def controle_arduino (self, lemps):
                    port = self.port
                    port.write(lemps.encode('ascii'))
                    port.write(b'\n')

  8. #8
    Membre chevronn�
    Homme Profil pro
    BTS SN IR
    Inscrit en
    Mai 2017
    Messages
    514
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    �ge : 26
    Localisation : France, Sa�ne et Loire (Bourgogne)

    Informations professionnelles :
    Activit� : BTS SN IR

    Informations forums :
    Inscription : Mai 2017
    Messages : 514
    Par d�faut
    Sinon utiliser des synonymes ?
    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
    4
    5
    6
    7
     
     
    lampe = (ampoule, le truc qui brille, lampe, chevet, ect..)
    for i in lampe:
    	if i in phrase:
    		self.control_arduino(1)
    		break
    Bon bien sur l'ordinateur ne sait pas se qu'une une lampe, ou le chauffage, si tu veut un v�ritable syst�me intelligent il faut lui apprendre se que c'est (ou plut�t quoi en faire)
    Sinon est-ce que tu � r�ellement besoin d'utiliser 48 mots diff�rents pour faire le m�me truc ?

  9. #9
    Membre averti
    Homme Profil pro
    �tudiant
    Inscrit en
    Mars 2018
    Messages
    12
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Alpes Maritimes (Provence Alpes C�te d'Azur)

    Informations professionnelles :
    Activit� : �tudiant

    Informations forums :
    Inscription : Mars 2018
    Messages : 12
    Par d�faut
    Oui , d�j� c'est plus simple d'utilisation et ensuite il y a d�j� une quarantaine d'actions que mon assistant peut effectuer, si je dois me souvenir de la phrase exacte pour tout les actions �a deviendrai tout de suite mouins int�ressant et puis je compte impl�menter beaucoup d'autres fonctionnalit�s comme envoyer de mails, cr�er des r�veil, ce connecter � mon t�l�phone pour par exemple envoyer des SMS. c'est pour �a que j'aurais besoin d'un syst�me plus intelligent pour traiter une requ�te.

  10. #10
    Membre chevronn�
    Homme Profil pro
    BTS SN IR
    Inscrit en
    Mai 2017
    Messages
    514
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    �ge : 26
    Localisation : France, Sa�ne et Loire (Bourgogne)

    Informations professionnelles :
    Activit� : BTS SN IR

    Informations forums :
    Inscription : Mai 2017
    Messages : 514
    Par d�faut
    Bonjour,
    Il n'y � pas 36 solutions malheureusement.
    Soit tu cr�es ton AI de A � Z soit tu utilises une ( assistant Google https://developers.google.com/assist...ibrary/python/, Cortana, Siri, ect...)

  11. #11
    Membre averti
    Homme Profil pro
    �tudiant
    Inscrit en
    Mars 2018
    Messages
    12
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Alpes Maritimes (Provence Alpes C�te d'Azur)

    Informations professionnelles :
    Activit� : �tudiant

    Informations forums :
    Inscription : Mars 2018
    Messages : 12
    Par d�faut
    en tout cas c'est s�r que je veux pas utiliser cette librairie parce que si non j'ach�te un Google home et c'est pli�, ce qui m'int�resse c'est de le faire moi-m�me. donc si personne n'a d'autres id�es je vais �tre oblig� de rester sur la technique des conditions � la cha�ne.

  12. #12
    Expert confirm� Avatar de BufferBob
    Profil pro
    responsable R&D vidage de truites
    Inscrit en
    Novembre 2010
    Messages
    3 041
    D�tails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activit� : responsable R&D vidage de truites

    Informations forums :
    Inscription : Novembre 2010
    Messages : 3 041
    Par d�faut
    salut,

    comme dit plus haut �a d�pend compl�tement de ce que tu veux faire, quel niveau de "compr�hension" tu cherches � obtenir de la part de ton programme

    tu pourrais par exemple impl�menter un �tiquetage morphosyntaxique (ou POS tagging), qui te permettrait d'identifier la fonction de chaque mot dans la phrase, sujet, verbe, compl�ment etc.

    "r�serve moi un billet sur toto.com"
    "trouve moi le nom d'une r�serve naturelle au Kenya"

    on sent bien qu'avec des if "réserve" in phrase on va difficilement s'en sortir...

    on peut ajouter � �a la reconnaissance d'entit�s nomm�es, ce qui permet justement de reconnaitre "Charles de Gaulle" et non pas juste un d�nomm� Charles qui habiterait la Gaulle, ou de savoir qu'on veut la page wiki de Paris Hilton, et non des hotels Hilton � Paris etc. (m�me si l'API Google le fait d�j� en partie pour toi, ce qui �vite de se retrouver avec "Fran�ois Xavier deux maisons" par exemple)

    au del� il y a la partie compr�hension en elle-m�me, identifier par exemple que toutes ces phrases ont la m�me finalit� :

    "trouve moi un article sur Elon Musk"
    "affiche moi la page wiki du PDG de SpaceX"
    "En parlant d'Elon Musk, tu peux aller me sortir sa fiche wikip�dia stp ?"

    il n'y a pas de m�thode miracle (c'est par ailleurs un domaine de recherche tr�s actif), uniquement des compromis entre "quelque chose qui fonctionne pas trop mal" et "quelque chose qui soit facile � coder", la suggestion des alias plus haut �a pourrait �tre une id�e � creuser, faut juste accepter que �a a ses limites...

  13. #13
    Membre averti
    Homme Profil pro
    �tudiant
    Inscrit en
    Mars 2018
    Messages
    12
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Alpes Maritimes (Provence Alpes C�te d'Azur)

    Informations professionnelles :
    Activit� : �tudiant

    Informations forums :
    Inscription : Mars 2018
    Messages : 12
    Par d�faut
    Merci pour ta r�ponse ! Maintenant j'ai plusieurs pistes de recherche je vais donc les creuser. je vous tiendrai au courant de mon avanc�.

Discussions similaires

  1. R�ponses: 5
    Dernier message: 23/04/2014, 14h53
  2. R�ponses: 5
    Dernier message: 21/02/2014, 15h06
  3. R�ponses: 1
    Dernier message: 03/04/2013, 18h21
  4. Traitement des commandes vocales
    Par bliblo dans le forum MATLAB
    R�ponses: 3
    Dernier message: 20/03/2013, 09h06
  5. TechDays 2012 : Angie cr�e des assistants personnels pilot�s en mode vocal
    Par Gordon Fowler dans le forum G�n�ral Dotnet
    R�ponses: 0
    Dernier message: 09/02/2012, 16h06

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo