1. 登录并注册讯飞的开发者账号然后下载相关的sdk。
2. 在选择完并下载完后那么就是先跑起来demo如果demo都跑不起来还接什么呀(回家洗洗睡吧!)在这里有几点要注意
1.在下载完后有两种打开方式第二种就不说了引入到已有的或者新建的项目中,我要说一下第一种
在按照讯飞的接入提示后到这一步
注意在这里的这些文件都是放在build.gradle里的(感觉有点废话就这一个不放这放哪)但是在这里边是应该放在哪里找不到地方啊,这个其实就直接放在最下边找个空白的地方放那就可以了(我当时还傻乎乎的在找往哪里放)
好了此时demo就可以跑起来了。
3. 现在可以看效果然后照猫画虎的搬东西了
我这里是只用到了一个听写所以就说一下这个怎么整其他的大致都一样。
首先我们需要将下载的sdk文件中的东西复制过来!
注意这里的so库要和你下载的demo里的保持一致不然会报错,官网里也有说
其中这个图中的iat为离线的本地资源包
代码这里我是用的云端的没有用本地的所以我就把iat中的文件删除了(这个文件占用的体积感觉很多)
这里自己可以直接选择是用自己的弹框还是讯飞的,接着还是按照着复制就可以了;到这一步
这一步是监听听写的过程从开始到结束最终可以在onresult方法中做结果处理。
这个弹框的监听器是如果你上边选择讯飞的弹框会调用到这个方法
设置参数方法
/**
* 参数设置
* @return
*/
fun setParam() { // 清空参数
mIat!!.setParameter(SpeechConstant.PARAMS, null)
val lag: String = "mandarin"
// 设置引擎 mEngineType这个其实就是你选择是本地还是云端的引擎demo里可以看
//到(这个也是可以根据网络判断)
mIat!!.setParameter(SpeechConstant.ENGINE_TYPE, mEngineType)
// 设置返回结果格式
mIat!!.setParameter(SpeechConstant.RESULT_TYPE, "json")
// 设置本地识别资源 如果选择了离线可以设置本地资源(可以根据网络判断)
// mIat!!.setParameter(ResourceUtil.ASR_RES_PATH, getResourcePath())
// 在线听写支持多种小语种,若想了解请下载在线听写能力,参看其speechDemo
if (lag == "en_us") { // 设置语言
mIat!!.setParameter(SpeechConstant.LANGUAGE, "en_us")
mIat!!.setParameter(SpeechConstant.ACCENT, null)
// 设置语言
mIat!!.setParameter(SpeechConstant.LANGUAGE, "zh_cn")
// 设置语言区域
mIat!!.setParameter(SpeechConstant.ACCENT, lag)
}
// 设置语音前端点:静音超时时间,即用户多长时间不说话则当做超时处理
mIat!!.setParameter(
SpeechConstant.VAD_BOS,
"4000"
)
// 设置语音后端点:后端点静音检测时间,即用户停止说话多长时间内即认为不再输入, 自动停止录音
mIat!!.setParameter(SpeechConstant.VAD_EOS,"1000")
// 设置标点符号,设置为"0"返回结果无标点,设置为"1"返回结果有标点
mIat!!.setParameter(SpeechConstant.ASR_PTT,"1")
// 设置音频保存路径,保存音频格式支持pcm、wav,设置路径为sd卡请注意 //WRITE_EXTERNAL_STORAGE权限 (好像也可以选择不保存,我没试过)
mIat!!.setParameter(SpeechConstant.AUDIO_FORMAT, "wav")
mIat!!.setParameter(
SpeechConstant.ASR_AUDIO_PATH,
Environment.getExternalStorageDirectory().toString() + "/msc/iat.wav"
)
}
这个也是标题很明确就是离线了获取本地资源iat里的两个文件数据
记得要加上权限
到这一步基本上就算是完成了,来看下效果