欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  技术分享

Android科大讯飞语音识别源码及API下载

程序员文章站 2022-03-01 13:45:14
...

Android系统本身其实提供有语音识别模块、在它的APIDemo里也有关于语音识别的sample、但大部分的ROM都阉割掉了语音识别和语音合成TTS(Text To Speech)部分、所以运行sample的时候会有异常抛出

这时我们不得不使用第三方的语音api了、科大讯飞的语音API就非常不错、本例子是一个调用讯飞语音识别SDK的例子源码是一个最纯净的Demo比较容易看懂、实现的是点击按钮开始语音监听、手机需要联网、2/3G的均可、识别后会以Toast的方式提示出来、识别率还是比较高的、下载可以直接运行的


Android科大讯飞语音识别源码及API下载


语音识别调用方法

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