Estou desenvolvendo um aplicativo em Android e precisava de um auxilio. O problema é o seguinte, a aplicação está funcionando beleza e o reconhecimento de voz que implementei também. Porém, gostaria de fazer um tratamento no reconhecimento de voz e não estou sabendo a lógica para implementar. A ideia é quando o usuário iniciar o reconhecimento de voz e pronunciar a letra “B” o aplicativo reconheça “B” e não “Bê”. Assim que o reconhecimento conseguir reconhecer a pronuncia correta, exibe uma resposta para o usuário como: “Você acertou!”
O código que utilizo para reconhecimento de voz:
imageButtonReconhecimentoA.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { reconhecimentoDeVozFicaEscutandoUsuarioPronunciarParaOReconhecimento(); } }); private void reconhecimentoDeVozFicaEscutandoUsuarioPronunciarParaOReconhecimento(){ Intent intent = new Intent(RecognizerIntent.ACTION_RECOGNIZE_SPEECH); intent.putExtra(RecognizerIntent.EXTRA_LANGUAGE_MODEL, RecognizerIntent.LANGUAGE_MODEL_FREE_FORM); intent.putExtra(RecognizerIntent.EXTRA_LANGUAGE, Locale.getDefault()); intent.putExtra(RecognizerIntent.EXTRA_PROMPT, "Fale Agora"); try{ startActivityForResult(intent, REQ_CODE_SPEECH_INPUT); }catch (ActivityNotFoundException a){ }
}
protected void onActivityResult(int requestCode, int resultCode, Intent data){
super.onActivityResult(requestCode, resultCode, data); switch (requestCode){ case REQ_CODE_SPEECH_INPUT: { if(resultCode == RESULT_OK && null != data){ ArrayList<String> result = data .getStringArrayListExtra(RecognizerIntent.EXTRA_RESULTS); resultTEXT.setText(result.get(0)); }break; } }
}