Technical Specifications
From Seeta
The activity is an extension of the OLPC activity “Talk n Type” which was based on the 1970s toy, Speak&Spell. The purpose of voice synthesis is achieved by using a Speech Dispatcher and the word list is stored in a custom dictionary.
[edit] Implementation Details
1. Word Source- Word Source is a WordNet dictionary which contains about 1.5 lac words with their meaning, sample usage, preposition etc properly mapped . Listen and Spell uses its heavily stripped down version (for using WordNet dictionary non-commercially/commercially, please follow the license agreement). The database has been stored in SQLite data format for easy access.
2. Aspell- Aspell has been used for the formatting of the dictionary in order to remove unwanted words.
3. All the words are ranked based upon their usage on the internet. Yahoo BOSS APIs have been used to store the number of search results each word would have with the corresponding word. Based on these data all the words have been ranked and categorized into 15 different levels.
4. Speech-Dispatcher: Speech-Dispatcher (http://www.freebsoft.org/speechd) is a socket-connection based speech server which provides speech APIs in many languages including Python and C.
5. Language of implementation: Python
6. Graphic User Interface- the GUI has been designed using PyGTK and Glade.
7. Parser for configuration files and dictionary data: OLPC includes many python modules which also include Expat Xml Parser. This module can be used to parse the data and extract the information required.
[edit] Application Structure
The application has been designed in a very efficient way. The following diagram can be used to get an understanding of its structure.
Figure 1: Application Structure
Here the pre-implemented wrapper for Espeak that is Speech-Dispatcher has been used. A wrapper class has been designed for managing the dictionary. All the operations performed in the dictionary are through this wrapper only, thereby maintaining the consistency of the dictionary. The GUI part has been kept as a separate class. All the logic is preformed in the Application Logic. The GUI class only updates the GUI.
[edit] Dictionary Database
1. Chirag Jain has compiled documentation on the Working of the database in Listen and Spell activity.
2. A pictorial representation of the database along with its tables can be obtained by clicking here.
