Assistente virtuale AI con Python

Contenuti

2. Spiegazione del codice

Pertanto creiamo il nostro assistente virtuale.

Appunti

  • Tutti i codici sono disponibili sul mio GitHub.
  • Il video dimostrativo di YouTube e il codice video di YouTube sono disponibili anche sul mio canale.
  • I link e i pacchetti necessari sono indicati di seguito.
  • La condivisione sarebbe apprezzata.

Codice

2.1. Pacchetti e librerie richiesti

pip installare JarvisAI

Questo è l'ultimo modulo di assistente virtuale, creato da me. Fornisce le funzionalità di base di qualsiasi assistente virtuale. Il prerequisito è solo Python (> 3.6).

Utilizzo e funzionalità

Dopo aver installato la libreria, È possibile importare il modulo:

import JarvisAI
obj = JarvisAI.JarvisAssistant()
risposta = obj.mic_input()
Stampa(risposta)

La funzionalità viene cancellata con il nome del metodo. Puoi controllare il codice, come esempio.

  1. microfono_in
  2. testo2speech
  3. Elimina
  4. website_opener
  5. inviare una mail
  6. tell_me_date
  7. tell_me_time
  8. launch_any_app
  9. clima
  10. Notizia
  11. Dimmi

Leggi di più su questo qui e puoi anche contribuire a questo repository qui.

2.2. Codice-

Importazioni

importare Jarvis AI
importare Rif
importare pprint
importare a caso

Creazione di oggetti di JarvisAI secondo documentazione

obj = JarvisAI.JarvisAssistant()

Abbiamo creato questa funzione 't2s (testo)'. Questo convertirà qualsiasi testo in parlato. L'intero programma che useremo (chiameremo) a questa funzione per produrre discorso dal testo.

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

Vogliamo ascoltare continuamente i contributi dell'utente, quindi questo è mic_input ()’ proverà a ricevere continuamente l'audio dal microfono del computer. Elaborerà l'audio e restituirà il testo nella variabile 'res'. Possiamo usare questa variabile 'res’ eseguire alcune azioni in base all'input dell'utente.

mentre vero:
    res = obj.mic_input()

Previsioni del tempo: Stiamo utilizzando un'espressione regolare per abbinare le query sull'input dell'utente. Se "si trova il tempo"’ la temperatura’ nell'input dell'utente 'res', quindi vogliamo fare una previsione del tempo. Non c'è bisogno di scrivere le cose da zero, chiama semplicemente "obj.weather" (città = città)'.

Hai solo bisogno di ottenere la città dall'input dell'utente e passarla alla funzione meteo. Ti dirà le previsioni del tempo per la tua città.

Possiamo passare questo' weather_res’ tornato a 't2s (meteo_res)’ per produrre voce dalla stringa 'weather_res'.

mentre vero:
    res = obj.mic_input()

Se ricerca('tempo metereologico|temperatura', res):
        città = res.split(' ')[-1]
        weather_res = obj.weather(città=città)
        Stampa(meteo_res)
        t2s(meteo_res)

Notizia: In modo simile al precedente, abbina la parola "notizie"’ dall'input dell'utente 'res'. Si coincide, chiama "obj.news".

Tornerà 15 notizie come un elenco di catene. Quindi, possiamo cercare notizie come "news_res"[0]'E passalo a’ t2s (news_res[0]) '.

mentre vero:
    res = obj.mic_input()

Se ricerca('notizia', res):
        news_res = obj.news()
        pprint.pprint(news_res)
        t2s(F"ho trovato {len(news_res)} notizia. Puoi leggerlo. Lascia che te lo dica prima 2 di loro")
        t2s(news_res[0])
        t2s(news_res[1])

Conta quasi tutto: Avrai il primo 500 Caratteri di Wikipedia e li restituirà come una stringa. Puoi usare 'obj.tell_me (argomento)'.

Deve passare "argomento"’ un "raccontami" (tema = tema)'. L'argomento è la parola chiave che vuoi sapere.

mentre vero:
    res = obj.mic_input()

Se ricerca('Raccontami', res):
        topic = res.split(' ')[-1]
        wiki_res = obj.tell_me(argomento)
        Stampa(wiki_res)
        t2s(wiki_res)

Data e ora: Ti dirà la data e l'ora correnti del tuo sistema.

mentre vero:
    res = obj.mic_input()

Se ricerca('Data', res):
        data = obj.tell_me_date()
        Stampa(Data)
        Stampa(t2s(Data))

Se ricerca('tempo', res):
        tempo = obj.tell_me_time()
        Stampa(tempo)
        t2s(tempo)

Apri qualsiasi portale web: Questo 'obj.website_opener (dominio)’ apri qualsiasi portale web per te. Hai solo bisogno di ottenere il dominio dell'input dell'utente e quindi passare a "obj.website_opener (dominio)'. Aprirà il portale web nel browser predefinito.

mentre vero:
    res = obj.mic_input()

Se ricerca('aperto', res):
        dominio = res.split(' ')[-1]
        open_result = obj.website_opener(dominio)
        Stampa(open_result)

Avvia qualsiasi applicazione, giocare a, eccetera.

Questo è un po 'complicato, in 'obj.launch_any_app (path_of_app = percorso)’ la funzione necessaria per passare il percorso del file '.exe'.

Pertanto abbiamo creato il dizionario 'dict_app’ che ha un 'nome applicazione'’ come chiave e 'percorso'’ come valore. Possiamo usare questo "dict_app’ per eseguire ricerche. Se l'applicazione di input dell'utente esiste nel dizionario, lo apriremo ottenendo il percorso.

L'esempio seguente è solo per Chrome e Giochi Epici.

mentre vero:
    res = obj.mic_input()

Se ricerca('lanciare', res):
        dict_app = {
            'cromo': «C:Programmi (x86)GoogleChromeApplicationchrome.exe',
            'giochi epici': «C:Programmi (x86)Giochi EpiciLauncherPortalBinariesWin32EpicGamesLauncher.exe'
        }

        app = res.split(' ', 1)[1]
        path = dict_app.get(app)
Se il percorso è Nessuno:
            t2s('Percorso dell'applicazione non trovato')
            Stampa('Percorso dell'applicazione non trovato')
altro:
            t2s(«Lancio: ' + app)
            obj.launch_any_app(path_of_app=percorso)

Saluti e Talk, puoi creare saluti e chattare in questo modo per ora.

Sto lavorando su https://pypi.org/project/JarvisAI/ Per aggiungere la funzionalità di chat, digitare utilizzando Tensorflow. Puoi contribuire per renderlo migliore.

mentre vero:
    res = obj.mic_input()

Se ricerca('Ciao', res):
        Stampa('Ciao')
        t2s('Ciao')

Se ricerca('come stai', res):
        li = ['buono', 'bene', 'Grande']
        risposta = random.choice(al)
        Stampa(F"sono {risposta}")
        t2s(F"sono {risposta}")

Se ricerca('il tuo nome|chi sei', res):
        Stampa("Mi chiamo Jarvis, Sono il tuo assistente personale")
        t2s("Mi chiamo Jarvis, Sono il tuo assistente personale")

Domandare- "Cosa puoi fare??': Qui stiamo semplicemente usando 'obj.t2s ()’ per produrre un po' di voce. Se conosci Python, Si comprenderà facilmente il seguente codice:

mentre vero:
    res = obj.mic_input()

Se ricerca('cosa puoi fare', res):
        li_commands = {
            "siti web aperti": "Esempio: «youtube.com aperto",
            "tempo": "Esempio: 'che ore sono?'",
            "Data": "Esempio: «che data è?'",
            "avviare le applicazioni": "Esempio: 'avvia chrome'",
            "Dimmi": "Esempio: 'parlami dell'India'",
            "tempo": "Esempio: 'che tempo/temperatura in Mumbai?'",
            "notizia": "Esempio: 'novità per oggi' ",
        }
        ans = """Posso fare un sacco di cose, Ad esempio, puoi chiedermi tempo, Data, meteo nella tua città,
        Posso aprire siti web per te, avvia l'applicazione e altro ancora. Vedi l'elenco dei comandi-"""
        Stampa(Ans)
        pprint.pprint(li_commands)
        t2s(Ans)

3. Complete el código |

import JarvisAI
import re
import pprint
import random

obj = JarvisAI.JarvisAssistant()


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


mentre vero:
    res = obj.mic_input()

    se re.search('tempo metereologico|temperatura', res):
        città = res.split(' ')[-1]
        weather_res = obj.weather(città=città)
        Stampa(meteo_res)
        t2s(meteo_res)

    se re.search('notizia', res):
        news_res = obj.news()
        pprint.pprint(news_res)
        t2s(F"ho trovato {len(news_res)} notizia. Puoi leggerlo. Lascia che te lo dica prima 2 di loro")
        t2s(news_res[0])
        t2s(news_res[1])

    se re.search('Raccontami', res):
        topic = res.split(' ')[-1]
        wiki_res = obj.tell_me(argomento)
        Stampa(wiki_res)
        t2s(wiki_res)

    se re.search('Data', res):
        data = obj.tell_me_date()
        Stampa(Data)
        Stampa(t2s(Data))

    se re.search('tempo', res):
        tempo = obj.tell_me_time()
        Stampa(tempo)
        t2s(tempo)

    se re.search('aperto', res):
        dominio = res.split(' ')[-1]
        open_result = obj.website_opener(dominio)
        Stampa(open_result)

    se re.search('lanciare', res):
        dict_app = {
            'cromo': «C:Programmi (x86)GoogleChromeApplicationchrome.exe',
            'giochi epici': «C:Programmi (x86)Giochi EpiciLauncherPortalBinariesWin32EpicGamesLauncher.exe'
        }

        app = res.split(' ', 1)[1]
        path = dict_app.get(app)
        se il percorso è Nessuno:
            t2s('Percorso dell'applicazione non trovato')
            Stampa('Percorso dell'applicazione non trovato')
        altro:
            t2s(«Lancio: ' + app)
            obj.launch_any_app(path_of_app=percorso)

    se re.search('Ciao', res):
        Stampa('Ciao')
        t2s('Ciao')

    se re.search('come stai', res):
        li = ['buono', 'bene', 'Grande']
        risposta = random.choice(al)
        Stampa(F"sono {risposta}")
        t2s(F"sono {risposta}")

    se re.search('il tuo nome|chi sei', res):
        Stampa("Mi chiamo Jarvis, Sono il tuo assistente personale")
        t2s("Mi chiamo Jarvis, Sono il tuo assistente personale")

    se re.search('cosa puoi fare', res):
        li_commands = {
            "siti web aperti": "Esempio: «youtube.com aperto",
            "tempo": "Esempio: 'che ore sono?'",
            "Data": "Esempio: «che data è?'",
            "avviare le applicazioni": "Esempio: 'avvia chrome'",
            "Dimmi": "Esempio: 'parlami dell'India'",
            "tempo": "Esempio: 'che tempo/temperatura in Mumbai?'",
            "notizia": "Esempio: 'novità per oggi' ",
        }
        ans = """Posso fare un sacco di cose, Ad esempio, puoi chiedermi tempo, Data, meteo nella tua città,
        Posso aprire siti web per te, avvia l'applicazione e altro ancora. Vedi l'elenco dei comandi-"""
        Stampa(Ans)
        pprint.pprint(li_commands)
        t2s(Ans)

4. Repository Github

Puedes utilizar mi código con total libertad. Destaca si te gusta mi trabajo, suscríbete Youtube si amas.

Simplemente clona el repositorio https://github.com/Dipeshpal/Jarvis-Assisant.git

Después ejecute pip install -r requirements.txt

Instalará todo automáticamente.

Solo abre esto Archivio GitHub, léelo y comprenderá cómo puede contribuir.

Iscriviti alla nostra Newsletter

Non ti invieremo posta SPAM. Lo odiamo quanto te.