Androidは簡単に音声認識の詳細と実例コードを実現します。
Intentを使って音声認識プログラムを呼び出す
説明
Androidでは主にRecognizer Intentを通じて音声認識を実現していますが、コードは比較的簡単です。しかし音声認識装置が見つからないと、異常ActivityNotFoundExceptionを投げますので、この異常を捉える必要があります。音声認識はシミュレータではテストできません。音声認識はgoogleのクラウドデータにアクセスするため、携帯電話のネットワークが開かれていないと、音声認識ができません。携帯電話のネットワークを必ず開いてください。携帯に音声認識機能がないと、識別ができません。
注意:使用前に音声認識プログラムをインストールする必要があります。「音声検索」のように、その音声認識技術はGoogleから来ており、Intentはこのプログラムを認識することができる。
この例はandroidからのルーチンを参照します。
development/samples/Apple/src/com/example/android/apps/Voice Recognitions.java
コアコードと説明
最後に忘れないでください。manifestにインターネットアクセス権限を入れてください。
<uses-permission android:name=「android.permission.INTERNET」/>
運転後の効果:
以上はAndroidに対して音声認識の資料の整理を実現して、引き続き関連資料を補充して、ありがとうございます。
説明
Androidでは主にRecognizer Intentを通じて音声認識を実現していますが、コードは比較的簡単です。しかし音声認識装置が見つからないと、異常ActivityNotFoundExceptionを投げますので、この異常を捉える必要があります。音声認識はシミュレータではテストできません。音声認識はgoogleのクラウドデータにアクセスするため、携帯電話のネットワークが開かれていないと、音声認識ができません。携帯電話のネットワークを必ず開いてください。携帯に音声認識機能がないと、識別ができません。
注意:使用前に音声認識プログラムをインストールする必要があります。「音声検索」のように、その音声認識技術はGoogleから来ており、Intentはこのプログラムを認識することができる。
この例はandroidからのルーチンを参照します。
development/samples/Apple/src/com/example/android/apps/Voice Recognitions.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);
}
}
その主な原理は、音声をgoogleクラウドに送り、クラウド処理して、対応するデータに合わせてクライアントに送信することです。最後に忘れないでください。manifestにインターネットアクセス権限を入れてください。
<uses-permission android:name=「android.permission.INTERNET」/>
運転後の効果:
以上はAndroidに対して音声認識の資料の整理を実現して、引き続き関連資料を補充して、ありがとうございます。