周末参加了一个活动,涉及到了语音识别的东西,回来整理了一下讯飞的语音识别SDK的用法,官方文档写得很详细,这里给大家过一下流程吧。
1. 获取Appid就不多做介绍了,官网注册app即可获取。
2. 集成讯飞库:讯飞 iOS framework 名称为 iflyMSC.framework,直接拖进工程或者在link Binary With Libraries中添加都行。注意:iflyMSC.framework 非系统库文件,添加 iflyMSC.framework 时,请注意工程 BuildSetting 中的 framwork path 的设置,如果出现找不到 framework 中头文件的编译警 告,可以将 path 清空,在 xcode 中删除 framework,然后重新添加。
3. 集成系统库:
之后把Bitcode关掉:Targets - Build Settings 中搜索 Bitcode 即可,找 到相应选项,设置为 NO。
4. 使用:
AppDelegate中导入头文件:#import “iflyMSC/IFlyMSC.h”
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {
// Override point for customization after application launch.
//存储路径
NSArray *paths = NSSearchPathForDirectoriesInDomains(NSCachesDirectory, NSUserDomainMask, YES);
NSString *cachePath = [paths objectAtIndex:0];
[IFlySetting setLogFilePath:cachePath];
//创建语音配置,appid必须要传入,仅执行一次则可
NSString *initString = [[NSString alloc] initWithFormat:@"appid=%@",@"YOUkey"];
//所有服务启动前,需要确保执行createUtility
[IFlySpeechUtility createUtility:initString];
return YES;
}
使用的时候遵循IFlySpeechRecognizerDelegate代理,下面两个方法是必须实现的:
/*!
* 识别结果回调
* 在进行语音识别过程中的任何时刻都有可能回调此函数,你可以根据errorCode进行相应的处理,
* 当errorCode没有错误时,表示此次会话正常结束;否则,表示此次会话有错误发生。特别的当调用
* `cancel`函数时,引擎不会自动结束,需要等到回调此函数,才表示此次会话结束。在没有回调此函数
* 之前如果重新调用了`startListenging`函数则会报错误。
*
* @param errorCode 错误描述
*/
- (void) onError:(IFlySpeechError *) e