我用unity接了语音识别sdk,运行之后报错,
public class AndroidVoiceActivity extends UnityPlayerActivity implements RecognitionListener{
private static final String TAG = "Touch";
private static final int EVENT_ERROR = 11;
private SpeechRecognizer speechRecognizer;
private long speechEndTime = -1;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
speechRecognizer = SpeechRecognizer.createSpeechRecognizer(this, new ComponentName(this, VoiceRecognitionService.class));
speechRecognizer.setRecognitionListener(this);
Log.d(TAG, "----onCreate");
}
public void StartRecord()
{
new Handler(Looper.getMainLooper()).post(new Runnable(){
@Override
public void run(){
Log.d(TAG, "----begin1");
speechRecognizer.cancel();
Log.d(TAG, "----begin2");
Intent intent = new Intent();
Log.d(TAG, "----begin3");
bindParams(intent);
Log.d(TAG, "----begin4");
intent.putExtra("vad", "touch");
Log.d(TAG, "----begin5");
speechRecognizer.startListening(intent);
Log.d(TAG, "----begin6");
}});
}
..........
}
bindParams(intent)设置的参数跟demo一模一样,运行完之后sdk内部报错了?那个大神帮我看看啊????
12-10 09:37:03.768: D/Touch(29408): ----begin6
12-10 09:37:03.840: W/System.err(29408): java.lang.IllegalArgumentException: can't init arg def list
12-10 09:37:03.840: W/System.err(29408): at com.baidu.speech.Args.getDefinition(Args.java:314)
12-10 09:37:03.840: W/System.err(29408): at com.baidu.speech.Args.(Args.java:292)
12-10 09:37:03.840: W/System.err(29408): at com.baidu.speech.Args.(Args.java:287)
12-10 09:37:03.840: W/System.err(29408): at com.baidu.speech.AbsSession.run(AbsSession.java:70)
12-10 09:37:03.840: W/System.err(29408): at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:422)
12-10 09:37:03.841: W/System.err(29408): at java.util.concurrent.FutureTask.run(FutureTask.java:237)
12-10 09:37:03.841: W/System.err(29408): at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1112)
12-10 09:37:03.841: W/System.err(29408): at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:587)
12-10 09:37:03.841: W/System.err(29408): at java.lang.Thread.run(Thread.java:841)
12-10 09:37:03.841: W/System.err(29408): Caused by: java.lang.NullPointerException
12-10 09:37:03.841: W/System.err(29408): at com.baidu.speech.Args.staticInit(Args.java:47)
12-10 09:37:03.842: W/System.err(29408): at com.baidu.speech.Args.getDefinition(Args.java:311)
12-10 09:37:03.842: W/System.err(29408): ... 8 more
12-10 09:37:03.843: D/Touch(29408): ----识别失败:没有匹配的识别结果:7
12-10 09:37:03.844: D/Touch(29408): ----EVENT_ERROR, #7, No recognition result matched. non expected results: null
这个问题没解决,之后就接了讯飞的了
我也遇到了类似问题,楼主解决了吗 ? 我的在eclips的android工程里是正常的 ,但是在Unity3d里点击录音就报这个错拉 , 难道android版本语音识别只能集成科大讯飞的拉??