Project Report Sivakumar
Project Report Sivakumar
TECHNIQUE
Submitted by
2019-2023
BONAFIDE CERTIFICATE
Certified that this report title ” HOUSING PRICE PREDICT USING MECHINE
LEARNING TECHNIQUE” is the bonfire work SIVA KUMAR R (1903058), who carried out the
work under my supervision. Certified further that to the best of my knowledge the work reported herein does
not from part of any other thesis report or dissertation on the basis of which a degree or award was conferred on
an earlier occasion on this or any other candidate
Our first and foremost thanks to THE ALMIGHITY for the presenting this opportunity to
complete this project.
We thank our Chairman DR. P. SUYAMBU, PhD Founder and Chairman, PSN GROUP OF
INSTITUTIONS for permitting us to do this project work and for his kind patronage.
We thank our Vice Chairman ER.P.S. JAYARAM, M.E for permitting us to do this project
work and for his kind patronage.
We thank our Executive Director DR. P. SELVA KUMAR, M.E, PhD for permitting us to do
this project work and for his kind patronage.
We thank our Principal DR. V. MANIKANDAN, M.E., PhD. for permitting us to do this
project work and for his kind patronage.
It gives us immense pleasure to thank DR. M. VARGHEESE, M. Tech PhD., Head of the
department of Computer Science and Engineering for his invaluable and unstringing co-operation in
making the project success.
We have unique privilege to acknowledge our sincere thanks to our project guide
MR.T.MATHAN KUMAR M.E., Assistant Professor of the department of Computer Science and
Engineering for his esteemed and resourceful suggestion in the making of this project a success.
Our special thanks to our faculty Advisor Mrs. P. KANAGA LAKSHMI, M.E., Assistant
professor department of Computer Science and Engineering for her profound and valuable insight and
comments on our project.
We thank all of our staff member for their valuable cooperation, guidance and suggestion
given to do this project work.
ABSTRACT
The project introduces an application using computer vision for Hand gesture
recognition. A camera records a live video stream, from which a snapshot is taken
with the help of interface. The system is trained for each type of count hand
gestures (one, two, three, four, and five) at least once. After that a test gesture is
given to it and the system tries to recognize it.
Previous systems have used data gloves or markers for input in the system. I
have no such constraints for using the system. The user can give hand gestures in
view of the camera naturally. A completely robust hand gesture recognition system
is still under heavy research and development; the implemented system serves
TABLE OF CONTENTS
Contents Page
Title Page i
Certificate ii
Acknowledgement iii
Abstract iv
Table of contents v
1.1 Overview 1
1.4 Objective 2
1.5 Methodology 2
5.1.1.1 Scenario 1 13
5.1.1.2 Scenario 2 14
6.1.3 W
vi
LIST OF FIGURES
Figure 5.1 General Design Architecture 12
vii
CHAPTER 1
INTRODUCTION
Internet is considered as the most important means of information and has become de facto methods used in
communication. Email is one of the most common form of communication. However, it is completely useless
for visually impaired and illiterate people. Currently available systems like screen readers TTS (Text-To-
Speech) and ASR (Automatic Speech Recognition) does not provide full efficiency to the blind people to
use internet. As nearly 285 million people worldwide are visually impaired so it is necessary to make internet
facilities for communication usable for them.
Therefore, in this project we will be developing a voice based email system which will aid the visually
impaired people who are naive to computer systems to use email facilities with ease. All the functions are
based on simple mouse click operations making it very easy for any type of user to use this system. Also
the user need not worry about remembering which mouse click operation he/she needs to perform in order to
avail a given service as the system itself will be prompting them as to which click will provide them with what
operations.
1.1 OVERVIEW
This project is a prototype application for a standalone user which works on all the system having Python 2.7
installed.
When the user runs the application, welcome page will be displayed. The welcome page is where the user will
have to provide his username and password for authentication. Upon successful login, the Home page is
displayed containing several options. The voice engine will keep prompting the user as to what operation is to
be performed based on hover action. The user just has to traverse across the screen and upon hearing the
prompt for the action he wishes to perform; he should click the mouse button. Once the user is done with
the particular module, he can return to the Home page by clicking the “Return to Home page”.
We aim to overcome the shortcomings of the existing system in making the user completely independent with
our proposed system.
1.4 OBJECTIVE
This project aims at developing an email system that will help even a naïve, visually impaired person to use
the services for communication without previous training. The system does not require the use of keyboard.
Instead it will work only on mouse operations and speech conversion to text. This system can also be used by
any normal person, for instance, by someone who is unable to read.
1.5 METHODOLOGY
The complete system is based on voice prompts and click events. When using this system the computer will
be prompting the user to perform specific operations to avail respective services and if the user needs to
access the respective services then he/she needs to perform that operation. One of the major advantages of this
system is that, in most of the part user won’t require to use the keyboard. All operations will be based on
mouse click events. . Now the question that arises is that how will the blind users find location of the mouse
pointer. As particular location cannot be tracked by the blind user, therefore the user has to traverse the mouse
throughout the screen from top to bottom and then left to right. This system will be perfectly accessible to all
types of users as it is just based on simple mouse clicks and there is no need to remember keyboard shortcuts.
Also because of this facility those who cannot read need not worry as they can listen to the prompting done by
the system and perform respective actions.
This report is divided up into chapters, each dealing with different aspects of the project. Each chapter has a
short introduction, explaining the subject of each chapter, and then the details each module is explained
separately. The following is a short overview of each of the chapters:
Chapter 2: Outlines some of the research made on the project in the beginning. More research was made as
this project report was being developed, as new areas had to be investigated. This research is summarized in
the various chapters according to the different modules.
Chapter 3: Specifies the software requirements specification, the existing and the proposed system.
Chapter 5: Gives the architecture diagram, use case diagram and sequence diagram of the modules and
also gives an outline of the design of the system.
Chapter 7: The various testing such as Unit testing, System testing and Integration testing is discussed
here.
Chapter 9: The conclusion and the future scope of the project is discussed here.
LITERATURE
SURVEY
This chapter provides an introduction to the areas of research. It describes the work which has already been
done in direct-show and states the new scope. The scope has been clearly explained and the technology
used to obtain this has been mentioned in this chapter.
There are 4.1 billion email accounts created until 2014 and there will be estimated 5.2 billion accounts by end
of 2018. This makes emails the most common form of communication. The most common mail services that
we use in our day to day life cannot be used by visually challenged people because they do not provide any
facility so that the person in front can hear out the content of the screen, As they cannot visualize what is
already present on screen they cannot make out where to click in order to perform the required operations.
For a visually challenged person using a computer for the first time is not that convenient as it is for a normal
user even though it is user friendly. Although there are screen readers available still these people face minor
difficulties. Screen readers read out whatever content is there on the screen and to perform those actions the
person will have to use keyboard shortcuts as mouse location cannot be traced by the screen readers. A user
is new to computer can therefore not use this service as they are not aware of the key locations.
The screen readers read out the content in sequential manner and therefore user can make out the contents of
the screen only if they are in basic HTML format. Thus the new advanced web pages which do not follow this
paradigm in order to make the website more user-friendly only create extra hassles for these people.
The proposed system is based on a completely novel idea and is nowhere like the existing mail systems. The
most important aspect that has been kept in mind while developing the proposed system is accessibility. A
system is said to be perfectly accessible only if it can be used efficiently by all types of people whether able or
disable. The current systems do not provide this accessibility. Thus the system we are developing is
completely different from the current system. Unlike current
Analysis is the process of breaking a complex topic into smaller to get better understanding of it. Here
analysis had been done based on the three aspects: System analysis, Requirement analysis and Functional
requirements. System analysis comprises of relevance platform and relevance programming language.
Requirement analysis reveals input, output, scope and boundary, user objective, assumptions and constraint.
Functional requirements specifies about hardware and software requirements.
Here the analysis of the system is made with respect to relevance of platform, programming languages.
The application can work with the all Python enabled systems with version 2.7
Python features a dynamic type system and automatic memory management and supports multiple
programming paradigms, including object-oriented, imperative, functional programming, and procedural
styles. It has a large and comprehensive standard library. Python interpreters are available for many operating
systems, allowing python code to run on a wide variety of systems. CPython, the reference implementation of
python, is open source software and has a community based development model, as do nearly all of its variant
implementation.
Requirement analysis explains the scope and boundary of the project, user objectives, inputs and outputs of
the project. It consists of assumptions and constraints.
The proposed system will meet the needs of the user by providing following features:
a. The visually impaired person can efficiently access the mail services.
b. This system will focus more on the user friendliness of all types of people including normal,
visually impaired as well as illiterate people.
c. The system will be highly efficient and easily understandable because it will make use of simple
mouse clicks only and not keyboard shortcuts.
d. The user can read the mail, record the mail and send the mail.
e. The project can work on any system having Python 2.7 installed including Windows, LINUX and
Mac OS.
The user objective is to access the mail services efficiently by simple mouse clicks and perform different
operations.
To login to the account, the user needs to provide the specified username and password. Once the user
authentication is done, he will be directed to the home page. If he is a new user, then he needs to sign up to the
mail account by providing his details and registering to it. When the user wants to compose the message to be
sent, he needs to record the message using a microphone and then the mail will be sent. The user can view
the mail sent by him in the ‘sent mail’ module. The user can read all the mails he has received in the ‘inbox’
module.
This application is compatible with Windows and Linux OS systems with 2.7.13 version of Python
along with the required packages.
The application is to be started in order for the user to start using it.
Some help maybe needed by the user to log in to the account or to sign up to the application.
Required packages need to be installed in the system with the aforementioned version of Python.
All audio files should be present in the system.
A proper headphone is to be used with a working microphone.
Detachable mouse is required.
Functional requirements consist of two types. Those are software and hardware requirements.
Python:
1. Version: 2.7.13
2. Requirements: Windows (All Versions), Linux
3. Languages: Multiple languages
4. License: Open Source
5. Packages: Tkinter, mp3play, pyaudio,wave
Mouse
Headphone with microphone jack
Performance Requirements:
Application requires working system with the specified software and hardware requirements.
Reliability:
Application can be used via any system from any location and at any time.
Application can be made use of at any time in the system having Python and its relative packages
installed.
Maintainability:
Portability:
This system can be run on any operating system including Windows, Linux and Mac.
Security Requirements:
Application requires user to login with his mail credentials as specified in code.
SOFTWARE APPROACH
Software approach is the sequence of steps involved in the development process along with the software used
in each step.
Python is an interpreted, object-oriented, high-level programming language with dynamic semantics. Its
high-level built in data structures, combined with dynamic typing and dynamic binding; make it very
attractive for Rapid Application Development, as well as for use as a scripting or glue language to connect
existing components together. Python’s simple, easy to learn syntax emphasizes readability and therefore
reduces the cost of program maintenance. Python supports modules and packages, which encourages program
modularity and code reuse. The Python interpreter and the extensive standard library are available in source or
binary form without charge for all major platforms, and can be freely distributed.
Often, programmers fall in love with Python because of the increased productivity it provides. Since there is
no compilation step, the edit-test-debug cycle is incredibly fast. Debugging Python programs is easy: a bug
or bad input will never cause a segmentation fault. Instead, when the interpreter discovers an error, it raises an
exception. When the program doesn’t catch the exception, the interpreter prints a stack trace. A source level
debugger allows inspection of local and global variables, evaluation of arbitrary expressions, setting
breakpoints, stepping through the code a line at a time, and so on. The debugger is written in Python itself,
testifying to Python’s introspective power. On the other hand, often the quickest way to debug a program is to
add a few print statements to the source: the fast edit-test-debug cycle makes this simple approach very
effective.
PyAudio provides Python bindings for PortAudio, the cross-platform audio I/O library. With PyAudio, you
can easily use Python to play and record audio on a variety of platforms. PyAudio is inspired by:
In callback mode, PyAudio will call a specified callback function whenever it needs new audio data (to play)
and/or when there is a new (recorded) audio data available. Note that PyAudio calls the callback function in a
separate thread. The function has the following signature callback (<input_data>, <frame_count>,
<time_info>, <status_flag>) and must return a tuple containing frame_count frames of audio data and a flag
signifying whether there are more frames to play/record.
Start processing the audio stream using pyaudio.Stream.start_stream(), which will call the callback function
repeatedly until that function returns pyaudio.paComplete. To keep the stream active, the main thread must
not terminate, e.g., by sleeping.
5 SYSTEM
DESIGN
The system design is the process of defining the architecture, components, modules, interfaces and data for a
system to satisfy requirements. Systems design could be seen as the application of systems theory to product
development. The design is broadly classified into two levels according to software engineering. They are
high level design and low level design. They are explained as follows.
The general design architecture of the system depicts the interaction of the subsystems in the system as shown
in figure 5.1
Login/signup failed
Login_Ok
Welcome
Page Home Page
Signup_ok
A sequence diagram is a kind of interaction diagram that shows how process operate with one another and in
what order. It is a construct of a Message Sequence Chart. A sequence diagram shows object interactions
arranged in time sequence as shown in figures below.
5.1.1.1 Scenario 1
Once the application is up and running, the user has two options – to sign up (for new user) or to log in (for
registered users). If the user wishes to sign up, they will be directed to the Registration Page where they have
to enter their name, password and re-enter the password. On clicking the Registe button, the two passwords
are checked and if there is a mismatch, an error message is displayed. On the other hand, if there is a match,
the user’s Home Page will be displayed. If the user wishes to log in to their account, they have to enter the
name and the password and on proper authentication, they are directed to the respective Home Page. In case
of mismatch, again, error message will be displayed. On clicking the Logout button, the user is signed out of
the account and the Welcome Page is displayed.
Once the user is on the Home Page, they have 4 options namely, Inbox, Compose, Sent mail, Log out. If the
user wishes to check the received mails, the Inbox button is to be clicked. This page has several buttons, each
corresponding to one received mail. Based on the mail they wish to read, click on the respective button. Once
the user is done with the inbox, Return to HomePage button is to be clicked to go back to the Home Page. If a
mail is to be composed, Compose option is to be clicked. Within this module, the user has 3 options – record a
message, listen to the recorded message, send the message. On clicking on Record, the voice input from the
user is recorded for a definite period of time. This recorded message can be played by the user to check if he is
satisfied with it. For this, the Listen button is to be clicked upon. On hitting Send, the mail is then sent and
the user is directed back to the Home Page. Another option available to the user in the Home Page is the Sent
mail viewing option. Here, the user can replay the message that had just been recorded and sent. Once this is
done, the user can return to the Home Page by clicking the button for the same. On clicking Logout, the user
is signed out of his account and redirected to the Welcome Page of the application.
Activity diagrams are graphical representation of workflows of stepwise activities and actions with support for
choice, iteration and concurrency. In the Fig. 5.1.2 we show the activity diagram for different modules.
A use case diagram at its simplest is a representation of a user’s interaction with the system and depicting the
specifications of a use case. A use case diagram can portray the different types of users of a system and
various ways that they interact with the system as shown in Fig. 5.1.3.
SYSTEM IMPLEMENTATION
The basic goal in system implementation is to specify the logic for the different modules that have been
specified during system design. Specifying the logic will require developing an algorithm that will implement
the given specification. This chapter gives the implementation details of the entire system.
PyAudio provides Python bindings for PortAudio, the cross-platform audio I/O library. With PyAudio, you
can easily use Python to play and record audio on a variety of platforms. PyAudio is inspired by:
To use PyAudio, first instantiate PyAudio using pyaudio.PyAudio(), which sets up the portaudio system. To
record or play audio, open a stream on the desired device with the desired audio parameters using
pyaudio.PyAudio.open(). This sets up a pyaudio.Stream to play or record audio. Play audio by writing audio
data to the stream using pyaudio.Stream.write(), or read audio data from the stream using
pyaudio.Stream.read(). Note that in “blocking mode”, each pyaudio.Stream.write() or pyaudio.Stream.read()
blocks until all the given/requested frames have been played/recorded. Alternatively, to generate audio data on
the fly or immediately process recorded audio data, use the “callback mode” outlined below use
pyaudio.Stream.stop_stream() to pause playing/recording, and pyaudio.Stream.close() to terminate the stream.
Finally, terminate the portaudio session using pyaudio.PyAudio.terminate().
In callback mode, PyAudio will call a specified callback function whenever it needs new audio data (to play)
and/or when there is a new (recorded) audio data available. Note that PyAudio calls the callback function in a
separate thread. The function has the following signature callback (<input_data>, <frame_count>,
<time_info>, <status_flag>) and must return a tuple containing frame_count frames of audio data and a flag
signifying whether there are more frames to play/record.
Short for WAVeform Audio Format, it is normally used in an uncompressed format on the Microsoft
Windowsplatform. This raw audio format, which was developed jointly by IBM and Microsoft, stores audio
data in blocks. On the digital music scene, its usefulness has diminished over time with the development
of better lossless audio formats, such as FLAC and Apple lossless. It is a standard that will probably be used
for some time yet due to its widespread use in professional music recording and is still a very popular format
for audio/video applications.
The wave module provides a convenient interface to the WAV sound format. It does not support
compression/decompression, but it does support mono/stereo.
wave.open(file[, mode])
If file is a string, open the file by that name, otherwise treat it as a seekable file-like object. Mode can be of:
’r’, ’rb’ - Read only mode.
’w’, ’wb’ - Write only mode.
Note that it does not allow read/write WAV files.
A mode of ‘r’ or ‘rb’ returns a Wave_read object, while a mode of ‘w’ or ‘wb’ returns a Wave_write object. If
mode is omitted and a little file-like object is passed as a file, file mode is used as the default value for the
mode (the ‘b’ flag is still added if necessary).
If you pass in a file-like object, the wave object will not close it when its close() method is called; it is the
caller’s responsibility to close the file object.
exception wave.Error
An error raised when something is impossible because it violates the WAV specification or hits an
implementation deficiency.
A simple interface for playing music from an MP3 file. Allows your Windows Python program to play and
stop MP3s, without opening an external player or requiring any external programs. A very simple interface
for the common case (playing an entire MP3), with an API for more complex tasks (e.g., playing from
seconds 30 to 45 of an MP3).
6.2 MODULES
The existing user can login to the account by providing the specified username and password. If the user is
new to the application, then he needs to sign up to the mail account by providing his details and registering to
it.
Module 2: Inbox
In the inbox module, each button represents a mail received by the user. When the user hovers over the
button, he will be informed who the sender is. If he wishes to listen to the mail, he has to click the button. On
clicking the respective button for the mail, the corresponding mail will be read out to him. Only after he has
finished listening to the current mail, he can either listen to other mail or return back to Home Page.
Inbox
Prompt
Mail n Home
Mail1
--------------- Page
In this module, the user has three options: to record, listen and send the mail. On clicking the record button, he
can record the message for a maximum time limit of 5 seconds. This recording will be saved as an audio file.
He can now listen to this message by clicking on the “Listen” button. Finally, by clicking the “Send” button,
the audio message will be sent to the specified recipient.
Compose
The mail sent by the user will be shown in this module. When the user hovers over the button, he will be
told to click on the button to listen to his sent mail. When he clicks the button, the most recent sent mail will
be read out to him.
7 SYSTEM
TESTING
Testing is an important stage in the System development life cycle. Careful planning is needed to get the
most out of testing and to control testing cost. Test planning is concerned with setting out standard for the
testing process rather than describing the product test. System testing is an important element of software
quantity assurance and ultimate review of specifications.
7.1 INTRODUCTION
Software testing is a process used to identify the correctness, completeness and quality of the developed
computer software. Testing a process is questioning a product in order to evaluate it, where the questions are
things the tester tries to do with the product, and the product answers with its behaviour in reaction to probing
of the tester.
The testing phase is performed after the coding to detect all the errors and provide quality assurance and
ensure reliability of the software. Testing is vital to the success of the system. During testing, the software to
be tested is evaluated to determine if the system is performing as expected. Clearly, the success of testing in
revealing errors depends critically on the test cases. The different testing strategies employed in this
project are explained in this chapter.
In computer programming, unit testing is software verification and validation method in which a programmer
tests if individual units of source code are fit for use. A unit is smallest testable part of an application. It is also
called as module testing. The goal of unit testing is to isolate each part of the program first and then
testing the sum of its parts, integration testing becomes much easier. In our project, we apply this by testing
the various modules of the application and also each feature individually.
Integration testing is three phase in software testing in which individual software modules are combined and
tested as group. It occurs after unit testing and before system testing. Integration testing takes as its input
module that have been tested groups them in larger aggregates, applies tests defined in an integration test plan
to those aggregate and delivers as its output the integrated system ready for the system testing. The purpose
Sent Mail Click on Show the Play: Play the Same as Pass
Sent Mail mails sent sent message expected
button by the user Return:
Display Home
Page
RESULTS &
DISCUSSION
8.1 USER
INTERFACE
Welcome Page:
The user can login to his account in this page by providing the correct details. Once the user provides his
specified username and password and then clicks on the log in button, he is directed to the home page. If new
user wants to register to the account, he has to click on sign up button and then he is directed to registration
page.
Registration Page:
The new user who wishes to register to the account needs to provide their correct details and then click on
register button. Once the authentication is done, the user can use the mail services.
Home Page:
Once the user logs into his account, he will be directed to Home Page. Home Page consists of buttons for
several different mail services like Inbox, Compose, Sent and Logout. If he wants to listen to the mails he has
received, he needs to click on “Inbox” button, or if he wants to compose his message and send, he needs to
click on “Compose” button, or if he wants to listen to the mail he has recently sent, he needs to click on “Sent”
button. If the user wishes to logout of his account, then he can do the same by clicking on “Logout” button.
Inbox:
Here, each button represents a mail received by the user. When the user hovers over the button, he will be
informed who the sender is. If he wishes to listen to the mail, he has to click the button. On clicking the
respective button for the mail, the corresponding mail will be read out to him. Only after he has finished
listening to the current mail, he can either listen to other mail or return back to Home Page.
Compose:
The user has three options: to record, listen and send the mail. On clicking the record button, he can record the
message for a maximum time limit of 5 seconds. This recording will be saved as an audio file. He can now
listen to this message by clicking on the “Listen” button. Finally, by clicking the “Send” button, the audio
message will be sent to the specified recipient.
The mail sent by the user will be shown in this module. When the user hovers over the button, he will be told
to click on the button to listen to his sent mail. When he clicks the button, the most recent sent mail will be
read out to him.
When the user clicks the “Logout” button, he will be logged out of his mail account and will be directed
back to the Welcome Page.
1. If the system doesn’t support the specified version of Python used for this application.
2. If the system’s speaker or earphones are not working properly.
3. If wrong credentials are provided.
CONCLUSION
9.1 CONCLUSION
The application is designed in such a way that it succeeds in implementing the basic features of mail
service, based almost entirely on mouse clicks.
Unlike current system, this system focuses more on user friendliness of all types of people including normal
people .