Android SpeechRecognizer语音识别
来源:互联网 发布:万人迷网络电话软件 编辑:程序博客网 时间:2024/04/30 02:39
在Cupcake中,Android引入了对语音识别的支持。语音识别主要位于android.speech包中,主要的类包括SpeechRecognizer、RecognitionService、RecognizerIntent、RecognizerResultsIntent、RecognitionListener等类和接口。
SpeechRecognizer提供了接入语音识别服务的接口,下面是SpeechRecognizer的常用方法:
createSpeechRecognizer() //创建语音识别器
setRecognitionListener() //设置监听器
startListening() //开始语音识别
stopListening() //结束语音识别
语音识别要求"android.permission.RECORD_AUDIO"权限。
为了进行语音识别,首先需要发布一个语音识别的Activity,然后系统会启动语音识别引擎,并对用户的语音进行处理,处理的结果将会通过onActivityResult()方法被返回。下面是Android中的一个实现:
发起语音识别
private void startVoiceRecognitionActivity()
{
//语音识别的Action
Intent intent=new Intent(RecognizerIntent.ACTION_RECOGNIZE_SPEECH);
//设置附加信息
intent.putExtra(RecognizerIntent.EXTRA_LANGUAGE_MODEL,
RecognizerIntent.LANGUAGE_MODEL_FREE_FORM);
intent.putExtra(RecognizerIntent.EXTRA_PROMPT, "Speech recognition demo");
startActivityForResult(intent, VOICE_RECOGNITION_REQUEST_CODE);
}
对语音识别结果的处理如下:
protected void onActivityResult(int requestCode, int resultCode, Intent data)
{
if (requestCode==VOICE_RECOGNITION_REQUEST_CODE && resultCode==RESULT_OK)
{
ArrayList< String> matches=data.getStringArrayListExtra(RecognizerIntent.EXTRA_RESULTS);
mList.setAdapter(new ArrayAdapter< String>(this,android.R.layout.simple_list_item_1,matches));
}
super.onActivityResult(requestCode, resultCode, data);
}
在目前的实现中,Android支持两种类型的Action:ACTION_RECOGNIZE_SPEECH和ACTION_WEB_SEARCH。考虑到可能没有处理对应的Action的应用,在代码的实现中需要捕获ActivityNotFoundException异常。
Action为ACTION_RECOGNIZE_SPEECH时,请求语音识别的附加信息为EXTRA_LANGUAGE_MODEL,可选附加信息为EXTRA_PROMPT、EXTRA_LANGUAGE、EXTRA_MAX_RESULTS、EXTRA_RESULTS_PENDINGINTENT、EXTRA_RESULTS_ PENDINGINTENT_BUNDLE,结果附加信息为EXTRA_RESULTS。
Action为ACTION_WEB_SEARCH时,请求语音识别的附加信息为EXTRA_ LANGUAGE_MODEL,可选附加信息为EXTRA_PROMPT、EXTRA_LANGUAGE、EXTRA_MAX_RESULTS,结果附加信息为EXTRA_RESULTS。
- Android SpeechRecognizer语音识别
- android 语音识别接口
- android语音识别简介
- Android语音识别
- android语音识别代码
- android 本地语音识别
- android 语音识别
- android 语音识别
- Android-语音识别
- Android 语音识别
- Android 实现语音识别
- android 语音识别
- android语音识别demo
- android 语音识别
- android语音识别技术
- Android实现语音识别
- Android语音识别
- Android语音识别
- GNU C语言的 扩展(四)数组索引初始化&case标号连续范围
- struts 2标签之s:if 、s:iterator注意的问题
- 第一课课后作业------列表
- Ubuntu中文输入法的安装
- 我的词典:即粘即用一
- Android SpeechRecognizer语音识别
- [Leetcode] Combination Sum
- hadoop2.0yarn框架简介
- LeetCode 题解(49): Jump Game II
- 盒子模型
- Unity使用杂记
- C# WinForm窗体任意位置点击事件
- log4j使用方法及实例
- 朴素的UNIX之-进程/线程模型