Design Jarvis Algorithm using Python
In this tutorial, we will learn how to Design Jarvis’s Algorithm using machine learning in Python. It is nothing like Iron man Jarvis coz he does way more things, but our Jarvis is kind of a personal assistant that helps you in doing some basic tasks. let’s get started!
Design Jarvis Algorithm using Python
Let’s Import some Libraries that we have to use here
import pyttsx3 #pip install pyttsx3 import speech_recognition as sr #pip install speechRecognition import datetime import wikipedia # pip install wikipedia import webbrowser import os
All the above-mentioned libraries will work fine but you may find an error about PyAudio. In that case just follow this link and you will get all your answers.
Let’s define Engine so that our Speak function will use the voice we have in our system
engine = pyttsx3.init('sapi5') voices = engine.getProperty('voices') # print(voices[0].id) engine.setProperty('voice', voices[0].id)
def speak(audio): engine.say(audio) engine.runAndWait()
The above function speaks a given string
def wishMe(): hour = int(datetime.datetime.now().hour) if hour>=0 and hour<12: speak("Good Morning Sir") elif hour>=12 and hour<18: speak("Good Afternoon Sir") else: speak("Good Evening Sir") speak("I am Jarvis Sir. I am here to help you")
The above function wish us according to the time
def takeCommand(): r = sr.Recognizer() with sr.Microphone() as source: print("Listening...") r.pause_threshold = 1 audio = r.listen(source) # it converts the audio input into string try: print("Recognizing...") query = r.recognize_google(audio, language='en-in') print(f"User said: {query}\n") except Exception as e: # print(e) print("Say that again please...") return "None" return query
The above function takes microphone input from the user and returns string output.
Now let’s move further and do the remaining part
if __name__ == "__main__": wishMe() while True: query = takeCommand().lower() # #logic for executing tasks based on query if "how are you" in query: speak("I'm fine sir, how can i help you ?") elif "who are you" in query: speak("Sir I am Jarvis personal assistant ") elif 'wikipedia' in query: speak('Searching Wikipedia...please wait') query = query.replace("wikipedia", "") results = wikipedia.summary(query, sentences = 2) speak("wikipedia says") print(results) speak(results) elif'open youtube' in query: webbrowser.open("youtube.com") elif 'open google' in query: webbrowser.open('https://www.google.co.in/') elif 'open stackoverflow' in query: webbrowser.open('https://stackoverflow.com/') elif 'play music'in query: music_dir = "C:\\Users\\Baali\\Music" songs = os.listdir(music_dir) print(songs) os.startfile(os.path.join(music_dir, songs[0])) elif 'the time' in query: strTime = datetime.datetime.now().strftime("%H:%M:%S") speak(f"Sir, the time is {strTime}") elif 'open code' in query: codePath = "C:\\Users\\Baali\\AppData\\Local\\Programs\\Microsoft VS Code\\Code.exe" os.startfile(codePath) elif 'jarvis quit' in query or 'exit' in query or 'close' in query: speak("Thanks you for using Jarvis Sir") exit()
In the above-mentioned code line whenever our Jarvis hear anything Like “what is the time” it recognizes that we have used “the time” in the query so it will answer accordingly the same followed by other queries and at last if we want to quit the Jarvis just say”Jarvis quit or Exit” our program will end.
Thanks this is all for a basic Jarvis you can put many more things in this. I hope you like it.
Check out my other work here
how to on jarvis jarvis is not talking only showing procsees exit code with 0
That means you have no coding skills, just copy pasting code. right?
I agree, but also it means they didn’t import the modules properly… They probably forgot “`pip install …“` is my guess!
Which Algorithm we use to make Jarvis…plzz telll..
it okey wiith me but if you face litel problem like cant take command or program run but no result then this process follow :
go to line no 36 and replay this code then its works:
audio = r.listen(source, timeout=3, phrase_time_limit=5)
what type of python is this
line 18 needs an independent block which you forgot
i copy your code but throw error
1st is error -9999
2nd no attribute i tried a lot but problem is not solved from my side