// Response or event from the server arrived public override bool OnMessageReceive(UniMRCPSynthesizerMessage message) { // Analyze message, update your application state and reply messages here if (message.GetMsgType() == UniMRCPMessageType.RESPONSE) { if (message.GetStatusCode() != UniMRCPStatusCode.CODE_SUCCESS) { return(Fail(String.Format("SPEAK request failed: {0}", message.GetStatusCode()))); } if (message.GetRequestState() != UniMRCPRequestState.STATE_INPROGRESS) { return(Fail(String.Format("Failed to start SPEAK processing"))); } // Start writing audio to the file term.stream.started = true; return(true); // Does not actually matter } if (message.GetMsgType() != UniMRCPMessageType.EVENT) { return(Fail("Unexpected message from the server")); } if (message.GetEventID() == UniMRCPSynthesizerEvent.SYNTHESIZER_SPEAK_COMPLETE) { Console.WriteLine(String.Format("Speak complete: {0} {1}", message.completion_cause, message.completion_reason)); term.stream.started = false; sem.Release(); return(true); // Does not actually matter } return(Fail("Unknown message received")); }
// MRCP connection established, start communication public override bool OnAdd(UniMRCPSigStatusCode status) { if (status != UniMRCPSigStatusCode.SUCCESS) { return(Fail(String.Format("Failed to add channel: {0}", status))); } // Start processing here UniMRCPSynthesizerMessage msg = CreateMessage(UniMRCPSynthesizerMethod.SYNTHESIZER_SPEAK); msg.content_type = "text/plain"; msg.SetBody(text); return(msg.Send()); }
// Response or event from the server arrived public override bool OnMessageReceive(UniMRCPSynthesizerMessage message) { // Analyze message, update your application state and reply messages here if (message.GetMsgType() == UniMRCPMessageType.RESPONSE) { if (message.GetStatusCode() != UniMRCPStatusCode.CODE_SUCCESS) return Fail(String.Format("SPEAK request failed: {0}", message.GetStatusCode())); if (message.GetRequestState() != UniMRCPRequestState.STATE_INPROGRESS) return Fail(String.Format("Failed to start SPEAK processing")); // Start writing audio to the file term.stream.started = true; return true; // Does not actually matter } if (message.GetMsgType() != UniMRCPMessageType.EVENT) return Fail("Unexpected message from the server"); if (message.GetEventID() == UniMRCPSynthesizerEvent.SYNTHESIZER_SPEAK_COMPLETE) { Console.WriteLine(String.Format("Speak complete: {0} {1}", message.completion_cause, message.completion_reason)); term.stream.started = false; sem.Release(); return true; // Does not actually matter } return Fail("Unknown message received"); }