Skip to content

Commit

Permalink
Updated the LOCALIZE documentation (#8)
Browse files Browse the repository at this point in the history
  • Loading branch information
akashdabhi03 authored May 8, 2019
1 parent cdbbb39 commit 9960698
Showing 1 changed file with 17 additions and 16 deletions.
33 changes: 17 additions & 16 deletions LOCALIZE.md
Original file line number Diff line number Diff line change
@@ -1,28 +1,29 @@
# Localization of RoboTutor

Last updated: May 6, 2019
## Overview
There are 9 key steps to localize RoboTutor as mentioned below:
1. **Analysis of game content:** Identify components in the application that require localization.
2. **Story creation:** Create stories in local language which would help the child to read and understand sentences.
3. **Image creation:** Identify the images required to represent stories and content in an effective manner.
4. **Dialog creation:** Create basic dialogs in the local language required for a child to learn and effectively communicate in day-to-day life.
5. **Time-stamp generation:** Generate time-stamps for audio file to synchronize highlighting of words in the sentences.
6. **Speech recognition:** Create speech recognition models to recognize speech in localized language.
7. **Handwriting recognition:** Create handwriting recognition models to recognize handwritten characters in localized language.
8. **Font:** Select a suitable font which can correctly render localized text in the application.
9. **Final build:** With all assets prepared, build RoboTutor in the new target language.
2. **Story creation:** Create stories in local language. This helps the child to read and understand sentences.
3. **Image creation:** To represent stories and content in an effective manner, identify the images required.
4. **Dialog creation:** To ensure the child learns how to effectively communicate in day-to-day life, create basic dialog..
5. **Time-stamp generation:** To synchronize the highlighting of words in sentences, generate time stamps for audio files.
6. **Speech recognition:** Create speech recognition models for localized languages.
7. **Handwriting recognition:** Create handwriting recognition models for handwritten characters in localized languages.
8. **Font:** Select a suitable font that can correctly render localized text in the application.
9. **Final build:** With all the assets now prepared, build RoboTutor in the new target language.

## Process
### 1. Stories
Stories section consist of 3 main components as mentioned below:
Stories section consists of 3 main components, as mentioned below:
* Story audio
* Story content
* Story images

Stories can be localized as follows:
1. Localize the story audios present in [English_StoriesAudio](https://github.com/XPRIZE/GLEXP-Team-RoboTutor-EnglishAssets/tree/master/English_StoriesAudio/assets/audio/en/cmu/xprize/story_reading/quality_low).
1. Localize the story audio present in [English_StoriesAudio](https://github.com/XPRIZE/GLEXP-Team-RoboTutor-EnglishAssets/tree/master/English_StoriesAudio/assets/audio/en/cmu/xprize/story_reading/quality_low).
2. Localize the story content by modifying the JSON files present [here](https://github.com/XPRIZE/GLEXP-Team-RoboTutor-EnglishAssets/tree/master/English_StoriesAudio/assets/story/en).
For example, observe the code snippet from [storydata.json](https://github.com/XPRIZE/GLEXP-Team-RoboTutor-EnglishAssets/blob/master/English_StoriesAudio/assets/story/en/1/1_1/storydata.json) file below and modify the value under the keys _word_, _utterances_ and _sentence_ to use localized text. Update the word's start and end timestamps by modifying the values for keys _start_ and _end_ respectively.
For example, use the code snippet from [storydata.json](https://github.com/XPRIZE/GLEXP-Team-RoboTutor-EnglishAssets/blob/master/English_StoriesAudio/assets/story/en/1/1_1/storydata.json) file below and modify the value under the keys _word_, _utterances_ and _sentence_ to use localized text. Update the word's start and end timestamps by modifying the values for the keys _start_ and _end_ respectively.

```json
{
Expand Down Expand Up @@ -86,16 +87,16 @@ For example, observe the code snippet from [storydata.json](https://github.com/X
3. Replace the images in [story](https://github.com/XPRIZE/GLEXP-Team-RoboTutor-EnglishAssets/tree/master/English_StoriesAudio/assets/story/en) folder with localized images.

### 2. Instructions
Replace the available instructions under [English_TutorAudio](https://github.com/XPRIZE/GLEXP-Team-RoboTutor-EnglishAssets/tree/master/English_TutorAudio/assets/audio/en) folder with localized audio.
Replace the available instructions in the [English_TutorAudio](https://github.com/XPRIZE/GLEXP-Team-RoboTutor-EnglishAssets/tree/master/English_TutorAudio/assets/audio/en) folder with localized audio.

### 3. Game content
Game content is available under [assets/tutors](https://github.com/XPRIZE/GLEXP-Team-RoboTutor-RoboTutor/tree/master/app/src/main/assets/tutors) folder. In order to localize the game content, the JSON files available in aforementioned folder (assets/tutor) need to be updated.
Game content is available in the [assets/tutors](https://github.com/XPRIZE/GLEXP-Team-RoboTutor-RoboTutor/tree/master/app/src/main/assets/tutors) folder. In order to localize the game content, the JSON files available in assets/tutor folder need to be updated.

### 4. Speech Recognition
PocketSphinx library is being used for speech recognition. Replace the speech recognition models available in [models](https://github.com/XPRIZE/GLEXP-Team-RoboTutor-RoboTutor/tree/master/comp_listener/src/main/assets/sync/models) folder with localized models. Languages supported by PocketSphinx can be found [here](https://cmusphinx.github.io/wiki/download/). Replace the contents in [models](https://github.com/XPRIZE/GLEXP-Team-RoboTutor-RoboTutor/tree/master/comp_listener/src/main/assets/sync/models) folder with a supported language.
The PocketSphinx library is being used for speech recognition. Replace the speech recognition models available in the [models](https://github.com/XPRIZE/GLEXP-Team-RoboTutor-RoboTutor/tree/master/comp_listener/src/main/assets/sync/models) folder with localized models. Languages supported by PocketSphinx can be found [here](https://cmusphinx.github.io/wiki/download/). Replace the contents of the [models](https://github.com/XPRIZE/GLEXP-Team-RoboTutor-RoboTutor/tree/master/comp_listener/src/main/assets/sync/models) folder with a supported language.

### 5. Handwriting Recognition
LipiTk toolkit is being used for handwriting recognition. Replace the modules in [comp_ltkplus](https://github.com/XPRIZE/GLEXP-Team-RoboTutor-RoboTutor/tree/master/comp_ltkplus) folder with localized modules. Languages supported by LipiTk toolkit can be found [here](http://lipitk.sourceforge.net/resources.htm). Replace the contents in [comp_ltkplus](https://github.com/XPRIZE/GLEXP-Team-RoboTutor-RoboTutor/tree/master/comp_ltkplus) with a supported language.
The Lipi Toolkit (LipiTk) is being used for handwriting recognition. Replace the modules in the [comp_ltkplus](https://github.com/XPRIZE/GLEXP-Team-RoboTutor-RoboTutor/tree/master/comp_ltkplus) folder with localized modules. Languages supported by LipiTk can be found [here](http://lipitk.sourceforge.net/resources.htm). Replace the contents of [comp_ltkplus](https://github.com/XPRIZE/GLEXP-Team-RoboTutor-RoboTutor/tree/master/comp_ltkplus) folder with a supported language.

### 6. Font
Replace the fonts in [fonts](https://github.com/XPRIZE/GLEXP-Team-RoboTutor-RoboTutor/tree/master/comp_ltkplus/src/main/assets/fonts) folder with the fonts that support your target localization language. Ensure that the new font files have the same name as the existing font file names so that the application can pick it up.
Replace the fonts in the [fonts](https://github.com/XPRIZE/GLEXP-Team-RoboTutor-RoboTutor/tree/master/comp_ltkplus/src/main/assets/fonts) folder with the fonts that support your target localization language. Ensure that the new font files have the same name as the existing font file names so that the application can pick it up.

0 comments on commit 9960698

Please sign in to comment.