INTRODUCTION
Book Reading System for blind people" is a system using personal computer (PC) as the platform. It is a tactile reading system used by the blind and the visually impaired, and found in books. There are various ways in which blind and partially sighted people access information. For example, some use large or modified print materials, some use Braille and some use audio information. Traditionally, audio information has consisted of having information read out by another person - either live, or on a recording - but developments in technology have led to an alternative. Synthetic speech - which is artificial human speech - can be produced in a number of ways and used for a wide range of applications. These range from talking devices which use simple pre-recordings of a limited range of human speech to "text-to-speech" (TTS) synthesizers which use algorithms to convert any text input into a speech waveform, therefore have an unlimited vocabulary. Speech synthesizers and text-to-speech conversion programs make it possible for computers to pronounce any word.
1.1 PURPOSE
The main purpose of the project is to develop an application called Book Reading System for Blind People, To make usage of PCs more user friendly by developing text to speech synthesizer and to meet needs of visually impaired people. It can help blind people enjoy the experience of reading books. Years ago, people predicted that the end of the paper books is near due to new technologies. However, the popularity of books keeps increasing. It can take blind peoples education one step forward. Learning foreign languages, poetry, literature, English grammar etc. could be optimized using TTS. Blind people can
develop habits and hobbies using audio books. One could find audio books about every subject from fishing to knitting guides. It helps a lot of self creation, self confidence and awareness audio book guides which can help them.
1.2 SCOPE
To make usage of PCs more user friendly by developing text to speech synthesizer and to meet needs of visually impaired people in different languages. There is a great need to develop a text to speech converter tool with simple human computer interface in local language to meet needs of visually impaired people and to put foundation for side applications. To design and develop a computer interface for a person who cannot see what computer displays, is the most challenging task for many software developers. (1) To develop and implement the text to speech synthesizer. (2) Simple TTS interface for the blind people.
1.3 OVERVIEW
There is a great need to develop a text to speech converter tool with simple human computer interface in local language to meet needs of visually impaired people due to current market needs they do not recognize the needs of text to speech (TTS) converter. Synthetic speech is used by blind and partially sighted people in a range of applications, ranging from leisure activities to devices which support independent living. It highlights the importance of audio information as an alternative to print for blind and partially sighted people, and reveals a wide range of applications of text-to-speech (TTS) synthesis. These include educational tools (talking dictionaries, quick access to textbooks through TTS).
2. SYSTEM ANALYSIS
2.1. STUDY OF THE EXISTING SYSTEM
Braille is writing system which enables blind and partially sighted people to read and write through touch. It was invented by Louis Braille (1809-1852), who was blind and became a teacher of the blind. It consists of patterns of raised dots arranged in cells of up to six dots in a 3 x 2 configuration. Each cell represents a letter, numeral or punctuation mark.
2.1.1 Disadvantages
Unfortunately there is no systematic way of providing this information to the blind people today. Some of the means that are used today are Braille system, blind people depending on others to read books, audio books. No use of Web Services. No proper coordination between computer system and Users.
audio files and etc. The application would have minimum operations on a single page reducing the complexity of use.
2.3.1 Advantages
The project is identified by the merits of the system offered to the user. The merits of this project are as follows: Many educational programs could be used by blind people if the computer spoke what appears on the display screen. Staff members at Sensory Aids are revising some popular programs so that blind people can use them. Talking terminals make almost all the capabilities of a computer accessible to blind people. At Sensory Aids, blind people learn to use talking terminals for data entry, information retrieval, word processing, and programming. Blind people are able to navigate quickly on the screen and find information as they need it. The blind user of the talking terminal has a control that lets him move a pointer to any line on the display screen. It includes educational tools such as talking dictionaries, quick access to textbooks through TTS. It also helps in making decisions like open file, speak, pause, stop and save audio files and etc. In education or professional use - consideration should also be given to more objective measures, such as how synthetic speech may affect intelligibility, comprehension and reading speed of the spoken word.
3. REQUIREMENT SPECIFICATION
3.1 HARDWARE AND SOFTWARE REQUIREMENTS:
Requirement Specification plays an important role to create quality software solution; Requirements are refined and analyzed to assess the clarity. Requirements are represented in a manner that ultimately leads to successful software implementation. Each requirement must be consistent with the overall objective. The development of this project deals with the following requirements: Software Requirements Hardware Requirements
Client:
Processor RAM Hard Disk : Pentium Processor : 1 GB (Min) : 80GB (Min)
Server:
Processor RAM Hard Disk : Pentium Processor : 3 GB (Min) : 160GB (Min)
FUNCTIONAL REQUIREMENTS:
System must be provided complete access to the administrator. Administrator must be able to register a user if he is not registered yet. System must provide a facility to add marks, attendance details of Student by the Administrator.
System must allow a user to view the student marks. System must allow a user to send the mails. System must allow a user to view the mails.
A user should be added by the administrator. A user should log in into his account to download any book. System should verify user category & should authenticate the user.
Security Requirements
User Management and Authentication:
The application must be accessed by valid user. The Updating of all the details are done by the Administrator.
Non-functional requirements:
The application should support interruptions for regular web browsers tasks i.e. work any web application Mozilla or Internet explorer (Supportability)
The form should load within 2 seconds. (Performance) Flexible service based architecture will be highly desirable for future extension (Supportability)
3.2 EXTERNALINTERFACEREQUIREMENTS:
application; through this we can design a system that requires knowledge and effort. And there by reducing the risk involved to a great extent, with the help of the specialized window like dialog box. The user is wanted highlighted if he is at fault with appropriate message.
4. SYSTEM DESIGN
4.1. INTRODUCTION
Software design sits at the technical kernel of the software engineering process and is applied regardless of the development paradigm and area of application. Design is the first step in the development phase for any engineered product or system. The designers goal is to produce a model or representation of an entity that will later be built. Beginning, once system requirement have been specified and analyzed, system design is the first of the three technical activities -design, code and test that is required to build and verify software. The importance can be stated with a single word Quality. Design is the place where quality is fostered in software development. Design provides us with representations of software that can assess for quality. Design is the only way that we can accurately translate a customers view into a finished software product or system. Software design serves as a foundation for all the software engineering steps that follow. Without a strong design we risk building an unstable system one that will be difficult to test, one whose quality cannot be assessed until the last stage. During design, progressive refinement of data structure, program structure, and procedural details are developed reviewed and documented. System design can be viewed from either technical or project management perspective. From the technical point of view, design is comprised of four activities architectural design, data structure design, interface design and procedural design.
4.6.1 Relationships in the UML: There are four kinds of relationships in the UML.
a) Dependency: Dependency is a semantic relationship between two things in which a change to one thing may affect the semantic of the other thing. Dependency is rendered as dashed lines.
b) Association: An association is a structural relationship that describes a set of links, a link being a connection among objects. An association is rendered as a solid line.
c) Generalization: A generalization is a specialization/generalization relationship in which objects of the specialized element are substitutable for objects of the generalized element. Graphically a generalization relationship is rendered as a solid line with hallow arrow head pointing to the parent. d) Realization: A realization is a semantic relationship between classifiers. Wherein one classifier specifies a contract that another classifier guarantees to carry out. A realization relationship is rendered as a cross between a generalization and a dependency relationship.
5. IMPLEMENTATION
5.1 INTRODUCTION
Implementation literally means to put into effect or to carry out. The system implementation phase if the software deals with the translation of the design specifications into the source code. The ultimate goal of the implementation is to write the source code and the internal documentation so that it can be verified easily. The code and documentation should be written in a manner that eases debugging, testing and modification. System flow charts, sample run on packages, sample output etc., is part of the implementation. An effort was made to satisfy the following goals in order Clarity and simplicity of the code. Minimization of hard coding. Minimization of the amount of memory used. Through phased implementation we can use our proposed system.
A) Portability: For programs to be dynamically downloaded to all the various types of platforms connected to the Internet, some means of generating portable executable code is needed .As you will see, the same mechanism that helps ensure security also helps create portability. Indeed, Javas solution to these two problems is both elegant and efficient. B) The Byte code The key that allows the Java to solve the security and portability problems is that the output of Java compiler is Byte code. Byte code is a highly optimized set of instructions designed to be executed by the Java run-time system, which is called the Java Virtual Machine (JVM). That is, in its standard form, the JVM is an interpreter for byte code. Translating a Java program into byte code helps makes it much easier to run a program in a wide variety of environments. The reason is, once the run-time package exists for a given system, any Java program can run on it. Although Java was designed for interpretation, there is technically nothing about Java that prevents on-the-fly compilation of byte code into native code. Sun has just completed its Just In Time (JIT) compiler for byte code. When the JIT compiler is a part of JVM, it compiles byte code into executable code in real time, on a piece-by-piece, demand basis. It is not possible to compile an entire Java program into executable code all at once, because Java performs various run-time checks that can be done only at run time. The JIT compiles code, as it is needed, during execution. C) Java Virtual Machine (JVM) Beyond the language, there is the Java virtual machine. The Java virtual machine is an important element of the Java technology. The virtual machine can be embedded within a web browser or an operating system. Once a piece of Java code is loaded onto a machine, it is verified. As part of the loading process, a class loader is invoked and does byte code verification makes sure that the code thats has been generated by the compiler will not corrupt the machine that its loaded on. Byte code verification takes place at the end of the compilation process to make sure that is all accurate and correct. So byte code verification is integral to the compiling and executing of Java code. Java programming uses to produce byte codes and executes them. The first box indicates that the Java source code is located in a. Java file that is processed with a Java
compiler called javac. The Java compiler produces a file called a. class file, which contains the byte code. The Class file is then loaded across the network or loaded locally on your machine into the execution environment is the Java virtual machine, which interprets and executes the byte code. D) Java Architecture Java architecture provides a portable, robust, high performing environment for development. Java provides portability by compiling the byte codes for the Java Virtual Machine, which is then interpreted on each platform by the run-time environment. Java is a dynamic system, able to load code when needed from a machine in the same room or across the planet. E) Compilation of code When you compile the code, the Java compiler creates machine code (called byte code) for a hypothetical machine called Java Virtual Machine (JVM). The JVM is supposed to execute the byte code. The JVM is created for overcoming the issue of portability. The code is written and compiled for one machine and interpreted on all machines. This machine is called Java Virtual Machine. Compiling and interpreting Java Source Code
Source Code .. ..
Macintosh Byte code Compiler SPARC (Platform
..
Compile r
Independe nt)
During run-time the Java interpreter tricks the byte code file into thinking that it is running on a Java Virtual Machine. In reality this could be a Intel Pentium Windows 95 or Sun SARC station running Solaris or Apple Macintosh running system and all could receive code from any computer through Internet and run the Applets. F) Simple Java was designed to be easy for the Professional programmer to learn and to use effectively. If you are an experienced C++ programmer, learning Java will be even easier. Because Java inherits the C/C++ syntax and many of the objects oriented features of C++. Most of the confusing concepts from C++ are either left out of Java or implemented in a cleaner, more approachable manner. In Java there are a small number of clearly defined ways to accomplish a given task. G) Object-Oriented Java was not designed to be source-code compatible with any other language. This allowed the Java team the freedom to design with a blank slate. One outcome of this was a clean usable, pragmatic approach to objects. The object model in Java is simple and easy to extend, while simple types, such as integers, are kept as high-performance non-objects. H) Robust The multi-platform environment of the Web places extraordinary demands on a program, because the program must execute reliably in a variety of systems. The ability to create robust programs was given a high priority in the design of Java. Java is strictly typed language; it checks your code at compile time and run time. Java virtually eliminates the problems of memory management and de allocation, which is completely automatic. In a well-written Java program, all run time errors can and should be managed by your program.
<A>. </A> <B>. </B> <BIG>. </BIG> <BODY></BODY> <CENTER>...</CENTER> <DD></DD> <DL>...</DL> <FONT></FONT> <FORM>...</FORM>
Defines a particular frame in a set of frames Creates headings of different levels Contains tags that specify information about a document Creates a horizontal rule Contains all other HTML tags Provides meta-information about a document Contains client-side or server-side script Creates a table Indicates table data in a table Designates a table row Creates a heading in a table
5.3.1 Advantages
A HTML document is small and hence easy to send over the net. It is small because it does not include formatted information. HTML is platform independent and HTML tags are not case-sensitive.
5.4 JAVASCRIPT
JavaScript is a script-based programming language that was developed by Netscape Communication Corporation. JavaScript was originally called Live Script and renamed as JavaScript to indicate its relationship with Java. JavaScript supports the development of both client and server components of Web-based applications. On the client side, it can be used to write programs that are executed by a Web browser within the context of a Web page. On the server side, it can be used to write Web server programs that can process information submitted by a Web browser and then update the browsers display accordingly
Even though JavaScript supports both client and server Web programming, we prefer JavaScript at Client side programming since most of the browsers supports it. JavaScript is almost as easy to learn as HTML, and JavaScript statements can be included in HTML documents by enclosing the statements between a pair of scripting tags <SCRIPTS>... </SCRIPT>. <SCRIPT LANGUAGE = JavaScript> </SCRIPT> Here are a few things we can do with JavaScript: Validate the contents of a form and make calculations. Add scrolling or changing messages to the Browsers status line. Animate images or rotate images that change when we move the mouse over them. Detect the browser in use and display different content for different browsers. Detect installed plug-ins and notify the user if a plug-in is required.
5.4.2 Advantages
JavaScript can be used for Sever-side and Client-side scripting. It is more flexible than VBScript. JavaScript is the default scripting languages at Client-side since all the browsers supports it.
5.5 JDBC
Java Database Connectivity or in short JDBC is a technology that enables the java program to manipulate data stored into the database. Here is the complete tutorial on JDBC technology.
What is JDBC?
JDBC is Java application programming interface that allows the Java programmers to access database management system from Java code. It was developed by Java Soft, a subsidiary of Sun Microsystems. JDBC has four Components: i. ii. iii. iv. The JDBC API. The JDBC Driver Manager. The JDBC Test Suite. The JDBC-ODBC Bridge.
The JDBC application programming interface provides the facility for accessing the relational database from the Java programming language. The API technology provides the industrial standard for independently connecting Java programming language and a wide range of databases. The user not only execute the SQL statements, retrieve results, and update the data but can also access it anywhere within a network because of its "Write Once, Run Anywhere" (WORA) capabilities. Due to JDBC API technology, user can also access other tabular data sources like spreadsheets or flat files even in the heterogeneous environment. JDBC application programming interface is a part of the Java platform that has included Java Standard Edition (Java SE) and the Java Enterprise Edition (Java EE) in itself. The JDBC API has four main interfaces: The latest version of JDBC 4.0 application programming interface is divided into two packages. Java.sql
31 Book Reading System For BlindPeople
Javax.sql.
Java SE and Java EE platforms are included in both the packages. ii) The JDBC Driver manager The JDBC Driver Manager is a very important class that defines objects which connect Java applications to a JDBC driver. Usually Driver Manager is the backbone of the JDBC architecture. It's very simple and small that is used to provide a means of managing the different types of JDBC database driver running on an application. The main responsibility of JDBC database driver is to load all the drivers found in the system properly as well as to select the most appropriate driver from opening a connection to a database. The Driver Manager also helps to select the most appropriate driver from the previously loaded drivers when a new open database is connected. iii) The JDBC Test suite The function of JDBC driver test suite is to make ensure that the JDBC drivers will run user's program or not. The test suite of JDBC application program interface is very useful for testing a driver based on JDBC technology during testing period. It ensures the requirement of java platform enterprise edition (J2EE). iv) The JDBC-ODBC Bridge The JDBC-ODBC Bridge, also known as JDBC type 1 driver is a database driver that utilizes the ODBC driver to connect the database. This driver translates JDBC method calls into ODBC function calls. The Bridge implements JDBC for any database for which an ODBC driver is available. The Bridge is always implemented as the sun.jdbc.odbc Java package. This first two component of JDBC, the JDBC API and the JDBC Driver Manager manages to connect to the database and then build a java program that utilizes SQL commands to communicate with any RDBMS. On the other hand, the last two components are used to communicate with ODBC or to test web application in the
specialized environment.
A JDBC driver translates standard calls JDBC into a network or database protocol or into a database library API call that facilitates communication with the database. This translation layer provides JDBC applications with database independence. If the back-end
database changes, only the JDBC driver need be replaced with few code modifications required. There are four distinct types of JDBC drivers.
Type 2 Java to Native API: Type 2 drivers use the Java Native Interface (JNI) to make calls to a local database library API. This driver converts the JDBC calls into a database specific call for databases such as SQL, ORACLE etc. This driver communicates directly with the database server. It requires some native code to connect to the database. Type 2 drivers are usually faster than Type 1 drivers. Like Type 1 drivers, Type 2 drivers require native database client libraries to be installed.
Fig 5.4 Type 2 JDBC Architecture Type 3 Java to Network Protocol or All- Java Driver: Type 3 drivers are pure Java drivers that use a proprietary network protocol to communicate with JDBC middleware on the server. The middleware then translates the network protocol to database-specific function calls. Type 3 drivers are the most flexible JDBC solution because they do not require native database libraries on the client and can connect to many different databases on the back end.
Type 4 Java to Database Protocol: Type 4 drivers are pure Java drivers that implement a proprietary database protocol (like Oracle's SQL*Net) to communicate directly with the database. Like Type 3 drivers, they do not require native database libraries and can be deployed over the Internet without client installation. One drawback to Type 4 drivers is that they are database specific. Unlike Type 3 drivers, if your back-end database changes, you may save to purchase and deploy a new Type 4 driver (some Type 4 drivers are available free of charge from the database manufacturer). However, because Type drivers communicate directly with the database engine rather than through middleware or a native library, they are usually the fastest JDBC drivers available. This driver directly converts the java statements to SQL statements.
reusable Java Bean components that perform particular well-defined computations like accessing a database. The result of the Beans computations, called result sets is stored within the Bean as properties. The page uses such Beans to generate dynamic content and present it back to the client. In both of the above cases, the page could also contain any valid Java code. Java Server Pages architecture encourages separation of content from presentation.
public void setUsername( String value ) {uname = value; } public void setEmail( String value ) { email = value; } public void setAge( int value ) { age = value; } public String getUsername() { return uname; } public String getEmail() { return email; } public int getAge() { return age; } } Java Beans like JButton supports the events by providing the methods with Naming patterns (i) addXXXListener (ii) removeXXXListener Apart from developing Java bean class we can also provide Bean Info class. In this class we can provide (i) Information about properties (ii) Information About the events and (iii) Information about the icon that represents our Bean. According to JSP model1 we can develop the application as,
According to above model the presentation logic has to be implemented in JSP page and the business logic has to be implemented as part of Java bean This model help us in separating the presentation and business logic. For a large scale projects instead of using model1 it is better to use model2 (MVC). Struts frame work is based on model 2.
39 Book Reading System For BlindPeople
5.7 MY SQL
My SQL is a relational database management system (RDBMS) that runs as a server providing multi-user access to a number of databases. My SQL was originally founded and developed in Sweden by two Swedes and a Finn: David Ax mark, Allan Larsson and Michael Monty Widen us, who had worked together since 1980s.
5.8.2.Login.java:
package com.servlet.bookreading; import java.io.IOException; import java.io.PrintWriter; import java.sql.Connection; import java.sql.PreparedStatement; import java.sql.ResultSet; import javax.servlet.RequestDispatcher; import javax.servlet.ServletException; import javax.servlet.http.HttpServlet; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import com.dbconn.bookreading.Dbconnection; public class LoginPage extends HttpServlet { public void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { Connection con; ResultSet rs; PreparedStatement ps; try { con=Dbconnection.getConnection(); ps=con.prepareStatement("select UserType from masterusers where LoginID=? and PWD=?"); ps.setString(1, request.getParameter("login")); ps.setString(2, request.getParameter("pwd")); rs=ps.executeQuery(); if (rs.next()) { String utype=rs.getString (1); if (utype.equalsIgnoreCase("Adm")) {
42 Book Reading System For BlindPeople
RequestDispatcher rd=request.getRequestDispatcher ("jsp/admin.jsp"); rd.forward(request, response); } else { Request Dispatcher rd=request.getRequestDispatcher ("jsp/user.jsp"); rd.forward(request, response); } } } catch (Exception e) { e.printStackTrace (); }} }
6. SYSTEM TESTING
6.1 INTRODUCTION
Testing is one of the most important phases in the software development activity. In software development life cycle (SDLC), the main aim of testing process is the quality; the developed software is tested against attaining the required functionality and performance. During the testing process the software is worked with some particular test cases and the output of the test cases are analyzed whether the software is working according to the expectations or not. The success of the testing process in determining the errors is mostly depends upon the test case criteria, for testing any software we need to have a description of the expected behavior of the system and method of determining whether the observed behavior confirmed to the expected behavior.
the program or module and the internals of the program or modules are not considered for selection of test cases. This is also called Black Box Testing.
Structural Testing In Structural Testing test cases are generated on actual code of the program or module to be tested. This is called White Box Testing.
Test Case Specification: Although there is one test plan for entire project test cases have to be specified separately for each test case. Test case specification gives for each item to be tested. All test cases and outputs expected for those test cases. Test Case Execution And Analysis: The steps to be performed for executing the test cases are specified in separate document called test procedure specification. This document specify any specify requirements that exist for setting the test environment and describes the methods and formats for reporting the results of testing.
6.4 TESTCASES
6.4.1 Login form Login id and password:
Test case ID OBS_TC01 Input Login Id blank Password blank Description A blank Login id and password given by the admin/user. Expected result Invalid Login id Pass/Fail Pass
OBS_TC02
A valid Login id and blank Password given by the admin/user. A blank Login id and valid Password are given by the admin/user. A valid Login id and valid Password are given by the admin/user.
Invalid Password
Pass
OBS_TC03
Invalid Login id
Pass
OBS_TC04
Go to admin/user Home Pass pages ,As per the user id and password
A blank name field Display that invalid name is left by the user Accepted
OBS_TC02
name with letters name with letter without spaces given by user
Pass
Fig 7.1 Login page The above page represents the login page. It requires the login id and password. The user gets login by clicking on the login button after entering the id and password.
The above page represents the administrator home page. The administrator can have all the accessing rights such as data insertion, deletion, updating.
The above page represents the Users page. We can view and the set users of the system with this page.
The above page represents the Admin - user page. The Admin can enter the user details.
The above page represents the File Upload page. .This is for entering details about file.
This is the speak details page which requires the speak type and the status fields is to be entered. Click on the submit button for updating after filling in the details. Cancel button is clicked for re-entering incase of entering any wrong details.
This is the volume details page which requires volume range, volume types and status to be selected. After entering the details click on the submit button. In case of filling any of the fields with wrong information, click on the cancel button so that the fields get cleared and they can be re-entered
Fig .7.8. Wave formats page This is the wave formats page which requires file size, type of format and status to be selected. After entering the details click on the submit button. In case of filling any of the fields with wrong information, click on the cancel button so that the fields get cleared and they can be re-entered.
This is voice selection page which requires type of voice and status to be selected. After entering the details click on the submit button. In case of filling any of the fields with wrong information, click on the cancel button so that the fields get cleared and they can be re-entered.
This page represents the user home page. In this page user can upload the books.
This page represents the text- speech conversion page. In this page user can upload the book and download it. After downloading the text present in the book is converted into speech.
8. CONCLUSION
8.1. Conclusion:
The Application Book Reading System for Blind People is designed to meet the requirements of visually challenged people. It overcomes the risks and difficulties faced by these people in using the computer. This Project can take blind peoples education one step forward. Learning foreign languages, poetry, literature, English grammar etc. could be optimized using TTS. Blind
people can develop habits and hobbies using audio books. One could find audio books about every subject from fishing to knitting guides. It helps a lot of self creation, self confidence and awareness audio book guides which can help them.
9. REFERENCES
9.1. Books Referred:
Data base System Concepts, Silberschatz, Korth, McGraw hill, 5th edition. Introduction to Database Systems, C.J.Date Pearson Education. Java; the complete reference, 7th edition, Herbert Scheldt, TMH. Understanding OOP with Java, updated edition, T.Budd, Pearson education.
Web Programming, building internet applications, Chris Bates 2nd edition. Java Server pages-Hans Bergsten.