Download as pdf or txt
Download as pdf or txt
You are on page 1of 53

ADVENTIST UNIVERSITY OF CENTRAL AFRICA

KINYARWANDA VOICE MEDIA PLAYER FOR BLIND


PERSON

A Project
Presented in partial fulfillment of the
Requirements for the degree of
BACHELOR OF SCIENCE IN INFORMATION TECHHNOLOGIY
Major in
INFORMATION MANAGEMENT

By
SHIMO Bruno
June 15, 2015
ADVENTIST UNIVERSITY OF CENTRAL AFRICA

KINYARWANDA VOICE MEDIA PLAYER FOR BLIND


PERSON

A Project
Presented in partial fulfillment of the
Requirements for the degree of
BACHELOR OF SCIENCE IN INFORMATION TECHHNOLOGIY
Major in
INFORMATION MANAGEMENT

By
SHIMO Bruno
June 15, 2015

i
PROJECT ABSTRACT
Dissertation project for Bachelor Degree in Information Technology
Emphasis in Information Management
Adventist University of Central Africa

TITLE: KINYARWANDA VOICE MEDIA PLAYER FOR BLIND PERSON

Name of this researcher: SHIMO Bruno.


Name of faculty Advisor: Mr. NIYODUSENGA Peter.
Date Completed: June 15, 2015.
The main objective of this study is to design and implement an application to support
persons with vision disability, while they are using computer As they cannot see on
screen or use keyboard easily .

Auca is one of the best Universities in Rwanda. AUCA offers a Christ centered
Education founded on a holistic approach .

Auca is committed to produce the well-displined and very competent graduates who will
work faithfully to the develop Rwanda in different fields, that is why AUCA emphasizes
the holistic approach to its programs by developing the mental, the physical and spiritual
being of its students.Thesis project is one of the way to see the results of the education by
demonstrating practical skills acquired in solving a real life problem. This brings AUCA
to be the greatest one.

For the analysis, design and development of the solution different tools were used. UML
was used for analysis , documentation, observation and interview helped for data
collection. In addition, java was used for the design and development.

ii
DEDICATION
I dedicate this work to my family for
their support throught my studies.
I also dedicate it to all my friends, especially
Student at AUCA, special thanks goes to
my supervisor for his guidance

iii
TABLE OF CONTENTS

PROJECT ABSTRACT ....................................................................................................... i

DEDICATION ................................................................................................................... iii

TABLE OF CONTENTS ................................................................................................... iv

LIST OF FIGURES .......................................................................................................... vii

LIST OF TABLES ........................................................................................................... viii

ABBREVIATION LIST .................................................................................................... ix

ACKNOWLEDGEMENT ................................................................................................. xi

CHAPTER 1 ....................................................................................................................... 1

GENERAL INTRODUCTION ....................................................................................... 1

Introduction ................................................................................................................. 1

Background of the study ................................................................................................. 1

Introduction ................................................................................................................. 1

Statement of the problem ................................................................................................ 3

Motivation of the Work .................................................................................................. 3

Objectives ....................................................................................................................... 4

Project scope ................................................................................................................... 5

Expected results .............................................................................................................. 5

The structure of the work ................................................................................................ 6

CHAPTER 2 ....................................................................................................................... 7

ANALYSIS OF EXISTING SYSTEM .......................................................................... 7

Requirement collection techniques ............................................................................. 7

Observation ................................................................................................................. 7

Documentation ............................................................................................................ 8

iv
Interviews .................................................................................................................... 8

Terminology................................................................................................................ 9

Description of the current system ............................................................................... 9

Problem of the existing system ....................................................................................... 9

Proposed solution to the problem ................................................................................... 9

CHAPTER 3 ..................................................................................................................... 11

REQUIREMENTS ANALYSIS AND DESIGN OF THE NEW SYSTEM ................ 11

Analysis and Design Methodology ............................................................................... 11

Object –Oriented Methodology ................................................................................ 11

Unified Modeling Language (UML) ........................................................................ 13

Models of UML ........................................................................................................ 13

Relationships ............................................................................................................. 14

Multiplicity (Cardinality) .......................................................................................... 15

Unified Process (UP) ................................................................................................ 15

Phases of UP ............................................................................................................. 16

Requirement .................................................................................................................. 17

Analyze the Requirement of the New System .............................................................. 18

Requirement Analysis ............................................................................................... 18

Use case .................................................................................................................... 20

Use-case description ......................................................................................................... 20

Structural model ........................................................................................................ 23

The modeling concepts ............................................................................................. 23

Class Diagram ........................................................................................................... 26

Design of new system ................................................................................................... 27

Architectural design .................................................................................................. 28

v
Sequence Diagram .................................................................................................... 29

CHAPTER 4 ..................................................................................................................... 32

IMPLEMENTATION AND TESTING OF THE NEW SYSTEM.............................. 32

Introduction ............................................................................................................... 32

Technologies used ..................................................................................................... 32

CMU Sphinx ............................................................................................................. 32

SOFTWARE TESTING ............................................................................................... 33

Software Installation Requirements .......................................................................... 37

CHAPTER 5 ..................................................................................................................... 38

CONCLUSION AND RECOMMENDATIONS ......................................................... 38

Conclusion ................................................................................................................ 38

Recommendations ..................................................................................................... 39

Limitation of this application .................................................................................... 39

REFERENCES ................................................................................................................. 40

Books ............................................................................................................................ 40

Websites ........................................................................................................................ 40

vi
LIST OF FIGURES

Figure 1 blind write on keyboard (wikipedia, 2006) .......................................................... 2


Figure 2:voice controller structure .................................................................................... 10
Figure 3 : use case ............................................................................................................. 20
Figure 4 : Class diagram ................................................................................................... 27
Figure 5 : Architectural design ......................................................................................... 28
Figure 6 : sequence diagram for recognize .…………...…….…………...….....………..30
Figure 7: Sequence diagram for spoken sound ................................................................. 31
Figure 8: Sequence diagram for spoken sound ................................................................. 31
Figure 9: Welcome form screenshot ................................................................................. 35
Figure 10: Listen music form screenshot ......................................................................... 36
Figure 11: List of song screenshot .................................................................................... 36

vii
LIST OF TABLES

Table 1: Open file use case description ........................................................................... 21


Table 2: Command use case description ........................................................................... 22
Table 3 : Listen use case description ................................................................................ 22

viii
ABBREVIATION LIST

AUCA: Adventist University of Central Africa

ICT: Information Communication Technology

IT: Information Technology

OOA: Object Oriented Analysis

OOD: Object Oriented Design

OOM: Object Oriented Methodology

OOP: Object Oriented Programming

PK: Primary key

UML: Unified Modeling Language

LVCSR: Large Vocabulary Continuous Speech Recognition.

ASR: Automatic speech recognition

TTS: Text-to-speech

STT: Speech-to-text

IVR: Interactive Voice Response

HCI: Human Computer Interaction

I/O: Input and Output

SU: Speech Understanding

GUI: Graphical User Interface

DVI: Direct Voice Input

ix
HMM: Hidden Markov Models

HTK: Hidden Markov Model Toolkit.

BNF: Backus-Naur form

SLF: Standard Lattice Format

MLF: Master Label Files

MFCC: Mel Frequency Cepstral Coefficients.

x
ACKNOWLEDGEMENT

I am so grateful to my supervisor Mr. NIYODUSENGA Peter who led me in the


accomplishment of this work, especially for his substantial advice, professional
assistance, guidance and precious ideas.
I would like also to thank Mr. MUKWENDE Placide for his advices and
encouragement which contributed to the transformation of the theoretical knowledge
acquired into practical work..
I thank the authorities of Adventist University of Central Africa as well as the staff of
department of Information Technology.
Special thanks to my family, colleagues and friends for their support, encouragement,
friendship and to those who participated in one way or another in the accomplishment of
this work.
God bless you all.

xi
CHAPTER 1
GENERAL INTRODUCTION

Introduction

Voice is the most natural means of communication between humans; it can be done
without any tool or any specialized training. It is one of the first skills we learn to use at
our birth time. Babies quickly learn how to react to the voice of their mother and they
even quicker learn to produce noise when they are in need. When speaking with
somebody, one does not have to focus on this person; one can look in a different direction
or even perform some other task while communicating. Voice is also and has always
been the most important way of communication. The invention of writing is new
compared to the age since mankind is believed to have been living on earth.
Communication, Education, trade and other activities were only done through verbal
communication.
We, as humans speak and listen to each other in human to human interface, For centuries
people have tried to develop machines that can understand and produce speech as humans
do so naturally, this is the means of information exchange between human and computer,
for me the blind cannot have again someone left behind them .

Background of the study

Introduction

Voice Media player is a technology of voice recognition which allows a computer to


identify The words that a person speaks into a microphone of computer or others
electronics device to execute a command. A Blind is a person with the Vision
Impairments, they do not see well or completely see nothing, they always us their ears to
understand or touch something there is some material they use and there is some
software to help them to exchange with other but all cannot able to had it (Reddy, 1976).

1
Figure 1 blind write on keyboard (wikipedia, 2006)

or be able to understand and speak international language, first of all that software build
in voice/speech recognition is a field of IT that deals with designing computer systems
that recognize spoken words. It is a technology that allows a computer to identify the
words that a person speaks into a microphone. Applications are for the physically
disabled people and illiterates and many others in the area of computer science. Human
and computer as far as interactions is concerned, is about ways users(humans) interact
with the computers. Some users can interact with the computer using the traditional
methods of a keyboard and mouse as the main input devices and the monitor as the main
output device. Due to one reason or another some users cannot interact with machines
using a mouse and keyboard (Rudnicky et al., 1993), hence the need for special ways to
use computers. Speech recognition systems help users who in one way or the other
cannot be able to use the traditional Input and Output(I/O) devices. For about four
decades human beings have been dreaming of an ”intelligent machine” which can master
the natural speech (Picheny, 2002) . In its simplest form, this machine should consist of
two subsystems, namely automatic speech recognition (ASR) and speech understanding
(SU) (Reddy, 1976) . The goal of ASR is to transcribe natural speech while SU is to
understand the meaning of the transcription. Recognizing and understanding a spoken
sentence is obviously a knowledge-intensive process, which must take into account all
variable information about the speech communication process.

2
Statement of the problem

There are many blind people in Rwanda who are disadvantaged professionally, socially,
academically etc., due to inadequate human computer interface (HCI) design
considerations. Blind people can only read (using Braille)) and write in their mother-
tongue, few are who had a chance to go to those specialized school and learn English or
French. The few application designed to use also voice recognition are not able to help
many as they are built to use only foreign language.

In this regard we propose to design and develop a system which can be used by blind
people in Kinyarwanda in order to help them also to use easily and efficiently the ICT
systems as anyone else. This will close the above mentioned gap occasioned by the vision
handicap.

Motivation of the Work

A number of interests have motivated us to work on this project. For the sake of

clarity, We list some motivating key points of this work as it follows:

 To AUCA: this work will increase the literature of the institution which will be

used for the students as reference for work especially it will serve as a basis to

ones who will deal with related topics. For academic it will be used by evaluating

if the knowledge given to their students was well understood, even for those from

outside in general to enrich their knowledge.

3
To the blind: because of the tedious and time consuming while they touch in

Braille system ,this system will be used to reduce such problems and increase the

performance of their activities. Therefore, there is a need and necessity for

improving how they access and use computer systems .

 To Myself: As a young information technology scientists, I am passionate to use

my knowledge and skills to contribute in solving some daily life problems. It is of

big interest to participate in helping the handicapped people to overcome some

limitation naturally imposed to them. Especially for the blind people, I am

working out of this project to build a large Kinyarwanda dictionary for voice

recognition with grammar. I hope it will be very helpful to programmer and

encourage many people to develop more application with voice recognition in our

moth tongue.

To my country: Our country is very advanced in ICT in the region, we have the vision to
become a region ICT hub my project will help that the blind people will not be left out of
this development. They can benefit it and contribute together with their fellow
compatriots.

Objectives

This study has general and specific objectives as they are stated in the following
subsections:
General objectives:
The main objective of this study is to design and implement a media player that can be
controlled using voice. This will help all the people with a vision handicap and also give
more mobile flexibility to other users who can control the application from a distance.
Specific objectives:

4
 Enabling dialogue of humans and computer in the application.
 Developing media player functions such as Play music , change, stop.....controlled
by voice.
 Remove any need of touch or vision while using the application. Remove the need
of learning foreign language in order to use the application
Remove for the blind people the dependence of others in all details of their daily
life. Increase the use of Computer by blind people especially for entertainment

All techniques methods and tools that will be used to accomplish this work will be
described in next chapter.

Project scope

This final project is only focused on developing a media player which can be used in
playing audio and video, The functions of the application will use vocal commands. The
following control features will be available for the use of the media player by blind
people or anyone else: komeza, hagarara, indi, inyuma, soma, yizimye, ubufasha, fayilo .

Expected results

The new system will allow the following tasks:


 By designing and developing a voice media player system in Kinyarwanda
language, it would mark the first step towards marking efficiency and comfort in
the use of a media player for blind and elderly people with seeing disabilities.
They will b able to operate it without assistance of another person as it is usually
the case for most of their activities.

 Since Speech technology is the technology of today and tomorrow, the results of
this research will help many developers to continuously built their application

5
with adding kinyarwanda voice recognition, this will extend the benefits of ICT to
many if not to all.

The structure of the work

This study has five chapters:


Chapter one introduces the need of a design and implementation of applications for
Blind persons in Rwanda.
Chapter two highlights in details how the blind persons use the computer and define the
concepts and the domain terms. It also describe the environment of the system, the
technics that will be used by the system, it provide details of the system and solution to
be developed. . furthermore definitions of key words used in this project are listed here.
Chapter three entitled Analysis and Design of the new System is normally the logical
conception of the new system. It will portray the conceptual process of the solutions
proposed to solve the problems stated.
Chapter four will highlight the technical realization of the application and the
interpretation of the results, where we will explain the new system and how the
application has been conceived, as well as the technologies used to build the software.
Finally chapter five provides conclusion and recommendations related to results of the
project.

6
CHAPTER 2
ANALYSIS OF EXISTING SYSTEM

Often the purpose of designing a new system is to replace the existing system in a given
environment. if so, you can benefit from analyzing the existing system in order to get
deep knowledge of that system, this analysis will give you a better idea of what problem
you are facing .This chapter highlights in details how the existing system of the
Rwanda’s voice recognition is currently positioned, define the concepts and the domain
terms, identify problems faced by the existing system and propose solutions to improve
the system.

Requirement collection techniques

To conduct our research we need a data collection which is one the most important stage
in a research process. The data collections will help us to precisely acquire the details of
the problem to solve. It crucial in designing the appropriate solution and achieve the
objective of our research.

They are many methods to collect data, depending on research design and methodologies
employed. Some of the common methods are questionnaires, documentation, interview
and observation in this project the following technique is used in collecting data:

Observation

Observation is a process of recording the behavior of people, object and occurrences


without questioning or communicating with them. This technique helps me to know
really what is the current situation. During my project, I had visited some blind persons
at their residence in biryogo in nyarugengenge district. My main observation is as
follow:The majority of the blind persons I visited do not know how to use computer, the
few who use computers, they are hugely affected by the lack of computer applications

7
adapted to their situation. Even when one is found it obviously in a foreign language
again not accessible to them.

Documentation

Documentation involves systematic data collection from existing record, such as, books,
statistics report, Websites and so on. To develop my project, I had read and researched on
various project document from several sources, like some Centre for the Blind report ,the
website of Rwanda Union of the Blind and international research project book and so
on. The ideas and concepts gained had influenced and help shaped the development of
my project.

Interviews

Interview is verbal questioning .In research is defined as a two person conversation


,initiated by the interviewer for the specific purpose of obtaining research –relevant
information and focused by him on the content specified by research objectives of
description and explanation.

In order to attain highly personalized information data about the operation of the existing
system and to better understand how blind persons situation is currently in regards to
ICT, .
The following are outcomes of the interviews with blind persons:
 The first limitation is that they need always someone to assist them to use
computer and internet for the usual computers
 Second the computer designed for blind persons are expensive and inaccessible to
many.
 Finally they feel frustrated by these limitations as it denies them unlimited
resources available to others without that vision handicap.

8
Terminology

Media player: A media player is a computer program for playing multimedia files
(Smith B. C, 1993).
Speech recognition: the process of enabling a computer to identify and respond to the
sounds produced in human speech (B. H , 1993).
ASR: the independent, computer-driven transcription of spoken language into readable
text in real time (M. S, 1996).
Intelligent machine: computer software that are capable of intelligent behavior (D. D. ,1987).
Braille: a form of written language for blind people, in which characters are represented
by patterns of raised dots that are felt with the fingertips. (dictionary.reference, 1999)

Description of the current system

The current system is dominated by the traditional system using traditional I/O devices
such as keyboard, mouse etc. There are some voice recognition systems but they are in
English and French. This increase the dependence on an assisting person to the blind
persons. It also limits the use of the application to the distance and mobility for other
users.

Problem of the existing system

 Insufficiency of applications appropriate to overcome the limitations of the blind


persons.
 The lack of voice recognition application in Kinyarwanda language accessible to
all blind persons in Rwanda.
 Limits of the tradition application which require to be in front of the computers to
be able to use them.

Proposed solution to the problem

 To design and implement an application that help blind and others who have
vision problem to use computer with vocal control only.
 To give the application the capacity to be user friendly to facilitate usability for
many.

9
 To ensure that the application can avail all its function including exiting it through
voice command. To ensure that the application can be used by all Kinyarwanda
speaking persons.

Figure 2:voice controller structure

10
CHAPTER 3

REQUIREMENTS ANALYSIS AND DESIGN OF THE NEW


SYSTEM

This chapter gives a full description of how the Kinyarwanda voice media player system
was developed. The goal of the project was to build voice recognition using Kinyarwanda
language. System development can generally be thought of as having two major
components:
 System Analysis and,
 System Design

Good system design is impossible without careful ,accurate system analysis .The design
phase typically cannot begin until the analysis work is complete .It is better to complete
the analysis phase before moving on to systems design.

The System Analysis Includes the output that must be produced by the system, the
input needed by the system, and the process that must be produced by the system without
regard to how tasks will be accomplished physically. System Design is a plan for the
actual implementation of the system .the system design is built on the system’s analysis
design and describes a specific implementation; much like a working blue print describes
the actual construction of a building.
In this chapter, we analyzed requirements then came out with a design that will form the
blue print to the actual solution to the problem in hand. But before getting into this in
details, let us start by discussing the techniques and tools that were used for that end.

Analysis and Design Methodology

Object –Oriented Methodology

There are many methodologies for the development of information systems such as Data
Structure-Oriented, Object-Oriented, Prototyping, and so on. We shall be concerned here
with Object Oriented because of the language used which is UML.

11
Object Oriented Methodology (OOM)

Object Oriented Methodology (OOM) is a system development approach encouraging


and facilitating re-use of software components. With this methodology, a computer
system can be developed on a component basis which enables the effective re-use of
existing components and facilitating the sharing of its components by other systems.
They are two main basic building blocks are useful in development of the system by
using Object Oriented Methodology those are: Classes and Objects.
An Object is an instance of a class; it is defined as a discrete entity with a well-defined
boundary that encapsulates states and behavior expressed as a software representation.
An Object can be a thing, a concept, or an event. By knowing what an object means,
simply a class is a description of a collection of objects with common attributes and
behaviors. There are some characteristics for object- oriented methodology which are
known as “three pillar” of object-oriented.:
Data Encapsulation: this is the wrapping up of data and function into a single unit.
The data is not accessible to the outside world, only those functions which are wrapped in
the class can access it (Edward Yourdon, 1994).

Inheritance: The inheritance relationship, also known as the generalization relationship,


is used to indicate that one class is a specialization of another. With the use of inheritance
the information is made manageable in a hierarchical order where the sub-classes inherit
all features of their super classes (Edward Yourdon, 1994).

Polymorphism: means the ability to take more than one form, it is also applicable on
hierarchical relationship as Inheritance do. A polymorphic operation is one that has many
implementations, it means the abstract operations of abstract class which is a super-class
have different implementations because those abstract operations become concrete in
sub-class where they has to respond according to the specific object. For example: a
shape as an abstract class which has its operations as draw() and get Area(), then with the
discrete classes as square and circle where operations of super-class will be inherited by

12
them and they will respond according to object may be square or circle.( Edward
Yourdon,1994)

Unified Modeling Language (UML)

UML is a graphical language for capturing the artifacts of software developments. It


represents a collection of best engineering practices that have proved success in the
modeling of large and complex systems. The language provides us with the notations to
produce models and, is explicitly designed to be implemented by computer-assisted
software engineering (CASE) tools.
Naturally, some aspects of methodology are implied by the elements that comprise a
UML model, but UML itself just provides a visual syntax that we can use to construct
models. It does not give us any kind of modeling methodology. (Martin Fowle, 1998)

Models of UML

A model is a subjective and pertinent representation of the reality. It is easier to refer on a


model than to refer on the reality because the model represents just essential aspects of
the reality and ignores the useless aspects.
The UML provides many different models for a system such as use case diagram, class
diagram, sequence diagram, etc. Following is a list by Ariadne Training Limited (Ariadne
Training Limited, 2001) of UML models with a one sentence summary of the purpose of
the model:
 Use Cases - How will our system interact with the outside world?
 Class Diagram - What objects do we need? How will they be related?
 Collaboration Diagram - How will the objects interact?
 Sequence Diagram - How will the objects interact?
 State Diagram - What states should our objects be in?
 Package Diagram - How are we going to modularize our development?
 Component Diagram - How will our software components be related?
 Deployment Diagram - How will the software be deployed?
Actually, it is not required to make all the models for a system; instead, it is advised to
model the ones that are to visualize sufficiently the system.

13
When we model a system, we must not only identify the things that form the vocabulary
of the system but also model how these things stand in relation to one another. (Martin
Fowle,1998)

Relationships

Relationships allow us to show on a model how two or more things relate to each other.
The role that relationships play in UML models is to allow us to capture meaningful
(semantic) connections between things. Relationships apply to the structural and
grouping things in a model and are depicted in the figure 2 below by Jim and Ila, 2002.
 Association is a structural relationship that specifies that objects of one thing are
connected to objects of another. Given an association connecting two classes,
objects of one class can be related to objects of the other class. It may be refined
into an aggregation relationship or a stronger form of aggregation known as the
composition aggregation or simply composition relationship.
 Aggregation – this is a loose relationship between objects – an example
might be a computer and its peripherals. Its illustration is as shown in
figure 3.

 Composition – this is a very strong type of relationship between objects –


it is like a tree and its leaves. Its illustration is as shown in figure 4.

 Dependency is a relationship that states that one thing uses the information and
services of another thing, but not necessarily the reverse. A dependency exists
between two elements; changes to the definition of one element may cause
changes to the other.

14
 Generalization is a relationship between a general kind of thing (called the
superclass or parent) and a more specific kind of thing (called the subclass or
child). An object of the child class may be used for a variable or parameter typed
by the parent, but not the reverse. A child inherits the properties of its parents,
especially their attributes and operations.

Multiplicity (Cardinality)

Kinds of multiplicity are the symbols which indicate the number of instances of one class
linked to one instance of the other class and are placed at the end of relationships. It is
written as an expression with a minimum and maximum value, two dots are used to
separate the minimum and maximum values. (Briefly is the number of objects that
participate in the relationship).

Unified Process (UP)

Unified process (UP) is a software development process (SDP) also known as software
engineering process (SEP), SDP is the process in which we turn user requirements into
software. It tells the workers, activities, and artifacts that is needed to utilize, perform or
create in order to model a software system (It defines who, what, when, and how of a
software development).

UML is not tied to any specific kind of software development process, and indeed it is
capable of being used with all existing development processes. UP uses UML as its
underlying visual modeling syntax and we can therefore think of UP as being the
preferred process for UML, as it is the best adapted to it , but UML itself can provide the
visual modeling support for other process like Water fall process, prototype model, V
model, spiral process and so on.

15
One of its characteristics is that UP is an iterative and incremental development process.
Iterative aspect means that the project has to be broken into small subprojects (called
iterations) which are easier to manage and to complete successfully. UP is incremental
because each iteration generates a baseline that comprises a partially complete version
of the final system and any associated project documentation.

UP phases (Inception, Elaboration, Construction and Transition) are divided into a series
of time boxed iterations. Each iteration results in an increment, which is of the system
that contains added or improved functionality compared with the previous release.

Phases of UP

The Unified Process consists of cycles that may repeat over the long-term life of a
system. A cycle consists of four phases: Inception, Elaboration, Construction and
Transition. Each cycle is concluded with a release, there are also releases within a cycle.
Let's briefly review the four phases in a cycle:

Infection phase
During the inception phase the core idea is developed into a product vision. In this phase,
we review and confirm our understanding of the core business drivers. We want to
understand the business case for why the project should be attempted. The inception
phase establishes the product feasibility and delimits the project scope.

Elaboration phase
In this phase an executable architectural baseline is created, the deep analysis of the
problem domain is done, development of the project plan all that in order to take decision
whether to proceed with construction.
Architectural decisions must be made with an understanding of the whole system. This
implies that you describe most of the system's requirements.

Construction phase
All requirements, analysis and design are completed and the architectural baseline
generated during elaboration is evolving into the final system that is ready to transition to
its user community. At the end of the construction phase, you decide if the software and
users are all ready to go operational.

16
Transition phase

During the transition phase, you deploy the software to the user community. Once the
system has been put into the hands of its end users, issues often arise that require
additional development in order to adjust the system, correct some undetected problems,
or finish some features that have been postponed. At the end of the transition phase, you
decide whether the life cycle objectives of the project have been met.

Workflows in UP

UP consists of five work flows which describing the activities done within at least one of
the phases.( Edward Yourdon,1994)

Requirement

A well understanding of the problem is the best way of solving a problem because several
studies have shown that failure in requirement is the major cause of software project
failure. It allows having some idea of what you are trying to achieve. The purpose of the
requirement workflow is to discover and reach agreement on what the system should do,
expressed in the language of the users of the system. Most of the work in the requirement
workflow occurs in the inception and elaboration phases of UP, during this workflow the
important tasks done are:

- Find actors and use case


- Detail a use case
- Structure the use case model

Analysis

Analysis workflow is about creating models that capture the essential requirements and
characteristics of the desired system, analysis model focuses on what the system needs to
do. Often we need to perform some analysis on requirement in order to clarify them and
uncover any missing or distorted requirements. Most of the work occurs towards the end
of the inception phase and throughout the elaboration phase.

17
Design

Design workflow is for determining how the functionality specified in the analysis model
will be implemented. It consists of designing a solution to the problem. Design model can
be thinking as being an elaboration of the analysis model where we have added detail and
specific technical solutions.

It is the primary modeling activity during the last half part of the elaboration phase and
the first half of the construction phase.

Implementation

In implementation workflow design model from design workflow is transforming into


executable code. Although the primary activity in the implementation workflow is
producing code, there are still some elements of UML models involved. Implementation
workflow is the main focus of the construction phase.

Analyze the Requirement of the New System

Requirement Analysis

After getting all customer needs or requirements we have to analyze them, doing so
different models or diagrams are used. At this particular point we will focus on use case
diagram. Use case diagram describes the functionality provided by a system in terms of
actors, their goals represented as use cases, and relationships between actors and use
cases. The followings are components of a use case model:

Actor

An actor specifies a role that some external entity adopts when interacting with a system
directly. It may represent a user role or a role played by another system that touches a
system.

18
actorName

Use case

Use case is a specification of sequences of actions that a system can perform by


interacting with outside actors; it is something an actor wants a system to do and is
represented as follows:

UseCaseName

Relationship

Meaningful relationships between actors and use cases which is a UML association
symbol.

System boundary

It is a box drawn around the use case to denote the edge or boundary of the system being
modeled.

SystemName

19
Use case

Kinyarwanda media player

«uses»
welcome

openfile
0..1

0..1
0..1
0..1

command
0..1

User Listen
0..1

Figure 3 : use case

Use-case description
Use Case description details what a use case do, and what it requests in order to be well
executed. Each use case looks like this:

- Name : a name of a use case


- Description: what a system intends to do

20
- Actor: the actor involved in the use case
- Pre-condition: the system state before the use case can begin
- Post-condition: the system state when the use case is over
- Normal flow: the actual steps of the use case
- Alternative flow: steps which may happen in case a normal flow fails.

1. Open file use case description

Name: Open file


Actor: user
Description: Help for blind to open folder to inform list of music are in data driver (directory)

Pre-condition: the users have to listen the grammar application recommends to use
Post-condition: the system should tell the user the file have choose to make sure if the file is
correct
Main Flow: 1.User requests to open file directory,
2. System tellers number of number of music contain in file,
3. User choose one ,
4. User sends can navigate to nest song or previously to be played,

Alternative flow:
 if the system have not hear your voice ask you again or tell you to repeat.
the system gives the audio message that” subiramo cyane”.
Table 1: Open file use case description

21
2 Command use case description

Name: Command
Actor: User
Description: allows a user to give order to the system
Pre-condition: command should be existed in grammar
Post-condition: a user should get a message "ushaka guhagarara" depends on your order
Normal flow:
1. 1. A user give order to system like (hagarara, komeza, subirayo, imbere,
hoya, yego,..).
2. System interact immediately.

Alternative flow:
 if the system listen nothing tell you to repeat.

Table 2: Command use case description

3 Listen use case description

Name: Listen
Actor: user
Description: System inform user what to do
Pre-condition: audio should be in system .
Normal flow:
1. A System play the audio to guide a user.
2. System tell user all command will use.

Table 3 : Listen use case description

22
Structural model

A class diagram is a static model that shows the classes and the relationships among
classes that remain constant in the system over time. The class diagram depicts classes,
which include both behaviors and states, with the relationships between the classes. The
following sections first present the elements of the class diagram, followed by the way in
which a class diagram is drawn.
Class The main building block of a class diagram is the class, which stores and manages
information in the system. During analysis, classes refer to the people, places, events, and
things about which the system will capture information. Later, during design and
implementation, classes can refer to implementation-specific artifacts such as windows,
forms, and other objects used to build the system (John Wiley & Sons, 1992).

The modeling concepts

Modeling concepts are concerned with the system model, and view. The main focused
terms are system, model, and view and the relationship with the implementation such as
data types, classes, instances, and objects.
A system is an organized set of communicating parts. Parts of a system can in turn be
considered as simpler systems called subsystems. Many systems are made of numerous
subsystems interconnected in complicated ways, often so complex that no single
developer can manage its entirety. Modeling is a means for dealing with this complexity.
Complex systems are generally described by more than one model, each focusing on a
different aspect or level of accuracy.
Modeling means constructing an abstraction of a system that focuses on interesting
aspects and ignores irrelevant details. What is interesting or irrelevant varies with the task
at hand.
Then we refine this model, adding more details about the forms that the system should
display, the layout of the user interface, and the response of the system to exceptional
cases. The set of all models built during development is called the system model. If we
did not use models, but instead started coding the system right away, we would have to

23
specify all the details of the user interface before the client could provide us with
feedback. Thus we would lose much time and resources when the client then introduces
changes. We can continue to use the divide-and-conquer method to refine a complex
model into simpler models (John Wiley & Sons, 1992).
A view focuses on a subset of a model to make it understandable.
A data type is an abstraction in the context of a programming language. A data type has
a unique name that distinguishes it from other data types. It denotes a set of values that
are members of the data type (i.e., the instances of the data type) and defines the structure
and the operations valid in all instances of the data type. Data types are used in typed
languages to ensure that only valid operations are applied to specific instances.

An abstract data types a data type defined by an implementation-independent


specification. Abstract data types enable developers to reason about a set of instances
without looking at a specific implementation of the abstract data type.

A class is an abstraction in object-oriented modeling and in object-oriented programming


languages. Like abstract data types, a class encapsulates both structure and behavior.
Unlike abstract data types, classes can be defined in terms of other classes by using
inheritance.
This type of relationship between a base class and a refined class is called inheritance.
The generalization class, is called the super class, the specialized class is called the
subclass. In an inheritance relationship, the subclass refines the super class by defining
new attributes and operations. Super class and subclass are relative terms. The same class
can be a subclass with respect to one class and a super class with respect to another class
(John Wiley & Sons, 1992).

A class defines the operations that can be applied to its instances. Operations of a super
class can be inherited and applied to the objects of the subclass as well.

24
A class defines the attributes that apply to all its instances. An attribute is a named slot
in the instance where a value is stored. Attributes have a unique name within the class
and the type.
An object is an instance of a class. An object has an identity and stores attribute values.
Each object belongs to exactly one class.
Table
A table is a set of data (values) that is organized according to a model of vertical columns
(that re identified by their name) and of horizontal lines. A table has a number specified
of columns, but can have any number of lines (John Wiley & Sons, 1992).
NameTable

Event classes are abstractions representing a kind of event for which the system has a
common response. An event, an instance of an event class, is a relevant occurrence in the
system. Sending message is the mechanism by which the sending object requests the
execution of an operation in the receiving object. The message is composed of a name
and a number of arguments.
Polymorphism introduces a new challenge in testing because it enables messages to be
bound to different methods based on the class of the target. Although this enables
developers to reuse code across a larger number of classes, it also introduces more cases
to test. All possible bindings should be identified and tested.
Encapsulation is the mechanism that combines the processes and data into a single
object. Information hiding suggests only the information required to use an object be
available out-side the object; that is, information hiding is related to the visibility of the
methods and attributes.
Inheritance allows developers to define classes incrementally by reusing classes defined
previously as the basis for new classes. Although we could define each class separately, it
might be simpler to define one general super class that contains the data and methods
needed by the subclasses and then have these classes inherit the properties of the super
class. Sub-classes inherit the appropriate attributes and methods from the super classes
above them. Inheritance makes it simpler to define classes. (Martin Fowle, 1998)

25
Class Diagram

A class diagram is an illustration of the relationships and source code dependencies


among classes in Unified Modeling Language (UML), in this context; a class defines the
methods and variables in an object, which is a specific entity in a program or the unit of
representing that the unit of code representing that entity. Class diagrams are useful in all
forms of object-oriented programming (OOP).in a class diagram; the classes are arranged
in groups that share common characteristics.

A class diagram resembles a flowchart in which classes are represented as boxes, each
box having three rectangles inside. The top rectangle contains the name of the class; the
middle rectangle contains the attributes of the class; the lower rectangle contains the
methods, also called operations, of the class, lines, which may have arrows at one or both
ends, connect the boxes. These lines define the relationships, also called association,
between the classes. (Edward Yourdon)

As far as our application is concern, classes identified are in the following diagram:

26
recognition
synthetic
+config : Object
-name : string
-listofvoice : string +configuration()
+read() *..1 +microphone()
+recognize()
+result()

0..1
1

swingmediaplayer1
+listofsongs : string audioplayer
+extansion : string
-playcomplete : boolean(idl)
-player : object(idl)
-isstop : boolean(idl)
-playeback : object(idl)
-isplay : boolean(idl)
-timer : object(idl)
-ispause : boolean(idl)
-audiofilepath : Object
-result : string +hagarara()
+komeza()
+hagarara()
+imbere()
+komeza()
+inyuma()
+imbere()
+inyuma()

jpanel
«interface»
actionlistener

Figure 4 : Class diagram

Design of new system

Systems design is the process of defining the architecture, components, modules,


interfaces, and data for a system to satisfy specified requirement. Systems design could
be seen as the application of systems theory to product development. During system
design, we identify design goals, decompose the system into subsystems, and refine the
subsystem decomposition until all design goals are addressed.
27
However, the impact is similar: one design goal is examined at the time, influencing the
system decomposition and resulting in the change of the subsystem decomposition or its
interfaces.

Architectural design

The important step of design is the creation of the physical architecture layer design, the
plan for how the system will be distributed across the computers and what hardware and
software will be used for each computer.Most systems are built to use the existing
hardware and software in the organization, so often the current architecture and hardware
and software infrastructure restricts the choice. Other factors, such as corporate standards,
existing site-licensing agreements, and product vendor relationships also can mandate
what architecture, hardware, and software the project team must design. However, many
organizations now have a variety of infra-structures available or are openly looking for
pilot projects to test new architectures, hard-ware, and software, which enables a project
team to select an architecture on the basis of other important factors. (Edward Yourdon)

The main element of the architectural design

1. The user interface, which runs on the user's computer (the client)
2. The functional modules that actually process data. This middle tier runs on server
and is often called the application server.

Figure 5 : Architectural design

28
Sequence Diagram

Sequence diagrams are one of two types of interaction diagrams. They illustrate the
objects that participate in a use case and the messages that pass between them over time
for one use case. A sequence diagram is a dynamic model that shows the explicit
sequence of messages that are passed between objects in a defined interaction. Because
sequence diagrams emphasize the time-based ordering of the activity that takes place
among a setoff objects, they are very helpful for understanding real-time specifications
and complex use cases. (Edward Yourdon)

The elements of sequence diagram

Term and definition Symbol


An actor:
 It can be a person or system that derives benefit from
and is external to the system.
 It participates in a sequence by sending and/or
receiving messages. Top Package::Actor

 It is placed across the top of the diagram.

An object lifeline:
 It participates in a sequence by sending and/or Object

receiving messages.
 It Is placed across the top of the diagram.

An activation:
 It is a long narrow rectangle placed on top of a lifeline.
 It denotes when an object is sending or receiving
messages

A message: :Message send

29
 It conveys information from one object to another one.
:asynchronous
 An operation call is labeled with the message being
call message
sent and a solid arrow, whereas a return is labeled with
the value being returned and shown as a dashed arrow.
:Message
return

: Message call

Table 1 : The elements of the sequence diagram

Figure 6 : sequence diagram for recognize

30
Figure 7: Sequence diagram for spoken sound

Figure 8: Sequence diagram for spoken sound

31
CHAPTER 4

IMPLEMENTATION AND TESTING OF THE NEW SYSTEM

Introduction

This chapter describes the development of the “Kinyarwanda voice media player”. It
includes a brief overview of the technologies used to make the application, operation,
tests that have been applied. But not least, software and hardware compatibility
requirements.

Technologies used

To develop this application we have used different technologies namely:


Technology Stack Software Product
Operating System Window 7
Text editor Netbeans IDE 7.1
Sphinx4
CMU Sphinx

Multi-track audio editor and recorder Audacity


Table 2: Technologies used

Netbeans IDE 7.1: A programming tool or software development tool is a program or


application that software developers use to create, debug, maintain, or otherwise support
other programs and applications. NetBeans IDE is a software development tool which is
an open-source integrated development environment which supports development of all
Java application types (Desktop Application, web application, Applets, etc).
The Sphinx4 speech recognition system is the latest addition to Carnegie Mellon
University's repository of the Sphinx speech recognition systems. It has been jointly
designed by Carnegie Mellon University, Sun Microsystems laboratories, Mitsubishi
Electric Research Labs, and Hewlett-Packard's Cambridge Research Lab.

32
Sphinx 4 is different from the earlier CMUSphinx systems in terms of modularity,
flexibility and algorithmic aspects. It uses newer search strategies, is universal in its
acceptance of various kinds of grammars and language models, types of acoustic models
and feature streams.

Algorithmic innovations included in the system design enable it to incorporate multiple


information sources in a more elegant manner as compared to the other systems in the
Sphinx family.

Sphinx 4 is developed entirely in the Java programming language and is thus highly
portable. Sphinx 4 also enables and uses multithreading and permits highly flexible user
interfacing.

Audacity: is the name of a popular open source multilingual audio editor and recorder
software that is used to record and edit sounds. It is free and works on Windows, Mac OS
X, GNU/Linux and other operating systems.
Audacity can be used to perform a number of audio editing and recording tasks such as
making ringtones, mixing stereo tracks. Audacity help you to edit your audio and remove
silence part.

SOFTWARE TESTING

Software tests play an important role in the software designing. They help to verify the
effectiveness of the software to see if it actually does what it was supposed to solve.

Listed are key aspects to take into consideration in software testing

 Does the application meet the requirements that guided its design and
development?
 Does the application works as expected?
 Can the application be implemented with the same characteristics and satisfies
the needs of the stakeholders?

33
The following are some software testing

The Unit Test: Unit testing is a process to ensure the proper functioning of particular
software or a portion of a program. It is a method by which individual units of source
code, sets of one or more computer program modules together with associated control
data, usage procedures, and operating procedures, are tested to determine if they are fit
for use. In other words every small component that can be compiled with the goal to
know that every unit matches to its specifications, and to know if there are logical
mistakes. Indeed, the unit test is an efficient means that permits to detect the maximum
possible mistakes. The application has been checked with the unit test at each piece of the
code written.
For example my application have three part voice recognition, voice synthesize and
media player ,in unit test I test each part independently .
The Integration test: is the phase in software testing in which individual software
modules are combined and tested as a group. This test is useful to check the assembly of
the different part of the software. It is also a progression of tests, in which the software
and hardware components are collected and tested until the entire system is tested. The
application modules have been successively tested until completion to ensure that the
whole constituted by the assembled software components answers to the required
functional and technical specifications.
The Validation test: The last test phase has the role of validating the software in its
external environment. The product has been put in final situation in order to verify if it
perfectly answers to the needs expressed in the first phase. The validation test is
important, since it is necessary to verify if the setting up of the application corresponds to
the expressed needs. The application has been tested in its entirety, and it is in this way
that we noticed that the progress of operations done corresponds to the functional
specifications.

34
KINYARWANDA VOICE MEDIA PLAYER FORM

Figure 9: Welcome form screenshot

Access on the directories


After application told you that are well open you see the directory without the floppy disc
driver or CD/DVD room driver using "Soma" like voice grammar

35
Figure 10: Listen music form screenshot

After choose directory the list of all songs in that driver display on form
and you change music whatever you want..

Figure 11: List of song screenshot

36
Software Installation Requirements

The following are software and hardware requirements needed for better performance of
Kinyarwanda voice media player
Computer (laptop or desktop)
Earphone with microphone

37
CHAPTER 5

CONCLUSION AND RECOMMENDATIONS

Conclusion

The main objective of this project was to design and implement a Kinyarwanda voice
media player to be used first of all by blind persons secondly with other users who need
to have a media player which can be controlled by Voice.

The application was designed and developed successfully. It fulfills all the requirements
stated in the solution proposal. It have been tested positively to satisfy the need for a
blind person to operate a media player.

Briefly the blind persons can operate fully this media player without assistance of another
person, the application is accessible to many Rwandan residents as it is in Kinyarwanda
language.

38
Recommendations
I recommend to fellow researchers and programmers to continue developing voice
control application in order to empower especially blind persons and also other users as it
give more flexibility capacity to the users.
I also recommend to anyone who is interested in developing application for blind persons
or voice control applications in general to use my work. .
Last I would like to recommend to the fellow colleagues who will be conducting research
to initiate projects to extend this applications to more features helpful to the blind
persons.

Limitation of this application

1. This application can't work without earphone because the speaker's noise cannot allow
microphone to listen the user voice only.
2. You cannot using all kinyarwanda words only the provided vocabulary that is why I
recommended those who are interested to extend the feautures and functions of this
application.
3. The use of probability rate in grammar implies that some noise (not human voice) can
affect the use of this application for example enabling a function without any action from
the user.

39
REFERENCES
Books

1. Picheny, M., (2002). Large vocabulary speech recognition, IEEE Computer.


2. Reddy D.R., (1976). Speech Recognition by Machine: a Review. Proceeding of IEEE.
3. Edward Yourdon, Yourdon Press, 1994., Object-oriented Systems Design: An
Integrated Approach.
4. Martin Fowle,February 13, 1998 Advanced Object-Oriented Analysis and Design
Using UML
5. Rudnicky, A.I., Lee, K.F., and Hauptmann, A.G. (1992) Survey of current speech
technology. Communications of the ACM,37(3):52-57.
6. Biing-Hwang Juang. "Fundamentals of speech recognition."(April 22, 1993).
7. Max S. Schoeffler. "Automatic speech recognition (ASR) processing using confidence
measures." U.S. Patent 5,566,272, issued October 15, 1996.
8. Roth, Emilie M., Kevin B. Bennett, and David D. Woods. "Human interaction with an
“intelligent” machine." international Journal of Man-machine Studies .

Websites

1. dictionary.reference. (1999). braille definition. (dictionary.reference, Éd.) June,1999.


2. Google. (2009, june 12). www.google.com/history of blind people.htm. Consulté le
june 10, 2015, sur www.google.com: www.google.com/history of blind people.htm
3. wikipedia. (2006). writing brille. (wikipedia, Éd.) October,2006.

Unpublished Material

1. AUCA Research and publication committee. (2012). Research Manual. Kigali


Rwanda.

40
APENDICES

41

You might also like