Android 음성 인식 상세 및 인 스 턴 스 코드 쉽게 구현
설명 하 다.
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 에 네트워크 접근 권한 을 추가 하 는 것 을 잊 지 마 세 요:
실행 후 효과:
이상 은 안 드 로 이 드 에 대한 음성 인식 을 실현 하 는 자료 정리 입 니 다.추 후 관련 자 료 를 계속 보충 하 겠 습 니 다.본 사이트 에 대한 여러분 의 지지 에 감 사 드 립 니 다!
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
Bitrise에서 배포 어플리케이션 설정 테스트하기이 글은 Bitrise 광고 달력의 23일째 글입니다. 자체 또는 당사 등에서 Bitrise 구축 서비스를 사용합니다. 그나저나 며칠 전 Bitrise User Group Meetup #3에서 아래 슬라이드를 발표했...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.