private NodeChain connect(Session recSession, Destination recDest,
Session ttsSession, Destination ttsDest, Destination ttsCmdDest,
Destination animPromptDest) {
mySpeechProducer = buildSpeechRecChain(recSession, recDest);
myResponseSender = buildTTSNodeChain(ttsSession, ttsDest);
myTTSCommnadSender = buildServiceCommandNodeChain(ttsSession, ttsCmdDest);
myAnimPromptSender = buildServiceCommandNodeChain(ttsSession, animPromptDest);
if(mySpeechProducer == null || myResponseSender == null
|| myTTSCommnadSender == null || myAnimPromptSender == null
|| myConvoProc == null){
return null;
}
myTTSCommnadSender.start();
myAnimPromptSender.start();
return NodeChainBuilder.build(mySpeechProducer)
.attach(new SpeechRecFilter())
.attach(new SpeechRecStringFilter())
.attach(new ConversationInputFilter())
.attach(myConvoProc)
.attach(new ConvoResponseFilter(
myTTSCommnadSender.getListener(),
new PortableServiceCommand.Factory(),
myAnimPromptSender.getListener()))
.attach(new ConvoResponseStringAdapter())
.attach(new SpeechFormatter("source", "dest"))
.attach(myResponseSender);
}