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

Esempio dettagliato di implementazione della riconoscimento vocale in Android e codice sorgente

Chiamare il programma di riconoscimento vocale tramite Intent

Spiegazione

In Android, il riconoscimento vocale è principalmente realizzato tramite RecognizerIntent, il codice è abbastanza semplice, ma se non si trova un dispositivo di riconoscimento vocale, viene lanciata un'eccezione ActivityNotFoundException, quindi dobbiamo catturare questa eccezione. Inoltre, il riconoscimento vocale non può essere testato sul simulatore, perché il riconoscimento vocale accede ai dati cloud di Google, quindi se il telefono non ha la rete attivata, non è possibile riconoscere il suono! Assicurarsi di attivare la rete del telefono, se il telefono non ha la funzione di riconoscimento vocale, non è possibile abilitare il riconoscimento!

Attenzione: prima di utilizzare è necessario installare il programma di riconoscimento vocale. Come ad esempio il "Ricerca Vocale", che utilizza la tecnologia di riconoscimento vocale di Google, l'Intent può riconoscere questo programma.

Questo esempio si basa sullo esempio di Android:

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

Codice principale e descrizione

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); // Bottone di riconoscimento
  PackageManager pm = getPackageManager();
  List activities = pm.queryIntentActivities(new Intent(
    RecognizerIntent.ACTION_RECOGNIZE_SPEECH), 0); // Programma di riconoscimento locale
  // new Intent(RecognizerIntent.ACTION_WEB_SEARCH), 0); // Programma di riconoscimento di rete
  /*
   * 此处没有使用捕捉异常,而是检测是否有语音识别程序。
   * 也可以在startRecognizerActivity()方法中捕捉ActivityNotFoundException异常
   */
  if (activities.size() != 0) {
   btn.setOnClickListener(this);
  } else {
   // 若检测不到语音识别程序在本机安装,测将扭铵置灰
   btn.setEnabled(false);
   btn.setText("未检测到语音识别设备");
  }
 }
 public void onClick(View v) {
  if (v.getId() == R.id.btn) {
   startRecognizerActivity();
  }
 }
 // 开始识别
 private void startRecognizerActivity() { 
  // 通过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);
  // 调出识别界面
 }
 @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, Toast.LENGTH_SHORT).show();
  }
  // Callback dopo il riconoscimento vocale, visualizza la stringa riconosciuta con Toast
  super.onActivityResult(requestCode, resultCode, data);
 }
}

Il suo principio principale è inviare la voce al cloud di Google, quindi il cloud elabora, abbinando i dati corrispondenti, inviando al client.

Non dimenticare di aggiungere il permesso di accesso alla rete nel manifest:

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

Effetto dopo l'esecuzione:

Ecco la raccolta di materiali per la realizzazione della riconoscimento vocale su Android, ulteriori materiali saranno aggiunti in seguito, grazie per il supporto a questo sito!

Dichiarazione: il contenuto di questo articolo è stato tratto da Internet, il diritto d'autore è proprietà del rispettivo proprietario, il contenuto è stato contribuito e caricato volontariamente dagli utenti di Internet, questo sito non detiene i diritti di proprietà, non è stato elaborato manualmente e non assume responsabilità legali correlate. Se trovi contenuti sospetti di violazione del copyright, è possibile inviare una e-mail a: notice#oldtoolbag.com (al momento dell'invio dell'e-mail, sostituisci # con @) per segnalare, fornendo prove pertinenti. Una volta verificata, il sito rimuoverà immediatamente il contenuto sospetto di violazione del copyright.

Ti potrebbe interessare