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

Detaillierte Erklärung der Spracherkennungstechnologie in Android mit Beispiels代码

   Today, I found an example of voice recognition on the internet and found it quite fun, so I will post the code here to share with everyone:

         In Android, voice recognition is mainly implemented through RecognizerIntent. The actual code is relatively simple, but if the settings cannot be found, an ActivityNotFoundException exception will be thrown, so we need to catch this exception. Moreover, voice recognition cannot be tested on emulators because it accesses Google Cloud data. Therefore, if the mobile network is not enabled on the phone, voice recognition cannot be achieved! It is essential to enable the mobile network. If the phone does not have a voice recognition feature, recognition cannot be enabled either!

        Below is the code in RecognizerIntentActivity:

public class RecognizerIntentActivity extends Activity { 
  private Button btnReconizer; 
  private static final int VOICE_RECOGNITION_REQUEST_CODE = 1234; 
  @Override 
  protected void onCreate(Bundle savedInstanceState) { 
    // 待办:自动-生成的方法存根 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.reconizer); 
    btnReconizer=(Button) this.findViewById(R.id.btnRecognizer); 
    btnReconizer.setOnClickListener(new OnClickListener() { 
      @Override 
      public void onClick(View v) { 
        // 待办:自动-生成的方法存根 
        try{ 
        //通过Intent传递语音识别的模式,开启语音 
        Intent intent=new Intent(RecognizerIntent.ACTION_RECOGNIZE_SPEECH); 
        //语言模式和自由模式的语音识别 
        intent.putExtra(RecognizerIntent.EXTRA_LANGUAGE_MODEL, RecognizerIntent.LANGUAGE_MODEL_FREE_FORM); 
        //提示语音开始 
        intent.putExtra(RecognizerIntent.EXTRA_PROMPT, "开始语音"); 
        //开始语音识别 
        startActivityForResult(intent, VOICE_RECOGNITION_REQUEST_CODE); 
        }catch (Exception e) { 
          // 待办:处理异常 
          e.printStackTrace(); 
          Toast.makeText(getApplicationContext(), "找不到语音设备", 1).show(); 
        } 
      } 
    }); 
  } 
  @Override 
  protected void onActivityResult(int requestCode, int resultCode, Intent data) { 
    // 待办:自动-生成的方法存根 
    //从谷歌获取数据的回调  
    if(requestCode==VOICE_RECOGNITION_REQUEST_CODE && resultCode==RESULT_OK){ 
      //语音字符的获取 
      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, 1).show(); 
    } 
    super.onActivityResult(requestCode, resultCode, data); 
  } 
} 

      

        Der Hauptmechanismus besteht darin, die Sprache an das Google-Cloud-System zu senden, dann wird sie von der Cloud verarbeitet, die entsprechenden Daten abgestimmt und an den Client gesendet.
          Vergessen Sie nicht, die Netzwerkzugriffsrechte im Manifest hinzuzufügen:

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

        Ergebnis nach dem Ausführen:

    

    Klicken Sie auf die Schaltfläche 'Sprachstart', beginnen Sie dann zu sprechen (stellen Sie sicher, dass das Telefonnetz aktiviert ist):

    

      Warte auf Cloud-Daten, da ich2Die Karte G ist schon lange nicht geladen, ich werde es mit dem WiFi meines Unternehmens versuchen, wenn ich zurück zum Büro komme. Wenn ich Cloud-Daten erhalte, werde ich sie auf dem Bildschirm in Form von Toast ausgeben.

Dies ist die Zusammenstellung von Informationen über die Android-Stimmeingabetechnologie. Weitere Informationen werden in der Zukunft hinzugefügt. Vielen Dank für Ihre Unterstützung der Website!

Erklärung: Der Inhalt dieses Artikels wurde aus dem Internet übernommen und gehört dem jeweiligen Urheber. Der Inhalt wurde von Internetnutzern freiwillig eingereicht und hochgeladen. Diese Website besitzt keine Eigentumsrechte und hat den Inhalt nicht manuell bearbeitet. Sie übernimmt auch keine rechtlichen Verantwortlichkeiten. Wenn Sie urheberrechtlich anstößige Inhalte entdecken, freuen wir uns über eine E-Mail an: notice#w3Hinweis: Bitte ersetzen Sie # durch @, wenn Sie eine E-Mail senden, um Missbrauch zu melden, und fügen Sie relevante Beweise bei. Sobald bestätigt, wird die Website die fraglichen urheberrechtlichen Inhalte sofort löschen.

Empfohlen für Sie