SpeechToText

La sintesi vocale  converte la voce in testo, molto utile nella trascrizione di documenti, libri,ecc…, e consente agli utenti di aggiungere segni di punteggiatura.
In questo esempio utilizziamo un RecognizerIntent con ACTION_RECOGNIZE_SPEECH
che avvia il servizio di riconoscimento vocale  e restituisce il risultato del testo.

Activity_Main.XML:
<?xml version=”1.0″ encoding=”utf-8″?>
<LinearLayout
xmlns:android=”http://schemas.android.com/apk/res/android&#8221;
android:layout_width=”match_parent”
android:layout_height=”match_parent”
android:gravity=”center”
android:orientation=”vertical”>


<Button
android:id=”@+id/btn”
android:text=”Speech To Text”
android:layout_width=”wrap_content”
android:layout_height=”wrap_content”/>

</LinearLayout>

MainActivity.Java:
package com.example.speechToText.activities;

import android.app.Activity;
import android.os.Bundle;
import com.example.speechToText.R;
import android.widget.*;
import android.annotation.*;
import android.content.*;
import java.util.*;
import android.speech.*;
import android.view.*;

public class MainActivity extends Activity {
private Button btn;
   
    private static final int REQUEST_CODE_SPEECH_INPUT = 1;

@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);

btn = findViewById(R.id.btn);
      

        btn.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v)
{
Intent intent = new Intent(RecognizerIntent.ACTION_RECOGNIZE_SPEECH);

intent.putExtra(RecognizerIntent.EXTRA_LANGUAGE, Locale.getDefault());



{
startActivityForResult(intent, REQUEST_CODE_SPEECH_INPUT);
}

}

});
}
@Override
protected void onActivityResult(int requestCode,int resultCode,Intent data){



super.onActivityResult(requestCode,resultCode, data);

switch (requestCode) {
case REQUEST_CODE_SPEECH_INPUT: {
if (resultCode == RESULT_OK && null != data) {


data.getStringArrayListExtra(RecognizerIntent.EXTRA_RESULTS);

}
break;
}
}
}
}