diff --git a/Voice Controlled Robot.pptx b/Voice Controlled Robot.pptx new file mode 100644 index 0000000..d28ccdf Binary files /dev/null and b/Voice Controlled Robot.pptx differ diff --git a/library.py b/library.py new file mode 100644 index 0000000..8aae8c1 --- /dev/null +++ b/library.py @@ -0,0 +1,40 @@ +library = { + "greeting": ( + "Hello, nice to meet you.", + "Hey, User.. How you doin?", + "Hello, have a nice day.", + "Yo!, Getting to know me... would change your LIFE!", + "Hmmm!!.. i think, i will like you", + "hola!, Senorrr!", + "WOW!, listening to your voice, just, just, made my day!", + "Sup!", + "Hi, My name is BIRD, FIRE BIRD, not not 1 2 5 3 3 2 6" + ), + "errorIn": ( + "The command given is not recognised!", + "Please give a proper command", + "I heard" + ), + "interactive" :( + "My Relationship Status, is single", + "My favourite movies are I Robot, Wall E, and No strings attached", + "Don't blame it on the sunshine, Don't blame it on the moonlight, Don't blame it on the good times, blame it on the Boogie!", + "Did you Know?, people and robots are meant to be together" + ), + "command":( + "Left Right, Left Right, Follow your command", + "Your wish... is my command..", + "Your Highness, I am your squire", + "Will Follow you till Death.. Ha Ha" + ), + "morning":( + "Good Morning", + "Every morning! starts a new page, of your story. Make it a great one today.", + "Start the day right, with a smile. Good morning", + "People will hate you!, shake you!, and break you!. But how strong you stand, is what makes you.. Good Morning", + "life is like a mirror, It will smile at you, if you smile at it! Good morning" + ), + "afternoon":("Good afternoon",), + "evening":("Good evening",), + "night":("Good night",) +} \ No newline at end of file diff --git a/library.pyc b/library.pyc new file mode 100644 index 0000000..59bab94 Binary files /dev/null and b/library.pyc differ diff --git a/speech.py b/speech.py new file mode 100644 index 0000000..c560f86 --- /dev/null +++ b/speech.py @@ -0,0 +1,9 @@ +import pyttsx +engine = pyttsx.init() +engine.say("life is like a mirror, It will smile at you, if you smile at it! Good morning") +''' + "Every morning starts a new page of your story. Make it a great one today.", + "Start the day right, with a smile. Good morning", + "People will hate you, rate you,shake you and break you. But how strong you stand, is what make you..") +''' +engine.runAndWait() \ No newline at end of file diff --git a/voice.py b/voice.py new file mode 100644 index 0000000..8191d09 --- /dev/null +++ b/voice.py @@ -0,0 +1,66 @@ +import speech_recognition as sr +import time +import serial +import pyttsx +engine = pyttsx.init() +r = sr.Recognizer() +m = sr.Microphone() +ser = serial.Serial("COM9",9600) +ser.isOpen(); +#ser.open(); +try: + print("A moment of silence, please...") + with m as source: r.adjust_for_ambient_noise(source) + print("Set minimum energy threshold to {}".format(r.energy_threshold)) + while True: + print("Say something!") + with m as source: audio = r.record(source,2); + print("Got it! Now to recognize it...") + try: + value1 = r.recognize_google(audio) + if str is bytes: + print(u"You said bytes - {}".format(value1).encode("utf-8")) + else: + print("You said google {}".format(value1)) + if value1 == 'left': + value1 = '4' + elif value1 == 'right': + value1 = '6' + elif value1 == 'forward': + value1 = '8' + elif value1 == 'backward': + value1 = '2' + elif value1 == 'stop': + value1 = '5' + elif value1 == 'buzzer on': + value1 = '7' + elif value1 == 'buzzer off': + value1 = '9' + elif value1 == 'hi' or value1 == 'hello': + engine.say('Hello User! How you doin?') + engine.runAndWait() + value1 = '5' + elif value1 == 'peace' or value1 == 'enjoy': + engine.say('rest in pieces') + engine.runAndWait() + value1 = '5' + elif value1 == 'war' or value1 == 'love': + engine.say('everything is fair in love and war... ') + engine.runAndWait() + value1 = '5' + elif value1 == 'exit': + break + else: + engine.say('Give proper inputs please!') + engine.runAndWait() + value1 = '5' + print(value1) + ser.write(value1) + time.sleep(1) + except sr.UnknownValueError: + print("Oops! Didn't catch that") + except sr.RequestError as e: + print("Uh oh! Couldn't request results from Google Speech Recognition service; {0}".format(e)) +except KeyboardInterrupt: + pass +ser.close(); diff --git a/voice2.py b/voice2.py new file mode 100644 index 0000000..fdd03e4 --- /dev/null +++ b/voice2.py @@ -0,0 +1,13 @@ +import speech_recognition as sr +import time +import serial +r = sr.Recognizer() +m = sr.Microphone() +def kkskaks(self, audio): + print(u"You said {}".format(r.recognize_google(audio)).encode("utf-8")) +#ser.open(); + +while True: + print("Say something!") + with m as source: lmnas = r.listen_in_background(source,kkskaks) + diff --git a/voice3.py b/voice3.py new file mode 100644 index 0000000..75f2ca3 --- /dev/null +++ b/voice3.py @@ -0,0 +1,177 @@ +import speech_recognition as sr +import time +import serial +import pyttsx +from library import library +import random +engine = pyttsx.init() +r = sr.Recognizer() +m = sr.Microphone() +#ser = serial.Serial("COM9",9600) +#ser.isOpen() +mode_value = {"interactive":3 , "command":1.7} +mode = "none" +def question(value): + ran = random.randint(0,100) + if("good" in value): + b = time.localtime() + b = b[3] + if("morning" in value): + if(5<= b < 12): + return library["morning"][ran % len(library["morning"])] + else: + if(12<= b < 16): + return library["afternoon"][ran % len(library["afternoon"])] + elif(16<=b < 20): + return library["evening"][ran % len(library["evening"])] + else: + return library["night"][ran % len(library["night"])] + elif("afternoon" in value): + if(12<= b < 16): + return library["afternoon"][ran % len(library["afternoon"])] + + else: + if(5<= b < 12): + return library["morning"][ran % len(library["morning"])] + + elif(16<=b < 20): + return library["evening"][ran % len(library["evening"])] + + else: + return library["night"][ran % len(library["night"])] + + elif("evening" in value): + if(16<= b < 20): + return library["evening"][ran % len(library["evening"])] + + else: + if(5<= b < 12): + return library["morning"][ran % len(library["morning"])] + + elif(12<=b <16): + return library["afternoon"][ran % len(library["afternoon"])] + + else: + return library["night"][ran % len(library["night"])] + + elif("night" in value): + if(20<= b <24 and 0<=b<5): + return library["night"][ran % len(library["night"])] + + else: + if(5<= b < 12): + return library["morning"][ran % len(library["morning"])] + + elif(12<=b <16): + return library["evening"][ran % len(library["evening"])] + + else: + return library["afternoon"][ran % len(library["afternoon"])] + else: + return "Thank you" + return False +class Holder(object): + def set(self, value): + self.value = value + return value + def get(self): + return self.value + +h = Holder() +def interactive(): + global r,m,engine,mode,mode_value,library + ran = random.randint(0,100); + engine.say("Interactive Mode. On") + engine.say(library[mode][ran % len(library[mode])]) + engine.runAndWait() + print("\n------IN INTERACTIVE MODE------\n") + while mode == "interactive": + ran = random.randint(0,100) + print("Talk To Me...") + with m as source: audio = r.record(source,mode_value[mode]) + try: + value = r.recognize_google(audio) + if((value == "hi") or ("hello" in value) or ("greeting" in value) or (("what" in value) and ("up" in value)) or ("sup" in value) or ("hey" in value)): + engine.say(library["greeting"][ran % len(library["greeting"])]) + engine.runAndWait(); + elif((value == "exit") or (value == "quit") or ((("exit" in value and "mode" in value) or ("quit" in value and "mode" in value)))): + mode = "none" + elif("command" in value): + mode = "command" + elif(h.set(question(value))): + engine.say(h.get()) + engine.runAndWait() + else: + engine.say("Did You say, '"+ value + "'") + engine.say(library['errorIn'][ran % len(library['errorIn'])]) + engine.runAndWait() + except sr.UnknownValueError: + print("Oops! Didn't catch that") + except sr.RequestError as e: + print("Uh oh! Couldn't request results from Google Speech Recognition service; {0}".format(e)) + if(mode == "command"): + command() +def command(): + global r,m,engine,mode,mode_value,library + ran = random.randint(0,100); + engine.say("Command Mode. On") + engine.say(library[mode][ran % len(library[mode])]) + engine.runAndWait() + print("\n-----WILL FOLLOW YOUR COMMAND-----\n") + while mode == "command": + ran = random.randint(0,100); + print("Tell me The Command...") + with m as source: audio = r.record(source,mode_value[mode]) + try: + value = r.recognize_google(audio) + if(value == "exit" or value == "quit" or (("exit" or "quit") and "mode" in value)): + mode = "none" + elif("interact" in value): + mode = "interactive" + else: + engine.say("'" + value +"', is a false command") + engine.runAndWait() + except sr.UnknownValueError: + pass + except sr.RequestError as e: + print("Uh oh! Couldn't request results from Google Speech Recognition service; {0}".format(e)) + if(mode == "interactive"): + interactive() +try: + print("A moment of silence, please...") + with m as source: r.adjust_for_ambient_noise(source) + print("Please Choose The mode :\n1)Interactive Mode\n2)Command Mode\nSay 'exit' to exit the program"); + while True: + print("Say something!") + with m as source: audio = r.record(source,3) + print("Got it! Now to recognize it...") + try: + value = r.recognize_google(audio) + ran = random.randint(0,100); + if((value == "hi") or ("hello" in value) or ("greeting" in value) or (("what" in value) and ("up" in value)) or ("sup" in value) or ("hey" in value)): + engine.say(library["greeting"][ran % len(library["greeting"])]) + engine.runAndWait() + elif(("mode" in value) or ("interact" in value) or ("command" in value)): + value = value.split(" "); + for v in value: + if("interact" in v): + mode = "interactive" + interactive() + break + if("command" in v): + mode = "command" + command() + break + elif(value == "exit"): + break + else: + engine.say("The Command, '"+value+ "', is not recognised!") + engine.say("Please Try Again!") + engine.runAndWait(); + except sr.UnknownValueError: + pass + except sr.RequestError as e: + print("Uh oh! Couldn't request results from Google Speech Recognition service; {0}".format(e)) +except KeyboardInterrupt: + pass +#ser.close(); diff --git a/voice3Copy.py b/voice3Copy.py new file mode 100644 index 0000000..c77434c --- /dev/null +++ b/voice3Copy.py @@ -0,0 +1,108 @@ +import speech_recognition as sr +import time +import serial +import pyttsx +from library import library +import random +engine = pyttsx.init() +r = sr.Recognizer() +m = sr.Microphone() +#ser = serial.Serial("COM9",9600) +#ser.isOpen() +mode_value = {"interactive":3 , "command":1.7} +mode = "none" + +def interactive(): + global r,m,engine,mode,mode_value,library + ran = random.randint(0,100); + engine.say("Interactive Mode. On") + engine.say(library[mode][ran % len(library[mode])]) + engine.runAndWait() + print("\n------IN INTERACTIVE MODE------\n") + while mode == "interactive": + ran = random.randint(0,100) + print("Talk To Me...") + with m as source: audio = r.record(source,mode_value[mode]) + try: + value = r.recognize_google(audio) + if((value == "hi") or ("hello" in value) or ("greeting" in value) or (("what" in value) and ("up" in value)) or ("sup" in value) or ("hey" in value)): + engine.say(library["greeting"][ran % len(library["greeting"])]) + engine.runAndWait(); + elif((value == "exit") or (value == "quit") or ((("exit" in value and "mode" in value) or ("quit" in value and "mode" in value)))): + mode = "none" + elif("command" in value): + mode = "command" + else: + engine.say("Did You say, '"+ value + "'") + engine.say(library['errorIn'][ran % len(library['errorIn'])]) + engine.runAndWait() + except sr.UnknownValueError: + print("Oops! Didn't catch that") + except sr.RequestError as e: + print("Uh oh! Couldn't request results from Google Speech Recognition service; {0}".format(e)) + if(mode == "command"): + command() +def command(): + global r,m,engine,mode,mode_value,library + ran = random.randint(0,100); + engine.say("Command Mode. On") + engine.say(library[mode][ran % len(library[mode])]) + engine.runAndWait() + print("\n-----WILL FOLLOW YOUR COMMAND-----\n") + while mode == "command": + ran = random.randint(0,100); + print("Tell me The Command...") + with m as source: audio = r.record(source,mode_value[mode]) + try: + value = r.recognize_google(audio) + if(value == "exit" or value == "quit" or (("exit" or "quit") and "mode" in value)): + mode = "none" + elif("interact" in value): + mode = "interactive" + else: + engine.say("'" + value +"', is a false command") + engine.runAndWait() + except sr.UnknownValueError: + pass + except sr.RequestError as e: + print("Uh oh! Couldn't request results from Google Speech Recognition service; {0}".format(e)) + if(mode == "interactive"): + interactive() +try: + print("A moment of silence, please...") + with m as source: r.adjust_for_ambient_noise(source) + print("Please Choose The mode :\n1)Interactive Mode\n2)Command Mode\nSay 'exit' to exit the program"); + while True: + print("Say something!") + with m as source: audio = r.record(source,3) + print("Got it! Now to recognize it...") + try: + value = r.recognize_google(audio) + ran = random.randint(0,100); + if((value == "hi") or ("hello" in value) or ("greeting" in value) or (("what" in value) and ("up" in value)) or ("sup" in value) or ("hey" in value)): + engine.say(library["greeting"][ran % len(library["greeting"])]) + engine.runAndWait() + elif(("mode" in value) or ("interact" in value) or ("command" in value)): + value = value.split(" "); + for v in value: + if("interact" in v): + mode = "interactive" + interactive() + break + if("command" in v): + mode = "command" + command() + break + elif(value == "exit"): + break + else: + engine.say("The Command, '"+value+ "', is not recognised!") + engine.say("Please Try Again!") + engine.runAndWait(); + except sr.UnknownValueError: + pass + except sr.RequestError as e: + print("Uh oh! Couldn't request results from Google Speech Recognition service; {0}".format(e)) +except KeyboardInterrupt: + pass +#ser.close();