Android音声認識技術の詳細及び実例コード
今日はネットで例を探して音声認識を実現しました。個人的にはとても面白いと思います。コードを貼り付けて皆さんと分かち合います。
Androidでは主にRecognizer Intentを通じて音声認識を実現していますが、コードは簡単です。設定が見つからないと、異常ActivityNotFoundExceptionを投げ出してしまうので、この異常を捉える必要があります。音声認識はシミュレータではテストできません。音声認識はgoogleのクラウドデータにアクセスするため、携帯電話のネットワークが開かれていないと、音声認識ができません。携帯電話のネットワークを必ず開いてください。携帯に音声認識機能がないと、識別ができません。
以下はRecognizer IntentActivityのコードです。
その主な原理は、音声をgoogleクラウドに送り、クラウド処理して、対応するデータに合わせてクライアントに送信することです。
最後に忘れないでください。manifestにインターネットアクセス権限を入れてください。
<uses-permission android:name=「android.permission.INTERNET」/>
運転後の効果:
音声を開始するボタンをクリックしてから話し始めます。
雲のデータを待っていますが、これは2 Gのカードですので、長い間待ちましたが、やはり載せられません。会社に帰ったら、会社のWifiで試してみます。雲のデータを取れば、Toast方式でプリントアウトします。
以上はAndroid音声認識技術の資料を整理しました。引き続き関連資料を補充します。ありがとうございます。
Androidでは主にRecognizer Intentを通じて音声認識を実現していますが、コードは簡単です。設定が見つからないと、異常ActivityNotFoundExceptionを投げ出してしまうので、この異常を捉える必要があります。音声認識はシミュレータではテストできません。音声認識はgoogleのクラウドデータにアクセスするため、携帯電話のネットワークが開かれていないと、音声認識ができません。携帯電話のネットワークを必ず開いてください。携帯に音声認識機能がないと、識別ができません。
以下はRecognizer IntentActivityのコードです。
public class RecognizerIntentActivity extends Activity {
private Button btnReconizer;
private static final int VOICE_RECOGNITION_REQUEST_CODE = 1234;
@Override
protected void onCreate(Bundle savedInstanceState) {
// TODO Auto-generated method stub
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 Auto-generated method stub
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, " ");
//
startActivityForResult(intent, VOICE_RECOGNITION_REQUEST_CODE);
}catch (Exception e) {
// TODO: handle exception
e.printStackTrace();
Toast.makeText(getApplicationContext(), " ", 1).show();
}
}
});
}
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
// TODO Auto-generated method stub
//
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);
}
}
その主な原理は、音声をgoogleクラウドに送り、クラウド処理して、対応するデータに合わせてクライアントに送信することです。
最後に忘れないでください。manifestにインターネットアクセス権限を入れてください。
<uses-permission android:name=「android.permission.INTERNET」/>
運転後の効果:
音声を開始するボタンをクリックしてから話し始めます。
雲のデータを待っていますが、これは2 Gのカードですので、長い間待ちましたが、やはり載せられません。会社に帰ったら、会社のWifiで試してみます。雲のデータを取れば、Toast方式でプリントアウトします。
以上はAndroid音声認識技術の資料を整理しました。引き続き関連資料を補充します。ありがとうございます。