Major Project Report
Major Project Report
Semester X
Session Jan-May, 2022
DECLARATION
I hereby declare that the project entitled “My Personal Intelligent Voice Assistant:
Jarvis” submitted by me for the partial fulfillment of the requirement for the award of
Master of Computer Application (5 Years) Semester X to International Institute of
Professional Studies, Devi Ahilya Vishwavidyalaya, Indore, comprises my own work and
due acknowledgement has been made in text to all other material used.
Signature of Student:
Date:
Place: Indore
International Institute of Professional Studies
CERTIFICATE
It is to certify that we have examined the dissertation on “My Personal Intelligent Voice
Assistant: Jarvis”, submitted by Mr. Hritik Jaiswal to the International Institute of
Professional Studies, DAVV, Indore, and hereby accord our approval of it as a study
carried out and presented in a manner required for its acceptance in partial fulfillment for
the award of the degree of “Master of Computer Application (5 year)”.
We had a great experience working on this project and we got to learn a plethora of new
skills through this project. However, it would not have been possible without the kind
support and help of many individuals. We would like to extend our sincere thanks to all
of them. We are highly indebted to the teachers and especially Ms Shraddha Soni,
Dr. B. K. Tripathi, Director, IIPS DAVV and Dr. Ramesh Thakur, Program In charge MCA
PG course for their guidance and constant supervision as well as providing necessary
information regarding the project and also for their support in completing the project. We
would like to express our gratitude towards our parents and friends for their kind
cooperation and encouragement which help us in the completion of the project.
Place - Indore
1. TITLE PAGE
2. DECLARATION
3. CERTIFICATE
4. ACKNOWLEDGEMENT
5. ABSTRACT 1
6. EXECUTIVE SUMMARY 2
7. PROBLEM STATEMENT 3
8. INTRODUCTION 4
16. CONCLUSION 29
17. BIBLIOGRAPHY 31
1
ABSTRACT
EXECUTIVE SUMMARY
The project aims to develop a personal voice assistant for desktop. Jarvis draws its
inspiration from virtual assistants like google assistant for android, and Siri for iOS. It has
been designed to provide a user-friendly interface for carrying out a variety of tasks by
employing certain well-defined commands. Users can interact with the assistant either
through voice commands or using keyboard input. As a personal assistant, Jarvis assists
the end-user with day-to-day activities like general human conversation, searching
queries in google, bing or yahoo, searching for videos, sending massages, retrieving
images, live weather conditions based on symptoms and reminding the user about the
scheduled events and task.
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.
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. This is the basic summary of Jarvis.
3
1
PROBLEM STATEMENT
PURPOSE-
We are all well aware about Cortana, Siri, Google Assistant and many other virtual
assistants which are designed to aid the tasks of users in Various Platforms my motive
behind this project is to make my personal A.I. assistant using python which makes our
daily work easier where we can perform any task through our voice.
IS IT AN A.I.? –
Now the basic question arises in mind that how it is an AI? The virtual assistant that I
have created is like if it is not an A.I, but it is the output of a bundle of the statement. But
2 fundamentally, the main purpose of A.I machines is that it can perform human tasks
with the same efficiency or even more efficiently than humans. It is a fact that my virtual
assistant is not a very good example of A.I., but it is an A.I..
PRODUCT DESCRIPTION-
As a personal assistant, Jarvis assists the end-user with day-to-day activities like general
human conversation, searching queries in various search engines like Google, Bing or
Yahoo, searching for videos, play youtube videos, live weather conditions, play any song
and reminding the user about the scheduled events and tasks. The user
statements/commands are analyzed with the help of machine learning to give an optimal
solution.
4
1
1. INTRODUCTION
5
1
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 messages, 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.
3. PRESENT SYSTEM
VS
PROPOSED SYSTEM
7
1
Present System-
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.
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 Visual Studio code.
All the python files were created in VS code and all the necessary packages were easily
installable in this IDE. For this project following modules and libraries were used i.e.
pyttsx3, Speech Recognition, Datetime, Wikipedia, Smtplib, pywhatkit, pyjokes, json,
time etc. 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. Some basic functionalities of
this project include, It can send emails, It can send text messages, 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.
8
1
4. Software Details
9
1
The IDE used in this project is Visual Studio code. All the python files were created in
VS code 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, etc.
Python Libraries-
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.
Datetime:-
This library provides us the actual date and time.
Wikipedia:-
It is a python module for searching anything on Wikipedia.
Webbrowser:-
It provides interface for displaying web-based documents to users.
os:-
It represents Operating System related functionality.
Smtplib:-
Simple mail transfer protocol that allows us to send mails and to route mails
between mail servers.
pywhatkit:-
It is python library to send WhatsApp message at a particular time and can used to
search videoson YouTube.
Pyjokes:-
It is a python libararies which contains lots of interesting jokes in it.
Subprocess:-
This module is used for getting system subprocess details which are used in
various commands i.e Shutdown, Sleep, etc. This module comes built-in with
Python.
Ctypes:-
ctypes is a foreign function library for Python. It provides C compatible data
types, and allows calling functions in DLLs or shared libraries. It can be used to
wrap these libraries in pure Python.
111
Time:-
It also provides functionality other than representing time, like waiting during
code execution and measuring the efficiency of your code.
Requests:-
Requests is used for making GET and POST requests. To install this module type
the below command in the terminal.l.
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.
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.
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.
141
6. DATA IMPLEMENTATION
AND
PROGRAM EXECUTION
151
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 packages includedare
as follows:
pyttsx3:-
It is a python library which converts text to speech.
SpeechRecognition:-
It is a python module which converts speech to text.
Datetime:-
This library provides us the actual date and time.
Wikipedia:-
It is a python module for searching anything on Wikipedia.
Webbrowser:-
It provides interface for displaying web-based documents to users.
os:-
It represents Operating System related functionality.
Smtplib:-
Simple mail transfer protocol that allows us to send mails and to route mails
between mail servers.
pywhatkit:-
It is python library to send WhatsApp message at a particular time and can used to
search videoson YouTube.
Pyjokes:-
It is a python libararies which contains lots of interesting jokes in it.
Subprocess:-
This module is used for getting system subprocess details which are used in
various commands i.e Shutdown, Sleep, etc. This module comes built-in with
Python.
161
Time:-
It also provides functionality other than representing time, like waiting during
code execution and measuring the efficiency of your code.
Requests:-
Requests is used for making GET and POST requests. To install this module type
the below command in the terminal.
Twilio:-
Twilio is used for making call and messages. To install this module type the
below command in the terminal.
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.
7. WORKING MODEL
181
The assistant, on starting, will initially wait for the input to be given from user. If the user
gives input command, via voice, the assistant will capture it, and searches for the
keyword present in the input command. If the assistant was able to find a key word, then
it will perform the task accordingly, and returns the output back to user, in voice. If not,
the assistant will again start waiting for the user to give input. Each of these
functionalities are having their own importance in the whole system working.
191
Play Music:- User can ask for playing any song from the selected directory.
Location:- User can ask to locate any location in the world. It can be a country,
city or continent. E.g. Indore.
Play songs from YouTube:- User can play any song from YouTube Directly.
8. SYSTEM TESTING
241
The system testing is done on fully integrated system to check whether the requirements
are matching or not. The system testing for Jarvis desktop assistant focuses on the
following four parameters:
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 19, 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 in figure 20.
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, 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 task.
261
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.
STABILITY:-
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.
271
9. INDIVIDUAL CONTRIBUTION
281
The project titled “My Personal Intelligent A.I. Desktop Voice Assistant: Jarvis” was
designed by me individually. From installing of all the packages, importing, creating all
the necessary functions, was all done by me individually. I myself have done all the
research before making this project, designed the requirement documents for the
functionalities and all the documentation, code and made the project in such a way that it
is deliverable at each stage. I have written the complete code in Python language and in
VS code IDE from where it was very easy to install the packages and libraries, I have
created the functions like takeCommand(), wishMe() and sendEmail() which has the
following functionalities, like takeCommand() which is used to take the command as
input through microphone and returns the output as string, wishMe() that greets the user
according to the time like Good Morning and Good Evening, sendEmail(), that is used to
send emails. While making this project I realized that 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 send text
messages, your favorite IDE 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 have some basic
conversation. At last, I have updated my report and completed it by attaching all the
necessary screen captures of inputs and outputs, mentioning the limitations and scope in
future of this project.
291
10. CONCLUSION
301
Jarvis is a very helpful voice assistant without any doubt as it saves time of the user by
conversational interactions, its effectiveness and efficiency. But while working on this
project, there were some limitations encountered and also realized some scope of
enhancement in the future which are mentioned below:
LIMITATIONS:-
Security is somewhere an issue, there is no voice command encryption in this
project.
Background voice can interfere
Misinterpretation because of accents and may cause inaccurate results.
Jarvis cannot be called externally anytime like other traditional assistants like
Google Assistant can be called just by saying, “Ok Google!”
Make Jarvis to learn more on its own and develop a new skill in it.
Jarvis android app can also be developed.
Make more Jarvis voice terminals.
311
jbjjb
11.BIBLIOGRAPHY
321