slideshow



Sinhala Screen Reader

Overview

         It has been identified as a very tedious job for visually impaired people to work on a computer.  Nevertheless there are various sophisticated systems developed to address this issue. Screen reader is one of most popular, effective and reliable software  which had been developed to cope with this matter. With the help of these screen reader software, blind people can operate a computer in a passable way.
 

        Screen reader is a software application which identifies and interprets what is being displayed on a computer screen.  Not only that, it also present what is on the screen to the user, using a text-to-speech converter also known as a synthesizer. This is an assistive tool which can be useful to blind, visually impaired, illiterate or learning disabled people. There are many screen readers available such as JAWS by Freedom Scientific, Window-eyes from GW Micro, Dolphin Supernova by Dolphin and Microsoft narrator. There is also open source software like NVDA. These screen readers usually operate alongside with synthesizers such as Espeak and Eloquence.
          There screen readers are customized to function with many popular languages but when it comes to less popular languages we can identify a deprivation.  For open source screen readers languages can be added manually by the users.  It is a privilege given to users of less popular languages to develop systems for their own languages and use them in their computer based activities. We have identified that Sinhalese is such a less popular language which has not been implemented in these screen readers. It would be immensely convenient for the intensive computer users who are also visually impaired in our country if such system is developed.

Project Goal
       This project has been initiated with 'Ranawiru Sevana' rehabilitation facility at Ragama. Project goal is to develop Sinhala screen reader software to help the retired blind soldiers to access documents & web sources and to ease their day-to-day computer related work. NVDA screen reader and eSpeak synthesizer are used to develop this system.

Our Solution
We have used available software components (component re-uses method) and integrated them appropriately to develop the final solution.
Though we use NVDA, Entire language definitions and pronunciation details are included in eSpeak synthesizer. eSpeak accepts only Unicode characters. Hence Sinhalese Unicode character set is used in this system.

About Sinhalese Unicode character set
       The Unicode encoding of Sinhala, as defined in, follows the model of other Indic languages.It contains codes for vowels, consonants and vowel modifiers. Encoding is based not on symbols or glyphs, but on linguistic units. For example, although the kombuva is written before a consonant, it is encoded following the consonant. However, this results in a complex mapping from the keyboard input to the Unicode representation and from Unicode to the screen display.

             The Unicode block for Sinhala simply lists the encoded symbols, and gives no guidance on implementation. While listing the symbols may be sufficient for encodings in which each symbol is assigned a code, it is not possible to implement Sinhala in Unicode without additional information.

About NVDA
         Non-Visual Desktop Access (NVDA) is a free and open source screen reader for the Microsoft Windows operating system. It is a system for blind or visually impaired to access computers running windows. This system includes more than 35 languages. Even though Sinhala is not in the standard package it is easily integrated. NVDA is developed by NV access, with community support. NVDA is a python based software program. This allows rapid development and code injection to C++ for performance issues. The program follows Object Orientation which allows high degree of scalability. Besides general Windows functionality, NVDA works with WordPad, Notepad and Internet Explorer. It supports the basic functions of Outlook Express, Microsoft Word 2000/XP/2003 and Microsoft Excel 2000/XP/2003

Major features of NVDA include:
  • Support for popular applications including web browsers, email clients, internet chat programs and office suites
  • Built in speech synthesizer supporting over 43 languages
  • Reporting of textual formatting where available such as font name and size, style and spelling errors
  • Automatic announcement of text under the mouse and optional audible indication of the mouse position
  • Support for many refresh-able braille displays
  • Ability to run entirely from a USB stick or other portable media without the need for installation
  • Easy to use talking installer
  • Translated into many languages
  • Support for modern Windows Operating Systems including both 32 and 64 bit variants
  • Ability to run on Windows logon and other secure screens
  • Support for common accessibility interfaces such as Microsoft Active Accessibility, Java Access Bridge, IAccessible2 and UI Automation
  • Support for Windows Command Prompt and console applications
For more information visit:  http://www.nvda-project.org/

Implementation with eSpeak Synthesizer
Following language definition files were created in eSpeak in order to add our language to the synthesizer
  1. espeak-data/voices/Si - This indicates the language name
  2. dictsource/Si_rules -  This contains pronunciations for numbers, letter and symbol names, and words with exceptional pronunciations.
  3. dictsource/fr_rules - This contains the spelling-to-phoneme translation rules.
Further information on how to add and improve languages can be found here:

After editing these files, the espeak-data folder in the NVDA folder had been replaced by the espeak-data in the espeak folder. 
An installation file has been created integrating all those setup files and edited file using iexpress in windows.


Further project plans
  • Add Sinhalese language to an open source mobile screen reader.

Team Members
  • Maheshakya Wijewardena
  • Thilina Rathnayake
  • Thimal Kempitiya
  • Hasitha Dhananjaya
  • Amila Perera
  • Jayaruwan Mannapperuma
  • Isuru Wijesinghe
  • Chamika Kasun
  • Dananji Liyanage
  • Yahani Hewagama