语音识别主要的功能就是在用户不方便输入的时候找一个替代输入的选择。
1.本地语音识别
下面的代码首先创建SpeechRecognizer对象,并设置回调函数监听器。当在点击监听器中调用doSpeechRecognition()方法时,会使用语言参数和一个指示要在处理过程中分发部分结果的标志参数初始化语音识别。
public class MainActivity extends Activity implements View.OnClickListener{ private Button speechBut; private TextView result; private SpeechRecognizer mSpeechRecognizer; @Override public void onClick(View v) { switch (v.getId()){ case R.id.speechBut: doSpeechRecognition(v); break; } } @Override protected void onCreate(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(new MyRecognitionListener()); } public void doSpeechRecognition(View view){ view.setEnabled(false); Intent recognitionIntent=new Intent(RecognizerIntent.ACTION_RECOGNIZE_SPEECH); recognitionIntent.putExtra(RecognizerIntent.EXTRA_PARTIAL_RESULTS,true); recognitionIntent.putExtra(RecognizerIntent.EXTRA_LANGUAGE,"zh-CN"); this.mSpeechRecognizer.startListening(recognitionIntent); } private class MyRecognitionListener implements RecognitionListener{ @Override public void onReadyForSpeech(Bundle params) { } @Override public void onBeginningOfSpeech() { Log.i("llllllllllllllllllll","onBeginningOfSpeech"); result.setText(""); } @Override public void onRmsChanged(float rmsdB) { } @Override public void onBufferReceived(byte[] buffer) { } @Override public void onEndOfSpeech() { Log.i("llllllllllllllllllll","onEndOfSpeech"); speechBut.setEnabled(true); } @Override public void