2013-11-01 7 views
0

Я столкнулся с этой ошибкой при создании приложения, которое может записывать голос и конвертировать речь в текст одновременно. Я использовал Google API для части распознавания речи и объекта audioRecorder для целей записи. Это не сработало, и поэтому я перешел к использованию onBufferReceived() для извлечения байтов (пока пользователь говорит) в этом процессе. Код API Google теперь находится в onResults() части моего кода, который распознает голос без пользовательского интерфейса.распознавание голоса и запись

Вот код

class listener implements RecognitionListener   
    { 

     public void onBufferReceived(byte[] buffer) 
     { 
      bufferBytes = buffer; 
     // capturing the buffer into bufferBytes static variable as the user speaks 
      try { 

       bos = new BufferedOutputStream(fos); 
       bos.write(buffer); 

      } catch (Exception e) { 
       e.printStackTrace(); 
      } 
      finally{ 
       if(bos != null){ 
        try{ 
         bos.flush(); 
         bos.close(); 
        }catch(Exception e){} 
       } 
      } 

     } 
     public void onEndOfSpeech() 
     { 
      speakButton.setText(getString(R.string.Speak)); 
      Log.d(TAG, "onEndofSpeech"); 
     } 
     public void onError(int error) 
     { 
      Log.d(TAG, "error " + error); 
      mSendText.setVisibility(View.VISIBLE); 
      mSendText.setText("error retriving text, please once check your Data Connection "); 
     } 
     public void onResults(Bundle results)     
     { 
      String str = new String(); 
      Log.d(TAG, "onResults " + results); 
      ArrayList data = results.getStringArrayList(SpeechRecognizer.RESULTS_RECOGNITION); 
      for (int i = 0; i < data.size(); i++) 
      { 
       Log.d(TAG, "result " + data.get(i)); 
       str += data.get(i); 
      } 
      mSendText.setVisibility(View.VISIBLE); 
      mSendText.setText(data.get(0)+"");  
     } 
    } 

ответ

1

Согласовывающий comment on this similar post, onBufferReceived не вызывается на последние версии Мобильного Google.

Это был мой опыт, поэтому вам нужно будет использовать другого поставщика голосового распознавания, если вы хотите сохранить голосовые данные, а также «перевести» его.

Смежные вопросы