Capstone Project Report For Group
Capstone Project Report For Group
Capstone Project Report For Group
Project Report
Jarvis Desktop Virtual Assistant
Submitted in partial fulfillment of the requirements
For the award of the degree
DEVELOPED BY
GUIDED BY
2023 – 2024
Certificate
This is to certify that Deepa Rani, Anupa Rani and M Sabah Farhath
Belonging to VI Semester, BCA course has satisfactorily completed the
project titled Jarvis Desktop Virtual Assistant in partial fulfillment of
Practical prescribed by the School of Science and Computer Studies for the
Course code 8CAPS4010 and Course name Capstone during the academic
year 2023 – 2024
1
21DBCAG066,13,31 Jarvis Desktop Virtual Assistant
CMR University
Declaration
The project titled Jarvis Desktop Virtual Assistant Developed by us in the partial
fulfillment of VI Semester, BCA course, is an authentic work carried out by us under the
guidance of Prof. Aurangzeb Khan School of Science and Computer Studies, CMR University,
Bangalore.
We declare that the project has not been submitted to any degree or diploma to the above said
university or any other university.
I certify that all the above statements given by the candidate is true to the best of my knowledge
and belief.
Signature: ………………………………………
Prof. Mohan Reddy Y
Project Guide
2
21DBCAG066,13,31 Jarvis Desktop Virtual Assistant
ACKNOWLEDGEMENT
We take this opportunity to express our gratitude to all those who have given
Chancellor, CMR University, Bangalore, for providing us all the facilities required
Studies, Bangalore, for her encouragement and suggestion at every step of our
project work.
Our Sincere thanks to Prof. Mohan Reddy Y, project guide, without whom
this project is unimaginable, for guiding us with keen interest and constant
Finally, yet importantly, we want to thank to all our friends and our family
this project.
3
21DBCAG066,13,31 Jarvis Desktop Virtual Assistant
CONTENTS
1. Introduction
2. Objectives
3. System analysis
3.1 Identification of the Need
3.2 Preliminary Investigation
3.3 Pert Chart
3.4 Gantt Chart
3.5 Feasibility Study
a. Technical Feasibility
b. Economical Feasibility
c. Operational Feasibility
4. SDLC(Software Development Life Cycle)
5. SRS (Software Requirement Specification)
6. Module Description
7. Design
7.1 DFD
7.2 ER Diagram
7.3 Form Design/Snap shot
8. Coding
9. Testing
10. Data validation checks
11. Implementation
12. Security measures taken
4
21DBCAG066,13,31 Jarvis Desktop Virtual Assistant
13. Cost estimation of the project
14. Maintenance
15. Limitation and future enhancement
16. Bibliography
5
21DBCAG066,13,31 Jarvis Desktop Virtual Assistant
1. Introduction
A virtual assistant, also called an AI assistant or digital assistant, is an application
program that understands natural language voice commands and completes tasks for
the user. Inorder to develop a virtual assistant with a speech interface, four key
elements are required. The first being Speech Recognition, also referred to
Automatic speech recognition or Speech-To-Text. Hence transcribing the user
speech into text. This is the input user touch point. The second is the output to the
user touch point. Being the conversion of text into speech. And preferably natural
sounding speech. This is also referred to as Text-To-Speech or Speech Synthesis.
These two elements need to have low latency, preferably less than 300 milliseconds.
It also requires to be trained. The remaining two elements are synonymous with text
based conversational agents; dialog management and Natural Language
Understanding. Rasa is the avant-garde when it comes to these two elements. The
second configuration for the Jarvis & Rasa demo application is where the Natural
Language Processing is performed by Jarvis. Currently ASR, NLU and TTS models
are available in NVIDIA Jarvis. Trained on thousands of hours of speech data. On
the roadmap of Jarvis are other cognitive elements like computer vision. The vision
component includes lip activity, gaze detection, gesture detection and more
Therefore the digital signal process such as Feature Extraction and Feature Matching
are introduced to represent the voice signal. In this project we directly use speech
engines which use Feature extraction technique as Mel scaled frequency cepstral.
The melscaled frequency cepstral coefficients (MFCCs) derived from Fourier
transform and filter bank analysis are perhaps the most widely used front- ends in
state-of-the-art speech recognition systems. Our aim is to create more and more
functionalities which can help humans to assist in their daily life and also reduce
their efforts. Jarvis Desktop Virtual Assistant represents a culmination of innovative
6
21DBCAG066,13,31 Jarvis Desktop Virtual Assistant
technology, creative design, and practical utility, aimed at providing users with a
seamless and intuitive interface to streamline their daily tasks and activities.
Designed to operate directly from the desktop environment, this virtual assistant
offers a comprehensive array of features and functionalities tailored to meet the
diverse needs of students, professionals, and individuals alike within the college
community. With its intuitive voice recognition capabilities and sophisticated
natural language processing algorithms, Jarvis Desktop Virtual Assistant enables
users to interact with their computers using simple voice commands, empowering
them to perform a wide range of tasks with unprecedented ease and efficiency.
Whether it's setting reminders, checking the weather forecast, managing calendars,
or accessing relevant information online, Jarvis Desktop Virtual Assistant serves as
a versatile and reliable companion for navigating the complexities of modern-day
life. Moreover, Jarvis Desktop Virtual Assistant is not just a standalone application
but a platform for continuous innovation and expansion. With its open architecture
and modular design, developers and students can easily extend its capabilities by
integrating additional features, plugins, and third-party services, thereby
customizing the assistant to suit their specific needs and preferences. In essence,
Jarvis Desktop Virtual Assistant represents more than just a software project; it
embodies the spirit of collaboration, innovation, and empowerment within the
college community. By harnessing the power of artificial intelligence and leveraging
cutting-edge technologies, we aspire to redefine the way users interact with their
computers, revolutionizing productivity and enhancing the overall user experience.
Join us on this exciting journey as we unveil Jarvis Desktop Virtual Assistant – your
trusted companion in the digital age, designed by students, for students. Together,
let's embark on a new era of productivity and empowerment, powered by the
boundless potential of technology and human ingenuity.
7
21DBCAG066,13,31 Jarvis Desktop Virtual Assistant
User-Centric Design: At the heart of Jarvis Desktop Virtual Assistant lies a
commitment to user-centric design principles. Throughout the development
process, our team prioritized user feedback and usability testing to ensure that the
assistant's interface is intuitive, accessible, and responsive. By adopting a user-
centered approach, we aimed to create an experience that resonates with users of
all backgrounds and skill levels, empowering them to harness the full capabilities
of the virtual assistant with confidence and ease.
8
21DBCAG066,13,31 Jarvis Desktop Virtual Assistant
Challenges
When a VA is not able to answer questions accurately, it’s because it lacks the
proper context or doesn’t understand the intent of the question.
• Allow the consumer to use natural language; this includes slang, typos or
misspelling, synonyms, unstructured content, or complex grammar
9
21DBCAG066,13,31 Jarvis Desktop Virtual Assistant
Advantages/benefits
• It can easily work with multiple commands. Usually, the AI systems are limited
to a certain number of commands and fail to function properly beyond that.
• JARVIS can be programmed with custom command option. Hence, it does not
• It is an extremely helpful and useful system for disabled people. With the help of
JARVIS, disabled people can manage their everyday life on their own without
10
21DBCAG066,13,31 Jarvis Desktop Virtual Assistant
2. Objectives
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, retrieving images, live weather
conditions, word meanings, searching for medicine details, health
recommendations based on symptoms 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. Currently, the project aims to
provide the Linux Users with a Virtual Assistant that would not only aid in their
daily routine tasks like searching the web, extracting weather data, vocabulary help
and many others but also help in automation of various activities. In the long run,
we aim to develop a complete server assistant, by automating the entire server
management process - deployment, backups, auto-scaling, logging, monitoring and
make it smart enough to act as a replacement for a 6 general server administrator.
o Allow the A.I. to speak a given piece of text.
o Make a function to open websites which asked to be opened
o Make a function which opens the latest uploaded video on Youtube with the title
said by the user
o Make a function to search for the query on Google for something that the A.I.
doesn’t understand. o Feed some questions and answers to make A.I. talk like a
human being.
Jarvis Desktop Virtual Assistant aims to revolutionize user productivity and
efficiency by providing a seamless and intuitive interface for task management and
information retrieval. Our primary objective is to simplify user interaction with the
virtual assistant, leveraging advanced technologies such as natural language
11
21DBCAG066,13,31 Jarvis Desktop Virtual Assistant
processing and voice recognition to streamline user input and command execution.
Additionally, we are committed to promoting accessibility by implementing
features that cater to individuals with disabilities or special needs, ensuring that
everyone can benefit from the assistant's capabilities.
13
21DBCAG066,13,31 Jarvis Desktop Virtual Assistant
Lastly, the need for a desktop virtual assistant like Jarvis is underscored by the
desire to augment human capabilities and enhance productivity in an increasingly
digital-centric world. As users juggle multiple responsibilities and seek ways to
optimize their time and resources, a versatile and reliable virtual assistant can serve
as a valuable ally in managing workflows, staying organized, and staying focused
amidst distractions. By empowering users to offload mundane tasks and focus on
high-value activities, Jarvis contributes to a more efficient and fulfilling computing
experience, ultimately aligning with the overarching goal of leveraging technology
to enhance human potential and well-being. Identifying the need for developing a
desktop virtual assistant like Jarvis hinges on a thorough examination of the
contemporary digital landscape and the challenges users encounter in their daily
computing tasks. Firstly, in an era characterized by increasing digital complexity
and information overload, users often find themselves overwhelmed by the
multitude of tasks they need to manage on their desktops. From organizing
schedules to handling communication and accessing information, there is a
growing demand for tools that can streamline these processes and alleviate
cognitive load. Consequently, there arises a clear need for a desktop virtual
assistant that can intelligently assist users in navigating their digital workflows,
enhancing efficiency, and reducing friction in their interactions with technology.
14
21DBCAG066,13,31 Jarvis Desktop Virtual Assistant
3.2 Preliminary Investigation
Conducting a preliminary investigation of the need for developing a desktop virtual
assistant like Jarvis involves gathering essential information to understand the
rationale and potential impact of such a project. Initially, it necessitates a
comprehensive examination of the current digital landscape, including the
prevalence of desktop computing, emerging technological trends, and user
behaviors. This investigation aims to identify gaps or inefficiencies in existing
solutions that a virtual assistant could address effectively.
Additionally, the investigation delves into the potential benefits and risks
associated with developing a desktop virtual assistant like Jarvis. This includes
evaluating the potential impact on user productivity, the competitive landscape,
and the broader implications for the organization or industry. By conducting a
thorough risk assessment, developers can identify potential obstacles and devise
mitigation strategies to ensure the successful implementation of the virtual
assistant project.
16
21DBCAG066,13,31 Jarvis Desktop Virtual Assistant
3.3 Pert Chart
17
21DBCAG066,13,31 Jarvis Desktop Virtual Assistant
3.4 Gantt Chart
1) Research and Planning (Week 1-2)
• Define project objectives and requirements
• Research existing virtual assistants and technologies
• Create project proposal and timeline
2) Development (Week 3-8)
• Design user interface
• Implement core functionality (basic commands, voice recognition)
• Test functionality and troubleshoot bugs
3) Refinement (Week 9-10)
• Gather feedback from peers or potential users
• Make necessary improvements based on feedback
• Optimize performance and usability
4) Documentation and Presentation (Week 11-12)
• Write project report documenting development process and outcomes
• Prepare presentation materials (slides, demo)
• Practice presentation delivery
5) Final Presentation and Submission (Week 13)
• Present project to class or faculty
• Submit final project report and any supplementary materials
18
21DBCAG066,13,31 Jarvis Desktop Virtual Assistant
Weeks / activity
1 2 3 4 5 6 7 8
Choose topic
Design website
Assign task
Complete project
setup
Create modules
and submodules
Connect to
database
Program modules
and submodules
Integrate with
modules and
submodules
Testing code
Testing website
User test
19
21DBCAG066,13,31 Jarvis Desktop Virtual Assistant
4. Feasibility Study
20
21DBCAG066,13,31 Jarvis Desktop Virtual Assistant
Data Storage and Management: Evaluate the requirements for storing and
managing data within the virtual assistant, including user preferences,
command history, and cached information. Determine if existing database
technologies or file storage solutions can fulfill these requirements
efficiently.
Security Measures: Consider the security implications of developing and
deploying a desktop virtual assistant, including data privacy, authentication
mechanisms, and protection against potential security threats. Implement
appropriate security measures to safeguard user data and ensure the integrity
of the system.
Maintenance and Upkeep: Assess the long-term maintenance and upkeep
requirements of the virtual assistant, including software updates, bug fixes,
and user support. Determine if the team has the necessary resources and
capabilities to maintain the assistant over time, or if additional support
mechanisms need to be established.
Scalability and Extensibility: Evaluate the scalability and extensibility of
the virtual assistant architecture to accommodate future growth and
expansion. Consider factors such as support for modular design, plugin
architecture, and compatibility with emerging technologies to ensure the
assistant's adaptability to evolving user needs and technological
advancements.
21
21DBCAG066,13,31 Jarvis Desktop Virtual Assistant
4.2 Economical Feasibility
Budget Constraints: Consider the budget limitations typically associated
with college projects and identify cost-effective solutions for software
development, such as utilizing free development tools and resources.
Resource Allocation: Assess the availability of financial resources and time
commitments from team members for the duration of the project.
Cost of External Resources: Determine if there are any expenses
associated with accessing external resources or services required for the
project, such as cloud computing resources for hosting or testing.
Potential for Future Development: Consider the long-term economical
feasibility of the project beyond the scope of the college project, including
potential for further development and sustainability post-graduation.
Cost-Benefit Analysis: Conduct a cost-benefit analysis to evaluate the
anticipated benefits of developing the virtual assistant against the associated
costs. Consider factors such as improved productivity, enhanced user
experience, and potential long-term savings compared to alternative
solutions.
Return on Investment (ROI): Estimate the potential return on investment
from developing Jarvis Desktop Virtual Assistant, taking into account
factors such as increased efficiency, reduced operational costs, and potential
revenue streams from future commercialization or monetization
opportunities.
Alternative Solutions: Explore alternative solutions or off-the-shelf
products that may fulfill similar requirements to Jarvis Desktop Virtual
Assistant at a lower cost or with fewer resource requirements. Compare the
pros and cons of developing a custom solution versus adopting existing
solutions to determine the most economical approach.
22
21DBCAG066,13,31 Jarvis Desktop Virtual Assistant
Funding Opportunities: Investigate potential funding opportunities or
grants available for student-led projects within the college or from external
sources. Seek out financial support or sponsorship from industry partners,
alumni networks, or research institutions to supplement the project budget
and reduce financial constraints.
Cost Mitigation Strategies: Identify strategies for mitigating costs and
optimizing resource utilization throughout the project lifecycle. This may
include leveraging open-source software, implementing agile development
methodologies to minimize rework, and prioritizing features based on their
cost-effectiveness and impact.
Cost Contingency Planning: Anticipate potential cost overruns or
unforeseen expenses during the development process and establish
contingency plans to manage these risks. Allocate a portion of the budget for
unexpected expenses, such as hardware failures, software licensing fees, or
additional development resources.
Revenue Generation Models: Explore potential revenue generation models
for Jarvis Desktop Virtual Assistant, such as offering premium features or
subscription-based services to users post-graduation. Evaluate the feasibility
and profitability of these models in relation to the project's development and
maintenance costs.
Sustainability Considerations: Consider the long-term sustainability of the
project from an economical perspective, including factors such as ongoing
maintenance costs, scalability requirements, and market demand. Develop a
roadmap for sustaining the project beyond the college project timeline,
including plans for generating revenue or securing ongoing funding.
23
21DBCAG066,13,31 Jarvis Desktop Virtual Assistant
4.3 Operational Feasibility
Training and Support: Determine the level of training and support required
for users to effectively utilize the virtual assistant, considering the technical
proficiency of the college audience.
Integration with College Systems: Evaluate the feasibility of integrating the
virtual assistant with existing college systems or platforms to enhance its
functionality and utility for students and faculty.
Scalability and Maintenance: Consider the operational requirements for
scaling the virtual assistant to accommodate a growing user base within the
college and maintaining its functionality and performance over time.
User Acceptance Testing (UAT): Conduct user acceptance testing to gauge
the readiness and acceptance of Jarvis Desktop Virtual Assistant among the
college community. Solicit feedback from potential users to identify usability
issues, feature requests, and areas for improvement before full deployment.
Change Management: Develop a change management strategy to facilitate the
adoption of Jarvis Desktop Virtual Assistant within the college environment.
Provide training sessions, user guides, and onboarding materials to familiarize
users with the assistant's features and functionalities and address any resistance
to change.
Regulatory Compliance: Ensure compliance with relevant regulations,
policies, and standards governing the use of technology within the college
environment. Assess the impact of data privacy regulations, accessibility
requirements, and institutional policies on the development and deployment of
Jarvis Desktop Virtual Assistant.
Performance Monitoring and Evaluation: Implement mechanisms for
monitoring and evaluating the performance of Jarvis Desktop Virtual Assistant
in real-world usage scenarios. Track key performance indicators (KPIs) such as
24
21DBCAG066,13,31 Jarvis Desktop Virtual Assistant
user engagement, response times, and error rates to identify areas for
optimization and improvement.
User Feedback Mechanisms: Establish channels for collecting and analyzing
user feedback on an ongoing basis. Encourage users to provide feedback,
suggestions, and bug reports to inform iterative improvements and updates to
the virtual assistant.
Collaboration with Stakeholders: Foster collaboration with relevant
stakeholders within the college community, including students, faculty,
administrators, and IT staff. Engage stakeholders in the development process,
gather input on requirements and priorities, and align the virtual assistant's
capabilities with the needs of its users.
Disaster Recovery and Contingency Planning: Develop contingency plans
and disaster recovery procedures to mitigate the impact of potential disruptions
or system failures on the operation of Jarvis Desktop Virtual Assistant.
Implement backup and recovery measures to ensure continuity of service in the
event of unforeseen incidents.
Long-term Sustainability: Evaluate the long-term sustainability of Jarvis
Desktop Virtual Assistant in terms of funding, staffing, and institutional
support. Develop strategies for securing ongoing resources and commitment
from college stakeholders to sustain the operation and development of the
virtual assistant beyond the initial project phase.
25
21DBCAG066,13,31 Jarvis Desktop Virtual Assistant
5. SDLC(Software Development Life Cycle)
Scope:
Validation:
26
21DBCAG066,13,31 Jarvis Desktop Virtual Assistant
6. SRS (Software Requirement Specification)
Hardware Requirements:
Computer with a 1.1 GHz or faster processor: This specifies the minimum
processing power required for running the virtual assistant. A processor speed of
1.1 GHz or faster ensures that the assistant can execute tasks efficiently without
significant lag or delay.
Minimum 8GB of RAM or more: RAM (Random Access Memory) is essential
for running programs and applications smoothly. With a minimum of 8GB of
RAM, Jarvis Desktop Virtual Assistant can handle multiple tasks simultaneously
without experiencing performance issues due to memory constraints.
2.5 GB of available hard-disk space: Hard-disk space is necessary for storing the
virtual assistant application files, user data, and any additional resources required
for its operation. With at least 2.5 GB of available hard-disk space, users can install
the assistant and store relevant data without running out of storage capacity.
5400 RPM hard drive: The rotational speed of a hard drive, measured in
revolutions per minute (RPM), impacts its data transfer rate and overall
performance. A 5400 RPM hard drive ensures sufficient data throughput for
loading and accessing files efficiently while using the virtual assistant.
1366 × 768 or higher-resolution display: The display resolution determines the
clarity and visual quality of the content displayed on the screen. A resolution of
1366 × 768 or higher ensures that users can view the virtual assistant's interface
and content with optimal clarity and readability.
27
21DBCAG066,13,31 Jarvis Desktop Virtual Assistant
Software Requirements:
Operating System: Windows 10: Windows 10 is specified as the required
operating system for running Jarvis Desktop Virtual Assistant. This ensures
compatibility with the latest Windows platform and access to its features and
functionalities.
Google Chrome: Google Chrome is listed as a required software component,
possibly indicating that the virtual assistant may interact with web-based content or
services using the Chrome browser. This dependency ensures seamless integration
with web-based resources.
Libraries: Pywhatkit, Wikipedia, OS, and many more: These libraries,
including Pywhatkit and Wikipedia, are likely utilized within the virtual assistant
for specific functionalities such as web scraping, information retrieval, and system
interaction. Integrating these libraries enhances the assistant's capabilities and
extends its functionality.
Python Version (3.10.0): Python is specified as the programming language for
developing Jarvis Desktop Virtual Assistant, and version 3.10.0 is the required
Python version. This ensures compatibility with the latest features and
improvements available in Python 3.10.0.
Workspace editor: Vs Code, Qt Designer: Visual Studio Code (Vs Code) and Qt
Designer are listed as preferred workspace editors for developing and editing the
codebase of the virtual assistant. These tools provide a user-friendly interface and
advanced features for code editing, debugging, and project management,
enhancing the development workflow.
28
21DBCAG066,13,31 Jarvis Desktop Virtual Assistant
7. Module Description
OS
The operating system is a fundamental software component that manages
the hardware resources and provides services to other software
applications. In the context of Jarvis Desktop Virtual Assistant, the
operating system (such as Windows 10) provides the platform on which
the assistant runs and facilitates interaction with hardware components
and peripherals.
The operating system serves as the foundational software layer that
manages hardware resources, facilitates communication between software
and hardware components, and provides a platform for running
applications. In the context of Jarvis Desktop Virtual Assistant, the
specified operating system (e.g., Windows 10) ensures compatibility with
the target environment and provides essential services such as file
management, memory allocation, and process scheduling.
An operating system (OS) is the program that, after being initially loaded into the
computer by a boot program, manages all of the other application programs in a
computer. The application programs make use of the operating system by making
requests for services through a defined application program interface (API). In
addition, users can interact directly with the operating system through a user
interface, such as a command-line interface (CLI) or a graphical UI (GUI).
29
21DBCAG066,13,31 Jarvis Desktop Virtual Assistant
Python
Python is the programming language chosen for developing Jarvis Desktop Virtual
Assistant. It is known for its simplicity, readability, and versatility. Python
supports multiple programming paradigms and comes with a comprehensive
standard library, making it well-suited for a wide range of applications. In the
context of the virtual assistant, Python is used for implementing various
functionalities, including natural language processing, task automation, and
interaction with external services.
Python is a high-level programming language renowned for its simplicity,
readability, and versatility. It offers a rich standard library and extensive support
for third-party modules, making it well-suited for rapid development and
prototyping. In the context of Jarvis Desktop Virtual Assistant, Python serves as
the primary programming language for implementing core functionalities such as
natural language processing, data manipulation, and interaction with external APIs.
Python is a high-level, general-purpose programming language Its design
philosophy emphasizes code readability with the use of significant indentation.
Python is dynamically-typed and garbage-collected. It supports multiple
programming paradigms, including structured (particularly procedural), object-
oriented and functional programming. It is often described as a "batteries included"
language due to its comprehensive standard library Guido van Rossum began
working on Python in the late 1980s as a successor to the ABC programming
language and first released it in 1991 as Python 0.9.0.[36] Python 2.0 was
released in 2000 and introduced new features such as list comprehensions, cycle
detecting garbage collection, reference counting, and Unicode support. Python 3.0,
released in 2008, was a major revision that is not completely backward-compatible
with earlier versions. Python 2 was discontinued with version 2.7.18 in 2020.
30
21DBCAG066,13,31 Jarvis Desktop Virtual Assistant
Speech Recognition
The SpeechRecognition module is utilized for enabling speech recognition
capabilities within Jarvis Desktop Virtual Assistant. This module allows the
assistant to transcribe spoken words into text, enabling users to interact with the
assistant through voice commands. Speech recognition is a crucial feature for
enhancing accessibility and user experience, especially for users with mobility
impairments or those who prefer hands-free interaction.
The SpeechRecognition module allows the virtual assistant to transcribe spoken
words into text, enabling users to interact with the assistant through voice
commands. This module utilizes speech recognition algorithms and machine
learning techniques to convert audio input into text data, which can then be
processed and interpreted by the assistant. Speech recognition enhances
accessibility and user experience, enabling hands-free interaction and opening up
new avenues for user engagement.
Speech Recognition is an important feature in several applications used such as
home automation, artificial intelligence, etc. This article aims to provide an
introduction on how to make use of the SpeechRecognition library of Python Date
Time The datetime module supplies classes for manipulating dates and times in
both simple and complex ways. While date and time arithmetic is supported, the
focus of the implementation is on efficient attribute extraction for output
formatting and manipulation. For related functionality, see also the time and
calendar modules.
This technology finds wide-ranging applications across various domains, including
virtual assistants, accessibility solutions, transcription services, and voice-
controlled interfaces. Despite its transformative potential, speech recognition faces
challenges such as achieving high accuracy in diverse environments and resolving
ambiguity in spoken language.
31
21DBCAG066,13,31 Jarvis Desktop Virtual Assistant
Wikipedia
The Wikipedia module facilitates access to data from Wikipedia within the virtual
assistant. It enables the assistant to retrieve information, summaries, links, and
images from Wikipedia articles, enhancing its ability to provide relevant and
accurate responses to user queries. Integration with Wikipedia expands the
knowledge base of the virtual assistant and enriches its capabilities as an
information retrieval tool.
Wikipedia is a Python library that makes it easy to access and parse data from
Wikipedia. Search Wikipedia, get article summaries, get data like links and images
from a page, and more. Wikipedia wraps the Media Wiki API so you can focus on
using Wikipedia data, not getting it.
The Wikipedia module allows the virtual assistant to access and parse data from
Wikipedia articles. It provides an interface to the MediaWiki API, enabling the
assistant to retrieve article summaries, extract links and images, and perform
searches within the Wikipedia database. Integration with Wikipedia enhances the
assistant's knowledge base and information retrieval capabilities, enabling it to
provide accurate and comprehensive responses to user queries on a wide range of
topics.
By integrating with Wikipedia, Jarvis gains the capability to provide users with
accurate and relevant information on a wide range of topics, enhancing its utility as
an intelligent information retrieval tool. Whether users seek to explore historical
events, scientific concepts, notable figures, or current affairs, the Wikipedia
module empowers Jarvis to deliver rich and insightful content directly within its
interface. Furthermore, the module's versatility extends beyond mere information
retrieval, allowing users to delve deeper into topics of interest, follow related links,
and explore multimedia content such as images and videos.
32
21DBCAG066,13,31 Jarvis Desktop Virtual Assistant
Webbrowser
The Webbrowser module provides a high-level interface for displaying web-based
documents within the virtual assistant. It allows users to access online resources,
websites, and web applications directly from the assistant's interface. Integration
with the Webbrowser module enhances the assistant's functionality by enabling
seamless access to online content and services.
The webbrowser module provides a high-level interface to allow displaying Web-
based documents to users. Under most circumstances, simply calling the open()
function from this module will do the right thing.
The Webbrowser module provides a high-level interface for opening and
displaying web-based documents within the user's default web browser. It allows
the virtual assistant to launch web pages, web applications, and online resources
directly from its interface, facilitating seamless access to online content.
Integration with the Webbrowser module enhances the assistant's functionality by
enabling users to browse the web and access external services without leaving the
assistant's environment.
The Webbrowser module plays a pivotal role within the Jarvis Desktop Virtual
Assistant by facilitating seamless access to online resources and web-based
content. With this module, Jarvis can effortlessly launch web pages, web
applications, and online services directly from its interface, providing users with
convenient access to a wealth of information and functionality available on the
internet. By leveraging the high-level interface provided by the Webbrowser
module, Jarvis eliminates the need for users to switch between multiple
applications or manually navigate web browsers, streamlining the process of
accessing online content. Whether users need to look up information, access online
tools, or interact with web-based services, Jarvis empowers them to do so
effortlessly within its unified environment.
33
21DBCAG066,13,31 Jarvis Desktop Virtual Assistant
Pywhatkit
PyWhatKit is a Python library that offers various functionalities, including
scheduling and sending WhatsApp messages, playing YouTube videos, performing
Google searches, and converting text into handwritten text images. Integration with
PyWhatKit expands the capabilities of Jarvis Desktop Virtual Assistant, enabling it
to perform a wide range of tasks beyond basic information retrieval and
manipulation.
PyWhatKit is a Python Library for scheduling and sending WhatsApp messages
with various other functions like playing a video on YouTube, Converting an
image to ASCII art, Converting a string to an image with Hand Written Characters
etc. Python offers numerous inbuilt libraries to ease our work. Among them
pywhatkit is a Python library for sending WhatsApp messages at a certain time, it
has several other features too.
Following are some features of pywhatkit module:
1. Send WhatsApp messages.
2. Play a YouTube video.
3. Perform a Google Search.
4. Get information on a particular topic.
The pywhatkit module can also be used for converting text into handwritten text
images.
PyWhatKit is a Python library that offers various utilities and functionalities for
interacting with external services and performing common tasks. It includes
features such as sending WhatsApp messages, playing YouTube videos,
performing Google searches, and converting text into handwritten text images.
Integration with PyWhatKit expands the capabilities of Jarvis Desktop Virtual
Assistant, enabling it to perform diverse tasks and interact with popular online
platforms and services seamlessly.
34
21DBCAG066,13,31 Jarvis Desktop Virtual Assistant
DateTime
The DateTime module provides functionality for manipulating dates and times
within Python. It allows the virtual assistant to handle temporal information, such
as scheduling reminders, managing calendar events, and displaying timestamps.
DateTime operations are essential for time-sensitive tasks and for providing
context-aware responses to user queries.
The DateTime module provides classes and functions for manipulating dates,
times, and time intervals within Python. It offers capabilities for date arithmetic,
formatting, parsing, and time zone management, enabling the virtual assistant to
handle temporal information effectively. In the context of Jarvis Desktop Virtual
Assistant, the DateTime module facilitates tasks such as scheduling reminders,
managing calendar events, and providing context-aware responses based on current
date and time.
The DateTime module serves as a critical component within the Jarvis Desktop
Virtual Assistant, enabling the assistant to effectively manage temporal
information and perform various time-related tasks. With the DateTime module,
Jarvis gains the capability to manipulate dates, times, and time intervals in a
flexible and efficient manner, empowering it to handle scheduling, reminders, and
calendar events seamlessly. By leveraging the functionality provided by the
DateTime module, Jarvis can generate timestamps, format dates and times
according to user preferences, and calculate time differences with precision and
accuracy. This capability enables the assistant to provide context-aware responses,
schedule tasks, and synchronize activities based on current date and time
parameters. Whether users need to set reminders, schedule appointments, or track
time-sensitive events, Jarvis leverages the DateTime module to ensure timely and
accurate management of temporal data.
35
21DBCAG066,13,31 Jarvis Desktop Virtual Assistant
Virtual Studio Code
Visual Studio Code is a popular source-code editor developed by Microsoft. It
provides a feature-rich environment for writing, editing, and debugging code, with
support for various programming languages and extensions. Integration with VS
Code enhances the development workflow of the virtual assistant, providing
developers with powerful tools for code editing, debugging, and project
management.
Most commonly referred to as VS Code, is a source-code editor made by Microsoft
with the Electron Framework, for Windows, Linux and macOS. Features include
support for debugging, syntax highlighting, intelligent code completion, snippets,
code refactoring, and embedded Git. Users can change the theme, keyboard
shortcuts, preferences, and install extensions that add additional functionality.
In the Stack Overflow 2021 Developer Survey, Visual Studio Code was ranked the
most popular developer environment tool among 82,000 respondents, with 70%
reporting that they use it.
With VS Code as an integral part of the Jarvis Desktop Virtual Assistant,
developers gain access to a rich set of tools and resources for writing, editing, and
managing code efficiently. Its support for various programming languages, syntax
highlighting, and intelligent code completion features streamline the coding
process, enhancing productivity and reducing development time. Furthermore, VS
Code's built-in debugging tools enable developers to identify and troubleshoot
errors effectively, ensuring the reliability and stability of the assistant's codebase.
Beyond its core editing and debugging functionalities, VS Code offers extensive
customization options, allowing developers to tailor the editor to their specific
preferences and workflow requirements.
36
21DBCAG066,13,31 Jarvis Desktop Virtual Assistant
DFD
A. DFD Level 0
B. DFD Level 1
37
21DBCAG066,13,31 Jarvis Desktop Virtual Assistant
C. DFD Level 2
38
21DBCAG066,13,31 Jarvis Desktop Virtual Assistant
ER Diagram
39
21DBCAG066,13,31 Jarvis Desktop Virtual Assistant
Form Design/Snap shot
The digital signal processes such as Feature Extraction and Feature Matching are
introduced to represent the voice signal. In this project we directly use speech
engine which use Feature extraction technique as Mel scaled frequency cepstral.
The melscaled frequency cepstral coefficients (MFCCs) derived from Fourier
transform and filter bank analysis are perhaps the most widely used front- ends in
state-of-the-art speech recognition systems.
40
21DBCAG066,13,31 Jarvis Desktop Virtual Assistant
41
21DBCAG066,13,31 Jarvis Desktop Virtual Assistant
42
21DBCAG066,13,31 Jarvis Desktop Virtual Assistant
43
21DBCAG066,13,31 Jarvis Desktop Virtual Assistant
Coding
FRONT END:
# -- coding: utf-8 --
# Form implementation generated from reading ui file 'Frontend.ui'
#
# Created by: PyQt5 UI code generator 5.15.9
#
# WARNING: Any manual changes made to this file will be lost when pyuic5 is
# run again. Do not edit this file unless you know what you are doing.
class Ui_Assistant(object):
def setupUi(self, Assistant):
Assistant.setObjectName("Assistant")
Assistant.setEnabled(True)
Assistant.resize(1021, 620)
self.centralwidget = QtWidgets.QWidget(Assistant)
self.centralwidget.setObjectName("centralwidget")
self.label = QtWidgets.QLabel(self.centralwidget)
self.label.setGeometry(QtCore.QRect(0, 0, 1021, 611))#0, 0, 1021, 611
44
21DBCAG066,13,31 Jarvis Desktop Virtual Assistant
self.label.setText("")
self.label.setPixmap(QtGui.QPixmap("C:\\Users\\sabah\\OneDrive\\Dokumen\\Des
ktop\\Capstone\\GIF\\7LP8.gif"))
self.label.setScaledContents(True)
self.label.setObjectName("label")
self.pushButton = QtWidgets.QPushButton(self.centralwidget)
self.pushButton.setGeometry(QtCore.QRect(730, 420, 100, 40)) #730, 420,
71, 21
font = QtGui.QFont()
font.setPointSize(12)
font.setBold(True)
font.setWeight(75)
self.pushButton.setFont(font)
self.pushButton.setStyleSheet("background-color: rgb(255, 237, 34);")
self.pushButton.setObjectName("pushButton")
self.pushButton_2 = QtWidgets.QPushButton(self.centralwidget)
self.pushButton_2.setGeometry(QtCore.QRect(820, 420, 100, 40)) #820, 420,
71, 21
font = QtGui.QFont()
font.setPointSize(12)
font.setBold(True)
font.setWeight(75)
self.pushButton_2.setFont(font)
self.pushButton_2.setStyleSheet("background-color: rgb(255, 0, 0);")
self.pushButton_2.setObjectName("pushButton_2")
self.textBrowser = QtWidgets.QTextBrowser(self.centralwidget)
45
21DBCAG066,13,31 Jarvis Desktop Virtual Assistant
self.textBrowser.setGeometry(QtCore.QRect(600, 20, 181, 41))
self.textBrowser.setStyleSheet("background:transparent;\n" "border
radius:none;\n"
"color:white;\n"
"font-size:20px;")
self.textBrowser.setObjectName("textBrowser")
self.label_2 = QtWidgets.QLabel(self.centralwidget)
self.label_2.setGeometry(QtCore.QRect(0,0, 390, 170))#0, 0, 281, 111
self.label_2.setText("")
self.label_2.setPixmap(QtGui.QPixmap("C:\\Users\\sabah\\OneDrive\\Dokumen\\
Desktop\\Capstone\\GIF\\T8bahf.gif"))
self.label_2.setScaledContents(True)
self.label_2.setObjectName("label_2")
self.textBrowser_2 = QtWidgets.QTextBrowser(self.centralwidget)
self.textBrowser_2.setGeometry(QtCore.QRect(780, 20, 181, 41))
self.textBrowser_2.setStyleSheet("background:transparent;\n" "border
radius:none;\n"
"color:white;\n"
"font-size:20px;")
self.textBrowser_2.setObjectName("textBrowser_2")
Assistant.setCentralWidget(self.centralwidget)
self.menubar = QtWidgets.QMenuBar(Assistant)
self.menubar.setGeometry(QtCore.QRect(0, 0, 1021, 18))
self.menubar.setObjectName("menubar")
Assistant.setMenuBar(self.menubar)
self.statusbar = QtWidgets.QStatusBar(Assistant)
46
21DBCAG066,13,31 Jarvis Desktop Virtual Assistant
self.statusbar.setObjectName("statusbar")
Assistant.setStatusBar(self.statusbar)
self.retranslateUi(Assistant)
QtCore.QMetaObject.connectSlotsByName(Assistant)
if _name_ == "_main_":
import sys
app = QtWidgets.QApplication(sys.argv)
Assistant = QtWidgets.QMainWindow()
ui = Ui_Assistant()
ui.setupUi(Assistant)
Assistant.show()
sys.exit(app.exec_())
47
21DBCAG066,13,31 Jarvis Desktop Virtual Assistant
BACKEND:
import pyttsx3 #pip install pyttsx3
import speech_recognition as sr #pip install speechRecognition
import datetime
import wikipedia #pip install wikipedia
import webbrowser
import os
import smtplib
import pyaudio
import cv2
import pywhatkit as kit
import sys
import sqlite3
import mysql.connector
from PyQt5 import QtWidgets, QtCore, QtGui
from PyQt5.QtCore import QTimer, QTime, QDate, Qt
from PyQt5.QtGui import QMovie
from PyQt5.QtCore import *
from PyQt5.QtGui import *
from PyQt5.QtWidgets import *
from PyQt5.uic import loadUiType
from frontend import Ui_Assistant
#Database Connection
48
21DBCAG066,13,31 Jarvis Desktop Virtual Assistant
con=sqlite3.connect("jarvis.db")
cursor = con.cursor()
engine = pyttsx3.init('sapi5')
voices = engine. getProperty('voices')
# print(voices[1].id)
engine.setProperty('voice', voices[1].id)
def speak(audio):
engine.say(audio)
print(audio)
engine.runAndWait()
def wishMe():
hour = int(datetime.datetime.now().hour)
if hour>=0 and hour<12:
speak("Good Morning!")
else:
speak("Good Evening!")
49
21DBCAG066,13,31 Jarvis Desktop Virtual Assistant
speak("I am your Personal Assistant made by Sabah, Anupa & Deepa. Please
tell me how may I help you?")
class MainThread(QThread):
def _init_(self):
super(MainThread,self)._init_()
def run(self):
self.TaskExecuion()
def takeCommand(self):
#It takes microphone input from the user and returns string output
r = sr.Recognizer()
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")
50
21DBCAG066,13,31 Jarvis Desktop Virtual Assistant
except Exception as e:
# print(e)
print("Say that again please...")
return "None"
return query
def TaskExecuion(self):
# if _name_ == "_main_":
wishMe
while True:
# if 1:
self.query = self.takeCommand().lower()
# opens wikipedia
if 'search' in self.query:
speak('Searching Wikipedia...')
self.query = self.query.replace("wikipedia", " ")
results = wikipedia.summary(self.query, sentences=2)
speak("According to Wikipedia")
print(results)
speak(results)
# opens youtube
elif 'open youtube' in self.query:
webbrowser.open("www.youtube.com")
51
21DBCAG066,13,31 Jarvis Desktop Virtual Assistant
# opens youtube and plays a song
# opens google
elif 'open google' in self.query:
speak("Can you tell me what should I search?")
cm = self.takeCommand().lower()
webbrowser.open(f"{cm}")
# opens stackoverflow
elif 'open stack overflow' in self.query:
webbrowser.open("www.stackoverflow.com")
# opens Instagram
elif 'open instagram' in self.query:
webbrowser.open("www.instagram.com")
# opens Facebook
elif 'open facebook' in self.query:
webbrowser.open("www.facebook.com")
# opens Snapchat
elif 'open snapchat' in self.query:
52
21DBCAG066,13,31 Jarvis Desktop Virtual Assistant
webbrowser.open("www.snapchat.com")
# opens Music
elif 'play music' in self.query:
music_dir =
"C:\\Users\\sabah\\OneDrive\\Dokumen\\Desktop\\Capstone\\Music"
songs = os.listdir(music_dir)
print(songs)
os.startfile(os.path.join(music_dir, songs[0]))
# opens VS code
elif 'open code' in self.query:
codePath =
"C:\\Users\\sabah\\AppData\\Roaming\\Microsoft\\Windows\\Start
Menu\\Programs\\Visual Studio Code\\Visual Studio Code.lnk"
os.startfile(codePath)
# opens notepad
elif 'open notepad' in self.query:
codePath="C:\\Windows\\notepad.exe"
os.startfile(codePath)
53
21DBCAG066,13,31 Jarvis Desktop Virtual Assistant
# opens command prompt
elif 'open command prompt' in self.query:
os.system("start cmd")
# opens Camera
elif 'open camera' in self.query:
cap= cv2.VideoCapture(0)
while True:
ret, img = cap.read()
cv2.imshow('webcam', img)
k= cv2.waitKey(50)
if k==27:
break
cap.release()
cv2.destroyAllWindows()
# Shutdown
elif 'shutdown' in self.query:
speak("It was wonderful assisting you , Thank you ")
54
21DBCAG066,13,31 Jarvis Desktop Virtual Assistant
sys.exit()
startExecution = MainThread()
class Main(QMainWindow):
def _init_(self):
super()._init_()
self.ui= Ui_Assistant()
self.ui.setupUi(self)
self.ui.pushButton.clicked.connect(self.startTask)
self.ui.pushButton_2.clicked.connect(self.close)
def startTask(self):
self.ui.movie =
QtGui.QMovie("C:\\Users\\sabah\\OneDrive\\Dokumen\\Desktop\\Capstone\\GIF\\
7LP8.gif")
self.ui.label.setMovie(self.ui.movie)
self.ui.movie.start()
self.ui.movie =
QtGui.QMovie("C:\\Users\\sabah\\OneDrive\\Dokumen\\Desktop\\Capstone\\GIF\\
T8bahf.gif")
self.ui.label_2.setMovie(self.ui.movie)
self.ui.movie.start()
timer = QTimer(self)
timer.timeout.connect(self.showTime)
55
21DBCAG066,13,31 Jarvis Desktop Virtual Assistant
timer.start(1000)
startExecution.start()
def showTime(self):
current_time= QTime.currentTime()
current_date= QDate.currentDate()
label_time= current_time.toString('hh:mm:ss')
label_date= current_date.toString(Qt.ISODate)
self.ui.textBrowser.setText(label_date)
self.ui.textBrowser_2.setText(label_time)
app = QApplication(sys.argv)
jarvis = Main()
jarvis.show()
exit(app.exec_())
56
21DBCAG066,13,31 Jarvis Desktop Virtual Assistant
Testing
Unit Testing:
Test individual components and modules of the virtual assistant in isolation to
ensure they function correctly.
Use testing frameworks like pytest or unittest in Python to automate unit tests and
streamline the testing process.
Unit testing is essential for identifying and fixing bugs at an early stage of
development. By isolating individual components and testing them in isolation,
developers can pinpoint and address issues more efficiently. Additionally, unit
tests serve as documentation for the codebase, providing clear examples of how
each component should behave. This documentation aspect becomes particularly
valuable when new developers join the project or when revisiting code after some
time. Moreover, unit testing promotes code modularity and reusability by
encouraging developers to write self-contained and testable code. This modular
approach makes it easier to maintain and extend the codebase over time, as
changes in one component are less likely to cause unintended side effects in other
parts of the system.
57
21DBCAG066,13,31 Jarvis Desktop Virtual Assistant
Integration Testing:
Test the integration of different modules and components to ensure they work
together seamlessly.
Integration testing validates the interactions between different modules and ensures
that they seamlessly integrate with each other. This type of testing is crucial for
identifying compatibility issues, data flow errors, and communication failures
between modules. By testing the integration points thoroughly, developers can
catch and rectify issues before they impact the overall functionality of the system.
Additionally, integration testing helps verify that the virtual assistant behaves as
expected when interfacing with external APIs or services. This ensures that the
assistant can fetch information, perform tasks, and communicate with external
systems reliably and efficiently. Moreover, integration testing provides confidence
in the system's interoperability, allowing developers to deploy updates with
assurance that the entire system will continue to function correctly in various
environments.
58
21DBCAG066,13,31 Jarvis Desktop Virtual Assistant
Functional Testing:
Create test cases to simulate common user interactions and commands, covering a
range of scenarios and use cases.
Verify that the assistant accurately interprets user inputs, executes commands
correctly, and provides appropriate responses.
Functional testing ensures that the virtual assistant meets the specified
requirements and delivers the intended functionality to users. By creating
comprehensive test cases that cover various user scenarios and use cases,
developers can validate that the assistant behaves as expected in real-world
situations. Functional testing also helps identify edge cases and corner cases that
may not be evident during development but could affect the user experience.
Moreover, functional testing serves as a quality assurance mechanism, ensuring
that each feature of the assistant functions correctly and consistently across
different devices and platforms.
59
21DBCAG066,13,31 Jarvis Desktop Virtual Assistant
User Experience (UX) Testing:
Evaluate the user experience of interacting with the virtual assistant to ensure it is
intuitive and user-friendly.
Solicit feedback from potential users within the college community through
usability testing sessions or surveys.
Identify any usability issues or pain points and iterate on the user interface design
to improve accessibility and usability.
UX testing focuses on evaluating the user experience of interacting with the virtual
assistant to ensure it is intuitive and user-friendly. Feedback from potential users
within the college community is solicited through usability testing sessions or
surveys. Usability issues or pain points are identified and addressed through
iterative design improvements to enhance accessibility and usability, ultimately
improving user satisfaction and engagement.
60
21DBCAG066,13,31 Jarvis Desktop Virtual Assistant
Performance Testing:
Assess the performance of the virtual assistant under various load conditions to
ensure it remains responsive and scalable.
Measure response times for executing commands, processing user inputs, and
retrieving information from external sources.
Performance testing assesses the virtual assistant's performance under various load
conditions to ensure it remains responsive and scalable. Response times for
executing commands, processing user inputs, and retrieving information from
external sources are measured to identify any bottlenecks or performance issues.
Optimization efforts are then implemented to improve overall responsiveness and
efficiency, providing users with a smooth and seamless experience.
61
21DBCAG066,13,31 Jarvis Desktop Virtual Assistant
Security Testing:
Implement encryption, access controls, and other security measures to protect user
data and ensure the confidentiality and integrity of the system.
62
21DBCAG066,13,31 Jarvis Desktop Virtual Assistant
Regression Testing:
Perform regression testing to ensure that new updates or changes do not introduce
regressions or break existing functionality.
Re-run previously executed tests to verify that existing features still work as
expected after making modifications or additions to the codebase.
63
21DBCAG066,13,31 Jarvis Desktop Virtual Assistant
Data validation checks
Input Sanitization: Validate and sanitize user inputs to prevent injection attacks
such as SQL injection or cross-site scripting (XSS). Remove or encode special
characters that could be used to exploit vulnerabilities in the system.
Command validation is essential for ensuring that user commands are syntactically
and semantically correct before execution. By verifying the syntax and semantics
of commands, the virtual assistant can detect and handle incorrect or malformed
inputs gracefully, providing informative error messages or suggestions for
correction. Moreover, robust command validation mechanisms help prevent
unintended consequences or errors resulting from invalid commands, enhancing
the overall reliability and usability of the assistant. Additionally, by implementing
64
21DBCAG066,13,31 Jarvis Desktop Virtual Assistant
parsing and validation mechanisms, developers can enhance the assistant's
flexibility and adaptability to a wide range of user inputs, ensuring a seamless and
intuitive user experience.
User authentication validation is crucial for verifying the identity of users and
ensuring that only authorized individuals can access the virtual assistant. By
validating user credentials during the authentication process, the assistant can
protect against unauthorized access and safeguard sensitive information from
potential threats. Implementing secure authentication mechanisms such as
password hashing and salting adds an extra layer of security, making it more
challenging for attackers to compromise user accounts. Furthermore, by enforcing
strong authentication practices, the virtual assistant can enhance user trust and
confidence in the security of their personal information, fostering a positive user
experience.
Data Format Validation: Validate the format and structure of data inputs received
from external sources or APIs. Ensure that data conforms to expected formats (e.g.,
JSON, XML) and perform necessary transformations or validations to handle
variations or inconsistencies.
Data format validation is essential for ensuring that data inputs conform to
expected formats and structures, preventing potential errors or inconsistencies in
data processing. By validating data formats (e.g., JSON, XML) received from
external sources or APIs, the virtual assistant can handle variations or
65
21DBCAG066,13,31 Jarvis Desktop Virtual Assistant
inconsistencies effectively, ensuring data integrity and reliability. Moreover, by
performing necessary transformations or validations, developers can normalize
data inputs to a consistent format, simplifying subsequent processing and analysis
tasks. Additionally, by implementing robust data format validation mechanisms,
the assistant can detect and reject invalid or malformed data inputs, reducing the
risk of errors and enhancing overall system robustness.
Input Length and Size Limits: Enforce limits on the length and size of user
inputs to prevent buffer overflow attacks or denial-of-service (DoS) attacks. Set
appropriate thresholds for input length and size based on system requirements and
constraints.
Enforcing input length and size limits is crucial for preventing buffer overflow
attacks and denial-of-service (DoS) attacks that could compromise system
availability and stability. By setting appropriate thresholds for input length and
size, the virtual assistant can mitigate the risk of resource exhaustion and ensure
responsive performance under varying workload conditions. Moreover, by
enforcing input length and size limits, developers can protect against potential
abuse or misuse of the system by malicious actors attempting to overwhelm the
system with excessively large or complex inputs. Additionally, by providing clear
guidelines and feedback on input length and size limits, the assistant can help users
understand and adhere to acceptable input constraints, enhancing user experience
and satisfaction.
66
21DBCAG066,13,31 Jarvis Desktop Virtual Assistant
Implementing data integrity checks such as checksums, hash functions, or digital
signatures helps verify the integrity of data transmitted or stored by the virtual
assistant. By detecting and rejecting tampered or corrupted data, the assistant can
maintain data integrity and reliability, ensuring that users can trust the accuracy
and authenticity of information provided by the system. Moreover, data integrity
checks provide an additional layer of assurance against data tampering or
unauthorized modifications, safeguarding sensitive information from malicious
manipulation or exploitation. Additionally, by implementing robust data integrity
checks, developers can enhance the overall security posture of the assistant,
mitigating the risk of data breaches and preserving user trust and confidence in the
system.
67
21DBCAG066,13,31 Jarvis Desktop Virtual Assistant
Cross-Reference Validation: Validate inputs against reference data or predefined
lists to ensure consistency and accuracy. Cross-reference user inputs with known
valid values or reference datasets to detect and reject invalid or unexpected inputs.
DESIGN
The overall design of our system consists of the following phases:
(c) The converted text is now processed to get the required results.
(d) The text contains one or two keywords that determine what query is to be
executed. If the keyword doesn’t match any of the querries in the code then the
assistant asks the user to speak again.
PROPOSED SYSTEM
(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.
69
21DBCAG066,13,31 Jarvis Desktop Virtual Assistant
(e) The system will keep listening for commands and the time for listening is
variable which can be changed according to user requirements.
(f) 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.
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.
The Date Time module is imported to support the functionality of the date and
time. For example, the user wants to know the current date and time or the 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. This is an
essential module, especially in tasks where we want to keep a track of time. This
module is very small in size and helps to control the size of our program. If the
modules are too large or heavy then the system will lag and give slow responses.
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”.
The input is processed using the web browser module and the user gets a browser
with google opened in it. The browser which will be used is the default set web
browser.
70
21DBCAG066,13,31 Jarvis Desktop Virtual Assistant
Wikipedia is a library in python which it possible for the virtual 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. The no. of lines
that the user wants to get as a result can be set manually.
The voice which is given as input is first converted to text using the speech
recognition module. The text is then processed to give the result of the query given
by the user. The final step is the conversion of the result of the processed query to
speech which is the final output. The most time consuming among the two is STT
because the system first has to listen to the user and different users have different,
some are easy to understand while some are not easily audible. This is the step
71
21DBCAG066,13,31 Jarvis Desktop Virtual Assistant
upon which our total execution time depends. Once the speech is converted to text
executing commands and giving the results back to the user is not a time-
consuming step.
In Python3 pywhatkit module will not come pre-installed, so you can install it by
using the command:
G SYS
The python sys module provides functions and variables which are used to
manipulate different parts of the Python Runtime Environment. It lets us access
system-specific parameters and functions. import sys
72
21DBCAG066,13,31 Jarvis Desktop Virtual Assistant
Security measures taken
Input validation mechanisms are crucial for preventing injection attacks, such as
SQL injection or command injection. By thoroughly validating and sanitizing user
inputs, vulnerabilities that could be exploited to execute malicious commands are
mitigated, bolstering the overall security of the system.
73
21DBCAG066,13,31 Jarvis Desktop Virtual Assistant
essential for addressing known vulnerabilities and strengthening the virtual
assistant's defenses against emerging threats.
User privacy controls, including granular privacy settings and options for data
deletion, empower users to manage their personal information effectively.
Additionally, robust logging and monitoring capabilities enable the detection of
suspicious activities, facilitating timely response to security incidents.
Lastly, user education initiatives raise awareness about security best practices and
potential risks associated with using the virtual assistant. Providing guidance on
password hygiene, recognizing phishing attempts, and practicing vigilance against
social engineering tactics empowers users to contribute to the overall security
posture of the system.
Incorporating these detailed security measures ensures that Jarvis Desktop Virtual
Assistant maintains the confidentiality, integrity, and availability of user data,
fostering trust and confidence in its usage within the college environment.
Data Encryption: Robust data encryption protocols are crucial for protecting
sensitive information stored within the Jarvis Desktop Virtual Assistant. By
employing advanced encryption algorithms such as AES, user data, including
voice recordings and personal information, can be encrypted both at rest and
during transmission. Encryption ensures that even if unauthorized parties gain
access to the data, it remains unreadable and unintelligible, safeguarding user
privacy and confidentiality. Furthermore, the implementation of strong encryption
74
21DBCAG066,13,31 Jarvis Desktop Virtual Assistant
protocols aligns with industry best practices and regulatory requirements,
demonstrating a commitment to maintaining the security and integrity of user data.
76
21DBCAG066,13,31 Jarvis Desktop Virtual Assistant
User Privacy Controls: User privacy controls, including granular privacy settings
and options for data deletion, empower users to manage their personal information
effectively and exert control over their privacy preferences. By providing users
with the ability to customize privacy settings and opt-out of data collection or
sharing practices, the virtual assistant respects user privacy preferences and
promotes transparency in data handling practices. Additionally, implementing
robust logging and monitoring capabilities enables the detection of suspicious
activities and facilitates timely response to security incidents. By enabling users to
exercise control over their privacy and monitoring user activity for security
purposes, the virtual assistant enhances user trust and confidence in the system's
privacy and security protections.
User Education Initiatives: User education initiatives play a crucial role in raising
awareness about security best practices and potential risks associated with using
the virtual assistant. By providing guidance on password hygiene, recognizing
phishing attempts, and practicing vigilance against social engineering tactics, users
are empowered to make informed decisions and protect themselves against
potential security threats. Additionally, offering security training sessions,
workshops, or informational materials educates users on the importance of security
measures and encourages adoption of secure behaviors. By fostering a culture of
security awareness and promoting user education initiatives, the virtual assistant
strengthens its overall security posture and reduces the likelihood of security
incidents resulting from user error or negligence.
77
21DBCAG066,13,31 Jarvis Desktop Virtual Assistant
Cost estimation of the project
Personnel costs primarily involve the time and effort invested by students,
typically as part of their academic curriculum or extracurricular involvement, thus
minimizing direct monetary expenses. Hardware costs might arise if specific
equipment such as high-quality microphones or additional computing resources
beyond standard laptops are necessary, although students often utilize existing
college facilities or personal devices. Software expenses are generally minimal,
given the availability of free development tools, programming languages, and
open-source libraries tailored for natural language processing and voice
recognition tasks. However, allocating funds for attending relevant workshops,
conferences, or online courses can enhance students' skill sets and project
78
21DBCAG066,13,31 Jarvis Desktop Virtual Assistant
outcomes. Testing and quality assurance expenses can be limited by leveraging
free or low-cost testing platforms, while miscellaneous costs, including
documentation printing or travel expenses for project presentations, should be
managed within a reasonable budget. Overall, while prudent resource allocation is
crucial, the nature of student-led college projects often allows for cost-effective
development strategies, ensuring a balance between project quality and financial
constraints.
Personnel Costs: Personnel costs primarily encompass the time and effort
invested by students, who typically engage in the project as part of their academic
curriculum or extracurricular activities. Since students are the primary workforce
behind the project, direct monetary expenses related to personnel costs are
minimal. However, it's essential to consider the opportunity cost associated with
students' time and the value of their contributions to the project. While students
may not receive monetary compensation, the experience gained and skills
developed throughout the project can be invaluable for their personal and
professional growth. Additionally, the project's success heavily relies on effective
collaboration and coordination among team members, highlighting the importance
of investing time and effort in team dynamics and project management.
Hardware and Software Costs: Hardware expenses for the project may include
specific components such as high-quality microphones for voice input or additional
computing resources beyond standard laptops. However, students often leverage
existing college facilities or personal devices, minimizing the need for significant
hardware investments. Similarly, software expenses are generally minimal, thanks
to the availability of free development tools, programming languages, and open-
source libraries tailored for natural language processing and voice recognition
tasks. By utilizing free or open-source software, students can reduce or eliminate
79
21DBCAG066,13,31 Jarvis Desktop Virtual Assistant
licensing fees, ensuring cost-effective development. While there may be a need for
occasional software upgrades or subscriptions to online platforms for accessing
learning resources, these expenses can typically be managed within a modest
budget. Overall, prudent resource allocation and leveraging existing resources help
minimize hardware and software costs, allowing students to focus their budget on
essential project components and enhancements.
Training and Skill Development Costs: While personnel costs may be minimal
in terms of direct monetary expenses, students may choose to invest in training
workshops, online courses, or educational materials to enhance their skills and
capabilities. These training opportunities can include courses on programming
languages, machine learning algorithms, or project management methodologies, all
of which contribute to the successful development and implementation of the
Jarvis Desktop Virtual Assistant. While these training costs may incur some
expenses, they are often considered valuable investments in the students' education
and future career prospects. Additionally, colleges may provide access to resources
such as academic subscriptions or training programs, reducing the financial burden
on individual students.
Quality Assurance and Testing Costs: Quality assurance and testing are crucial
phases in the development lifecycle of the Jarvis Desktop Virtual Assistant to
ensure its functionality, reliability, and security. While there are free or low-cost
testing tools available, students may allocate resources for testing environments,
cloud computing services for scalability testing, or hiring external testers for user
acceptance testing. These testing expenses are essential for identifying and
resolving bugs, vulnerabilities, or usability issues before the final deployment of
the virtual assistant. Investing in comprehensive testing procedures helps maintain
the quality and performance of the assistant, ultimately enhancing user satisfaction
80
21DBCAG066,13,31 Jarvis Desktop Virtual Assistant
and trust in the system. While testing costs may vary depending on the complexity
of the project and the desired level of quality assurance, allocating resources for
thorough testing is essential for delivering a robust and reliable product.
81
21DBCAG066,13,31 Jarvis Desktop Virtual Assistant
Maintenance
82
21DBCAG066,13,31 Jarvis Desktop Virtual Assistant
optimizing performance metrics enhances the assistant's responsiveness and
resource efficiency. Regularly updating project documentation with the latest
features and troubleshooting insights serves as a valuable resource for users and
developers alike. Engaging with the user community fosters a collaborative
environment, encouraging feedback and contributions for ongoing enhancement.
Looking ahead, strategic long-term planning, including roadmap development and
exploration of expansion opportunities, secures the assistant's longevity and
relevance beyond the initial project scope. Through diligent management of these
maintenance tasks, students uphold Jarvis Desktop Virtual Assistant's value as an
educational initiative while nurturing its growth and usability. Maintaining the
Jarvis Desktop Virtual Assistant, developed as a college project, is crucial to
ensuring its sustained functionality and continued appeal to users over time. One of
the primary tasks in maintenance involves addressing bug reports and
implementing regular updates to refine the assistant's performance and introduce
new features. By actively addressing reported bugs, developers can enhance the
user experience and maintain the assistant's reliability. Moreover, offering
accessible user support channels, such as email or forums, is essential for promptly
troubleshooting issues and providing guidance to users encountering difficulties.
This proactive approach to user support fosters user satisfaction and confidence in
the assistant's capabilities, ultimately contributing to its long-term success.
Furthermore, prioritizing data security is paramount in the maintenance of the
Jarvis Desktop Virtual Assistant. By implementing robust encryption protocols and
establishing regular backup procedures, developers can safeguard user privacy and
prevent potential data loss. This commitment to data security not only protects user
information but also reinforces trust in the assistant's reliability and confidentiality.
83
21DBCAG066,13,31 Jarvis Desktop Virtual Assistant
Additionally, conducting regular compatibility testing across various platforms and
configurations ensures a seamless user experience across different environments.
By continuously optimizing performance metrics, such as responsiveness and
resource efficiency, developers can enhance the assistant's overall usability and
effectiveness. In addition to technical maintenance tasks, keeping project
documentation updated with the latest features and troubleshooting tips is crucial
for assisting both users and developers. Clear and comprehensive documentation
serves as a valuable resource for users seeking guidance and support, as well as for
developers looking to understand and improve the assistant's functionality.
Moreover, actively engaging with the user community fosters a collaborative
environment where feedback and contributions are welcomed and integrated into
future updates. By involving users in the development process, developers can
ensure that the assistant meets the evolving needs and expectations of its user base.
Looking ahead, strategic long-term planning is essential for securing the Jarvis
Desktop Virtual Assistant's longevity and relevance beyond the initial project
scope. This involves developing a roadmap for future enhancements and exploring
opportunities for expansion or integration with other platforms or technologies. By
continuously evolving and adapting to changing needs and technological
advancements, the assistant can remain a valuable tool for users and a testament to
the students' dedication and innovation in their educational endeavors. Through
diligent management of these maintenance tasks, students can uphold the
assistant's value as an educational initiative while nurturing its growth and usability
for years to come. Another critical aspect of maintenance involves continuous
optimization of the assistant's performance metrics. By monitoring and analyzing
key performance indicators (KPIs) such as response times, resource utilization, and
error rates, developers can identify areas for improvement and implement
optimizations to enhance the assistant's responsiveness and efficiency. This
84
21DBCAG066,13,31 Jarvis Desktop Virtual Assistant
ongoing optimization process ensures that the assistant remains agile and adaptable
to evolving user needs and technological advancements. Moreover, conducting
regular performance assessments enables developers to proactively address any
emerging performance issues before they impact the user experience negatively.
Additionally, proactive monitoring and management of security vulnerabilities are
essential to maintaining the integrity and trustworthiness of the Jarvis Desktop
Virtual Assistant. This involves staying informed about the latest security threats
and vulnerabilities and promptly applying patches or updates to mitigate any
potential risks. Implementing proactive security measures such as intrusion
detection systems, firewalls, and security audits can help identify and address
security vulnerabilities proactively. Furthermore, conducting regular security
assessments and penetration testing helps validate the effectiveness of existing
security controls and identify any weaknesses that need to be addressed.
Furthermore, fostering a culture of continuous learning and improvement among
the development team is essential for the long-term maintenance of the assistant.
Encouraging team members to participate in professional development
opportunities, such as workshops, conferences, and online courses, helps them stay
abreast of emerging technologies and best practices in software development.
Moreover, organizing regular knowledge-sharing sessions and code reviews fosters
collaboration and peer learning, enabling the team to collectively identify and
implement innovative solutions to complex challenges. Moreover, establishing
clear communication channels and feedback mechanisms with users is essential for
gathering insights into their evolving needs and preferences. By soliciting user
feedback through surveys, user interviews, or feedback forms, developers can gain
valuable insights into user satisfaction levels, feature requests, and pain points.
This user-centric approach to maintenance ensures that the assistant remains
aligned with user expectations and continues to deliver value in addressing their
85
21DBCAG066,13,31 Jarvis Desktop Virtual Assistant
needs effectively. Additionally, fostering a transparent and open dialogue with
users builds trust and loyalty, encouraging continued engagement and adoption of
the assistant. In conclusion, maintenance of the Jarvis Desktop Virtual Assistant
extends beyond merely addressing technical issues to encompass a holistic
approach that encompasses performance optimization, proactive security
management, continuous learning, and user-centric feedback. By diligently
managing these maintenance tasks, developers can ensure that the assistant remains
reliable, secure, and relevant to its user base over time. Moreover, fostering a
culture of continuous improvement and user engagement ensures that the assistant
continues to evolve and adapt to meet the changing needs of its users effectively.
Through proactive maintenance efforts, the Jarvis Desktop Virtual Assistant can
continue to serve as a valuable tool for users and a testament to the dedication and
innovation of its developers.
86
21DBCAG066,13,31 Jarvis Desktop Virtual Assistant
Limitation and future enhancement
Jarvis Desktop Virtual Assistant, crafted for project, exhibits both limitations and
exciting prospects for future enhancement. One notable limitation lies in its current
scope, which may restrict the assistant's capabilities compared to commercial
alternatives. Due to resource constraints and the project's educational context,
certain advanced functionalities or integrations may not be feasible to implement.
Additionally, the assistant's performance and accuracy may be subject to
constraints inherent in student-led development, such as limited expertise or access
to cutting-edge technologies.
However, these limitations also present opportunities for future enhancement. With
continued development and refinement, Jarvis Desktop Virtual Assistant can
evolve to offer enhanced features and functionalities. Integration with additional
APIs and services, such as calendar management, task automation, or smart home
devices, could broaden the assistant's utility and appeal. Improvements in natural
language processing algorithms and voice recognition technology can enhance the
assistant's accuracy and responsiveness, leading to a more seamless user
experience.
87
21DBCAG066,13,31 Jarvis Desktop Virtual Assistant
Collaboration with other student projects or academic initiatives within the college
could foster innovation and expansion opportunities for Jarvis Desktop Virtual
Assistant. By leveraging interdisciplinary expertise and resources, students can
explore new avenues for enhancement and potential partnerships.
In summary, while Jarvis Desktop Virtual Assistant may have inherent limitations
as a student-led college project, its future holds promise for significant
enhancements and advancements. By addressing current constraints, leveraging
emerging technologies, and fostering collaboration, students can propel the
assistant towards a more sophisticated and impactful future iteration.
However, these limitations also pave the way for exciting prospects for future
enhancement. Through continued development and refinement, the Jarvis Desktop
Virtual Assistant can evolve to offer an array of enhanced features and
functionalities. Integrating additional APIs and services, such as calendar
management, task automation, or compatibility with smart home devices, could
significantly broaden the assistant's utility and appeal to users. Similarly,
advancements in natural language processing algorithms and voice recognition
88
21DBCAG066,13,31 Jarvis Desktop Virtual Assistant
technology hold the potential to substantially improve the assistant's accuracy and
responsiveness, thereby enhancing the overall user experience.
Furthermore, user feedback and usability testing can provide valuable insights into
areas for improvement and future enhancements. Conducting usability studies and
gathering feedback from users within the college community can help identify pain
points, usability issues, and feature requests. By actively soliciting and
incorporating user feedback into the development process, developers can
89
21DBCAG066,13,31 Jarvis Desktop Virtual Assistant
prioritize enhancements that resonate with users and align with their needs and
preferences. Additionally, conducting regular usability testing sessions allows
developers to evaluate the effectiveness of new features or changes and iterate on
the design to improve user satisfaction and adoption.
In summary, while the Jarvis Desktop Virtual Assistant may currently have
limitations inherent to its student-led development, its future is brimming with
promise for significant advancements and improvements. By addressing current
constraints, harnessing emerging technologies, and fostering collaboration,
students can propel the assistant towards a more sophisticated and impactful future
iteration that continues to meet the evolving needs of its users effectively.
90
21DBCAG066,13,31 Jarvis Desktop Virtual Assistant
Bibliography
[3] F. Biadsy, Automatic dialect and accent recognition and its appli-cation to
speech recognition. Columbia University, 2011.
[5] M. Jeffs. (2018, feb) Ok google, siri, alexa, cortana; can you tellme some stats
on voice search? [Online]. Available: https://www.branded3.com/blog/google-
voice-search- stats- growth-trends/
[6] R. Sentence. (2016, mar) The continuing rise of voice search and how you can
adapt to it. [On-line]. Available: https://searchenginewatch.com/2016/05/31/the-
continuing- riseof- voice-search- and-how-you-can-adapt- to-it/
91
21DBCAG066,13,31 Jarvis Desktop Virtual Assistant