Kalbos konvertavimas į tekstą: kaip sukurti paprastą diktavimo programą

Autorius: Lewis Jackson
Kūrybos Data: 13 Gegužė 2021
Atnaujinimo Data: 1 Liepos Mėn 2024
Anonim
5 geriausios iš anksto įdiegtos naudingos „Windows“ programos
Video.: 5 geriausios iš anksto įdiegtos naudingos „Windows“ programos

Turinys


Daugelis programų, paslaugų ir buitinių prietaisų naudoja kalbėjimo atpažinimą, kad suteiktų geresnę vartotojo patirtį ir pagerintų prieinamumą. Yra daugybė „Android“ programų, naudojančių kalbos atpažinimą - iš kurių žinomiausias yra „Google Assistant“ - tad kodėl gi nesilaikant pavyzdžio ir pridedant šią funkciją prie savo „Android“ programų?

Šiame straipsnyje pasidalinsiu greitu ir lengvu būdu, kaip pradėti naudoti „Android“ kalbėjimo į tekstą ketinimus, kurie gali būti naudingi daugelyje programų. Pvz., Galite naudoti kalbos atpažinimą, norėdami automatizuoti varginantį rankinį duomenų įvedimą, automatiškai sugeneruoti subtitrus ar net kaip vertimo programos, kuri „klauso“ balso įvestį, paverčia ją tekstu, tada išverčia šį tekstą ir rezultatus pateikia vertimo pagrindu, vertimo pagrindu. Vartotojas.

Nepaisant to, kokią programą kuriate, kalbos atpažinimas gali pagerinti prieinamumą, suteikdamas vartotojams alternatyvų būdą sąveikai su jūsų programa. Pvz., Žmonėms, turintiems judėjimo, miklumo ar regėjimo problemų, gali būti lengviau naršyti mobiliose programose naudojant balso komandas, o ne jutiklinį ekraną ar klaviatūrą. Be to, pasak Pasaulio sveikatos organizacijos (PSO), daugiau nei milijardas žmonių turi kokią nors negalią - tai sudaro apie 15% pasaulio gyventojų. Pridėję prieinamumo funkcijas prie savo programų, galite žymiai padidinti jūsų potencialią auditoriją.


Pasibaigus šiam straipsniui, jūs sukūrėte paprastą kalbėjimo į tekstą programą, kuri įrašo jūsų balsą, paverčia jį tekstu ir tada rodo jį ekrane.

„Kalbos į tekstą“ vartotojo sąsajos kūrimas

Norėdami pradėti, sukurkite naują „Android“ projektą naudodami šabloną „Tuščia veikla“.

Mes sukursime paprastą programą, kurią sudarys mygtukas, kuris palietus suaktyvins „Android“ kalbėjimo į tekstą intenciją ir parodys dialogo langą, nurodantį, kad jūsų programa yra pasirengusi priimti kalbos įvestį. Kai vartotojas baigs kalbėti, jo įvestis bus paversta tekstu, o tada rodoma kaip „TextView“ dalis.

Pradėkime nuo mūsų maketo sukūrimo:

Tai suteikia mums tokį išdėstymą:


Kalbos atpažinimo pridėjimas prie „Android“ programos

Kalbos įvestis fiksuojama ir apdorojama dviem etapais:

1. Paleiskite „RecognizerIntent“

Paprasčiausias būdas konvertuoti kalbą į tekstą yra naudoti programą „RecognizerIntent.ACTION_RECOGNIZE_SPEECH“. Šis ketinimas ragina vartotoją įvesti balsą paleidžiant pažįstamą „Android“ mikrofono dialogo langą.

Kai vartotojas nustos kalbėti, dialogas bus uždarytas automatiškai ir ACTION_RECOGNIZE_SPEECH išsiųs įrašytą garsą per kalbos atpažinimo funkciją.

Mes pradedame „RecognizerIntent.ACTION_RECOGNIZE_SPEECH“ naudodami „startActivityForResult“ () kartu su priedais. Atminkite, kad jei nenurodyta kitaip, atpažinimo priemonė naudos numatytąją įrenginio lokalę.

„public void onClick“ (vaizdas v) {// Suaktyvinti „RecognizerIntent“ ketinimą // „Intent intent“ = naujas ketinimas („RecognizerIntent.ACTION_RECOGNIZE_SPEECH“); pabandykite {startActivityForResult (ketinimas, REQUEST_CODE); } pagauk (ActivityNotFoundException a) {}}

2. Kalbos atsakymo gavimas

Kai kalbos atpažinimo operacija bus baigta, ACTION_RECOGNIZE_SPEECH siųs rezultatus atgal į kvietimą vykdančią veiklą kaip stygų masyvą.

Kadangi mes suaktyvinome „RecognizerIntent“ per „startActivityForResult“ (), rezultatų duomenis tvarkome valdydami „OnActivityResult“ (int requestCode, int rezultato kodas, ketinimų duomenys), vykdydami veiklą, kuri inicijavo kalbos atpažinimo kvietimą.

Rezultatai grąžinami mažėjančia tvarka pagal kalbos atpažinimo priemonės pasitikėjimą. Taigi, norėdami įsitikinti, kad rodome tiksliausią tekstą, turime grąžinti nulinę poziciją iš grąžinto „ArrayList“, tada rodyti jį „TextView“.

@Override // Apibrėžkite OnActivityResult metodą mūsų ketinamame skambintojo veikloje // apsaugota negaliojanti onActivityResult (int requestCode, int rezultātsCode, ketinimų duomenys) {super.onActivityResult (requestCode, rezultato kodas, duomenys); jungiklis (requestCode) {atvejis REQUEST_CODE: {// Jei grąžinamas RESULT_OK ... // if (resultCode == REZULTATAS_OK && null! = duomenys) {//... tada gaukite „ArrayList“ // ArrayList rezultatas = data.getStringArrayListExtra (RecognizerIntent.EXTRA_RESULTS); // Atnaujinkite mūsų „TextView“ // textOutput.setText (rezultatas.get (0)); } pertrauka; }}}}

Atminkite, kad kalbėjimui prie teksto nereikia aktyvaus interneto ryšio, todėl jis veiks tinkamai, net kai vartotojas neprisijungęs.

Atlikę visus aukščiau aprašytus veiksmus, „MainActivity“ turėtų atrodyti taip:

importuoti android.content.ActivityNotFoundException; importuoti „androidx.appcompat.app.AppCompatActivity“; importuoti android.os.Bundle; importuoti android.content.Intent; importuoti „android.speech.RecognizerIntent“; importuoti „android.widget.TextView“; importuoti android.view.View; importuoti java.util.ArrayList; viešosios klasės „MainActivity“ išplečia „AppCompatActivity“ {privatus statinis galutinis int REQUEST_CODE = 100; privati ​​„TextView“ teksto išvestis; @Apsaugoti negaliojantį „onCreate“ (Bundle saveInstanceState) {super.onCreate (savedInstanceState); „setContentView“ (R.layout.activity_main); textOutput = („TextView“) „findViewById“ (R.id.textOutput); } // Šis metodas vadinamas paspaudus mygtuką // „public void onClick“ (vaizdas v) // Sukurkite intenciją atlikdami „RecognizerIntent.ACTION_RECOGNIZE_SPEECH“ veiksmą // {Intent intent = new Intent (RecognizerIntent.ACTION_RECOGNIZE_SPEECH); pabandykite {// pradėti veiklą ir laukite atsakymo // startActivityForResult (ketinimas, REQUEST_CODE); } pagauti (ActivityNotFoundException a) {}} @Override // Tvarkykite rezultatus // apsaugota negaliojanti onActivityResult (int requestCode, int rezultātsCode, ketinimų duomenys) {super.onActivityResult (requestCode, rezultato kodas, duomenys); jungiklis (requestCode) {atvejis REQUEST_CODE: {if (resultCode == RESULT_OK && null! = duomenys) {ArrayList rezultatas = data.getStringArrayListExtra (RecognizerIntent.EXTRA_RESULTS); textOutput.setText (rezultatas.get (0)); } pertrauka; }}}}

Galite atsisiųsti baigtą projektą iš „GitHub“.

Savo projekto išbandymas

Norėdami išbandyti savo paraišką:

  • Įdiekite savo projektą fiziniame „Android“ įrenginyje arba „Android“ virtualiame įrenginyje (AVD). Jei naudojate AVD, kūrimo įrenginyje turi būti įmontuotas mikrofonas arba galite naudoti išorinį mikrofoną ar laisvų rankų įrangą.
  • Bakstelėkite programos mygtuką „Pradėti diktantą“.
  • Kai pasirodys mikrofono dialogo langas, kalbėkite savo prietaise. Po kelių akimirkų jūsų žodžiai turėtų pasirodyti ekrane.

Apvyniojimas

Šiame straipsnyje mes pamatėme, kaip galite greitai ir lengvai pridėti kalbos atpažinimą prie „Android“ programų, naudodami kalbėjimo į tekstą intenciją. Ar esate susidūrę su „Android“ programomis, kurios stebėjimo ar novatoriškais būdais naudoja kalbos atpažinimą?

Kitas: Sukurkite papildytos realybės „Android“ programą naudodami „Google ARCore“

Jei kaitote tai dabar, yra tikėtina, kad eate girdėję apie „Fortnite“ - žaidimą, kuri praėjuiai metai atnešė tulbinamu 3 milijardu dolerių ir pradėjo „Battle Royale“ pamišimą. Daugybė tokių titulų, ka...

Viskas apie baterijas: kas yra mAh?

Lewis Jackson

Liepos Mėn 2024

Jūų telefono akumuliatoriu yra neabejotinai pati varbiauia aparatūro dali, ne be jo nieko negali atitikti. Tačiau šie ličio jonų technologiniai tebuklai daugeliui išmaniųjų telefonų vartotojų išlieka ...

Mūsų Patarimai