![Sprache zu Text diktieren völlig kostenlos](https://i.ytimg.com/vi/s3iWAr3vHWI/hqdefault.jpg)
Inhalt
- Erstellen einer Speech-to-Text-Benutzeroberfläche
- Spracherkennung zu Ihrer Android-App hinzufügen
- 1. Starten Sie RecognizerIntent
- 2. Empfangen der Sprachantwort
- Testen Sie Ihr Projekt
- Einpacken
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 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 Sie können das fertige Projekt von GitHub herunterladen. So stellen Sie Ihre Bewerbung auf den Prüfstand: 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-AppTesten Sie Ihr Projekt
Einpacken