com.google.android.voicesearch.speechservice.ConnectionException:无法建立连接

时间:2012-11-04 19:06:49

标签: error-handling speech-recognition voice voice-recognition

我正在测试一个进行语音识别的应用,但现在我收到了这个错误:

11-04 16:25:58.249: E/ServerConnectorImpl(13716): Failed to create TCP connection
11-04 16:25:58.249: E/ServerConnectorImpl(13716): com.google.android.voicesearch.speechservice.ConnectionException: Failed to establish connection
11-04 16:25:58.249: E/ServerConnectorImpl(13716):   at com.google.android.voicesearch.tcp.TcpConnectionImpl.<init>(TcpConnectionImpl.java:87)
....

这是我的代码:

sr = SpeechRecognizer.createSpeechRecognizer(getApplicationContext());
MyRecognition listener = new MyRecognition();
sr.setRecognitionListener(listener);

实现RecognitionListener

方法的类MyRecognition
class MyRecognition implements RecognitionListener{
    public void onBeginningOfSpeech() {

    }
    public void onBufferReceived(byte[] buffer) {

}
    public void onEndOfSpeech() {

}
    public void onError(int error) {
        MediaPlayer mp = new MediaPlayer();
            AssetFileDescriptor asset;
            try {
                asset = getAssets().openFd("error.mp3");
                mp.setDataSource(asset.getFileDescriptor(), asset.getStartOffset(), asset.getLength());
                asset.close();
                mp.prepare();
                mp.start();

                mp.setOnCompletionListener(AddActivity.this);
            } catch (IOException e) {
                e.printStackTrace();
            }
    }
    ....
    public void onResults(Bundle results) {
        ....
    }
    .... 
}

进行语音识别的方法

private void reconheceVoz(final MediaPlayer mp){
    try{
        Intent intent = new Intent(RecognizerIntent.ACTION_RECOGNIZE_SPEECH);
        intent.putExtra(RecognizerIntent.EXTRA_LANGUAGE_MODEL, RecognizerIntent.LANGUAGE_MODEL_FREE_FORM);
        intent.putExtra(RecognizerIntent.EXTRA_CALLING_PACKAGE, "com.br.test");
        intent.putExtra(RecognizerIntent.EXTRA_MAX_RESULTS, 5);
        sr.startListening(intent);

        mp.release();
    }
    catch(Exception e){
        Toast.makeText(AdicaoActivity.this, "Erro: " + e.getMessage(), Toast.LENGTH_SHORT).show();
    }
}

这种错误经常发生?我该怎么对待它?

感谢。

0 个答案:

没有答案