Home / Android-Entwicklung / So erstellen Sie eine einfache Diktier-App

So erstellen Sie eine einfache Diktier-App

 Google Sprachsuche, die Sprache in Text umwandelt

Viele Apps, Dienste und Haushaltsgeräte verwenden die Spracherkennung, um eine bessere Benutzererfahrung zu erzielen und die Barrierefreiheit 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 Android Speech-to-Text Intent geben. Das kann in einer Vielzahl von Anwendungen nützlich sein. 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 Benutzer.

Unabhängig von der Art der von Ihnen erstellten Anwendung kann die Spracherkennung die Barrierefreiheit verbessern, indem Benutzer eine alternative Möglichkeit zur Interaktion mit Ihrer App erhalten. 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 vergrößern.

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

Erstellen einer Benutzeroberfläche für das Sprechen in Text.

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

Wir erstellen eine einfache Anwendung, die aus einer Schaltfläche besteht Wenn Sie auf diese Schaltfläche tippen, wird die Absicht "Speech-to-Text" von Android ausgelöst und ein Dialogfeld angezeigt, in dem angegeben wird, dass Ihre App zur Annahme von Spracheingaben 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:








































Damit erhalten wir das folgende Layout:

 Google-Layout zum Konvertieren von Sprache in Text

Hinzufügen der Spracherkennung zu Ihrer Android-App

Wir erfassen und verarbeiten Spracheingaben in zwei Schritten:

1. RecognizerIntent starten

Die einfachste Methode zum Konvertieren von Sprache in Text ist die Verwendung von RecognizerIntent.ACTION_RECOGNIZE_SPEECH. Diese Absicht fordert den Benutzer zur Spracheingabe auf, indem das bekannte Mikrofon-Dialogfeld von Android gestartet wird.

 Google wandelt Sprache in Text um

Sobald der Benutzer aufhört zu sprechen, wird das Dialogfeld automatisch geschlossen und ACTION_RECOGNIZE_SPEECH sendet die Aufzeichnung Audio über einen Spracherkenner.

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












    public void onClick (View v)
   {

// Den RecognizerIntent Intent auslösen //

       Intent intent = new Intent (RecognizerIntent.ACTION_RECOGNIZE_SPEECH);

       Versuchen {
           startActivityForResult (intent, REQUEST_CODE);
       } catch (ActivityNotFoundException a) {

       }
   } 

2. Empfangen der Sprachantwort

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

Da wir den RecognizerIntent über startActivityForResult () ausgelöst haben, verarbeiten wir die Ergebnisdaten von Überschreiben von onActivityResult (int requestCode, int resultCode, Intent data) in der Aktivität, 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 TextView anzeigen.
















    @Override

// Definiere eine OnActivityResult Methode in unserer Intent Caller 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 die ArrayList abrufen //

                  ArrayList 











 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 :




















































 android.content.ActivityNotFoundException importieren;
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 Taste gedrückt wird //

   public void onClick (View v)

// Erstelle einen Intent mit der Aktion “RecognizerIntent.ACTION_RECOGNIZE_SPEECH” //

   {
       Intent intent = new Intent (RecognizerIntent.ACTION_RECOGNIZE_SPEECH);

       Versuchen {

// Starte die Aktivität und warte auf die Antwort //

           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 Ihres Projekts

So testen Sie Ihre Anwendung:

  • 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 Headset verwenden.
  • Tippen Sie auf die Schaltfläche „Start Dictation“ 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 angezeigt werden.

 Verwenden Sie zuerst Google Speech für Text

Zusammenfassung

In diesem Artikel wurde erläutert, wie Sie Ihre Spracherkennung schnell und einfach hinzufügen können Android-Anwendungen mit der Absicht "Speech-to-Text". Sind Sie auf Android-Apps gestoßen, die die Spracherkennung auf überraschende oder innovative Weise verwenden?

Weiter: Erstellen Sie eine Augmented-Reality-Android-App mit Google ARCore

About AndroidWeltEditor

Check Also

An introduction to Android GPU Inspector

If you want your game or app to stand out in the Google Play Store, …

Leave a Reply

Your email address will not be published. Required fields are marked *