最近要在应用里面使用语音识别功能,老板选择了科大讯飞的技术,小可也就开始看文档啦;
这里只嵌入了语音识别,其他的语法什么的没有研究,有需要的各位看文档呗;
需要的资料 :只识别数字,若不过滤则把LSpeechManager中的onResult方法中的LDataFormat过滤去掉即可
1,首先要在科大讯飞开放平台注册开发者,并注册应用,然后下载SDK;
http://open.voicecloud.cn/index.php/default/index
2,语音识别需要的文件:
(1)Msc.jar
(2)libmsc.so
3,需要的权限 :
<!-- 网络权限 -->
<uses-permission android:name="android.permission.INTERNET" />
<!-- 获取手机录音机使用权限,听写、识别、语义理解需要用到此权限 -->
<uses-permission android:name="android.permission.RECORD_AUDIO" />
<!-- 网络状态的监控权限 -->
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
<uses-permission android:name="android.permission.ACCESS_WIFI_STATE" />
<uses-permission android:name="android.permission.CHANGE_NETWORK_STATE" />
<!-- 手机状态的监听权限 -->
<uses-permission android:name="android.permission.READ_PHONE_STATE" />
4,需要自己的Application,并在其中初始化语音识别
public class Lapp extends Application {
@Override
public void onCreate() {
// 应用程序入口处调用,避免手机内存过小,杀死后台进程,造成SpeechUtility对象为null
// 设置你申请的应用appid
SpeechUtility.createUtility(Lapp.this, "appid=5486584a");
super.onCreate();
}
}
5,语音识别 (使用该类可以直接调用start()方法进行语音听写识别)
/**
* 语音识别管理类
*
* @author li'mingqi
*
*/
public class LSpeechManager {
private Context mContext;
// 语音听写
private SpeechRecognizer mIat;
// handler
private Handler mHandler;
// 识别结果
private LSpeechResultListener resultListener;
// 识别成功
public static final int SPEECH_SUCCESS = 0;
// 识别失败
public static final int SPEECH_FAIL = -1;
// 开始识别
public static final int SPEECH_START = 1;
// 识别出错
public static final int SPEECH_ERROR = 2;
/**
*
*/
@SuppressLint("HandlerLeak")
public LSpeechManager(Context context) {
this.mContext = context;
// 语音听写部分
// 创建SpeechRecognizer对象
mIat = SpeechRecognizer.createRecognizer(