DIRECTORY RefID USING [ ID, nullID ], Rope USING [ ROPE ], Synthesizer USING [ ActionID, nullActionID ], Thrush USING [ Credentials, NB, none, SHHH ] ; SynthesizerServer: CEDAR DEFINITIONS = { TextToSpeech: PROC -- TAKES -- [ shhh: Thrush.SHHH_Thrush.none, credentials: Thrush.Credentials, -- authenticates caller serviceID: RefID.ID, -- identifies particular service textToSpeak: Rope.ROPE, actionID: Synthesizer.ActionID _ Synthesizer.nullActionID, filter: BOOL_TRUE, queueIt: BOOL_TRUE ] RETURNS [nb: Thrush.NB]; StopSpeech: PROC -- TAKES -- [ shhh: Thrush.SHHH_Thrush.none, credentials: Thrush.Credentials, serviceID: RefID.ID, reset: BOOL _ FALSE ] RETURNS [nb: Thrush.NB]; GetSynthesizerSpecifications: PROC -- TAKES -- [ shhh: Thrush.SHHH_Thrush.none, serviceID: RefID.ID _ RefID.nullID ] RETURNS [ nb: Thrush.NB, synthesizerModel: ATOM, synthesizerVersion: ATOM ]; }. κSynthesizerServer.mesa Copyright c 1986 by Xerox Corporation. All rights reserved. Last Edited by: Swinehart, October 24, 1986 5:53:45 pm PDT SynthesizerServer is a voice service interface. It is exported to $text-to-speech service parties, providing procedures for converting text to voice. Procedures Speak some text. Queue behind any existing text. (Client must call StopSpeech first to flush existing queues.) Action reports (iff synthSpec.actionID#nullActionID) { $synthesizer, $scheduled, synthSpec.actionID } as the interval is accepted by the server. { $synthesizer, $started, synthSpec.actionID } as output begins for this rope. { $synthesizer, $finished, synthSpec.actionID } when the interval has finished. { $synthesizer, $abandoned, synthSpec.actionID } when all actions ending with this interval have been flushed. Stop speaking some or all of the scheduled ropes. Action reports (iff actionID#nullActionID was specified in original request) { $synthesizer, $abandoned, actionID } as indicated above. If reset is TRUE, initiate self-test, reset all speech parameters (an escape hatch). Describe the synthesizer that provides this interface. N.B. When the conversation is terminated before all actions have completed, reporting is problematical. Currently, the requesting party may well not receive any reports after idling the conversation (hanging up, for instance.) Swinehart, October 3, 1986 4:41:39 pm PDT Derived from the prototype VoiceTemp interface; a Party Service Interface. Κ?˜Jšœ™šœ Οmœ1™