Unity 接入讯飞离线SDK , 有一些坑记录一下。

在开发者平台注册之后,申请应用,下载SDK包。这个sdk包和你的appid是对应的,不能使用别人的sdk包,然后用自己的appid

这是SDK文件夹,sample是一个示例工程,将libs文件中jar文件放入AndroidStudio中的libs中

新建jni文件夹,然后放入对应so文件

文件夹中assets文件放入AndroidStudio assets文件,res中的iat文件也放进去

代码部分简单讲一下:

 SpeechUtility.createUtility(context,SpeechConstant.APPID + "=" + id);SpeechRecognizer mIat = SpeechRecognizer.createRecognizer(context, mInitListener);

这是初始化识别,mInitListener是初始化回调,主要方便问题调试。

 public void setParam(){// 清空参数mIat.setParameter(SpeechConstant.PARAMS, null);String lag = "mandarin";// 设置引擎mIat.setParameter(SpeechConstant.ENGINE_TYPE, mEngineType);// 设置返回结果格式mIat.setParameter(SpeechConstant.RESULT_TYPE, "json");mIat.setParameter(ResourceUtil.ASR_RES_PATH, getResourcePath());//设置语言,目前离线听写仅支持中文if (lag.equals("en_us")) {// 设置语言mIat.setParameter(SpeechConstant.LANGUAGE, "en_us");mIat.setParameter(SpeechConstant.ACCENT, null);}else {// 设置语言mIat.setParameter(SpeechConstant.LANGUAGE, "zh_cn");// 设置语言区域mIat.setParameter(SpeechConstant.ACCENT,lag);}// 设置语音前端点:静音超时时间,即用户多长时间不说话则当做超时处理mIat.setParameter(SpeechConstant.VAD_BOS, "4000");// 设置语音后端点:后端点静音检测时间,即用户停止说话多长时间内即认为不再输入, 自动停止录音mIat.setParameter(SpeechConstant.VAD_EOS, "2000");// 设置标点符号,设置为"0"返回结果无标点,设置为"1"返回结果有标点mIat.setParameter(SpeechConstant.ASR_PTT, "0");mIat.setParameter(SpeechConstant.AUDIO_SOURCE, "-1");// 设置音频保存路径,保存音频格式支持pcm、wav,设置路径为sd卡请注意WRITE_EXTERNAL_STORAGE权限//   mIat.setParameter(SpeechConstant.AUDIO_FORMAT,"wav");//     mIat.setParameter(SpeechConstant.ASR_AUDIO_PATH, Environment.getExternalStorageDirectory()+"/msc/iat.wav");}private String getResourcePath(){StringBuffer tempBuffer = new StringBuffer();//识别通用资源tempBuffer.append(ResourceUtil.generateResourcePath(context, ResourceUtil.RESOURCE_TYPE.assets, "iat/common.jet"));tempBuffer.append(";");tempBuffer.append(ResourceUtil.generateResourcePath(context, ResourceUtil.RESOURCE_TYPE.assets, "iat/sms_16k.jet"));//识别8k资源-使用8k的时候请解开注释return tempBuffer.toString();}

这是设置识别的对应参数,讯飞文档里面有详细介绍的 , 还有一个函数是获取离线资源路径

 public  void Recognize(byte[] data){mIat.startListening(mRecognizerListener);mIat.writeAudio(data, 0, data.length);mIat.stopListening();}private RecognizerListener mRecognizerListener = new RecognizerListener() {@Overridepublic void onBeginOfSpeech() {callback.Start();}@Overridepublic void onError(SpeechError error) {}@Overridepublic void onEndOfSpeech() {}@Overridepublic void onResult(RecognizerResult results, boolean isLast) {String text = JsonParser.parseIatResult(results.getResultString());if(isLast) {callback.RecognizeSuccess(text);}}@Overridepublic void onVolumeChanged(int volume, byte[] data) {}@Overridepublic void onEvent(int eventType, int arg1, int arg2, Bundle obj) {}};

这是识别函数,传入Unity中声音的byte[] ,然后下面是一个回调函数。

Unity 中AudioClip转byte[]可以参考我之前的文章这里

AndroidStudio要导出aar包,然后放入Unity中,这部分之前也有写

Unity 接讯飞离线语音识别相关推荐

  1. Android 讯飞离线语音听写/离线语音识别SDK

    平台 Android + 讯飞离线语音SDK SDK包 下载路径及方法见讯飞官方SDK文档: 离线语音听写 Android SDK 文档 # 在开发者控制台, 可以直接下载SDK. SDK包中的文件结 ...

  2. Unity与讯飞的aiui交互

    前言最近项目是做机器人,机器人最大的(普通的)AI功能就是语音交流,所以AIUI就是一个很好的选择.AIUI是封装了,讯飞的语音合成.语音识别等功能,重点是它有个兜底功能选择,还有技能工作室的加持,虽 ...

  3. 讯飞离线语音命令词识别

    讯飞离线语音命令词识别 强烈推荐 分享一个大神的人工智能教程.零基础!通俗易懂!风趣幽默!希望你也加入到人工智能的队伍中来! 网址:http://www.captainbed.net/yancyang ...

  4. “讯飞语音+”语音识别开放功能使用方法介绍

    1"讯飞语音+"功能介绍 "讯飞语音+"主要提供的语音服务包括语音合成.语音识别.语义理解和语音搜索. 语音合成 讯飞语音+提供的语音合成服务包括在线语音合成与 ...

  5. UNITY 接讯飞语音过程总结

    UNITY 接讯飞语音过程总结 11:13 2017/3/14 1,安装问题:JDK与ECLIPSE位数一定要对应,32位对64位会出现 java was returned ....code 13的弹 ...

  6. 讯飞庭审语音识别系统亮相最高人民法院工作报告

    2018年3月9日下午3时,十三届全国人大一次会议在北京人民大会堂举行第二次全体会议.最高人民法院院长周强作最高人民法院工作报告.报告在总结智慧法院建设成果时指出,继续推进审判领域人工智能研发,&qu ...

  7. 讯飞离线语音合成接入

    讯飞离线语音合成接入: 文字转语音的方法 1.Google TextToSpeech + 中文语音引擎 Google提供了原生的方法TextToSpeech,但是不支持中文,sad- 不过可以用第三方 ...

  8. C#讯飞实时语音识别和语音合成

    目录 MSC模块导入及添加枚举常量等 语音识别模块 语音合成模块 最终结果 工程使用说明 代码下载 最近由于需要做一个关于语音的c#项目,经老师推荐使用了讯飞的语音识别和合成的接口,但由于网上资源关于 ...

  9. Unity接入讯飞语音识别___Android版

    Unity版本4.6+Eclipse 1,首先我们先去讯飞开放平台注册一个开发者账号(注册地址:http://www.xfyun.cn),注册完成后进入控制台创建一个新的应用.​ 2,提交成功后我们需 ...

最新文章

  1. LeetCode OJ:Pascal's TriangleII(帕斯卡三角II)
  2. 一图看懂windows11新功能
  3. VTK:Texture之TextureCutSphere
  4. java数组与C++数组的不同之处
  5. 使用idea创建项目的步骤
  6. 我的k8s随笔:命令实践
  7. 管理感悟:工作计划的作用
  8. Android简单实现图片缩略图类ThumbnailUtils
  9. Qt环境下调用捷宇高拍仪OCX
  10. 数据结构:图(Graph)【详解】
  11. 深入解析CAS算法原理
  12. 集合经验模态分解matlab,matlab集合经验模态分解EEMD工具包
  13. 计算机国内外SCI/EI收录期刊一览(参考)
  14. 本地win10服务器不能复制文件,解决Win10无法复制文件并提示“0x80070032”错误的方法...
  15. Windows10+clion+opencv时报错0xC0000139和0xC0000135的解决方法之一
  16. 无源贴片晶振四角引脚_贴片晶振引脚脚位地方向如何进行区分?
  17. 使用小米手机进行真机测试
  18. BIM → CIM,捷码赋能智慧城市多行业应用开发
  19. 【计算机体系】LFU与LRU的区别
  20. 需要跟前辈学习的博客

热门文章

  1. allow control allow origin_热分析/红外光谱联用的数据分析方法 第7部分 在Origin软件中三维红外光谱图的作图方法...
  2. 在linux系统上安装飞秋,linux [Fedora] 下的 飞秋/飞鸽传书
  3. 个人计算机能力提升研修计划,教师计算机能力提升个人研修计划
  4. 独立闭合环java实现_水准网独立最小闭合环、最短附合线生成算法
  5. 冬日舞会服务器维护中,绝版皮肤被天美终结,冬日舞会太优雅?宫本很可惜,这款没见过!...
  6. Firefox全历史版本下载
  7. 为何买了专业设备又要卖掉?怎样正确自学拍摄、剪辑做视频?
  8. 1分钟部署单机版kubernetes 1.13.4
  9. matlab从csv文件中读取时间转换异常
  10. html的标题题记有哪些,关于温暖的题记唯美