Zawartość
- Budowanie interfejsu użytkownika syntezatora mowy
- Dodawanie rozpoznawania mowy do aplikacji na Androida
- 1. Uruchom RecognizerIntent
- 2. Odbieranie odpowiedzi na mowę
- Testowanie twojego projektu
- Podsumowując
Wiele aplikacji, usług i gadżetów domowych korzysta z rozpoznawania mowy, aby zapewnić lepszą obsługę i poprawić dostępność. Istnieje niezliczona liczba aplikacji na Androida, które wykorzystują rozpoznawanie mowy - z których najbardziej znaczącą jest Asystent Google - dlaczego więc nie pójść za tym i nie dodać tej funkcji do własnych aplikacji na Androida?
W tym artykule podzielę się szybkim i łatwym sposobem rozpoczęcia korzystania z funkcji zamiany mowy na tekst w Androidzie, która może być przydatna w wielu aplikacjach. Na przykład możesz użyć rozpoznawania mowy, aby zautomatyzować żmudne ręczne wprowadzanie danych, automatycznie generować napisy, a nawet jako podstawę aplikacji do tłumaczenia, która „słucha” mowy, przekształca ją w tekst, a następnie tłumaczy ten tekst i wyświetla wyniki użytkownik.
Niezależnie od rodzaju tworzonej aplikacji rozpoznawanie mowy może poprawić dostępność, zapewniając użytkownikom alternatywny sposób interakcji z aplikacją. Na przykład osobom z problemami z poruszaniem się, zręcznością lub wzrokiem może łatwiej nawigować w aplikacjach mobilnych za pomocą poleceń głosowych, a nie ekranu dotykowego lub klawiatury. Ponadto, według Światowej Organizacji Zdrowia (WHO), ponad miliard osób cierpi na jakąś formę niepełnosprawności, co stanowi około 15% światowej populacji. Dodanie funkcji ułatwień dostępu do aplikacji może znacznie zwiększyć liczbę potencjalnych odbiorców.
Pod koniec tego artykułu utworzysz prostą aplikację Mowa na tekst, która nagrywa Twój głos, konwertuje go na tekst, a następnie wyświetla ten tekst na ekranie.
Budowanie interfejsu użytkownika syntezatora mowy
Aby rozpocząć, utwórz nowy projekt Androida za pomocą szablonu „Pusta aktywność”.
Stworzymy prostą aplikację składającą się z przycisku, który po dotknięciu uruchamia zamiar zamiany mowy na tekst w Androidzie i wyświetla okno dialogowe wskazujące, że Twoja aplikacja jest gotowa na przyjęcie mowy. Gdy użytkownik skończy mówić, jego dane wejściowe zostaną przekonwertowane na tekst, a następnie wyświetlone jako część TextView.
Zacznijmy od stworzenia naszego układu:
To daje nam następujący układ:
Dodawanie rozpoznawania mowy do aplikacji na Androida
Przechwytujemy i przetwarzamy wprowadzanie mowy w dwóch krokach:
1. Uruchom RecognizerIntent
Najprostszym sposobem na konwersję mowy na tekst jest użycie RecognizerIntent.ACTION_RECOGNIZE_SPEECH. Ta intencja zachęca użytkownika do wprowadzenia głosu poprzez uruchomienie znanego okna dialogowego mikrofonu Androida.
Gdy użytkownik przestanie mówić, okno dialogowe zamknie się automatycznie, a ACTION_RECOGNIZE_SPEECH wyśle nagrany dźwięk przez rozpoznawanie mowy.
Rozpoczynamy RecognizerIntent.ACTION_RECOGNIZE_SPEECH za pomocą startActivityForResult () z dołączonymi dodatkami. Pamiętaj, że jeśli nie określono inaczej, moduł rozpoznający użyje domyślnych ustawień regionalnych urządzenia.
public void onClick (View v) {// Uruchom wyzwalacz RecognizerIntent // Cel intent = nowy Intent (RecognizerIntent.ACTION_RECOGNIZE_SPEECH); spróbuj {startActivityForResult (intent, REQUEST_CODE); } catch (ActivityNotFoundException a) {}}
2. Odbieranie odpowiedzi na mowę
Po zakończeniu operacji rozpoznawania mowy, ACTION_RECOGNIZE_SPEECH wyśle wyniki z powrotem do działania wywołującego jako tablicę ciągów znaków.
Ponieważ uruchomiliśmy RecognizerIntent za pomocą startActivityForResult (), przetwarzamy dane wynikowe, zastępując onActivityResult (int requestCode, int resultCode, Intent data) w działaniu, które zainicjowało wywołanie rozpoznawania mowy.
Wyniki są zwracane w kolejności malejącej zaufania rozpoznawania mowy. Aby mieć pewność, że wyświetlamy najdokładniejszy tekst, musimy przyjąć pozycję zerową ze zwróconej ArrayList, a następnie wyświetlić ją w TextView.
@Override // Zdefiniuj metodę OnActivityResult w naszym zamierzonym obiekcie wywołującym Działanie // chronione void onActivityResult (int requestCode, int resultCode, dane intencyjne) {super.onActivityResult (requestCode, resultCode, dane); switch (requestCode) {case REQUEST_CODE: {// Jeśli zwracany jest RESULT_OK ... // if (resultCode == RESULT_OK && null! = data) {//... następnie pobierz ArrayList // ArrayList Pamiętaj, że funkcja zamiany tekstu na tekst nie wymaga aktywnego połączenia z Internetem, więc będzie działać poprawnie, nawet gdy użytkownik jest offline. Po wykonaniu wszystkich powyższych kroków Twoja MainActivity powinna wyglądać mniej więcej tak: 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; klasa publiczna MainActivity rozszerza AppCompatActivity {private static final int REQUEST_CODE = 100; prywatny TextView textOutput; @Override chronione void onCreate (pakiet saveInstanceState) {super.onCreate (saveInstanceState); setContentView (R.layout.activity_main); textOutput = (TextView) findViewById (R.id.textOutput); } // Ta metoda jest wywoływana po naciśnięciu przycisku // public void onClick (View v) // Utwórz zamiar za pomocą akcji „RecognizerIntent.ACTION_RECOGNIZE_SPEECH” // {Intent intent = new Intent (RecognizerIntent.ACTION_RECOGNIZE_SPEECH); spróbuj {// Uruchom działanie i poczekaj na odpowiedź // startActivityForResult (intent, REQUEST_CODE); } catch (ActivityNotFoundException a) {}} @Override // Obsługuj wyniki // chronione void onActivityResult (int requestCode, int resultCode, dane intencji) {super.onActivityResult (requestCode, resultCode, dane); switch (requestCode) {case REQUEST_CODE: {if (resultCode == RESULT_OK && null! = data) {ArrayList Możesz pobrać ukończony projekt z GitHub. Aby przetestować aplikację: W tym artykule widzieliśmy, jak szybko i łatwo dodać rozpoznawanie mowy do aplikacji na Androida, używając zamiaru zamiany mowy na tekst. Czy napotkałeś jakieś aplikacje na Androida wykorzystujące rozpoznawanie mowy w zaskakujący lub innowacyjny sposób? Kolejny: Zbuduj aplikację na Androida w rozszerzonej rzeczywistości dzięki Google ARCoreTestowanie twojego projektu
Podsumowując