![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](https://a.23rdpta.org/apps/converting-speech-to-text-how-to-create-a-simple-dictation-app-3.png)
Tartalom
- Beszéd-szöveges felhasználói felület készítése
- Beszédfelismerés hozzáadása az Android-alkalmazáshoz
- 1. Indítsa el a RecognizerIntent programot
- 2. A beszédválasz fogadása
- A projekt tesztelése
- Csomagolás
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 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 A befejezett projektet letöltheti a GitHubból. A teszt tesztelése: 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évelA projekt tesztelése
Csomagolás