You are on page 1of 35

A PROJECT REPORT ON

JARVIS AI VOICE ASSISTANT


Project report submitted in partial fulfillment of the requirement for the degree of

Bachelor of Technology (Computer Engg.)

Submitted By:

Tusar Kamboj

(2021217457)

DEPARTMENT OF COMPUTER ENGINEERING

STATE INSTITUTE OF ENGINEERING & TECHNOLOGY,

NILOKHERI (KURUKSHETRA UNIVERSITY, KURUKSHETRA)

(2021 – 2025)
DECLARATION

I hereby declare that the Project report entitled "Jarvis voice assitant" submitted to the Department
of Computer Science & Engineering, SIET Nilokheri in partial fulfilment of the requirements for the
award of the degree of Bachelor of Technology (Computer Engineering) is a record of original work
done by me, under the guidance and supervision of Ms Shubh chawla & Ms. Rama and it has not
formed the basis for the award of any Degree/Diploma/Associateship/ Fellowship or other similar
title to any candidate of any University.

Dated Signature of the Candidate

II
CERTIFICATE

It is certified that the work contained in the project report titled “jarvics ai” by “Tusar Kamboj” has
been carried out under my/our supervision and that this work has not been submitted elsewhere for a
degree.

Signature of Supervisor Signature of Head of Department

Name: State Institute of Engg. & Tech. Nilokheri

Department:

ACKNOWLEDGMENTS

I would like to express my sincere gratitude to all those who have contributed to the completion of
this project and the preparation of this report.

III
First and foremost, I extend my deepest appreciation to Sh. Parminder Mann and Ms. Seema Range,
whose guidance, expertise, and unwavering support have been instrumental throughout this
endeavor. Their valuable insights, constructive feedback, and encouragement have enriched my
learning experience and propelled the project forward.

I am also thankful to State Institute of Technology, Nilokheri for providing the necessary resources
and facilities that facilitated the execution of this project. The conducive environment and access to
data were essential in conducting thorough analyses and drawing meaningful conclusions.

Furthermore, I extend my appreciation to my partner in the project and my colleagues for their
understanding, encouragement, and patience during this project. Their moral support and words of
encouragement were invaluable during challenging times.

I would like to acknowledge the contributions of all individuals who participated in data collection,
data processing, and discussions related to this project. Their efforts and collaboration are deeply
appreciated.

Lastly, I am grateful to the broader academic and research community for their valuable insights,
publications, and resources that have informed and inspired this project.

This project would not have been possible without the collective efforts, support, and encouragement
of all those mentioned above. Thank you for being part of this journey.

IV
ABSTRACT

The present document is aimed to study the demand of Jarvis systems through weather
variables. The main objective has been to create a data based predictive model for the
demand of User input. After having done some research on the problem and the
methodologies that have been used to try to solve it before, the first step was to
acquire the data on which the model was later built. This required downloading data
from various sources across the internet. This data was later aggregated into a more
manageable single table. Once the data was gathered, the Python programming
language was used to visualize and explore the data. A regression model was built and
tested on the data through cross validation. Using visualization techniques, a major
problem in the model was discovered; it failed at capturing a temporal increasing trend
on bicycle rentals. Since this was due to one of the limitations, the model was
improved by various techniques to significantly reduce error rates. Finally, the variable
importance measures were used to draw conclusions about the variables driving the
demand. In this project a demand forecast model was developed, which was trained
and deployed. It can be used by jarvis to try to solve one of their major causes of
customer loss by either doing dynamic repositioning or designing.

V
TABLE OF CONTENTS
DECLARATION..............................................................................................................................II

CERTIFICATE................................................................................................................................III

ACKNOWLEDGMENTS................................................................................................................IV

ABSTRACT.....................................................................................................................................V

TABLE OF CONTENTS.................................................................................................................VI

CHAPTER 1: INTRODUCTION.......................................................................................................1

CHAPTER 2: LITERATURE REVIEW............................................................................................5

CHAPTER 3: METHODOLOGY.......................................................................................................8

CHAPTER 4: IN-DEPTH STUDY....................................................................................................13

CHAPTER 5: RESULTS...................................................................................................................15

CHAPTER 6: CONCLUSIONS & RECOMMENDATIONS............................................................20

CHAPTER 7: LIMITATIONS & SCOPE FOR FUTURE IMPROVEMENTS................................21

REFERENCES...................................................................................................................................23

APPENDIX.........................................................................................................................................25

VI
CHAPTER 1: INTRODUCTION

Artificial Intelligence when used with machines, it shows us the capability of thinking like

humans. In this, a computer system is designed in such a way that typically requires interaction

from human. As we know Python is an emerging language so it becomes easy to write a script for

Voice Assistant in Python. The instructions for the assistant can be handled as per the requirement

of user. Speech recognition is the Alexa, Siri, etc. In Python there is an API called Speech

Recognition which allows us to convert speech into text. It was an interesting task to make my own

assistant. It became easier to send emails without typing any word, Searching on Google without

opening the browser, and performing many other daily tasks like playing music, opening your

favorite IDE with the help of a single voice command. In the current scenario, advancement in

technologies are such that they can perform any task with same effectiveness or can say more

effectively than us. By making this project, I realized that the concept of AI in every field is

decreasing human effort and saving time

As the voice assistant is using Artificial Intelligence hence the result that it is providing are highly

accurate and efficient. The assistant can help to reduce human effort and consumes time while

performing any task, they removed the concept of typing completely and behave as another

individual to whom we are talking and asking to perform task. The assistant is no less than a

human assistant but we can say that this is more effective and efficient to perform any task. The

libraries and packages used to make this assistant focuses on the time complexities and reduces

time.

The functionalities include , It can send emails, It can read PDF, It can send text on WhatsApp, It

can open command prompt, your favorite IDE, notepad etc., It can play music, It can do searches

for user by just saying single voice command.

1
Tools and technologies used are PyCharm IDE for making this project, and I created all py

files in PyCharm. Along with this I used following modules and libraries in my project.

pyttsx3, SpeechRecognition, Datetime, Wikipedia,

Smtplib, pywhatkit, pyjokes, pyPDF2, pyautogui, pyQt etc. I have created a live GUI for

interacting with the JARVIS as it gives a design and interesting look while having the

conversation.

The functionalities include , It can send emails, It can read PDF, It can send text on WhatsApp,

It can open command prompt, your favorite IDE, notepad etc., It can play music, It can do

Wikipedia searches for you, It can open websites like Google, YouTube, etc., in a web

browser, It can give weather forecast, It can give desktop reminders of your choice. It can have

some basic conversation.

Tools and technologies used are PyCharm IDE for making this project, and I created all py

files in PyCharm. Along with this I used following modules and libraries in my project.

pyttsx3, SpeechRecognition, Datetime, Wikipedia,

Smtplib, pywhatkit, pyjokes, pyPDF2, pyautogui, pyQt etc. I have created a live GUI for

interacting with the JARVIS as it gives a design and interesting look while having the

conversation.

The functionalities include , It can send emails, It can read PDF, It can send text on WhatsApp,

It can open command prompt, your favorite IDE, notepad etc., It can play music, It can do

Wikipedia searches for you, It can open websites like Google, YouTube, etc., in a web

browser, It can give weather forecast, It can give desktop reminders of your choice. It can have

some basic conversation.

2
Tools and technologies used are PyCharm IDE for making this project, and I created all py

files in PyCharm. Along with this I used following modules and libraries in my project.

pyttsx3, SpeechRecognition, Datetime, Wikipedia,

Smtplib, pywhatkit, pyjokes, pyPDF2, pyautogui, pyQt etc. I have created a live GUI for

interacting with the JARVIS as it gives a design and interesting look while having the

conversation.

The functionalities include , It can send emails, It can read PDF, It can send text on WhatsApp,

It can open command prompt, your favorite IDE, notepad etc., It can play music, It can do

Wikipedia searches for you, It can open websites like Google, YouTube, etc., in a web

browser, It can give weather forecast, It can give desktop reminders of your choice. It can have

some basic conversation.

Tools and technologies used are PyCharm IDE for making this project, and I created all py

files in PyCharm. Along with this I used following modules and libraries in my project.

pyttsx3, SpeechRecognition, Datetime, Wikipedia,

Smtplib, pywhatkit, pyjokes, pyPDF2, pyautogui, pyQt etc. I have created a live GUI for

interacting with the JARVIS as it gives a design and interesting look while having the

conversation.

3
Figure 1: Jarvis ai

In previous studies, many focused on the importance of features within the models, such as the
distance between rental and return location. These studies primarily focused on engineering feature
techniques and statistical modeling within given datasets. Therefore, there were model limitations
from previous studies since they only used given datasets. This study, however, focuses on exploring
a new feature from an external data source. Existing studies have predicted demand for bikes through
statistical methodologies, but few have applied machine learning methodologies, which have recently
been in the spotlight. The purpose of this study is to present a machine learning prediction model that
uses variables that affect the demand for shared bikes. Furthermore, from the perspective of an
integrated public transportation system, a predictive model that includes these variables is presented
with the belief that traffic accident occurrence affects the demand for shared bikes as an alternative
transportation system. The analysis results are expected to provide policy implications for efficient
operation of a city's integrated public transportation system.

The sequence of study is as follows. Section 2 provides a review of literature and reviews the history
of bike share programs across the globe and in the U.S. and the prediction of bike share demand by
various data mining and statistical approaches. Section 3 covers methodology and discusses data set
overview, exploratory data analysis, and data preprocessing. Section 4 is the model and results
section and find model’s prediction performance with their R2 scores. Section 5 isconcludes how the
predofthis study and proposes further study topics.

4
CHAPTER 2: LITERATURE REVIEW

We are familiar with many existing voice assistants like Alexa, Siri, Google Assistant, Cortana which
uses concept of language processing, and voice recognition. They listens the command given by the
user as per their requirements and performs that specific function in a very efficient and effective
manner. As these voice assistants are using Artificial Intelligence hence the result that they are
providing are highly accurate and efficient. These assistants can help to reduce human effort and
consumes time while performing any task, they removed the concept of typing completely and
behave as another individual to whom we are talking and asking to perform task. These assistants are
no less than a human assistant but we can say that they are more effective and efficient to perform
any task. The algorithm used to make these assistant focuses on the time complexities and reduces
time. But for using these assistants one should have an account (like Google account for Google
assistant, Microsoft account for Cortana) and can use it with internet connection only because these
assistants are going to work with internet connectivity. They are integrated with many devices like,
phones, laptops, and speakers etc.It was an interesting task to make my own assistant. It became
easier to send emails without typing any word, Searching on Google without opening the browser,
and performing many other daily tasks like playing music, opening your favorite IDE with the help
of a single voice command. Jarvis is different from other traditional voice assistants in terms that it is
specific to desktop and user does not need to make account to use this, it does not require any
internet connection while getting the instructions to perform any specific task. The IDE used in this
project is PyCharm. All the python files were created in PyCharm and all the necessary packages
were easily installable in this IDE. For this project following modules and libraries were used i.e.
pyttsx3, SpeechRecognition, Datetime, Wikipedia, Smtplib, pywhatkit, pyjokes, pyPDF2, pyautogui,
pyQt etc. I have created a live GUI for interacting with the JARVIS as it gives a design and
interesting look while having the conversation. With the advancement JARVIS can perform any task
with same effectiveness or can say more effectively than us. By making this project, I realized that
the concept of AI in every field is decreasing human effort and saving time. Functionalities of this
project include, It can send emails, It can read PDF, It can send text on WhatsApp, It can open
command prompt, your favorite IDE, notepad etc., It can play music, It can do Wikipedia searches
for you, It can open websites like Google, YouTube, etc., in a web browser, It can give weather
forecast, It can give desktop reminders of your choice. It can have some basic conversation.

This study above indicates that bike share demand has been continuously increasing globally and that
the main purpose of joining a bike share program is to get around faster and easier, which means that
alternative transportation needs existed due to external event
5
2.2 PROPOSED SYSTEM
It was an interesting task to make my own assistant. It became easier to send emails without typing
any word, Searching on Google without opening the browser, and performing many other daily tasks
like playing music, opening your favorite IDE with the help of a single voice command. Jarvis is
different from other traditional voice assistants in terms that it is specific to desktop and user does
not need to make account to use this, it does not require any internet connection while getting the
instructions to perform any specific task. The IDE used in this project is PyCharm. All the python
files were created in PyCharm and all the necessary packages were easily installable in this IDE. For
this project following modules and libraries were used i.e. pyttsx3, SpeechRecognition, Datetime,
Wikipedia, Smtplib, pywhatkit, pyjokes, pyPDF2, pyautogui, pyQt etc. I have created a live GUI for
interacting with the JARVIS as it gives a design and interesting look while having the conversation.
With the advancement JARVIS can perform any task with same effectiveness or can say more
effectively than us. By making this project, I realized that the concept of AI in every field is
decreasing human effort and saving time. Functionalities of this project include, It can send emails, It
can read PDF, It can send text on WhatsApp, It can open command prompt, your favorite IDE,
notepad etc., It can play music, It can do Wikipedia searches for you, It can open websites like
Google, YouTube, etc., in a web browser, It can give weather forecast, It can give desktop reminders
of your choice. It can have some basic conversation. Zeng et al. (2016) proposed a station-centric
model which accounts for global features such as weather, user activity, and season.

Kaltenbrunner et al. (2010) used an auto-regressive moving-average (ARMA) model to forecast the
number of bikes and docks for each station. Yoon et al. (2012) used a modified autoregressive
integrated moving average (ARIMA) model to predict the available resources at each station. In their
studies, spatial interaction and temporal factors were considered. Lim and Chung (2019) developed a
model to predict the demand of Seoul bikes through a time series analysis in a statistical manner. In
particular, the Holt-Winters method, which was used to measure the demand of electricity usage, was
modified, and used to predict demand. Sensitivity analysis was also performed on how the variation
of parameters affected actual demand prediction. Chen at el. (2016) predicted excess demand for
public bike rentals by implementing a weighted correlation network model. Li et al. (2015) proposed
a hierarchical prediction model to predict the check-in/out of each station cluster. They first clustered
stations according to a bipartite clustering algorithm based on the geographical locations of stations
and transition patterns. They then predicted the traffic in the entire city by way of a gradient boosting
regression tree model. The rental proportion across clusters was predicted by a multi-similarity-based
inference model. It was an interesting task to make my own assistant. It became easier to send emails

6
without typing any word, Searching on Google without opening the browser, and performing many
other daily tasks like playing music, opening your favorite IDE with the help of a single voice
command. Jarvis is different from other traditional voice assistants in terms that it is specific to
desktop and user does not need to make account to use this, it does not require any internet
connection while getting the instructions to perform any specific task. The IDE used in this project is
PyCharm. All the python files were created in PyCharm and all the necessary packages were easily
installable in this IDE. For this project following modules and libraries were used i.e. pyttsx3,
SpeechRecognition, Datetime, Wikipedia, Smtplib, pywhatkit, pyjokes, pyPDF2, pyautogui, pyQt
etc. I have created a live GUI for interacting with the JARVIS as it gives a design and interesting
look while having the conversation. With the advancement JARVIS can perform any task with same
effectiveness or can say more effectively than us. By making this project, I realized that the concept
of AI in every field is decreasing human effort and saving time. Functionalities of this project
include, It can send emails, It can read PDF, It can send text on WhatsApp, It can open command
prompt, your favorite IDE, notepad etc., It can play music, It can do Wikipedia searches for you, It
can open websites like Google, YouTube, etc., in a web browser, It can give weather forecast, It can
give desktop reminders of your choice. It can have some basic conversation.

and user does not need to make account to use this, it does not require any internet connection while
getting the instructions to perform any specific task. The IDE used in this project is PyCharm. All the
python files were created in PyCharm and all the necessary packages were easily installable in this
IDE. For this project following modules and libraries were used i.e. pyttsx3, SpeechRecognition,
Datetime, Wikipedia, Smtplib, pywhatkit, pyjokes, pyPDF2, pyautogui, pyQt etc. I have created a
live GUI for interacting with the JARVIS as it gives a design and interesting look while having the
conversation. With the advancement JARVIS can perform any task with same effectiveness or can
say more effectively than us. By making this project, I realized that the concept of AI in every field is
decreasing human effort and saving time. Functionalities of this project include, It can send emails, It
can read PDF, It can send text on WhatsApp, It can open command prompt, your favorite IDE,
notepad etc., It can play music, It can do Wikipedia searches for you, It can open websites like
Google, YouTube, etc., in a web browser, It can give weather forecast, It can give desktop reminders
of your choice. It can have some basic conversation.

7
CHAPTER 3: METHODOLOGY

The IDE used in this project is PyCharm. All the python files were created in PyCharm and all the
necessary packages were easily installable in this IDE. For this project following modules and
libraries were used i.e. pyttsx3, SpeechRecognition, Datetime, Wikipedia, Smtplib, pywhatkit,
pyjokes, pyPDF2, pyautogui, pyQt etc. I have created a live GUI for interacting with the JARVIS as
it gives a design and interesting look while having the conversationmethod: hypothesizing and
testing if said hypothesis made the model better at predicting the bike rentals.

A final model was developed and used to draw some conclusions on the problem.

3.2 MACHINE LEARNING BASICS


Machine learning is a subfield of computer science, which evolved from pattern recognition and
artificial intelligence. The basic idea behind machine learning is that computers can learn from data
through algorithms and once trained they can make data-driven predictions.

Supervised learning is the branch of machine learning that focuses on learning from labeled data, the
examples from which the algorithm learns also contain the desired output. Other branches of
machine learning are unsupervised learning (where the goal is to find underlying patterns in the data)
and reinforcement learning (where the computer tries different options and is given a notion of how
well it performed).

 PYQT5 FOR LIVE GUI:- PyQt5 is the most important python binding. It contains set of GUI
widgets.
 PyQt5 has some important python modules like QTWidgets, QtCore, QtGui, and QtDesigner
etc. PyQt5 is the most important python binding.
 It contains set of GUI widgets. PyQt5 has some important python modules like QTWidgets,
QtCore, QtGui, and QtDesigneretc.a set of different classes.
 Regression:Thealgorithmoutputsacontinuousvalue.

 In JARVIS following python libraries were used:

  Pyttsx3: It is a python library which converts text to speech.

 SpeechRecognition: It is a python module which converts speech to text.

 Pywhatkit: It is python library to send WhatsApp message at a particular time with some
additional features.

8
  Wikipedia: It is a python module for searching anything on Wikipedia.

 Smtplib: Simple mail transfer protocol that allows us to send mails and to route mails
between mail servers..

  PyPDF2: It is a python module which can read, split, merge any PDF.

 Pyjokes: It is a python libararies which contains lots of interesting jokes in it.

  Web Browser: It provides interface for displaying web based documents to users.

 Pyautogui: It is a python libraries for graphical user interface.

  OS: It represents Operating System related

1. improves upon decision tree regression by reducing overfitting and increasing prediction
accuracy through bagging and feature randomization.

2. Gradient Boosting Regression: Gradient boosting regression is another ensemble learning


technique that builds an ensemble of weak learners (typically decision trees) sequentially.
Each new model is trained to correct the errors of the previous ones, resulting in a strong
predictive model. It's known for its high predictive accuracy but can be computationally
expensive and sensitive to hyperparameters.

3. XGBoost Regression:XGBoost (Extreme Gradient Boosting) is an optimized


implementation of gradient boosting that is highly efficient and scalable. It introduces several
regularization techniques to control overfitting and improve generalization performance.
XGBoost is widely used in data science competitions and has become a popular choice for
many regression tasks.

9
.2PYQT5 FOR LIVE GUI:-

PyQt5 is the most important python binding. It contains set of GUI widgets. PyQt5 has

some important python modules like QTWidgets, QtCore, QtGui, and QtDesigner etc

3.4 VARIOUS PYTHON APPLICATIONS & LIBRARIES USED


Python boasts a vast ecosystem of libraries that empower developers and data scientists to efficiently
tackle a wide range of tasks. Python's extensive library support and versatility make it a top choice
for diverse applications, from scientific computing to web development and beyond. Some of the
used libraries and applications in the project are:

1. Anaconda: Renowned as a comprehensive data science platform, Anaconda streamlines


package management, offering an extensive collection of pre-installed libraries tailored for
data analysis, visualization, and machine learning. Its user-friendly interface and simplified
installation process make it an essential tool for both beginners and seasoned professionals in
the field.
2. Visual Studio Code (VS Code):Positioned as a leading integrated development environment
(IDE), VS Code provides robust support for Python development. Its versatility lies in its
customizable interface, coupled with a vast ecosystem of extensions that cater to various
needs, from code formatting to debugging and version control. With features like IntelliSense
and integrated terminals, developers can enhance their productivity and streamline their
workflows effectively.
3. Jupyter Notebook: Widely embraced in the data science community, Jupyter Notebook
offers an interactive computing environment ideal for data exploration, analysis, and
documentation.

Its seamless integration of code, visualizations, and explanatory text fosters collaboration and
enables researchers and analysts to communicate their findings effectively. Furthermore,
Jupyter's support for multiple programming languages expands its utility beyond Python,
making it a versatile tool for interdisciplinary projects.
4. Pandas: Positioned as a cornerstone library in data manipulation and analysis, Pandas
simplifies complex data tasks with its powerful data structures and intuitive functions. From
cleaning and transforming datasets to performing advanced operations like grouping and
pivoting, Pandas empowers users to handle real-world data efficiently. Its seamless
integration with other Python libraries makes it indispensable for tasks across various
domains, including finance, healthcare, and social sciences.
5. Numpy: Renowned for its efficiency in numerical computations, Numpy provides a solid
foundation for array operations and mathematical functions. By leveraging Numpy's array
objects and optimized functions, users can perform computations with speed and precision,
essential for scientific computing tasks such as linear algebra, Fourier analysis, and random
number generation. Its seamless integration with other libraries like Pandas and Scikit-learn
enhances its utility in data science workflows.
6. Seaborn and Matplotlib: The dynamic duo of Seaborn and Matplotlib dominates the
landscape of data visualization in Python. Seaborn, built on top of Matplotlib, offers a
highlevel interface for creating attractive and informative statistical graphics. With its concise
syntax and built-in themes, Seaborn simplifies the process of generating complex
visualizations, making it a favorite among data scientists and analysts. Meanwhile, Matplotlib
provides a flexible and low-level interface for creating customizable plots, granting users full
control over every aspect of their visualizations. Together, these libraries enable users to
convey insights with clarity and precision, essential for effective data communication.
7. Scikit-learn: Positioned as the go-to library for machine learning tasks, Scikit-learn provides
a comprehensive suite of algorithms and utilities for classification, regression, clustering, and
dimensionality reduction. It’s simple and consistent API makes it accessible to users of all
skill levels, while its extensive documentation and community support foster learning and
collaboration. Whether building predictive models, evaluating performance, or fine-tuning

11
parameters, Scikit-learn offers the tools and resources necessary to tackle a wide range of
machine learning challenges effectively.
8. Joblib:Joblib stands out for its efficient parallel computing capabilities, essential for
speeding up computationally intensive tasks in machine learning workflows. By leveraging
Joblib's simple interface and seamless integration with Scikit-learn, users can distribute
workloads across multiple cores or nodes, effectively harnessing the power of parallel
processing. Whether fitting models, cross-validating parameters, or performing grid searches,
Joblib enhances productivity and scalability, enabling users to tackle larger datasets and more
complex models with ease.
9. Streamlit: Revolutionizing the landscape of data app development, Streamlit empowers users
to create interactive web applications for showcasing data analyses, machine learning models,
and visualizations. Its intuitive framework and simple syntax allow users to build and deploy
apps quickly, without the need for extensive web development experience. By democratizing
the creation of data-driven applications, Streamlit enables researchers, analysts, and
developers to share their insights with broader audiences, fostering collaboration and driving
innovation in the field of data science.

Figure 8: Data Flow Diagram for my project

12
CHAPTER 4:IN DEPTH STUDY

JARVIS, a desktop assistant is a voice assistant that can perform many daily tasks of desktop like

playing music, opening your favorite IDE with the help of a single voice command. Jarvis is

different from other traditional voice assistants in terms that it is specific to desktop and user does

not need to make account to use this, it does not require any internet connection while getting the

instructions to perform any specific task.

REAL LIFE APPLICATION :

Saves time: JARVIS is a desktop voice assistant which works on the voice command offered to it,

it can do voice searching, voice-activated device control and can let us complete a set of tasks.

Conversational interaction: It makes it easier to complete any task as it automatically do it by

using the essential module or libraries of Python, in a conversational interaction way. Hence any

user when instruct any task to it, they feel like giving task to a human assistant because of the

conversational interaction for giving input and getting the desired output in the form of task done.

Reactive nature :The desktop assistant is reactive which means it know human language very well

and understand the context that is provided by the user and gives response in the same way, i.e.

human understandable language, English. So user finds its reaction in an informed and smart way.

Multitasking: The main application of it can be its multitasking ability. It can ask for continuous

instruction one after other until the user “QUIT” it.

No Trigger phase: It asks for the instruction and listen the response that is given by user without
needing any trigger phase and then only executes the task.

13
DATA IMPLEMENTATION AND PROGRAM EXECUTION
As the first step, install all the necessary packages and libraries. The command used to install the
libraries is “pip install” and then import it. The necessary

LIBRARIES AND PACKAGES


pyttsx3: It is a python library which converts text to speech.

SpeechRecognition: It is a python module which converts speech to text pywhatkit: It is python


library to send WhatsApp message at a particular time with some additional features.
Datetime: This library provides us the actual date and time.

Wikipedia: It is a python module for searching anything on Wikipedia.

Smtplib: Simple mail transfer protocol that allows us to send mails and to route mails between
mail servers. pyPDF2: It is a python module which can read, split, merge any PDF.
Pyjokes: It is a python libraries which contains lots of interesting jokes in it.

Webbrowser: It provides interface for displaying web-based documents to users.

Pyautogui: It is a python librariy for graphical user interface.

OS: It represents Operating System related functionality.

System : It allows operating on the interpreter as it provides access to the variables and functions
that usually interact strongly with the interpreter.

FUNCTIONS

takeCommand(): The function is used to take the command as input through microphone of user
and returns the output as string.

wishMe(): This function greets the user according to the time like Good Morning, Good Afternoon
and Good Evening.

taskExecution(): This is the function which contains all the necessary task execution definition
like sendEmail(), pdf_reader(), news() and many conditions in if condition like “open google”,
“open notepad”, “search on Wikipedia” ,”play music” and “open command prompt” etc.

14
CHAPTER 5: RESULT

Figure 6.2 Input for Google search

Figure 6.3 Output for Google search

15
Figure 6.4 Input to send Email

Figure 6.5 Output to send Email

Figure 6.7 Output for YouTube search

16
Figure 6.9 Output to play music

Figure 6.11 Output to open cmd

17
Figure 6.14 Output to open Microsoft Office

Functionality

In this we check the functionality of the system whether the system performs the task which it was

intended to do. To check the functionality each function was checked and run, if it is able to execute

the required task correctly then the system passes in that particular functionality test. For example to

check whether JARVIS can search on Google or not, as we can see in the figure 7.1, user said “Open

Google”, then Jarvis asked, ”What should I search on Google?” then user said, “What is Python”,

Jarvis open Google and searched for the required input.number.

USABILITY

Usability of a system is checked by measuring the easiness of the software and how user friendly it is

for the user to use, how it responses to each query that is being asked by the user.

It makes it easier to complete any task as it automatically do it by using the essential module or

libraries of Python, in a conversational interaction way. Hence any user when instruct any task to it,
18
they feel like giving task to a human assistant because of the conversational interaction for giving

input and getting the desired output in the form of task done.

The desktop assistant is reactive which means it know human language very well and understand the

context that is provided by the user and gives response in the same way, i.e. human understandable

language, English. So user finds its reaction in an informed and smart way.

The main application of it can be its multitasking ability. It can ask for continuous instruction one

after other until the user “QUIT” it. It asks for the instruction and listen the response that is given by

user without needing any trigger phase and then only executes the ta.

SECURITY

The security testing mainly focuses on vulnerabilities and risks. As JARVIS is a local desktop

application, hence there is no risk of data breaching through remote access. The software is dedicated

to a specific system so when the user logs in, it will be activated.

Afterwords, the columns which are deemed useless in our current analysis and predictions are
removed from the dataset. This is done because we do not want any redundant data in our dataset.
Here, we have dropped the instant, registered and casual attributes as we will not be going into that
deep analysis in our project. However, we can surely have them in our future scope of our project.
Next, we have addressed the already discussed problem of dteday attribute being of type object.
Firstly, we will convert the attribute to datetime format. Then, we will go on to split the attribute into
year, month, and day attributes separately. The final look of dataset after pre processing is:

4.4 EXPLORATORY DATA ANALYSIS

Stability of a system depends upon the output of the system, if the output is bounded and specific to

the bounded input then the system is said to be stable. If the system works on all the poles of

functionality then it is stable.

19
Chapter 6:-CONCLUSION AND RECOMMENDATION

Through this voice assistant, we have automated various services using a single line command. It
eases most of the tasks of the user like searching the web, retrieving weather forecast details,
vocabulary help and medical related queries. We aim to make this project a complete server
assistant and make it smart enough to act as a replacement for a general server administration.
The future plans include integrating Jarvis with mobile using React Native to provide a
synchronised experience between the two connected devices. Further, in the long run, Jarvis is
planned to feature auto deployment supporting elastic beanstalk, backup files, and all operations
which a general Server Administrator does. The functionality would be seamless enough to
replace the Server Administrator with Jarvis.

20
Chapter 7:- LIMITATION AND SCOPE FOR FUTURE

Limitation:-

• It cannot be used efficiently when background noise ids high.

• It depends upon the system performance.

• It sometimes interprets incorrectly the input.

• If network connection is weak it results in delayed performance.

• If system stops entire results get down.

FUTUREPROSPECTIVE :-

We plan to Integrate Jarvis with mobile using react native, to


provide a synchronized experience between the two connected
devices.

Further, in the long run, Jarvis is planned to feature auto


deployment supporting elastic beanstalk, backup files, and all
operations which a general Server Administrator does. The
functionality would be seamless enough to replace the Server
Administrator with Jarvis.

Functional Requirements:

● LinuxDistribution
● ProperInternetConnection
● GithubCredentials
● Dockerinstalled
● Python2.7
● HerokuCLI
● Mplayerforvoicesupport(Text-to-Speech)
21
● Chromium-basedbrowser,likeChrome,Edge
● HerokuCredentials
● NodeJSwithnpm

Non-FunctionalRequirements:

Thenon-functionalrequirementsofthesysteminclude:
● Thesystemensuressafety,securityandusability,whichare
observable during operation (at run time).
● Thesystemisadaptabletodifferentsituations.
● TheprojecthasgoodandcompactUIusingAngularJSwith
responsive interface.
● Theprojectislightonresources.

Presently, Jarvis is being developed as an automation tool and virtual


assistant. Among the Various roles played by Jarvis are:

1. SearchEnginewithvoiceinteractions
2. MedicaldiagnosiswithMedicineaid.
3. ReminderandTo-Doapplication.
4. VocabularyApptoshowmeaningsandcorrectspellingerrors.
5. WeatherForecastingApplication.

22
REFERENCES

[1] P. Pal, A. N. Iyer and R. E. Yantorno, "Emotion Detection From Infant

Facial Expressions And Cries," 2006 IEEE International Conference on Acoustics Speech

and Signal Processing Proceedings, Toulouse, 2006,pp.

II-II.

[2] M. Dahmane and J. Meunier, "Emotion recognition using dynamic gridbasedHoG features,"

Face and Gesture 2011, Santa Barbara, CA, 2011, pp.884-888.

[3] K. S. Nathan, M. Arun and M. S. Kannan, "EMOSIC — An emotion based music player for

Android," 2017 IEEE International Symposium on Signal

Processing and Information Technology (ISSPIT), Bilbao, 2017,pp. 371276.

[4] M. S. Hossain and G. Muhammad, "An Emotion Recognition System

for Mobile Applications," in IEEE Access, vol. 5, pp.2281-2287, 2017.

[5] K. Kulkarni et al., "Automatic Recognition of Facial Displays of Unfelt Emotions," in IEEE

Transactions of Affective Computing.

[6] Y. Li, J. Tao, B. Schuller, S. Shan, D. Jiang and J. Jia, "MEC 2017: Multimodal Emotion

Recognition Challenge," 2018 First Asian Conference on Affective Computing and Intelligent

Interaction (ACII Asia), Beijing,

2018, pp.1-5

[7] Y. Seanglidet, B. S. Lee and C. K. Yeo, "Mood prediction from facial video with music

“therapy” on a smartphone," 2016 Wireless Telecommunications Symposium (WTS), London,

2016, pp. 1-5.

23
[8] A. V. Iyer, V. Pasad, S. R. Sankhe and K. Prajapati, "Emotion based mood enhancing music

recommendation," 2017 2nd IEEE International

Conference on Recent Trends in Electronics, Information & Communication

Technology (RTEICT), Bangalore, 2017, pp. 1573-1577.

[9] T. Moriyama, K. Abdelaziz and N. Shimomura, "Face analysis of aggressive moods in

automobile driving using mutual subspace method," Proceedings of the 21st International

Conference on Pattern Recognition (ICPR2012),

Tsukuba, 2012, pp. 2898-2901

[10] M. Pantic and L. J. M. Rothkrantz, "Automatic analysis of facial expressions: the state of the

art," in IEEE Transactions on Pattern

Analysis and Machine Intelligence, vol. 22, no. 12, pp. 1424-1445,

Dec. 2000.

URL:

 http://ieeexplore.ieee.org/stamp/stamp.jsp?tp=&arnumber=895976&isn umber=19391

 https://ieeexplore.ieee.org/Xplore/home.jsp

 https://en.wikipedia.org/wiki/Main_Page

 https://www.google.com.bd/?gws_rd=cr&ei=sK0XWLPAEcvmvgT12o

7AAg

 Etc……..

24
APPENDIX

Python Code For development of Jarvis project :-

import speech_recognition as sr

import os

import pyttsx3

import datetime

import wikipedia

# Initialize text to speech engine

engine = pyttsx3.init()

# Function to speak

def speak(text):

engine.say(text)

engine.runAndWait()

# Function to recognize speech

def listen():

r = sr.Recognizer()

25
with sr.Microphone() as source:

print("Listening...")

r.pause_threshold = 1

audio = r.listen(source)

try:

print("Recognizing...")

query = r.recognize_google(audio, language='en-in')

print(f"User said: {query}\n")

except Exception as e:

print("Say that again please...")

return "None"

return query.lower()

# Function to greet

def greet():

hour = int(datetime.datetime.now().hour)

if hour >= 0 and hour < 12:

26
speak("Good Morning!")

elif hour >= 12 and hour < 18:

speak("Good Afternoon!")

else:

speak("Good Evening!")

speak("I am Jarvis. How may I assist you? sir tushar kamboj")

# Main function

def main():

greet()

while True:

query = listen()

if 'wikipedia' in query:

speak('Searching Wikipedia...')

query = query.replace("wikipedia", "")

results = wikipedia.summary(query, sentences=2)

speak("According to Wikipedia")

27
print(results)

speak(results)

elif 'open youtube' in query:

speak("Opening Youtube sir tushar kamboj")

os.system("start https://www.youtube.com")

elif 'open google' in query:

speak("Opening Google sir tushar kamboj")

os.system("start https://www.google.com")

elif 'iron man' in query:

speak("opening movie ironman sir tushar kamboj")

elif 'the time' in query:

hor = datetime.datetime.now().strftime("%H")

mine = datetime.datetime.now().strftime("%M")

speak(f"The time is{hor} bajke {mine} minutes ho chuke hai")

elif 'weather' in query:

speak("so todays weather is as follows: ")

28
os.system("start https://www.google.com/search?q=weather+of+today&gs_ivs=1#tts=0")

# elif 'god' in query:

# speak("ram ram ji")

elif 'go' in query:

speak("Goodbye! and take care sir tushar kamboj")

elif 'open ai' in query:

speak("Starting the Ai Commands")

os.system("start https://chatgpt.com/")

break

else:

speak("Sorry, I couldn't understand that sir tushar kamboj")

if _name_ == "_main_":

main()

29

You might also like