在一些应用中,能够进行语音识别是非常重要的功能。Android系统原生实现了语音识别,利用谷歌提供的服务,可以将用户的语音装换为文本。
在Android中访问语音识别服务已经被包装为简单的Intent,通过发送定制的Intent,就可以调用语音识别服务。
检查是否包含语音识别服务
因为Android系统是开源的,原生的语音识别服务有可能被手机厂商精简掉。所以在使用前应该检查服务是是否可用。利用Android的API就可以完成检查任务。如下面的代码:
1 | PackageManager pm = getPackageManager(); |
代码中,我们主要是通过 queryIntentActivities 函数进行检查,如果返回数组的长度大于零,则标识语音识别功能可用。
启动语音识别服务
通过构造一个特定的 Intent, 就可以调用语音识别服务,代码如下:
1 | Intent intent = new Intent(RecognizerIntent.ACTION_RECOGNIZE_SPEECH); |
注意,在代码中我们使用了 startActivityForResult 方法,所以我们需要在本Activity的返回结果代码中去获取识别的文本。
获取语音识别结果
代码如下:
1 |
|