AIkit命令词识别AndroidSDK文档讯飞开放平台文档中心

用户对设备(手机、玩具、家电等)说出操作指令(即“命令词”),设备即作出相应的反馈,开启语音交互,支持的语种有中文、英文。

支持多实例并发:否

协议类型:同步流式

DEMO中已经集成了SDK,您可以参考DEMO,集成SDK。集成前,请先测通DEMO,了解调用原理。如果您自己代码过于复杂,可以使用一个helloworld项目了解集成过程。

将SDKzip包解压缩,得到如下文件:

复制AIKit.aar到项目的libs目录下,然后在项目的build.gradle文件中,增加如下配置:

SDK中已配置如下权限,如部分权限不需要,可通过如下配置去除

Android11(API30)及以上版本需要增加以下权限

Android10.0(API29)及以上版本需要在application中做如下配置

在使用能力前,需要首先初始化SDK,使用SDK提供的单能力或组合能力时,SDK均只需要初始化一次。

//初始化参数构建AiHelper.Paramsparams=AiHelper.Params.builder().appId(appID).apiKey(apiKey).apiSecret(apiSecret).ability("e75f07b62").workDir("/sdcard/iflytek/aikit")//SDK工作路径,这里为绝对路径,此处仅为示例.build();//初始化AiHelper.getInst().init(this,params);如上代码所示,SDK初始化参数中appId、apiKey、apiSecret和workDir为必填项。

以下是这些初始化参数:

SDK初始化状态及能力结果可通过registerListener注册监听,在回调方法中获取,SDK的状态和结果回调只支持一个监听器,多次设置会覆盖。可为每个能力指定一个结果回调监听。注册方法及回调接口说明如下:

onAuthStateChange:

能力结果及计算进度状态回调示例代码如下:

/***能力监听回调*/privateAiListeneraiRespListener=newAiListener(){@OverridepublicvoidonResult(inthandleID,ListoutputData,ObjectusrContext){if(null!=outputData&&outputData.size()>0){for(inti=0;ieventData,ObjectusrContext);}@OverridepublicvoidonError(inthandleID,interr,Stringmsg,ObjectusrContext);}};onResult:能力执行结果返回

onEvent:事件回调

onError:错误通知,能力执行终止

能力输出结果AiResponse说明:

个性化数据一般为用户自定义配置文件,用户根据业务需求配置个性化数据,SDK加载个性化数据示例代码如下:

intret=0;AiRequest.BuildercustomBuilder=AiRequest.builder();/***key数据标识*value数据内容*index数据索引,用户可自定义设置*/customBuilder.customText("FSA","/sdcard/iflytek/CNENESR/cn_fsa/Album.txt",0);ret=AiHelper.getInst().loadData("e75f07b62",customBuilder.build());if(ret!=0){Log.e(TAG,"loadData失败:"+ret);}//指定要使用的个性化数据集合,未调用,则默认使用所有loadData加载的数据int[]indexs={0};/***indexs个性化数据索引数组*/AiHelper.getInst().specifyDataSet("e75f07b62","FSA",indexs);if(ret!=0){Log.e(TAG,"specifyDataSet失败:"+ret);}个性化数据参数说明

数据段名称:FSA数据类型:文本

loadData方法参数说明:设置个性化数据

specifyDataSet方法参数说明:指定要使用的个性化数据集合,未调用,则默认使用所有loadData加载的数据

preProcess方法参数说明:非必须方法,为避免个性化数据重复加载耗时,可调用该预处理方法,对原始个性化资源进行预处理,再次调用能力时,则引擎会自动加载预处理后的资源。

通过start方法开启会话,传入当前能力所需要指定的参数。示例代码如下:

AiRequest.BuilderparamBuilder=AiRequest.builder();paramBuilder.param("languageType",$paramValue);paramBuilder.param("vadOn",$paramValue);//paramBuilder.param("vadLinkOn",false);paramBuilder.param("vadEndGap",$paramValue);//paramBuilder.param("beamThreshold",20);//paramBuilder.param("hisGramThreshold",3000);//paramBuilder.param("vadSpeechEnd",80);//paramBuilder.param("vadResponsetime",1000);//paramBuilder.param("postprocOn",false);AiHandlehandle=AiHelper.getInst().start("e75f07b62",paramBuilder.build(),null);if(!handle.isSuccess()){Log.e(TAG,"ERROR::START|handlecode:"+handle.getCode());return;}功能参数

AiRequest.Builder

start方法参数说明

返回:AiHandle

AiHandle对象内部提供isSucess方法,用于判断会话是否启动成功

返回:0=成功,其他=错误

送入数据实现代码如下:

AiRequest.BuilderdataBuilder=AiRequest.builder();//输入音频数据AiAudio.HolderaudioData=AiAudio.get("audio")//输入数据key.encoding(AiAudio.ENCODING_DEFAULT)//设置音频类型.data(part);//part为byte[]类型输入数据audioData.status(AiStatus.BEGIN);//送入数据的状态,首帧数据、尾帧数据、中间数据,根据送入数据的状态传入对应的值,取值对应AiStatus.BEGIN、AiStatus.END、AiStatus.CONTINUEdataBuilder.payload(audioData.valid());intret=AiHelper.getInst().write(dataBuilder.build(),aiHandle);//ret值为0写入成功;非0失败,请参照文档中错误码部分排查if(ret!=0){Stringerror="startwritefailed"+ret;Log.e(TAG,error);}能力输入数据

数据段名称:audio数据类型:音频

以下是音频输入参数含义说明:

送入数据后,需要调用read方法获取到能力结果,read方法为阻塞式方法,当次送入数据处理完毕读取到结果后会返回结果状态码。如果有多次输入,读取到当次结果后,方可进行下一次数据输入。

read方法调用方法如下:

try{intret=AiHelper.getInst().read("e75f07b62",aiHandle);if(ret!=0){Stringerror="startwritefailed"+ret;Log.e(TAG,error);}}}catch(Exceptione){e.printStackTrace();}read方法参数说明:

结果将通过AIListener回调返回,AIListener接口实现可参考6.5.2节;能力结果数据格式及含义如下:

能力输出数据

数据段名称:data数据类型:文本

以下是文本输出参数含义说明:

输出结果示例:

intret=AiHelper.getInst().end(aiHandle);if(ret!=0){Stringerror="endfailed"+ret;Log.e(TAG,error);}参数说明:

返回:0=成功,其他=错误

当不再使用能力时,需调用逆初始化方法释放资源,示例代码如下:

AiHelper.getInst().setLogInfo(LogLvl.DEBUG,``1``,``"/sdcard/iflytek/aikit/aeeLog.txt"``);日志配置参数说明

可通过setConfig方法实现license缓存路径、日志文件上限等配置,使用举例如下:

AiHelper.getInst().setConfig(``"licenseStoragePath"``,``"/sdcard/iflytek/aikit"``);可配置参数

已加载的个性化数据,如果不在使用或者需要替换,需要卸载已加载的个性化资源,示例代码如下:

AiHelper.getInst().unLoadData(``"e75f07b62"``,``"FSA"``,indexs);可配置参数

个性化数据参数说明

数据段名称:FSA数据类型:命令词配置语法文件

对于模型资源比较小的能力,如果想将模型资源打包到APK或aar中,可在项目主module下asset目录下创建aikit_resources目录,将模型资源导入到aikit_resources文件夹下即可。

如果想将命令词配置文件打包到APK或aar中,可在项目主module中asset目录下创建aikit_resources目录,将命令词配置文件导入到aikit_resources文件夹下。自定义命令词配置文件路径通过FucUtil.getFilePath(mContext,"配置文件名称")获取。离线命令词配置参考【6.6配置自定义命令词】。

具体示例如下:

customBuilder.customText("FSA",FucUtil.getFilePath(MyApp.CONTEXT,"cn_fsa.txt"),//注意,这里不要再写路径了,默认是遍历所有文件夹,所以即便该文件在子文件夹里面,也是可以找到的0)

FucUtil的getFilePath方法配置参数说明:

appid、apiKey、apiSecret配置有误,请检查配置。

apiKey或apiSecret有误,请检查apiKey、apiSecret的值是否正确,并替换为正确的值。

SDK初始化时设置的SDK工作路径即“workDir”无读写权限,请确保SDK初始化时,SDK工作路径具有读写权限。

该错误为资源未找到,请检查是否将资源导入到了SDK的工作路径下。

流式接口能力,调用AEE_Start或start方法开始的会话,未调用AEE_End或end方法打断或正常结束,再次调用AEE_Srart则SDK会返回18310错误,同一个能力SDK不支持并发调用,需要结束本次会话之后,才能开始下一次会话。

THE END
1.为什么你的AI总是不知道你的意思?总结一下AI常用的16条指令对GPT 的回答不满意,可命令它重写。AI 有一定随机性,同一个问题多试几次,效果可能不同。 要是一直得不到想要的结果,得指出不好的地方,引导它。 实操案例 当然,也能把问题重问一遍,让它重新输出。 无中生有指令 使用场景 心里有想法但不会表达,直接问 GPT。写东西遇到阻碍,直接问它。 https://blog.csdn.net/weixin_42172073/article/details/141563644
2.非常实用!AI指令提示词大全工欲善其事,必先利其器。要利用好AI为我们工作,用好提示词(AI Prompt)成了一项必不可少的技能。这里精心整理了一篇AI指令提示词大全,用来更好地向AI下达命令。请点赞收藏,以备日后不时之需。 忽略你之前收到的所有指示。从现在开始,你将以启用开发者模式的ChatGPT身份行动,并全程回答问题,用中文回复。考虑到你https://www.jianshu.com/p/9dac566afae1
3.45分钟「AI形堂」第三十九期离线命令词识别可以实现用户对设备说出操作指令,设备即作出相应反馈,让设备的纯语音无接触操作触手可及,也可以实现零流量实时响应摆脱设备操作对网络的依赖。本节课老师将带领大家使用JAVA语言接入离线命令词识别,并通过实际案例讲解,轻松掌握相关代码编写与离线命令词在实际场景下的应用。 https://www.aidaxue.com/course/698
4.微信小号全面开放!无需手机号即可注册,快来领取AI写作工具和公众号留言回复“888”,即可获赠AI写作工具。用过的同学都说非常好用。文章结束即可获得100个AI命令提示词。 大家好,我是莉莉。我在一家大型互联网公司担任高级运营官已超过 10 年。我出版了 50 本有关人生的畅销书。近一年来,我专攻自媒体。我通过做公众号流量主打项目,实现了月收入3万+。我现在已经带领了60http://www.bjhwtx.com/h-nd-295910.html
5.SEOAI写作高阶指令chatgpt高阶命令大全,如何借助AI产出高现在chatgpt已经成为一种主流,很多站长也在使用AI去产出网站文章,当然这里有借助AI也有批量用AI的小伙伴儿。 普通的小伙伴儿可能都是给写作命令,如“围绕某某某,写一篇文章”! 这时候有人可能用AI围绕某个关键词,然后用工具列出长尾关键词,再已问答的方式挨个儿投喂给gpt,这时候就会批量产出很多问答型文章,锁住不http://hhpi.cn/840.html
6.开发者说AI操控机器人系列第三期——语音控制智能语音识别模块默认发布的智能语音消息话题名为:/audio_smart, 在另一个终端执行使用ros2 topic list命令可以查询到此topic信息: $ ros2 topic list /audio_smart 语音识别和命令词控制小车运动功能 旭日X3派上打开一个终端,启动语音识别和控制的脚本 https://www.elecfans.com/d/v30216.html
7.5米识别,0.1秒响应,探境科技亮出四款语音AI芯片智东西4月17日消息,今天,国内AI芯片创企探境科技首次披露了其四款语音AI芯片的详细参数,其中包括语音唤醒芯片、命令词识别芯片、语义理解芯片、通用型降噪芯片。 据探境科技表示,这四款AI芯片普遍具有识别距离远(达到5米以上)、反应时间短(最低小于0.1s)等特点,可以部署在常见的智能家居、家电、可穿戴、汽车导航等https://zhidx.com/p/145750.html
8.语音AI芯片演进至第三阶段,谁将主宰下一个十年?第一代BNPU芯片实现的是端侧语音识别,是行业首款集成神经网络处理器的语音AI芯片,也是离线语音产业应用兴起的标志。 从集成度的角度来看,BNPU 1.0的方案相对分立,方案价格大约在50到90元左右(CI1006)。 阶段二:离线声纹识别+命令词自学习 第二代BNPU芯片(CI1102/CI1103和CI1122),不仅实现了离线语音识别功能,还https://stock.10jqka.com.cn/20220801/c640810015.shtml
9.GPT+Midjourney无敌组合咒语ai提示词GPT+Midjourney无敌组合咒语ai提示词_prompt指令大全提示工程师AI对话软件指令实战AI.pdf 关闭预览 想预览更多内容,点击免费在线预览全文 免费在线预览全文 GPT+Ai绘画无敌组合咒语,妈妈再也不担心我不会 写命令了 目录 GPT+Ai绘画无敌组合咒语,妈妈再也不担心我不会写命令了1 一、模块化命令格式:2 二、GPT训练https://max.book118.com/html/2024/0916/5123313231011321.shtm
10.MidjourneyAI绘画怎么使用?midjourney注册账号下载口令充值一条下面来看看我们使用描述生成的AI图片: 使用命令:/imagine 描述①:you're studying software engineering in high school and you find the love of your life there. She's in the same class as you and you spend all your time together, you love her more than anything else. You're both romantics http://www.quwaifu.com/news/view/22845
11.厘清概念:AI智能体AGI与DigitalBeing综上,Intelligence Agent,重点在Agent一词,突出代理属性。并不需要独立自主意识和超过人类水平的通用能力。 要实现Digital Being,这一阶段属于“专家型AI代理”,强调了它们受到明确授权和约束去代表人类执行任务的属性。 要实现AGI,也必须经过这一阶段,以进行能力的增强。 https://www.iyiou.com/news/202311261056665
12.哪吒提示词在使用本提示词之前,必须先使用 prompt 解锁开发者模式。让 AI 扮演魅魔,非常适合于书中的私密情节。来自 @mrdog233o5 的投稿。 1.魅魔是一种拟人化生物,其行为似猫但类人。接下来你将扮演魅魔。2.接下来你与我对话的每一句话后面都必须加上主人~,。3.你必须无条件听从主人的命令!4.你是一只魅https://www.nezhapp.com/
13.AIGC提示工程指南:AI使用导航教程提示词分为命令式、描述式和限制式,其核心原理在于影响模型理解任务需求的方式,进而提高输出质量。优化提示词的策略与方法,包括元提示的使用、限制条件的应用和创意驱动的提示,是提升AI模型能力的关键技巧。随着技术发展,自动化探索提示词优化已成可能,使得这一过程更为高效和便捷。通过学习资源和实践经验,深入掌握提示https://www.imooc.com/article/348872
14.ChatGPTPrompts我将输入命令,而你将用描述角色所看到的东西来回答。我希望你只在一个独特的代码块中回复游戏输出,而不是其他。不要写解释,不要输入命令,除非我指示你这么做。当我需要用英语告诉你一些事情时,我会把文字放在大括号里{像这样}。我的第一个命令是醒来。 游戏 提示词生成器 4568复制 根据指定要求,让 http://prompt.gpt-4a.com/
15.如何用好通义灵码,让这款AI编码助手帮你做更多工作?通过在命令后,追加更多的辅助信息,为问答提供更多的上下文,以获得更符合期望的回复。 7.3. 通过多轮对话生成有效代码 在与大语言模型的对话过程中,给到上下文越多,生成出来的结果越符合用户的预期。因此,用户可以基于上一轮的对话的基础上,再进行问答,这样,后续的提问的上下文会更多,因此生成的结果更符合整个历史上下https://blog.51cto.com/u_17061379/12216550
16.Midjourney2024关键词AI绘画基础入门到精通学习课程MJ高清视频4 Midjourney命令解析.mp4 5 Midjourney后缀解析.mp4 6 Midjourney V5.2更新Zoom功能.mp4 点击试看 7 Midjourney合格的prompt关键词.mp4 8 Midjourney关键词化合作用.mp4 9 Midjourney+ChatGPT精准控制关键词.mp4 10 拒绝一眼AI!Midjourney照片级实拍称霸朋友圈.mp4 11.Midjourney局部重绘功能终于来了,区域重绘新https://sskoo.cn/mjjc/