<<>> <> <> <> 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; }. <<>> <> <> <<>> <<>> <<>>