900字范文,内容丰富有趣,生活中的好帮手!
900字范文 > 安卓调用科大讯飞语音

安卓调用科大讯飞语音

时间:2022-11-30 03:24:28

相关推荐

安卓调用科大讯飞语音

一.官网下载SDK

/

1.1项目创建

APPID是项目调用SDK会用到的

1.2SDK下载

二.代码调用

2.1在Application中初始化SDK

/*** @author Longchengbin* @description 初始化讯飞语音* @since -10-22 11:42**/private void initXFYY() {// 应用程序入口处调用,避免手机内存过小,杀死后台进程后通过历史intent进入Activity造成SpeechUtility对象为null// 注意:此接口在非主进程调用会返回null对象,如需在非主进程使用语音功能,请增加参数:SpeechConstant.FORCE_LOGIN+"=true"// 参数间使用“,”分隔;设置你申请的应用appid,注意: appid 必须和下载的SDK保持一致,否则会出现10407错误StringBuffer param = new StringBuffer();param.append("appid="+getString(R.string.app_id));param.append(",");// 设置使用v5+param.append(SpeechConstant.ENGINE_MODE+"="+SpeechConstant.MODE_MSC);SpeechUtility.createUtility(TvApp.this, param.toString());}

2.2代码中调用语音播报

/*+++++++++++++++++++++++++++ 语音播报 +++++++++++++++++++++++++++ *//*** @author Longchengbin* @description 播报的车牌号* @since -11-3 10:48**/private void play(String num) {setParam();String string = getString(R.string.pay, num, num);mTts.startSpeaking(string, mTtsListener);}/*** @author Longchengbin* @description 初始化语音播报的参数* @since -10-22 13:56**/private void setParam() {// 清空参数mTts.setParameter(SpeechConstant.PARAMS, null);//设置使用本地引擎mTts.setParameter(SpeechConstant.ENGINE_TYPE, SpeechConstant.TYPE_LOCAL);//设置发音人资源路径mTts.setParameter(ResourceUtil.TTS_RES_PATH, getResourcePath());//设置发音人mTts.setParameter(SpeechConstant.VOICE_NAME, "xiaofeng");//设置合成语速 在线0~100本地0~200mTts.setParameter(SpeechConstant.SPEED, "33");//设置合成音调 范围 0~100mTts.setParameter(SpeechConstant.PITCH, "99");//设置合成音量 范围 0~100mTts.setParameter(SpeechConstant.VOLUME, "99");//设置播放器音频流类型0通话1系统2铃声3音乐4闹铃5通知mTts.setParameter(SpeechConstant.STREAM_TYPE, "3");// 设置播放合成音频打断音乐播放,默认为truemTts.setParameter(SpeechConstant.KEY_REQUEST_FOCUS, "true");// 设置音频保存路径,保存音频格式支持pcm、wav,设置路径为sd卡请注意WRITE_EXTERNAL_STORAGE权限mTts.setParameter(SpeechConstant.AUDIO_FORMAT, "wav");mTts.setParameter(SpeechConstant.TTS_AUDIO_PATH,Environment.getExternalStorageDirectory() + "/msc/tts.wav");}/*** @author Longchengbin* @description 获取发音人本地资源* @since -10-22 13:57**/private String getResourcePath() {StringBuffer tempBuffer = new StringBuffer();String type = "tts";//合成通用资源tempBuffer.append(ResourceUtil.generateResourcePath(this,ResourceUtil.RESOURCE_TYPE.assets, type + "/common.jet"));tempBuffer.append(";");//发音人资源tempBuffer.append(ResourceUtil.generateResourcePath(this,ResourceUtil.RESOURCE_TYPE.assets, type + "/xiaofeng.jet"));return tempBuffer.toString();}/*** 初始化监听*/private InitListener mTtsInitListener = new InitListener() {@Overridepublic void onInit(int code) {if (code != ErrorCode.SUCCESS) {Log.e("lcb", "语音合成失败,错误码: " + code + ",请点击网址/document/error-code查询解决方案");}}};/*** 合成回调监听。*/private SynthesizerListener mTtsListener = new SynthesizerListener() {@Overridepublic void onSpeakBegin() {// Log.e("lcb", "开始播放:" + System.currentTimeMillis());}@Overridepublic void onSpeakPaused() {Log.e("lcb", "暂停播放");}@Overridepublic void onSpeakResumed() {Log.e("lcb", "继续播放");}@Overridepublic void onBufferProgress(int percent, int beginPos, int endPos, String info) {}@Overridepublic void onSpeakProgress(int percent, int beginPos, int endPos) {// 播放进度}@Overridepublic void onCompleted(SpeechError error) {if (error == null) {Log.e("lcb", "播放完成");} else {Log.e("lcb", error.getPlainDescription(true));}}@Overridepublic void onEvent(int eventType, int arg1, int arg2, Bundle obj) {}};

2.3资源调用

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。