[g-a-devel]New revision of GNOME Speech IDL



Hi All,

Sorry for the long message. Attached are the thre files containing the latest draft of IDL. I am in the process of getting the drivers currently in cvs up to speed with this idl.

The main issue not addressed by this proposal is multilingual text, which I propose we punt for a later revision.

This proposal breaks the single interface into three:

SynthesisDriver: Information about the driver (version, name, etc.)
Speaker-- an instance of the driver, functions for speaking, stopping speech, setting parameters etc.
	SpeechCallback-- interface implemented by clients to receive notifications

I've gotten rid of the idea of voices as muteable states of the driver, and replaced them with the idea of a speaker (which is a particular instance of a driver with it's own parameter settings).

The SynthesisDriver has two functions for finding out what voices an engine supports. the VoiceInfo struct is used to specify and return attributes of a voice such as name, gender/type, language, etc. The getVoices function allows the client to fill in the VoiceInfo struct to specify the kind of voice it wants, for example, set voiceinfo->gender to male to get a list of all male voices supported by the engine. getAllVoices returns all voices supported.

The createSpeaker returns a Speaker interface with the voice specified. Specification of a voice works the same as getVoices-- a speaker is created with the first voice matching the VoiceInfo struct passed to createSpeaker.

All of the parameter functions and speech functions were moved to the Speaker interface, since we want them to apply to a particular instance of the driver. The other item of note is that I have added a return value to the say function so a particular utterance can be identified in a speech callback.

SpeechCallback-- defines one function and is implemented by the client. The client would receive the id of the string for which the notification is being generated, and the character offset within the string which has been spoken and which caused the notification (0 for speech started, string length of speech finished).

I think the rest should be self explanatory. Let me know if you have any questions or suggestions.

Marc

Attachment: GNOME_Speech_SynthesisDriver.idl
Description: Binary data

Attachment: GNOME_Speech_Speaker.idl
Description: Binary data

Attachment: GNOME_Speech_SpeechCallback.idl
Description: Binary data



[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]