- Sarah Voice Assistant is a Python voice assistant project on SpeechRecognition, pyttsx3 and GoogleAPI
- Sarah knows to read data from your Google Calendar (from first running you'll be redirected to Google login page), read email from your Gmail, build road using Google Maps, open browse, and write data to file .txt using notepad.exe
- Clone project
- Create virtual environments in the root of project and activate it:
- Windows:
pip install virtualenv
virtualenv myvenv_name
myvenv_name\Scripts\activate
-
Linux: at this moment does not support on OS Linux
-
To make Sarah Voice Assistant work correctly you'll be need to PyAudio library
-
Check you python version
python --version
For example if your python version is 3.9 and 64 bit you'll be need PyAudio-0.2.11-cp39-cp39-win_amd64 (just install from requirements.txt) If it's different from Python 3.9 then download from here and install it:
pip install PyAudio-0.2.11-cp<python version>-cp<python version>-win<64 or 32 bit>.whl
- Install other requirements form requirements.txt
pip install -r requirements.txt
- Use this link to enable the Google Calendar Api
- Click the button "Enable the Google Calendar API"
- After downloading credentials.json put this file in project root
- After first running you'll need to accept Google privacy. (Even if browser will show you warning)
- Use this link to enable the Google Calendar Api
- Click the button "Enable the Google Calendar API"
- After downloading credentials.json put this file in project root
- After first running you'll need to accept Google privacy. (Even if browser will show you warning)
- Go to Google Cloud Console
- Activate next API:
- Geocoding API
- Directions API
- Maps Static API
- Distance Matrix API
- Geolocation API
- Maps Embed API
- Make sure that you have a billing account set up
While you activate your virtual environments, you'll need to run it by typing in terminal from project root
python main.py
- Use "hey Sarah" to wake Sarah. -Key phrases:
- "what do i have...", "do i have plans...", "am i busy.."
- "make a note", "write this down", "remember this"
- "do i have new messages", "do i have messages"
- "how can i get", "create a road", "create road", "how long do i need to ride"
- "open browser"
- Hey Sarah what do I have on Monday 2nd
- Hey Sarah make a note
Pull requests are welcome. For major changes, please open an issue first to discuss what you would like to change.
Please make sure to update tests as appropriate.