From bca3f45ee144886dd7e8f92d2e55afc4bf99811c Mon Sep 17 00:00:00 2001 From: prakharsrivas55 <43438593+prakharsrivas55@users.noreply.github.com> Date: Thu, 22 Nov 2018 09:29:59 +0530 Subject: [PATCH] Add files via upload --- Final project code.ipynb | 432 +++++++++++++++++++++++++++++++++++++++ 1 file changed, 432 insertions(+) create mode 100644 Final project code.ipynb diff --git a/Final project code.ipynb b/Final project code.ipynb new file mode 100644 index 0000000..7f704f8 --- /dev/null +++ b/Final project code.ipynb @@ -0,0 +1,432 @@ +{ + "cells": [ + { + "cell_type": "code", + "execution_count": 3, + "metadata": {}, + "outputs": [], + "source": [ + "import webbrowser\n", + "import string\n", + "import speech_recognition as sr\n", + "import sys\n", + "from gtts import gTTS\n", + "import os\n", + "import vlc\n", + "import time\n", + "\n", + "import sys\n", + "\n", + "try:\n", + " import Tkinter as tk\n", + "except ImportError:\n", + " import tkinter as tk\n", + "\n", + "try:\n", + " import ttk\n", + " py3 = False\n", + "except ImportError:\n", + " import tkinter.ttk as ttk\n", + " py3 = True\n", + "\n", + "import sanyaProject_support\n", + "\n", + "def vp_start_gui():\n", + " '''Starting point when module is the main routine.'''\n", + " global val, w, root\n", + " root = tk.Tk()\n", + " top = Toplevel1 (root)\n", + " sanyaProject_support.init(root, top)\n", + " root.mainloop()\n", + "\n", + "w = None\n", + "def create_Toplevel1(root, *args, **kwargs):\n", + " '''Starting point when module is imported by another program.'''\n", + " global w, w_win, rt\n", + " rt = root\n", + " w = tk.Toplevel (root)\n", + " top = Toplevel1 (w)\n", + " sanyaProject_support.init(w, top, *args, **kwargs)\n", + " return (w, top)\n", + "\n", + "def destroy_Toplevel1():\n", + " global w\n", + " w.destroy()\n", + " w = None\n", + "\n", + "class Toplevel1:\n", + " def recognize_speech_from_mic(recognizer, microphone):\n", + " # check that recognizer and microphone arguments are appropriate type\n", + " if not isinstance(recognizer, sr.Recognizer):\n", + " raise TypeError(\"`recognizer` must be `Recognizer` instance\")\n", + "\n", + " if not isinstance(microphone, sr.Microphone):\n", + " raise TypeError(\"`microphone` must be `Microphone` instance\")\n", + "\n", + " # adjust the recognizer sensitivity to ambient noise and record audio\n", + " # from the microphone\n", + " with microphone as source:\n", + " recognizer.adjust_for_ambient_noise(source)#noise removed\n", + " audio = recognizer.listen(source)#listen from mic\n", + "\n", + " # set up the response object\n", + " response = {\n", + " \"success\": True,\n", + " \"error\": None,\n", + " \"transcription\": None\n", + " }\n", + "\n", + " # try recognizing the speech in the recording\n", + " # if a RequestError or UnknownValueError exception is caught,\n", + " # update the response object accordingly\n", + " try:\n", + " response[\"transcription\"] = recognizer.recognize_google(audio) #recognize the input speech (in english)\n", + " except sr.RequestError:\n", + " # API was unreachable or unresponsive\n", + " response[\"success\"] = False\n", + " response[\"error\"] = \"API unavailable\"\n", + " except sr.UnknownValueError:\n", + " # speech was unintelligible\n", + " response[\"error\"] = \"Unable to recognize speech\"\n", + "\n", + " return response\n", + " \n", + " def run(self):\n", + " # obtain audio \n", + " self.Text2.delete('1.0',tk.END)\n", + " self.Text1.delete('1.0',tk.END)\n", + " NUM_TRIES = 3\n", + " recognizer = sr.Recognizer() #object of class Recognizer()\n", + " microphone = sr.Microphone()\n", + " tts=gTTS(text=\"Hello, what can i help you find?[Player,Weather,restaurant, or just to search the web: ]\",lang='en')\n", + " tts.save('gm.mp3')\n", + " p = vlc.MediaPlayer(\"gm.mp3\")\n", + " p.play()\n", + " #playsound.playsound('gm.mp3')\n", + " time.sleep(5.8)\n", + " print(\"Hello, what can i help you find?[Player,Weather,restaurant, or just to search the web: ]\")\n", + " self.Text2.insert(tk.END,\"Hello, what can i help you find?[Player,Weather,restaurant, or just to search the web: ]\")\n", + " audio = 0\n", + " guess=0\n", + " for i in range(NUM_TRIES):\n", + " print('Audio {}. Speak!'.format(i+1))\n", + " guess = Toplevel1.recognize_speech_from_mic(recognizer, microphone) # guess will be in form of tuple\n", + " #like {'success': True, 'error': None, 'transcription': 'I want to know about restaurants'}\n", + " if type(guess[\"transcription\"])==str:\n", + " break\n", + " if not guess[\"success\"]:\n", + " continue\n", + " print(guess[\"transcription\"])\n", + " self.Text1.insert(tk.END,str(guess[\"transcription\"]))\n", + " audio=guess[\"transcription\"]\n", + " if(str(audio)==\"None\"):\n", + " tts=gTTS(text=\"YOU DID NOT SAY ANYTHING\",lang='en')\n", + " tts.save('gm.mp3')\n", + " p = vlc.MediaPlayer(\"gm.mp3\")\n", + " p.play()\n", + " #self.Text2.delete('1.0',tk.END)\n", + " self.Text2.insert(tk.END,\"\\nYOU DID NOT SAY ANYTHING\")\n", + " print(\"YOU DID NOT SAY ANYTHING\")\n", + " return\n", + "\n", + " if \"player\" in audio:\n", + " # obtain audio from the microphone\n", + " url = 'https://en.wikipedia.org/wiki/'\n", + " with sr.Microphone() as source:\n", + " tts=gTTS(text=\"Say any sports players name to see there Bio\",lang='en')\n", + " tts.save('gm.mp3')\n", + " p = vlc.MediaPlayer(\"gm.mp3\")\n", + " p.play()\n", + " time.sleep(2.5)\n", + " #self.Text2.delete('1.0',tk.END)\n", + " self.Text2.insert(tk.END,\"\\nSay any sports players name to see there Bio:\")\n", + " print(\"Say any sports players name to see there Bio: \")\n", + " audio2 = Toplevel1.recognize_speech_from_mic(recognizer, microphone)\n", + " a2=audio2['transcription']\n", + " if(str(a2)==\"None\"):\n", + " tts=gTTS(text=\"YOU DID NOT SAY ANYTHING\",lang='en')\n", + " tts.save('gm.mp3')\n", + " p = vlc.MediaPlayer(\"gm.mp3\")\n", + " p.play()\n", + " #self.Text2.delete('1.0',tk.END)\n", + " self.Text2.insert(tk.END,\"\\nYOU DID NOT SAY ANYTHING\")\n", + " print(\"YOU DID NOT SAY ANYTHING\")\n", + " return\n", + "\n", + " try:\n", + " #self.Text2.delete('1.0',tk.END)\n", + " self.Text1.insert(tk.END,\"\\nGoogle Speech Recognition thinks you said \" + str(a2))\n", + " print(\"Google Speech Recognition thinks you said \" + str(a2))\n", + " tts=gTTS(text=\"Google Speech Recognition thinks you said. \" + str(a2),lang='en')\n", + " tts.save('gm.mp3')\n", + " p = vlc.MediaPlayer(\"gm.mp3\")\n", + " p.play()\n", + " webbrowser.open_new(url+str(a2))\n", + " except sr.UnknownValueError:\n", + " #self.Text2.delete('1.0',tk.END)\n", + " self.Text2.insert(tk.END,\"\\nGoogle Speech Recognition could not understand audio\")\n", + " print(\"Google Speech Recognition could not understand audio\")\n", + " tts=gTTS(text=\"Google Speech Recognition could not understand audio\",lang='en')\n", + " tts.save('gm.mp3')\n", + " p = vlc.MediaPlayer(\"gm.mp3\")\n", + " p.play()\n", + " except sr.RequestError as e:\n", + " print(\"Could not request results from Google Speech Recognition service; {0}\".format(e))\n", + "\n", + "\n", + " elif \"weather\" in audio:\n", + " # obtain audio from the microphone\n", + " url3 = 'https://www.timeanddate.com/weather/india/'\n", + " with sr.Microphone() as source:\n", + " tts=gTTS(text=\"Please say a city\",lang='en')\n", + " tts.save('gm.mp3')\n", + " p = vlc.MediaPlayer(\"gm.mp3\")\n", + " p.play()\n", + " time.sleep(1)\n", + " #self.Text2.delete('1.0',tk.END)\n", + " self.Text2.insert(tk.END,\"\\nPlease say a city: \")\n", + " print(\"Please say a city: \")\n", + " audio2 = Toplevel1.recognize_speech_from_mic(recognizer, microphone)\n", + " a2=audio2['transcription']\n", + " if(str(a2)==\"None\"):\n", + " tts=gTTS(text=\"YOU DID NOT SAY ANYTHING\",lang='en')\n", + " tts.save('gm.mp3')\n", + " p = vlc.MediaPlayer(\"gm.mp3\")\n", + " p.play()\n", + " self.Text2.insert(tk.END,\"\\nYOU DID NOT SAY ANYTHING\")\n", + " print(\"YOU DID NOT SAY ANYTHING\")\n", + " return\n", + "\n", + " try:\n", + " self.Text1.insert(tk.END,\"\\nGoogle Speech Recognition thinks you said \" + str(a2))\n", + " print(\"Google Speech Recognition thinks you said \" + str(a2))\n", + " tts=gTTS(text=\"Google Speech Recognition thinks you said. \" + str(a2),lang='en')\n", + " tts.save('gm.mp3')\n", + " p = vlc.MediaPlayer(\"gm.mp3\")\n", + " p.play()\n", + " webbrowser.open_new(url3+str(a2))\n", + " except sr.UnknownValueError:\n", + " self.Text2.insert(tk.END,\"\\nGoogle Speech Recognition could not understand audio\")\n", + " print(\"Google Speech Recognition could not understand audio\")\n", + " tts=gTTS(text=\"Google Speech Recognition could not understand audio\",lang='en')\n", + " tts.save('gm.mp3')\n", + " p = vlc.MediaPlayer(\"gm.mp3\")\n", + " p.play()\n", + " except sr.RequestError as e:\n", + " print(\"Could not request results from Google Speech Recognition service; {0}\".format(e))\n", + "\n", + "\n", + " elif \"restaurant\" in audio:\n", + " # obtain audio from the microphone\n", + " url4 = 'https://www.zomato.com/'\n", + " with sr.Microphone() as source:\n", + " tts=gTTS(text=\"Please state a location to search for restaurant\",lang='en')\n", + " tts.save('gm.mp3')\n", + " p = vlc.MediaPlayer(\"gm.mp3\")\n", + " p.play()\n", + " time.sleep(2.7)\n", + " self.Text2.insert(tk.END,\"\\nPlease state a location to search for restaurant: \")\n", + " print(\"Please state a location to search for restaurant: \")\n", + " audio2 = Toplevel1.recognize_speech_from_mic(recognizer, microphone)\n", + " a2=audio2['transcription']\n", + " if(str(a2)==\"None\"):\n", + " tts=gTTS(text=\"YOU DID NOT SAY ANYTHING\",lang='en')\n", + " tts.save('gm.mp3')\n", + " p = vlc.MediaPlayer(\"gm.mp3\")\n", + " p.play()\n", + " self.Text2.insert(tk.END,\"\\nYOU DID NOT SAY ANYTHING\")\n", + " print(\"YOU DID NOT SAY ANYTHING\")\n", + " return\n", + " try:\n", + " self.Text1.insert(tk.END,\"\\nGoogle Speech Recognition thinks you said \" +str(a2))\n", + " print(\"Google Speech Recognition thinks you said \" +str(a2))\n", + " tts=gTTS(text=\"Google Speech Recognition thinks you said. \" + str(a2),lang='en')\n", + " tts.save('gm.mp3')\n", + " p = vlc.MediaPlayer(\"gm.mp3\")\n", + " p.play()\n", + " webbrowser.open_new(url4+str(a2))\n", + " except sr.UnknownValueError:\n", + " self.Text2.insert(tk.END,\"\\nGoogle Speech Recognition could not understand audio\")\n", + " print(\"Google Speech Recognition could not understand audio\")\n", + " tts=gTTS(text=\"Google Speech Recognition could not understand audio\",lang='en')\n", + " tts.save('gm.mp3')\n", + " p = vlc.MediaPlayer(\"gm.mp3\")\n", + " p.play()\n", + " except sr.RequestError as e:\n", + " print(\"Could not request results from Google Speech Recognition service; {0}\".format(e))\n", + "\n", + " elif \"web\" in audio:\n", + " # obtain audio from the microphone\n", + "\n", + " with sr.Microphone() as source:\n", + " tts=gTTS(text=\"what website would you like me to search for you?\",lang='en')\n", + " tts.save('gm.mp3')\n", + " p = vlc.MediaPlayer(\"gm.mp3\")\n", + " p.play()\n", + " time.sleep(2.7)\n", + " self.Text2.insert(tk.END,\"\\nwhat website would you like me to search for you? \")\n", + " print(\"what website would you like me to search for you? \")\n", + " audio2 = Toplevel1.recognize_speech_from_mic(recognizer, microphone)\n", + " a2=audio2['transcription']\n", + " if(str(a2)==\"None\"):\n", + " tts=gTTS(text=\"YOU DID NOT SAY ANYTHING\",lang='en')\n", + " tts.save('gm.mp3')\n", + " p = vlc.MediaPlayer(\"gm.mp3\")\n", + " p.play()\n", + " self.Text2.insert(tk.END,\"\\nYOU DID NOT SAY ANYTHING\")\n", + " print(\"YOU DID NOT SAY ANYTHING\")\n", + " return\n", + "\n", + " try:\n", + " self.Text1.insert(tk.END,\"\\nGoogle Speech Recognition thinks you said \" + str(a2))\n", + " print(\"Google Speech Recognition thinks you said \" + str(a2))\n", + " tts=gTTS(text=\"Google Speech Recognition thinks you said. \" + str(a2),lang='en')\n", + " tts.save('gm.mp3')\n", + " p = vlc.MediaPlayer(\"gm.mp3\")\n", + " p.play()\n", + " webbrowser.open_new(\"https://\"+str(a2)+\".com\")\n", + " except sr.UnknownValueError:\n", + " self.Text2.insert(tk.END,\"\\nGoogle Speech Recognition could not understand audio\")\n", + " print(\"Google Speech Recognition could not understand audio\")\n", + " tts=gTTS(text=\"Google Speech Recognition could not understand audio\",lang='en')\n", + " tts.save('gm.mp3')\n", + " p = vlc.MediaPlayer(\"gm.mp3\")\n", + " p.play()\n", + " except sr.RequestError as e:\n", + " print(\"Could not request results from Google Speech Recognition service; {0}\".format(e)) \n", + " else:\n", + " tts=gTTS(text=audio+\" Not recognized\",lang='en')\n", + " tts.save('gm.mp3')\n", + " p = vlc.MediaPlayer(\"gm.mp3\")\n", + " p.play()\n", + " print(audio,\" Not recognized\")\n", + "\n", + "\n", + " def __init__(self, top=None):\n", + " '''This class configures and populates the toplevel window.\n", + " top is the toplevel containing window.'''\n", + " _bgcolor = '#d9d9d9' # X11 color: 'gray85'\n", + " _fgcolor = '#000000' # X11 color: 'black'\n", + " _compcolor = '#d9d9d9' # X11 color: 'gray85'\n", + " _ana1color = '#d9d9d9' # X11 color: 'gray85' \n", + " _ana2color = '#d9d9d9' # X11 color: 'gray85' \n", + "\n", + " top.geometry(\"600x450+650+150\")\n", + " top.title(\"Voice Recognition\")\n", + " top.configure(background=\"#ffffff\")\n", + "\n", + " self.Frame1 = tk.Frame(top)\n", + " self.Frame1.place(relx=0.017, rely=0.022, relheight=0.944\n", + " , relwidth=0.958)\n", + " self.Frame1.configure(relief='groove')\n", + " self.Frame1.configure(borderwidth=\"2\")\n", + " self.Frame1.configure(relief='groove')\n", + " self.Frame1.configure(background=\"#969696\")\n", + " self.Frame1.configure(width=575)\n", + "\n", + " self.Frame2 = tk.Frame(self.Frame1)\n", + " self.Frame2.place(relx=0.087, rely=0.118, relheight=0.482\n", + " , relwidth=0.809)\n", + " self.Frame2.configure(relief='groove')\n", + " self.Frame2.configure(borderwidth=\"2\")\n", + " self.Frame2.configure(relief='groove')\n", + " self.Frame2.configure(background=\"#505a5b\")\n", + " self.Frame2.configure(width=465)\n", + "\n", + " self.Label1 = tk.Label(self.Frame2)\n", + " self.Label1.place(relx=0.022, rely=0.098, height=26, width=62)\n", + " self.Label1.configure(background=\"#505a5b\")\n", + " self.Label1.configure(disabledforeground=\"#a3a3a3\")\n", + " self.Label1.configure(foreground=\"#000000\")\n", + " self.Label1.configure(text='''Input:''')\n", + " self.Label1.configure(width=62)\n", + "\n", + " self.Label2 = tk.Label(self.Frame2)\n", + " self.Label2.place(relx=0.022, rely=0.537, height=26, width=55)\n", + " self.Label2.configure(background=\"#505a5b\")\n", + " self.Label2.configure(disabledforeground=\"#a3a3a3\")\n", + " self.Label2.configure(foreground=\"#000000\")\n", + " self.Label2.configure(text='''Output:''')\n", + "\n", + " self.Text1 = tk.Text(self.Frame2)\n", + " self.Text1.place(relx=0.151, rely=0.098, relheight=0.41, relwidth=0.804)\n", + " self.Text1.configure(background=\"white\")\n", + " self.Text1.configure(font=\"TkTextFont\")\n", + " self.Text1.configure(foreground=\"black\")\n", + " self.Text1.configure(highlightbackground=\"#d9d9d9\")\n", + " self.Text1.configure(highlightcolor=\"black\")\n", + " self.Text1.configure(insertbackground=\"black\")\n", + " self.Text1.configure(selectbackground=\"#c4c4c4\")\n", + " self.Text1.configure(selectforeground=\"black\")\n", + " self.Text1.configure(width=374)\n", + " self.Text1.configure(wrap='word')\n", + "\n", + " self.Text2 = tk.Text(self.Frame2)\n", + " self.Text2.place(relx=0.151, rely=0.537, relheight=0.41, relwidth=0.804)\n", + " self.Text2.configure(background=\"white\")\n", + " self.Text2.configure(font=\"TkTextFont\")\n", + " self.Text2.configure(foreground=\"black\")\n", + " self.Text2.configure(highlightbackground=\"#d9d9d9\")\n", + " self.Text2.configure(highlightcolor=\"black\")\n", + " self.Text2.configure(insertbackground=\"black\")\n", + " self.Text2.configure(selectbackground=\"#c4c4c4\")\n", + " self.Text2.configure(selectforeground=\"black\")\n", + " self.Text2.configure(width=374)\n", + " self.Text2.configure(wrap='word')\n", + "\n", + " self.Button1 = tk.Button(self.Frame1)\n", + " self.Button1.place(relx=0.33, rely=0.682, height=83, width=226)\n", + " self.Button1.configure(activebackground=\"#d9d9d9\")\n", + " self.Button1.configure(activeforeground=\"#000000\")\n", + " self.Button1.configure(background=\"#ffffff\")\n", + " self.Button1.configure(disabledforeground=\"#a3a3a3\")\n", + " self.Button1.configure(foreground=\"#000000\")\n", + " self.Button1.configure(highlightbackground=\"#d9d9d9\")\n", + " self.Button1.configure(highlightcolor=\"black\")\n", + " self.Button1.configure(pady=\"0\")\n", + " self.Button1.configure(text='''Start Mic''')\n", + " self.Button1.configure(width=226)\n", + " self.Button1.configure(command=self.run)\n", + "\n", + "if __name__ == '__main__':\n", + " vp_start_gui()\n", + "\n" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [] + } + ], + "metadata": { + "kernelspec": { + "display_name": "Python 3", + "language": "python", + "name": "python3" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 3 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython3", + "version": "3.6.5" + } + }, + "nbformat": 4, + "nbformat_minor": 2 +}