看到一个小伙伴分享的一个android下语音识别+图灵对话的源码,包含语音合成。
对话调用的图灵机器人提供的免费WEB API,语音目前用科大讯飞的在线接口,稍后打算把百度的语音也给加上。
有需要源码的请留下邮箱,或者发邮件到
kidsrobot@sina.cn使用的时候注意把图灵的API_KEY以及科大讯飞的APPID换成自己的。
/** 图灵机器人 */
public String TURING_API_KEY = "";
public String TURING_URL = "www.tuling123.com/openapi/api?key=";
public String TURING_USERID = "user-test";
/** 科大讯飞语音 */
public String IFLYTEK_APPID = "";
代码一直在改进,现在有点复杂,为了做研究测试,在语音识别(ASR)、语义理解(NLU)、对话(DIALOG)、语音合成(TTS)几个环节做了多个实现,每个实现都做成了单例。
上边几个环节都各自固定在一个线程中运行,线程间通过一个调度线程通信,这样可以优化效率,如果回声抑制可以做到的话,还可以在播放语音的过程中通过语音指令中断播放。
看代码可以从TalkActivity和TalkManager这两个类看起。
界面也做了一些优化,截图见附件: