Virtueller KI-Assistent mit Python

Inhalt

2. Erklärung des Codes

Deshalb erstellen wir unseren eigenen virtuellen Assistenten.

Anmerkungen

  • Alle Codes sind auf meinem GitHub verfügbar.
  • YouTube-Demovideo und YouTube-Videocode sind auch auf meinem Kanal verfügbar.
  • Die notwendigen Links und Pakete sind unten aufgeführt.
  • Gerne teilen.

Lass uns codieren

2.1. Erforderliche Pakete und Bibliotheken

pip installieren JarvisAI

Dies ist das neueste virtuelle Assistentenmodul, von mir erstellt. Bietet die Grundfunktionalität jedes virtuellen Assistenten. Voraussetzung ist nur Python (> 3.6).

Nutzung und Funktionen

Nach der Installation der Bibliothek, Sie können das Modul importieren:

JarvisAI importieren
obj = JarvisAI.JarvisAssistant()
Antwort = obj.mic_input()
drucken(Antwort)

Die Funktionalität wird mit dem Methodennamen gelöscht. Sie können den Code überprüfen, als Beispiel.

  1. Mikrofon_in
  2. text2speech
  3. löschen
  4. website_opener
  5. Mail senden
  6. tell_me_date
  7. tell_me_time
  8. launch_any_app
  9. Klima
  10. Nachrichten
  11. Sag mir

Lesen Sie mehr darüber hier und Sie können auch zu diesem Repository beitragen hier.

2.2. Code-

Importe

importieren JarvisAI
importieren betreffend
importieren pprint
importieren willkürlich

Objekterstellung von JarvisAI nach Dokumentation

obj = JarvisAI.JarvisAssistant()

Wir haben diese Funktion 't2s . erstellt (Text)’. Dadurch wird jeder Text in Sprache umgewandelt. Das gesamte Programm werden wir verwenden (Wir werden anrufen) auf diese Funktion, um Sprache aus Text zu erzeugen.

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

Wir wollen ständig auf die Beiträge der Nutzer hören, also das' mic_input ()’ wird versuchen, kontinuierlich Audio vom Mikrofon des Computers zu empfangen. Es verarbeitet das Audio und gibt den Text in der Variablen 'res' zurück.. Wir können diese Variable 'res . verwenden’ um eine Aktion gemäß Benutzereingaben auszuführen.

während wahr:
    res = obj.mic_input()

Wettervorhersage: Wir verwenden eine Regex, um Abfragen nach Benutzereingaben abzugleichen. Wenn „Wetter gefunden“ ist’ die Temperatur’ in der Benutzereingabe 'res', Also wollen wir eine Wettervorhersage machen. Du musst nichts von Grund auf neu schreiben, ruf einfach "obj.weather" an (Stadt = Stadt)’.

Sie müssen nur die Stadt aus der Benutzereingabe abrufen und an die Wetterfunktion übergeben. Es wird dir die Wettervorhersage für deine Stadt sagen.

Wir können das passieren' weather_res’ zurück zu 't2s (wetter_res)’ um eine Stimme aus der Zeichenfolge ‚weather_res‘ zu erzeugen.

während wahr:
    res = obj.mic_input()

Wenn Forschung('Wetter|Temperatur', res):
        Stadt = res.split(' ')[-1]
        weather_res = obj.weather(Stadt=Stadt)
        drucken(wetter_res)
        t2s(wetter_res)

Nachrichten: Ähnlich wie beim vorherigen, Übereinstimmung mit dem Wort "Nachrichten"’ aus der Benutzereingabe „res“. Es fällt zusammen, 'obj.news' aufrufen.

Wird zurückkehren 15 Nachrichten als Kettenliste. Dann, wir können nach Nachrichten wie "news_res" suchen[0]'Und gib es weiter an’ t2s (news_res[0]) ‘.

während wahr:
    res = obj.mic_input()

Wenn Forschung('Nachrichten', res):
        news_res = obj.news()
        pprint.pprint(news_res)
        t2s(F"ich habe gefunden {len(news_res)} Nachrichten. Du kannst es lesen. Lass es mich dir zuerst sagen 2 von ihnen")
        t2s(news_res[0])
        t2s(news_res[1])

Es zählt fast alles: Du bekommst den ersten 500 Wikipedia-Zeichen und gibt sie als String zurück. Sie können 'obj.tell_me . verwenden (Thema)’.

Muss "Thema" bestehen’ ein ‚tell_me‘ (Thema = Thema)’. Das Thema ist das Stichwort, das Sie wissen möchten.

während wahr:
    res = obj.mic_input()

Wenn Forschung('Erzähl mir von', res):
        Thema = res.split(' ')[-1]
        wiki_res = obj.tell_me(Thema)
        drucken(wiki_res)
        t2s(wiki_res)

Datum (und Uhrzeit: Es zeigt Ihnen das aktuelle Datum und die aktuelle Uhrzeit Ihres Systems an.

während wahr:
    res = obj.mic_input()

Wenn Forschung('Datum', res):
        Datum = obj.tell_me_date()
        drucken(Datum)
        drucken(t2s(Datum))

Wenn Forschung('Zeit', res):
        time = obj.tell_me_time()
        drucken(Zeit)
        t2s(Zeit)

Öffnen Sie ein beliebiges Webportal: Dieser "obj.website_opener" (Domain)’ öffnet jedes Webportal für Sie. Sie müssen nur die Domain aus der Benutzereingabe abrufen und dann zu 'obj.website_opener . gehen (Domain)’. Es öffnet das Webportal in Ihrem Standardbrowser.

während wahr:
    res = obj.mic_input()

Wenn Forschung('offen', res):
        domain = res.split(' ')[-1]
        open_result = obj.website_opener(Domain)
        drucken(open_result)

Starten Sie eine beliebige Anwendung, abspielen, etc.

Das ist etwas knifflig, de ‘obj.launch_any_app (path_of_app = Pfad)’ die Funktion, die Sie benötigen, um den Pfad Ihrer .exe-Datei zu übergeben.

Deshalb haben wir das Wörterbuch ‘dict_app . erstellt’ die einen "Anwendungsnamen" hat’ als Schlüssel und 'Pfad'’ mit dem Wert. Wir können das verwenden' dict_app’ suchen. Wenn die Benutzereingabeanwendung im Wörterbuch vorhanden ist, Wir werden es öffnen, um die Route zu erhalten.

Das folgende Beispiel ist nur für Chrome und epische Spiele.

während wahr:
    res = obj.mic_input()

Wenn Forschung('Start', res):
        dict_app = {
            'Chrom': 'C:Programmdateien (x86)GoogleChromeApplicationchrome.exe',
            "epische Spiele": 'C:Programmdateien (x86)Epic GamesLauncherPortalBinariesWin32EpicGamesLauncher.exe'
        }

        app = res.split(' ', 1)[1]
        Pfad = dict_app.get(App)
Wenn Weg ist keiner:
            t2s('Anwendungspfad nicht gefunden')
            drucken('Anwendungspfad nicht gefunden')
anders:
            t2s('Starten: ' + App)
            obj.launch_any_app(path_of_app=Pfad)

Grüße und Chat, Sie können jetzt Grüße erstellen und so chatten.

Ich arbeite an https://pypi.org/project/JarvisAI/ um eine Art von Chat-Funktionalität mit Tensorflow hinzuzufügen. Du kannst beitragen um es besser zu machen.

während wahr:
    res = obj.mic_input()

Wenn Forschung('Hallo', res):
        drucken('Hi')
        t2s('Hi')

Wenn Forschung('wie gehts', res):
        li = ['gut', 'fein', 'groß']
        Antwort = random.choice(Bei der)
        drucken(F"ich bin {Antwort}")
        t2s(F"ich bin {Antwort}")

Wenn Forschung('dein Name|Wer bist du', res):
        drucken("Mein Name ist Jarvis, Ich bin dein persönlicher Assistent")
        t2s("Mein Name ist Jarvis, Ich bin dein persönlicher Assistent")

Ich fragte nach- 'Was kannst du tun?’: Hier verwenden wir einfach 'obj.t2s ()’ um eine Stimme zu produzieren. Wenn Sie Python kennen, Sie werden den folgenden Code leicht verstehen:

während wahr:
    res = obj.mic_input()

Wenn Forschung('was kannst du tun', res):
        li_commands = {
            "Webseiten öffnen": "Beispiel: 'youtube.com öffnen",
            "Zeit": "Beispiel: 'wie spät es ist?'",
            "Datum": "Beispiel: 'welches Datum es ist?'",
            "Anwendungen starten": "Beispiel: 'Chrom starten'",
            "Sag mir": "Beispiel: „Erzähl mir von Indien“",
            "Wetter": "Beispiel: 'welches Wetter/welche Temperatur in Mumbai?'",
            "Nachrichten": "Beispiel: "Neuigkeiten für heute" ",
        }
        Jahre = """Ich kann vieles machen, Du kannst mich zum Beispiel nach der Zeit fragen, Datum, Wetter in deiner Stadt,
        Ich kann Websites für Sie öffnen, Anwendung starten und mehr. Siehe die Liste der Befehle-"""
        drucken(Jahre)
        pprint.pprint(li_commands)
        t2s(Jahre)

3. Geben Sie den Code ein

JarvisAI importieren
Importieren
pprint importieren
zufälliger Import

obj = JarvisAI.JarvisAssistant()


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


während wahr:
    res = obj.mic_input()

    wenn re.search('Wetter|Temperatur', res):
        Stadt = res.split(' ')[-1]
        weather_res = obj.weather(Stadt=Stadt)
        drucken(wetter_res)
        t2s(wetter_res)

    wenn re.search('Nachrichten', res):
        news_res = obj.news()
        pprint.pprint(news_res)
        t2s(F"ich habe gefunden {len(news_res)} Nachrichten. Du kannst es lesen. Lass es mich dir zuerst sagen 2 von ihnen")
        t2s(news_res[0])
        t2s(news_res[1])

    wenn re.search('Erzähl mir von', res):
        Thema = res.split(' ')[-1]
        wiki_res = obj.tell_me(Thema)
        drucken(wiki_res)
        t2s(wiki_res)

    wenn re.search('Datum', res):
        Datum = obj.tell_me_date()
        drucken(Datum)
        drucken(t2s(Datum))

    wenn re.search('Zeit', res):
        time = obj.tell_me_time()
        drucken(Zeit)
        t2s(Zeit)

    wenn re.search('offen', res):
        domain = res.split(' ')[-1]
        open_result = obj.website_opener(Domain)
        drucken(open_result)

    wenn re.search('Start', res):
        dict_app = {
            'Chrom': 'C:Programmdateien (x86)GoogleChromeApplicationchrome.exe',
            "epische Spiele": 'C:Programmdateien (x86)Epic GamesLauncherPortalBinariesWin32EpicGamesLauncher.exe'
        }

        app = res.split(' ', 1)[1]
        Pfad = dict_app.get(App)
        wenn Pfad None ist:
            t2s('Anwendungspfad nicht gefunden')
            drucken('Anwendungspfad nicht gefunden')
        anders:
            t2s('Starten: ' + App)
            obj.launch_any_app(path_of_app=Pfad)

    wenn re.search('Hallo', res):
        drucken('Hi')
        t2s('Hi')

    wenn re.search('wie gehts', res):
        li = ['gut', 'fein', 'groß']
        Antwort = random.choice(Bei der)
        drucken(F"ich bin {Antwort}")
        t2s(F"ich bin {Antwort}")

    wenn re.search('dein Name|Wer bist du', res):
        drucken("Mein Name ist Jarvis, Ich bin dein persönlicher Assistent")
        t2s("Mein Name ist Jarvis, Ich bin dein persönlicher Assistent")

    wenn re.search('was kannst du tun', res):
        li_commands = {
            "Webseiten öffnen": "Beispiel: 'youtube.com öffnen",
            "Zeit": "Beispiel: 'wie spät es ist?'",
            "Datum": "Beispiel: 'welches Datum es ist?'",
            "Anwendungen starten": "Beispiel: 'Chrom starten'",
            "Sag mir": "Beispiel: „Erzähl mir von Indien“",
            "Wetter": "Beispiel: 'welches Wetter/welche Temperatur in Mumbai?'",
            "Nachrichten": "Beispiel: "Neuigkeiten für heute" ",
        }
        Jahre = """Ich kann vieles machen, Du kannst mich zum Beispiel nach der Zeit fragen, Datum, Wetter in deiner Stadt,
        Ich kann Websites für Sie öffnen, Anwendung starten und mehr. Siehe die Liste der Befehle-"""
        drucken(Jahre)
        pprint.pprint(li_commands)
        t2s(Jahre)

4. Github-Repository

Sie können meinen Code völlig frei verwenden. Steh auf, wenn dir mein Job gefällt, Abonnieren Youtube wenn du liebst.

Klonen Sie einfach das Repository https://github.com/Dipeshpal/Jarvis-Assisant.git

Führen Sie dann pip install -r requirements.txt aus

Es wird alles automatisch installiert.

Öffne das einfach GitHub-Repository, Lesen Sie es und Sie werden verstehen, wie Sie dazu beitragen können.

Abonniere unseren Newsletter

Wir senden Ihnen keine SPAM-Mail. Wir hassen es genauso wie du.