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

Dettagli di implementazione della tecnologia di riconoscimento vocale su Android con esempi di codice

   今天在网上找到一个实现语音识别的例子,个人感觉很有趣,所以就把代码贴出来和大家分享:

         在Android中,主要通过RecognizerIntent实现语音识别,实际上代码很简单,但如果找不到设置,就会抛出异常ActivityNotFoundException,因此我们需要捕获这个异常。此外,由于语音识别需要访问Google云端数据,因此在模拟器上无法测试。如果手机的网络没有开启,就无法实现声音识别!务必开启手机的网络,如果手机没有语音识别功能,也无法启用识别!

        以下是RecognizerIntentActivity中的代码:

public class RecognizerIntentActivity extends Activity { 
  private Button btnReconizer; 
  private static final int VOICE_RECOGNITION_REQUEST_CODE = 1234; 
  @Override 
  protected void onCreate(Bundle savedInstanceState) { 
    // TODO 自动生成的方法存根 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.reconizer); 
    btnReconizer=(Button) this.findViewById(R.id.btnRecognizer);}} 
    btnReconizer.setOnClickListener(new OnClickListener() { 
      @Override 
      public void onClick(View v) { 
        // TODO 自动生成的方法存根 
        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, "Inizia la voce"); 
        //开始语音识别 
        startActivityForResult(intent, VOICE_RECOGNITION_REQUEST_CODE); 
        }catch (Exception e) { 
          // TODO: 处理异常 
          e.printStackTrace(); 
          Toast.makeText(getApplicationContext(), "Non trovato dispositivo audio", 1).show(); 
        } 
      } 
    }); 
  } 
  @Override 
  protected void onActivityResult(int requestCode, int resultCode, Intent data) { 
    // TODO 自动生成的方法存根 
    //回调获取从谷歌得到的数据  
    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); 
  } 
} 

      

        Il suo principio principale è inviare la voce al cloud di Google, poi il cloud elabora, abbinando i dati corrispondenti, inviandoli al client.
          Non dimenticare di aggiungere i permessi di accesso alla rete nel file manifest:

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

        Effetto dopo l'esecuzione:

    

    Clicca sul pulsante Inizia riconoscimento vocale e inizia a parlare (devi assicurarti che il telefono sia connesso a Internet):

    

      In attesa dei dati cloud, poiché questo è un SIM card 2G, ho dovuto aspettare a lungo prima che si caricasse, tornerò in ufficio e proverò a connettermi alla rete Wi-Fi dell'ufficio. Se ottengo i dati cloud, li stampo tramite il metodo Toast.

Ecco la raccolta di materiali relativi alla tecnologia di riconoscimento vocale Android, continueremo a integrare ulteriori materiali, grazie per il supporto della nostra community!

Dichiarazione: il contenuto di questo articolo è stato tratto da Internet, il copyright spetta agli autori, il contenuto è stato contribuito e caricato autonomamente dagli utenti di Internet, questo sito non detiene i diritti di proprietà, non è stato editato manualmente e non assume responsabilità legali correlate. Se trovi contenuti sospetti di violazione del copyright, ti preghiamo di 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, questo sito rimuoverà immediatamente il contenuto sospetto di violazione del copyright.

Ti potrebbe interessare