Konvertere tale til tekst: Hvordan lage en enkel diktasjonsapp

Forfatter: Lewis Jackson
Opprettelsesdato: 13 Kan 2021
Oppdater Dato: 1 Juli 2024
Anonim
Konvertere tale til tekst: Hvordan lage en enkel diktasjonsapp - Apps
Konvertere tale til tekst: Hvordan lage en enkel diktasjonsapp - Apps

Innhold


Mange apper, tjenester og husholdningsapparater bruker talegjenkjenning for å gi en bedre brukeropplevelse og forbedre tilgjengeligheten. Det er utallige Android-apper som benytter seg av talegjenkjenning - den mest bemerkelsesverdige av dem er Google Assistant - så hvorfor ikke følge etter og legge til denne funksjonen til dine egne Android-applikasjoner?

I denne artikkelen vil jeg dele en rask og enkel måte å komme i gang med Android's Speech-to-Text Intent, som kan være nyttig i et bredt spekter av applikasjoner. For eksempel kan du bruke talegjenkjenning for å automatisere kjedelig manuell dataregistrering, automatisk generere undertekster, eller til og med som grunnlag for en oversettelsesapp som "lytter" til vokalinndata, konverterer den til tekst, deretter oversetter denne teksten og viser resultatene til brukeren.

Uansett hvilken type applikasjon du oppretter, kan talegjenkjenning forbedre tilgjengeligheten ved å gi brukerne en alternativ måte å samhandle med appen din. For eksempel kan personer med mobilitet, fingerferdighet eller synsproblemer synes det er lettere å navigere i mobile applikasjoner ved hjelp av stemmekommandoer, i stedet for berøringsskjermen eller tastaturet. I tillegg har over en milliard mennesker ifølge Verdens helseorganisasjon (WHO) en form for funksjonshemming, noe som tilsvarer rundt 15% av verdens befolkning. Å legge til tilgjengelighetsfunksjoner til applikasjonene dine kan øke potensielle målgrupper betydelig.


På slutten av denne artikkelen vil du ha laget et enkelt tale-til-tekst-program som tar opp stemmen din, konverterer den til tekst og deretter viser den teksten på skjermen.

Bygge et tale-til-tekst brukergrensesnitt

For å starte oppretter du et nytt Android-prosjekt ved å bruke malen "Tom aktivitet".

Vi oppretter en enkel applikasjon som består av en knapp som, når du trykker på den, utløser Android's Speech-to-Text Intent og viser en dialog som indikerer at appen din er klar til å godta taleinput. Når brukeren er ferdig med å snakke, vil inndataene bli konvertert til tekst og deretter vises som en del av en TextView.

La oss starte med å lage vår layout:

Dette gir oss følgende layout:


Legger til talegjenkjenning til Android-appen din

Vi fanger opp og behandler taleinnspill i to trinn:

1. Start RecognizerIntent

Den enkleste måten å utføre tale-til-tekst-konvertering er å bruke RecognizerIntent.ACTION_RECOGNIZE_SPEECH. Denne hensikten ber brukeren om vokalinndata ved å starte Androids kjente mikrofon-dialogboks.

Når brukeren slutter å snakke, lukkes dialogboksen automatisk, og ACTION_RECOGNIZE_SPEECH sender den innspilte lyden gjennom en talegjenkjenning.

Vi starter RecognizerIntent.ACTION_RECOGNIZE_SPEECH ved å bruke startActivityForResult () med medfølgende tillegg. Merk at hvis ikke annet er spesifisert, vil gjenkjenneren bruke enhetens standardområde.

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

2. Motta talesvaret

Når talegjenkjenningsoperasjonen er fullført, vil ACTION_RECOGNIZE_SPEECH sende resultatene tilbake til den anropende aktiviteten som en rekke strenger.

Siden vi utløste RecognizerIntent via startActivityForResult (), håndterer vi resultatdataene ved å overstyre onActivityResult (int requestCode, int resultCode, Intent data) i aktiviteten som satte i gang talegjenkjenningsanropet.

Resultatene blir returnert i synkende rekkefølge etter tillatelse til talegjenkjenning. Så for å sikre at vi viser den mest nøyaktige teksten vi trenger for å ta nullposisjonen fra den returnerte ArrayList, så kan du vise den i TextView.

@Override // Definer en OnActivityResult-metode i vår intensjonsanrop Aktivitet // beskyttet tomrom onActivityResult (int requestCode, int resultCode, Intent data) {super.onActivityResult (requestCode, resultCode, data); switch (requestCode) {case REQUEST_CODE: {// Hvis RESULT_OK returneres ... // if (resultCode == RESULT_OK && null! = data) {//...hent hent ArrayList // ArrayList resultat = data.getStringArrayListExtra (RecognizerIntent.EXTRA_RESULTS); // Oppdater TextView // textOutput.setText (result.get (0)); } gå i stykker; }}}}

Vær oppmerksom på at tale-til-tekst ikke krever en aktiv internettforbindelse, så den vil fungere riktig selv når brukeren er frakoblet.

Etter å ha fullført alle trinnene ovenfor, bør MainActivity se slik ut:

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; importer java.util.ArrayList; offentlig klasse MainActivity utvider AppCompatActivity {privat statisk endelig int REQUEST_CODE = 100; privat TextView text Output; @Override beskyttet tomrom onCreate (Bundle savedInstanceState) {super.onCreate (savedInstanceState); setContentView (R.layout.activity_main); textOutput = (TextView) findViewById (R.id.textOutput); } // Denne metoden kalles med knappen blir trykket // public void onClick (View v) // Create a Intent with “RecognizerIntent.ACTION_RECOGNIZE_SPEECH” action // {Intent intention = new Intent (RecognizerIntent.ACTION_RECOGNIZE_SPEECH); prøv {// Start aktiviteten og vent på svaret // startActivityForResult (intention, REQUEST_CODE); } fangst (ActivityNotFoundException a) {}} @Override // Håndter resultatene // beskyttet tomrom onActivityResult (int requestCode, int resultCode, Intent data) {super.onActivityResult (requestCode, resultCode, data); bytte (requestCode) {case REQUEST_CODE: {if (resultCode == RESULT_OK && null! = data) {ArrayList resultat = data.getStringArrayListExtra (RecognizerIntent.EXTRA_RESULTS); textOutput.setText (result.get (0)); } gå i stykker; }}}}

Du kan laste ned det ferdige prosjektet fra GitHub.

Testing av prosjektet ditt

Slik setter du søknaden din på prøve:

  • Installer prosjektet ditt på enten en fysisk Android-enhet eller en Android Virtual Device (AVD). Hvis du bruker en AVD, må utviklingsmaskinen din enten ha en innebygd mikrofon, eller du kan bruke en ekstern mikrofon eller hodesett.
  • Trykk på applikasjonens "Start Dictation" -knapp.
  • Når mikrofondialogboksen vises, snakk med enheten din. Etter noen få øyeblikk skal ordene dine vises på skjermen.

Innpakking

I denne artikkelen så vi hvordan du raskt og enkelt kan legge til talegjenkjenning til Android-applikasjonene dine ved å bruke tale-til-tekst-intensjonen. Har du møtt noen Android-apper som bruker talegjenkjenning på overraskende eller nyskapende måter?

Neste: Bygg en augmented reality-app med Google ARCore

Den beleirede Android-baerte pillkonollen, kjent om Ouya, kom inn med et mell, taklet litt vak fremgang, og til lutt kommer det ut med en hviking.I følge Razer - om kjøpte merkevaren Ouya fo...

Hvi du vil ha et elegant nytt par Bluetooth-hodetelefoner, hopp fra redet og heng dette Artu-paret fra Owlee. De er bare 59,99 dollar for en begrenet periode, om er 40% avlag på utalgprien....

Se