Introduction to Python-ai-assistant: Jarvis
Jarvis is an intelligent AI voice assistant developed in Python 3.8. Designed to enhance productivity and user convenience, Jarvis can understand human speech, respond conversationally, and execute an array of useful commands. This assistant operates efficiently on Ubuntu 20.04 and relies on Python’s robust language framework.
Key Features of Jarvis
Jarvis has a rich suite of functionalities tailored for both everyday and more advanced tasks:
-
Web Navigation: Users can verbally command Jarvis to open specific web pages, such as "Jarvis open YouTube", for seamless browsing.
-
Multimedia Control: By simply asking, "Jarvis play Mozart", Jarvis can play music on YouTube, offering entertainment without the need for typing.
-
Audio Management: Commands like "Jarvis volume up!" let users adjust the speaker volume, including setting maximum or muted states.
-
Application Management: Jarvis can open applications within the LibreOffice suite, such as Calc, by using voice prompts.
-
Information Fetching: With a query like, "Jarvis tells me about oranges", Jarvis can perform internet searches to provide detailed insights.
-
Weather Forecast: Stay updated on weather conditions, e.g., "Jarvis, tell me the weather in London".
-
Time & Date Reporting: Commands such as "Jarvis, tell me the time or date" provide current temporal information.
-
Alarm & Reminder Management: Create alarms or reminders with ease, such as "Jarvis creates a new alarm".
-
Internet Diagnostics: Jarvis can check connectivity status and speed, responding to questions like "Jarvis, is the internet connection okay?"
-
News Updates: Keep informed with daily news by asking, "Jarvis, tell me today's news".
-
Spelling and Calculation: Jarvis can spell words or solve basic calculations, e.g., "Jarvis, spell the word animal" or "Jarvis, what’s 5 plus 6."
-
Skill Catalog: Users can ask "Jarvis, tell me what you can do" to explore the full range of Jarvis's capabilities.
-
Location and System Status: It provides details like current location, memory consumption, and command history when prompted.
-
Learning and Memory: Jarvis can remember commands and enable learning mode to enhance its responsiveness over time.
-
System Commands: It also supports system-specific commands like clearing the bash console and opening Linux applications.
Advanced Features
Jarvis shines with advanced functionalities such as asynchronous command execution and built-in support for both text and speech inputs. The assistant can answer general questions using the Wolfram API, making queries like "Jarvis, what is the highest building" simple and effective. One can easily customize Jarvis's responses and even change its name on the fly.
Getting Started with Jarvis
To leverage Jarvis's capabilities, users need to configure third-party APIs, including OpenWeatherMap for weather forecasts, WolframAlpha for general inquiries, and IPSTACK for location services. These APIs provide free keys for non-commercial use, essential for enabling Jarvis's full range of features.
Setting Up Jarvis
-
Clone the Repository:
git clone https://github.com/ggeop/Jarvis.git --branch master
-
Navigate and Setup:
cd Jarvis bash setup.sh
-
Configure API Keys: Place API keys in the settings file for optimal performance:
nano Jarvis/src/jarvis/jarvis/setting.py
-
Launch Jarvis:
bash run_jarvis.sh
Extending Jarvis's Abilities
Adding new skills to Jarvis is straightforward. Users can configure new skills in the skills/registry.py
and implement the corresponding logic in skills/collection
. This modular design makes it easy to expand Jarvis's capabilities as needed.
Community and Contributions
Jarvis is open for community contributions. Interested developers are encouraged to clone the project, work on new features, and submit pull requests (PRs) for review. The project follows PEP-8 guidelines, and contributions help enhance its functionality.
Continuous Integration
The project utilizes Travis CI/CD for automated testing and deployment, ensuring that Jarvis remains reliable and up-to-date with each new release.
In summary, Jarvis is a versatile and user-friendly AI assistant that simplifies daily tasks through voice commands. Its easy setup, extensive features, and customizable nature make it a valuable tool for tech enthusiasts and everyday users alike.