我正在研究从 Java 到 Android 的人机对话开源系统 JVoiceXML 的可移植性。该系统基于 VoiceXML 2.0 标准,该标准使用 XML 文档来创建人机之间的交互。
这个想法是为 Android 提供一种方法来创建应用程序,这些应用程序使用 TTS 和 SpeechRecognizer android 引擎通过语音与用户交互。
我们试图在屏幕上没有任何视觉效果的情况下这样做,就像系统服务可以工作一样。现在我已经尝试将我们的系统实现为服务,但是我遇到了线程和 Android 杀死我的服务的问题。
问题是,您认为哪种方法最适合我的项目,AsyncTask、服务、Loader?也许是启动 AsyncTask 或 Loader 的服务?
要求是:
- 我的 VoiceXML 解释器被应用程序 Intent 启动(意图过滤器是我现在拥有的方式)
- 它从应用程序接收文档。该应用程序还可以停止我的解释器,或者至少停止对该文档的解释。
- 口译员与 TTS 交互并创建语音识别器引擎。
- Interpreter 本身是一个 java 线程,必须从 service、loader 或 asyncTask 启动。
- 只有一个应用程序可以使用我的解释器(无需并行连接)
如果需要更多信息来理解问题,请告诉我。
提前致谢,
马科斯。