[TOC]

第一步:获取appid

appid是第三方应用集成讯飞开放平台SDK的身份标识,SDK静态库和appid是绑定的,每款应用必须保持唯一,否则会出现10407错误码。appid在开放平台申请应用时可以获得,下载SDK后可从SDK中sample文件夹的Demo工程里找到(例如: /sample/MSCDemo/MSCDemo/Definition.h 的APPID_VALUE)

第二步:工程配置

添加库

将开发工具包中lib目录下的iflyMSC.framework添加到工程中。同时请将Demo中依赖的其他库也添加到工程中。 按下图示例添加 SDK 所需要的 iOS系统库:

库名称 添加范围 功能
iflyMSC.framework 必要 讯飞开放平台静态库。
libz.tbd 必要 用于压缩、加密算法。
AVFoundation.framework 必要 用于系统录音和播放 。
SystemConfiguration.framework 系统库 用于系统设置。
Foundation.framework 必要 基本库。
CoreTelephoney.framework 必要 用于电话相关操作。
AudioToolbox.framework 必要 用于系统录音和播放。
UIKit.framework 必要 用于界面显示。
CoreLocation.framework 必要 用于定位。
Contacts.framework 必要 用于联系人。
AddressBook.framework 必要 用于联系人。
QuartzCore.framework 必要 用于界面显示。
CoreGraphics.framework 必要 用于界面显示。
libc++.tbd 离线识别,Aiui必要 用于支持C++。
Libicucore.tbd Aiui必要 系统正则库。

注意

  1. 添加iflyMSC.framework时,请检查工程BuildSetting中的framwork path的设置,如果出现找不到framework的情况,可以将path清空,在Xcode中删除framework,然后重新添加。
  2. iflyMSC.framework最低支持iOS 8.0。
  3. 如果使用了离线识别,还需要增加libc++.tbd。
  4. 如果使用aiui,需要添加libc++.tbd,libicucord.tbd。

设置Bitcode

在Xcode 7,8默认开启了Bitcode,而Bitcode 需要工程依赖的所有类库同时支持。MSC SDK暂时还不支持Bitcode,可以先临时关闭。后续MSC SDK支持Bitcode 时,会在讯飞开放平台上进行SDK版本更新,QQ支持群中同时会有相关提醒,请关注。关闭此设置,只需在Targets - Build Settings 中搜索Bitcode 即可,找到相应选项,设置为NO。

用户隐私权限配置

iOS 10发布以来,苹果为了用户信息安全,加入隐私权限设置机制,让用户来选择是否允许。 隐私权限配置可在info.plist 新增相关privacy字段,MSC SDK中需要用到的权限主要包括麦克风权限、联系人权限和地理位置权限:

<key>NSMicrophoneUsageDescription</key>
<string></string>
<key>NSLocationUsageDescription</key>
<string></string>
<key>NSLocationAlwaysUsageDescription</key>
<string></string>
<key>NSContactsUsageDescription</key>
<string></string>

即在Info.plist 中增加下图设置:

第三步:初始化

初始化示例:

//Appid是应用的身份信息,具有唯一性,初始化时必须要传入Appid。
NSString *initString = [[NSString alloc] initWithFormat:@"appid=%@", @"YourAppid"];
[IFlySpeechUtility createUtility:initString];
参数 说明 必填
appid 8位16进制数字字符串,应用的唯一标识,与下载的SDK一一对应。
usr 开发者在云平台上注册的账号。
pwd 账号对应的密码,与账号同时存在。

注意: 初始化是一个异步过程,可放在App启动时执行初始化,具体代码可以参照Demo的MSCAppDelegate.m。

AIUI初始化

如果使用的是aiui的业务,那么需要执行aiui的初始化模块。具体可以参照demo的AiuiService。 初始化的配置文件是aiui.cfg,请关注demo的具体内容。

注意:调用aiui初始化的代码文件,请修改成.mm的形式。

//包含头文件
#include "iflymsc/AIUI.h"
#include "iflymsc/AIUIConstant.h"

//aiui初始化,请aiui.cfg和meta_vad_16k.jet文件,需要从demo中获取。
void AiuiInitialize()
{
    //读取配置参数
    NSString *appPath = [[NSBundle mainBundle] resourcePath];
    NSString *cfgFilePath = [[NSString alloc] initWithFormat:@"%@/aiui.cfg",appPath];
    NSString *cfg = [NSString stringWithContentsOfFile:cfgFilePath encoding:NSUTF8StringEncoding error:nil];

    //设置模型vad的资源路径
    NSString *vadFilePath = [[NSString alloc] initWithFormat:@"%@/meta_vad_16k.jet",appPath];
    //将cfg里的vad_res_path字符串替换成模型vad的资源路径
    NSString *cfgString  = [cfg stringByReplacingOccurrencesOfString:@"vad_res_path" withString:vadFilePath];

    const char *cfgBuffer = [cfgString UTF8String];

    m_angent = IAIUIAgent::createAgent(cfgBuffer, &m_listener);
    if (NULL != m_angent)
    {
        IAIUIMessage * wakeupMsg = IAIUIMessage::create(AIUIConstant::CMD_WAKEUP);
        m_angent->sendMessage(wakeupMsg);

        wakeupMsg->destroy();
    }
}

添加AIUI结果解析文件

解析aiui结果时需要在工程中添加结果解析文件,否则编译会报错。

文件在Demo中的位置:MSCDemo -> tools -> jsoncpp。

第四步:启动服务

所有的服务皆遵循如下的流程,如下图:

所有服务的API详细说明可参见:http://mscdoc.xfyun.cn/ios/api/ AIUI的API详细说明可参见:http://mscdoc.xfyun.cn/aiui/develop_manual.pdf

Copyright © iflytek.com 2018 all right reserved,powered by Gitbook该文件修订时间: 2018-04-24 10:01:27

results matching ""

    No results matching ""