You are on page 1of 56

A Python Based Voice Assistant

A Project Report
by Priyam Choksi and Neel Ghodke

Under esteemed guidance of


Ms. Jyoti Verma

DEPARTMENT OF INFORMATION TECHNOLOGY


KAPOL VIDYANIDHI COLLEGE OF HOTEL MANAGEMENT &
TECHNOLOGY

(Affiliated to University of Mumbai)

MUMBAI, 400067
MAHARASHTRA
2020-21
Abstract

Virtual Assistants are software programs that help you ease your day
to day tasks, such as showing weather reports, creating reminders,
making shopping lists etc. This system is designed to be used
efficiently on desktops. Personal assistant software improves user
productivity by managing routine tasks of the user and by providing
information from online sources to the user.
Acknowledgement

First of all, I am grateful to The Almighty for establishing us to complete


this Project.

We place on record, my sincere gratitude to Mrs. Deval Bhatt, HOD of


BSc-IT Department, for her constant encouragement. I am privileged to
express my sense of gratitude to my respected teacher Ms. Jyoti Verma
whose unparalleled knowledge, moral fiber and judgment along with her
know-how, was an immense support in completing the project.

We take this opportunity to record our sincere thanks to all the faculty
members of the Department of BSc-IT for their help and encouragement.

We also thank my parents for their unceasing encouragement and support.

We also take this opportunity to thank my friends and contemporaries for


their cooperation and compliance.
Table Of Contents

Chapter 1 : Introduction

1.1 Background
1.2 Objectives
1.3 Purpose, Scope and Applicability
1.3.1 Purpose
1.3.2 Scope
1.3.3 Applicability
1.4 Achievements
1.5 Organization of Reports

Chapter 2 : Survey of Technologies

Chapter 3 : Requirements and Analysis

3.1 Problem Definition


3.2 Requirements Specifications
3.3 Software & Hardware Requirements
3.3.1 Software Requirements
3.3.2 Hardware Requirements
3.4 Conceptual Models
3.4.1 Data Flow Diagram
3.4.2 Event Table
3.4.3 Use Case Diagram
3.4.4 Class Diagram
3.4.5 State chart Diagram
3.4.6 Sequence Diagram
3.4.7 Entity Relationship Diagram
Table Of Contents
Chapter 4 : System Design

4.1 Data Design


4.1.1 Deployment Diagram
4.1.2 Package Diagram
4.1.3 Activity Diagram
4.2 User Interface Design
4.3 Test Case Design

Chapter 5 Conclusion
CHAPTER 1

Introduction

In today’s era almost all tasks are digitized. We have Smartphones in our hands and it
is nothing less than having the world at your fingertips. These days we aren’t even
using fingers. We just speak of the task and it is done. There exist systems where we
can say Text Dad, “I’ll be late today.” And the text is sent. That is the task of a Virtual
Assistant. It also supports specialized tasks such as booking a flight, or finding the
cheapest book online from various ecommerce sites and then providing an interface
to book an order to help automate search, discovery and online order operations.

Virtual Assistants are software programs that help you ease your day to day tasks,
such as showing weather reports, creating reminders, making shopping lists etc. They
can take commands via text (online chat bots) or by voice. Voice based intelligent
assistants need an invoking word or wake word to activate the listener, followed by
the command. For our project the wake word is NOVA. We have so many virtual
assistants, such as Apple’s Siri, Amazon’s Alexa and Microsoft’s Cortana. For this
project, wake word was chosen Nova.

This system is designed to be used efficiently on desktops. Personal assistant


software improves user productivity by managing routine tasks of the user and by
providing information from online sources to the user. Nova is effortless to use. Call
the wake word ‘NOVA’ followed by the command. And within seconds, it gets
executed.
1.1 Background

This project is based on AI-module development and provides personal assistant using
voice recognition or text mode operation.

As it integrates most of the services for daily use, it could be useful for getting a more
convenient life and it will be helpful for those people who have disabilities for manual
operations. This is also part of the reason why it has been chosen as the degree
project.

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 general server
administrator.
1.2 Objectives

This is the updated list of features/objectives met by NOVA, as follows ..

1. User Registration with Gender and Name

2. Changing chat themes

3. Changing User Avatar

4. Google Map Direction


1.2 Objectives

5. News

6. Wikipedia Result
1.2 Objectives

7. Smart Dictionary
1.2 Objectives

8. Weather Report
1.2 Objectives

9. COVID Tracker
1.2 Objectives

10. Sending whatsapp message

11. Sending email


1.2 Objectives

12. Rock Paper Scissor

13. Tossing a Coin


1.2 Objectives

14. Rolling Dice

15. Telling Jokes


1.2 Objectives

16. Creating sample projects


1.2 Objectives

17. Translator

18. To-Do list


1.2 Objectives

19. Performing Basic Math Calculations


1.2 Objectives

20. Web scraping


1.2 Objectives

20. Web scraping


1.3 Purpose, Scope and
Applicability
1.3.1 Purpose
Purpose of a virtual assistant is to be 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 assistants enable users to speak natural language voice commands in order
to operate the device and its apps.

There is an increased overall awareness and a higher level of comfort


demonstrated specifically by millennial consumers. In this ever-evolving digital
world where speed, efficiency, and convenience are constantly being optimized, it’s
clear that we are moving towards less screen interaction.

1.3.2 Scope
Voice assistants will continue to offer more individualized experiences as they get
better at differentiating between voices. However, it’s not just developers that
need to address the complexity of developing for voice as brands also need to
understand the capabilities of each device and integration and if it makes sense for
their specific brand. They will also need to focus on maintaining a user experience
that is consistent within the coming years as complexity becomes more of a
concern. This is because the visual interface with voice assistants is missing. Users
simply cannot see or touch a voice interface.

1.3.3 Applicability
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 thermostats and
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. Many industry
experts even predict that nearly every application will integrate voice technology in
some way in the next 5 years.

The use of virtual assistants can also enhance the system of IoT (Internet of
Things). Twenty years from now, Microsoft and its competitors will be offering
personal digital assistants that will offer the services of a full-time employee usually
reserved for the rich and famous
1.4 Achievements

The introduction, problem definition of the project has been partially


completed successfully to materialize Nova by maintaining the details
in an efficient manner.

1.5 Organisation of Report

In Chapter 1, we have discussed about the overview and introduction of the


project. We have discussed about the objectives and scope of NOVA. Also we have
discussed that why we are doing this project, that is it will cover the advantages of using a
virtual assistant like NOVA and why it is the convenient way of personal assistance.

In further Chapter 2, we will discuss about the technologies which willed be using in the
project. Also a brief overview of all the technologies required in the NOVA project.
1.5 Organisation of Report

In further chapter 3, we will discuss the component and overview of requirements


and analysis. We will describe the problem definition of the project that what we are
achieving from the project. And the basic hardware requirements for the application.
We will also give the details of conceptual models such as data flow diagram, ER
diagram, use case diagrams that are in our project .The Hardware Requirement,
Software Requirements, Conceptual Models will be covered in this chapter

In further chapter 4, we will describes desired features and operations in detail,


including screen layouts, and other documentation. We will give the descriptions of
layout of screens and the modules of different phases and screens.
CHAPTER 2

Survey Of Technology
Python

Python is an OOPs (Object Oriented Programming) based, high level, interpreted


programming language. It is a robust, highly useful language focused on rapid
application development (RAD). Python helps in easy writing and execution of
codes. Python can implement the same logic with as much as 1/5th code as
compared to other OOPs languages.

Python provides a huge list of benefits to all. The usage of Python is such that it
cannot be limited to only one activity. Its growing popularity has allowed it to enter
into some of the most popular and complex processes like Artificial Intelligence (AI),
Machine Learning (ML), natural language processing, data science etc. Python has a
lot of libraries for every need of this project. For JIA, libraries used are speech
recognition to recognize voice, Pyttsx for text to speech, selenium for web
automation etc.

Python is reasonably efficient. Efficiency is usually not a problem for small


examples. If your Python code is not efficient enough, a general procedure to
improve it is to find out what is taking most the time, and implement just that part
more efficiently in some lower-level language. This will result in much less
programming and more efficient code (because you will have more time to optimize)
than writing everything in a low-level language.

DBpedia

Knowledge bases are playing an increasingly important role in enhancing the


intelligence of Web and enterprise search and in supporting information integration.
The DBpedia leverages this gigantic source of knowledge by extracting structured
information from Wikipedia and by making this information accessible on the Web.
The DBpedia knowledge base has several advantages over existing knowledge
bases: it covers many domains; it represents real community agreement; it
automatically evolves as Wikipedia changes, and it is truly multilingual.

The DBpedia knowledge base allows you to ask quite surprising queries against
Wikipedia for instance “Give me all cities in New Jersey with more than 10,000
inhabitants” or “Give me all Italian musicians from the 18th century”.
Quepy

Quepy is a python framework to transform natural language questions to queries in


a database query language. It can be easily customized to different kinds of
questions in natural language and database queries. So, with little coding you can
build your own system for natural language access to your database.

Pyttsx

Pyttsx stands for Python Text to Speech. It is a cross-platform Python wrapper for
text- to-speech synthesis. It is a Python package supporting common text-to-speech
engines on Mac OS X, Windows, and Linux. It works for both Python2.x and 3.x
versions. Its main advantage is that it works offline.

Speech Recognition

This is a library for performing speech recognition, with support for several engines
and APIs, online and offline. It supports APIs like Google Cloud Speech API, IBM
Speech to Text, Microsoft Bing Voice Recognition etc.

Information Retrieval

The program has two modes to well fetch the services and functions. The program
will start with voice mode as its primary mode to provide the voice assistant, but the
user can select switching to the text mode if he or she is not well working with the
voice mode or the surrounds don’t support the voice recognition well.
Libraries
gTTS
The main library used to output the assistant’s voice using Google’s text to speech
feature on Google Translate.

SpeechRecognition
The library used to recognize voice input from users.

playsound
The library to play sound files without having to open them using 3rd party apps.

PySide2
The library used to make the graphical user interface. This library is the counterpart
of its parent, PyQt5, developed by the same company. The advantage of using
PySide2 instead of PyQt5 is the generate python script in the designer app which is
used to design the app’s GUI.

tkinter
To open a dialog box since PySide2 doesn’t have this function.

opencv
This library is used to process images, resizing them based on needs.

Pillow
Another library used to process images, corresponds to the tkinter library to choose
images.

requests
This library is used to make a request for the html output of a webpage.

beautifulsoup4
The library used to scrape webpages to get information from it, such as explanations
of stuff.
re
This library is used to find matching string(s) in a string variable. This library is the
most important one beside ‘beautifulsoup4’ and ‘request’ to get information about
something from the web. (request > beautifulsoup4 > regex)

wolframalpha
The library used as the calculator module.

Pyautogui
The library used to get the position of the image on the screen. This library is used
to locate the microphone button when the user calls Wolf using its wake-up call and
to screenshot the screen.

threading, subprocess, signal, and atexit


The ‘threading’ library is used to play the ‘ding!’ sound whenever the user pressed
the microphone button. It is so that the listening function and the ‘ding!’ sound can
be executed simultaneously. The ‘subprocess’ library is used to open the always-
listening function of the program, so users can call Wolf whenever they want. As its
name states, the ‘atexit’ library is used a moment before the main program fully
stopped. This library is used to trigger the break (CTRL^C) signal to the subprocess
program (the always-listening function) that uses the ‘signal’ library. After it’s sent
the signal, the subprocess program will be terminated. ‘atexit’ is also used to trigger
the save user configuration method to save the user's current color theme, name,
and the show/hide tip book.

os and shutil
Both of these libraries are used as the file management libraries. ‘os’ is mainly used
to make a new directory and renaming files while ‘shutil’ is used to copy and paste
files.

time
Used to display the current time.

webbrowser
To open a link in a new tab of the pc’s default browser.

Openweather and jokes API


As each name states, openweather is the API to get information about the weather
of a city, and jokes API is the API to get jokes.
Code

Introduction

This program is made without using machine learning, thus throwing a bunch of if
and else into it. The workflow of this program is that it checks the user input by
splitting it. It will then check the input on every function that has been made to
predict whether the user wants to do this or not by using a counter (see the
examples below). If not then pass, if yes then execute that function. For example,
user inputs ‘tell me the weather of Mumbai now’. The program splits the input based
on the blank space, then checks every single function. If a function returns a value
greater than or equal to 2 or 3, then it’ll execute that function. If the return value is
lower than three, then it’ll pass to the next input checking.

Here, the first thing the program will check is the basic tasks input (a special
occasion). If the return value is empty, then the program will go on the next one. The
second one the program will check is the weather input. The weather library has the
check_userinput() function which will check the input.

Every library that I made (apps.py, day.py, notes.py, screenshot.py, and weather.py)
has this function to check the user input. I did not define it only once to ease the
process and to avoid circular import.

Basic Tasks

The first function is the basic_tasks(input) function. As its name states, this function
is executed when the user commands Wolf to do simple tasks such as asking its
name, what chores can it do, and so on. Below is the code for the function.

Again, because this program does not use machine learning, a bunch of if and else
must be implemented for the program to work as we want.
Weather

This is the weather function. It calls the openweather API to get the data. The data
is received in a form of a raw string file like a json file. Therefore, it then gets
converted into a json file which behaves similarly to python’s dictionary. The rest of
the lines are variables to store the converted data. If the request attempt failed and
received nothing, it will return None, else it will return a list consisting of the
weather data. The main window will then pick the values from inside the list and
display it in the main app. The example of the result will be on the working app
proof section of this report.

Time

The next one is the time function. It is a simple function to display the time. This
function returns 2 values, the first one is a string which will be shown in the GUI,
and the second one is a string which will then be passed into the
voice_output(output) function which will be discussed later. To distinguish this, I
made a variable that stores a dictionary containing the key, which is the current time
received from the ‘time’ library, and the values which contain the 12-hour format of
the clock.

Jokes

This is the jokes function, used to tell jokes to users using an API called official-joke-
API. What this function does is it requests random jokes to the API which will return
a string in the form of a dictionary containing the jokes. To ease the process, I used
the eval() method to change the dictionary-like string into a real dictionary. It can
then be accessed as a key value pair, append it to a new string, and return it so it can
be displayed to the user. Each time a request is made, the API will return random
and different jokes.
CHAPTER 3

Requirements and Analysis

System Analysis is about complete understanding of existing systems and finding


where the existing system fails. The solution is determined to resolve issues in the
proposed system. It defines the system. The system is divided into smaller parts.
Their functions and inter relation of these modules are studied in system analysis.
The complete analysis is followed below.

Functional Requirements

The system should provide the following features and functionalities:

1. The system should create Time table in school required format.


2. The Time Table created should be clash free.
3. It should able to manage schedule of n number of faculty’s
4. A faculty should able to access all Time Table which is applicable to her/him

Non-Functional Requirements

The non-functional requirements are the system integrity and failure


maintenance. The following are some non-functional requirements-

Performance – The system should perform well in 24x7 manners. It should


not give low performance after some time.

Reliability – The system should be more reliable i.e. the clashes rate should
be less. It should work for any amount of time

Extensibility – The system should be capable for adding new modules and
new ideas.

Reusability – The system can be reused for making new software similar to
it. Its codes and flow can be applied in different software development.
3.1. Problem Definition

Usually, the user needs to manually manage multiple sets of applications to complete
one task. For example, a user trying to make a travel plan needs to check for airport
codes for nearby airports and then check travel sites for tickets between
combinations of airports to reach the destination. There is a need for a system that
can manage tasks effortlessly.

We already have multiple virtual assistants. But we hardly use it. There are a number
of people who have issues in voice recognition. These systems can understand
English phrases but they fail to recognize our accent. Our way of pronunciation is
way distinct from theirs. Also, they are easier to use on mobile devices than desktop
systems. There is a need for a virtual assistant that can understand English in Indian
accent and work on a desktop system.

3.2 Requirements
Specifications
When a virtual assistant is not able to answer questions accurately, it’s because it
lacks the proper context or doesn’t understand the intent of the question. Its ability
to answer questions relevantly only happens with rigorous optimization, involving
both humans and machine learning. Continuously ensuring solid quality control
strategies will also help manage the risk of the virtual assistant learning undesired
bad behaviors. They require a large amount of information to be fed in order for it to
work efficiently.

Virtual assistants should be able to model complex task dependencies and use these
models to recommend optimized plans for the user. It needs to be tested for finding
optimum paths when a task has multiple sub-tasks and each sub-task can have its
own sub-tasks. In such a case there can be multiple solutions to paths, and it should
be able to consider user preferences, other active tasks, priorities in order to
recommend a particular plan
Personal assistant software is required to act as an interface into the digital world by
understanding user requests or commands and then translating into actions or
recommendations based on the agent's understanding of the world.

Nova focuses on relieving the user of entering text input and using voice as primary
means of user input. Agent then applies voice recognition algorithms to this input
and records the input. It then use this input to call one of the personal information
management applications such as task list or calendar to record a new entry or to
search about it on search engines like Google, Bing or Yahoo etc. Focus is on
capturing the user input through voice, recognizing the input and then executing the
tasks if the agent understands the task. Software takes this input in natural language,
and so makes it easier for the user to input what he or she desires to be done.

Voice recognition software enables hands free use of the applications, lets users to
query or command the agent through voice interface. This helps users to have access
to the agent while performing other tasks and thus enhances value of the system
itself. Nova also have ubiquitous connectivity through Wi-Fi or LAN connection,
enabling distributed applications that can leverage other APIs exposed on the web
without a need to store them locally.

Feasibility

Study Feasibility study can help you determine whether or not you should proceed
with your project. It is essential to evaluate cost and benefit. It is essential to
evaluate the cost and benefit of the proposed system. Five types of feasibility study
are taken into consideration.

1. Technical feasibility:
It includes finding out technologies for the project, both hardware and software. For
virtual assistants, users must have a microphone to convey their message and a
speaker to listen when the system speaks. These are very cheap nowadays and
everyone generally possesses them. Besides, the system needs internet connection.
While using Nova, make sure you have a steady internet connection. It is also not an
issue in this era where almost every home or office has Wi-Fi.
2. Operational feasibility:
It is the ease and simplicity of operation of the proposed system. System does not
require any special skill set for users to operate it. In fact, it is designed to be used by
almost everyone. Kids who still don’t know how to write can read out problems for
the system and get answers.

3. Economical feasibility:
Here, we find the total cost and benefit of the proposed system over the current
system. For this project, the main cost is documentation cost. Users also would have
to pay for microphone and speakers. Again, they are cheap and available. As far as
maintenance is concerned, Nova won’t cost too much.

4. Organizational feasibility:
This shows the management and organizational structure of the project. This project
is not built by a team. The management tasks are all to be carried out by a single
person. That won’t create any management issues and will increase the feasibility of
the project.

5. Cultural feasibility:
It deals with compatibility of the project with the cultural environment. Virtual assistants
are built in accordance with the general culture.

This project is technically feasible with no external hardware requirements. Also it is


simple in operation and does not cost training or repairs. Overall feasibility study of the
project reveals that the goals of the proposed system are achievable. Decision is taken
to proceed with the project.
3.3 Hardware and Software
Requirements

Hardware:
• Pentium-pro processor or later.
• RAM 512MB or more.

Software:
• Windows 7(32-bit) or above.
• Python 2.7 or later
• Anaconda
3.4 Conceptual Models

A conceptual model is a representation of a system, made of the composition of concepts


which are used to help people know, understand, or simulate a subject the model
represents. It is also a set of concepts.

Some models are physical objects; for example, a toy model which may be assembled,
and may be made to work like the object it represents. The term conceptual model may
be used to refer to models which are formed after a conceptualization or generalization
process.

Conceptual models are often abstractions of things in the real world whether physical or
social. Semantic studies are relevant to various stages of concept formation. Semantics is
basically about concepts, the meaning that thinking beings give to various elements of
their experience.

3.4.1 Dataflow Diagram


Data flow diagrams are used to graphically represent the flow of data in a business
information system. DFD describes the processes that are involved in a system to
transfer data from the input to the file storage and reports generation.

Data flow diagrams are used to graphically represent the flow of data in a business
information system. DFD describes the processes that are involved in a system to
transfer data from the input to the file storage and reports generation.

Level 0:
Level 1:
3.4.1 Event Table
The event table is a table of data that is typically written to the logfile for each scenario
and also appears in the Analysis window. The event table contains timing information
about specific events that occur during the scenario. Only stimulus events with event
codes will appear in the event table.
3.4.2 Use Case Diagram
A use case diagram is the primary form of system/software requirements for a new
software program underdeveloped. Use cases specify the expected behavior (what), and
not the exact method of making it happen (how). Use cases once specified can be
denoted both textual and visual representation. A key concept of use case modeling is
that it helps us design a system from the end user's perspective.
3.4.3 State Chart Diagram
A State Chart Diagram describes different states of a component in a system. The states
are specific to a component/object of a system.A Statechart diagram describes a state
machine. State machine can be defined as a machine which defines different states of an
object and these states are controlled by external or internal events.
3.4.4 Sequence Diagram
A use case diagram is the primary form of system/software requirements for a new
software program underdeveloped. Use cases specify the expected behavior (what), and
not the exact method of making it happen (how). Use cases once specified can be
denoted both textual and visual representation. A key concept of use case modeling is
that it helps us design a system from the end user's perspective.
3.4.5 Entity Relationship Diagram
A use case diagram is the primary form of system/software requirements for a new
software program underdeveloped. Use cases specify the expected behavior (what), and
not the exact method of making it happen (how). Use cases once specified can be
denoted both textual and visual representation. A key concept of use case modeling is
that it helps us design a system from the end user's perspective.
CHAPTER 4

System Design

Systems design is the process of designing elements of system such as the architecture,
modules, interfaces and flow of data in system. These elements are defined, developed
and designed to satisfy the specific needs and requirements of client

4.1 Data Design


Data design is the first design activity, it is use to organize data according to a database
model. It involves classifying data and identifying interrelationships between them. The
data objects, attributes, and relationships depicted in entity relationship diagrams and the
information stored in data dictionary provide a base for data design activity.

4.1.1 Deployment Diagram


A Deployment diagram is a diagram that shows the configuration of run time processing
nodes and the components that live on them. Deployment diagrams is a kind of structure
diagram used in modeling the physical aspects of an object-oriented system. They are
often be used to model the static deployment view of a system.
4.1.2 Package Diagram
Package diagram, a kind of structural diagram, shows the arrangement and organization
of model elements in middle to large scale project. Package diagram can show both
structure and dependencies between sub-systems or modules, showing different views
of a system.
4.1.3 Activity Diagram
Activity diagram is basically a flowchart to represent the flow from one activity to
another activity. The activity can be described as an operation of the system. The control
flow is drawn from one operation to another.
4.2 User Interface Design

User interface design (UI) or user interface engineering is the design of user interfaces for
machines and software, such as computers, home appliances, mobile devices, and other
electronic devices, with the focus on maximizing usability and the user experience. Good
user interface design facilitates finishing the task at hand without drawing unnecessary
attention to itself.
4.2 Test Case Design

Test Case 1

Test Title: Accuracy


Test ID: T1
Test Priority: High
Test Objective: To make sure that the system respond back time is efficient.
Description: Time is very critical in a voice based system. As we are not typing inputs, we are
speaking them. The system must also reply in a moment. User must get instant response of the
query made.

Test Case 2

Test Title: Response Time


Test ID: T2
Test Priority: High
Test Objective: To assure that answers retrieved by system are accurate as per gathered data.
Description: A virtual assistant system is mainly used to get precise answers to any question
asked. Getting answer in a moment is of no use if the answer is not correct. Accuracy is of
utmost importance in a virtual assistant system.
ALL USERS
CHAPTER 5

Conclusion

Recommendations for Future Design Improvements

No program has a perfect design without any flaws; it is the same here in this
program. Even though the program is completed with all the primary functions
implemented and working properly, there are still many things that can be done with
this program. As the future improvement, the potential work that can be
implemented ranging from adding more functions to offering the user a more
comprehensive, convenient program, refining the logic to make the program more
humanized and easy to use, increase the database capacity and add more possible
keywords, responses and data in this program, interface optimization and etc.

Additional Functions

Add more functions: although there have been 15 normal functions that are used
really often with the mobile phone, there can be more functions which simplify our
daily life and make it convenient to use. Functions such as playing movies, checking
stocks, exchange rate, downloading and uploading, installing APPs and etc, these can
be the potential functions that make the program more comprehensive and people
can enjoy more services in this program.

Database Capacity
Add database capacity and more humanized logical design; the program has a
predefined logic to make it work with the corresponding commands. Thus, the user
needs to follow the structure of the commands, contain the dedicated keywords and
well formalize the commands to work with each of the functions. In other words, the
program is limited by the database capacity and no solution will be found if the user
gives commands that are not readable by the program. Even if two commands have
the same meaning and should get exactly the same result set, the result might be that
of one is working and the other one fails. Hence, the program is to some extent
limited by the vocabulary and can be further optimized.
Humanized Voice Recognition
The more humanized the program is, the easier the user can use it. People should
accept that even if developers constantly try to add more predefined commands,
more responses to it, analyze and respond to the command more intelligently, the
program will never be completely comprehensive and contain all the possible
circumstances that the users meet. Nevertheless, the program will certainly be
improved and be more user-friendly if there can be more readable commands, more
humanized structure and more intelligent response.

Improved Interface
Interface optimization, the interface can be further improved to make it nice to the
users. Currently the interface design meets the basic requirement to present
everything for this program, and the users are able to interact with the program
through this interface, but the interface can always be optimized and more suitable
constructed.
Final Words

We have learned quite a valuable lesson while making this program. Finding new
syntaxes and modules of course, but the main thing that We learnt during this
process is not to have high expectations of the outcome.
We tried implementing an alarm function and voice recognition and it failed
miserably; it cannot work simultaneously with the main assistant program. We’ve
tried literally everything: subprocessing, multithreading, multiprocessing. Nothing
worked.
This gives us a valuable lesson to learn, that is not to expect high outcomes of
anything, even the littlest things.
Finally, We thank Jyoti Ma’am that has guided us throughout this semester.
We learned a lot of new things in the programming world and improved our
knowledge about Python.
Our profound apology, if ever We have done something that was, or were not
pleasing to you.
References

Websites referred

www.stackoverflow.com
www.pythonprogramming.net
www.codecademy.com
www.tutorialspoint.com
www.google.co.in

Books referred

Python Programming - Kiran Gurbani


Learning Python - Mark Lutz

YouTube Channels referred


CS Dojo
edureka!

Documents referred

Designing Personal Assistant Software for Task Management using Semantic Web
Technologies and Knowledge Databases - Purushotham Botla

Python code for Artificial Intelligence: Foundations of Computational Agents - David


L. Poole and Alan K. Mackworth

"CMUSphnix Basic concepts of speech - Speech Recognition process".


http://cmusphinx.sourceforge.netlwiki/tutorialconcepts

Thakur, N., Hiwrale, A., Selote, S., Shinde, A. and Mahakalkar, N., Artificially
Intelligent Chatbot.

Mohasi, L. and Mashao, D., 2006. Text-to-Speech Technology in Human-Computer


Interaction.

Project

The link for this project: https://github.com/pyakatori/nova

You might also like