Assistant virtuel IA utilisant Python

Contenu

2. Explication du code

Par conséquent, nous créons notre propre assistant virtuel.

Remarques

  • Tous les codes sont disponibles sur mon GitHub.
  • La vidéo de démonstration YouTube et le code vidéo YouTube sont également disponibles sur ma chaîne.
  • Les liens et packages nécessaires sont mentionnés ci-dessous.
  • Il serait apprécié de partager.

codons

2.1. Paquets et bibliothèques requis

pip installer JarvisAI

Ceci est le dernier module d'assistant virtuel, créé par moi. Fournit les fonctionnalités de base de tout assistant virtuel. Le prérequis est juste Python (> 3.6).

Utilisation et fonctionnalités

Après avoir installé la bibliothèque, vous pouvez importer le module:

importer JarvisAI
obj = JarvisAI.JarvisAssistant()
réponse = obj.mic_input()
imprimer(réponse)

La fonctionnalité est effacée avec le nom de la méthode. Vous pouvez vérifier le code, par exemple.

  1. microphone_in
  2. text2speech
  3. effacer
  4. website_opener
  5. envoyer du courrier
  6. dis-moi_date
  7. tell_me_time
  8. launch_any_app
  9. climat
  10. informations
  11. dis-moi

En savoir plus à ce sujet ici et vous pouvez également contribuer à ce référentiel ici.

2.2. Code-

Importations

importer Jarvis AI
importer importer pprint
importer Aléatoire

Création d'objets par JarvisAI selon Documentation

obj = JarvisAI.JarvisAssistant()

Nous avons créé cette fonction 't2s (texte)'. Cela convertira n'importe quel texte en parole. L'ensemble du programme que nous utiliserons (nous appellerons) à cette fonction pour produire de la parole à partir de texte.

déf t2s(texte):
    obj.text2speech(texte)

Nous voulons écouter en permanence les contributions de l'utilisateur, donc ceci' mic_input ()’ essaiera d'obtenir l'audio du microphone de l'ordinateur en continu. Il traitera l'audio et renverra le texte dans la variable 'res'. Nous pouvons utiliser cette variable 'res’ pour effectuer une action en fonction de l'entrée de l'utilisateur.

tandis que vrai:
    res = obj.mic_input()

Prévisions météorologiques: Nous utilisons une expression régulière pour faire correspondre les requêtes sur l'entrée de l'utilisateur. Si « le temps est trouvé’ la température’ dans l'entrée utilisateur 'res', donc nous voulons faire une prévision météorologique. Pas besoin d'écrire les choses à partir de zéro, il suffit d'appeler 'obj.weather (ville = ville)'.

Vous avez juste besoin d'obtenir la ville à partir de la saisie de l'utilisateur et de la transmettre à la fonction météo. Il vous indiquera les prévisions météo de votre ville.

Nous pouvons passer ça' weather_res’ retourné à 't2s (météo_res)’ produire une voix à partir de la chaîne « weather_res ».

tandis que vrai:
    res = obj.mic_input()

si recherche('conditions météorologiques|Température', res):
        ville = res.split(' ')[-1]
        météo_res = obj.météo(ville=ville)
        imprimer(météo_res)
        t2s(météo_res)

informations: De la même manière que le précédent, correspondre au mot « nouvelles »’ à partir de l'entrée utilisateur « res ». il coïncide, appelez 'obj.news'.

reviendra 15 news comme une liste de chaînes. Ensuite, nous pouvons rechercher des nouvelles comme "news_res[0]'Et le passer à’ t2s (news_res[0]) '.

tandis que vrai:
    res = obj.mic_input()

si recherche('nouvelles', res):
        news_res = obj.news()
        pprint.pprint(news_res)
        t2s(F"j'ai trouvé {longueur(news_res)} nouvelles. Vous pouvez le lire. Laisse moi te dire d'abord 2 d'eux")
        t2s(news_res[0])
        t2s(news_res[1])

ça compte presque tout: Vous obtiendrez le premier 500 caractères Wikipedia et les renverra sous forme de chaîne. Vous pouvez utiliser 'obj.tell_me (sujet)'.

Doit passer 'sujet’ un 'dis-moi (thème = thème)'. Le sujet est le mot-clé que vous voulez connaître.

tandis que vrai:
    res = obj.mic_input()

si recherche('parle moi de', res):
        sujet = res.split(' ')[-1]
        wiki_res = obj.tell_me(sujet)
        imprimer(wiki_res)
        t2s(wiki_res)

Date et heure: Il vous indiquera la date et l'heure actuelles de votre système.

tandis que vrai:
    res = obj.mic_input()

si recherche('Date', res):
        date = obj.tell_me_date()
        imprimer(Date)
        imprimer(t2s(Date))

si recherche('temps', res):
        heure = obj.tell_me_time()
        imprimer(temps)
        t2s(temps)

Ouvrez n'importe quel portail Web: Cet 'obj.website_opener (domaine)’ ouvrira n'importe quel portail Web pour vous. Vous avez juste besoin d'obtenir le domaine à partir de l'entrée de l'utilisateur, puis d'aller sur 'obj.website_opener (domaine)'. Il ouvrira le portail Web dans votre navigateur par défaut.

tandis que vrai:
    res = obj.mic_input()

si recherche('ouvert', res):
        domaine = res.split(' ')[-1]
        open_result = obj.website_opener(domaine)
        imprimer(Ouvrir le Résultat)

Lancer n'importe quelle application, jouer, etc.

C'est un peu délicat, fr 'obj.launch_any_app (path_of_app = chemin)’ la fonction dont vous avez besoin pour passer le chemin de votre fichier '.exe'.

C'est pourquoi nous avons créé le dictionnaire 'dict_app’ qui a un 'nom d'application’ comme une clé et un 'chemin’ avec la valeur. Nous pouvons utiliser ceci' dict_app’ chercher. Si l'application de saisie utilisateur existe dans le dictionnaire, nous l'ouvrirons en obtenant l'itinéraire.

L'exemple suivant est uniquement pour Chrome et Jeux épiques.

tandis que vrai:
    res = obj.mic_input()

si recherche('lancement', res):
        dict_app = {
            'chrome': 'C:Fichiers de programme (x86)GoogleChromeApplicationchrome.exe',
            "jeux épiques": 'C:Fichiers de programme (x86)Epic GamesLauncherPortalBinariesWin32EpicGamesLauncher.exe'
        }

        app = res.split(' ', 1)[1]
        chemin = dict_app.get(application)
si chemin est Aucun:
            t2s('Chemin de l'application introuvable')
            imprimer('Chemin de l'application introuvable')
autre:
            t2s('Lancement: ' + application)
            obj.launch_any_app(path_of_app=chemin)

Salutations et discussion, vous pouvez créer des salutations et discuter comme ça pour l'instant.

je travaille sur https://pypi.org/project/JarvisAI/ pour ajouter un type de fonctionnalité de chat à l'aide de Tensorflow. Vous pouvez contribuer Pour le faire mieux.

tandis que vrai:
    res = obj.mic_input()

si recherche('Bonjour', res):
        imprimer('Salut')
        t2s('Salut')

si recherche('Comment allez-vous', res):
        li = ['bon', 'amende', 'super']
        réponse = choix.aléatoire(au)
        imprimer(F"Je suis {réponse}")
        t2s(F"Je suis {réponse}")

si recherche('votre nom|qui es-tu', res):
        imprimer("Je m'appelle Jarvis, Je suis votre assistant personnel")
        t2s("Je m'appelle Jarvis, Je suis votre assistant personnel")

Je demande pour- 'Qu'est ce que tu peux faire?': Ici, nous utilisons simplement 'obj.t2s ()’ produire de la voix. Si vous connaissez Python, vous comprendrez facilement le code suivant:

tandis que vrai:
    res = obj.mic_input()

si recherche('Que pouvez-vous faire', res):
        li_commandes = {
            "sites Web ouverts": "Exemple: 'ouvrez youtube.com",
            "temps": "Exemple: 'quelle heure est il?'",
            "Date": "Exemple: 'quelle date c'est?'",
            "lancer des applications": "Exemple: 'lancer chrome'",
            "dis-moi": "Exemple: 'parle-moi de l'Inde'",
            "conditions météorologiques": "Exemple: 'quel temps/température à Bombay?'",
            "nouvelles": "Exemple: 'nouvelles pour aujourd'hui' ",
        }
        ans = """je peux faire plein de choses, par exemple tu peux me demander l'heure, Date, météo dans votre ville,
        Je peux ouvrir des sites Web pour vous, lancer l'application et plus. Voir la liste des commandes-"""
        imprimer(ans)
        pprint.pprint(li_commandes)
        t2s(ans)

3. Remplissez le code

importer JarvisAI
importation re
importer pprint
importation aléatoire

obj = JarvisAI.JarvisAssistant()


def t2s(texte):
    obj.text2speech(texte)


tandis que vrai:
    res = obj.mic_input()

    si re.recherche('conditions météorologiques|Température', res):
        ville = res.split(' ')[-1]
        météo_res = obj.météo(ville=ville)
        imprimer(météo_res)
        t2s(météo_res)

    si re.recherche('nouvelles', res):
        news_res = obj.news()
        pprint.pprint(news_res)
        t2s(F"j'ai trouvé {longueur(news_res)} nouvelles. Vous pouvez le lire. Laisse moi te dire d'abord 2 d'eux")
        t2s(news_res[0])
        t2s(news_res[1])

    si re.recherche('parle moi de', res):
        sujet = res.split(' ')[-1]
        wiki_res = obj.tell_me(sujet)
        imprimer(wiki_res)
        t2s(wiki_res)

    si re.recherche('Date', res):
        date = obj.tell_me_date()
        imprimer(Date)
        imprimer(t2s(Date))

    si re.recherche('temps', res):
        heure = obj.tell_me_time()
        imprimer(temps)
        t2s(temps)

    si re.recherche('ouvert', res):
        domaine = res.split(' ')[-1]
        open_result = obj.website_opener(domaine)
        imprimer(Ouvrir le Résultat)

    si re.recherche('lancement', res):
        dict_app = {
            'chrome': 'C:Fichiers de programme (x86)GoogleChromeApplicationchrome.exe',
            "jeux épiques": 'C:Fichiers de programme (x86)Epic GamesLauncherPortalBinariesWin32EpicGamesLauncher.exe'
        }

        app = res.split(' ', 1)[1]
        chemin = dict_app.get(application)
        si le chemin est Aucun:
            t2s('Chemin de l'application introuvable')
            imprimer('Chemin de l'application introuvable')
        autre:
            t2s('Lancement: ' + application)
            obj.launch_any_app(path_of_app=chemin)

    si re.recherche('Bonjour', res):
        imprimer('Salut')
        t2s('Salut')

    si re.recherche('Comment allez-vous', res):
        li = ['bon', 'amende', 'super']
        réponse = choix.aléatoire(au)
        imprimer(F"Je suis {réponse}")
        t2s(F"Je suis {réponse}")

    si re.recherche('votre nom|qui es-tu', res):
        imprimer("Je m'appelle Jarvis, Je suis votre assistant personnel")
        t2s("Je m'appelle Jarvis, Je suis votre assistant personnel")

    si re.recherche('Que pouvez-vous faire', res):
        li_commandes = {
            "sites Web ouverts": "Exemple: 'ouvrez youtube.com",
            "temps": "Exemple: 'quelle heure est il?'",
            "Date": "Exemple: 'quelle date c'est?'",
            "lancer des applications": "Exemple: 'lancer chrome'",
            "dis-moi": "Exemple: 'parle-moi de l'Inde'",
            "conditions météorologiques": "Exemple: 'quel temps/température à Bombay?'",
            "nouvelles": "Exemple: 'nouvelles pour aujourd'hui' ",
        }
        ans = """je peux faire plein de choses, par exemple tu peux me demander l'heure, Date, météo dans votre ville,
        Je peux ouvrir des sites Web pour vous, lancer l'application et plus. Voir la liste des commandes-"""
        imprimer(ans)
        pprint.pprint(li_commandes)
        t2s(ans)

4. Dépôt Github

Vous pouvez utiliser mon code en toute liberté. Démarquez-vous si vous aimez mon travail, s'abonner Youtube si tu aimes.

Il suffit de cloner le référentiel https://github.com/Dipeshpal/Jarvis-Assisant.git

Ensuite, exécutez pip install -r requirements.txt

Il installera tout automatiquement.

Il suffit d'ouvrir ceci Dépôt GitHub, lisez-le et vous comprendrez comment vous pouvez contribuer.

Abonnez-vous à notre newsletter

Nous ne vous enverrons pas de courrier SPAM. Nous le détestons autant que vous.