Speech-synthesis

About you

Q.1: What is your name?

A: Chirag Jain


Q.2: What is your email address?

A: chiragjain1989{AT}gmail{DOT}com


Q.3: What is your Sugar Labs wiki username?

A: chiragjain1989


Q.4: What is your IRC nickname?

A: chirag


Q.5: What is your primary language? (We have mentors who speak multiple languages and can match you with one of them if you'd prefer.)

A: Hindi and English


Q.6: Where are you located, and what hours do you tend to work? (We also try to match mentors by general time zone if possible.)

A: I am located in India, Delhi 5:30+GMT. I can work from early morning to late midnight.

collaborating with any mentor wouldn't be a big deal.

Q.7: Have you participated in an open-source project before? If so, please send us URLs to your profile pages for those projects, or some other demonstration of the work that you have done in open-source. If not, why do you want to work on an open-source project this summer?

A: I was not aware of a thing like open source before I stepped into my college. But then I heard a lot about this stuff from my seniors. Then I started participating in coding events and my first open source event was AI Challenge organized during our technical fest.

I did write a simulator code for the event.
Link: http://code.google.com/p/artificial-intelligence.
Then I also made a Sudoku solver in open source using a back tracking method in C++. The algorithm has complexity which is exponential in nature.
Link: http://code.google.come/p/sudoku-crazy
I also actively participate at SPOJ programming contest site: http://www.spoj.pl/
Currently I am at world rank 756.
Link: http://www.spoj.pl/users/chiragjain1989
Now after knowing a lot about open source I want to gain some real time experience in open source development. The GSoC is an opportunity where I can apply my technical skills, can learn new things and at the same time can contribute something to the society.


About your project

Q.8: What is the name of your project?

A: Speech Synthesis in core sugar


Q.9: My project description. What are you making?

A: I want to integrate speech in the core sugar. Means I want to provide speech synthesis as a basic functionality in sugar.

According to eye-tracking research it can be shown that ‘’viewers naturally synchronize the auditory and textual information while watching a film song with SLS. When SLS is integrated into popular TV entertainment, reading happens automatically and subconsciously.’’
Who are you making it for, and why do they need it?
Language learning can be a great experience if done with speech. The literacy rate can be increased by 6-10% if speech is also included with text because this is the ability of our brain to easily remember sounds rather than text. So I am making this activity for children of age group 3-15 so that learning language can become easier for them.
What technologies (programming languages, etc.) will you be using?
I discussed a lot with alsroot, assimd and besmac on IRC about this project. The main points of discussion are:
  • The main aim of sugar in speech synthesis is to integrate the speech in core sugar.
  • Integrating speech in core sugar means providing a speech generator as a basic functionality in sugar. Thus if there is any window containing a text is open in sugar then the selected text can be read out by the application running behind.
  • The other aim is to develop a GUI for speech configuration which will also act as a configuration management tool.
  • Now in this tool, basic facilities like changing the volume, pitch, voice, accent, language etc can be included.
  • Accent according to locale is yet another important feature that we aim at in the speech synthesis. E-speak already provides different accents for different languages.
  • Another nice idea is a keyboard speaker. Means whenever a user presses any of the key, the activity speaks it out.
Some rough ideas of implementation:
                                                    --------------
                                                        Speech  
                                                       (Level 1)
                                                    ---------------
                                                          |
                                                          |
                                                          |
                                                          |
                                                          V
                                                   -----------------
                                                       Espeak (TTS)
                                                        (Level 2)
                                                   -----------------
                                                          |
                                                          |
                                                          |
                                                          V
                                                   ------------------
                                                    gstreamer Plugin
                                                       (Level 3)
                                                   ------------------
                                                          |
                                                          |
                                                          |
                                                          V
                                                  -------------------
                                                   Command Line Tool
                                           (To produce speech of the selected text)
                                           (In user selected languages and accents)
                                                  --------------------
                                                          |
                                                          |
                                ---------------------------------------------------------
                                |                                                        |
                                |                                                        |
                                V                                                        V
                   ------------------------                                      ---------------------
                   Button/Keyboard shortcut                                 GUI for Configuration management 


  • There are two options for using a layer over TTS engine espeak, one is a speech dispatcher which was created as last year GSoC project and other is the gstreamer plugin.
  • Both of these use espeak. Listen and Spell uses the speechd. But when I discussed it with alsroot on IRC, he told me that using a speechd is a bad idea because it has become a system daemon and requires root privileges to work. Therefore using gstreamer plugin is the only and best idea.
  • For the GUI pyGtk can be used.
  • Now to implement speech in sugar core my idea is to use clipboard module which takes care of copy paste in sugar. So using this module the entire selected text can be sent to the speech framework that it can speak out.
  • For the keyboard speaker, we can simply store the keystrokes in a file and then send the file to the speech generator.
  • The basic idea is to provide a read button in core sugar (like a home button) which is always there. So that if a user selects any of the text in the current window and presses the button it gets speak out.
  • A small code snippet which I have prepared for demonstration purpose is shown below. You can copy paste this and try it. First select some text and then run the code trough terminal. The code will speak the text. This is a very basic thing which we want to achieve in sugar
import gtk
from espeak import espeak
obj=espeak()
clip=gtk.Clipboard(display=gtk.gdk.display_get_default(),selection="PRIMARY")
text=clip.wait_for_text()
if text==None:
obj.speak("Sorry! No text is selected")
else:
obj.speak(text)
You can select the text anywhere in the sugar. Be sure to first install the espeak. Although I have created this code using espeak but in future I will be using gstreamer plugin.

Q.10: What is the timeline for development of your project? The Summer of Code work period is 7 weeks long, May 23 - August 10; tell us what you will be working on each week. (As the summer goes on, you and your mentor will adjust your schedule, but it's good to have a plan at the beginning so you have an idea of where you're headed.) Note that you should probably plan to have something "working and 90% done" by the midterm evaluation (July 6-13); the last steps always take longer than you think, and we will consider cancelling projects which are not mostly working by then.

A: [TODO]


Q.11: Convince us, in 5-15 sentences, that you will be able to successfully complete your project in the timeline you have described. This is usually where people describe their past experiences, credentials, prior projects, schoolwork, and that sort of thing, but be creative. Link to prior work or other resources as relevant.

A: I am currently pursuing my B.E. in Computer science from Netaji Subash Institute of Technology, New Delhi. A lot of students from this college have been associated with OLPC for development work. Like:

  • Food Force which is still in its developing phase. My seniors are working hard to achieve collaboration in Food Force.
  • Listen and Spell. This project was started by my senior Assim at GSoC 2008 and he is still working on it to remove speech dispatcher dependencies from it.
  • Speech dispatcher. This project was handled by my senior Hemant at GSoC 2008.
So by giving these examples what I am trying to say is that I have got many helping seniors, who have a lot of experience and who are ready to help me in every possible way they can.
I have already described some of my past achievements like AI challenge whose simulator code I prepared just in a time span of 15 days. In school also I prepared a lot of small projects in C++ like digital diary, Sudoku solver, library manager, telephone directory etc.
Another reason that I can easily complete the project is that I will be getting almost 3 months break during my summer vacations right from the end of May to August. Therefore I can concentrate entirely on this project with all my energies.

You and the community

Q.12: If your project is successfully completed, what will its impact be on the Sugar Labs community? Give 3 answers, each 1-3 paragraphs in length. The first one should be yours. The other two should be answers from members of the Sugar Labs community, at least one of whom should be a Sugar Labs GSoC mentor. Provide email contact information for non-GSoC mentors.

A: According to me, the main aim of sugar labs is to spread the fruit of literacy in developing nations. It is a common experience that we learn very fast on listening things then reading them. Providing speech in core sugar will be like making the sugar 10-15% more efficient. When children of age group 3-15 and who are learning languages will hear the speech again and again they will be able to learn it very fast. Not only this, now they will be able to hear a story or any other text than just reading it. One more potential advantage is for blind students which can't read the texts but can learn the language by listening it and feeling the words.

According to Edward Cherlin <echerlin@gmail.com>
call our text coloring engine to mark the word being spoken. That's designed for the pre-literate, on the model of Same-Language Subtitling in India.
Means the people in developing nations like India can learn the language or text faster if same language subtitling model is employed.

[ONE MORE PARA]



Q.13: Sugar Labs will be working to set up a small (5-30 unit) Sugar pilot near each student project that is accepted to GSoC so that you can immediately see how your work affects children in a deployment. We will make arrangements to either supply or find all the equipment needed. Do you have any ideas on where you would like your deployment to be, who you would like to be involved, and how we can help you and the community in your area begin it?

A: I would greatly appreciate the efforts of sugar if they are planing for this and I think that my home town which is still backward and has many primary schools, will be the best place where this pilot can be set up. I have many friends in the home town who are involved in such activities and they would love to contribute in here also. I also have a primary school near my home where we can easily test the activity.


Q.14: What will you do if you get stuck on your project and your mentor isn't around?

A: Well I have some of my great helping seniors who are already associated with OLPC for some projects (Like Food Force) and who are ready to help me out in every possible way they can.

If still the problem can't be resolved then I can always ask it on IRC.
Google is also a very great option
I can also post the problem on sugar mailing list.

Q.15: How do you propose you will be keeping the community informed of your progress and any problems or questions you might have over the course of the project?

I will regularly post my progress reports on my wiki page.
Link: http://wiki.sugarlabs.org/go/chiragjain1989
I can mail my progress reports to sugar mailing list.

Miscellaneous

 
My Screenshot with my email address

Q.16: We want to make sure that you can set up a development environment before the summer starts. Please send us a link to a screenshot of your Sugar development environment with the following modification: when you hover over the XO-person icon in the middle of Home view, the drop-down text should have your email in place of "Restart." See the image on the right for an example. It's normal to need assistance with this, so please visit our IRC channel, #sugar on irc.freenode.net, and ask for help.

A: My development environment screen shot is attached on the right side.


Q.17: What is your t-shirt size? (Yes, we know Google asks for this already; humor us.)

A: Extra Large


Q.18: Describe a great learning experience you had as a child.

A: When I was in my primary school there were some teachers who believed in education through entertainment. So they always perform some entertaining activities to teach us. Like for example when I was in third or fourth standard, I always get confused in less than and greater than signs. Even if I could make which number is greater or lesser but I become confuse in selecting the right sign. So one day I approached my teacher. She removed my confusion by a nice method. She told me that I should give two dots in front of the number which is greater like : and one dot to the number which is lesser like. For example if I have to place sign between 2___ 5 then I would give one dot in front of 2 and two dots in front of 5 like this 2. : 5

Now on joining these dots we can get the correct less than sign.

Q.19: Is there anything else we should have asked you or anything else that we should know that might make us like you or your project more?

A: [TODO]