使用百度语音识别,语音合成,一直报错
代码:
protected void onStart() {
super.onStart();
//创建唤醒事件管理器
eventManager = EventManagerFactory.create(MainActivity.this, "wp");
//注册唤醒事件监听器
eventManager.registerListener(new EventListener() {
@Override
public void onEvent(String name, String params, byte[] bytes, int i, int i1) {
if (params != null) {
try {
//解析json文件
JSONObject jsonObject = new JSONObject(params);
if ("wp.data".equals(name)) {
String word = jsonObject.getString("word");
Toast.makeText(MainActivity.this, word, Toast.LENGTH_SHORT).show();
speak("唤醒成功");
TimerTask task = new TimerTask() {
@Override
public void run() {
// 原因在这行是因为这个意图活动不存在,但我看官网demo也是这样写的
Intent intent = new Intent("com.baidu.action.RECOGNIZE_SPEECH");
//设置离线授权文件
intent.putExtra("grammar", "asset:///baidu_speech_grammar.bsg");
startActivityForResult(intent, 1); // 报错在这行
}
};
Timer timer = new Timer();
timer.schedule(task, 1500);
} else if ("wp.exit".equals(name)) {
// 唤醒已经停止
}
;
} catch (JSONException e) {
e.printStackTrace();
}
}
}
});
// 通知唤醒管理器, 启动唤醒功能
HashMap params = new HashMap();
params.put("kws-file", "assets:///WakeUp.bin");
eventManager.send("wp.start", new JSONObject(params).toString(), null, 0, 0);
//Toast.makeText(this,"启动唤醒",Toast.LENGTH_SHORT).show();
}
查了很多,他们都是这样写的,到我这就出错,是环境问题还是,缺少什么源文件?