Konvertera tal till text: Hur man skapar en enkel diktationsapp

Författare: Lewis Jackson
Skapelsedatum: 13 Maj 2021
Uppdatera Datum: 1 Juli 2024
Anonim
Konvertera tal till text: Hur man skapar en enkel diktationsapp - Appar
Konvertera tal till text: Hur man skapar en enkel diktationsapp - Appar

Innehåll


Många appar, tjänster och hushållsapparater använder taligenkänning för att ge en bättre användarupplevelse och förbättra tillgängligheten. Det finns otaliga Android-appar som använder sig av taligenkänning - den mest anmärkningsvärda är Google Assistant - så varför inte följa efter och lägga till den här funktionen till dina egna Android-applikationer?

I den här artikeln kommer jag att dela ett snabbt och enkelt sätt att komma igång med Android: s tal-till-text-avsikt, som kan vara användbart i ett brett spektrum av applikationer. Du kan till exempel använda taligenkänning för att automatisera tråkig manuell datainmatning, automatiskt generera undertexter eller till och med som grund för en översättningsapp som "lyssnar" på sånginmatning, konverterar den till text, översätter sedan denna text och visar resultaten till användaren.


Oavsett vilken typ av applikation du skapar kan taligenkänning förbättra tillgängligheten genom att ge användare ett alternativt sätt att interagera med din app. Till exempel kan personer med rörlighet, skicklighet eller synproblem ha lättare att navigera i mobila applikationer med röstkommandon snarare än pekskärmen eller tangentbordet. Dessutom, enligt Världshälsoorganisationen (WHO), har över en miljard människor någon form av funktionshinder, vilket motsvarar cirka 15% av världens befolkning. Att lägga till tillgänglighetsfunktioner till dina applikationer kan öka din potentiella publik avsevärt.

I slutet av den här artikeln har du skapat ett enkelt tal-till-text-program som spelar in din röst, konverterar den till text och sedan visar den texten på skärmen.

Bygga ett tal-till-text-användargränssnitt

För att starta, skapa ett nytt Android-projekt med hjälp av "Tom Activity" -mallen.


Vi skapar en enkel applikation som består av en knapp som, när du trycker på den, utlöser Android: s tal-till-text-avsikt och visar en dialogruta som indikerar att din app är redo att acceptera talinmatning. När användaren har slutat tala kommer deras inmatning att konverteras till text och visas sedan som en del av en TextView.

Låt oss börja med att skapa vår layout:

Detta ger oss följande layout:

Lägga till taligenkänning i din Android-app

Vi fångar och bearbetar talinmatning i två steg:

1. Starta RecognizerIntent

Det enklaste sättet att genomföra tal-till-text-konvertering är att använda RecognizerIntent.ACTION_RECOGNIZE_SPEECH. Denna avsikt ber användaren om vokalinmatning genom att starta Android: s bekanta mikrofondialogruta.

När användaren slutar prata stängs dialogrutan automatiskt och ACTION_RECOGNIZE_SPEECH skickar det inspelade ljudet via ett taligenkännar.

Vi startar RecognizerIntent.ACTION_RECOGNIZE_SPEECH med startActivityForResult () med medföljande extrafunktioner. Observera att om inte annat anges kommer igenkännaren att använda enhetens standardinställning.

public void onClick (View v) {// Trigger the RecognizerIntent intention // Intent intention = new Intent (RecognizerIntent.ACTION_RECOGNIZE_SPEECH); prova {startActivityForResult (avsikt, REQUEST_CODE); } catch (ActivityNotFoundException a) {}}

2. Ta emot talsvaret

När taligenkänningsoperationen är klar kommer ACTION_RECOGNIZE_SPEECH att skicka resultaten tillbaka till den anropande aktiviteten som en rad strängar.

Eftersom vi utlöste RecognizerIntent via startActivityForResult (), hanterar vi resultatdata genom att åsidosätta onActivityResult (int requestCode, int resultCode, Intent data) i aktiviteten som initierade samtalet om taligenkänning.

Resultaten returneras i fallande ordning för förtroendet för taligenkännaren. Så för att se till att vi visar den mest exakta texten behöver vi ta nollpositionen från den returnerade ArrayList och sedan visa den i vår TextView.

@Override // Definiera en OnActivityResult-metod i vår avsiktssamtal Aktivitet // skyddat tomrum onActivityResult (int requestCode, int resultCode, Intent data) {super.onActivityResult (requestCode, resultCode, data); switch (requestCode) {case REQUEST_CODE: {// Om RESULT_OK returneras ... // if (resultCode == RESULT_OK && null! = data) {//...hämta ArrayList // ArrayList resultat = data.getStringArrayListExtra (RecognizerIntent.EXTRA_RESULTS); // Uppdatera vår TextView // textOutput.setText (result.get (0)); } ha sönder; }}}}

Observera att tal-till-text inte kräver en aktiv internetanslutning, så den fungerar korrekt även om användaren är offline.

När du har genomfört alla ovanstående steg bör din MainActivity se ut så här:

import android.content.ActivityNotFoundException; import androidx.appcompat.app.AppCompatActivity; import android.os.Bundle; import android.content.Intent; import android.speech.RecognizerIntent; import android.widget.TextView; import android.view.View; importera java.util.ArrayList; public class MainActivity utökar AppCompatActivity {privat statisk final int REQUEST_CODE = 100; privat TextView textutgång; @Override skyddat tomrum onCreate (Bundle SavedInstanceState) {super.onCreate (SavedInstanceState); setContentView (R.layout.activity_main); textOutput = (TextView) findViewById (R.id.textOutput); } // Denna metod kallas med knappen trycks // public void onClick (View v) // Create a Intent with “RecognizerIntent.ACTION_RECOGNIZE_SPEECH” action // {Intent intention = new Intent (RecognizerIntent.ACTION_RECOGNIZE_SPEECH); försök {// Starta aktiviteten och vänta på svaret // startActivityForResult (avsikt, REQUEST_CODE); } catch (ActivityNotFoundException a) {}} @Override // Hantera resultaten // skyddat tomrum påActivityResult (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 (result.get (0)); } ha sönder; }}}}

Du kan ladda ner det slutförda projektet från GitHub.

Testa ditt projekt

Så här testar du din ansökan:

  • Installera ditt projekt på antingen en fysisk Android-enhet eller en Android Virtual Device (AVD). Om du använder en AVD måste din utvecklingsmaskin antingen ha en inbyggd mikrofon eller så kan du använda en extern mikrofon eller headset.
  • Klicka på applikationens "Start Dictation" -knapp.
  • När mikrofondialogrutan visas, tala till din enhet. Efter några ögonblick bör dina ord visas på skärmen.

Avslutar

I den här artikeln såg vi hur du snabbt och enkelt kan lägga till taligenkänning till dina Android-applikationer med hjälp av tal-till-text-avsikten. Har du stött på några Android-appar som använder taligenkänning på överraskande eller innovativa sätt?

Nästa: Bygg en augmented reality-app med Google ARCore

Premiummarknadmarknaden ökade med 18 procent förra året jämfört med föregående.Den ultraprima martphonemarknaden dominera av Apple med 80 procent av andelen.Dea uppg...

marttelefoner är vanligtvi inte för barn. Men plattformen växer nabbt till en fantatik plat för barn med ett urval av appar och pel om tillgodoer yngre innen tillamman med hå...

Vi Rekommenderar Dig Att Se