百度语音SDK(离在线语音识别1(仅采用识别接口))

1.http://yuyin.baidu.com百度语音开发者平台注册帐号

2.创建应用,如下图:

百度语音SDK(离在线语音识别1(仅采用识别接口))_第1张图片

3.下载SDK

百度语音SDK(离在线语音识别1(仅采用识别接口))_第2张图片

SDK下载——>01选择应用 02选择可用的SDK及资源

4.参考文档配置工程

文档中心——>产品文档(语音识别—>离在线语音识别IOS SDK)

百度语音SDK(离在线语音识别1(仅采用识别接口))_第3张图片

开始配置


4.1.引入编译需要的Framework—>>Build Phase->Link Binary With Libraries

百度语音SDK(离在线语音识别1(仅采用识别接口))_第4张图片

4.2.引入静态库文件——>>libBDVoiceRecognitionClient.a

4.3.添加第三方开源库(2和3已经放在一个文件夹)

(ps:避免直接拖文件夹到工程中,有可能文件并没有在工程的资源文件夹内。先在fider中创建并添加再从工程中add)

4.4.引入库所需的资源文件(百度内置的UI,这里不需要)

4.5.引入授权文件和数据文件(离线需要,这里不需要)

4.6.引入头文件(这里只使用识别接口,所以只导入以下头文件)

#import “BDVoiceRecognitionClient.h”

#import"CATRadarView.h"

4.7引入静态库文件(libBDVoiceRecognitionClient.a)遇到的坑

现象:

百度语音SDK(离在线语音识别1(仅采用识别接口))_第5张图片

----(null) -----Error Domain=WKErrorDomain Code=4 "发生 JavaScript 异常" UserInfo={WKJavaScriptExceptionLineNumber=1, WKJavaScriptExceptionMessage=SyntaxError: Unexpected EOF, WKJavaScriptExceptionSourceURL=file:///var/mobile/Containers/Data/Application/B1EE1658-E23A-4238-A8AA-CAA19C33E20A/Library/Caches/42c23675cd3543ac9e2dc3aac8941e0b/index.html,

解决:

1、查找文档找不到

2、网页搜索报错(js报错原因及解决)

http://www.jianshu.com/p/e9e70cd2da22

a.原因

百度语音SDK(离在线语音识别1(仅采用识别接口))_第6张图片

b.解决

百度语音SDK(离在线语音识别1(仅采用识别接口))_第7张图片

3、网页搜索集成的坑(干货)—>>引起js报错的原因

libBDVoiceRecognitionClient.a中会封装自己的json.kit,这个框架的json格式与自己公司开发中和H5协定的格式不一致,导致导入后原有的与H5交互的数据都无法返回甚至报错

4.8具体接口调用参考百度demo

a.头文件

#import "BDVoiceRecognitionClient.h"

b.配置 BDVoiceRecognitionClient

// 使用自己申请的应用的ApiKey和SecretKey替换之[[BDVoiceRecognitionClient sharedInstance]setApiKey:@"ApiKey"withSecretKey:@"SecretKey”];

[[BDVoiceRecognitionClient sharedInstance] setLanguage:EVoiceRecognitionLanguageChinese];

[[BDVoiceRecognitionClient sharedInstance] setResourceType:RESOURCE_TYPE_NLU];

[[BDVoiceRecognitionClient sharedInstance] setPropertyList:@[@(EVoiceRecognitionPropertyWeb)]];

if ([[BDVoiceRecognitionClient sharedInstance] isCanRecorder]) {[[BDVoiceRecognitionClient sharedInstance] startVoiceRecognition:self];}

c.实现MVoiceRecognitionClientDelegate协议中代理方法

- (void)VoiceRecognitionClientWorkStatus:(int) aStatus obj:(id)aObj{

switch (aStatus) {

case EVoiceRecognitionClientWorkStatusStartWorkIng:

NSLog(@"开始录音");

break;

case EVoiceRecognitionClientWorkStatusStart:

NSLog(@"检测到用户开始说话");

break;

case EVoiceRecognitionClientWorkStatusEnd:

NSLog(@"结束录音");

break;

case EVoiceRecognitionClientWorkStatusFinish:

{

// 此处返回识别结果

NSLog(@"语音识别功能完成,服务器返回正确结果");

NSString * string = [aObj JSONString];

NSLog(@"识别结果: %@",string);

break;

}

default:

break;

}

}

d.退出时释放BDVoiceRecognitionClient对象,不释放有可能会崩溃。

#pragma mark------>>退出页面释放

-(void)dealloc {

[BDVoiceRecognitionClientreleaseInstance];

}

你可能感兴趣的:(百度语音SDK(离在线语音识别1(仅采用识别接口)))