Minor Final PDF Sanyam Jain
Minor Final PDF Sanyam Jain
Minor Final PDF Sanyam Jain
Submitted by:
Mr. - SANYAM JAIN
Enrollment No. – 0827CA18DD22
Prof(Mr.)Anil kumar
BONAFIDE CERTIFICATE
This is to certify that Major Project entitled “Desktop Assistant Based on Natural
Languages” being submitted by Mr. Sanyam Jain (0827CA18DD22) for partial
fulfillment of the requirement for the award of degree of Master of Computer
Applications to Rajiv Gandhi Proudyogiki Vishwavidyalaya, Bhopal (M.P.)
during the academic year 2021-22 is a record of bona fide piece of work, carried
out by the student under my supervision and guidance in the Department of
Computer Applications, AITR, Indore.
ii
Report Approval
Internal Examiner
Name:
Designation
Affiliation
External Examiner
Name:
Designation
Affiliation
iii
Declaration
iv
Acknowledgement
I would like to express my deepest gratitude to Honorable Head of the department Mrs. Geeta
Santosh, who has provided me with every facility to successfully carry out this project, and my
profound indebtedness to Prof. Anil Kumar, Acropolis Institute Of Technology And Research,
whose unfailing support and enthusiasm has always boosted up my morale.
It is their help and support, due to which I was able to complete the design and technical report.
Without their support this report would not have been possible.
Sanyam Jain
DDMCA IV Year
Department of Information Technology
Faculty of Engineering
Acropolis Institute of Technology and Research, Indore
v
Abstract
Who doesn't want to have the luxury to own an assistant who always listens for your call,
anticipates your every need, and takes action when necessary? That luxury is now available
thanks to artificial intelligence-based Desktop Assistants.
Desktop Assistants come in somewhat small packages and can perform a variety of actions after
hearing your command. They can turn on lights, answer questions, play music, place online
orders and do all kinds of AI-based stuff. They are not to be confused with Voice assistants,
which are people who work remotely and can, therefore, handle all kinds of tasks. Rather,
Desktop Assistants are technology based. As Desktop Assistants become more robust, their
utility in both the personal and business realms will grow as well. The advancement in
technology over time has been unmeasurable. From the first digital computer built by Eniac
having a clock speed of 100KHz to Summit developed by the US Department of Energy has a
performance of 148.6 petaFlops, we have come a long way in technological advancement. In
such an era of advancement if people are still struggling to interact with their machine using
various input devices then its not worth it. For this reason, many voice assistants were developed
and are still being improved for better performance and efficiency. The main task of a voice
assistant is to minimize the use of input devices like keyboard, mouse, touch pens, etc. This will
reduce both the hardware cost and space taken by it.
Voice assistants are programs on digital devices that listen and respond to verbal commands. A
user can say, ―What’s the weather?‖ and the voice assistant will answer with the weather
report for that day and location. They could say, ―Tell me a joke,‖ and the assistant will jump
into a tale. The user could even say, ―play music,‖ and song will be played ! Voice assistants
are so easy to use that many people forget to stop and WONDER how they work. It takes voice
an input. The system is being designed in such a way that all the services provided by the mobile
devices are accessible by the end user on the user's voice command.
vi
Table of Contents
Page
No.
Certificate ii
Report Approval iii
Declaration iv
Acknowledgement V
Abstract vi
Table of Contents vii
Chapter 1 Introduction 9
1.1 Rationale 10
1.2 Goal 10
1.3 Objectives 11
1.4 Overview 13
1.5 Contribution of Project 13
1.6 Report Organization 14
Chapter 5 Methodology 26
5.1 Proposed Algorithm 26
5.2 Tools Required 27
Chapter 6 Testing 29
Chapter 7 Snapshots 34
1 Problem Domain 38
2 Solution Domain 40
3 System Domain 41
References 43
viii
CHAPTER 1
INTRODUCTION
A voice assistant or intelligent personal assistant is a software agent that can perform tasks or
services for an individual based on verbal commands i.e., by interpreting human speech and
respond via synthesized voices. Users can ask their assistant questions, control and media
playback via voice, and manage other basic tasks such as email, to-do lists, open or close any
application etc with verbal commands. Who doesn't want to have the luxury to own an assistant
who always listens for your call, anticipates your every need, and takes action when necessary?
That luxury is now available thanks to artificial intelligence-based voice assistant. Voice assistant
come in somewhat small packages and can perform a variety of actions after hearing your
command. They can answer questions, play music, place online orders and do all kinds of AI-
based stuff. Voice assistant are not to be confused with Voice assistants, which are people who
work remotely and can, therefore, handle all kinds of tasks. Rather. Voice Assistants are
technology based. You can use voice commands instead of performing tasks manually by tapping
your finger on the screen a gazillion times ―Jarvis‖ is smart and very well integrated with
windows. It can open apps, send messages, make calls, play a specific song on YouTube
Music, check the weather, control smart devices, set timers, grab general information, and many
other things. To use this on your desktop you first have to enable it. The process is so simple
even your anyone can do it who have a basic knowledge about computer, and it won’t take more
than a minute or two of your time. As Voice Assistants become more robust, their utility in both
the personal and business realms will grow as well. Speech recognition is an alternative to
keyboard typing. Simply put, you're talking to the machine and your words show on the screen. It
has been developed to provide a simple way to write on a computer and can support people with
a range of disabilities. It is helpful for users with hand disabilities who often find it though,
impossible or painful to type. Voice-recognition apps can also support people with spelling
problems, including those with dyslexia, since well-recognized words are almost always
pronounced correctly. Scientists have used text generated online by people to train voice
assistants to listen and respond to our requests in a more natural and meaningful way. Voice
assistants will
ix
decipher questions that have been phrased in a variety of different ways and interpret what the
user is most likely to want.
1.1 Rationale:
1. Siri by Apple became the first digital Voice assistant to be standard on a smartphone when the
iPhone 4s came out on October 4, 2011. Siri moved into the smart speaker world when the
HomePod debuted in February 2018.
2. Google Now (which became Google Assistant) on the Android platform followed. It also works
on Apple’s iOS, but has limited functionality.
3. Then the smart speakers came along, and ―Alexa‖ and ―Hey Google‖ became a part of many
household conversations. Alexa by Amazon is part of the Echo and the Dot. Google Assistant is
part of the Google Home.
4. Samsung has Bixby. IBM has Watson. Microsoft has Cortana on its Windows 10, Xbox One
machines, and Windows phones, and Nuance has Nina. Facebook used to have M, but its usage in
the Facebook Messenger app ended in January 2018.
1.2 Goal: -
New voice assistant devices like Amazon’s Alexa, Google voice assistant helps in dealing with
the daily work of your home. These devices are connected to all other electronic devices and
instruct them to do the work on your place. They instantly carry out the functions of the devices.
The voice assistants are taking the hospitality market by storm. From carrying out customer
feedback work to analyzing the trends for employee productivity, the voice assistants are
providing a favorable experience to hospitality segment.
x
Few of the functions which are carried out by voice assistants are
These smart voice assistants also provide a huge help when it comes to handling your banking
and finance. They make your work easier and allow tackling the financial matters at ease. The
functions performed by Voice assistants are:
1.3 Objective: -
To make a desktop assistant that can be operational in multiple languages.To make a desktop
assistant that can-
1. Open the subreddit in the browser.
2. Open any website in the browser.
3. Send an email to your contacts. xi
4. Launch any system application.
5. Tells you the current weather and temperature of almost any city
6. Tells you the current time.
7. Greetings
8. Play you a song on VLC media player (of course you need to have VLC mediaplayer installed in
your laptop/desktop)
10. Tells you latest news feeds.
11. Tells you about almost anything you ask.
xii
1.4 Overview: -
In our project, we mainly use voice as communication means, so the basically the Speech
recognition application. Same kind of application is also developed by the Google that is ―Google
Voice Search‖ which is used for in Android Phones. But this Application mostly works with
Internet Connections. A Desktop voice assistant (DVA) is a software agent that can perform tasks
or services for an individual based on commands or questions. Desktop voice assistants are able
to interpret human speech and respond via synthesized voices. In addition, this proposed system
can change the way of interactions between end user and the mobile devices. The system is being
designed in such a way that all the services provided by the computer devices are accessible by
the end user on the user's voice commands
.
1.5 Contribution of project:
1.5.2 Innovativeness: The Voice assistants which are currently available are
fast and responsive but we still have to go a long way. The understanding and reliability of the
current systems need to be improved a lot. The assistants available nowadays are still not reliable
in critical scenarios. With the incorporation of these technologies, we will be able to achieve new
heights. What the Voice assistants can achieve is much beyond what we
xiii
have achieved till now. Most of us have seen Jarvis, that is a Voice assistant developed by iron
man which is although fictional but this has set new standards of what we can achieve using
voice-activated Voice assistants.
1.5.3 Usefulness: Voice assistants are becoming a must-have item users have a
wealth of knowledge at their fingertips (or lips?) and can automate many mundane, time-
consuming activities with just a sentence or two. The Voice assistant Saves Time, Hands- Free
Operation, Ease of Use, Offers Convenience. People – particularly younger people – genuinely
enjoy speaking to home assistants, showing the bond that can be created through voice.
xiv
CHAPTER – 2
PROJECT PLAN
xv
2.2 Process model adopted
A software process model is an abstraction of the actual process, which is being described.
This project includes the functions and services of: calling services, text message transformation,
mail exchange, alarm, event handler, location services, music player service, checking weather,
Google searching engine, Wikipedia searching engine and much more.
This project is originated from a popular application from Apple called ―Siri‖ [1]. This
application was released on the date when the iPhone4S was published. This application is very
interesting, easy going and convenient, with wide real world usage and large developing
potential. This application is not limited by different generations and occupations, and can be
applied to many industries that we have in the real world.
xvi
CHAPTER-3.
REQUIREMENT ENGINEERING
The first step of the project is to understand user requirements for building project. Requirements
of a system can be defined as descriptions of what services it could provide and the constraints
on its operation. These requirements directly address user needs in term of using the system to
achieve their business operation – or process. The process of understanding requirements, known
as Requirement Engineering, involves abroad spectrum of processes, tasks and techniques to
collect, analyze, document, and verify the requirements. The requirements themselves are the
description of the system services and constraints that are generated during the requirements
engineering process. Requirements may serve a dual function. It may be the basis for a bid for a
contract; therefore, must be open to interpretation.
3.1 User Roles & Responsibilities
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 thesefunctionalities are having their own importance in
the whole system working.
User Input—The assistant will wait for the user to give voice command for furtherprocessing.
Introducing to user—The user who is asking assistant to introduce itself.
Showing Note—If the user asks the assistant to display the note, and to speak out thenote, the
assistant will do so.
Opening Applications—If the user asks the assistant to open an application, like MS Word, or
any other, the assistant will do so immediately. And also, it will speak that itopens the
application.
xvii
3.2 Requirements
When it comes to any type of project, requirement collection plays a key role. Requirements
collection is not only important for the project, but it is also important for the project
management function. For the project, understanding what the project will eventually deliver is
critical for its success. Through requirements, the project management can determine the end
deliveries of the project and how the end deliveries should address client's specific requirements.
3.2.1 Functional Requirements
Functional requirements are features that allow the system to function as it was intended. Put
another way, if the functional requirements are not met, the system will not work. Functional
requirements are product features and focus on user requirements.It may cover certainbusiness
processes and procedures that the software must follow and perform to achieve usergoals –
sometimes termed business logic. Voice Assistant functional requirements are as follow-
• accepting an audio signal,
• deciding whether the audio signal is addressed to the software agent,
• attempting to map a relevant signal onto a word sequence,
• determining the rover action request associated with the understood word sequence,
• and providing appropriate feedback to the user.
xviii
of navigation path, and the menu, color and layout should look consistent to the users. Security is
also a major consideration when developing the system. Access control should be implemented to
prevent destructive actions. Non-Functional requirement in our system are as follow:
• Security - The system is equipped with security to protect its data and maintain its functionality
as intended.
• User friendly - The proponent must ensure that the intended user of the system can carry out the
intended tasks efficiently, effectively and satisfactorily. System should be easily used by the user.
• Performance -Site should load within 3 seconds i.e. performance should be fast.
• Efficiency: System won’t hang even in more customer traffic.
• Usability: The proponent ensured that the intended user of the system can carry out theintended
tasks efficiently, effectively and satisfactorily.
• Reliability: The proponent tested the reliability of the system by conducting some teststhat helped
discover many problems in the software design and functionality.
• Privacy- Personal data of the system should not be disclosed to anyone.
The relationship between and among all the actors and the use case of Voice Assistant-
xix
• In this project there is only one user. The user queries command to the system. System then
interprets it and fetches answer. The response is sent back to the users.
Fig -3.3
xx
CHAPTER-4
ANALYSIS & CONCEPTUAL DESIGN &
TECHNICAL ARCHITECTURE
This Assistant consists of three modules. First is, assistant accepting voice input from user.
Secondly, analysing the input given by the user, and mapping it to the respective intent and
function. And the third is, the assistant giving user the resultall along with voice
xxi
4.2 Sequence Diagrams
A sequence diagram or system sequence diagram (SSD) shows object interactions arranged in
time sequence in the field of software engineering. It depicts the objects involved in the scenario
and the sequence of messages exchanged between the objects needed to carry out the
functionality of scenario.
xxii
4.3 Class Diagrams
Class diagram is a static diagram. The class diagrams are widely used in the modeling of object
oriented systems because they are the only UML diagrams, which can be mapped directly with
object-oriented languages. Class diagram shows a collection of classes, interfaces, associations,
collaborations, and constraints.
xxiii
4.4 Activity Diagram
An activity diagram is a behavioral diagram i.e. it depicts the behavior of a system. An activity
diagram portrays the control flow from a start point to a finish point showing the various decision
paths that exist while the activity is being executed.
Initially, the system is in idle mode. As it receives any wakeup call it begins execution. The received
command is identified whether it is a questionnaire or a task to be performed. Specific action is taken
accordingly. After the Question is being answered or the task is being performed, the system waits for
another command. This loop continues unless it receives quit command. At that moment, it goes back to
sleep.
xxiv
4.5 Data Design
Data for AI based voice assistant varies from person to person, it depends on how a person uses
his system and it is desirable to feed in those features for voice commands that are most
frequently used by the user
4.5.1 Requirement Traceability
Requirements traceability is the tracking of requirements throughout the product development lifecycle. It is a
documented thread that provides forward and backward visibility into all activity surrounding each requirement
(including design, development, testing, and support). Requirements traceability helps minimize the risk of
negative outcomes and maximize productivity. Its benefits include greater team efficiency, easier regulatory
compliance, and higher-quality products.
xxv
CHAPTER -5 METHODOLOGY
A systems methodology, then, is fundamentally a process incorporating system- scientific
methods, supported by system thinking and simulation tools, undertaken by people with suitable
systems and applied science and engineering skills.
1. Open the assistant
4. Keyword classification
a. The system will keep listening for commands and the time for listening is variable
which can be changed according to user requirements.
b. If the system is not able to gather information from the user input it will keep asking
again to repeat till the desired no. of times.
c. The system can have both male and female voices according to user requirements.
d. Features supported in the current version include playing music, emails, texts,
search on Wikipedia, or opening system installed applications, opening anything on
the web browser, etc.
xxvi
The overall design of our system consists of the following phases:
xxvii
5.2 Tools Required
Imported Modules
A. PYTTSX3
The pyttsx3 is an offline module that is used for text to speech conversion in Python and it is
supported by both Python 2 & 3. The run and wait functionality is also in this module only.
B. DATETIME
The DateTime module is imported to support the functionality of the date and time. For example,
the user wants to know the current date and time orthe user wants to schedule a task at a certain
time. In short this module supports classes to manipulate date and time and perform operations
according to it only
C. WEBBROWSER
This module allows the system to display web-based information to users. For example, the user
wants to open any website and he gives input as
―Open Google‖.
D. WIKIPEDIA
Wikipedia is a library in python which it possible for the Voice assistant to process the queries
regarding Wikipedia and display the results to users.
This is an online library and needs an internet connection to fetch the results.
xxviii
E. OS MODULE
OS Module provides an operating system dependent functionalities. If we want to perform
operations on files like reading, writing, or manipulate paths, all these types of functionalities are
available in an OS module. All the operations available raise an error ―OSError‖ in case of any
error like invalid names, paths, or arguments which may be incorrect or correct but just no
accepted by the operating system.
F. SMTPLIB
Python has this module for in the standard library for working with emails & email servers. The
SMTPLIB defines an object known as ―SMTP client session object‖ which is used to send mails
by the user. There are 3 steps involved - initialize, sendmail(), quit.
xxix
CHAPTER-6
TESTING
Testing is the major quality control that can be used during software development. Its basic
function is to detect the errors in the software. During requirement analysis and design, the output
is a document that is usually textual and non-executable. After the coding phase, computer
program is available that can be executed for testing purposes. This implies that testing not only
has to uncover errors introduced during coding, but also errors introduced during previous
phases. Thus, the goal of the testing is to uncover requirement, design and coding errors in the
program.
An elaborate testing of data is prepared and the system is tested using that test date. Errors noted
and corrections made during the testing. The corrections areal so noted for future use. The users
are trained to operate the developed system. Both hardware and software securities are made to
run the developed system successfully in future. System testing is the stage of
implementation, which is aimed at ensuring that the system works accurately before live
operation commences. Testing is vital to the success of any system. System testing makes a
logical assumption that if all the parts of the system are correct, the goal will be successfully
achieved.
6.1Testing Objectives
• Testing is a process of executing a program with the intent of finding an error
• A good test case is one that has a high probability of finding an undiscovered error
xxvii
6.2Testing Scope
We need to ensure that the assistants deliver information correctly and quickly, while behaving as
naturally as possible. Due to the syntactic diversity of natural languages, both language training
and verifying language ability, as well as the correct reproduction of information, pose a major
challenge. In addition, the suitability ofthe application for everyday use is central – written input
with spelling or grammar errors must lead to the same results as error-free input. User also expect
to be understood by a language assistant when they speak with a dialect or a cold, or when
background noise occurs, such as traffic sounds or children shouting.
Assistant Testing under crowded condition offers the advantage that the language capability of
the applicationis tested under everyday conditions and with the right target group. The test not
only reveals weaknesses in thelanguage ability and information processing, but also directly
delivers hundreds of training data sets that can be used to address weaknesses and close language
gaps. The perfect everyday test where you can only win!
6.3Testing Principles:
• Testing should begin ―in the small‖ and progress toward testing ―in the large‖
A strategy for software testing integrates software test case design methods into a well-planned
series of steps that result in the successful construction of software. As important, a software
testing strategy provides a road map. Testing is a set of activities that can be planned in advance
xxvii
and conducted systematically.
• Unit Testing
• Integration Testing
• Validation Testing
• System Testing
xxvii
Unit Testing:
Unit testing focuses verification efforts on the smallest unit of software design of module. This is also
known as ―Module Testing‖. Acceptance of package is used for computerization of module. Machine
Utilization was prepared and approved by the project leader. In this testing step, each module is found to
be working satisfactory as regards to the expected output from the module. The suggested changes were
incorporated into the system. Here each module in the Machine Utilization has been tested.
Integration Testing:
After the package is integrated, the user test version of the software was released. This testing consists of
testing with live data and various stress tests and result were noted down. Then the corrections were made
based on the user’s feedback. Integration testing is systematic testing for constructing the program
structure, while at the same time conducting tests to uncover errors associated within the interface. The
objective is to take unit tested modules and build a program structure. All the modules are combined and
tested as a whole. Here correction is difficult because the vast expenses of the entire program complicate
the isolation of causes. Thus, the integration testing step, all the errors uncovered are corrected for the next
steps.
Validation Testing: At the culmination of integration testing, software is completely assembled as a
package; interfacing errors have been uncovered and corrected, and a final series of software tests -
Validationtesting - may begin.
User Acceptance: Testing User acceptance of a system is the key factor for the success of any system.
The system under consideration is tested for user acceptance by constantly keeping in touch with
prospective system users at time of development and making changes wherever required. This is done in
regard to the following points:
• Input Screen Design
• Online Messages to guide the user
• Format of reports and other outputs
After performing all the above tests, the system was found to be running successfully according
to the user requirements i.e., (constraints).
System Testing: Software is only one element of a larger computer-based system. Ultimately,
software is incorporated with other system elements and a series of system integration and
xxxiii
validation tests are conducted. The various types of system testing are:
• Recovery Testing: Many computer-based systems must recover from faults and resume
processing within apre specified time.
• Security Testing: Security testing attempts to verify that protection mechanism built into a
system will infact protect it from improper penetration.
• Stress Testing: Stress tests are designed to confront programs with abnormal situations.
• Performance Testing: Performance testing is designed to test run-time performance of
software within thecontext of an integrated system.
• Black Box Testing: Black box testing is carried out to check the functionality of the various
modules. Although they are designed to uncover errors, black-box tests are used to demonstrate
that softwarefunctions are operational; that input is properly accepted and output is correctly
produced; and that the integrity of external information is maintained. A black-box test examines
some fundamental aspect of the system with little regard for the internal logical structure of the
software.
• White Box Testing: White-box testing of software is predicated on close examination of
procedural detail providing the test cases that exercise specific sets of conditions and, loops tests
logical paths through the software. White-box testing, sometimes called glass-box testing is a test
case design method that uses the control structure of the procedural design to drive test cases.
Using white-box testing methods, following test cases can be derived.
• Guarantee that all independent paths within a module have been exercised at least once
• Exercise all logical decisions on their true and false sides.
• Execute all loops at their boundaries and within their operational bounds.
• Exercise internal data structures to assure their validity.
• The errors that can be encountered while conducting white-box testing are Logic errors
and incorrectassumptions.
• Typographical error
xxxiv
CHAPTER-7
SNAPSHOTS
1)
xxxii
2)
xxxii
3)
xxxi
4)
xxxv
1. Problem Domain
• Problem Identification
➢ With the increase in innovation in the computer’s business people are getting more curious and are keenly
waiting for any new way of interacting with the machine.
➢ Undoubtedly the future would involve people interacting with the machines in a more natural way.
➢ Microsoft developed its desktop assistant Cortana. But Cortana has some disadvantages which our
model overcomes in an efficient manner. Disadvantages such as unable to send email through voice,
unable to play random songs rom the music library etc. and many more .
xxxv
transcribe voice commands under different circumstances and with different background noises
and accents.
2. Solution Domain
• Suggested Solutions
➢ We thus bring to you our AI based voice assistant model.
➢ This model can send texts for you when you have your hands full or are simply on the go.
➢ Through this model you can quickly check facts on Google or Wikipedia.
The system is being build keeping in mind the generally available hardware and
software compatibility. Here are the minimum requirement for Voice Assistant
Hardware Requirement:
Software Requirement
➢ Windows 7 or above
➢ Python 2.7 or later
➢ IDE-Visual Studio
➢ Application Domain
4) The scope of project :-The mass adoption of artificial intelligence in users’ everyday
lives is also fueling the shift towards voice. The number of IoT devices such as smart speakers
are giving voice assistants more utility in a connected user’s life. Smart speakers are the number
one way we are seeing voice being used.
Purpose of voice assistant is to being capable of voice interaction, music playback, making to-do
lists, setting alarms, streaming podcasts, playing audiobooks, and providing weather, traffic,
sports, and other real-time information, such as news. Virtual assistant enable users to speak
natural language voice commands in order tooperate the device and its apps.
xxxv
6) Expected Outcomes/ Benefits
• Saves time
• Easy to use
• Hands free operation
• Controls various application of device
xxxv
References:
International Journal of Engineering Research and Technology. ISSN 0974-3154 Volume 10,
Number1 (2017) © International Research Publication House :
http://www.ijstr.org/final-print/dec2019/Advanced-Desktop-Assistant-With-Voice-Recognition-
Security-And-Voice-Email-Capability-Using-Aritificial-Intelligence.
xxxi
xl