Greta is an agile voice assistant to help reduce your carbon footprint. She is built on top of the Nala framework for prototyping voice assistant apps.
Built by Protea, the world's leading social network community to reduce your effect on the climate.
Greta was built as a demo project for the Climate-KIC Climathon in the SF Bay Area October 25th, 2019.
This section assumes you are using a Mac operating system (MacOS) on a device like an iMac / MacBook Pro.
To get started, clone the repository and install the dependencies:
git clone git@github.com:protea-earth/greta.git
cd greta
python3 -m venv env
source env/bin/activate
python3 setup.py
Now, set up some environment variables in your ./~ directory:
cd ~
open .bash_profile
These are some environment variables that you should set here:
export SUDO_PASSWORD=**********
export GOOGLE_APPLICATION_CREDENTIALS=/Users/jimschwoebel/Desktop/appcreds/APPNAME-basdfcnas3el98a8sd5.json
Note the sudo_password is your password for your Mac computer to help shut down computer and GOOGLE_APPLICATION_CREDENTIALS is the .json key location for the Google API to allow for Google transcription.
Now you can run:
python3 greta.py
This will start Greta up for you to now query her for some actions.
It's quite easy to query Greta. All you need to do is say "Hey Greta" and she'll wake up listening for an action. See below for more information.
To active Greta, all you need to do is query her with 'Hey Greta!' (1) - which then triggers a response from Greta - (3) in this case, “How can I help you?.” Then, a user provides another query (usually after some beeping sound) - such as (4) “get events.” Greta transcribes this query to understand it, and parses the query for keyword intents; for example, if the response is “get events” the only word that really matters is “events” and that would be used to provoke a response (5). Then, after this keyword maps onto an action dictionary (or a map of responses to keywords), the action is executed (6). Then, the intent loop repeats itself, looking for another wakeword (“Hey Greta”) before triggering another action.
Listed here are a description of these actions along with the query intents needed to activate them.
If you have any other ideas, let us know on the GitHub issues tab (as an enhancement)!
Action | Description | Example query intent |
---|---|---|
🌎 calculate_carbon_footprint.py | Guides user through a list of questions then calculates the users carbon footprint (outputs in .PDF form). | “calculate", "carbon", "footprint" |
📅 events.py | Pulls up a meetup.com event related to climate change in your local area. | “events", "meetup" |
📠 facts.py | Grabs one quick fact from a random list of facts about climate change. | “get facts", "grab a fact" |
🥗 food.py | Based on the query, searches yelp for vegetarian-friendly restaurants. | "grab food" |
🎧 music.py | Pulls up a YouTube video that is inspired by climate change and global warming. | "open music", "play me a climate change song" |
📰 news.py | Searches some basic news sites related to climate change. | “grab the news” |
Schedules a trip based on an origin and destination city; suggests some ways to reduce your footprint while traveling. | “plan trip” | |
💸 purchase_product.py | Selects a random green vendor and an item that you could purchase to be a good environmental citizen (energy, tech, home, and fashion categories). | “purchase”, "grab me a green product" |
♻️ recycle.py | Opens up a voice-guided earth911.com search for your nearest recycling facility (plastics). | "recycle", "find me the nearest recycling facility" |
💻 shut_down.py | Shuts down your computer, assuming your SUDO password is in the environment variables (helps to save energy). | "shut", "shut down", "down" |
🗣️ speech.py | Read Greta's speech from the UN Climate Action Summit | "recite speech", "speech" |
😴 sleep | Puts the computer to sleep for a designated time period. | "go to sleep" |
🌡️ weather.py | Searches weather.com for the current weather at your location. | "get the weather" |
... more to come into the future!
This repository is licensed under the Apache 2.0 License.
Here are some ways you can get more involved:
- learn more about voice computing and buy the Voice Computing in Python textbook.
- give some feedback on this repository by opening up a GitHub issue.