Konvertieren von Sprache in Text: So erstellen Sie eine einfache Diktier-App

Autor: Lewis Jackson
Erstelldatum: 13 Kann 2021
Aktualisierungsdatum: 1 Juli 2024
Anonim
Sprache zu Text diktieren völlig kostenlos
Video: Sprache zu Text diktieren völlig kostenlos

Inhalt


Viele Apps, Dienste und Haushaltsgeräte verwenden die Spracherkennung, um die Benutzerfreundlichkeit zu verbessern und die Zugänglichkeit zu verbessern. Es gibt unzählige Android-Apps, die die Spracherkennung nutzen - die bemerkenswerteste davon ist Google Assistant. Warum also nicht nachziehen und diese Funktion Ihren eigenen Android-Anwendungen hinzufügen?

In diesem Artikel werde ich einen schnellen und einfachen Einstieg in die Speech-to-Text-Funktion von Android geben, die in einer Vielzahl von Anwendungen nützlich sein kann. Beispielsweise können Sie die Spracherkennung verwenden, um die mühsame manuelle Dateneingabe zu automatisieren, automatisch Untertitel zu generieren oder sogar als Grundlage für eine Übersetzungs-App, die auf Spracheingaben „lauscht“, diese in Text konvertiert, diesen Text dann übersetzt und die Ergebnisse anzeigt der Nutzer.

Unabhängig von der Art der von Ihnen erstellten Anwendung kann die Spracherkennung die Barrierefreiheit verbessern, indem Benutzern eine alternative Möglichkeit zur Interaktion mit Ihrer App geboten wird. Beispielsweise fällt es Menschen mit Mobilitäts-, Geschicklichkeits- oder Sehproblemen möglicherweise leichter, mit Sprachbefehlen durch mobile Anwendungen zu navigieren, als mit dem Touchscreen oder der Tastatur. Laut der Weltgesundheitsorganisation (WHO) leiden mehr als eine Milliarde Menschen an einer Behinderung, was etwa 15% der Weltbevölkerung entspricht. Das Hinzufügen von Eingabehilfen zu Ihren Anwendungen kann Ihr potenzielles Publikum erheblich steigern.


Am Ende dieses Artikels haben Sie eine einfache Sprachanwendung erstellt, die Ihre Stimme aufzeichnet, sie in Text konvertiert und diesen Text dann auf dem Bildschirm anzeigt.

Erstellen einer Speech-to-Text-Benutzeroberfläche

Erstellen Sie zunächst ein neues Android-Projekt mit der Vorlage "Leere Aktivität".

Wir werden eine einfache Anwendung erstellen, die aus einer Schaltfläche besteht, die beim Antippen die Sprachausgabe von Android auslöst und in einem Dialogfeld darauf hinweist, dass Ihre App zur Spracheingabe bereit ist. Sobald der Benutzer mit dem Sprechen fertig ist, wird seine Eingabe in Text umgewandelt und dann als Teil einer Textansicht angezeigt.

Beginnen wir mit der Erstellung unseres Layouts:

Dies gibt uns das folgende Layout:


Spracherkennung zu Ihrer Android-App hinzufügen

Wir erfassen und verarbeiten Spracheingaben in zwei Schritten:

1. Starten Sie RecognizerIntent

Der einfachste Weg, eine Konvertierung von Sprache in Text durchzuführen, ist die Verwendung von RecognizerIntent.ACTION_RECOGNIZE_SPEECH. Diese Absicht fordert den Benutzer zur Spracheingabe auf, indem das vertraute Dialogfeld für das Mikrofon von Android geöffnet wird.

Sobald der Benutzer aufhört zu sprechen, wird das Dialogfeld automatisch geschlossen und ACTION_RECOGNIZE_SPEECH sendet das aufgezeichnete Audio über eine Spracherkennung.

Wir starten RecognizerIntent.ACTION_RECOGNIZE_SPEECH mit startActivityForResult () mit gebündelten Extras. Beachten Sie, dass der Erkenner, sofern nicht anders angegeben, das Standardgebietsschema des Geräts verwendet.

public void onClick (View v) {// RecognizerIntent-Intent auslösen // Intent intent = new Intent (RecognizerIntent.ACTION_RECOGNIZE_SPEECH); try {startActivityForResult (intent, REQUEST_CODE); } catch (ActivityNotFoundException a) {}}

2. Empfangen der Sprachantwort

Sobald der Spracherkennungsvorgang abgeschlossen ist, sendet ACTION_RECOGNIZE_SPEECH die Ergebnisse als Array von Zeichenfolgen an die aufrufende Aktivität zurück.

Da wir RecognizerIntent über startActivityForResult () ausgelöst haben, verarbeiten wir die Ergebnisdaten, indem wir onActivityResult (int requestCode, int resultCode, Intent data) in der Aktivität überschreiben, die den Spracherkennungsaufruf initiiert hat.

Die Ergebnisse werden in absteigender Reihenfolge der Spracherkennungszuverlässigkeit zurückgegeben. Um sicherzustellen, dass wir den genauesten Text anzeigen, müssen wir die Nullposition aus der zurückgegebenen ArrayList übernehmen und dann in unserer Textansicht anzeigen.

@Override // Definiere eine OnActivityResult-Methode in unserem Intent-Aufrufer Activity // protected void onActivityResult (int requestCode, int resultCode, Intent data) {super.onActivityResult (requestCode, resultCode, data); switch (requestCode) {case REQUEST_CODE: {// Wenn RESULT_OK zurückgegeben wird ... // if (resultCode == RESULT_OK && null! = data) {//... dann rufe die ArrayList // ArrayList ab result = data.getStringArrayListExtra (RecognizerIntent.EXTRA_RESULTS); // Aktualisiere unser TextView // textOutput.setText (result.get (0)); } brechen; }}}}

Beachten Sie, dass Speech-to-Text keine aktive Internetverbindung erfordert und daher auch dann ordnungsgemäß funktioniert, wenn der Benutzer offline ist.

Nachdem Sie alle oben genannten Schritte ausgeführt haben, sollte Ihre MainActivity ungefähr so ​​aussehen:

import android.content.ActivityNotFoundException; androidx.appcompat.app.AppCompatActivity importieren; android.os.Bundle importieren; android.content.Intent importieren; import android.speech.RecognizerIntent; import android.widget.TextView; android.view.View importieren; import java.util.ArrayList; public class MainActivity erweitert AppCompatActivity {private static final int REQUEST_CODE = 100; private TextView textOutput; @Override protected void onCreate (Bundle savedInstanceState) {super.onCreate (savedInstanceState); setContentView (R.layout.activity_main); textOutput = (TextView) findViewById (R.id.textOutput); } // Diese Methode wird aufgerufen, wenn die Schaltfläche gedrückt wird // public void onClick (View v) // Absicht mit Aktion „RecognizerIntent.ACTION_RECOGNIZE_SPEECH“ erstellen // {Intent intent = new Intent (RecognizerIntent.ACTION_RECOGNIZE_SPEECH); try {// Aktivität starten und auf die Antwort warten // startActivityForResult (intent, REQUEST_CODE); } catch (ActivityNotFoundException a) {}} @Override // Behandle die Ergebnisse // protected void onActivityResult (int requestCode, int resultCode, Intent data) {super.onActivityResult (requestCode, resultCode, data); switch (requestCode) {case REQUEST_CODE: {if (resultCode == RESULT_OK && null! = data) {ArrayList result = data.getStringArrayListExtra (RecognizerIntent.EXTRA_RESULTS); textOutput.setText (result.get (0)); } brechen; }}}}

Sie können das fertige Projekt von GitHub herunterladen.

Testen Sie Ihr Projekt

So stellen Sie Ihre Bewerbung auf den Prüfstand:

  • Installieren Sie Ihr Projekt entweder auf einem physischen Android-Gerät oder einem virtuellen Android-Gerät (AVD). Wenn Sie eine AVD verwenden, muss Ihr Entwicklungsgerät entweder über ein eingebautes Mikrofon verfügen, oder Sie können ein externes Mikrofon oder ein Headset verwenden.
  • Tippen Sie auf die Schaltfläche "Diktat starten" der Anwendung.
  • Wenn das Dialogfeld für das Mikrofon angezeigt wird, sprechen Sie in Ihr Gerät. Nach einigen Augenblicken sollten Ihre Wörter auf dem Bildschirm erscheinen.

Einpacken

In diesem Artikel haben wir gesehen, wie Sie Ihre Android-Anwendungen mit dem Speech-to-Text-Intent schnell und einfach mit Spracherkennung versehen können. Haben Sie schon Android-Apps kennengelernt, die die Spracherkennung auf überraschende oder innovative Weise nutzen?

Nächster: Erstellen Sie mit Google ARCore eine Augmented Reality-Android-App

Die Android Q-Entwicklervorchau 1 it endlich da und bietet eine ganze Reihe neuer Funktionen zum Auprobieren. Während ich die meiten Update im Rollout unter der Haube befinden, gibt e einige ...

Die Redmi Note 7-erie von Xiaomi it möglicherweie da biher bete Budget-Handy de Unternehmen, und die Verbraucher auf der ganzen Welt cheinen dem zuzutimmen. Tatächlich hat die chineiche Mark...

Interessant