English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية

Android Einfache Implementierung der Spracherkennung und Beispiellcode

Sprach認識 Program使用Intent aufrufen

Erklärung

In Android wird die Sprach認識 hauptsächlich durch RecognizerIntent implementiert. Der Code ist relativ einfach, aber wenn das Sprach認識 Gerät nicht gefunden wird, wird die Ausnahme ActivityNotFoundException ausgelöst. Daher müssen wir diese Ausnahme fangen. Und Sprach認識 kann auf dem Emulator nicht getestet werden, da der Sprach認識 auf die Google Cloud Daten zugreift. Daher ist es unmöglich, die Sprach認識 durchzuführen, wenn das Netzwerk des Handys nicht aktiviert ist! Es muss unbedingt das Netzwerk des Handys aktiviert werden. Wenn das Handy keine Sprach認識 Funktion hat, kann die Erkennung ebenfalls nicht aktiviert werden!

Hinweis: Vor der Verwendung muss das Sprach認識程序安装iert werden. Zum Beispiel "Sprachsuche", deren Sprach認識 Technologie von Google stammt, und Intent kann dieses Programm erkennen.

Dieser Beispielbezug erfolgt von den android-Beispielen:

entwicklung/samples/ApiDemos/src/com/example/android/apis/app/VoiceRecognition.java

Kerncode und Erklärung

package com.example.test;
import android.app.Activity;
import android.content.Intent;
import android.content.pm.PackageManager;
import android.os.Bundle;
import android.speech.RecognizerIntent;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.Toast;
import java.util.ArrayList;
import java.util.List;
public class MainActivity extends Activity implements OnClickListener {
 private static final int VOICE_RECOGNITION_REQUEST_CODE = 1234;
 @Override
 public void onCreate(Bundle savedInstanceState) {
  super.onCreate(savedInstanceState);
  setContentView(R.layout.activity_main);
  Button btn = (Button) findViewById(R.id.btn); // Erkennungsbutton
  PackageManager pm = getPackageManager();
  List activities = pm.queryIntentActivities(new Intent(
    RecognizerIntent.ACTION_RECOGNIZE_SPEECH), 0); // Lokale Spracherkennungssoftware
  // new Intent(RecognizerIntent.ACTION_WEB_SEARCH), 0); // Netzwerk-Spracherkennungssoftware
  /*
   * Hier wird keine Ausnahme abgefangen, sondern überprüft, ob eine Spracherkennungssoftware vorhanden ist.
   * Eine ActivityNotFoundException kann auch im Methodenaufruf startRecognizerActivity() abgefangen werden
   */
  if (activities.size() != 0) {
   btn.setOnClickListener(this);
  } else {
   // Wenn keine Spracherkennungssoftware auf dem Gerät installiert ist, wird der Knopf deaktiviert
   btn.setEnabled(false);
   btn.setText("Kein Spracherkennungsgerät erkannt");
  }
 }
 public void onClick(View v) {
  if (v.getId() == R.id.btn) {
   startRecognizerActivity();
  }
 }
 // Erkennung starten
 private void startRecognizerActivity() { 
  // Durch Intent das Spracherkennungsmodell übermitteln und die Spracherkennung starten
  Intent intent = new Intent(RecognizerIntent.ACTION_RECOGNIZE_SPEECH);
  // Sprachmodus und freier Modus der Spracherkennung
  intent.putExtra(RecognizerIntent.EXTRA_LANGUAGE_MODEL,
    RecognizerIntent.LANGUAGE_MODEL_FREE_FORM);
  // Sprachbeginn anzeigend
  intent.putExtra(RecognizerIntent.EXTRA_PROMPT, "Sprachbeginn");
  // Spracherkennung starten
  startActivityForResult(intent, VOICE_RECOGNITION_REQUEST_CODE);
  // Identifikationsinterface aufrufen
 }
 @Override
 protected void onActivityResult(int requestCode, int resultCode, Intent data) {
  // Daten abrufen, die von Google erhalten wurden
  if (requestCode == VOICE_RECOGNITION_REQUEST_CODE
    && resultCode == RESULT_OK)
   // den Text der Sprache erhalten
   ArrayList<String> results = data
     .getStringArrayListExtra(RecognizerIntent.EXTRA_RESULTS);
   String resultString = "";
   for (int i = 0; i < results.size(); i++) {
    resultString += results.get(i);
   }
   Toast.makeText(this, resultString, Toast.LENGTH_SHORT).show();
  }
  // Die Callback-Funktion der Spracherkennung zeigt das erkannte Textstring als Toast an
  super.onActivityResult(requestCode, resultCode, data);
 }
}

Der Hauptmechanismus besteht darin, die Sprache an den Google-Cloud-Dienst zu senden, dort zu verarbeiten und die entsprechenden Daten abzustimmen, um sie an den Client zu senden.

Denken Sie daran, dass Sie im Manifest den Netzwerkzugriffsberechtigung hinzufügen müssen:

<uses-permission android:name="android.permission.INTERNET" />

Ergebnis nach dem Ausführen:

Hier ist die Zusammenstellung der Materialien zur Sprach erkennung in Android. Weitere Informationen werden später hinzugefügt. Vielen Dank für die Unterstützung unseres Blogs!

Erklärung: Der Inhalt dieses Artikels wurde aus dem Internet entnommen und gehört dem jeweiligen Urheber. Der Inhalt wurde von Internetbenutzern freiwillig beigesteuert und hochgeladen. Diese Website besitzt keine Eigentumsrechte und hat den Inhalt nicht manuell bearbeitet. Sie übernimmt keine Haftung für die rechtlichen Folgen. Wenn Sie Inhalte mit Urheberrechtsverletzungen finden, freuen wir uns über die Sendung einer E-Mail an: notice#oldtoolbag.com (Bitte ersetzen Sie # durch @, wenn Sie eine E-Mail senden, um Missbrauch zu melden, und fügen Sie relevante Beweise bei. Bei nachgewiesener Infringement wird dieser Inhalt sofort gelöscht.)

Gefällt mir