Android 음성 인식 상세 및 인 스 턴 스 코드 쉽게 구현

3930 단어 Android음성 인식
Intent 를 사용 하여 음성 인식 프로그램 을 호출 합 니 다.
설명 하 다.
Android 에 서 는 주로 RecognizerIntent 를 통 해 음성 인식 을 실현 하 는데,사실 코드 는 비교적 간단 하지만 음성 인식 장 치 를 찾 지 못 하면 이상 Activity NotFoundException 을 던 지기 때문에 이 이상 을 포착 해 야 합 니 다.또한 음성 인식 은 시 뮬 레이 터 에서 테스트 할 수 없습니다.음성 인식 은 구 글 클 라 우 드 데 이 터 를 방문 하 는 것 이기 때문에 핸드폰 네트워크 가 켜 지지 않 으 면 소 리 를 식별 할 수 없습니다!반드시 핸드폰 의 네트워크 를 켜 야 합 니 다.만약 에 핸드폰 에 음성 인식 기능 이 존재 하지 않 는 다 면 식별 을 사용 할 수 없습니다!
메모:사용 하기 전에 음성 인식 프로그램 을 설치 해 야 합 니 다.예 를 들 어 에서 사용 하 는 음성 인식 기술 은 구 글 에서 나 왔 고 Intent 는 이 프로그램 을 식별 할 수 있다.
이 예 는 android 루틴 을 참고 합 니 다:
development/samples/ApiDemos/src/com/example/android/apis/app/VoiceRecognition.java
핵심 코드 및 설명

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); //     
  PackageManager pm = getPackageManager();
  List activities = pm.queryIntentActivities(new Intent(
    RecognizerIntent.ACTION_RECOGNIZE_SPEECH), 0); //       
  // new Intent(RecognizerIntent.ACTION_WEB_SEARCH), 0); //       
  
  /*
   *           ,             。
   *     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();
  }
  //         ,       Toast  
  super.onActivityResult(requestCode, resultCode, data);
 }
}

그 주요 원 리 는 음성 을 구 글 클 라 우 드 에 보 낸 다음 클 라 우 드 에서 처리 하고 해당 하 는 데이터 와 일치 하여 클 라 이언 트 에 보 내 는 것 이다.
마지막 으로 manifest 에 네트워크 접근 권한 을 추가 하 는 것 을 잊 지 마 세 요:

실행 후 효과:

이상 은 안 드 로 이 드 에 대한 음성 인식 을 실현 하 는 자료 정리 입 니 다.추 후 관련 자 료 를 계속 보충 하 겠 습 니 다.본 사이트 에 대한 여러분 의 지지 에 감 사 드 립 니 다!

좋은 웹페이지 즐겨찾기