最近Boss让我开发一个离线语音听写功能 , 可是我发现科大讯飞的离线版本下架了 , 也看了很多地方如百度语音.......
都没发现有离线版本 , 然而今天突然发现科大讯飞的离线听写又上架了 这就让我很开心 . 我就立马把它下载了下来,集成到我的项目中去 . 然后经过一个小时的努力 , 我把它简单的封装了一下 , 然后很方便的就可以到处调用了 !
下面我就把我的那个类发上来你们可以直接拷过去用 . 具体有哪些不懂 , 里面传的东西不清楚可以在下方留言 , 我会给你们讲解.
emmmm~很久没发博客了 , 现在给大家带来些福利 .
下面就是这个类:
public class LatYuYin {
private static String TAG = "IatDemo";
// 语音听写对象
private SpeechRecognizer mIat;
// 语音听写UI
private RecognizerDialog mIatDialog;
// 用HashMap存储听写结果
private HashMap<String, String> mIatResults = new LinkedHashMap<String, String>();
private Toast mToast;
private Context mContext;
private SharedPreferences mSharedPreferences;
private boolean mTranslateEnable = false;
private EditText mEditText;
public LatYuYin(Context context) {
mContext = context;
// 初始化识别无UI识别对象
// 使用SpeechRecognizer对象,可根据回调消息自定义界面;
mIat = SpeechRecognizer.createRecognizer(mContext, mInitListener);
// 初始化听写Dialog,如果只使用有UI听写功能,无需创建SpeechRecognizer
// 使用UI听写功能,请根据sdk文件目录下的notice.txt,放置布局文件和图片资源
mIatDialog = new RecognizerDialog(mContext, mInitListener);
mToast = Toast.makeText(context, "", Toast.LENGTH_SHORT);
mSharedPreferences = mContext.getSharedPreferences(IatSettings.PREFER_NAME, Activity.MODE_PRIVATE);
}
public void cancelmLat() {
mIat.cancel();
showTip("取消听写");
}
public void stopmLat() {
mIat.stopListening();
showTip("停止听写");
}
int ret = 0;// 函数调用返回值
//开始听写
public void startmLat(View view) {
mEditText = (EditText) view.findViewById(R.id.activity_chat_et_text);
mEditText.setText(null);
mIatResults.clear();
// 设置参数
setParam();
boolean isShowDialog = mSharedPreferences.getBoolean(mContext.getString(R.string.pref_key_iat_show), true);
if (isShowDial