Giter Site home page Giter Site logo

thevickypedia / jarvis Goto Github PK

View Code? Open in Web Editor NEW
185.0 7.0 39.0 89.36 MB

Fully Functional Voice Based Natural Language UI

Home Page: https://jarvis-health.vigneshrao.com

License: MIT License

Shell 1.26% Python 93.72% Makefile 0.08% Batchfile 0.10% HTML 4.83% CSS 0.01%
jarvis speech-recognition text-to-speech virtual-assistant hotword-detection jaguar landrover magichome monitor-surrounding-conditions webos-tv

jarvis's Introduction

Voice-Activated Natural Language UI

made-with-python

Python Pypi-downloads

Platform Supported

Platform

Language Stats

Language count Code coverage

Repo Stats

GitHub

GitHub Repo stars GitHub Repo forks GitHub Repo watchers

GitHub repo size GitHub code size

GitHub Repo issues GitHub Repo issues GitHub Repo pr GitHub Repo pr

Code Stats

Modules Python Threads Listener Speaker Bash AppleScript Make

Deployments

pages pypi

markdown cleanup

Pypi Pypi-format Pypi-status

Activity

GitHub Repo created GitHub commit activity GitHub last commit GitHub last release

Development and Maintenance

Active Development Actively Maintained Maintainer

Reach Out

askme

Kick off

๐Ÿ’ก Using a dedicated virtual environment and an IDE like PyCharm is highly recommended.

Install

python -m pip install jarvis-ironman

Initiate

import jarvis


if __name__ == '__main__':
    jarvis.start()

Prerequisites

  • MacOS
    Tested on macOS High Sierra, Mojave, Catalina, Big Sur, Monterey and Ventura

    • System Preferences โ†’ Security & Privacy โ†’ Privacy
    • Click + sign and add the preferred IDE and Terminal in the following sections in left pane.
      • Microphone - Required to listen and respond.
      • Accessibility - Required to use key combinations for brightness and volume controls.
      • Camera - [Optional] Required only during face recognition/detection.
      • Automation - Required to control System Events and other apps like Outlook and Calendar.
      • Files and Folders [OR] Full Disk Access - Required for all FileIO operations.
  • Linux
    Tested on Ubuntu 22.04 LTS

    • Store the host machine's password as the env var: ROOT_PASSWORD
    • Unlike macOS and Windows, Ubuntu does not have app specific permissions.
  • Windows
    Tested on Windows 10

    • Settings โ†’ Privacy
      • Microphone - Required to listen and respond.
      • Camera - [Optional] Required only during face recognition/detection.
      • Unlike macOS, Windows pops a confirmation window to Allow or Deny access to files and folders.
    • Install Anaconda or Miniconda, VisualStudio C++ BuildTools, and Git
    • Make sure C++ build tools are installed completely and restart
    • Add anaconda/miniconda scripts location to PATH in Environment Variables

Enchiridion

Handbook - GitHub Wiki

Coding Standards

Docstring format: Google
Styling conventions: PEP 8 and isort

Requirement

python -m pip install gitverse

Usage

gitverse-release reverse -f release_notes.rst -t 'Release Notes'

Linting

pre-commit will ensure linting, run pytest, generate runbook & release notes, and validate hyperlinks in ALL markdown files (including Wiki pages)

Requirement

pip install sphinx==5.1.1 pre-commit recommonmark

Usage

pre-commit run --all-files

Pypi Package

pypi-module

https://pypi.org/project/jarvis-ironman/

Runbook

made-with-sphinx-doc

https://jarvis-docs.vigneshrao.com/

License & copyright

ยฉ Vignesh Rao

Licensed under the MIT License

jarvis's People

Contributors

rustic-monkey avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar

jarvis's Issues

Inconsistent keyword classification

Describe the bug
Keyword classifier has to be rebuilt, current match word technique has proven useless time to time.

To Reproduce
Steps to reproduce the behavior:
Using the phrase scary set up, starts the car and sets the appropriate temperature since with the current set up both car and set keywords are present in the phrase.

Expected behavior
Should not prompt anything or simply head to unrecognized category.

Additional context
Build an NLP or use a trained model for keyword classification.

Feature request - Plugin system

Hello, I just wanted to ask if you plan on making a plugin system + marketplace. It would make it much easier to develop new features without tampering with the core.

Which smart bulbs can you connect to MagicHome app?

I was planning on buying a smart bulb for my room and wanted to connect it to Jarvis. But I don't know which brand or model of bulbs to buy which is compatible with the MagicHome app. Can you please help with some suggestions?

Gets status of the first cover of multiple covers [garage door] but performs action on all at once

Describe the bug

  • The current garage door controller can properly work only if a single garage door is setup in myq
  • Having more than one garage doors setup in myq can yield unexpected results like:
    • Gets the status of the first door alone.
    • Performs actions like open and close against all the doors.

Expected behavior

  • Keep names of garage doors stored as env vars and the main door as default.
  • This way, the particular door can be opened or closed when requested.

Additional context
The bug is OS agnostic since myq uses api calls to perform actions.

Errors 305 and 263 and logging

Hi, still me. Now I'm getting error 305 and 263. Here is what I got in the terminal:

Error 305 for command:
        open "C:\Users\sebyf\AppData\Local\Packages\PythonSoftwareFoundation.Python.3.10_qbz5n2kfra8p0\LocalCache\local-packages\Python310\site-packages\jarvis\indicators\acknowledgement.mp3"
    Cannot specify extra characters after a string enclosed in quotation marks.

    Error 263 for command:
        close "C:\Users\sebyf\AppData\Local\Packages\PythonSoftwareFoundation.Python.3.10_qbz5n2kfra8p0\LocalCache\local-packages\Python310\site-packages\jarvis\indicators\acknowledgement.mp3"
    The specified device is not open or is not recognized by MCI.
Failed to close the file: "C:\Users\sebyf\AppData\Local\Packages\PythonSoftwareFoundation.Python.3.10_qbz5n2kfra8p0\LocalCache\local-packages\Python310\site-packages\jarvis\indicators\acknowledgement.mp3"
Traceback (most recent call last):
  File "C:\Users\sebyf\OneDrive\Desktop\Jarvis\Jarv.py", line 4, in <module>
    jarvis.start()
  File "C:\Users\sebyf\AppData\Local\Packages\PythonSoftwareFoundation.Python.3.10_qbz5n2kfra8p0\LocalCache\local-packages\Python310\site-packages\jarvis\main.py", line 204, in start
    Activator().start()
  File "C:\Users\sebyf\AppData\Local\Packages\PythonSoftwareFoundation.Python.3.10_qbz5n2kfra8p0\LocalCache\local-packages\Python310\site-packages\jarvis\main.py", line 143, in start
    self.executor()
  File "C:\Users\sebyf\AppData\Local\Packages\PythonSoftwareFoundation.Python.3.10_qbz5n2kfra8p0\LocalCache\local-packages\Python310\site-packages\jarvis\main.py", line 109, in executor
    playsound(sound=models.indicators.acknowledgement, block=False)
  File "C:\Users\sebyf\AppData\Local\Packages\PythonSoftwareFoundation.Python.3.10_qbz5n2kfra8p0\LocalCache\local-packages\Python310\site-packages\playsound.py", line 72, in _playsoundWin
    winCommand(u'open {}'.format(sound))
  File "C:\Users\sebyf\AppData\Local\Packages\PythonSoftwareFoundation.Python.3.10_qbz5n2kfra8p0\LocalCache\local-packages\Python310\site-packages\playsound.py", line 64, in winCommand
    raise PlaysoundException(exceptionMessage)
playsound.PlaysoundException:
    Error 305 for command:
        open "C:\Users\sebyf\AppData\Local\Packages\PythonSoftwareFoundation.Python.3.10_qbz5n2kfra8p0\LocalCache\local-packages\Python310\site-packages\jarvis\indicators\acknowledgement.mp3"
    Cannot specify extra characters after a string enclosed in quotation marks.
Traceback (most recent call last):
  File "C:\Program Files\WindowsApps\PythonSoftwareFoundation.Python.3.10_3.10.3056.0_x64__qbz5n2kfra8p0\lib\logging\__init__.py", line 1732, in isEnabledFor
    return self._cache[level]
KeyError: None

It opens also opens a realtime Spectrum Display.

There's probably some logging promlem too or something related cause I also got this:

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "C:\Users\sebyf\AppData\Local\Packages\PythonSoftwareFoundation.Python.3.10_qbz5n2kfra8p0\LocalCache\local-packages\Python310\site-packages\comtypes\client\_events.py", line 111, in error_printer
    return func(self, this, *args, **kw)
  File "C:\Users\sebyf\AppData\Local\Packages\PythonSoftwareFoundation.Python.3.10_qbz5n2kfra8p0\LocalCache\local-packages\Python310\site-packages\comtypes\_comobject.py", line 600, in IUnknown_Release
    _debug("%r.Release() -> %s", self, result)
  File "C:\Program Files\WindowsApps\PythonSoftwareFoundation.Python.3.10_3.10.3056.0_x64__qbz5n2kfra8p0\lib\logging\__init__.py", line 1464, in debug
    if self.isEnabledFor(DEBUG):
  File "C:\Program Files\WindowsApps\PythonSoftwareFoundation.Python.3.10_3.10.3056.0_x64__qbz5n2kfra8p0\lib\logging\__init__.py", line 1734, in isEnabledFor
    _acquireLock()
TypeError: 'NoneType' object is not callable
Exception ignored on calling ctypes callback function: <function catch_errors.<locals>.call_with_this at 0x00000291BFD65BD0>
Traceback (most recent call last):
  File "C:\Users\sebyf\AppData\Local\Packages\PythonSoftwareFoundation.Python.3.10_qbz5n2kfra8p0\LocalCache\local-packages\Python310\site-packages\comtypes\_comobject.py", line 97, in call_with_this
  File "C:\Program Files\WindowsApps\PythonSoftwareFoundation.Python.3.10_3.10.3056.0_x64__qbz5n2kfra8p0\lib\logging\__init__.py", line 1505, in error
  File "C:\Program Files\WindowsApps\PythonSoftwareFoundation.Python.3.10_3.10.3056.0_x64__qbz5n2kfra8p0\lib\logging\__init__.py", line 1734, in isEnabledFor
TypeError: 'NoneType' object is not callable
Traceback (most recent call last):
  File "C:\Program Files\WindowsApps\PythonSoftwareFoundation.Python.3.10_3.10.3056.0_x64__qbz5n2kfra8p0\lib\logging\__init__.py", line 1732, in isEnabledFor
    return self._cache[level]
KeyError: None

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "C:\Users\sebyf\AppData\Local\Packages\PythonSoftwareFoundation.Python.3.10_qbz5n2kfra8p0\LocalCache\local-packages\Python310\site-packages\comtypes\client\_events.py", line 111, in error_printer
    return func(self, this, *args, **kw)
  File "C:\Users\sebyf\AppData\Local\Packages\PythonSoftwareFoundation.Python.3.10_qbz5n2kfra8p0\LocalCache\local-packages\Python310\site-packages\comtypes\_comobject.py", line 600, in IUnknown_Release
    _debug("%r.Release() -> %s", self, result)
  File "C:\Program Files\WindowsApps\PythonSoftwareFoundation.Python.3.10_3.10.3056.0_x64__qbz5n2kfra8p0\lib\logging\__init__.py", line 1464, in debug
    if self.isEnabledFor(DEBUG):
  File "C:\Program Files\WindowsApps\PythonSoftwareFoundation.Python.3.10_3.10.3056.0_x64__qbz5n2kfra8p0\lib\logging\__init__.py", line 1734, in isEnabledFor
    _acquireLock()
TypeError: 'NoneType' object is not callable
Exception ignored on calling ctypes callback function: <function catch_errors.<locals>.call_with_this at 0x00000270FCF35BD0>
Traceback (most recent call last):
  File "C:\Users\sebyf\AppData\Local\Packages\PythonSoftwareFoundation.Python.3.10_qbz5n2kfra8p0\LocalCache\local-packages\Python310\site-packages\comtypes\_comobject.py", line 97, in call_with_this
  File "C:\Program Files\WindowsApps\PythonSoftwareFoundation.Python.3.10_3.10.3056.0_x64__qbz5n2kfra8p0\lib\logging\__init__.py", line 1505, in error
  File "C:\Program Files\WindowsApps\PythonSoftwareFoundation.Python.3.10_3.10.3056.0_x64__qbz5n2kfra8p0\lib\logging\__init__.py", line 1734, in isEnabledFor
TypeError: 'NoneType' object is not callable

I don't know if you need it but, I'm Attaching some logging files. I hope this is going to help.

jarvis_29-07-2023.log
mic_plotter_29-07-2023.log
speech_synthesis_29-07-2023.log
telegram_api_29-07-2023.log
background_tasks_29-07-2023.log
fast_api_29-07-2023.log
fast_api_access_29-07-2023.log

Unable to open database file

Describe the bug
Hi I got this error message when I try to launch it from a py file that looks like this:
import jarvis

if name == 'main':
jarvis.start()

Before I got another error message here(file models.py, line 93):

if not env.recognizer_settings and not env.phrase.limit:
env.recognizer_settings = RecognizerSettings()

it was like:
Traceback (most recent call last):
File "C:\Users\sebyf\Desktop\Jarv.py", line 1, in
import jarvis
File "C:\Users\sebyf\AppData\Local\Packages\PythonSoftwareFoundation.Python.3.10_qbz5n2kfra8p0\LocalCache\local-packages\Python310\site-packages\jarvis_init_.py", line 27, in
from ._preexec import keywords_handler # noqa: F401
File "C:\Users\sebyf\AppData\Local\Packages\PythonSoftwareFoundation.Python.3.10_qbz5n2kfra8p0\LocalCache\local-packages\Python310\site-packages\jarvis_preexec\keywords_handler.py", line 9, in
from jarvis.modules.conditions import conversation, keywords
File "C:\Users\sebyf\AppData\Local\Packages\PythonSoftwareFoundation.Python.3.10_qbz5n2kfra8p0\LocalCache\local-packages\Python310\site-packages\jarvis\modules\conditions\conversation.py", line 11, in
from jarvis.modules.models import models
File "C:\Users\sebyf\AppData\Local\Packages\PythonSoftwareFoundation.Python.3.10_qbz5n2kfra8p0\LocalCache\local-packages\Python310\site-packages\jarvis\modules\models\models.py", line 272, in
_main_process_validations()
File "C:\Users\sebyf\AppData\Local\Packages\PythonSoftwareFoundation.Python.3.10_qbz5n2kfra8p0\LocalCache\local-packages\Python310\site-packages\jarvis\modules\models\models.py", line 93, in _main_process_validations
if not env.recognizer_settings and not env.phrase.limit:
AttributeError: 'EnvConfig' object has no attribute 'phrase'

than I tried to remove that condition and I got:

Traceback (most recent call last):
File "C:\Users\sebyf\Desktop\Jarv.py", line 1, in
import jarvis
File "C:\Users\sebyf\AppData\Local\Packages\PythonSoftwareFoundation.Python.3.10_qbz5n2kfra8p0\LocalCache\local-packages\Python310\site-packages\jarvis_init_.py", line 27, in
from ._preexec import keywords_handler # noqa: F401
File "C:\Users\sebyf\AppData\Local\Packages\PythonSoftwareFoundation.Python.3.10_qbz5n2kfra8p0\LocalCache\local-packages\Python310\site-packages\jarvis_preexec\keywords_handler.py", line 9, in
from jarvis.modules.conditions import conversation, keywords
File "C:\Users\sebyf\AppData\Local\Packages\PythonSoftwareFoundation.Python.3.10_qbz5n2kfra8p0\LocalCache\local-packages\Python310\site-packages\jarvis\modules\conditions\conversation.py", line 11, in
from jarvis.modules.models import models
File "C:\Users\sebyf\AppData\Local\Packages\PythonSoftwareFoundation.Python.3.10_qbz5n2kfra8p0\LocalCache\local-packages\Python310\site-packages\jarvis\modules\models\models.py", line 272, in
_main_process_validations()
File "C:\Users\sebyf\AppData\Local\Packages\PythonSoftwareFoundation.Python.3.10_qbz5n2kfra8p0\LocalCache\local-packages\Python310\site-packages\jarvis\modules\models\models.py", line 119, in _main_process_validations
db = database.Database(database=fileio.base_db)
File "C:\Users\sebyf\AppData\Local\Packages\PythonSoftwareFoundation.Python.3.10_qbz5n2kfra8p0\LocalCache\local-packages\Python310\site-packages\jarvis\modules\database\database.py", line 33, in init
self.connection = sqlite3.connect(database=database, check_same_thread=False, timeout=timeout)
sqlite3.OperationalError: unable to open database file

getting error while running jarvis.py

Sir,
i am get this error while Jarvis.py
" from resource import RUSAGE_SELF, getrusage
ModuleNotFoundError: No module named 'resource'"

Python Version : 3.10.3
Windows : 11 Pro

Suggestions and Package Errors

Instead of Jarvis continuously saying 'sir', both to a man and woman, he can differentiate using this package and speak to the user more effectively (by saying sir and maam):-
https://pypi.org/project/voice-analyzer

Also I am getting the following error while installing search-engine-parser package:-

ERROR: Could not build wheels for multidict which use PEP 517 and cannot be installed directly

Please help

PS can you please review the pull request I submitted #8

Python request module errors

Running the command python3 jarvis.py on my windows 10 computer throws back the following error:

Traceback (most recent call last):
File "C:\Users\dason\Desktop\Jarvis\Jarvis-master\jarvis.py", line 18, in
import certifi and the other modules. i.e

import holidays
import pytemperature
import pyttsx3 as audio
import requests
import speech_recognition as sr
import yaml

I have installed all the necessary requirements.

Any idea on how I can get around this error will be appreciated.

A Small Doubt

What are you supposed to write for the offline_receive_user, offline_receive_pass and offline_sender functions in helper_fuctions.aws_clients. A name or a phone number?

Are you supposed to write a date(12.08.2020) or a word(12th August 2020) for the birthday function?

PS: Skip to 4:35 in this youtube video:- https://www.youtube.com/watch?v=d_4YJQsaAZ8 J actually does have print() functions

PPS: I thought it is quite ironic that this Jarvis runs on AWS while Ironman uses Oracle for his Jarvis in Ironman 2

Can you please give Jarvis the ability to translate

Thanks for the help. Can you please give Jarvis the ability to translate
between languages and to read story books from a website (like
www.fairytalez.com)?
It would be really appreciated.
Thanks

On Mon, Jan 11, 2021 at 1:06 PM Vignesh [email protected] wrote:

I own a smart TV that is LG ThinAI model, so I am not sure about
using/testing Samsung tv's features. I'd say the good place to start would
be samsungtvws https://pypi.org/project/samsungtvws/ or samsungtv
https://pypi.org/project/samsungtv/ in pypi or check out some public
APIs for Samsung smart devices
If it is a smart TV, I am almost sure there would be some APIs out there
which you can use.
Good luck with your search.

โ€”
You are receiving this because you authored the thread.
Reply to this email directly, view it on GitHub
#4 (comment),
or unsubscribe
https://github.com/notifications/unsubscribe-auth/ASJ7EWME6JMLQPQJKJQVOGLSZKS6DANCNFSM4V2T57AA
.

Originally posted by @ariv797 in #4 (comment)

Response for security mode is getting invoked twice when mixed with offline communicator

Describe the bug

  • Enable and disable security mode via offline communicator or voice commands - Works as it should
  • Enable via offline communicator but disable via voice command:
    - There will be two processes calling the listener, so both will trigger a response for "disable security mode"
  • Enable via voice command but disable via offline communicator:
    - Enabled via voice command will run security mode in MainProcess, disabling it from offline communicator will kill it, but the MainProcess says "Security mode was never enabled" as the state was changed by offline processor.

To Reproduce
Steps to reproduce the behavior:

  • Follow steps as described in the description

Expected behavior
Both the processes should be aware of the task performed by the other.

Desktop (please complete the following information):

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.