Speech Server
Speech Synthesis Server
Description
An easy to use api for speech synthesis which would be useful for self-voicing activities.
Existing Tools Present
- eSpeak Speech synthesis- TTS engine on XO
- speech-dispatcher [Speech Dispatcher]
Please note that this is work in progress, and this API is currently NOT STABLE.
Modifiable Speech Parameters
Refer espeak Library API to understand usage.
espeakRATE = 1 espeakVOLUME = 2 espeakPITCH = 3 espeakRANGE = 4 espeakPUNCTUATION = 5 espeakCAPITALS = 6
Modifiable Voice Parameters
Follow the espeak Voice Description
language -> language(In standard notation) name -> a given name for this voice. By default it should be set NULL identifier -> the filename for this voice within espeak-data/voices. Should be set NULL by default. gender -> voice gender( 1 = male, 2 = female, 0 = unknown) age -> By default age = 0. espeak automatically sets it. variant -> Used to modify the voice by different variant. Preferably 0.
A speech synthesis dbus daemon service
- A dbus-glib based speech server written in C.
- Speech server reuses the libespeak library.
- Methods exposed via D-BUS for performing certain tasks globally to all xo activities.
Speech Server Dbus Methods
SayText()
This Dbus Method accepts an incoming UTF8 string, and plays it back.
SayText(string text)
- Speaks the text pointed by string.
- Must be a valid UTF 8 String
Example Python Code:
import dbus bus = dbus.SessionBus() espeak_object = bus.get_object('org.laptop.Speech','/org/laptop/Speech') espeak_object.SayText("Hello world! Hey I can talk to you")
SetVoice()
This Dbus Method accepts parameters to set the voice parameters for espeak. Refer to the Modifiable Voice Parameters for more details. This methods can be used to configure the voice properties of espeak.
SetVoice(String name, String languages, String identifier, int gender, int age, int variant, )
Python Example:
import dbus bus = dbus.SessionBus() espeak_object = bus.get_object('org.laptop.Speech','/org/laptop/Speech') espeak_object.SetVoice("","fr", "", 2,0,0) #Choose a female voice to speak french text espeak_object.SayText("Je suis une etudiante!")
SetParameter()
This Dbus Method accepts parameters to set the speech parameters for espeak. Refer to the Modifiable Speech Parameters for more details.
SetParameter(int PARAMETER_NAME, int PARAMETER_VALUE)
Python Example:
import dbus bus = dbus.SessionBus() espeak_object = bus.get_object('org.laptop.Speech','/org/laptop/Speech') espeak_object.SetParameter(1, 60) #Modifies the espeakRATE parameter to speak 60 words per minute espeak_object.SayText("I am a very lazy speaker!")
GetConfiguration()
This Dbus Method returns a dbus.Structure This is required for getting the current settings of the espeak service. It is required to display the present settings of espeak in the control panel that will be made available for tuning the espeak parameters.
GetConfiguration()
Python Example:
import dbus bus = dbus.SessionBus() espeak_object = bus.get_object('org.laptop.Speech','/org/laptop/Speech') espeak_object.SetParameter(1, 60) espeak_object.SetVoice("","en-uk", "", 2,0,0) val = espeak_object.GetConfiguration() print val
SaveConfiguration()
This Dbus Method allows the user to save the current espeak parameters.
SaveConfiguration()
Python Example:
import dbus bus = dbus.SessionBus() espeak_object = bus.get_object('org.laptop.Speech','/org/laptop/Speech') espeak_object.SetParameter(1, 60) espeak_object.SetVoice("","en-uk", "", 2,0,0) espeak_object.SaveConfiguration() #Will overwrite the existing user settings
LoadConfiguration() and LoadDefaultConfiguration()
This Dbus Method allows the user to set all espeak parameters to his/her preferences which they are required to save.
LoadConfiguration() or LoadDefaultConfiguration()
Python Example:
import dbus bus = dbus.SessionBus() espeak_object = bus.get_object('org.laptop.Speech','/org/laptop/Speech') espeak_object.LoadConfiguration()
Codebase
The code for the project can be accessed in the git repository at | Screen Reader GIT
Team
Core Team :
- Assim Deodia
- Cody Lodrige
- Hemant Goyal
Mentor : Arjun Sarwal