Konvertering af tale til tekst: Sådan opretter du en simpel dikteringsapp

Forfatter: Lewis Jackson
Oprettelsesdato: 13 Kan 2021
Opdateringsdato: 1 Juli 2024
Anonim
Konvertering af tale til tekst: Sådan opretter du en simpel dikteringsapp - Apps
Konvertering af tale til tekst: Sådan opretter du en simpel dikteringsapp - Apps

Indhold


Mange apps, tjenester og husholdningsgadgets bruger talegenkendelse for at give en bedre brugeroplevelse og forbedre tilgængeligheden. Der er utallige Android-apps, der bruger talegenkendelse - hvor den mest bemærkelsesværdige er Google Assistant - så hvorfor ikke følge efter og føje denne funktion til dine egne Android-applikationer?

I denne artikel vil jeg dele en hurtig og nem måde at komme i gang med Android's Speech-to-Text Intent, som kan være nyttig i en lang række applikationer. For eksempel kan du bruge talegenkendelse til at automatisere kedelig manuel dataindtastning, automatisk generere undertekster eller endda som grundlag for en oversættelsesapp, der "lytter" til vokalinput, konverterer den til tekst, oversætter derefter denne tekst og viser resultaterne til brugeren.

Uanset den type applikation, du opretter, kan talegenkendelse forbedre tilgængeligheden ved at give brugerne en alternativ måde at interagere med din app på. F.eks. Kan personer med mobilitet, fingerfærdighed eller synsproblemer have det lettere at navigere i mobile applikationer ved hjælp af stemmekommandoer snarere end berøringsskærmen eller tastaturet. Plus, ifølge Verdenssundhedsorganisationen (WHO), har over en milliard mennesker en form for handicap, hvilket svarer til omkring 15% af verdens befolkning. Tilføjelse af tilgængelighedsfunktioner til dine applikationer kan øge dit potentielle publikum markant.


I slutningen af ​​denne artikel har du oprettet et simpelt tale-til-tekst-program, der registrerer din stemme, konverterer den til tekst og derefter viser den tekst på skærmen.

Opbygning af en tale-til-tekst brugergrænseflade

For at starte skal du oprette et nyt Android-projekt ved hjælp af skabelonen "Tom aktivitet".

Vi opretter en simpel applikation, der består af en knap, der, når der er tappet, udløser Android's tale-til-tekst-intention og viser en dialog, der viser, at din app er klar til at acceptere taleinput. Når brugeren er færdig med at tale, konverteres deres input til tekst og vises derefter som en del af en TextView.

Lad os starte med at oprette vores layout:

Dette giver os følgende layout:


Føj talegenkendelse til din Android-app

Vi fanger og behandler taleinput i to trin:

1. Start RecognizerIntent

Den nemmeste måde at udføre tale til tekst-konvertering er at bruge RecognizerIntent.ACTION_RECOGNIZE_SPEECH. Denne hensigt beder brugeren om vokalinput ved at starte Android's velkendte mikrofon-dialogboks.

Når brugeren holder op med at tale, lukkes dialogen automatisk, og ACTION_RECOGNIZE_SPEECH sender den optagede lyd gennem en talegenkender.

Vi starter RecognizerIntent.ACTION_RECOGNIZE_SPEECH ved hjælp af startActivityForResult () med bundtet ekstra. Bemærk, at medmindre andet er angivet, vil genkenderen bruge enhedens standardstørrelse.

public void onClick (View v) {// Trigger RecognizerIntent intention // Intent intention = new Intent (RecognizerIntent.ACTION_RECOGNIZE_SPEECH); prøv {startActivityForResult (intention, REQUEST_CODE); } fangst (ActivityNotFoundException a) {}}

2. Modtagelse af talesvaret

Når talegenkendelsesoperationen er afsluttet, vil ACTION_RECOGNIZE_SPEECH sende resultaterne tilbage til den kaldende aktivitet som en række strenge.

Da vi udløste RecognizerIntent via startActivityForResult (), håndterer vi resultatdataene ved at tilsidesætte onActivityResult (int requestCode, int resultCode, Intent data) i den aktivitet, der startede opkaldet for talegenkendelse.

Resultaterne returneres i faldende rækkefølge af talegenkenders tillid. Så for at sikre, at vi viser den mest nøjagtige tekst, har vi brug for at tage nulstillingen fra den returnerede ArrayList, og derefter vise den i vores TextView.

@Override // Definer en OnActivityResult-metode i vores intention caller Activity // beskyttet tomrum onActivityResult (int requestCode, int resultCode, Intent data) {super.onActivityResult (requestCode, resultCode, data); switch (requestCode) {sag REQUEST_CODE: {// Hvis RESULT_OK returneres ... // if (resultCode == RESULT_OK && null! = data) {//..hent derefter ArrayList // ArrayList resultat = data.getStringArrayListExtra (RecognizerIntent.EXTRA_RESULTS); // Opdater vores TextView // textOutput.setText (result.get (0)); } pause; }}}}

Bemærk, at tale-til-tekst ikke kræver en aktiv internetforbindelse, så den fungerer korrekt, selv når brugeren er offline.

Når du har udført alle ovenstående trin, skal din MainActivity se sådan ud:

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; import java.util.ArrayList; offentlig klasse MainActivity udvider AppCompatActivity {privat statisk endelig int REQUEST_CODE = 100; privat TextView text Output; @Override beskyttet tomrum onCreate (Bundle gemtInstanceState) {super.onCreate (gemtInstanceState); setContentView (R.layout.activity_main); textOutput = (TextView) findViewById (R.id.textOutput); } // Denne metode kaldes med knappen trykkes // public void onClick (View v) // Opret en hensigt med “RecognizerIntent.ACTION_RECOGNIZE_SPEECH” handling // {Intent intention = new Intent (RecognizerIntent.ACTION_RECOGNIZE_SPEECH); prøv {// Start aktiviteten og vent på svaret // startActivityForResult (intention, REQUEST_CODE); } fang (ActivityNotFoundException a) {}} @Override // Håndter resultaterne // beskyttet tomrum påActivityResult (int requestCode, int resultCode, Intent data) {super.onActivityResult (requestCode, resultCode, data); switch (requestCode) {sag REQUEST_CODE: {if (resultCode == RESULT_OK && null! = data) {ArrayList resultat = data.getStringArrayListExtra (RecognizerIntent.EXTRA_RESULTS); textOutput.setText (result.get (0)); } pause; }}}}

Du kan downloade det afsluttede projekt fra GitHub.

Test dit projekt

Sådan sætter du din ansøgning på prøve:

  • Installer dit projekt på enten en fysisk Android-enhed eller en Android Virtual Device (AVD). Hvis du bruger en AVD, skal din udviklingsmaskine enten have en indbygget mikrofon, eller du kan bruge en ekstern mikrofon eller headset.
  • Tryk på programmets "Start-diktering" -knap.
  • Når mikrofondialogboksen vises, skal du tale til din enhed. Efter nogle få øjeblikke skal dine ord vises på skærmen.

Afslutter

I denne artikel så vi, hvordan du hurtigt og nemt kan tilføje talegenkendelse til dine Android-applikationer ved hjælp af tale-til-tekst-intentionen. Har du stødt på nogen Android-apps, der bruger talegenkendelse på overraskende eller innovative måder?

Næste: Byg en augmented reality-app med Google ARCore

Det er aldrig for ent at lære et nyt prog. Uanet om du er en hyppig rejende, en forretningguru eller bare nyder at lære nye ting, kan uTalk Language Education hjælpe dig....

Tænker du på at lære? pank, italienk, eller Mandarin? For de mere eventyrlytne, hvad med Igbo, Luganda eller Zulu? Uanet hvilken lingo du har i tankerne, kan uTalk gøre det jovt at...

Interessant På Webstedet