0% found this document useful (0 votes)
313 views7 pages

Jarvis Py

The document describes the code for an AI assistant named Jarvis. It imports various Python libraries for speech recognition, text-to-speech, web automation, operating system interactions, and more. It defines functions for greeting the user, answering queries, taking screenshots, playing music and videos, making calls/sending messages on WhatsApp, and controlling system volume/power. The assistant uses speech recognition to take commands and responds using text-to-speech.

Uploaded by

YUG
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as TXT, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
313 views7 pages

Jarvis Py

The document describes the code for an AI assistant named Jarvis. It imports various Python libraries for speech recognition, text-to-speech, web automation, operating system interactions, and more. It defines functions for greeting the user, answering queries, taking screenshots, playing music and videos, making calls/sending messages on WhatsApp, and controlling system volume/power. The assistant uses speech recognition to take commands and responds using text-to-speech.

Uploaded by

YUG
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as TXT, PDF, TXT or read online on Scribd
You are on page 1/ 7

from time import sleep

import speech_recognition as sr
import pyttsx3
import datetime
import wikipedia
import webbrowser
import os
import smtplib
import pyautogui
import pywhatkit
import openai

openai.api_key = "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"
def generate_response(prompt):
response = openai.Completion.create(
engine="text-davinci-003",
prompt=prompt,
temperature=0.5,
max_tokens=4000,
n=1,
stop=None,
timeout=None
)
return response.choices[0].text.strip()

memory = []

# Function to remember user input


def remember(text):
memory.append(text)

# Function to recall user input


def recall():
if memory:
return memory[-1]
else:
return ""

engin = pyttsx3.init('sapi5')
voices = engin.getProperty('voices')
engin.setProperty('voice', voices[2].id)
engin.setProperty("rate", 170)

def speak(audio):
engin.say(audio)
engin.runAndWait()

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")

elif hour>=18 and hour<21:


speak("Good Evening Sir")
else:
speak("Good Nigth Sir")

speak("please tell me how can i help you")

def take_screenshot():
now = datetime.datetime.now()
timestamp = now.strftime("%d-%m-%Y_%H-%M-%S")
file_name = f"E:\\PYTHON\\Jarvis screenshots\\screenshot_{timestamp}.jpg"
screenshot = pyautogui.screenshot()
screenshot.save(file_name)
print(f"Screenshot saved as {file_name}")
print("Screenshot saved in Jarvis screenshot folder")
speak("Screenshot saved in Jarvis screenshot folder")

def takeCommand():
r = sr.Recognizer()
with sr.Microphone() as source:
print("Listening...")
r.pause_threshold = 1
r.energy_threshold = 300
audio = r.listen(source,0,5)

try:
print("Recognizing...")
query = r.recognize_google(audio, language = 'eng-in')
print(f"User said: {query}\n")

except Exception as e:
print("Sorry sir, Say that again Please...\n")
return "None"
return query

def writer():
r = sr.Recognizer()
with sr.Microphone() as source:
print("Listening...")
r.pause_threshold = 1
r.energy_threshold = 300
audio = r.listen(source,0,20)

try:
print("Recognizing...")
query = r.recognize_google(audio, language = 'eng-in')
print(f"User said: {query}\n")

except Exception as e:
print("Sorry sir, Say that again Please...\n")
return "None"
return query

def listen():
r = sr.Recognizer()
with sr.Microphone() as source:
print("Listening...")
r.pause_threshold = 1
r.energy_threshold = 300
audio = r.listen(source,0,5)
try:
print("Recognizing...")
query = r.recognize_google(audio, language = 'en-in')
print(f"User said: {query}\n")
return query

except sr.UnknownValueError:
print("Sorry, I couldn't understand.")
speak("Sorry, I couldn't understand.")
except sr.RequestError as e:
print("Could not request results; {0}".format(e))
speak("Could not request results")

def sendEmail(to, content):


server = smtplib.SMTP('smtp.gmail.com', 587)
server.ehlo()
server.starttls()
server.login('youremail@gmail.com', 'your-password')
server.sendmail('youremail@gmail.com', to, content)
server.close()

if __name__ == "__main__":
while True:
query = takeCommand().lower()
if "wake up" in query or "jarvis" in query or "hello" in query or "hey" in
query:
wishMe()
while True:
query = takeCommand().lower()
if "go to sleep" in query:
speak("ok sir, you can call me anytime")
break

elif "good job" in query:


speak("Thank You Sir")

elif "take a screenshot" in query or "take screenshot" in query or


"screenshot" in query:
take_screenshot()

elif 'wikipedia' in query:


speak('Searching Wikipedia...')
query = query.replace("wikipedia", "")
results = wikipedia.summary(query, sentences =50)
speak("According to wikipedia")
print(results)
speak(results)

elif 'open youtube' in query:


speak('ok sir, opening youtube...')
webbrowser.open("https://www.youtube.com")

elif 'open google' in query:


speak('ok sir, opening google...')
webbrowser.open("http://www.google.com")
elif "jarvis open" in query or "open" in query:
query = query.replace("jarvis","")
query = query.replace("open","")
speak('ok sir, opening'+ query)
pyautogui.press("super")
pyautogui.typewrite(query)
pyautogui.sleep(0.5)
pyautogui.press("enter")

elif "jarvis search" in query or "search" in query:


import wikipedia as googleScrap
query = query.replace("jarvis search","")
query = query.replace("search","")
speak('ok sir, searching...' +query)
speak('This is what i found on web')

try:
result = googleScrap.summary(query,3)
print(result)
speak(result)

except:
speak('No speakable data found')

elif "jarvis google" in query or "google" in query:


query = query.replace("jarvis google","")
query = query.replace("google","")
speak("ok sir")
pywhatkit.search(query)

elif "youtube" in query:


query = query.replace("jarvis youtube","")
query = query.replace("youtube","")
web = "https://www.youtube.com/results?search_query=" + query
webbrowser.open(web)
speak("This is what i found for your search!")

elif "shut down my computer" in query:


speak("do you really want to shut down your computer?")
while True:
reply = takeCommand()
if "yes" in reply:
speak("ok sir")
os.system('taskkill/im *')
os.system('shutdown /s /t 1')
else:
speak("ok sir")
break
elif "volume up" in query or "increase volume" in query:
pyautogui.press("volumeup", 2)
elif "volume down" in query or "decrease volume" in query:
pyautogui.press("volumedown",3)
elif "volume mute" in query:
pyautogui.press("volumemute")

elif "write" in query:


speak("As you wish Sir")
sleep(2)
query=writer()
pyautogui.typewrite(query)

elif "play" in query:


query=query.replace("play","")
speak("ok Sir, Playing"+query)
os.system("start spotify")
sleep(2)
pyautogui.hotkey('ctrl','l')
sleep(2)
pyautogui.typewrite(query)
sleep(2)
pyautogui.press("enter")
pyautogui.press("tab")
pyautogui.press("enter")
sleep(2)
pyautogui.press("enter")
sleep(2)
pyautogui.hotkey('alt','tab')

elif "my songs" in query:


speak("ok Sir, Playing your playlist")
os.system("start spotify")
sleep(2)
pyautogui.hotkey('alt','shift','1')
sleep(2)
pyautogui.press("tab")
pyautogui.press("tab")
pyautogui.press("tab")
pyautogui.press("tab")
pyautogui.press("tab")
pyautogui.press("tab")
pyautogui.press("tab")
sleep(2)
pyautogui.press("enter")
sleep(2)
pyautogui.hotkey('alt','tab')

elif "pause" in query or "stop" in query:


os.system("start spotify")
sleep(2)
pyautogui.press("space")
pyautogui.hotkey('alt','tab')

elif "resume" in query or "start" in query:


os.system("start spotify")
sleep(2)
pyautogui.press("space")
pyautogui.hotkey('alt','tab')

elif "change" in query or "next" in query:


os.system("start spotify")
sleep(2)
pyautogui.hotkey('ctrl','right')
pyautogui.hotkey('alt','tab')
elif "previous" in query or "last" in query:
os.system("start spotify")
sleep(2)
pyautogui.hotkey('ctrl','left')
pyautogui.hotkey('ctrl','left')
pyautogui.hotkey('alt','tab')

elif "call" in query:


query=query.replace("call ","")
speak("Ok Sir, Calling... "+query)
os.system("start D:\\WhatsApp\\WhatsApp-2.2310.5-full\\lib\\
net45\\WhatsApp.exe")
sleep(10)
pyautogui.hotkey('ctrl','n')
sleep(2)
pyautogui.typewrite(query)
sleep(2)
pyautogui.press('enter')
sleep(1)
pyautogui.hotkey('shift','tab')
pyautogui.hotkey('shift','tab')
pyautogui.hotkey('shift','tab')
pyautogui.hotkey('shift','tab')
pyautogui.hotkey('shift','tab')
pyautogui.hotkey('shift','tab')

pyautogui.press('enter')

elif "message" in query:


while True:
query=query.replace("message ","")
speak("Ok Sir")
speak("What's your message?")
message= takeCommand()
if "nothing" in query or "leave" in query:
speak("ok sir")
break
else:
os.system("start D:\\WhatsApp\\WhatsApp-2.2310.5-full\\lib\\
net45\\WhatsApp.exe")
sleep(10)
pyautogui.hotkey('ctrl','n')
sleep(2)
pyautogui.typewrite(query)
sleep(2)
pyautogui.press('enter')
sleep(2)
pyautogui.typewrite(message)
pyautogui.press("enter")
speak("message sent")
pyautogui.hotkey('alt','tab')
break

elif "read" in query:


sleep(2)
pyautogui.hotkey('ctrl','c')
sleep(1)
os.system("")

elif "close" in query or "Jarvis close" in query:


query = query.replace("close","")
query = query.replace("jarvis close","")
speak("ok sir closing"+query)
os.system('taskkill/im '+query+'.exe')

elif "exit all" in query or "Jarvis exit all" in query:


speak("ok sir, closing everything")
os.system('taskkill /f /fi')

elif "set my computer on sleep mode" in query:


speak("do you really want to sleep your computer?")
while True:
reply = takeCommand()
if "yes" in reply:
speak("ok sir")
os.system('powercfg /hibernate off')
else:
speak("ok sir")
break

elif "activate chatbot" in query:


while True:
print("----Welcome to Jarvis Chatbot!!----")
speak("Welcome to Jarvis Chatbot")
while True:
speak ("Do you want to chat with Jarvis?")
query = takeCommand()
if "yes" in query:
speak("Jarvis ChatBot is ready")
while True:
prompt = listen()
if "exit" in prompt:
speak("ok sir")
break
if prompt:
remember(prompt)
prompt=recall()
response = generate_response(prompt)
print("Jarvis:", response)
speak(response)
break
break
elif "finally sleep" in query or "close yourself" in query or "exit" in
query:
print("Good bye Sir!!")
speak("Good bye Sir")
break

elif "restart" in query or "reboot " in query:


speak("ok Sir, Restarting Jarvis")
sleep(2)
os.system("start E:\\PYTHON\\Jarvis.py")
break

You might also like