Professional Documents
Culture Documents
Kinyarwanda Voice Media For Blind
Kinyarwanda Voice Media For Blind
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
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
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
ACKNOWLEDGEMENT ................................................................................................. xi
CHAPTER 1 ....................................................................................................................... 1
Introduction ................................................................................................................. 1
Introduction ................................................................................................................. 1
Objectives ....................................................................................................................... 4
CHAPTER 2 ....................................................................................................................... 7
Observation ................................................................................................................. 7
Documentation ............................................................................................................ 8
iv
Interviews .................................................................................................................... 8
Terminology................................................................................................................ 9
CHAPTER 3 ..................................................................................................................... 11
Relationships ............................................................................................................. 14
Phases of UP ............................................................................................................. 16
Requirement .................................................................................................................. 17
v
Sequence Diagram .................................................................................................... 29
CHAPTER 4 ..................................................................................................................... 32
Introduction ............................................................................................................... 32
CHAPTER 5 ..................................................................................................................... 38
Conclusion ................................................................................................................ 38
Recommendations ..................................................................................................... 39
REFERENCES ................................................................................................................. 40
Books ............................................................................................................................ 40
Websites ........................................................................................................................ 40
vi
LIST OF FIGURES
vii
LIST OF TABLES
viii
ABBREVIATION LIST
TTS: Text-to-speech
STT: Speech-to-text
ix
HMM: Hidden Markov Models
x
ACKNOWLEDGEMENT
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 .
Introduction
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.
A number of interests have motivated us to work on this project. For the sake of
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
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
working out of this project to build a large Kinyarwanda dictionary for voice
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
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.
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.
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
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
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)
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.
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.
10
CHAPTER 3
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.
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)
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)
Models of UML
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.
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) 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:
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
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
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
«uses»
welcome
openfile
0..1
0..1
0..1
0..1
command
0..1
User Listen
0..1
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:
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.
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.
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.
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).
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.
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 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
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)
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.
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)
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
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
30
Figure 7: Sequence diagram for spoken sound
31
CHAPTER 4
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
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.
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.
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
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..
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
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.
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
Websites
Unpublished Material
40
APENDICES
41