请问如何将语音识别、语音唤醒及语音合成集成到一起
丶Baka_51218 发布于2019-03 浏览:2212 回复:4
0
收藏

三个Demo我已经分别测通,但由于是android初学者,所以对代码的理解不深。根据官方的集成指南,我已经将语音识别和语音合成集成到一起。请问语音识别与语音唤醒能否共用一个onEvent函数?若不能,该怎样实现该功能?

@Override
public void onEvent(String name, String params, byte[] data, int offset, int length) {
if(name.equals(SpeechConstant.CALLBACK_EVENT_WAKEUP_SUCCESS)){
//唤醒成功
try {
JSONObject json = new JSONObject(params);
int errorCode = json.getInt("errorCode");
if(errorCode == 0){
//唤醒成功
text += "唤醒成功\n";
mContent.setText(text);
String word = json.getString("word");
if(word.equals("开始记录")){
Toast.makeText(this,"收到。正在为您启动引擎",Toast.LENGTH_SHORT).show();
speak("收到");
startRecog();
}
if(word.equals("停止记录")){
Toast.makeText(this,"停止记录,正在为您保存",Toast.LENGTH_SHORT).show();
speak("记录结束");
save();
}
} else {
//唤醒失败
alert("唤醒失败");
}
} catch (JSONException e) {
e.printStackTrace();
}
return ;
}
if(name.equals(SpeechConstant.CALLBACK_EVENT_WAKEUP_STOPED)){
//唤醒已停止
//alert("唤醒已停止");
text += "唤醒已停止\n";
mContent.setText(text);
return;
}
if(name.equals(SpeechConstant.CALLBACK_EVENT_ASR_READY)){
//引擎就绪,可以说话,一般在收到此事件后通过UI通知用户可以说话了
Toast.makeText(this,"语音识别引擎已就绪!",Toast.LENGTH_SHORT).show();
text += "语音识别就绪\n";
mContent.setText(text);
return;
}
if(name.equals(SpeechConstant.CALLBACK_EVENT_ASR_FINISH)){
//识别结束
text += "识别结束\n";
text += params;
mContent.setText(text);
return;
}
if(name.equals(SpeechConstant.CALLBACK_EVENT_ASR_PARTIAL)){
text += "部分结果回调";
text += params;
mContent.setText(text);
return;
}
}

收藏
点赞
0
个赞
共4条回复 最后由用户已被禁言回复于2022-04
#5用户已被禁言回复于2019-04

语音唤醒是打包在语音识别离在线融合SDK(Android/iOS)中的子功能。

0
#4用户已被禁言回复于2019-04
#3 卡农LLLL回复
语音识别和唤醒本来就是在一起的吧.

对的。

0
#3卡农LLLL回复于2019-04

语音识别和唤醒本来就是在一起的吧.

0
#2阿萨德去23123回复于2019-04

我是分开用的,共用一个没试过    多看看官方Demo 看懂了就好集成了

0
TOP
切换版块