{"id":13586175,"url":"https://github.com/rcbyron/hey-athena-client","last_synced_at":"2025-12-14T15:22:36.034Z","repository":{"id":36470912,"uuid":"40776319","full_name":"rcbyron/hey-athena-client","owner":"rcbyron","description":"Your personal voice assistant","archived":false,"fork":false,"pushed_at":"2020-10-15T05:32:33.000Z","size":152026,"stargazers_count":420,"open_issues_count":20,"forks_count":98,"subscribers_count":53,"default_branch":"demo-branch","last_synced_at":"2024-10-08T03:55:58.774Z","etag":null,"topics":["alexa","assistant","cortana","cross-platform","siri","voice","voice-commands","voice-control","voice-recognition"],"latest_commit_sha":null,"homepage":"https://heyathena.com","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":"haccer/subjack","license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/rcbyron.png","metadata":{"files":{"readme":"README.rst","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2015-08-15T18:08:20.000Z","updated_at":"2024-10-03T16:22:27.000Z","dependencies_parsed_at":"2022-07-12T16:12:30.933Z","dependency_job_id":null,"html_url":"https://github.com/rcbyron/hey-athena-client","commit_stats":null,"previous_names":["hey-athena/hey-athena-client"],"tags_count":3,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rcbyron%2Fhey-athena-client","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rcbyron%2Fhey-athena-client/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rcbyron%2Fhey-athena-client/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rcbyron%2Fhey-athena-client/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/rcbyron","download_url":"https://codeload.github.com/rcbyron/hey-athena-client/tar.gz/refs/heads/demo-branch","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":223285171,"owners_count":17119853,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["alexa","assistant","cortana","cross-platform","siri","voice","voice-commands","voice-control","voice-recognition"],"created_at":"2024-08-01T15:05:22.172Z","updated_at":"2025-12-14T15:22:35.943Z","avatar_url":"https://github.com/rcbyron.png","language":"Python","funding_links":[],"categories":["Python","Smart Home \u0026 IoT"],"sub_categories":["Voice Assistants"],"readme":"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) \u003chttps://www.indiegogo.com/projects/hook-home-automation-on-a-budget#/\u003e`_\r\n\r\n   - `Thermostat (Nest) \u003chttps://github.com/jkoelker/python-nest/\u003e`_ \r\n-  `IFTTT Recipes \u003chttp://ifttt.com/\u003e`_ (use `Maker channel \u003chttps://ifttt.com/maker\u003e`_  to trigger)\r\n-  Grades/Homework Assignments (see `Canvas \u003chttps://canvas.instructure.com/doc/api/index.html\u003e`_)\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 \u003chttp://scikit-learn.org/stable/\u003e`_ 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 \u003chttps://wit.ai/\u003e`_\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\r\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Frcbyron%2Fhey-athena-client","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Frcbyron%2Fhey-athena-client","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Frcbyron%2Fhey-athena-client/lists"}