<> <> <> DIRECTORY RefID USING [ ID, nullID ], Rope USING [ ROPE ], Synthesizer USING [ ActionID, nullActionID, SynthSpec, SynthSpecs ], SynthesizerServerRpcControl USING [ InterfaceRecord ], Thrush USING [ ConversationID, NB, nullConvID, SHHH ] ; FinchSynthesizer: CEDAR DEFINITIONS = { <<>> <> <<>> NB: TYPE = Thrush.NB; SConvDesc: TYPE = REF SConvDescBody; SConvDescBody: TYPE = RECORD [ <> stateChange: CONDITION, -- for waiting for state of conversation to change. pendingSpecs: Synthesizer.SynthSpecs _ NIL, <<$requested, ~ ($finished or $abandoned)>> synthesizerServiceID: RefID.ID _ RefID.nullID, -- See FinchSynthesizerImpl for the RPC interface. synthInterface: SynthesizerServerRpcControl.InterfaceRecord _ NIL, synthShhh: Thrush.SHHH _ NIL ]; <<>> <> <> <> TextToSpeechProc: TYPE = PROC -- TAKES -- [ convID: Thrush.ConversationID_Thrush.nullConvID, synthSpec: Synthesizer.SynthSpec, queueIt: BOOL_TRUE, synthesizerTranslateProc: SynthesizerTranslateProc_NIL, synthesizerModel: ATOM_NIL, synthesizerVersion: ATOM_NIL] RETURNS [ nb: Thrush.NB_$success, newConvID: Thrush.ConversationID, newActionID: Synthesizer.ActionID ]; TextToSpeech: TextToSpeechProc; <> SpeakText: PROC[textToSpeak: Rope.ROPE] RETURNS [nb: NB]; <> StopSpeechProc: TYPE = PROC [convID: Thrush.ConversationID _ Thrush.nullConvID, actionID: Synthesizer.ActionID _ Synthesizer.nullActionID] RETURNS [ nb: Thrush.NB_$success, newConvID: Thrush.ConversationID, newActionID: Synthesizer.ActionID ]; StopSpeech: StopSpeechProc; <> <<>> ResetSynthesizer: PROC[convID: Thrush.ConversationID] RETURNS [nb: Thrush.NB]; <> <<>> RegisterTranslateProcType: TYPE = PROC [conversationID: Thrush.ConversationID, translate: SynthesizerTranslateProc_NIL]; RegisterTranslateProc: RegisterTranslateProcType; <> <<>> GetSynthesizerSpecifications: PROC[conversationID: Thrush.ConversationID] RETURNS [nb: Thrush.NB_$success, synthesizerModel: ATOM, synthesizerVersion: ATOM]; <> <<>> SynthesizerTranslateProc: TYPE = PROC [inText: Rope.ROPE] RETURNS [outText: Rope.ROPE]; <> <<>> InitializeFinchSynthesizer: PROC; }. <<>> <> <> <<>> <<>> <<>>