Beszéd konvertálása szöveggé: Hogyan hozzunk létre egy egyszerű diktáló alkalmazást

Szerző: Lewis Jackson
A Teremtés Dátuma: 13 Lehet 2021
Frissítés Dátuma: 1 Július 2024
Anonim
Beszéd konvertálása szöveggé: Hogyan hozzunk létre egy egyszerű diktáló alkalmazást - Alkalmazások
Beszéd konvertálása szöveggé: Hogyan hozzunk létre egy egyszerű diktáló alkalmazást - Alkalmazások

Tartalom


Számos alkalmazás, szolgáltatás és háztartási eszköz használja a beszédfelismerést a jobb felhasználói élmény és a hozzáférhetőség javítása érdekében. Számtalan Android-alkalmazás használja a beszédfelismerést - ezek közül a legfigyelemreméltóbb a Google Assistant -, tehát miért nem követi példáját, és hozzáadja ezt a funkciót saját Android-alkalmazásaihoz?

Ebben a cikkben megosztom egy gyors és egyszerű módszert az Android beszéd-szöveg szándékának megismerésére, amely sokféle alkalmazásban hasznos lehet. Használhatja például a beszédfelismerést az unalmas kézi adatbevitel automatizálásához, feliratok automatikus létrehozásához, vagy akár olyan fordítóalkalmazás alapjához, amely „hallgatja” a vokális bemenetet, konvertálja szöveggé, majd lefordítja ezt a szöveget, és megjeleníti az eredményeket. a felhasználó.


Függetlenül attól, hogy milyen alkalmazást hoz létre, a beszédfelismerés javíthatja az akadálymentességet azáltal, hogy alternatív módszert kínál a felhasználóknak az alkalmazásával való interakcióra. Például a mozgásképességgel, ügyességgel vagy látással kapcsolatos problémákkal küzdő embereknek könnyebben navigálhatnak a mobilalkalmazásokban a hangutasításokkal, mint az érintőképernyővel vagy a billentyűzettel. Ráadásul az Egészségügyi Világszervezet (WHO) szerint több mint egy milliárd ember rendelkezik valamilyen fogyatékossággal, ami a világ népességének körülbelül 15% -ának felel meg. Ha akadálymentességi funkciókat ad az alkalmazásokhoz, jelentősen megnövelheti potenciális közönségét.


A cikk végére elkészített egy egyszerű Speech-to-Text alkalmazást, amely rögzíti a hangját, konvertálja szöveggé, majd megjeleníti a képernyőn.

Beszéd-szöveges felhasználói felület készítése

A kezdéshez hozzon létre egy új Android projektet az „Üres tevékenység” sablon használatával.

Készítünk egy egyszerű alkalmazást, amely egy gombból áll, amely megérintésével elindítja az Android beszéd-szöveg szándékát, és megjelenik egy párbeszédpanel, amely jelzi, hogy az alkalmazás készen áll a beszédbevitel elfogadására. Miután a felhasználó befejezte a beszédet, bemenete szöveggé konvertálódik, majd a TextView részeként jelenik meg.

Kezdjük az elrendezés létrehozásával:

Ez adja meg a következő elrendezést:

Beszédfelismerés hozzáadása az Android-alkalmazáshoz

A beszédbevitelt két lépésben rögzítjük és dolgozzuk fel:

1. Indítsa el a RecognizerIntent programot

A beszéd-szöveg átalakítás legegyszerűbb módja a RecognizerIntent.ACTION_RECOGNIZE_SPEECH használatával. Ez a szándék felkéri a felhasználót a hanganyag bevitelére az Android által ismert mikrofon párbeszédpanel megnyitásával.

Amint a felhasználó beszünteti a beszélgetést, a párbeszédpanel automatikusan bezáródik, és az ACTION_RECOGNIZE_SPEECH a rögzített hangot beszédfelismerőn keresztül továbbítja.

A RecognizerIntent.ACTION_RECOGNIZE_SPEECH programot a startActivityForResult () használatával, mellékelt extrákkal indítjuk. Vegye figyelembe, hogy hacsak másként nem rendelkezik, az felismerő az eszköz alapértelmezett nyelvét fogja használni.

public void onClick (v nézet) {// Indítsa el a RecognizerIntent szándékot // Intent intent = új szándék (RecognizerIntent.ACTION_RECOGNIZE_SPEECH); próbáld ki a {startActivityForResult (szándék, REQUEST_CODE) lehetőséget; } fogás (ActivityNotFoundException a) {}}

2. A beszédválasz fogadása

Miután a beszédfelismerési művelet befejeződött, az ACTION_RECOGNIZE_SPEECH az eredményeket visszaadja a hívó tevékenységhez karakterláncok tömbjeként.

Mivel a RecognizerIntent indítását a startActivityForResult () keresztül indítottuk el, az eredményadatokat úgy kezeljük, hogy felülbíráljuk az onActivityResult (int requestCode, int resultCode, Intent data) tevékenységet, amely a beszédfelismerési hívást kezdeményezte.

Az eredményeket a beszédfelismerő bizalma csökkenő sorrendben adja vissza. Tehát annak biztosítása érdekében, hogy a legpontosabb szöveget jelenítsük meg, meg kell vennünk a nulla pozíciót a visszatért ArrayList-ből, majd megjeleníteni azt a TextView-ban.

@Override // Definiáljon egy OnActivityResult módszert a szándékos hívó tevékenységünkben // védett érvénytelen onActivityResult (int requestCode, int resultCode, Intent data) {super.onActivityResult (requestCode, resultCode, data); kapcsoló (requestCode) {eset REQUEST_CODE: {// Ha a RESULT_OK visszatér ... // if (resultCode == RESULT_OK && null! = adatok) {//...int töltse le az ArrayList // ArrayList eredmény = data.getStringArrayListExtra (RecognizerIntent.EXTRA_RESULTS); // Frissítse a TextView // szövegetOutput.setText (eredmény.get (0)); } szünet; }}}}

Vegye figyelembe, hogy a szöveg-beszédhez nincs szükség aktív internetkapcsolatra, tehát akkor is helyesen fog működni, ha a felhasználó offline állapotban van.

A fenti lépések elvégzése után a MainActivity-nek a következőképpen néz ki:

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; a mainActivity nyilvános osztály kiterjeszti az AppCompatActivity {magán statikus végleges int REQUEST_CODE = 100; privát TextView textOutput; @ Felülírja a védett érvénytelen onCreate (Bundle savedInstanceState) {super.onCreate (savedInstanceState); setContentView (R.layout.activity_main); textOutput = (TextView) findViewById (R.id.textOutput); } // Ezt a módszert a megnyomott gomb megnyomásával hívják meg. Public void onClick (v. Nézet) // Hozzon létre egy szándékot a „RecognizerIntent.ACTION_RECOGNIZE_SPEECH” művelettel // {Intent intent = new Intent (RecognizerIntent.ACTION_RECOGNIZE_SPEECH); próbálkozzon a {// Indítsa el a tevékenységet és várjon a válaszra // startActivityForResult (szándék, REQUEST_CODE); } catch (ActivityNotFoundException a) {}} @Override // Az eredmények kezelése // védett érvénytelen onActivityResult (int requestCode, int rezultātsCode, Intent data) {super.onActivityResult (requestCode, resultCode, data); kapcsoló (requestCode) {eset REQUEST_CODE: {if (resultCode == RESULT_OK && null! = adatok) {ArrayList eredmény = data.getStringArrayListExtra (RecognizerIntent.EXTRA_RESULTS); textOutput.setText (result.get (0)); } szünet; }}}}

A befejezett projektet letöltheti a GitHubból.

A projekt tesztelése

A teszt tesztelése:

  • Telepítse a projektet akár fizikai Android készülékre, akár Android virtuális eszközre (AVD). Ha AVD-t használ, akkor a fejlesztőgépnek rendelkeznie kell beépített mikrofonnal, vagy használhat külső mikrofont vagy fejhallgatót.
  • Koppintson az alkalmazás „Diktálás indítása” gombjára.
  • Amikor megjelenik a mikrofon párbeszédpanel, beszéljen a készülékkel. Néhány pillanat után a szavaknak megjelenniük kell a képernyőn.

Csomagolás

Ebben a cikkben láttuk, hogyan lehet gyorsan és egyszerűen hozzáadni a beszédfelismerést az Android-alkalmazásokhoz a Beszéd-szöveg szándék használatával. Találkozott olyan Android-alkalmazásokkal, amelyek meglepő vagy innovatív módon használják a beszédfelismerést?

Következő: Készítsen kibővített valóságú Android alkalmazást a Google ARCore segítségével

Friíté, 2019. január 23. (6:14 ET): Egy nappal azután, hogy megerőítették az Android Pie útitervét , A HMD Global motantól megoztott egy praktiku infografi...

2019. január 25 2019. január 25Aztán a vezetéi cavarok orozatának közönhetően minden özeomlott. 2016-ra a Nokia telefonok cak annyira elpárolgtak, mint oly...

Érdekes Hozzászólások