语音识别主要的功能就是在用户不方便输入的时候找一个替代输入的选择。
1.本地语音识别
下面的代码首先创建SpeechRecognizer对象,并设置回调函数监听器。当在点击监听器中调用doSpeechRecognition()方法时,会使用语言参数和一个指示要在处理过程中分发部分结果的标志参数初始化语音识别。
public classMainActivity extendsActivity implementsView.OnClickListener{
privateButton speechBut;privateTextView result;privateSpeechRecognizer mSpeechRecognizer;@Overridepublic voidonClick(View v) {
switch(v.getId()){
caseR.id.speechBut:
doSpeechRecognition(v);break;}
}
@Overrideprotected voidonCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);setContentView(R.layout.activity_main);this.speechBut=(Button)findViewById(R.id.speechBut);this.speechBut.setOnClickListener(this);this.result=(TextView)findViewById(R.id.result);this.mSpeechRecognizer=SpeechRecognizer.createSpeechRecognizer(this);this.mSpeechRecognizer.setRecognitionListener(newMyRecognitionListener());}
public voiddoSpeechRecognition(View view){
view.setEnabled(false);Intent recognitionIntent=newIntent(RecognizerIntent.ACTION_RECOGNIZE_SPEECH);recognitionIntent.putExtra(RecognizerIntent.EXTRA_PARTIAL_RESULTS,true);recognitionIntent.putExtra(RecognizerIntent.EXTRA_LANGUAGE,"zh-CN");this.mSpeechRecognizer.startListening(recognitionIntent);}
private classMyRecognitionListener implementsRecognitionListener{
@Overridepublic voidonReadyForSpeech(Bundle params) {
}
@Overridepublic voidonBeginningOfSpeech() {
Log.i("llllllllllllllllllll","onBeginningOfSpeech");result.setText("");}
@Overridepublic voidonRmsChanged(floatrmsdB) {
}
@Overridepublic voidonBufferReceived(byte[] buffer) {
}
@O