A Voice-Activated Undergraduate Computer Science Advising System Submitted to: Professor. Hubert A. Johnson Software Engineering & Reliability CSIT 515_01 FALL22 Submitted by: Geek Squad NAME /CWID EMAIL-ID/PHONE SANDEEP RAO REDDIMALLA (50062206) REDDIMALLAS1@MONTCLAIR.EDU ESWAR SAI KORRAPATI (50066572) KORRIPATIE1@MONTCLAIR.EDU ADITYA KATKOJU (50059105) KATKOJUA1@MONTCLAIR.EDU HARI PRIYA RETNENI (50065577) RETNENIH1@MONTCLAIR.EDU SRUJAN GAMBIRRAO (50069072) GAMBIRRAOS1@MONTCLAIR.EDU 1 ACKNOWLEDGEMENT We are pleased to present “A Voice-Activated Undergraduate Computer Science Advising System” project and take this opportunity to express our profound gratitude to all those people who helped us in completion of this project. We express our deepest gratitude towards our Prof. Hubert Johnson who gave a valuable and timely advice during the various phases in our project. We would also like to thank him for providing us with all proper facilities and support. We would like to thank her for support, patience, and faith in our capabilities and for giving us flexibility in terms of working and reporting schedules. 1 ABSTRACT Voice recognition system: speech-to-text is a software that lets the user control computer functions and dedicates text by voice. The system consists of two components, first component is for processing acoustic signal which is captured by a microphone and second component is to interpret the processed signal, then mapping of the signal to words. model for each letter will be built using Hidden Markov Model (HMM). feature extraction will be done using Mel Frequency Cepstral Co-efficient (MFCC). Feature training of the data set will be done using vector quantization and feature testing of the data set will be done using Viterbi algorithm. Home automation will be completely based on voice recognition system. Keywords: Voice recognition, MFCC, HMM, Vector quantization, Viterbi algorithm, PHP, SQL. 2 LIST OF FIGURES Figure 3.1.1: overview of voice recognization system 15 Figure 4.1.1: voice activated advising system Flowchart 21 Figure 4.1.2: Sequence Diagram of voice activated advising system 22 Figure 4.1.3: Class Diagram 23 Figure 4.1.4: Use case diagram 24 Figure 5.1: Phase of Software Development 29 3 LIST OF TABLES Table 3.4.1: Client-side Hardware requirement 19 Table 3.4.2: Client-side Software requirement 20 Table 5.4.4: Module Test Cases 31 4 LIST OF ABBREVIATIONS CSS Cascading Style Sheets GUI Graphical User Interface HDD Hard Disk Drive HTML Hypertext Markup Language HTTP Hyper Text Transfer Protocol HTTPs Hyper Text Transfer Protocol Secured SDLC System Development Life Cycle UML Unified Modeling Language GPIS Graphical Password through Image Segmentation PHP Hypertext Preprocessor SQL Structured Query Language 5 Table of Contents ACKNOWLEDGEMENT ............................................................................................... 1 ABSTRACT .................................................................................................................... 2 LIST OF FIGURES ......................................................................................................... 3 LIST OF ABBREVIATIONS .......................................................................................... 5 CHAPTER 1: INTRODUCTION .................................................................................... 9 1.1 Introduction of the Project ......................................................................................9 1.2 Objective ............................................................................................................. 11 1.3 Problem Statement ............................................................................................... 11 1.4 Purpose ................................................................................................................ 11 1.5 Intended Audience ............................................................................................... 11 CHAPTER 2: LITERATURE REVIEW ........................................................................ 12 2.1 Existing System Review ...................................................................................... 12 CHAPTER 3: SYSTEM ANALYSIS ............................................................................ 15 3.1 Requirement Analysis .......................................................................................... 15 3.1.1 Functional Requirements ............................................................................... 15 3.1.2 Non- Functional Requirements ...................................................................... 16 3.2 Feasibility Study .................................................................................................. 17 3.2.1 Technical Feasibility ..................................................................................... 18 3.2.2 Economical Feasibility .................................................................................. 18 3.2.3 Operational Feasibility .................................................................................. 18 3.2.4 Schedule Feasibility ...................................................................................... 18 3.4 Technical Requirement ........................................................................................ 19 6 3.4.1 System Hardware Architecture ...................................................................... 19 3.4.2 System software architecture ......................................................................... 19 CHAPTER 4: SYSTEM DESIGN ................................................................................. 21 4.1 System Design ..................................................................................................... 21 4.1.1 System Flow Diagram ................................................................................... 21 4.1.2 Sequence Diagram ........................................................................................ 22 4.1.3 Class Diagram ............................................................................................... 23 4.1.4 Use Case Diagram ......................................................................................... 24 CHAPTER 5: IMPLEMENTATION AND TESTING ................................................... 25 5.1 Implementation .................................................................................................... 25 5.2 Tools Used ........................................................................................................... 25 5.2.1 Front End Tools ............................................................................................ 25 5.2.2 Back-End Tools ............................................................................................ 26 5.2.3 Documentation Tools .................................................................................... 27 5.2.4 Coding tools .................................................................................................. 27 5.3 Development Methodology .................................................................................. 27 5.4 Testing ................................................................................................................. 29 5.4.1 Unit Testing .................................................................................................. 29 5.4.2 Integration Testing ........................................................................................ 29 5.4.3 System Testing .............................................................................................. 30 5.4.4 Module Test Cases ........................................................................................ 30 7 CHAPTER 6: CONCLUSION ....................................................................................... 32 6.1 Conclusion: .......................................................................................................... 32 APPENDICES ............................................................................................................... 35 8 CHAPTER 1: INTRODUCTION 1.1 Introduction of the Project Voice is the basic, common, and efficient form of communication method for people to interact with each other. Today speech technologies are commonly available for a limited but interesting range of task. These technologies enable machines to respond correctly and reliably to human voices and provide useful and valuable services. As communicating with computer is faster using voice rather than using keyboard, so people will prefer such system. Communication among the human being is dominated by spoken language, therefore it is natural for people to expect voice interfaces with computer. This can be accomplished by developing voice recognition system: speech-to-text which allows computer to translate voice request and dictation into text. Voice recognition system: speech-to-text is the process of converting an acoustic signal which is captured using a microphone to a set of words. The recorded data can be used for document preparation. 2. Classification of speech recognition system: Speech recognition system can be classified in several different types by describing the type of speech utterance, type of speaker model and type of viability that they have ability to recognize. The challenges are briefly explained below: A. Types of speech utterance Speech recognition are classified according to what type of utterance they have ability to recognize. They are classified as: 1) Isolated word: Isolated word recognizer usually requires each spoken word to have quiet (lack of an audio signal) on bot h side of the sample window. It accepts single word at a time. 2) Connected word: It is like isolated word, but it allows separate utterances to „run-together‟ which contains a minimum pause in between them. 3) Continuous Speech: it allows the users to speak naturally and in parallel the computer will determine the content. 4) Spontaneous Speech: It is the type of speech which is natural sounding and is not rehearsed. B. Types of speaker model Speech recognition system is broadly into two main categories based on speaker models namely speaker dependent and speaker independent. 9 1) Speaker dependent models: These systems are designed for a specific speaker. They are easier to develop and more accurate, but they are not so flexible. 2) Speaker independent models: These systems are designed for variety of speaker. These systems are difficult to develop and less accurate, but they are very much flexible. C. Types of vocabulary the vocabulary size of speech recognition system affects the processing requirements, accuracy, and complexity of the system. In voice recognition system: speech-to-text the types of vocabularies can be classified as follows: 1) Small vocabulary: single letter. 2) Medium vocabulary: two or three letter words. 3) Large vocabulary: more letter words 3. Survey of research papers: Academic advising is an important and time-consuming task and different tools, and techniques can be used to make it an effective and efficient process. Most of the process, however, relies on personal interactions between students and advisors, which leads to problems such as inconsistencies among different advisors and poor utilization of resources, since very often a good portion of the advisors’ time is spent answering recurrent questions and solving trivial class scheduling problems. In response to these problems, the Department of Computer Science and Engineering (CSE) at Florida Atlantic University (FAU) has been working since 1999 on a project that supplements the conventional advising process with a voice activated advising system. The CSE department at FAU currently has approximately 700 undergraduate Computer Science (CS) and 300 undergraduate Computer Engineering (CE) students. Advising undergraduate CS and CE students is an important and time-consuming task in the department. To accomplish it effectively and efficiently several different 10 1.2 Objective The objective of this project is: It allows a student who’s major or minor is Computer Science or IT to obtain automatic advising from the system pertaining to appropriate course. It also tells that which courses need to be taken by the student at a particular semester to complete his degree. 1.3 Problem Statement The overall motive of the project is that “It allows a student who’s major or minor is Computer Science or IT to obtain automatic advising from the system pertaining to appropriate course which needs to be taken and which courses the students permitted to take at a particular juncture during their pursuit of the degree. 1.4 Purpose This software requirement specification (SRS) article defines the " A Voice-Activated Undergraduate Computer Science Advising System " in both functional and non-functional terms. The system's scope, vision, use case, features, and other associated requirement concerns are detailly described after the working and objectives are briefly outlined. This document should be referred to as the functional model of the system in later phases of the project, such as system design, database design, implementation, and testing. 1.5 Intended Audience The document is intended for a variety of readers, including developers, administrators, and authorized users. The rest of this SRS includes an overall description, needs for external interfaces, system features, and other non-functional requirements. 11 CHAPTER 2: LITERATURE REVIEW The project aims to provide a feature and content-rich web application that allows computer science or IT students to register for courses 2.1 Existing System Review Kuldip K. Paliwal and et al in the year 2004 had discussed that without being affected by their popularity for front end parameter in speech recognition, the cepstral coefficients which had been obtained from linear prediction analysis is sensitive to noise. Here, the use of spectral sub band centroids had been discussed by them for robust speech recognition. They discussed that performance of recognition can be achieved if the centroids are selected properly as in comparison with MFCC. to construct a dynamic centroid feature vector a procedure had been proposed which essentially includes the information of transitional spectral information. Esfandier Zavarehei and et al in the year 2005, studied that a time-frequency estimator for enhancement of noisy speech signal in DFT domain is introduced. It is based on low order auto regressive process which is used for modelling. The time-varying trajectory of DFT component in speech which has been formed in Kalman filter state equation. For restarting Kalman filter, a method has been formed to make alteration on the onsets of speech. The performance of this method was compared with parametric spectral subtraction and MMSE estimator for the increment of noisy speech. The resultant of the proposed method is that residual noise is reduced and quality of speech in improved using Kalman filters [2]. Ibrahim Patel and et al in the year 2010, had discussed that frequency spectral information with Mel frequency is used to present as an approach in the recognition of speech for improvement of speech, based on recognition approach which is represented in HMM. A combination of frequency spectral information in the conventional Mel spectrum which is based on the approach of speech recognition. The approach of Mel frequency utilizes the frequency observation in speech within a given resolution resulting in the overlapping of resolution feature which results in the limit of recognition. In speech recognition system, which is based on HMM, resolution decomposition is used with a mapping approach in a separating frequency. The result of the study is that there is an improvement in quality metrics of speech recognition with respect to the computational time and learning accuracy in speech recognition system. Kavita Sharma and Prateek Hakar in the year 2012 has represented recognition of speech in a broader solution. It refers 12 to the technology that will recognize the speech without being targeted at single speaker. Variability in speech pattern, in speech recognition is the main problem. Speaker characteristics which include accent, noise and co-articulation are the most challenging sources in the variation of speech. In speech recognition system, the function of basilar membrane is copied in the frontend of the filter bank. To obtain better recognition results it is believed that the band subdivision is closer to the human perception. In speech recognition system the filter which is constructed for speech recognition is estimated of noise and clean speech. Puneet Kaur, Bhupender Singh, and Neha Kapur in the year 2012 had discussed how to use Hidden Markov Model in the process of recognition of speech. To develop an ASR (Automatic Speech Recognition) system the essential three steps necessary are pre-processing, feature Extraction and recognition and finally hidden markov model is used to get the desired result. Research persons are continuously trying to develop a perfect ASR system as there are already huge advancements in the field of digital signal processing but at the same time performance of the computer are not so high in this field in terms of speed of response and matching accuracy. The three different techniques used by research fellows are acoustic phonetic approach, pattern recognition approach and knowledge-based approach. Chadawan Ittichaichareon and Patiyuth Pramkeaw in the year 2012 had discussed that signal processing toolbox has been used to implement the low pass filter with finite impulse response. Computational implementation and analytical design of finite impulse response filter has been successfully accomplished by performing the performance evaluation at signal to noise ratio level. The results are improved in terms of recognition when low pass filters are used as compared to those process which involves speech signal without filtering. Geeta Nijhawan, Poonam Pandit and Shivanker Dev Dhingra in the year 2013 had discussed the techniques of dynamic time warping and Mel scale frequency cepstral coefficient in the isolated speech recognition. Different features of the spoken word had been extracted from the input speech. A sample of 5 speakers has been collected and each had spoken 10 digits. A database is made on this basis. Then feature has been extracted using MFCC.DTW is used for effectively dealing with various speaking speed. It is used for similarity measurement between two sequence which varies in speed and time. 13 2.2 Table Comparison: Table 1: Table of comparison. 14 CHAPTER 3: SYSTEM ANALYSIS 3.1 Requirement Analysis Requirement analysis for this study has been done by first identifying key factors that will affect the project and key people who will be affected by the project. Every system needs some requirements for development process. Without requirements the system cannot be developed. It includes: 3.1.1 Functional Requirements The functional requirement for a system should describe what the system do or perform. These requirements depend on the type of software being developed, the expected user of the software and the general approach taken by the organization when writing requirements. Functional requirements describe system function in detail with its input, output, and so on. The proposed system allows user to register for classes and edit or drop them. The next time, the user logs on to the system the courses he registered should be visible. Then the project is said to be done. Overview of Voice Recognition System: Figure 3.1.1: Overview of Voice Recognition System: Speech-to-text. 15 Input signal- Voice input by the user. Feature Extraction- it should retain useful information of the signal, deduct redundant and unwanted information, show less variation from one speaking environment to another, occur normally and naturally in speech. Acoustic model- it contains statistical representations of each distinct sounds that makes up a word. Decoder- it will decode the input signal after feature extraction and will show the desired output. Language model- it assigns a probability to a sequence of words by means of a probability distribution. Outputinterpreted text is given by the computer. The main of the project is to recognize speech using MFCC and VQ techniques. The feature extraction will be done using Mel Frequency Cepstral Coefficients (MFCC). The steps of MFCC are as follows: 1) Framing and Blocking 2) Windowing 3) FFT (Fast Fourier Transform) 4) Mel-Scale 5) Discrete Cosine Transform (DCT) Feature matching will be done using Vector Quantization technique. The steps are as follows: 1) By choosing any two dimensions, inspection on vectors is done and data points are plotted. 2) To check whether data region for two different speakers are overlapping each other and in same cluster, observation is needed. 3) Using LGB algorithm Function Vqlbg will train the VQ codebook. The extracted features will be stored in .mat file using MFCC algorithm. Models will be created using Hidden Markov Model (HMM). The desired output will be shown in MATLAB interface. 3.1.2 Non- Functional Requirements There are constraints on the services or functions offered by “ A Voice-Activated Undergraduate Computer Science Advising System” such as timing constraints, constraints on the development process, standards, etc. After conducting requirement analysis some of the non-functional requirements were find out. Some of them are listed that are useful to restate the problem definition are given below: ● User Interface: 16 o The system maintains an easy-to-use interface across all functionalities and for all users. o The client’s user interface is compatible with all commonly used browsers. ● Scalability: o Some systems can’t provide the high-level security when the data to be embedded is large. In that case, scalability plays major role. ● Portability: o The system is run on a variety of web browsers including chrome, Mozilla Firefox etc. ● Maintainability: o There is a clear separation of back end and front end. o There is a clear separation between the data access objects that map the database and the business logic code. ● Availability: o The program should provide the security from unauthorized modifications. o The program should be flexible and should be available within a mean time and should work in any operating system 3.2 Feasibility Study Voice activated advising system uses simple development tools and uses no physical hardware devices. Beside this, it contains single database which is feasible and easy to develop and maintain. Voice system for administration use only computers and internet. In a concise way, a feasibility study evaluates the project’s potential for success. There are some feasibility studies which will be performed on the project working. Some of the feasibility studies are: Technical Feasibility Operational Feasibility Economic Feasibility Schedule Feasibility 17 3.2.1 Technical Feasibility The system uses simple development tools and use no physical hardware devices. Beside this, it is feasible and easy to develop and maintain. voice system for administration uses only computers, and internet. On the other hand, web app uses personal data or existing Wi-Fi technology which is technically feasible. 3.2.2 Economical Feasibility Voice activated advising system is economically feasible since it can be used through a single computer device having internet access. This application is economically feasible because this application is made using open-source software and the time spend in the development of this application is 3 months. 3.2.3 Operational Feasibility The system can easily be developed under less operational effort and can be implemented under current technology. User with low technical knowledge may get deprive from the benefits that the system provides but rapid increase in use of smart device which made this system easily accessible to all level users. 3.2.4 Schedule Feasibility Schedule Feasibility is the probability of a project to be completed within its scheduled time limits, by a planned due date. If a project has a high probability to be completed on-time, then its schedule feasibility is appraised as high. Schedule feasibility study includes use of Project Estimation and Gantt charts. To make sure the project is completed before it loses it utility, one had to give proper attention to controlling the schedule feasibility: to calculate and continually reexamine whether it is possible to complete all amount of work lying ahead within specified time in the Gantt chart. 18 3.4 Technical Requirement 3.4.1 System Hardware Architecture Hardware architecture refers to the identification of a system’s physical components and their interrelationships. This allows to understand how the components fit into a system architecture and provides information needed for the software development and integration. If these following hardware configurations are met, the system will run smoothly. Client-side Hardware Requirements Requirements Minimum Specification Processor I3 Processor Based Computer RAM 2 GB HDD 5 GB Display Monitor Table 3.4.1: Client-Side Hardware Requirement 3.4.2 System software architecture The system software architecture refers to the high level of structures of a software system and the discipline of creating such structures, and system. Each structure comprises software elements, relations among them. The architecture has been designed with various semi structures of the parts of the software phases. 19 Client-side Software Requirements Requirements Minimum Specification Host Operating System Windows 7 or higher Browser Edge, Firefox 3.5+, Chrome, Opera 9+ Protocols TCP/IP, HTTP, SMTP, HTTPS Table 3.4.2: Client-Side Software Requirement 20 CHAPTER 4: SYSTEM DESIGN 4.1 System Design System design is the process of defining the elements of a system such as the architecture, modules and components, the different interfaces of those components and the data that goes through that system. It is meant to satisfy specific needs and requirements of a business or organization through the engineering of a coherent and well-running system. 4.1.1 System Flow Diagram The flow chart given below shows the flow of the system briefly which simplifies the prominent working of the system. Fig 4.1.1: Voice Activated Advising System Flowchart 21 4.1.2 Sequence Diagram Sequence Diagrams are interaction diagrams that detail how operations are carried out. They capture the interaction between objects in the context of a collaboration. Sequence Diagrams are time focus, and they show the order of the interaction visually by using the vertical axis of the diagram to represent time what messages are sent and when. The sequence diagram for the system is shown below: Fig 4.1.2: Sequence Diagram of voice activated advising system 22 4.1.3 Class Diagram Class diagrams are the blueprints of your system or subsystem. You can use class diagrams to model the objects that make up the system, to display the relationships between the objects, and to describe what those objects do and the services that they provide. Class diagrams are useful in many stages of system design. Operations are descriptions of behavioral or dynamic features of a class The below is a class diagram of the system that shows the flow of system through different phases. Fig 4.1.3: Class Diagram 23 4.1.4 Use Case Diagram A use-case model is a model of how different types of users interact with the system to solve a problem. As such, it describes the goals of the users, the interactions between the users and the system, and the required behavior of the system in satisfying these goals. A use-case model consists of several model elements. The most important model elements are use cases, actors and the relationships between them. Fig 4.1.4: Use case diagram: voice activated advising system 24 CHAPTER 5: IMPLEMENTATION AND TESTING 5.1 Implementation There are five major tasks in this phase: coding, testing, installation, documentation, and training. The purpose of this phase is to convert the physical system specifications into working and reliable software and hardware, document the work that have been done and provide help for current and future users. The application is developed in keeping the user’s perspective. The application is targeted to the end use so it must fulfill the requirement of the users. Various tools and coding languages are used, which are very essential for the development of the application. 5.2 Tools Used We have used various tools throughout the project. For Front end design, for diagrammatic representation, flow diagrams, Activity diagrams, for documentation purposes etc. 5.2.1 Front End Tools Javascript, HTML, CSS: HTML is used for the design of the webpage. CSS is used for styling of the webpage. Javascript is used for interaction with backend tools like PHP and SQL. Data Source Controls For binding data to controls on Web pages, you can now use data source controls, which encapsulate connections, query commands, and parameters into a single control. It includes data source controls that work with a variety of back-end data sources, including Microsoft SQL Server, Microsoft Access, XML files, Web services, FrontPage site maps, and business objects that return data sets. All data source controls support the same basic object model, giving you a consistent way to work with data regardless of its source. 25 Data source controls can automatically fetch data and manage it when the page runs. You no longer need to write code to execute commands and manage datasets for common data scenarios. To pass parameters to data source controls, you can configure the controls to draw parameters values from other controls, Session state, query strings, or cookies; in addition, you can set parameter values programmatically. 5.2.2 Back-End Tools PHP It is used to interact with databases by creating dynamic content. It is a server-side scripting language. Microsoft SQL Server 2005 Microsoft® SQL Server™ 2005is a set of components that work together to meet the data storage and analysis needs of the largest Web sites and enterprise data processing systems. The topics in SQL Server Architecture describe how the various components work together to manage data effectively. Microsoft® SQL Server™ 2005data is stored in databases. The data in a database is organized into the logical components visible to users. A database is also physically implemented as two or more files on disk. Each instance of SQL Server has four system databases (master, model, temp db and msdb) and one or more user databases (hmd db, Address Book, payroll, sales, employees). Some organizations have only one user database, containing all the data for their organization. Some organizations have different databases for each group in their organization, and sometimes a database used by a single application. For example, an organization could have one database for sales, one for payroll, one for a document management application, and so on. Sometimes an application uses only one database; other applications may access several databases. 26 It is not necessary to run multiple copies of the SQL Server database engine to allow multiple users to access the databases on a server. An instance of the SQL Server Standard or Enterprise Edition is capable of handling thousands of users working in multiple databases at the same time. Each instance of SQL Server makes all databases in the instance available to all users that connect to the instance, subject to the defined security permissions. When connecting to an instance of SQL Server, your connection is associated with a particular database on the server. This database is called the current database. 5.2.3 Documentation Tools ● Microsoft Word: It is a graphical word processing program that users can type with. It is made by the computer company Microsoft. In our project Microsoft word is used for documentation process. ● Draw.io: Draw.io, a web application, is a production-grade, open-source technology stack for building diagramming applications, and the world’s most widely used browser-based end user diagramming application. In our project it is used to create diagrams in a simple and convenient way this tool is used. 5.2.4 Coding tools ● XAMPP: Sublime Text editor is the text editor used for coding purpose. Sublime Text is a sophisticated text editor used for coding purpose. It has the slick user interface, extraordinary features, and amazing performance. Some of its major features for selection of this code editor are code preview, fast performance, div highlighting, plugin community, configurability, lightning-fast loading, and better stability. 5.3 Development Methodology After some research, I discovered that the processing of the data should be highly structured and very well understood in the many different stages. Therefore, we chose waterfall model as the software development model. The waterfall model is executed in sequential phases. For each phase, we would need to identify the different tasks that are being needed to perform and this 27 would allow tracking of the progress easily before proceeding to the next phase. As such, these datelines will act as milestones to know whether the project is on schedule, behind schedule or in front of schedule. All these makes monitoring of the progress of the whole schedule easier. So, it can be concluded that with the use of the waterfall model, the developer can execute a high level of control on the progress of the whole project and a higher quality of the design and implementation of the different phases of the projects can be expected with this tighter control on the project as each phase is to be complete with satisfaction before proceeding to the next phase. As the Waterfall Model illustrates the software development process in a linear sequential flow; hence it is also referred to as a Linear-Sequential Life Cycle Model (Brien, 2011). It is very simple to understand and use. In a waterfall model, each phase must be completed before the next phase can begin and there is no overlapping in the phases. The Waterfall model is the earliest SDLC approach that was used for software development. The waterfall Model illustrates the software development process in a linear sequential flow. This means that any phase in the development process begins only if the previous phase is complete. In this waterfall model, the phases do not overlap. Fig 5.1: Phases of Software development 28 5.4 Testing After the code was developed in the coding phase, the codes were tested to check whether it complied with the requirements and that the code solved the needs that were addressed in the requirements phase. Testing has been done for the individual activities of the project. Errors that occurred were corrected and further debugging was performed. In testing phase, various units, modules, interfaces were tested. Different types of testing methods like unit testing, system testing was conducted. 5.4.1 Unit Testing Unit Testing is done to verify that each unit function properly. After the coding of modules, they were tested, made error free and debugged. In this way we carried out the unit test. Some of them are listed on the table. In this testing phase, each function/ module like login and send message feature were tested before integrating. The errors were corrected, and modifications were done according to the requirement. 5.4.2 Integration Testing Integration testing (I&T) is a software development process in which program modules are merged and tested as a group in a variety of methods. A unit is the smallest tested portion of an application in this context. Integration testing can reveal issues with software component interfaces before they become difficulties in real-world program operation. Integration testing is a part of Extreme Programming, a pragmatic software development strategy that takes a thorough approach to producing a product through continuous testing and revision. The bottom-up approach and the top-down method are the two main methods for performing an integration test. Unit testing is the first step of bottom-up integration testing, which is followed by tests of increasingly higher-level combinations of units termed modules or builds. The highest-level modules are checked first in top-down integration testing, followed by increasingly lower-level modules. Bottom-up testing is frequently done first in a thorough software development environment, followed by top-down testing. 29 5.4.3 System Testing System testing is a level of software testing where a complete and integrated software is tested. The purpose of this test is to evaluate the system’s compliance with the specified requirements. This testing is done to check whether the system works accurately and efficiently before live operation commences. In this testing, the whole web application is tested including its responsiveness, log-in, sign-up, send message feature. 5.4.4 Module Test Cases Login Registration Cas e# Tester Permissi on Level Page 1 0 Login Page Test Case Tester fills out all entry information and clicks login. Expected Actual Result Result Login Succ essfu l Login Successful. Result Pass 30 database, the system will display registration successful, and the user will be able to Login into the homepage using the created credentials. 2 0 Click on start Should ask microphone access. Displays the microphone access Pass 3 1 Say semesters It should display three semesters Spring 2023, Fall 2023, Spring 2024. Displays the three semesters Pass 4 1 Say semester name It should get into particular semester. It goes into particular semester Pass 5 2 Say course names It should display all the courses listed It displays all courses Pass 6 2 Select Course It should add the course It adds the described course Pass 7 3 Add/Drop It should add new courses or drop the older ones. It adds or drops courses Pass 8 4 Logout It should logout from the website It logs out Pass 31 CHAPTER 6: CONCLUSION 6.1 Conclusion: In this work the fundamentals are discussed, and its recent progress is investigated. The various approaches available for developing a Voice Recognition System based on adapted feature extraction technique and the speech recognition approach for the language are compared in this paper. The main aim of our project is to develop a system that will allow the computer science or it to register for courses through voice detection and help them get the degree certificate. 32 REFERENCES [1] Jindong Chen, Member, Yutong (Arden) Huang, Qi Li, Kuldip K. Pallial, “Recognition of Noisy Speech using Dynamic Spectral Subban Centroids” IEEE SSIGNAL PROCESSING LETTERS, Vol. 11, Number 2, February 2004. [2] Hakam Erdogan, Ruchi Sari kaya, Yuqin Gao, “Using semantic analysis to improve speech recognition performance” Computer Speech and Language, ELSEVIER 2005. [3] Carawan Ittichaichareon, Patiyuth Pramkeaw, “Improving MFCC-based Speech Classification with FIR Filter” International Conference on Computer Graphics, Simulation and Modelling (ICGSM‟2012) July 28-29, 2012, Pattaya (Thailand). [4] Bhupinder Singh, Neha Kapur, Puneet Kaur “Speech Recognition with Hidden Markov Model: A Review” International Journal of Advanced Research in Computer and Software Engineering, Vol. 2, Issue 3, March 2012. [5] Shivanker Dev Dhingra, Geeta Nijhawan, Poonam Pandit, “Isolated Speech Recognition using MFCC and DTW” International Journal of Advance Research in Electrical, Electronics and Instrumentation Engineering, Vol.2, Issue 8, August 2013. [6] Ibrahim Patel, Dr. Y. Srinivas Rao, “Speech Recognition using HMM with MFCC-an analysis using Frequency Spectral Decomposition Technique” Signal and Image Processing: An International Journal (SIPIJ), Vol.1, Number.2, December 2010. [7] Om Prakash Prabhakar, Navneet Kumar Sahoo” A Survey on Voice Command Recognition Technique” International Journal of Advanced Research in Computer and Software Engineering, Vol 3, Issue 5, May 2013. [8] M A Abusua, “Speech recognition by Machine”, International Journal of Computer Science and Information security, Vol. 6, number 3,2009. [9] Sikha Gupta, Jafreezal Jaafar, Wan Fatimah wan Ahmad, Arpit Bansal, “Feature Extraction Using MFCC” Signal & Image Processing: An International Journal, Vol 4, No. 4, August 2013. 33 [10] Kavita Sharma, Prateek Hakar “Speech Denoising Using Different Types of Filters” International journal of Engineering Research and Applications Vol. 2, Issue 1, Jan-Feb 2012 34 APPENDICES A voice-based unlock system for our computer will be the application that will take our voice as input and process that voice converts it into a text-based instruction for our computer and then perform an action based on that instruction. This process uses The State-of-the-art process in a speech to text, Natural Language Understanding, and Deep Learning in the text to speech. The first step to build a voice-based application in our application is to listen to the user’s voice command. Codes: getdata.php <?php include 'config.php'; $searchText = $_POST['speechText']; // search query $query = 'SELECT * FROM posts WHERE title like "%'.$searchText.'%" or content like "%'.$searchText.'%" '; $result = mysqli_query($con,$query); $html = ''; if(mysqli_num_rows($result) > 0){ while($row = mysqli_fetch_array($result)){ $id = $row['id']; $title = $row['title']; 35 $content = $row['content']; $shortcontent = substr($content, 0, 160)."..."; // $link = $row['link']; // Creating HTML structure $html .= '<div id="post_'.$id.'" class="post"> <a href="adding.php">Add </a>'; $html .= '<h1>'.$title.'</h1>'; $html .= '<p>'.$shortcontent.'</p>'; // $html .= '<a href="'.$link.'" class="more" target="_blank">More</a>'; $html .= '</div>'; } }else{ $html .= '<div >'; $html .= '<p>No Record Found.</p>'; $html .= '</div>'; } echo $html; exit; edit.php <?php // including the database connection file include_once("config.php"); if(isset($_POST['update'])) { $id = mysqli_real_escape_string($con, $_POST['id']); $name = mysqli_real_escape_string($con, $_POST['name']); 36 // $age = mysqli_real_escape_string($mysqli, $_POST['age']); // $email = mysqli_real_escape_string($mysqli, $_POST['email']); // checking empty fields if(empty($name) ) { // if(empty($name)) { // echo "<font color='red'>Name field is empty.</font><br/>"; // } // if(empty($age)) { // echo "<font color='red'>Age field is empty.</font><br/>"; // } // if(empty($email)) { // echo "<font color='red'>Email field is empty.</font><br/>"; // } } else { //updating the table $result = mysqli_query($con, "UPDATE courses SET name='$name' WHERE id=$id"); //redirecting to the display page. In our case, it is index.php header("Location: index.php"); } } ?> <?php //getting id from url $id = $_GET['id']; //selecting data associated with this particular id $result = mysqli_query($con, "SELECT * FROM courses WHERE id=$id"); while($res = mysqli_fetch_array($result)) { $name = $res['name']; } ?> <html> <head> <title>Edit Data</title> </head> <body> 37 <a href="index.php">Home</a> <br/><br/> <form name="form1" method="post" action="edit.php"> <table border="0"> <tr> <td>Name</td> <td><input type="text" name="name" value="<?php echo $name;?>"></td> </tr> <tr> <td><input type="hidden" name="id" value=<?php echo $_GET['id'];?>></td> <td><input type="submit" name="update" value="Update"></td> </tr> </table> </form> </body> </html> delete.php <?php //including the database connection file include("config.php"); //getting id of the data from url $id = $_GET['id']; //deleting the row from table $result = mysqli_query($con, "DELETE FROM courses WHERE id=$id"); //redirecting to the display page (index.php in our case) header("Location:index.php"); ?> adding.php 38 <?php //including the database connection file include_once("config.php"); //fetching data in descending order (latest entry first) //$result = mysql_query("SELECT * FROM users ORDER BY id DESC"); // mysql_query is deprecated $result = mysqli_query($con, "SELECT * FROM courses ORDER BY id DESC"); // using mysqli_query instead ?> <html> <head> <title>Homepage</title> </head> <body> <a href="adding.php">Add New Data</a><br/><br/> <table width='80%' border=0> <tr bgcolor='#CCCCCC'> <td>Name</td> <td>Update</td> </tr> <?php //while($res = mysql_fetch_array($result)) { // mysql_fetch_array is deprecated, we need to use mysqli_fetch_array while($res = mysqli_fetch_array($result)) { 39 echo "<tr>"; echo "<td>".$res['name']."</td>"; echo "<td><a href=\"edit.php?id=$res[id]\">Edit</a> | <a href=\"delete.php?id=$res[id]\" onClick=\"return confirm('Are you sure you want to delete?')\">Delete</a></td>"; } ?> </table> </body> </html> login.php <?php // Initialize the session session_start(); // Check if the user is already logged in, if yes then redirect him to welcome page if(isset($_SESSION["loggedin"]) && $_SESSION["loggedin"] === true){ header("location: index.php"); exit; } // Include config file require_once "config.php"; // Define variables and initialize with empty values $username = $password = ""; $username_err = $password_err = $login_err = ""; 40 // Processing form data when form is submitted if($_SERVER["REQUEST_METHOD"] == "POST"){ // Check if username is empty if(empty(trim($_POST["username"]))){ $username_err = "Please enter username."; } else{ $username = trim($_POST["username"]); } // Check if password is empty if(empty(trim($_POST["password"]))){ $password_err = "Please enter your password."; } else{ $password = trim($_POST["password"]); } // Validate credentials if(empty($username_err) && empty($password_err)){ // Prepare a select statement $sql = "SELECT id, username, password FROM users WHERE username = ?"; if($stmt = mysqli_prepare($con , $sql)){ // Bind variables to the prepared statement as parameters mysqli_stmt_bind_param($stmt, "s", $param_username); // Set parameters $param_username = $username; // Attempt to execute the prepared statement 41 if(mysqli_stmt_execute($stmt)){ // Store result mysqli_stmt_store_result($stmt); // Check if username exists, if yes then verify password if(mysqli_stmt_num_rows($stmt) == 1){ // Bind result variables mysqli_stmt_bind_result($stmt, $id, $username, $hashed_password); if(mysqli_stmt_fetch($stmt)){ if(password_verify($password, $hashed_password)){ // Password is correct, so start a new session session_start(); // Store data in session variables $_SESSION["loggedin"] = true; $_SESSION["id"] = $id; $_SESSION["username"] = $username; // Redirect user to welcome page header("location: index.php"); } else{ // Password is not valid, display a generic error message $login_err = "Invalid username or password."; } } } else{ // Username doesn't exist, display a generic error message $login_err = "Invalid username or password."; } } else{ echo "Oops! Something went wrong. Please try again later."; 42 } // Close statement mysqli_stmt_close($stmt); } } // Close connection mysqli_close($con); } ?> <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>Login</title> <link rel="stylesheet" href="https://stackpath.bootstrapcdn.com/bootstrap/4.5.2/css/bootstrap.min.css"> <style> body{ font: 14px sans-serif; } .wrapper{ width: 360px; padding: 20px; } </style> </head> <body> <div class="wrapper"> <h2>Login</h2> <p>Please fill in your credentials to login.</p> <?php if(!empty($login_err)){ 43 echo '<div class="alert alert-danger">' . $login_err . '</div>'; } ?> <form action="<?php echo htmlspecialchars($_SERVER["PHP_SELF"]); ?>" method="post"> <div class="form-group"> <label>Username</label> <input type="text" name="username" class="form-control <?php echo (!empty($username_err)) ? 'is-invalid' : ''; ?>" value="<?php echo $username; ?>"> <span class="invalid-feedback"><?php echo $username_err; ?></span> </div> <div class="form-group"> <label>Password</label> <input type="password" name="password" class="form-control <?php echo (!empty($password_err)) ? 'is-invalid' : ''; ?>"> <span class="invalid-feedback"><?php echo $password_err; ?></span> </div> <div class="form-group"> <input type="submit" class="btn btn-primary" value="Login"> </div> <!-- <p>Don't have an account? <a href="register.php">Sign up now</a>.</p> --> </form> </div> </body> </html> Index.php 44 <?php // Initialize the session session_start(); // Check if the user is logged in, if not then redirect him to login page if(!isset($_SESSION["loggedin"]) || $_SESSION["loggedin"] !== true){ header("location: login.php"); exit; } ?> <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>Welcome</title> <link rel="stylesheet" href="https://stackpath.bootstrapcdn.com/bootstrap/4.5.2/css/bootstrap.min.css"> <style> body{ font: 14px sans-serif; text-align: center; } </style> <link href='style.css' rel='stylesheet' type='text/css'> <script src="jquery-3.2.1.js"></script> <script type='text/javascript'> var recognition = new webkitSpeechRecognition(); recognition.onresult = function(event) { console.log('result'); var saidText = ""; for (var i = event.resultIndex; i < event.results.length; i++) { if (event.results[i].isFinal) { 45 saidText = event.results[i][0].transcript; } else { saidText += event.results[i][0].transcript; } } document.getElementById('speechText').value = saidText; // Search Posts searchPosts(saidText); } function startRecording(){ recognition.start(); } // Search Posts function searchPosts(saidText){ $.ajax({ url: 'getData.php', type: 'post', data: {speechText: saidText}, success: function(response){ $('.container').empty(); $('.container').append(response); } }); } </script> 46 </head> <body> <h1 class="my-5">Hi, <b><?php echo htmlspecialchars($_SESSION["username"]); ?></b>. Welcome to our site.</h1> <div class='search_container'> <!-- Search box--> <input type='text' id='speechText' > &nbsp; <input type='button' id='start' value='Start' onclick='startRecording();'> </div> <!-- Search Result --> <div class="container"></div> <p> <!-- <a href="reset-password.php" class="btn btn-warning">Reset Your Password</a> --> <a href="logout.php" class="btn btn-danger ml-3">Sign Out of Your Account</a> </p> </body> </html> Register.php <?php // Include config file require_once "config.php"; // Define variables and initialize with empty values $username = $password = $confirm_password = ""; $username_err = $password_err = $confirm_password_err = ""; // Processing form data when form is submitted 47 if($_SERVER["REQUEST_METHOD"] == "POST"){ // Validate username if(empty(trim($_POST["username"]))){ $username_err = "Please enter a username."; } elseif(!preg_match('/^[a-zA-Z0-9_]+$/', trim($_POST["username"]))){ $username_err = "Username can only contain letters, numbers, and underscores."; } else{ // Prepare a select statement $sql = "SELECT id FROM users WHERE username = ?"; if($stmt = mysqli_prepare($con, $sql)){ // Bind variables to the prepared statement as parameters mysqli_stmt_bind_param($stmt, "s", $param_username); // Set parameters $param_username = trim($_POST["username"]); // Attempt to execute the prepared statement if(mysqli_stmt_execute($stmt)){ /* store result */ mysqli_stmt_store_result($stmt); if(mysqli_stmt_num_rows($stmt) == 1){ $username_err = "This username is already taken."; } else{ $username = trim($_POST["username"]); } } else{ echo "Oops! Something went wrong. Please try again later."; 48 } // Close statement mysqli_stmt_close($stmt); } } // Validate password if(empty(trim($_POST["password"]))){ $password_err = "Please enter a password."; } elseif(strlen(trim($_POST["password"])) < 6){ $password_err = "Password must have atleast 6 characters."; } else{ $password = trim($_POST["password"]); } // Validate confirm password if(empty(trim($_POST["confirm_password"]))){ $confirm_password_err = "Please confirm password."; } else{ $confirm_password = trim($_POST["confirm_password"]); if(empty($password_err) && ($password != $confirm_password)){ $confirm_password_err = "Password did not match."; } } // Check input errors before inserting in database if(empty($username_err) && empty($password_err) && empty($confirm_password_err)){ // Prepare an insert statement 49 $sql = "INSERT INTO users (username, password) VALUES (?, ?)"; if($stmt = mysqli_prepare($con, $sql)){ // Bind variables to the prepared statement as parameters mysqli_stmt_bind_param($stmt, "ss", $param_username, $param_password); // Set parameters $param_username = $username; $param_password = password_hash($password, PASSWORD_DEFAULT); // Creates a password hash // Attempt to execute the prepared statement if(mysqli_stmt_execute($stmt)){ // Redirect to login page header("location: login.php"); } else{ echo "Oops! Something went wrong. Please try again later."; } // Close statement mysqli_stmt_close($stmt); } } // Close connection mysqli_close($con); } ?> <!DOCTYPE html> 50 <html lang="en"> <head> <meta charset="UTF-8"> <title>Sign Up</title> <link rel="stylesheet" href="https://stackpath.bootstrapcdn.com/bootstrap/4.5.2/css/bootstrap.min.css"> <style> body{ font: 14px sans-serif; } .wrapper{ width: 360px; padding: 20px; } </style> </head> <body> <div class="wrapper"> <h2>Sign Up</h2> <p>Please fill this form to create an account.</p> <form action="<?php echo htmlspecialchars($_SERVER["PHP_SELF"]); ?>" method="post"> <div class="form-group"> <label>Username</label> <input type="text" name="username" class="form-control <?php echo (!empty($username_err)) ? 'is-invalid' : ''; ?>" value="<?php echo $username; ?>"> <span class="invalid-feedback"><?php echo $username_err; ?></span> </div> <div class="form-group"> <label>Password</label> <input type="password" name="password" class="form-control <?php echo (!empty($password_err)) ? 'is-invalid' : ''; ?>" value="<?php echo $password; ?>"> <span class="invalid-feedback"><?php echo $password_err; ?></span> </div> <div class="form-group"> 51 <label>Confirm Password</label> <input type="password" name="confirm_password" class="form-control <?php echo (!empty($confirm_password_err)) ? 'is-invalid' : ''; ?>" value="<?php echo $confirm_password; ?>"> <span class="invalid-feedback"><?php echo $confirm_password_err; ?></span> </div> <div class="form-group"> <input type="submit" class="btn btn-primary" value="Submit"> <input type="reset" class="btn btn-secondary ml-2" value="Reset"> </div> <p>Already have an account? <a href="login.php">Login here</a>.</p> </form> </div> </body> </html> Logout.php <?php // Initialize the session session_start(); // Unset all of the session variables $_SESSION = array(); // Destroy the session. session_destroy(); // Redirect to login page header("location: login.php"); exit; 52 ?> Config.php <?php $host = "localhost"; /* Host name */ $user = "root"; /* User */ $password = ""; /* Password */ $dbname = "voice"; /* Database name */ $con = mysqli_connect($host, $user, $password,$dbname); // Check connection if (!$con) { die("Connection failed: " . mysqli_connect_error()); } 53 User manual Implementation: Voice recognition website to detect the voice and provide the output. This is a useful website for students to get their voice and courses will be list out. Student can add their courses. Students can update and delete the courses. Login screen: The student will login using the username and password: Username: eswar Password: 12345678 Dashboard 54 Voice detects: Click on start and say something like courses: Add courses Student can add courses using the add link. Edit and delete options are here and user can edit the course and can delete. 55 Edit course: Logout Student can logout from the website. 56 Database: 57