Android科大讯飞语音识别源码及API下载
程序员文章站
2022-03-01 13:45:14
...
Android系统本身其实提供有语音识别模块、在它的APIDemo里也有关于语音识别的sample、但大部分的ROM都阉割掉了语音识别和语音合成TTS(Text To Speech)部分、所以运行sample的时候会有异常抛出
这时我们不得不使用第三方的语音api了、科大讯飞的语音API就非常不错、本例子是一个调用讯飞语音识别SDK的例子源码是一个最纯净的Demo比较容易看懂、实现的是点击按钮开始语音监听、手机需要联网、2/3G的均可、识别后会以Toast的方式提示出来、识别率还是比较高的、下载可以直接运行的
语音识别调用方法
VoiceToWord voice = new VoiceToWord(MainActivity.this, "534e3fe2"); voice.GetWordFromVoice();
识别回调监听器
public class MyRecognizerDialogLister implements RecognizerDialogListener{ private Context context; public MyRecognizerDialogLister(Context context) { this.context = context; } //自定义的结果回调函数,成功执行第一个方法,失败执行第二个方法 @Override public void onResult(RecognizerResult results, boolean isLast) { // TODO Auto-generated method stub String text = JsonParser.parseIatResult(results.getResultString()); System.out.println(text); Toast.makeText(context, text, Toast.LENGTH_LONG).show(); } /** * 识别回调错误. */ @Override public void onError(SpeechError error) { // TODO Auto-generated method stub int errorCoder = error.getErrorCode(); switch (errorCoder) { case 10118: System.out.println("user don´t speak anything"); break; case 10204: System.out.println("can´t connect to internet"); break; default: break; } } }
语音转文字
public VoiceToWord(Context context,String APP_ID, RecognizerDialogListener recognizerDialogListener) { this.context = context; SpeechUser.getUser().login(context, null, null , "appid=" APP_ID, listener); //初始化听写Dialog,如果只使用有UI听写功能,无需创建SpeechRecognizer iatDialog =new RecognizerDialog(context); mToast = Toast.makeText(context, "", Toast.LENGTH_LONG); //初始化听写Dialog,如果只使用有UI听写功能,无需创建SpeechRecognizer iatDialog =new RecognizerDialog(context); //初始化缓存对象. mSharedPreferences = context.getSharedPreferences(context.getPackageName(), MODE_PRIVATE); this.recognizerDialogListener = recognizerDialogListener; }
先讯飞开发者的APPID、申请一个应用就会得到一个ID、然后下载SDK,每个应用根据不同的功能会产生不同的SDK,和对应APPID匹配的,不匹配会提示用户登陆不成功、资源里面我下载了一个官方的纯sdk Demo、大家也可以运行看看、功能更加全
链接: http://dwtedx.com/download.html?bdkey=s/1mgj4DVM 密码: pwm7