轻松实现Android语音识别功能
苹果的iphone有语音识别用的是Google的技术,做为Google力推的Android自然会将其核心技术往Android系统里面植入,并结合google的云端技术将其发扬光大。
所以GoogleVoiceRecognition在Android的实现就变得极其轻松。
语音识别,借助于云端技术可以识别用户的语音输入,包括语音控制等技术,下面我们将利用Google提供的Api实现这一功能。
功能点为:通过用户语音将用户输入的语音识别出来,并打印在列表上。
*Copyright(C)2008TheAndroidOpenSourceProject * *LicensedundertheApacheLicense,Version2.0(the"License"); *youmaynotusethisfileexceptincompliancewiththeLicense. *YoumayobtainacopyoftheLicenseat * *<ahref="http://www.apache.org/licenses/LICENSE-2.0"rel="nofollow"target="_blank">http://www.apache.org/licenses/LICENSE-2.0</a> * *Unlessrequiredbyapplicablelaworagreedtoinwriting,software *distributedundertheLicenseisdistributedonan"ASIS"BASIS, *WITHOUTWARRANTIESORCONDITIONSOFANYKIND,eitherexpressorimplied. *SeetheLicenseforthespecificlanguagegoverningpermissionsand *limitationsundertheLicense. */ packagecom.example.android.apis.app; importcom.example.android.apis.R; importandroid.app.Activity; importandroid.content.Intent; importandroid.content.pm.PackageManager; importandroid.content.pm.ResolveInfo; importandroid.os.Bundle; importandroid.speech.RecognizerIntent; importandroid.view.View; importandroid.view.View.OnClickListener; importandroid.widget.ArrayAdapter; importandroid.widget.Button; importandroid.widget.ListView; importjava.util.ArrayList; importjava.util.List; /** *SamplecodethatinvokesthespeechrecognitionintentAPI. */ publicclassVoiceRecognitionextendsActivityimplementsOnClickListener{ privatestaticfinalintVOICE_RECOGNITION_REQUEST_CODE=1234; privateListViewmList; /** *Calledwiththeactivityisfirstcreated. */ @Override publicvoidonCreate(BundlesavedInstanceState){ super.onCreate(savedInstanceState); //InflateourUIfromitsXMLlayoutdescription. setContentView(R.layout.voice_recognition); //Getdisplayitemsforlaterinteraction ButtonspeakButton=(Button)findViewById(R.id.btn_speak); mList=(ListView)findViewById(R.id.list); //Checktoseeifarecognitionactivityispresent PackageManagerpm=getPackageManager(); Listactivities=pm.queryIntentActivities( newIntent(RecognizerIntent.ACTION_RECOGNIZE_SPEECH),0); if(activities.size()!=0){ speakButton.setOnClickListener(this); }else{ speakButton.setEnabled(false); speakButton.setText("Recognizernotpresent"); } } /** *Handletheclickonthestartrecognitionbutton. */ publicvoidonClick(Viewv){ if(v.getId()==R.id.btn_speak){ startVoiceRecognitionActivity(); } } /** *Fireanintenttostartthespeechrecognitionactivity. */ privatevoidstartVoiceRecognitionActivity(){ Intentintent=newIntent(RecognizerIntent.ACTION_RECOGNIZE_SPEECH); intent.putExtra(RecognizerIntent.EXTRA_LANGUAGE_MODEL, RecognizerIntent.LANGUAGE_MODEL_FREE_FORM); intent.putExtra(RecognizerIntent.EXTRA_PROMPT,"Speechrecognitiondemo"); startActivityForResult(intent,VOICE_RECOGNITION_REQUEST_CODE); } /** *Handletheresultsfromtherecognitionactivity. */ @Override protectedvoidonActivityResult(intrequestCode,intresultCode,Intentdata){ if(requestCode==VOICE_RECOGNITION_REQUEST_CODE&&resultCode==RESULT_OK){ //Fillthelistviewwiththestringstherecognizerthoughtitcouldhaveheard ArrayListmatches=data.getStringArrayListExtra( RecognizerIntent.EXTRA_RESULTS); mList.setAdapter(newArrayAdapter(this,android.R.layout.simple_list_item_1, matches)); } super.onActivityResult(requestCode,resultCode,data); } }
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持毛票票。