class
MainActivity
extends
AppCompatActivity(){
private
ImageView iv_mic;
private
TextView tv_Speech_to_text;
private
static
final
int
REQUEST_CODE_SPEECH_INPUT =
1
;
@Override
protected
void
onCreate(Bundle savedInstanceState){
super
.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
iv_mic = findViewById(R.id.iv_mic);
tv_Speech_to_text = findViewById(R.id.tv_speech_to_text);
iv_mic.setOnClickListener(
new
View.OnClickListener() {
@Override
public
void
onClick(View v)
{
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,
"Speak to text"
);
try
{
startActivityForResult(intent, REQUEST_CODE_SPEECH_INPUT);
}
catch
(Exception e) {
Toast
.makeText(MainActivity.
this
,
" "
+ e.getMessage(),
Toast.LENGTH_SHORT)
.show();
}
}
});
}
@Override
protected
void
onActivityResult(
int
requestCode,
int
resultCode,
@Nullable
Intent data)
{
super
.onActivityResult(requestCode, resultCode, data);
if
(requestCode == REQUEST_CODE_SPEECH_INPUT) {
if
(resultCode == RESULT_OK && data !=
null
) {
ArrayList<String> result = data.getStringArrayListExtra(
RecognizerIntent.EXTRA_RESULTS);
tv_Speech_to_text.setText(
Objects.requireNonNull(result).get(
0
));
}
}
}
}