Convertir el discurs en text: Com crear una aplicació de dictat senzilla

Autora: Lewis Jackson
Data De La Creació: 13 Ser Possible 2021
Data D’Actualització: 1 Juliol 2024
Anonim
Convertir el discurs en text: Com crear una aplicació de dictat senzilla - Aplicacions
Convertir el discurs en text: Com crear una aplicació de dictat senzilla - Aplicacions

Content


Moltes aplicacions, serveis i gadgets domèstics utilitzen el reconeixement de veu per proporcionar una millor experiència dels usuaris i millorar l'accessibilitat. Hi ha infinitat d'aplicacions Android que fan ús del reconeixement de veu (el més notable és Google Assistant), per què no seguir el mateix exemple i afegir aquesta funció a les teves pròpies aplicacions Android?

En aquest article, compartiré una manera ràpida i senzilla de començar amb la intenció de veu a text d'Android, que pot ser útil en una àmplia gamma d'aplicacions. Per exemple, podeu utilitzar el reconeixement de veu per automatitzar l’entrada manual de dades tediosa, generar subtítols automàticament, o fins i tot com a base d’una aplicació de traducció que “escolta” l’entrada vocal, la converteix en text, després tradueix aquest text i mostra els resultats a l’usuari.

Independentment del tipus d’aplicació que creeu, el reconeixement de veu pot millorar l’accessibilitat proporcionant als usuaris una forma alternativa d’interaccionar amb la vostra aplicació. Per exemple, a persones amb problemes de mobilitat, destresa o vista, és més fàcil navegar per aplicacions mòbils mitjançant ordres de veu, en lloc de la pantalla tàctil o el teclat. A més, segons l'Organització Mundial de la Salut (OMS), més de mil milions de persones tenen alguna forma de discapacitat, cosa que equival al 15% de la població mundial. Si afegiu funcions d’accessibilitat a les vostres aplicacions, podeu augmentar significativament el vostre públic potencial.


Al final d’aquest article, haureu creat una aplicació senzilla de veu a text que enregistra la vostra veu, la converteix en text i després la mostrarà a la pantalla.

Construcció d'una interfície d'usuari de veu a text

Per començar, creeu un nou projecte per a Android mitjançant la plantilla “Activitat buida”.

Crearem una aplicació senzilla que consisteix en un botó que, quan es toca, desencadena la intenció de veu a text d'Android i mostra un diàleg que indica que la vostra aplicació està preparada per acceptar la introducció de veu. Un cop l’usuari hagi acabat de parlar, la seva entrada es convertirà en text i es mostrarà com a part d’una TextView.

Comencem creant el nostre disseny:

Això ens ofereix el següent esquema:


Afegint el reconeixement de veu a la vostra aplicació per a Android

Capturem i processem l’entrada de discurs en dos passos:

1. Inicieu el mètode ReconeixementIntent

La manera més fàcil de realitzar la conversió de veu a text és utilitzar el ReconeixedorIntent.ACTION_RECOGNIZE_SPEECH. Aquesta intenció demana que l’usuari tingui entrada vocal en llançar el quadre de diàleg de micròfon familiar d’Android.

Un cop l’usuari deixi de parlar, el diàleg es tancarà automàticament i ACTION_RECOGNIZE_SPEECH enviarà l’àudio enregistrat a través d’un reconegut de veu.

Iniciem recognizerIntent.ACTION_RECOGNIZE_SPEECH mitjançant startActivityForResult () amb extrems agrupats. Tingueu en compte que, tret que s’especifiqui el contrari, el reconeixedor utilitzarà la configuració predeterminada del dispositiu.

public void onClick (View v) {// Disparar el recognizerIntent intent // Intent intent = new Intent (recognizerIntent.ACTION_RECOGNIZE_SPEECH); proveu {startActivityForResult (intenció, REQUEST_CODE); } catch (ActivityNotFoundException a) {}}

2. Rebre la resposta al discurs

Un cop finalitzada l’operació de reconeixement de veu, ACTION_RECOGNIZE_SPEECH remetrà els resultats de nou a l’activitat que truca com a Matriu de cadenes.

Des que vàrem activar el recognizerIntent a través de startActivityForResult (), gestionem les dades de resultats substituint onActivityResult (int requestCode, int resultCode, Intent data) a l'activitat que va iniciar la trucada de reconeixement de veu.

Els resultats es retornen per ordre descendent de la confiança del reconegut de veu. Per tant, per assegurar-nos que mostrem el text més exacte, hem de prendre la posició zero de la llista de matriu retornada i, a continuació, mostrar-lo a la nostra TextView.

@Override // Definiu un mètode OnActivityResult al nostre interlocutor amb intenció Activitat // void protected onActivityResult (int requestCode, int resultCode, Intent data) {super.onActivityResult (requestCode, resultCode, data); switch (requestCode) {case REQUEST_CODE: {// Si RESULT_OK es retorna ... // if (resultCode == RESULT_OK && null! = data) {//... expandir recuperar ArrayList // ArrayList resultat = data.getStringArrayListExtra (recognizerIntent.EXTRA_RESULTS); // Actualitzeu el nostre TextView // textOutput.setText (result.get (0)); } trencar; }}}}

Tingueu en compte que el lloc en veu alta no requereix una connexió a Internet activa, de manera que funcionarà correctament fins i tot quan l'usuari estigui fora de línia.

Després de completar tots els passos anteriors, el vostre MainActivity hauria de tenir un aspecte així:

importa android.content.ActivityNotFoundException; importar androidx.appcompat.app.AppCompatActivity; importa android.os.Bundle; importa android.content.Intent; importa android.speech.RecognizerIntent; importa android.widget.TextView; importa android.view.View; importar java.util.ArrayList; public class MainActivity s'estén AppCompatActivity {private static final int REQUEST_CODE = 100; TextView textOutput privat; @Override protected void onCreate (Bundle savedInstanceState) {super.onCreate (savedInstanceState); setContentView (R.layout.activity_main); textOutput = (TextView) findViewById (R.id.textOutput); } // Aquest mètode s’anomena amb el botó està premut // public void onClick (View v) // Crea un Intent amb l’acció “RecoizerIntent.ACTION_RECOGNIZE_SPEECH” // {Intent intent = new Intent (recognizerIntent.ACTION_RECOGNIZE_SPEECH); proveu {// Inicieu l'activitat i espereu la resposta // startActivityForResult (intenció, REQUEST_CODE); } catch (ActivityNotFoundException a) {}} @Override // Maneja els resultats // protected void onActivityResult (int requestCode, int resultCode, Intent data) {super.onActivityResult (requestCode, resultCode, data); switch (requestCode) {case REQUEST_CODE: {if (resultCode == RESULT_OK && null! = data) {ArrayList resultat = data.getStringArrayListExtra (recognizerIntent.EXTRA_RESULTS); textOutput.setText (resultat.get (0)); } trencar; }}}}

Podeu descarregar el projecte completat de GitHub.

Prova del vostre projecte

Per posar a prova la vostra sol·licitud:

  • Instal·leu el vostre projecte en un dispositiu físic Android o en un dispositiu virtual Android (AVD). Si utilitzeu un AVD, la vostra màquina de desenvolupament ha de tenir un micròfon integrat o bé podeu utilitzar un micròfon o un auricular externs.
  • Toqueu el botó "Comença la dictada" de l'aplicació.
  • Quan aparegui el quadre de diàleg del micròfon, parleu al dispositiu. Al cap d’uns moments, les teves paraules haurien d’aparèixer a la pantalla.

Embalatge

En aquest article, vam veure com podeu afegir reconeixement de veu de forma ràpida i senzilla a les vostres aplicacions Android, mitjançant la Intenció de veu a text. Heu trobat alguna aplicació per a Android que utilitzi reconeixement de veu de maneres sorprenents o innovadores?

Pròxim: Creeu una aplicació per a Android de realitat augmentada amb Google ARCore

Realment neceiteu decarregar una aplicació per tenir-la en propietat? No óc filoòfic aquí (realment tenim alguna coa?), Però quan teniu en compte la rapidea i fàcilment q...

Actualització: Le comande anticipade han etat en directe per al nou Nvidia hield TV Pro aquet matí, però Nvidia ha retirat la llita d'Amazon....

Elecció De L’Editor