Voz a texto es una característica que generalmente significa que todo lo que el usuario dice se convierte en texto. Esta característica se ha convertido en una característica muy común y útil para los usuarios. En varios lugares donde se implementa la función de búsqueda, como la Búsqueda de Google, también en aplicaciones como el teclado de Google, etc., porque brinda a los usuarios una gran experiencia. Entonces, en este artículo, implementaremos Speech to text usando OnTouchListener de ImageView y almacenaremos el texto de entrada en EditText .
¿Qué vamos a construir en este artículo?
En este artículo, desarrollaremos una aplicación de muestra con ImageView de un micrófono y EditText en su MainActivity y mediante el uso de OnTouchListener de ImageView le daremos entrada a EditText en forma de Speech to Text. A continuación se proporciona un GIF de muestra para tener una idea de lo que vamos a hacer en este artículo. Tenga en cuenta que vamos a implementar este proyecto utilizando el lenguaje Java .
Implementación paso a paso
Paso 1: Crear un nuevo proyecto
Para crear un nuevo proyecto en Android Studio, consulte Cómo crear/iniciar un nuevo proyecto en Android Studio . Tenga en cuenta que seleccione Java como lenguaje de programación.
Paso 2: trabajar con el archivo activity_main.xml
Ahora, vaya a la aplicación > res > diseño > actividad_principal.xml y pegue el código escrito a continuación en el archivo actividad_principal.xml .
XML
<?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:app="http://schemas.android.com/apk/res-auto" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="match_parent" android:gravity="center" android:orientation="vertical" tools:context=".MainActivity"> <!--EditText to show the recorded text--> <EditText android:id="@+id/edit_text" android:layout_width="match_parent" android:layout_height="52dp" android:layout_margin="12dp" android:layout_marginTop="600dp" android:hint="Enter here" android:textColor="#0F9D58" /> <!--ImageView to use as a button--> <ImageView android:id="@+id/microphone" android:layout_width="match_parent" android:layout_height="wrap_content" android:layout_marginTop="400dp" app:srcCompat="@drawable/microphone" /> </LinearLayout>
Paso 3: trabajar con el archivo MainActivity.java
Vaya a la aplicación > java > nombre del paquete > archivo MainActivity.java y consulte el siguiente código. A continuación se muestra el código del archivo MainActivity.java . Se agregan comentarios dentro del código para comprender el código con más detalle.
Java
import android.content.Intent; import android.os.Bundle; import android.speech.RecognitionListener; import android.speech.RecognizerIntent; import android.speech.SpeechRecognizer; import android.view.MotionEvent; import android.view.View; import android.widget.EditText; import androidx.appcompat.app.AppCompatActivity; import java.util.ArrayList; import java.util.Locale; public class MainActivity extends AppCompatActivity { // declare editText EditText editText; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); // definition of editText using method findViewById() editText = findViewById(R.id.edit_text); // initializing mSpeechRecognizer using SpeechRecognizer class final SpeechRecognizer mSpeechRecognizer = SpeechRecognizer.createSpeechRecognizer(this); final Intent mSpeechRecognizerIntent = new Intent(RecognizerIntent.ACTION_RECOGNIZE_SPEECH); mSpeechRecognizerIntent.putExtra(RecognizerIntent.EXTRA_LANGUAGE_MODEL, RecognizerIntent.LANGUAGE_MODEL_FREE_FORM); mSpeechRecognizerIntent.putExtra(RecognizerIntent.EXTRA_LANGUAGE, Locale.getDefault()); // various methods of RecognitionListener class mSpeechRecognizer.setRecognitionListener(new RecognitionListener() { @Override public void onReadyForSpeech(Bundle bundle) { } @Override public void onBeginningOfSpeech() { } @Override public void onRmsChanged(float v) { } @Override public void onBufferReceived(byte[] bytes) { } @Override public void onEndOfSpeech() { } @Override public void onError(int i) { } @Override public void onResults(Bundle bundle) { // getting all the matches ArrayList<String> matches = bundle.getStringArrayList(SpeechRecognizer.RESULTS_RECOGNITION); // displaying the first match if (matches != null) editText.setText(matches.get(0)); } @Override public void onPartialResults(Bundle bundle) { } @Override public void onEvent(int i, Bundle bundle) { } }); // set OnTouchListener to imageView named microphone findViewById(R.id.microphone).setOnTouchListener(new View.OnTouchListener() { @Override public boolean onTouch(View view, MotionEvent motionEvent) { switch (motionEvent.getAction()) { // case MotionEvent.ACTION_UP run when user will remove // his/her finger from microphone imageView case MotionEvent.ACTION_UP: mSpeechRecognizer.stopListening(); editText.setHint(" "); break; // case MotionEvent.ACTION_UP run when user will put his/her // finger from microphone imageView case MotionEvent.ACTION_DOWN: mSpeechRecognizer.startListening(mSpeechRecognizerIntent); editText.setText(""); editText.setHint(""); break; } return false; } }); } }
Paso 4: Trabajar con el archivo AndroidManifest.xml
Finalmente, vaya a la aplicación> manifiestos> archivo AndroidManifest.xml y agregue el permiso escrito a continuación allí.
XML
<uses-permission android:name="android.permission.RECORD_AUDIO" />
Eso es todo, ahora la aplicación está lista para instalarse en el dispositivo. Así es como se ve la salida de la aplicación.
Producción:
Publicación traducida automáticamente
Artículo escrito por riyamathur y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA