my own virtual assistant (friday)
import pyttsx3
import speech_recognition as sr
import datetime
import wikipedia
import time
from selenium.webdriver.support.ui import Select
from selenium.webdriver.common.keys import Keys
from selenium import webdriver
import pyautogui
# Use female voice
engine = pyttsx3.init('sapi5')
voices = engine.getProperty('voice')
engine.setProperty('voice', voices)
engine.setProperty('rate', 150)
engine.setProperty('volume', 10)
def speak(audio):
engine.say(audio)
engine.runAndWait()
def wishMe():
hour = int(datetime.datetime.now().hour)
if hour>=0 and hour<12:
speak("Good Morning!")
elif hour>=12 and hour<18:
speak("Good Afternoon!")
else:
speak("Good Evening!")
speak("I am friday, is there anything to help you sir?")
def takecommand():
r = sr.Recognizer()
with sr.Microphone() as source:
print("Listening....")
r.pause_threshold = 1
audio = r.listen(source)
try:
print("Recognizing....")
query = r.recognize_google(audio, language='en-in')
print(f"user said: {query}\n")
except Exception as e:
print(e)
speak("sorry I could not understand, say that again please...")
return "None"
return query
def typen():
r = sr.Recognizer()
with sr.Microphone() as source:
print("Listening....")
r.pause_threshold = 1
audio = r.listen(source)
try:
print("Recognizing....")
typething = r.recognize_google(audio, language='en-in')
print(f"user said: {typething}\n")
except Exception as e:
print(e)
speak("sorry I could not understand, say that again please...")
return "None"
return typething
if __name__ == "__main__":
wishMe()
while True:
query = takecommand().lower()
if 'wikipedia' in query:
speak('searching Wikipedia...')
query = query.replace("wikipedia", "")
results = wikipedia.summary(query, sentences=2)
speak("according to wikipedia")
speak(results)
if 'manav sampada' in query:
speak('loging in to manav sampada')
browser = webdriver.Chrome('D:\\chromedriver.exe')
browser.get('http://ehrms.upsdc.gov.in/')
elem = browser.find_element_by_partial_link_text('eHRMS Login')
elem.get_attribute('href')
time.sleep(1)
elem.click()
time.sleep(1)
loginr = browser.find_element_by_xpath('//*[@id="txtusername"]')
loginr.send_keys('your ID')
time.sleep(1)
select = Select(browser.find_element_by_id('ddldept'))
select.select_by_visible_text('Basic Education')
time.sleep(1)
password = browser.find_element_by_xpath('//*[@id="txtpwd"]')
password.send_keys('your password')
speak('sir I have filled all userID password etc. but ')
speak('sir you have to fill the human verification captha by yourself as I am just a bot ')
speak('I hope I was able to assist you')
if 'program' in query:
speak('opening sir')
query = query.replace("program", "")
pyautogui.click(27, 880)
pyautogui.typewrite(query)
time.sleep(1)
pyautogui.click(79,441)
if 'send' and 'gmail' in query:
speak('opening gmail')
browser = webdriver.Chrome('your selenium driver path here')
browser.get('https://accounts.google.com/b/0/AddMailService')
time.sleep(1)
login = browser.find_element_by_xpath('//*[@id="identifierId"]')
login.send_keys('your gmail id@gmail.com')
login.send_keys(Keys.ENTER)
time.sleep(1)
loginpwd = browser.find_element_by_xpath('//*[@id="password"]/div[1]/div/div[1]/input')
loginpwd.send_keys('your password')
loginpwd.send_keys(Keys.ENTER)
time.sleep(10)
compose = browser.find_element_by_xpath('//*[@id=":jm"]/div/div')
time.sleep(1)
compose.click()
time.sleep(1)
speak('whom do you want to send the gmail')
takecommand()
query = takecommand().lower()
tom = browser.find_elements_by_xpath('//*[@id=":pa"]')
tom.send_keys(query)
if 'type' in query:
speak('please tell me what to type')
typething = takecommand().lower()
pyautogui.typewrite(typething)
if 'quit' in query:
exit()
Comments
Post a Comment