Android(安卓)轻松实现语音识别
16lz
2022-06-26
苹果的iphone 有语音识别用的是Google 的技术,做为Google 力推的Android 自然会将其核心技术往Android 系统里面植入,并结合google 的云端技术将其发扬光大。
所以Google Voice Recognition在Android 的实现就变得极其轻松。
语音识别,借助于云端技术可以识别用户的语音输入,包括语音控制等技术,下面我们将利用Google 提供的Api 实现这一功能。
功能点为:通过用户语音将用户输入的语音识别出来,并打印在列表上。
功能界面如下:
用户通过点击speak按钮显示界面:
用户说完话后,将提交到云端搜索:
在云端搜索完成后,返回打印数据:
Android 轻松实现语音识别的完整代码
Java代码- *Copyright(C)2008TheAndroidOpenSourceProject
- *
- *LicensedundertheApacheLicense,Version2.0(the"License");
- *youmaynotusethisfileexceptincompliancewiththeLicense.
- *YoumayobtainacopyoftheLicenseat
- *
- *http://www.apache.org/licenses/LICENSE-2.0
- *
- *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);
- }
- }
更多相关文章
- Android(安卓)获取ROOT权限原理解析
- Android(安卓)实现记住用户名和密码的功能
- Android(安卓)轻松实现语音识别的完整代码
- Android(安卓)用户界面(User Interface)概要
- Android身份证件识别的OCR技术SDK
- Android技术架构演进与未来
- 《Android(安卓)Dev Guide》系列教程10:用户界面之创建菜单
- Android(安卓)4.0用户界面设计和元素-ICS简介
- Android(安卓)成用户隐私安全问题严重