mirror of
https://github.com/metafy-social/python-scripts.git
synced 2024-11-27 22:11:10 +00:00
77 lines
1.8 KiB
Python
77 lines
1.8 KiB
Python
import datetime
|
|
from pyttsx3 import engine
|
|
import speech_recognition as sr
|
|
import pyttsx3 as py
|
|
import winsound
|
|
|
|
engine = py.init()
|
|
|
|
|
|
def alarm(timing):
|
|
alTime = str(datetime.datetime.now().strptime(timing, "%I:%M %p"))
|
|
|
|
alTime = alTime[11:-3]
|
|
print(alTime)
|
|
Horeal = alTime[:2]
|
|
Horeal = int(Horeal)
|
|
Mireal = alTime[3:5]
|
|
Mireal = int(Mireal)
|
|
|
|
print(f"Done, alarm is set for {timing}")
|
|
|
|
while True:
|
|
if Horeal == datetime.datetime.now().hour and Mireal == \
|
|
datetime.datetime.now().minute:
|
|
print("alarm is running")
|
|
winsound.PlaySound('abc', winsound.SND_LOOP)
|
|
|
|
elif Mireal < datetime.datetime.now().minute:
|
|
break
|
|
|
|
|
|
def speech(audio):
|
|
engine.setProperty('rate', 200)
|
|
voices = engine.getProperty('voices')
|
|
# engine.setProperty('voice', voices[1].id)
|
|
engine.setProperty('voice', voices[0].id)
|
|
engine.say(audio)
|
|
engine.runAndWait()
|
|
|
|
|
|
def takeCommand():
|
|
# It takes microphone input from the user and returns string output
|
|
|
|
r = sr.Recognizer()
|
|
with sr.Microphone() as source:
|
|
r.adjust_for_ambient_noise(source, duration=1)
|
|
print()
|
|
print("Listening...")
|
|
print()
|
|
# r.pause_threshold = 1
|
|
audio = r.listen(source)
|
|
|
|
try:
|
|
print("Recognizing...")
|
|
print()
|
|
query = r.recognize_google(audio, language='en-in')
|
|
print(f"you said: {query}\n")
|
|
|
|
except Exception as e:
|
|
print("Say that again please...")
|
|
print()
|
|
print(e)
|
|
return "None"
|
|
return query
|
|
|
|
|
|
speechinput = takeCommand().lower()
|
|
|
|
if 'alarm' in speechinput:
|
|
speech("say set alarm for 5:30 am ")
|
|
print("say set alarm for 5:30 am")
|
|
tt = takeCommand()
|
|
tt = tt.replace("set alarm to ", "")
|
|
tt = tt.replace(".", "")
|
|
tt = tt.upper()
|
|
alarm(tt)
|