Der virtuelle Desktop-Assistent ist eine großartige Sache. Wenn Sie möchten, dass Ihre Maschine auf Ihren Befehl läuft, wie es Jarvis für Tony getan hat. Ja, es ist möglich. Es ist möglich mit Python. Python bietet eine gute Hauptbibliothek, damit wir daraus einen virtuellen Assistenten erstellen können. Windows hat Sapi5 und Linux hat Espeak, was uns helfen kann, die Stimme von unserem Computer zu bekommen. Es ist eine schwache KI

Module benötigt

  • pyttsx3: pyttsx ist eine plattformübergreifende Text-zu-Sprach-Bibliothek, die plattformunabhängig ist. Der Hauptvorteil der Verwendung dieser Bibliothek für die Umwandlung von Text in Sprache besteht darin, dass sie offline funktioniert. Um dieses Modul zu installieren, geben Sie den folgenden Befehl in das Terminal ein.
pip install pyttsx3
  • Spracherkennung: Damit können wir Audio zur weiteren Verarbeitung in Text umwandeln. Um dieses Modul zu installieren, geben Sie den folgenden Befehl in das Terminal ein.
pip install SpeechRecognition
  • Webbrowser: Er bietet eine allgemeine Benutzeroberfläche, über die Benutzer webbasierte Dokumente anzeigen können. Um dieses Modul zu installieren, geben Sie den folgenden Befehl in das Terminal ein.
pip install webbrowser
  • Wikipedia: Es wird verwendet, um eine Vielzahl von Informationen von der Wikipedia-Website abzurufen. Um dieses Modul zu installieren, geben Sie den folgenden Befehl in das Terminal ein.
pip install wikipedia

Methoden für Virtual Assistant

1) Sprechmethode

Die Sprechmethode hilft uns dabei, die Stimme von der Maschine zu nehmen. Hier ist die Code-Erklärung der Speak-Methode

def speak(audio): 
      
    engine = pyttsx3.init() 
    
    
    voices = engine.getProperty('voices') 
      
    
    
    engine.setProperty('voice', voices[0].id) 
      
    
    engine.say(audio)   
      
    
    
    engine.runAndWait()

 2) Nehmen Sie die Abfragemethode

Diese Methode prüft den Zustand. Wenn die Bedingung erfüllt ist, wird die Ausgabe zurückgegeben. Wir können eine beliebige Zahl hinzufügen, wenn die Bedingungen dafür erfüllt sind und wenn die Bedingung erfüllt ist, erhalten wir die gewünschte Ausgabe.

def Take_query(): 
  
    
    
    Hello() 
      
    
    
    
    
    while(True): 
          
        
        
        
        
        query = takeCommand().lower() 
        if "open geeksforgeeks" in query: 
            speak("Opening GeeksforGeeks ") 
              
            
            
            
            webbrowser.open("www.geeksforgeeks.com") 
            continue
          
        elif "open google" in query: 
            speak("Opening Google ") 
            webbrowser.open("www.google.com") 
            continue
              
        elif "which day it is" in query: 
            tellDay() 
            continue
          
        elif "tell me the time" in query: 
            tellTime() 
            continue
          
        
        elif "bye" in query: 
            speak("Bye. Check Out GFG for more exicting things") 
            exit() 
          
        elif "from wikipedia" in query: 
              
            
            
            speak("Checking the wikipedia ") 
            query = query.replace("wikipedia", "") 
              
            
            
            
            result = wikipedia.summary(query, sentences=4) 
            speak("According to wikipedia") 
            speak(result) 
          
        elif "tell me your name" in query: 
            speak("I am Jarvis. Your deskstop Assistant")

3) takeCommand-Methode

Diese Methode dient zum Übernehmen der Befehle und zum Erkennen des Befehls aus dem Modul "language_Recognition"

def takeCommand(): 
  
    r = sr.Recognizer() 
  
    
    
    
    with sr.Microphone() as source: 
        print('Listening') 
          
        
        
        r.pause_threshold = 0.7
        audio = r.listen(source) 
          
        
        
        
        
        try: 
            print("Recognizing") 
              
            
            
            
            Query = r.recognize_google(audio, language='en-in') 
            print("the command is printed=", Query) 
              
        except Exception as e: 
            print(e) 
            print("Say that again sir") 
            return "None"
          
        return Query

*) tellTime-Methode

def tellTime(self): 
    time = str(datetime.datetime.now()) 
      
    
    print(time) 
    hour = time[11:13] 
    min = time[14:16] 
    self.Speak(self, "The time is sir" + hour + "Hours and" + min + "Minutes")      
 
 
 
 

4) Hallo Methode

Dies wird nur verwendet, um den Benutzer mit einer Hallo-Nachricht zu begrüßen.



def Hello(): 
    
    
    
    speak("hello sir I am your desktop assistant. /
          Tell me how may I help you")

5) Hauptmethode

Die Hauptmethode ist die Methode, bei der alle Dateien ausgeführt werden. Daher rufen wir hier die Take_query-Methode auf, damit sie die gewünschte Ausgabe erkennen und mitteilen oder angeben kann. 

if __name__ == '__main__': 
      
    
    
    Take_query()

 Vollständiger Code:

import pyttsx3 
import speech_recognition as sr 
import webbrowser   
import datetime   
import wikipedia  
  
  
def takeCommand(): 
  
    r = sr.Recognizer() 
  
    
    
    
    with sr.Microphone() as source: 
        print('Listening') 
          
        
        
        r.pause_threshold = 0.7
        audio = r.listen(source) 
          
        
        
        
        
        try: 
            print("Recognizing") 
              
            
            
            
            Query = r.recognize_google(audio, language='en-in') 
            print("the command is printed=", Query) 
              
        except Exception as e: 
            print(e) 
            print("Say that again sir") 
            return "None"
          
        return Query 
  
def speak(audio): 
      
    engine = pyttsx3.init() 
    
    
    voices = engine.getProperty('voices') 
      
    
    
    engine.setProperty('voice', voices[0].id) 
      
    
    engine.say(audio)   
      
    
    
    engine.runAndWait() 
  
def tellDay(): 
      
    
    
    day = datetime.datetime.today().weekday() + 1
      
    
    
    Day_dict = {1: 'Monday', 2: 'Tuesday'
                3: 'Wednesday', 4: 'Thursday'
                5: 'Friday', 6: 'Saturday', 
                7: 'Sunday'} 
      
    if day in Day_dict.keys(): 
        day_of_the_week = Day_dict[day] 
        print(day_of_the_week) 
        speak("The day is " + day_of_the_week) 
  
  
def tellTime(): 
      
    
    time = str(datetime.datetime.now()) 
      
    
    
    
    print(time) 
    hour = time[11:13] 
    min = time[14:16] 
    speak(self, "The time is sir" + hour + "Hours and" + min + "Minutes")     
  
def Hello(): 
      
    
    
    
    speak("hello sir I am your desktop assistant. /
          Tell me how may I help you") 
  
  
def Take_query(): 
  
    
    
    Hello() 
      
    
    
    
    
    while(True): 
          
        
        
        
        
        query = takeCommand().lower() 
        if "open geeksforgeeks" in query: 
            speak("Opening GeeksforGeeks ") 
              
            
            
            
            webbrowser.open("www.geeksforgeeks.com") 
            continue
          
        elif "open google" in query: 
            speak("Opening Google ") 
            webbrowser.open("www.google.com") 
            continue
              
        elif "which day it is" in query: 
            tellDay() 
            continue
          
        elif "tell me the time" in query: 
            tellTime() 
            continue
          
        
        elif "bye" in query: 
            speak("Bye. Check Out GFG for more exicting things") 
            exit() 
          
        elif "from wikipedia" in query: 
              
            
            
            speak("Checking the wikipedia ") 
            query = query.replace("wikipedia", "") 
              
            
            
            
            result = wikipedia.summary(query, sentences=4) 
            speak("According to wikipedia") 
            speak(result) 
          
        elif "tell me your name" in query: 
            speak("I am Jarvis. Your deskstop Assistant") 
  
if __name__ == '__main__': 
      
    
    
    Take_query()

Ausgabe: