{ "info": { "author": "Hey Athena", "author_email": "connor@heyathena.com", "bugtrack_url": null, "classifiers": [ "Development Status :: 4 - Beta", "Intended Audience :: Developers", "License :: OSI Approved :: MIT License", "Programming Language :: Python", "Programming Language :: Python :: 2", "Programming Language :: Python :: 2.7", "Programming Language :: Python :: 3", "Programming Language :: Python :: 3.3", "Programming Language :: Python :: 3.4", "Programming Language :: Python :: 3.5", "Topic :: Scientific/Engineering :: Human Machine Interfaces", "Topic :: Software Development :: Build Tools" ], "description": "Hey Athena\r\n==========\r\n\r\n|Travis Build| |PyPI version| |GitHub license|\r\n\r\nOverview\r\n--------\r\n\r\nYour personal voice assistant. Written in Python.\r\n\r\n\"Hey Athena\" is a 100% open-source, modular voice assistant framework. We aim to do everything that Siri, Cortana, and Echo can do - and more.\r\n\r\n| **Website:** https://heyathena.com\r\n| **Documentation:** https://heyathena.com/docs/\r\n| **Forum:** https://heyathena.com/forum/\r\n| **GitHub:** https://github.com/hey-athena/hey-athena-client\r\n\r\nUsage Examples:\r\n---------------\r\nSay \"Athena\" *(wait for double beep)* then...\r\n\r\n- \"Play some music\"\r\n- \"Text [Joe] [Wow, Hey Athena is so cool!]\"\r\n- \"Tweet [Hello world!]\" (IFTTT key required)\r\n- \"Define [artificial intelligence]\"\r\n- \"Show me pictures of [Taj Mahal]\"\r\n- \"Open facebook.com\"\r\n\r\nWrite a simple \"module\" to control your house with your voice.\r\nSee documentation: https://heyathena.com/docs/\r\n\r\nDon't like the name \"Athena\"? Change it to anything you want, like \"Joe\" or \"Swagger Bot\".\r\n\r\nModule Ideas\r\n------------\r\n\r\n- Smart-Home Control\r\n\r\n - `Power Outlets (Hook) `_\r\n\r\n - `Thermostat (Nest) `_ \r\n- `IFTTT Recipes `_ (use `Maker channel `_ to trigger)\r\n- Grades/Homework Assignments (see `Canvas `_)\r\n- Cooking Recipe Assistant (hands-free)\r\n- Facebook, Twitter, GMail\r\n- Timer/Stopwatch\r\n- Calendar\r\n- Games (Zork, etc.)\r\n- Robot Movement\r\n\r\nIf you create a module, submit a pull request! We'd love to add it to\r\nthe repository. You can also email it to connor@heyathena.com\r\n\r\nRoadmap\r\n-------\r\nHey Athena is just getting started. We plan to build an **open-source community** built around a quality **voice assistance framework**. Here are some features you can expect to see in the future:\r\n\r\n- **Bigger Community:** we are working on building a bigger open-source community\r\n- **Passive Modules:** useful for voice/text notifications (e.g. - \"You have an important unread email from Professor Valvano\")\r\n- **Module Database:** developers will be able to easily create and submit modules for other people to use\r\n- **Machine Learning:** we are looking into libraries like `Scikit `_ to help Athena learn how to respond better\r\n- **Natural Language Processing (NLP):** we are constantly working on improving NLP techniques with services like `wit.ai `_\r\n\r\nHTTP RESTful API\r\n----------------\r\nWe are currently developing a cloud-hosted RESTful API (JSON) service.\r\nUsers will be able to send HTTP requests and receive a voice/text JSON response. \r\n\r\n**Current:** ``https://heyathena.com/api?q=test``\r\n\r\n**Future:** ``HTTP GET https://heyathena.com/api/{api_key}/q=list%20bitcoin%20price`` \r\n\r\n**Response:** ``{\"success\": true, \"response\": \"359.7\", \"intent\": \"bitcoin\"}``\r\n\r\nHow can I make my own Athena?\r\n-----------------------------\r\n\r\n- Download and install Hey Athena using the directions below\r\n- Write your own modules so Athena can respond to different commands\r\n- Install Hey Athena on a Raspberry Pi to turn your house into a smart-home with voice control\r\n\r\nInstallation\r\n------------\r\nFor installation notes, please use: https://heyathena.com/docs/intro/install.html\r\n\r\nHow can I help?\r\n---------------\r\n\r\n- Write modules and contribute them by submitting a pull request to this repository\r\n- Find errors and post issues\r\n- If you modify the framework software, submit a pull request\r\n- Give feedback and help us build a community!\r\n\r\nCore Dependencies\r\n-----------------\r\n\r\n- Python 3\r\n- Pocketsphinx (SWIG required in your PATH during installation)\r\n- SpeechRecognition\r\n- Pyglet (AVBin required)\r\n- PyAudio\r\n- gTTS\r\n- PyYAML\r\n- Selenium\r\n\r\nActive Modules\r\n--------------\r\n\r\nAn active module is simply a collection of tasks. Tasks look for\r\npatterns in user text input (generally through \"regular expressions\").\r\nIf a pattern is matched, the task executes its action. Note: module\r\npriority is taken into account first, then task priority.\r\n\r\n.. code:: python\r\n\r\n \"\"\"\r\n File Name: hello_world.py\r\n Finds and returns the latest bitcoin price\r\n\r\n Usage Examples:\r\n - \"What is the price of bitcoin?\"\r\n - \"How much is a bitcoin worth?\"\r\n\t\"\"\"\r\n\r\n\tfrom athena.classes.module import Module\r\n\tfrom athena.classes.task import ActiveTask\r\n\tfrom athena.api_library import bitcoin_api\r\n\r\n\tclass GetValueTask(ActiveTask):\r\n\r\n\t\tdef __init__(self):\r\n\t\t\t# Matches any statement with the word \"bitcoin\"\r\n\t\t\tsuper().__init__(words=['bitcoin'])\r\n\r\n\t\t# This default match method can be overridden\r\n\t\t# def match(self, text):\r\n\t\t# # \"text\" is the STT translated input string\r\n\t\t# # Return True if the text matches any word or pattern\r\n\t\t# return self.match_any(text)\r\n\r\n\t\tdef action(self, text):\r\n\t\t\t # If 'bitcoin' was found in text, speak the bitcoin price\r\n\t\t\tbitcoin_price = str(bitcoin_api.get_data('last'))\r\n\t\t\tself.speak(bitcoin_price)\r\n\r\n\t# This is a bare-minimum module\r\n\tclass Bitcoin(Module):\r\n\r\n\t\tdef __init__(self):\r\n\t\t\ttasks = [GetValueTask()]\r\n\t\t\tsuper().__init__('bitcoin', tasks, priority=2)\r\n\r\nPassive Modules\r\n---------------\r\n\r\n(soon-to-be implemented)\r\n\r\n- Passive modules will be collections of scheduled/event-triggered tasks\r\n- Useful for notifications (e.g. - Twitter, Facebook, GMail updates)\r\n\r\nAthena APIs\r\n-----------\r\nAn \"Api\" object is simply a separate library of functions for \"Modules\" to use. Athena stores a library of \"Api\" objects during runtime. Moreover, \"Api\" objects make it easy to load user configuration data at runtime. This is useful if your modules require username/password authentication (e.g. - logging into Spotify)\r\n\r\n| **Usage example:**\r\n| ``from athena.apis import api_lib``\r\n| ``api_lib['your_api_handle'].your_awesome_func()``\r\n\r\nCommon Errors\r\n-------------\r\n\r\n| **Error:** \"no module named athena\"\r\n| **Fix:** Make sure the athena project directory is in your PYTHONPATH\r\n| \r\n| **Error:** \"AVbin is required to decode compressed media\"\r\n| **Fix:** Pyglet needs the avbin.dll file to be installed. On Windows, sometimes the file is wrongfully placed in System32 instead of SysWOW64.\r\n| \r\n| Other errors can be found by searching the issues on our GitHub page.\r\n\r\n.. |Travis Build| image:: https://travis-ci.org/rcbyron/hey-athena-client.svg?branch=demo-branch\r\n :target: https://travis-ci.org/hey-athena/hey-athena-client\r\n.. |PyPI version| image:: https://badge.fury.io/py/heyathena.svg\r\n :target: https://badge.fury.io/py/heyathena\r\n.. |GitHub license| image:: https://img.shields.io/github/license/mashape/apistatus.svg?maxAge=2592000\r\n :target: https://raw.githubusercontent.com/hey-athena/hey-athena-client/connor-branch/LICENSE", "description_content_type": null, "docs_url": "https://pythonhosted.org/HeyAthena/", "download_url": "UNKNOWN", "downloads": { "last_day": -1, "last_month": -1, "last_week": -1 }, "home_page": "https://heyathena.com", "keywords": "hey athena voice assistant development", "license": "MIT", "maintainer": null, "maintainer_email": null, "name": "HeyAthena", "package_url": "https://pypi.org/project/HeyAthena/", "platform": "UNKNOWN", "project_url": "https://pypi.org/project/HeyAthena/", "project_urls": { "Download": "UNKNOWN", "Homepage": "https://heyathena.com" }, "release_url": "https://pypi.org/project/HeyAthena/1.3.2/", "requires_dist": null, "requires_python": null, "summary": "Your personal voice assistant", "version": "1.3.2" }, "last_serial": 2533432, "releases": { "1.1.0": [ { "comment_text": "", "digests": { "md5": "31b4f6f1ecec92b70724195fbeb3bf3a", "sha256": "8bd7ebb9f44c45ebf821dba5d38c7c10d6bef54cc3313a2931472d4a3f072c20" }, "downloads": -1, "filename": "HeyAthena-1.1.0.zip", "has_sig": false, "md5_digest": "31b4f6f1ecec92b70724195fbeb3bf3a", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 34708090, "upload_time": "2016-02-14T18:38:16", "url": "https://files.pythonhosted.org/packages/9f/14/42f31176fea46acf92aa921fb0437e283826389a1096c098bc51eb65dddc/HeyAthena-1.1.0.zip" } ], "1.1.1": [ { "comment_text": "", "digests": { "md5": "62fb9b4b9ac6bcd01341eb667ba79001", "sha256": "746a0baf7f63af529b633c506e5757b9f540d63310d7258f5895bddbe5650bc3" }, "downloads": -1, "filename": "HeyAthena-1.1.1.zip", "has_sig": false, "md5_digest": "62fb9b4b9ac6bcd01341eb667ba79001", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 34717299, "upload_time": "2016-02-19T04:01:09", "url": "https://files.pythonhosted.org/packages/fc/4d/b76d7e5accd3e530128a794743d218f1a12015f1d2bc97d6f6a0e8334e61/HeyAthena-1.1.1.zip" } ], "1.2.1": [ { "comment_text": "", "digests": { "md5": "1e601ecfdccd1d21ed5549e916232d33", "sha256": "d6c3b0931b11ca274fc424ee03f0d1fe5f546f2aec680896ca735d0a00ce0d7e" }, "downloads": -1, "filename": "HeyAthena-1.2.1.zip", "has_sig": false, "md5_digest": "1e601ecfdccd1d21ed5549e916232d33", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 3959124, "upload_time": "2016-03-09T05:37:40", "url": "https://files.pythonhosted.org/packages/af/1c/1971efc263d5bed2d0d386b30388bc036ae5ec6ffbdad909165a0cee74cb/HeyAthena-1.2.1.zip" } ], "1.2.2": [ { "comment_text": "", "digests": { "md5": "288cf08159b9d753608b30a4f45aa2ef", "sha256": "6aa965379edddc3c76ba1f23d8eb8936cdddbd323e3472387aef8c3c099de845" }, "downloads": -1, "filename": "HeyAthena-1.2.2.zip", "has_sig": false, "md5_digest": "288cf08159b9d753608b30a4f45aa2ef", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 3959129, "upload_time": "2016-03-09T05:41:45", "url": "https://files.pythonhosted.org/packages/73/c3/4c67f0616fcd648b94fee97b2b2ce4dfe579864c24c4de25ca5dc6854ea6/HeyAthena-1.2.2.zip" } ], "1.3.2": [ { "comment_text": "", "digests": { "md5": "30331bd9e24337ad25aed88174adad64", "sha256": "de734024e7cfb263e73b9b3de60edee09831a306d6f5725cf84f0628df82b0e3" }, "downloads": -1, "filename": "HeyAthena-1.3.2.tar.gz", "has_sig": false, "md5_digest": "30331bd9e24337ad25aed88174adad64", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 15522788, "upload_time": "2016-12-21T20:48:27", "url": "https://files.pythonhosted.org/packages/10/0f/8dc3480bb6fd2f308924544d1606663ff0c5cb624c626c9a644234d2e4d6/HeyAthena-1.3.2.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "30331bd9e24337ad25aed88174adad64", "sha256": "de734024e7cfb263e73b9b3de60edee09831a306d6f5725cf84f0628df82b0e3" }, "downloads": -1, "filename": "HeyAthena-1.3.2.tar.gz", "has_sig": false, "md5_digest": "30331bd9e24337ad25aed88174adad64", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 15522788, "upload_time": "2016-12-21T20:48:27", "url": "https://files.pythonhosted.org/packages/10/0f/8dc3480bb6fd2f308924544d1606663ff0c5cb624c626c9a644234d2e4d6/HeyAthena-1.3.2.tar.gz" } ] }