协议类型:异步流式支持多实例并发:否
兼容机型
将SDKzip包解压缩,得到如下文件:
1.1添加动态库AIKitiOSSDK核心代码库由AEE.framework和能力引擎framework组成。AEE.framework、引擎framework均是动态库。在引入工程中时,在工程的General的frameworks,Libraries,andEmbeddedContent中使用Embedded&sign。示例如下
1.2添加能力模型资源使用AIKitiOSSDK提供的能力时,还需要有配套的AI能力模型资源。AIKit的资源全部存放在AEEResource.boundle下,开发者需将其添加到工程中。
1.3设置BitCodeAIKitiOSSDK暂不支持Bitcode,Xcode7、Xcode8默认开启了Bitcode,而Bitcode需要工程依赖的所有类库同时支持,可关闭此设置,只需在Targets-BuildSettings中搜索Bitcode即可,找到相应选项,设置为NO。
1.4SDK初始化在使用能力前,需要首先初始化SDK,使用SDK提供的单能力或组合能力时,SDK均只需要初始化一次。
//SDK初始化-(int)initSDK{[ILibraryinitSDK:^(AiHelperMaker*maker){maker.appId(APPID).apiKey(APIKEY).apiSecret(APISECRET).authInterval(300).logOpen(false)}];}如上代码所示,SDK初始化参数中appId、apiKey、apiSecret为必填项。以下是这些初始化参数:
1.5注册代理
[AiHelpershareInstance].delegate=self;1.5.1能力输出回调
[AiHelpersetLogInfo:AEELogInfomode:0path:@""];参数类型说明LogLvlenum日志级别LogModeNSInteger日志模式(stadout:0logcat:1file:2)LogPathNSString*日志路径1.7引擎初始化
//参数构建AEEParameters*params=[[AEEParametersalloc]init];[paramsaddString:PARAM_KEYvalue:PARAM_VALUE];//引擎初始化[AiHelperinitEngine:ABILITY_IDparam:params];参数类型必填说明abilityNSString*是能力标识IDparamAEEParameters*否引擎初始化参数返回:
0=成功,其他=错误1.8个性化数据接口非必需接口,对于依赖个性化资源的能力,需要调用如下接口。
AEECustomData*customData=[[AEECustomDataalloc]init];[customDataaddTextPath:custom1key:@"key_word"index:0];[customDataaddTextPath:custom2key:@"key_word"index:1];[AiHelperloadData:ABILITY_IDdata:customData];intindexs[]={0,1}[AiHelperspecifyDataSet:ABILITY_IDkey:@"key_word"indexs:indexscount:2];AEECustomData*customData=[[AEECustomDataalloc]init];[customDataaddTextPath:dataPathkey:@"key_word"index:0];ret=[AiHelperpreProcess:ABILITY_IDdata:customData];1.9能力调用接口1.9.1同步流式接口流式送入能力输入数据,送入一次数据后,需要调用read()方法等待结果返回,结果获取后通过AIKitCoreDelegate回调接收能力输出数据,同步流式接口需获取能力输出数据后,才可送入下一次数据。
//参数构建AEEParameters*params=[[AEEParametersalloc]init];[paramsaddString:PARAM_KEYvalue:PARAM_VALUE];//开始计算AEECtxContent*content=nil;AiHandle*handle=[self.servicestart:ABILITY_IDparam:paramsctxContent:content];if(handle.code!=0){NSLog(@"ERROR::START|handlecode:%d",handle.code);return;}//输入数据构建AEEInputData*inputs=[[AEEInputDataalloc]init];[inputsaddText:TEXTkey:TEXT_KEYstatus:DataStatusOnce];[inputsaddAudio:AUDIOkey:AUDIO_KEYstatus:DataStatusOnce];[inputsaddVideo:VIDEOkey:VIDEO_KEYstatus:DataStatusOnce];[inputsaddImage:IMAGEkey:IMAGE_KEYstatus:DataStatusOnce];//输入[AiHelperwrite:inputhandle:handle];//读取[AiHelperread:handle];//结束计算[AiHelperend:handle];参数类型必填说明abilityNSString*是能力标识IDparamAEEParameters*是能力参数,可使用AiRequest.Builder快捷构建ctxContentAEECtxContent*否用户自定义标识返回:AiHandle*
AiHandle对象内部提供isSucess方法,用于判断会话是否启动成功参数类型必填说明inputAEEInputData*是能力输入,可使用AiRequest.Builder快捷构建handleAiHandle*是会话的handle对象返回:
0=成功,其他=错误返回:
0=成功,其他=错误1.9.2异步流式接口流式送入能力输入数据,异步在AIKitCoreDelegate回调方法中返回结果。与同步流式接口差异在于异步流式接口送入数据后,不需要调用read方法阻塞等待结果返回。
//参数构建AEEParameters*params=[[AEEParametersalloc]init];[paramsaddString:PARAM_KEYvalue:PARAM_VALUE];//开始计算AEECtxContent*content=nil;AiHandle*handle=[self.servicestart:ABILITY_IDparam:paramsctxContent:content];if(handle.code!=0){NSLog(@"ERROR::START|handlecode:%d",handle.code);return;}//输入数据构建AEEInputData*inputs=[[AEEInputDataalloc]init];[inputsaddText:TEXTkey:TEXT_KEYstatus:DataStatusOnce];[inputsaddAudio:AUDIOkey:AUDIO_KEYstatus:DataStatusOnce];[inputsaddVideo:VIDEOkey:VIDEO_KEYstatus:DataStatusOnce];[inputsaddImage:IMAGEkey:IMAGE_KEYstatus:DataStatusOnce];//输入[AiHelperwrite:inputhandle:handle];//结束计算[AiHelperend:handle];参数类型必填说明abilityNSString*是能力标识IDparamAEEParameters*是能力参数,可使用AiRequest.Builder快捷构建ctxContentAEECtxContent*否用户自定义标识返回:AiHandle*
AiHandle对象内部提供isSucess方法,用于判断会话是否启动成功请求:
返回:
0=成功,其他=错误请求:
0=成功,其他=错误能力参数:
能力输入参数:数据段名称:audio数据类型:音频
1.10SDK逆初始化
[ILibraryunInit];1.11功能参数构建AEEParameters*:
1.12数据输入构建AEEInputData*
1.13用户自定义标识构建AEECtxContent*
1.14参数配置
2.2能力输入数据数据段名称:audio数据类型:音频
2.3能力输出数据数据段名称:text数据类型:文本
2.4个性化数据数据段名称:FSA数据类型:文本
数据段名称:FSABIN数据类型:文本
Causedby:java.security.InvalidParameterExceptionatcom.iflytek.edgeAI.core.JLibrary$Params$Builder.build(UnknownSource:``41``)atcom.iflytek.aeesdkdemo.sdk.SDKHelper.initSdk(SDKHelper.java:``55``)``atcom.iflytek.aeesdkdemo.xtts.XTTSActivity.initSDK(XXXXActivity.java:``144``)atcom.iflytek.aeesdkdemo.xtts.XTTSActivity.onCreate(XXXXActivity.java:``81``)atandroid.app.Activity.performCreate(Activity.java:``8214``)崩溃原因为appid、apiKey、apiSecret存在为空的值,请正确配置appid、apiKey、apiSecret。