Features/Global Text To Speech
When the user press Alt+Shift+S the currently selected text should be said by the computer.
- Name: Gonzalo Odiard
- Email: gonzalo at laptop dot org
- Targeted release: 0.96
- Last updated: 31 Jan 2012
- Percentage of completion: 90%
The feature add a service to provide text to speech, and a device in the frame to configure pitch and velocity. A already reserved alt-shift-s key stroke say the selected text in any activity.
The actual implementation does not add any new dependency, and a initial version has been sent to sugar-devel for review.
Thread in sugar-devel: http://lists.sugarlabs.org/archive/sugar-devel/2011-November/034274.html
This is information about old intents of implementing this feature. Is a different implementation, then is here only for reference.
A GSOC project from Hemant Goyal worked in this area, related links:
- Google Summer of Code Logs ‐ http://wiki.laptop.org/index.php?title=User:Hemant_goyal
- python‐dotconf – parser for the dot.conf configuration file ‐ http://code.google.com/p/python‐dotconf/
- pydotconf API documentation ‐ http://www.nsitonline.in/hemant/stuff/python‐dotconf/docs/
- speech‐dispatcher RPM packages for OLPC ‐ http://koji.fedoraproject.org/koji/packageinfo?packageID=6374
- python‐dotconf RPM packages for OLPC – http://koji.fedoraproject.org/koji/packageinfo?packageID=6527
- Patches for sugar ‐ http://dev.laptop.org/git?p=users/hemantgoyal/speech;a=summary
- speechd python API ‐ http://cvs.freebsoft.org/repository/speechd/src/python/speechd/client.py?view=markup
- Active dev.laptop.org TRAC tickets relevant to the project
- Listen n Spell ‐ http://wiki.laptop.org/go/Listen_and_Spell
- Read Etexts http://wiki.laptop.org/go/Read_Etexts
Benefit to Sugar
Text to speech is a good feature to kids, when they are learning to read, and to kids with disabilities.
This feature does not cover the more complex uses of text to speech, like multiple languages and word highlighting.
In the future, we can move part of this code to sugar-toolkit to do easier to the activities use TTS and avoid duplicating code.
The backend can be changed in the future too, if you see there are better voices for example in Festival. Doing the change in a single place will be easier than modify every activity.
The change is isolated.
I propose use de default language now, and only expose controls to set pitch and velocity. In a later change, we can implement have more than one language enabled, and a switch to change it.
The UI will be a device in the frame, with the needed controls in the palette.
How To Test
We already include all the needed dependencies.