Giter Club home page Giter Club logo

python-ai-assistant's Introduction

CodeFactor Maintainability License: MIT Build Status

alt text

About Jarvis - An Intelligent AI Consciousness 🧠

Jarvis is a voice commanding assistant service in Python 3.8 It can recognize human speech, talk to user and execute basic commands.

Requirements

  • Operation system: Ubuntu 20.04 (Focal Fossa)
  • Python Version: 3.8.x

Assistant Skills

  • 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')

Assistant Features

  • Asynchronous command execution & speech recognition and interpretation
  • Supports two different user input modes (text or speech), user can write or speek in the mic.
  • Answers in general 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')
  • Easy voice-command customization
  • Configurable assistant 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.'

Getting Started

Create KEYs for third party APIs

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.

Setup Jarvis in Ubuntu/Debian system

  • 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 voice commanding assistant

alt text

  • Start the assistant service:
bash run_jarvis.sh

How to add a new Skill to assistant

You can easily add a new skill in two steps.

  • Create a new configuration SKILLS in skills/registry.py
{ 
  'enable': True,
  'func': Skills.new_skill,
  'tags': 'tag1, tag2',
  'description': 'skill description..'
}               
  • Create a new skill module in skills/collection

Decision Model

alt text

Extract skill

The skill extraction implement in a matrix of TF-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. alt text


Contributing

  • Pull Requests (PRs) are welcome ☺️
  • The process for contribution is the following:
    • Clone the project
    • Checkout develop branch and create a feature branch e.g feature_branch
    • Open a PR to develop
    • Wait for review and approval !!
    • master branch update and release is automated via Travis CI/CD
  • Try to follow PEP-8 guidelines and add useful comments!

CI/CD Flow

alt text

python-ai-assistant's People

Contributors

89q12 avatar anujdube12 avatar codacy-badger avatar dependabot[bot] avatar ganeshjainarain avatar ggeop avatar snehkhajanchi avatar szenekonzept avatar vipul-sharma20 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  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

python-ai-assistant's Issues

Assistant doesn't print to console to reply user's question

This is my settings.py:

DEFAULT_GENERAL_SETTINGS = {
    'assistant_name': 'Jarvis',
    'input_mode': InputMode.VOICE.value,
    'response_in_speech': False,
    'response_in_text:': True,
}

In Jarvis console:

========================================================================================================= GENERAL INFO =========================================================================================================
RESPONSE IN SPEECH: NOT ENABLED
INPUT MODE: VOICE
NOTE: Include 'JARVIS' in you command to enable assistant
============================================================================================================ SYSTEM ============================================================================================================
RAM USAGE: 0.11 GB
========================================================================================== LOG -/var/log/jarvis.log (Total Lines: 551) ==========================================================================================
2021-02-07 19:14:14,783 - root - INFO - Configuring Mic..
2021-02-07 19:14:14,926 - root - INFO - Microphone configured successfully!
2021-02-07 19:14:15,628 - root - INFO - Wait a second for startup checks..
2021-02-07 19:14:15,687 - root - INFO - Checking internet connection..
2021-02-07 19:14:16,024 - root - INFO - Internet connection passed!
2021-02-07 19:14:16,086 - root - INFO - Application started
2021-02-07 19:14:16,142 - root - INFO - I'm ready! Say something :-)
2021-02-07 19:14:39,224 - root - INFO - User said: jarvis what time is it

=============================================================
 ASSISTANT 
=====================================

question: are new skills pull requests accepted?

Hi, I really liked your project and would like to contribute to this, but I want to clarify whether you accept the new skills pull requests. I have several ideas that I think are interesting and fun so i could share them with the community.
Thanks

SciPy

Having problem after installing Scipy-1.3.0.tar.gz. ?
Preparing wheel metadata ... error

Compilation error

Please help me
LOG ERROR:

Building wheels for collected packages: lxml, PyAudio, scikit-learn
Building wheel for lxml (setup.py) ... error
ERROR: Command errored out with exit status 1:
command: /home/otavio/Desktop/ProjectJulia/jarvis_virtualenv/bin/python -u -c 'import sys, setuptools, tokenize; sys.argv[0] = '"'"'/tmp/pip-install-gtjjp10k/lxml_637439183f7e42128567fd120ee54db2/setup.py'"'"'; file='"'"'/tmp/pip-install-gtjjp10k/lxml_637439183f7e42128567fd120ee54db2/setup.py'"'"';f=getattr(tokenize, '"'"'open'"'"', open)(file);code=f.read().replace('"'"'\r\n'"'"', '"'"'\n'"'"');f.close();exec(compile(code, file, '"'"'exec'"'"'))' bdist_wheel -d /tmp/pip-wheel-urcft4qx
cwd: /tmp/pip-install-gtjjp10k/lxml_637439183f7e42128567fd120ee54db2/
Complete output (96 lines):
Building lxml version 4.3.4.
Building without Cython.
ERROR: b'/bin/sh: 1: xslt-config: not found\n'
** make sure the development packages of libxml2 and libxslt are installed **

Using build configuration of libxslt
running bdist_wheel
running build
running build_py
creating build
creating build/lib.linux-x86_64-3.8
creating build/lib.linux-x86_64-3.8/lxml
copying src/lxml/_elementpath.py -> build/lib.linux-x86_64-3.8/lxml
copying src/lxml/builder.py -> build/lib.linux-x86_64-3.8/lxml
copying src/lxml/init.py -> build/lib.linux-x86_64-3.8/lxml
copying src/lxml/usedoctest.py -> build/lib.linux-x86_64-3.8/lxml
copying src/lxml/cssselect.py -> build/lib.linux-x86_64-3.8/lxml
copying src/lxml/doctestcompare.py -> build/lib.linux-x86_64-3.8/lxml
copying src/lxml/pyclasslookup.py -> build/lib.linux-x86_64-3.8/lxml
copying src/lxml/sax.py -> build/lib.linux-x86_64-3.8/lxml
copying src/lxml/ElementInclude.py -> build/lib.linux-x86_64-3.8/lxml
creating build/lib.linux-x86_64-3.8/lxml/includes
copying src/lxml/includes/init.py -> build/lib.linux-x86_64-3.8/lxml/includes
creating build/lib.linux-x86_64-3.8/lxml/html
copying src/lxml/html/_diffcommand.py -> build/lib.linux-x86_64-3.8/lxml/html
copying src/lxml/html/_setmixin.py -> build/lib.linux-x86_64-3.8/lxml/html
copying src/lxml/html/builder.py -> build/lib.linux-x86_64-3.8/lxml/html
copying src/lxml/html/init.py -> build/lib.linux-x86_64-3.8/lxml/html
copying src/lxml/html/diff.py -> build/lib.linux-x86_64-3.8/lxml/html
copying src/lxml/html/usedoctest.py -> build/lib.linux-x86_64-3.8/lxml/html
copying src/lxml/html/_html5builder.py -> build/lib.linux-x86_64-3.8/lxml/html
copying src/lxml/html/formfill.py -> build/lib.linux-x86_64-3.8/lxml/html
copying src/lxml/html/html5parser.py -> build/lib.linux-x86_64-3.8/lxml/html
copying src/lxml/html/soupparser.py -> build/lib.linux-x86_64-3.8/lxml/html
copying src/lxml/html/clean.py -> build/lib.linux-x86_64-3.8/lxml/html
copying src/lxml/html/ElementSoup.py -> build/lib.linux-x86_64-3.8/lxml/html
copying src/lxml/html/defs.py -> build/lib.linux-x86_64-3.8/lxml/html
creating build/lib.linux-x86_64-3.8/lxml/isoschematron
copying src/lxml/isoschematron/init.py -> build/lib.linux-x86_64-3.8/lxml/isoschematron
copying src/lxml/etree.h -> build/lib.linux-x86_64-3.8/lxml
copying src/lxml/etree_api.h -> build/lib.linux-x86_64-3.8/lxml
copying src/lxml/lxml.etree.h -> build/lib.linux-x86_64-3.8/lxml
copying src/lxml/lxml.etree_api.h -> build/lib.linux-x86_64-3.8/lxml
copying src/lxml/includes/relaxng.pxd -> build/lib.linux-x86_64-3.8/lxml/includes
copying src/lxml/includes/tree.pxd -> build/lib.linux-x86_64-3.8/lxml/includes
copying src/lxml/includes/xinclude.pxd -> build/lib.linux-x86_64-3.8/lxml/includes
copying src/lxml/includes/xslt.pxd -> build/lib.linux-x86_64-3.8/lxml/includes
copying src/lxml/includes/schematron.pxd -> build/lib.linux-x86_64-3.8/lxml/includes
copying src/lxml/includes/init.pxd -> build/lib.linux-x86_64-3.8/lxml/includes
copying src/lxml/includes/etreepublic.pxd -> build/lib.linux-x86_64-3.8/lxml/includes
copying src/lxml/includes/uri.pxd -> build/lib.linux-x86_64-3.8/lxml/includes
copying src/lxml/includes/htmlparser.pxd -> build/lib.linux-x86_64-3.8/lxml/includes
copying src/lxml/includes/xmlschema.pxd -> build/lib.linux-x86_64-3.8/lxml/includes
copying src/lxml/includes/c14n.pxd -> build/lib.linux-x86_64-3.8/lxml/includes
copying src/lxml/includes/dtdvalid.pxd -> build/lib.linux-x86_64-3.8/lxml/includes
copying src/lxml/includes/xmlerror.pxd -> build/lib.linux-x86_64-3.8/lxml/includes
copying src/lxml/includes/config.pxd -> build/lib.linux-x86_64-3.8/lxml/includes
copying src/lxml/includes/xmlparser.pxd -> build/lib.linux-x86_64-3.8/lxml/includes
copying src/lxml/includes/xpath.pxd -> build/lib.linux-x86_64-3.8/lxml/includes
copying src/lxml/includes/lxml-version.h -> build/lib.linux-x86_64-3.8/lxml/includes
copying src/lxml/includes/etree_defs.h -> build/lib.linux-x86_64-3.8/lxml/includes
creating build/lib.linux-x86_64-3.8/lxml/isoschematron/resources
creating build/lib.linux-x86_64-3.8/lxml/isoschematron/resources/rng
copying src/lxml/isoschematron/resources/rng/iso-schematron.rng -> build/lib.linux-x86_64-3.8/lxml/isoschematron/resources/rng
creating build/lib.linux-x86_64-3.8/lxml/isoschematron/resources/xsl
copying src/lxml/isoschematron/resources/xsl/RNG2Schtrn.xsl -> build/lib.linux-x86_64-3.8/lxml/isoschematron/resources/xsl
copying src/lxml/isoschematron/resources/xsl/XSD2Schtrn.xsl -> build/lib.linux-x86_64-3.8/lxml/isoschematron/resources/xsl
creating build/lib.linux-x86_64-3.8/lxml/isoschematron/resources/xsl/iso-schematron-xslt1
copying src/lxml/isoschematron/resources/xsl/iso-schematron-xslt1/iso_svrl_for_xslt1.xsl -> build/lib.linux-x86_64-3.8/lxml/isoschematron/resources/xsl/iso-schematron-xslt1
copying src/lxml/isoschematron/resources/xsl/iso-schematron-xslt1/iso_schematron_message.xsl -> build/lib.linux-x86_64-3.8/lxml/isoschematron/resources/xsl/iso-schematron-xslt1
copying src/lxml/isoschematron/resources/xsl/iso-schematron-xslt1/iso_abstract_expand.xsl -> build/lib.linux-x86_64-3.8/lxml/isoschematron/resources/xsl/iso-schematron-xslt1
copying src/lxml/isoschematron/resources/xsl/iso-schematron-xslt1/iso_schematron_skeleton_for_xslt1.xsl -> build/lib.linux-x86_64-3.8/lxml/isoschematron/resources/xsl/iso-schematron-xslt1
copying src/lxml/isoschematron/resources/xsl/iso-schematron-xslt1/iso_dsdl_include.xsl -> build/lib.linux-x86_64-3.8/lxml/isoschematron/resources/xsl/iso-schematron-xslt1
copying src/lxml/isoschematron/resources/xsl/iso-schematron-xslt1/readme.txt -> build/lib.linux-x86_64-3.8/lxml/isoschematron/resources/xsl/iso-schematron-xslt1
running build_ext
building 'lxml.etree' extension
creating build/temp.linux-x86_64-3.8
creating build/temp.linux-x86_64-3.8/src
creating build/temp.linux-x86_64-3.8/src/lxml
x86_64-linux-gnu-gcc -pthread -Wno-unused-result -Wsign-compare -DNDEBUG -g -fwrapv -O2 -Wall -g -fstack-protector-strong -Wformat -Werror=format-security -g -fwrapv -O2 -g -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -fPIC -DCYTHON_CLINE_IN_TRACEBACK=0 -Isrc -Isrc/lxml/includes -I/home/otavio/Desktop/ProjectJulia/jarvis_virtualenv/include -I/usr/include/python3.8 -c src/lxml/etree.c -o build/temp.linux-x86_64-3.8/src/lxml/etree.o -w
In file included from src/lxml/etree.c:692:
src/lxml/includes/etree_defs.h:14:10: fatal error: libxml/xmlversion.h: No such file or directory
14 | #include "libxml/xmlversion.h"
| ^~~~~~~~~~~~~~~~~~~~~
compilation terminated.
Compile failed: command 'x86_64-linux-gnu-gcc' failed with exit status 1
creating tmp
cc -I/usr/include/libxml2 -c /tmp/xmlXPathInituz5w5_le.c -o tmp/xmlXPathInituz5w5_le.o
/tmp/xmlXPathInituz5w5_le.c:1:10: fatal error: libxml/xpath.h: No such file or directory
1 | #include "libxml/xpath.h"
| ^~~~~~~~~~~~~~~~
compilation terminated.


Could not find function xmlCheckVersion in library libxml2. Is libxml2 installed?


error: command 'x86_64-linux-gnu-gcc' failed with exit status 1

ERROR: Failed building wheel for lxml
Running setup.py clean for lxml
Building wheel for PyAudio (setup.py) ... error
ERROR: Command errored out with exit status 1:
command: /home/otavio/Desktop/ProjectJulia/jarvis_virtualenv/bin/python -u -c 'import sys, setuptools, tokenize; sys.argv[0] = '"'"'/tmp/pip-install-gtjjp10k/pyaudio_ec672df5993d4d419f30458a80ab09ac/setup.py'"'"'; file='"'"'/tmp/pip-install-gtjjp10k/pyaudio_ec672df5993d4d419f30458a80ab09ac/setup.py'"'"';f=getattr(tokenize, '"'"'open'"'"', open)(file);code=f.read().replace('"'"'\r\n'"'"', '"'"'\n'"'"');f.close();exec(compile(code, file, '"'"'exec'"'"'))' bdist_wheel -d /tmp/pip-wheel-uh6u3k_w
cwd: /tmp/pip-install-gtjjp10k/pyaudio_ec672df5993d4d419f30458a80ab09ac/
Complete output (16 lines):
running bdist_wheel
running build
running build_py
creating build
creating build/lib.linux-x86_64-3.8
copying src/pyaudio.py -> build/lib.linux-x86_64-3.8
running build_ext
building '_portaudio' extension
creating build/temp.linux-x86_64-3.8
creating build/temp.linux-x86_64-3.8/src
x86_64-linux-gnu-gcc -pthread -Wno-unused-result -Wsign-compare -DNDEBUG -g -fwrapv -O2 -Wall -g -fstack-protector-strong -Wformat -Werror=format-security -g -fwrapv -O2 -g -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -fPIC -I/home/otavio/Desktop/ProjectJulia/jarvis_virtualenv/include -I/usr/include/python3.8 -c src/_portaudiomodule.c -o build/temp.linux-x86_64-3.8/src/_portaudiomodule.o
src/_portaudiomodule.c:29:10: fatal error: portaudio.h: No such file or directory
29 | #include "portaudio.h"
| ^~~~~~~~~~~~~
compilation terminated.
error: command 'x86_64-linux-gnu-gcc' failed with exit status 1

ERROR: Failed building wheel for PyAudio
Running setup.py clean for PyAudio
Building wheel for scikit-learn (setup.py) ... error
ERROR: Command errored out with exit status 1:
command: /home/otavio/Desktop/ProjectJulia/jarvis_virtualenv/bin/python -u -c 'import sys, setuptools, tokenize; sys.argv[0] = '"'"'/tmp/pip-install-gtjjp10k/scikit-learn_33b0942a51cf4b699f0fcf9d6799ac7e/setup.py'"'"'; file='"'"'/tmp/pip-install-gtjjp10k/scikit-learn_33b0942a51cf4b699f0fcf9d6799ac7e/setup.py'"'"';f=getattr(tokenize, '"'"'open'"'"', open)(file);code=f.read().replace('"'"'\r\n'"'"', '"'"'\n'"'"');f.close();exec(compile(code, file, '"'"'exec'"'"'))' bdist_wheel -d /tmp/pip-wheel-9sxvwstv
cwd: /tmp/pip-install-gtjjp10k/scikit-learn_33b0942a51cf4b699f0fcf9d6799ac7e/
Complete output (100 lines):
Partial import of sklearn during the build process.
blas_opt_info:
blas_mkl_info:
customize UnixCCompiler
libraries mkl_rt not found in ['/home/otavio/Desktop/ProjectJulia/jarvis_virtualenv/lib', '/usr/local/lib', '/usr/lib64', '/usr/lib', '/usr/lib/x86_64-linux-gnu']
NOT AVAILABLE

blis_info:
customize UnixCCompiler
libraries blis not found in ['/home/otavio/Desktop/ProjectJulia/jarvis_virtualenv/lib', '/usr/local/lib', '/usr/lib64', '/usr/lib', '/usr/lib/x86_64-linux-gnu']
NOT AVAILABLE

openblas_info:
customize UnixCCompiler
customize UnixCCompiler
libraries openblas not found in ['/home/otavio/Desktop/ProjectJulia/jarvis_virtualenv/lib', '/usr/local/lib', '/usr/lib64', '/usr/lib', '/usr/lib/x86_64-linux-gnu']
NOT AVAILABLE

atlas_3_10_blas_threads_info:
Setting PTATLAS=ATLAS
customize UnixCCompiler
libraries tatlas not found in ['/home/otavio/Desktop/ProjectJulia/jarvis_virtualenv/lib', '/usr/local/lib', '/usr/lib64', '/usr/lib', '/usr/lib/x86_64-linux-gnu/atlas', '/usr/lib/x86_64-linux-gnu']
NOT AVAILABLE

atlas_3_10_blas_info:
customize UnixCCompiler
libraries satlas not found in ['/home/otavio/Desktop/ProjectJulia/jarvis_virtualenv/lib', '/usr/local/lib', '/usr/lib64', '/usr/lib', '/usr/lib/x86_64-linux-gnu/atlas', '/usr/lib/x86_64-linux-gnu']
NOT AVAILABLE

atlas_blas_threads_info:
Setting PTATLAS=ATLAS
customize UnixCCompiler
libraries ptf77blas,ptcblas,atlas not found in ['/home/otavio/Desktop/ProjectJulia/jarvis_virtualenv/lib', '/usr/local/lib', '/usr/lib64', '/usr/lib', '/usr/lib/x86_64-linux-gnu/atlas', '/usr/lib/x86_64-linux-gnu']
NOT AVAILABLE

atlas_blas_info:
customize UnixCCompiler
get_default_fcompiler: matching types: '['gnu95', 'intel', 'lahey', 'pg', 'absoft', 'nag', 'vast', 'compaq', 'intele', 'intelem', 'gnu', 'g95', 'pathf95', 'nagfor']'
customize Gnu95FCompiler
Found executable /usr/bin/gfortran
customize Gnu95FCompiler
customize Gnu95FCompiler using config
compiling '_configtest.c':

/* This file is generated from numpy/distutils/system_info.py */
void ATL_buildinfo(void);
int main(void) {
ATL_buildinfo();
return 0;
}

C compiler: x86_64-linux-gnu-gcc -pthread -Wno-unused-result -Wsign-compare -DNDEBUG -g -fwrapv -O2 -Wall -g -fstack-protector-strong -Wformat -Werror=format-security -g -fwrapv -O2 -g -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -fPIC

compile options: '-c'
x86_64-linux-gnu-gcc: _configtest.c
x86_64-linux-gnu-gcc -pthread _configtest.o -lf77blas -lcblas -latlas -o _configtest
customize UnixCCompiler
customize UnixCCompiler
FOUND:
language = c
define_macros = [('HAVE_CBLAS', None), ('NO_ATLAS_INFO', -1)]
libraries = ['f77blas', 'cblas', 'atlas', 'f77blas', 'cblas']
library_dirs = ['/usr/lib/x86_64-linux-gnu']

accelerate_info:
NOT AVAILABLE

FOUND:
  language = c
  define_macros = [('HAVE_CBLAS', None), ('NO_ATLAS_INFO', -1)]
  libraries = ['f77blas', 'cblas', 'atlas', 'f77blas', 'cblas']
  library_dirs = ['/usr/lib/x86_64-linux-gnu']

Traceback (most recent call last):
File "", line 1, in
File "/tmp/pip-install-gtjjp10k/scikit-learn_33b0942a51cf4b699f0fcf9d6799ac7e/setup.py", line 290, in
setup_package()
File "/tmp/pip-install-gtjjp10k/scikit-learn_33b0942a51cf4b699f0fcf9d6799ac7e/setup.py", line 286, in setup_package
setup(**metadata)
File "/home/otavio/Desktop/ProjectJulia/jarvis_virtualenv/lib/python3.8/site-packages/numpy/distutils/core.py", line 137, in setup
config = configuration()
File "/tmp/pip-install-gtjjp10k/scikit-learn_33b0942a51cf4b699f0fcf9d6799ac7e/setup.py", line 174, in configuration
config.add_subpackage('sklearn')
File "/home/otavio/Desktop/ProjectJulia/jarvis_virtualenv/lib/python3.8/site-packages/numpy/distutils/misc_util.py", line 1034, in add_subpackage
config_list = self.get_subpackage(subpackage_name, subpackage_path,
File "/home/otavio/Desktop/ProjectJulia/jarvis_virtualenv/lib/python3.8/site-packages/numpy/distutils/misc_util.py", line 1000, in get_subpackage
config = self._get_configuration_from_setup_py(
File "/home/otavio/Desktop/ProjectJulia/jarvis_virtualenv/lib/python3.8/site-packages/numpy/distutils/misc_util.py", line 942, in _get_configuration_from_setup_py
config = setup_module.configuration(*args)
File "sklearn/setup.py", line 66, in configuration
config.add_subpackage('utils')
File "/home/otavio/Desktop/ProjectJulia/jarvis_virtualenv/lib/python3.8/site-packages/numpy/distutils/misc_util.py", line 1034, in add_subpackage
config_list = self.get_subpackage(subpackage_name, subpackage_path,
File "/home/otavio/Desktop/ProjectJulia/jarvis_virtualenv/lib/python3.8/site-packages/numpy/distutils/misc_util.py", line 1000, in get_subpackage
config = self._get_configuration_from_setup_py(
File "/home/otavio/Desktop/ProjectJulia/jarvis_virtualenv/lib/python3.8/site-packages/numpy/distutils/misc_util.py", line 942, in _get_configuration_from_setup_py
config = setup_module.configuration(*args)
File "sklearn/utils/setup.py", line 8, in configuration
from Cython import Tempita
ModuleNotFoundError: No module named 'Cython'

ERROR: Failed building wheel for scikit-learn
Running setup.py clean for scikit-learn
Failed to build lxml PyAudio scikit-learn
Installing collected packages: scikit-learn, requests, pycairo, nltk, jaraco.itertools, geojson, beautifulsoup4, word2number, wolframalpha, wikipedia, web-cache, textblob, speedtest-cli, SpeechRecognition, sklearn, pyttsx3, pyowm, pymongo, pygobject, PyAudio, PTable, psutil, playsound, patch, mock, lxml, gTTS-token, google, colorize, Click, bs4, APScheduler, appdirs
Running setup.py install for scikit-learn ... error
ERROR: Command errored out with exit status 1:
command: /home/otavio/Desktop/ProjectJulia/jarvis_virtualenv/bin/python -u -c 'import sys, setuptools, tokenize; sys.argv[0] = '"'"'/tmp/pip-install-gtjjp10k/scikit-learn_33b0942a51cf4b699f0fcf9d6799ac7e/setup.py'"'"'; file='"'"'/tmp/pip-install-gtjjp10k/scikit-learn_33b0942a51cf4b699f0fcf9d6799ac7e/setup.py'"'"';f=getattr(tokenize, '"'"'open'"'"', open)(file);code=f.read().replace('"'"'\r\n'"'"', '"'"'\n'"'"');f.close();exec(compile(code, file, '"'"'exec'"'"'))' install --record /tmp/pip-record-u7x7205l/install-record.txt --single-version-externally-managed --compile --install-headers /home/otavio/Desktop/ProjectJulia/jarvis_virtualenv/include/site/python3.8/scikit-learn
cwd: /tmp/pip-install-gtjjp10k/scikit-learn_33b0942a51cf4b699f0fcf9d6799ac7e/
Complete output (100 lines):
Partial import of sklearn during the build process.
blas_opt_info:
blas_mkl_info:
customize UnixCCompiler
libraries mkl_rt not found in ['/home/otavio/Desktop/ProjectJulia/jarvis_virtualenv/lib', '/usr/local/lib', '/usr/lib64', '/usr/lib', '/usr/lib/x86_64-linux-gnu']
NOT AVAILABLE

blis_info:
customize UnixCCompiler
  libraries blis not found in ['/home/otavio/Desktop/ProjectJulia/jarvis_virtualenv/lib', '/usr/local/lib', '/usr/lib64', '/usr/lib', '/usr/lib/x86_64-linux-gnu']
  NOT AVAILABLE

openblas_info:
customize UnixCCompiler
customize UnixCCompiler
  libraries openblas not found in ['/home/otavio/Desktop/ProjectJulia/jarvis_virtualenv/lib', '/usr/local/lib', '/usr/lib64', '/usr/lib', '/usr/lib/x86_64-linux-gnu']
  NOT AVAILABLE

atlas_3_10_blas_threads_info:
Setting PTATLAS=ATLAS
customize UnixCCompiler
  libraries tatlas not found in ['/home/otavio/Desktop/ProjectJulia/jarvis_virtualenv/lib', '/usr/local/lib', '/usr/lib64', '/usr/lib', '/usr/lib/x86_64-linux-gnu/atlas', '/usr/lib/x86_64-linux-gnu']
  NOT AVAILABLE

atlas_3_10_blas_info:
customize UnixCCompiler
  libraries satlas not found in ['/home/otavio/Desktop/ProjectJulia/jarvis_virtualenv/lib', '/usr/local/lib', '/usr/lib64', '/usr/lib', '/usr/lib/x86_64-linux-gnu/atlas', '/usr/lib/x86_64-linux-gnu']
  NOT AVAILABLE

atlas_blas_threads_info:
Setting PTATLAS=ATLAS
customize UnixCCompiler
  libraries ptf77blas,ptcblas,atlas not found in ['/home/otavio/Desktop/ProjectJulia/jarvis_virtualenv/lib', '/usr/local/lib', '/usr/lib64', '/usr/lib', '/usr/lib/x86_64-linux-gnu/atlas', '/usr/lib/x86_64-linux-gnu']
  NOT AVAILABLE

atlas_blas_info:
customize UnixCCompiler
get_default_fcompiler: matching types: '['gnu95', 'intel', 'lahey', 'pg', 'absoft', 'nag', 'vast', 'compaq', 'intele', 'intelem', 'gnu', 'g95', 'pathf95', 'nagfor']'
customize Gnu95FCompiler
Found executable /usr/bin/gfortran
customize Gnu95FCompiler
customize Gnu95FCompiler using config
compiling '_configtest.c':

/* This file is generated from numpy/distutils/system_info.py */
void ATL_buildinfo(void);
int main(void) {
  ATL_buildinfo();
  return 0;
}

C compiler: x86_64-linux-gnu-gcc -pthread -Wno-unused-result -Wsign-compare -DNDEBUG -g -fwrapv -O2 -Wall -g -fstack-protector-strong -Wformat -Werror=format-security -g -fwrapv -O2 -g -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -fPIC

compile options: '-c'
x86_64-linux-gnu-gcc: _configtest.c
x86_64-linux-gnu-gcc -pthread _configtest.o -lf77blas -lcblas -latlas -o _configtest
customize UnixCCompiler
customize UnixCCompiler
  FOUND:
    language = c
    define_macros = [('HAVE_CBLAS', None), ('NO_ATLAS_INFO', -1)]
    libraries = ['f77blas', 'cblas', 'atlas', 'f77blas', 'cblas']
    library_dirs = ['/usr/lib/x86_64-linux-gnu']

accelerate_info:
  NOT AVAILABLE

  FOUND:
    language = c
    define_macros = [('HAVE_CBLAS', None), ('NO_ATLAS_INFO', -1)]
    libraries = ['f77blas', 'cblas', 'atlas', 'f77blas', 'cblas']
    library_dirs = ['/usr/lib/x86_64-linux-gnu']

Traceback (most recent call last):
  File "<string>", line 1, in <module>
  File "/tmp/pip-install-gtjjp10k/scikit-learn_33b0942a51cf4b699f0fcf9d6799ac7e/setup.py", line 290, in <module>
    setup_package()
  File "/tmp/pip-install-gtjjp10k/scikit-learn_33b0942a51cf4b699f0fcf9d6799ac7e/setup.py", line 286, in setup_package
    setup(**metadata)
  File "/home/otavio/Desktop/ProjectJulia/jarvis_virtualenv/lib/python3.8/site-packages/numpy/distutils/core.py", line 137, in setup
    config = configuration()
  File "/tmp/pip-install-gtjjp10k/scikit-learn_33b0942a51cf4b699f0fcf9d6799ac7e/setup.py", line 174, in configuration
    config.add_subpackage('sklearn')
  File "/home/otavio/Desktop/ProjectJulia/jarvis_virtualenv/lib/python3.8/site-packages/numpy/distutils/misc_util.py", line 1034, in add_subpackage
    config_list = self.get_subpackage(subpackage_name, subpackage_path,
  File "/home/otavio/Desktop/ProjectJulia/jarvis_virtualenv/lib/python3.8/site-packages/numpy/distutils/misc_util.py", line 1000, in get_subpackage
    config = self._get_configuration_from_setup_py(
  File "/home/otavio/Desktop/ProjectJulia/jarvis_virtualenv/lib/python3.8/site-packages/numpy/distutils/misc_util.py", line 942, in _get_configuration_from_setup_py
    config = setup_module.configuration(*args)
  File "sklearn/setup.py", line 66, in configuration
    config.add_subpackage('utils')
  File "/home/otavio/Desktop/ProjectJulia/jarvis_virtualenv/lib/python3.8/site-packages/numpy/distutils/misc_util.py", line 1034, in add_subpackage
    config_list = self.get_subpackage(subpackage_name, subpackage_path,
  File "/home/otavio/Desktop/ProjectJulia/jarvis_virtualenv/lib/python3.8/site-packages/numpy/distutils/misc_util.py", line 1000, in get_subpackage
    config = self._get_configuration_from_setup_py(
  File "/home/otavio/Desktop/ProjectJulia/jarvis_virtualenv/lib/python3.8/site-packages/numpy/distutils/misc_util.py", line 942, in _get_configuration_from_setup_py
    config = setup_module.configuration(*args)
  File "sklearn/utils/setup.py", line 8, in configuration
    from Cython import Tempita
ModuleNotFoundError: No module named 'Cython'
----------------------------------------

ERROR: Command errored out with exit status 1: /home/otavio/Desktop/ProjectJulia/jarvis_virtualenv/bin/python -u -c 'import sys, setuptools, tokenize; sys.argv[0] = '"'"'/tmp/pip-install-gtjjp10k/scikit-learn_33b0942a51cf4b699f0fcf9d6799ac7e/setup.py'"'"'; file='"'"'/tmp/pip-install-gtjjp10k/scikit-learn_33b0942a51cf4b699f0fcf9d6799ac7e/setup.py'"'"';f=getattr(tokenize, '"'"'open'"'"', open)(file);code=f.read().replace('"'"'\r\n'"'"', '"'"'\n'"'"');f.close();exec(compile(code, file, '"'"'exec'"'"'))' install --record /tmp/pip-record-u7x7205l/install-record.txt --single-version-externally-managed --compile --install-headers /home/otavio/Desktop/ProjectJulia/jarvis_virtualenv/include/site/python3.8/scikit-learn Check the logs for full command output.
Install Python dependencies failed

Issue with the skill 'tell skills'

I stumbled about this error:
DEBUG - Error with the execution of skill with message 'str' object has no attribute 'assistant_response'

    @classmethod
    def _create_skill_response(cls, response):
        for skill_id, skill in enumerate(skills_registry.BASIC_SKILLS.values()):
            response = response + '{0}'.format(skill_id + 1) + skill['description'] + '\n'
        return response

    @classmethod
    def tell_the_skills(cls, **kwargs):
        """
        Tells what he can do as assistant.
        """
        response_base = 'I can do the following: \n\n'
        response = cls._create_skill_response(response_base)
        response.assistant_response(response)

But I'm unable to find a solution so far. I will try to find a solution:)
EDIT:

        try: 
            response_base = 'I can do the following: \n\n'
            response = cls._create_skill_response(response_base)
            # response.assistant_response(response)
            cls.response(response)
        except Exception as e:
            print("Error with the execution of skill with message {0}".format(e))

Seems to work

The virtualenv command is not working

usage: virtualenv [--version] [--with-traceback] [-v | -q] [--discovery {builtin}] [-p py] [--creator {builtin,cpython3-posix,venv}] [--seeder {app-data,pip}] [--no-seed] [--activators comma_separated_list] [--clear]
[--system-site-packages] [--symlinks | --copies] [--download | --no-download] [--extra-search-dir d [d ...]] [--pip version] [--setuptools version] [--wheel version] [--no-pip] [--no-setuptools] [--no-wheel]
[--clear-app-data] [--symlink-app-data] [--prompt prompt] [-h]
dest
virtualenv: error: unrecognized arguments: attemept/jarvis jarvis_virtual
Jarvis virtual env creation failed

Install nltk failed

I was trying to install this on a raspberry pi. Running Buster. here is the console:

 Install Python dependencies succeeded! 
Traceback (most recent call last):
  File "<string>", line 1, in <module>
  File "/home/pi/jarvis/Jarvis/jarvis_virtualenv/lib/python3.7/site-packages/nltk/__init__.py", line 143, in <module>
    from nltk.chunk import *
  File "/home/pi/jarvis/Jarvis/jarvis_virtualenv/lib/python3.7/site-packages/nltk/chunk/__init__.py", line 157, in <module>
    from nltk.chunk.api import ChunkParserI
  File "/home/pi/jarvis/Jarvis/jarvis_virtualenv/lib/python3.7/site-packages/nltk/chunk/api.py", line 13, in <module>
    from nltk.parse import ParserI
  File "/home/pi/jarvis/Jarvis/jarvis_virtualenv/lib/python3.7/site-packages/nltk/parse/__init__.py", line 100, in <module>
    from nltk.parse.transitionparser import TransitionParser
  File "/home/pi/jarvis/Jarvis/jarvis_virtualenv/lib/python3.7/site-packages/nltk/parse/transitionparser.py", line 22, in <module>
    from sklearn.datasets import load_svmlight_file
  File "/home/pi/jarvis/Jarvis/jarvis_virtualenv/lib/python3.7/site-packages/sklearn/__init__.py", line 82, in <module>
    from .base import clone
  File "/home/pi/jarvis/Jarvis/jarvis_virtualenv/lib/python3.7/site-packages/sklearn/base.py", line 17, in <module>
    from .utils import _IS_32BIT
  File "/home/pi/jarvis/Jarvis/jarvis_virtualenv/lib/python3.7/site-packages/sklearn/utils/__init__.py", line 23, in <module>
    from .murmurhash import murmurhash3_32
  File "sklearn/utils/murmurhash.pyx", line 1, in init sklearn.utils.murmurhash
ValueError: numpy.ndarray size changed, may indicate binary incompatibility. Expected 44 from C header, got 40 from PyObject
 Install nltk dependencies failed 
(jarvis) pi@HUD:~/jarvis/Jarvis $ 

I installed NLTK myself and it was successful, but when ran from your script this error occurs, any idea's?

it's possible to integrate with another application?

Hello, I would like to know if I can integrate this assistant with another application, that is, that I can send her a query and she will return a response after executing the respective skill. If this is possible, you could tell me how to do it and if I can develope it, what class or function from the code i can go to perform this procedure.

Multiple commands confusion

For example in command "Jarvis open youtube and what time is", the regular expression in 'open_website_in_browser' method maches a the domain "youtube and what time is"

Voice assistant enable condition

Following is a code snippet from controller.py

def _continue_listening(self):
    """
    Checks if the assistant enable time (triggering time + enable period) has passed.
    return: boolean
    """
    if datetime.now() > self.execute_state['enable_time'] + timedelta(seconds=self.settings_['enable_period']):
        self.execute_state = {'ready_to_execute': False,
                              'enable_time': None,
                              }

        self.is_assistant_enabled = False
    self.is_assistant_enabled = True

Here the logic sets the enable flag to False if the now time is greater than 300 seconds (default) from the enable time.

In the above snippet, the enable flag will be set to True in any case before returning whether the enable time has passed or not. Should it be returning from the if clause after setting the flag to False?

Please let me know if I am missing something here.

speech and console error message:

Hey .. I installed jarvis on debian 10. I always get the error speech and console error message: can only concatenate str ( not "NoneType") to str. it does some things but mostly this error comes up. I thought I was doing something wrong when I made a lot of mistakes. I also start the program with start.py. if i start it with run_jarvis.sh i get pymongo error. NO module named 'pymongo' but its installed

Error when Start.py is running

When the start.py file runs i get this error

\Traceback (most recent call last):
  File "c:\Users\pritg\Downloads\Python-ai-assistant-develop\Python-ai-assistant-develop\src\jarvis\start.py", line 3, in <module>
    from jarvis import settings
  File "c:\Users\pritg\Downloads\Python-ai-assistant-develop\Python-ai-assistant-develop\src\jarvis\jarvis\__init__.py", line 26, in 
<module>
    configure_MongoDB(db, settings)
  File "c:\Users\pritg\Downloads\Python-ai-assistant-develop\Python-ai-assistant-develop\src\jarvis\jarvis\utils\startup.py", line 77, in configure_MongoDB
    from jarvis.skills.registry import CONTROL_SKILLS, ENABLED_BASIC_SKILLS
  File "c:\Users\pritg\Downloads\Python-ai-assistant-develop\Python-ai-assistant-develop\src\jarvis\jarvis\skills\registry.py", line 
20, in <module>
    from jarvis.skills.collection.configuration import ConfigurationSkills
  File "c:\Users\pritg\Downloads\Python-ai-assistant-develop\Python-ai-assistant-develop\src\jarvis\jarvis\skills\collection\configuration.py", line 12, in <module>
    input_mode = db.get_documents(collection='general_settings')[0]['input_mode']
TypeError: 'NoneType' object is not subscriptable

Please help me to fix this error

System dependencies installation failed

gnupg is already the newest version (2.2.19-3ubuntu2.1).
0 upgraded, 0 newly installed, 0 to remove and 0 not upgraded.
Hit:1 http://in.archive.ubuntu.com/ubuntu focal InRelease
Hit:2 http://in.archive.ubuntu.com/ubuntu focal-updates InRelease
Hit:3 http://security.ubuntu.com/ubuntu focal-security InRelease
Hit:4 https://dl.google.com/linux/chrome/deb stable InRelease
Hit:5 http://in.archive.ubuntu.com/ubuntu focal-backports InRelease
Get:6 https://repo.protonvpn.com/debian stable InRelease [2,519 B]
Err:6 https://repo.protonvpn.com/debian stable InRelease
The following signatures couldn't be verified because the public key is not available: NO_PUBKEY 71EB474019940E11
Reading package lists... Done
W: GPG error: https://repo.protonvpn.com/debian stable InRelease: The following signatures couldn't be verified because the public key is not available: NO_PUBKEY 71EB474019940E11
E: The repository 'https://repo.protonvpn.com/debian stable InRelease' is not signed.
N: Updating from such a repository can't be done securely, and is therefore disabled by default.
N: See apt-secure(8) manpage for repository creation and user configuration details.
System dependencies installation failed

Youtube Skill doesn't work

It looks like that the youtube skill doesn't work. The skill is executed but the tags aren't extracted correctly so the script doesn't go into. It just skips that

         tags = cls._extract_tags(voice_transcript, skill['tags']) # printing that gives me set()
         for tag in tags:
            reg_ex = re.search(tag + '([a-zA-Z]+)', voice_transcript)
            try:
                if reg_ex:
                    search_text = reg_ex.group(1)
                    base = "https://www.youtube.com/results?search_query=" + "&orderby=viewCount"
                    r = requests.get(base + search_text.replace(' ', '+'))
                    page = r.text
                    soup = bs(page, 'html.parser')
                    vids = soup.findAll('a', attrs={'class': 'yt-uix-tile-link'})
                    video = 'https://www.youtube.com' + vids[0]['href']
                    subprocess.Popen(["python", "-m", "webbrowser", "-t", video], stdout=subprocess.PIPE, shell=False)
            except Exception as e:
                logging.debug(e)
                cls.response("I can't find what do you want in Youtube..")

I'm currently trying to find a solution
EDIT1: It you may need to edit your tags because I splited the tags into :

'tags': {'open in', 'youtube', 'find in youtube', 'play in', 'on youtube'}

and now I'm triggering the exception. Ah before I forget I needed to remove tag from:

reg_ex = re.search(tag + '([a-zA-Z]+)', voice_transcript)

EDIT2: I did a few changes now jarvis will open a tab in the web browser as intended I think. Here are the changes I did:

    def open_in_youtube(cls, voice_transcript, skill):
        """
        Open a video in youtube.
        :param voice_transcript: string (e.g 'about google')
        :param skill: dict (e.g
        """
        print(cls._extract_tags(voice_transcript, skill['tags']))
        tags = cls._extract_tags(voice_transcript, skill['tags'])
        print(tags)
        for tag in tags:
            transcript = str(voice_transcript.replace(tag, ''))
            #transcript = voice_transcript
            print(transcript)
            #reg_ex = re.search('([a-zA-Z]+)', transcript.replace(' ', ''))
            try:
                if reg_ex:
                    '''search_text = reg_ex.group(1)
                    base = "https://www.youtube.com/results?search_query=" + "&orderby=viewCount"
                    r = requests.get(base + search_text.replace(' ', '+'))
                    page = r.text
                    soup = bs(page, 'html.parser')
                    vids = soup.findAll('a', attrs={'class': 'yt-uix-tile-link'})
                    video = 'https://www.youtube.com' + vids[0]['href']
                    subprocess.Popen(["python", "-m", "webbrowser", "-t", video], stdout=subprocess.PIPE, shell=False)
                    video = 'https://www.youtube.com/results?search_query=' + transcript + "&orderby=viewCount"'''
                    r = requests.get( "https://www.youtube.com/results?search_query=" + transcript + "&orderby=viewCount")
                    page = r.text
                    soup = bs(page, 'html.parser')
                    vids = soup.findAll('a', attrs={'class': 'yt-uix-tile-link'})
                    video = 'https://www.youtube.com' + vids[0]['href']
                    subprocess.Popen(["python", "-m", "webbrowser", "-t", video], stdout=subprocess.PIPE, shell=False)
                    
            except Exception as e:
                logging.debug(e)
                cls.response("I can't find what do you want in Youtube..")

Hopefully I could help you or someone with that :)

Voice Command

I want to make a ordering skill and for that I need to take repeatedly input many times , how can I do that?

How to have a chain of skills?

Hello!

Great project! I am trying to have a chain of skills.

For example, if the user asks what is the weather? the AI can respond, would you like to see your current city or a new city? Then the user responds current city.

Any suggestions on how best to implement this?

Thanks

Installing Python dependencis Failed

ERROR: Command errored out with exit status 1: /home/praveen/Jarvis/jarvis_virtualenv/bin/python /home/praveen/Jarvis/jarvis_virtualenv/lib/python3.8/site-packages/pip/_vendor/pep517/_in_process.py prepare_metadata_for_build_wheel /tmp/tmpi03msa_5 Check the logs for full command output.
Install Python dependencies failed

Can you please help me ?

I am trying to run this via a network MongoDB by changing the host (as I already have it setup on another box) but I get nonetype object errors

Traceback attached below:

Traceback (most recent call last):
File "start.py", line 23, in
from jarvis import settings
File "G:\Desktop\Python-ai-assistant-master\src\jarvis\jarvis_init_.py", line 46, in
configure_MongoDB(db, settings)
File "G:\Desktop\Python-ai-assistant-master\src\jarvis\jarvis\utils\startup.py", line 97, in configure_MongoDB
from jarvis.skills.registry import CONTROL_SKILLS, ENABLED_BASIC_SKILLS
File "G:\Desktop\Python-ai-assistant-master\src\jarvis\jarvis\skills\registry.py", line 40, in
from jarvis.skills.collection.configuration import ConfigurationSkills
File "G:\Desktop\Python-ai-assistant-master\src\jarvis\jarvis\skills\collection\configuration.py", line 32, in
input_mode = db.get_documents(collection='general_settings')[0]['input_mode']
TypeError: 'NoneType' object is not subscriptable

I have checked the configuration.py and can see the below so I would assume its either the key or the limit parameters?:
def get_documents(self, collection, key=None, limit=None):

Any help is greatly appreciated

Voice

Is there any way to change that robotic voice to something better in text to speech?

NLTK Error

      β–ˆβ–ˆβ•— β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ•— β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ•— β–ˆβ–ˆβ•—   β–ˆβ–ˆβ•—β–ˆβ–ˆβ•—β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ•—
      β–ˆβ–ˆβ•‘β–ˆβ–ˆβ•”β•β•β–ˆβ–ˆβ•—β–ˆβ–ˆβ•”β•β•β–ˆβ–ˆβ•—β–ˆβ–ˆβ•‘   β–ˆβ–ˆβ•‘β–ˆβ–ˆβ•‘β–ˆβ–ˆβ•”β•β•β•β•β•
      β–ˆβ–ˆβ•‘β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ•‘β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ•”β•β–ˆβ–ˆβ•‘   β–ˆβ–ˆβ•‘β–ˆβ–ˆβ•‘β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ•—
 β–ˆβ–ˆ   β–ˆβ–ˆβ•‘β–ˆβ–ˆβ•”β•β•β–ˆβ–ˆβ•‘β–ˆβ–ˆβ•”β•β•β–ˆβ–ˆβ•—β•šβ–ˆβ–ˆβ•— β–ˆβ–ˆβ•”β•β–ˆβ–ˆβ•‘β•šβ•β•β•β•β–ˆβ–ˆβ•‘
 β•šβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ•”β•β–ˆβ–ˆβ•‘  β–ˆβ–ˆβ•‘β–ˆβ–ˆβ•‘  β–ˆβ–ˆβ•‘ β•šβ–ˆβ–ˆβ–ˆβ–ˆβ•”β• β–ˆβ–ˆβ•‘β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ•‘
  β•šβ•β•β•β•β• β•šβ•β•  β•šβ•β•β•šβ•β•  β•šβ•β•  β•šβ•β•β•β•  β•šβ•β•β•šβ•β•β•β•β•β•β•
 -  Voice Assistant Platform  v1.0.0-beta  -
     NOTE: CTRL + C If you want to Quit.
====================================================== GENERAL INFO ======================================================
RESPONSE IN SPEECH: NOT ENABLED
INPUT MODE: TEXT
========================================================= SYSTEM =========================================================
RAM USAGE: 0.10 GB
====================================== LOG -/var/log/jarvis.log (Total Lines: 343) ======================================
2022-01-17 17:40:57,069 - root - INFO - Wait a second for startup checks..
2022-01-17 17:40:57,126 - root - INFO - Checking internet connection..
2022-01-17 17:40:57,439 - root - INFO - Internet connection passed!
2022-01-17 17:40:57,490 - root - INFO - Application started
2022-01-17 17:40:57,540 - root - INFO - I'm ready! Say something :-)

======================================================= ASSISTANT =======================================================
:-$ Jarvis open youtube
Traceback (most recent call last):
  File "./src/jarvis/start.py", line 26, in <module>
    main()
  File "./src/jarvis/start.py", line 22, in main
    processor.run()
  File "/home/preet/Python-ai-assistant-develop/src/jarvis/jarvis/core/processor.py", line 51, in run
    response = self.response_creator.create_positive_response(transcript)
  File "/home/preet/Python-ai-assistant-develop/src/jarvis/jarvis/core/nlp.py", line 91, in create_positive_response
    positive_response = self._create_response(sentence)
  File "/home/preet/Python-ai-assistant-develop/src/jarvis/jarvis/core/nlp.py", line 106, in _create_response
    parts_of_speech = self.create_parts_of_speech(sentence)
  File "/home/preet/Python-ai-assistant-develop/src/jarvis/jarvis/core/nlp.py", line 43, in create_parts_of_speech
    tokens = nltk.word_tokenize(text)
  File "/home/preet/Python-ai-assistant-develop/jarvis_virtualenv/lib/python3.8/site-packages/nltk/tokenize/__init__.py", line 144, in word_tokenize
    sentences = [text] if preserve_line else sent_tokenize(text, language)
  File "/home/preet/Python-ai-assistant-develop/jarvis_virtualenv/lib/python3.8/site-packages/nltk/tokenize/__init__.py", line 105, in sent_tokenize
    tokenizer = load('tokenizers/punkt/{0}.pickle'.format(language))
  File "/home/preet/Python-ai-assistant-develop/jarvis_virtualenv/lib/python3.8/site-packages/nltk/data.py", line 868, in load
    opened_resource = _open(resource_url)
  File "/home/preet/Python-ai-assistant-develop/jarvis_virtualenv/lib/python3.8/site-packages/nltk/data.py", line 993, in _open
    return find(path_, path + ['']).open()
  File "/home/preet/Python-ai-assistant-develop/jarvis_virtualenv/lib/python3.8/site-packages/nltk/data.py", line 701, in find
    raise LookupError(resource_not_found)
LookupError: 
**********************************************************************
  Resource punkt not found.
  Please use the NLTK Downloader to obtain the resource:

  >>> import nltk
  >>> nltk.download('punkt')
  
  For more information see: https://www.nltk.org/data.html

  Attempted to load tokenizers/punkt/PY3/english.pickle

  Searched in:
    - '/root/nltk_data'
    - '/home/preet/Python-ai-assistant-develop/jarvis_virtualenv/nltk_data'
    - '/home/preet/Python-ai-assistant-develop/jarvis_virtualenv/share/nltk_data'
    - '/home/preet/Python-ai-assistant-develop/jarvis_virtualenv/lib/nltk_data'
    - '/usr/share/nltk_data'
    - '/usr/local/share/nltk_data'
    - '/usr/lib/nltk_data'
    - '/usr/local/lib/nltk_data'

Help me please

pymongo not installing properly

Failed to start mongodb.service: Unit mongodb.service not found.
Traceback (most recent call last):
File "/home/alexp/Python-ai-assistant/./src/jarvis/start.py", line 23, in
from jarvis import settings
File "/home/alexp/Python-ai-assistant/src/jarvis/jarvis/init.py", line 27, in
from jarvis.utils.mongoDB import db
File "/home/alexp/Python-ai-assistant/src/jarvis/jarvis/utils/mongoDB.py", line 24, in
from pymongo import MongoClient, DESCENDING
ModuleNotFoundError: No module named 'pymongo'
Failed to stop mongodb.service: Unit mongodb.service not loaded.

Not sure if it's a problem with the setup.sh file, or with my instance of python. I pip installed pymongo, ran the setup.sh file, and got this error after running the run_jarvis.sh file.

Failed to stop mongod.service: Unit mongod.service not loaded.

Failed to start mongod.service: Unit mongod.service not found.
Traceback (most recent call last):
File "./src/jarvis/start.py", line 23, in
from jarvis import settings
File "/home/blackhat/Python-ai-assistant-master/src/jarvis/jarvis/init.py", line 46, in
configure_MongoDB(db, settings)
File "/home/blackhat/Python-ai-assistant-master/src/jarvis/jarvis/utils/startup.py", line 97, in configure_MongoDB
from jarvis.skills.registry import CONTROL_SKILLS, ENABLED_BASIC_SKILLS
File "/home/blackhat/Python-ai-assistant-master/src/jarvis/jarvis/skills/registry.py", line 38, in
from jarvis.skills.collection.math import MathSkills
File "/home/blackhat/Python-ai-assistant-master/src/jarvis/jarvis/skills/collection/math.py", line 23, in
from word2number import w2n
File "/home/blackhat/Python-ai-assistant-master/jarvis_virtualenv/lib/python3.7/site-packages/vext/gatekeeper/init.py", line 204, in load_module
raise ImportError("No module named %s" % modulename)
ImportError: No module named word2number
Failed to stop mongod.service: Unit mongod.service not loaded.

issue in mongod.service:

Failed to start mongod.service: Unit mongod.service not found.
run_jarvis.sh: line 10: ./jarvis_virtualenv/bin/python: No such file or directory
Failed to stop mongod.service: Unit mongod.service not loaded.
why this happens, i tried another issue that has been fixed, but still
i am on kali linux

sqlite3 implementation for raspberry pi instead of MongoDB

hi Georgios , thank you for this great work and well organised codebase.
I noticed we cannot install mongoDB to raspberry pi devices (raspian debian based but there is no support foor arm based devices at mongo side)
it is possibble to install ubundu on raspberry but it consumes lots of process power.
i'm thinking to implement sqlite3 instead of mongoDB this weekend.
i'll create pull request than you can check and you can create another branch for arm based devices if you like.

Add wake-up period.

A user can execute a command without need to wake-up the application if the user is inside the wake-up period. The default value could be 30sec. (This parameter will be configurable in GENERAL_SETTINGS as wake_up_period)
GENERAL_SETTINGS={
...
'wake_up_period='30' # Wake-up period in seconds
}

voice command

voice command is not working. I am using this in ubuntu. but it does not recoginize any voice. please help

open_in_youtube is outdated

Hi,
it seems like the 'open_in_youtube'-Skill is not working (at least for me). So 'jarvis play mozart' will always tell you 'I can't find what do you want in Youtube..'.

I guess yt reworked their searchpage and the old implementation (2 years ago), using bs4 and trying to find the top video via class': 'yt-uix-tile-link' is not working anymore.

I'm already working on a fix for that. However, i wanted to create this issue first, just to make sure its not a bug/problem only on my side.

So it would be nice if someone can actually confirm that 'jarvis play xyz' fails with 'I can't find what do you want in Youtube..'.

If so, i'll publish my fix and create a pullrequest.

Also, it's the first time for me, contributing to another ones project and providing pull requests. So if i miss anything or could improve something, please just let me know.

Tutorial

Could you provide a tutorial or something on how to make + use this? I am trying to build something similar and love your project. Thanks!

Cheers,
Akul

Question about voice profil

I'm quite new to the whole Python programming, so I'm sorry if my question is stupid or anything like that.

And sorry for bad English it's not my mother tongue.

I'm quite a fan of this project, but is it possible to add something like a different voice profile?

I found this project here on GitHub:

https://github.com/CorentinJ/Real-Time-Voice-Cloning

Is there any way to add this project or parts of it to make a custom voice profile for this ai assistant?

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.