I suggest KISS. Find Eliza and use that as a model. Don’t fight the threads for listeners, etc. for the server based interpreter Program D. There may be much in it that will directly port into Android. Still it uses too much memory for Android apps.
The speech-to-text and text-to-speech in Android is only a small programming challenge - nothing to be concerned about I’m guessing. I think it is done on the Google servers, so you’ll need internet access in your app.
Someday I might port my C# AIML interpreter (http://AIMLpad/ChatBot.zip) to Android using the sqllite for accessing the categories. That way I don’t have to deal with big files of XML loading at start up.
I’m thinking one activity and one data provider service is all that is required unless the speech-to-text needs some special handling because of internet lags/delays.
Or you could create a webview activity and leverage Pandorabot - even simpler! Check out a javascript bridge in a page you have included in the resources of your app. I used something like that to position a Google map page using the phone’s GSP once.