Uh oh!
There was an error while loading.Please reload this page.
- Notifications
You must be signed in to change notification settings - Fork250
ggeop/Python-ai-assistant
Folders and files
| Name | Name | Last commit message | Last commit date | |
|---|---|---|---|---|
Repository files navigation
Jarvis is a voice commanding assistant service inPython 3.8It can recognize human speech, talk to user and execute basic commands.
- Operation system:Ubuntu 20.04 (Focal Fossa)
- Python Version:3.8.x
- Opens a web page (e.g 'Jarvis open youtube')
- Play music in Youtube (e.g 'Jarvis play mozart')
- Increase/decrease the speakers master volume (also can set max/mute speakers volume) ** (e.g 'Jarvis volume up!')
- Opens libreoffice suite applications (calc, writer, impress) (e.g 'Jarvis open calc')
- Tells about something, by searching on the internet (e.g 'Jarvis tells me about oranges')
- Tells the weather for a place (e.g 'Jarvis tell_the_skills me the weather in London')
- Tells the current time and/or date (e.g 'Jarvis tell me time or date')
- Set an alarm (e.g 'Jarvis create a new alarm')
- Tells the internet speed (ping, uplink and downling) (e.g 'Jarvis tell_the_skills me the internet speed')
- Tells the internet availability (e.g 'Jarvis is the internet connection ok?')
- Tells the daily news (e.g 'Jarvis tell me today news')
- Spells a word (e.g 'Jarvis spell me the word animal')
- Creates a reminder (e.g 'Jarvis create a 10 minutes reminder')
- Opens linux applications (e.g 'Jarvis open bash/firefox')
- Tells everything it can do (e.g 'Jarvis tell me your skills or tell me what can you do')
- Tells the current location (e.g 'Jarvis tell me your current location')
- Tells how much memory consumes (e.g 'Jarvis tell me your memory consumption)
- Tells users commands history (e.g 'Jarvis tell me my history')
- Write/tell 'remember' and enable learning mode and add new responses on demand! (e.g 'Jarvis remember')
- Clear bash console (e.g 'Jarvis clear console')
- Has help command, which prints all the skills with their descriptions (e.g 'Jarvis help')
- Do basic calculations (e.g 'Jarvis (5 + 6) * 8' or 'Jarvis one plus one')
- Change settings on runtime (e.g 'Jarvis change settings')
- Asynchronous command execution & speech recognition and interpretation
- Supportstwo different user input modes (text or speech), user can write or speek in the mic.
- Answers ingeneral questions (via call Wolfram API), e.g ('Jarvis tell me the highest building')
- Change input mode on run time, triggered by a phrase e.g 'Jarvis change settings')
- Easyvoice-command customization
- Configurableassistant name (e.g 'Jarvis', 'Sofia', 'John' etc.) (change on run time supported)
- Log preview in console
- Vocal or/and text response
- Keeps commands history and learned skills in MongoDB.'
Jarvis assistant uses third party APIs for speech recognition,web information search, weather forecasting etc.All the following APIs have free no-commercial API calls. Subscribe to the following APIs in order to take FREE access KEYs.
- OpenWeatherMap: API for weather forecast.
- WolframAlpha: API for answer questions.
- IPSTACK: API for current location.
- Download the Jarvis repo locally:
git clone https://github.com/ggeop/Jarvis.git --branch master
For Contribution:
git clone https://github.com/ggeop/Jarvis.git --branch develop
- Change working directory
cd Jarvis- Setup Jarvis and system dependencies:
bash setup.sh
- Put the Keys in settings
NOTE:For better experience, before you start the application you can put the free KEYs in the settings.py
nano Jarvis/src/jarvis/jarvis/setting.py
- Start the assistant service:
bash run_jarvis.sh
You can easily add a new skill in two steps.
- Create a new configuration SKILLS inskills/registry.py
{'enable':True,'func':Skills.new_skill,'tags':'tag1, tag2','description':'skill description..'}- Create a new skill module inskills/collection
The skill extraction implement in a matrix ofTF-IDF features for each skill.In the following example he have a dimensional space with three skills.The user input analyzed in this space and by using a similarity metric (e.g cosine) we find the most similar skill.
- Pull Requests (PRs) are welcome
☺️ - The process for contribution is the following:
- Clone the project
- Checkout
developbranch and create a feature branch e.gfeature_branch - Open a PR to
develop - Wait for review and approval !!
masterbranch update and release is automated viaTravis CI/CD
- Try to follow PEP-8 guidelines and add useful comments!
If you enjoy this virtual assistant, you might also be interested in my other AI-powered project:DataDialogue
Transform the way you interact with databases through natural conversations! DataDialogue enables anyone to:
- 💬Query databases using natural language
- 📊Get instant data visualizations
- 🔍Explore data without SQL knowledge
- 🤝Bridge the gap between data and business users
About
Python AI assistant 🧠
Topics
Resources
License
Uh oh!
There was an error while loading.Please reload this page.
Stars
Watchers
Forks
Sponsor this project
Uh oh!
There was an error while loading.Please reload this page.
Packages0
Uh oh!
There was an error while loading.Please reload this page.
Contributors9
Uh oh!
There was an error while loading.Please reload this page.



