Konwersja mowy na tekst: Jak stworzyć prostą aplikację do dyktowania

Autor: Lewis Jackson
Data Utworzenia: 13 Móc 2021
Data Aktualizacji: 1 Lipiec 2024
Anonim
How to make a speech to text application in C#
Wideo: How to make a speech to text application in C#

Zawartość


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 wynik = data.getStringArrayListExtra (RecognizerIntent.EXTRA_RESULTS); // Zaktualizuj nasz TextView // textOutput.setText (result.get (0)); } przerwa; }}}}

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 wynik = data.getStringArrayListExtra (RecognizerIntent.EXTRA_RESULTS); textOutput.setText (result.get (0)); } przerwa; }}}}

Możesz pobrać ukończony projekt z GitHub.

Testowanie twojego projektu

Aby przetestować aplikację:

  • Zainstaluj swój projekt na fizycznym urządzeniu z Androidem lub urządzeniu wirtualnym z systemem Android (AVD). Jeśli korzystasz z AVD, twoja maszyna programistyczna musi mieć wbudowany mikrofon lub zewnętrzny mikrofon lub zestaw słuchawkowy.
  • Naciśnij przycisk „Rozpocznij dyktowanie” aplikacji.
  • Kiedy pojawi się okno dialogowe mikrofonu, mów do swojego urządzenia. Po kilku chwilach Twoje słowa powinny pojawić się na ekranie.

Podsumowując

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 ARCore

Wcześniej dziiaj Google ogłoił, że technologia przypiezonych tron mobilnych (AMP) jet teraz dotępna dla Gmaila i Internetu. Ta funkcja jet tetowana od ponad roku....

Echo how drugiej generacji jet teraz oficjalnie dotępne w Indiach. Ogłozony w październiku 2018 r.Echo how ma duży 10-calowy wyświetlacz HD, zintegrowany mart Home Hub oraz ośmiomikrofonowy układ....

Ciekawe Posty