SynthesizerServer.mesa
Copyright © 1986 by Xerox Corporation. All rights reserved.
Last Edited by: Swinehart, October 24, 1986 5:53:45 pm PDT
DIRECTORY
RefID USING [ ID, nullID ],
Rope USING [ ROPE ],
Synthesizer USING [ ActionID, nullActionID ],
Thrush USING [ Credentials, NB, none, SHHH ]
;
SynthesizerServer: CEDAR DEFINITIONS = {
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.
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: BOOLTRUE,
queueIt: BOOLTRUE
]
RETURNS [nb: Thrush.NB];
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).
StopSpeech: PROC
-- TAKES -- [
shhh: Thrush.SHHH←Thrush.none,
credentials: Thrush.Credentials,
serviceID: RefID.ID,
reset: BOOLFALSE
]
RETURNS [nb: Thrush.NB];
Describe the synthesizer that provides this interface.
GetSynthesizerSpecifications: PROC
-- TAKES -- [
shhh: Thrush.SHHH←Thrush.none,
serviceID: RefID.ID ← RefID.nullID
]
RETURNS [ nb: Thrush.NB, synthesizerModel: ATOM, synthesizerVersion: ATOM ];
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.