1.http://yuyin.baidu.com百度语音开发者平台注册帐号
2.创建应用,如下图:
3.下载SDK
SDK下载——>01选择应用 02选择可用的SDK及资源
4.参考文档配置工程
文档中心——>产品文档(语音识别—>离在线语音识别IOS SDK)
开始配置
4.1.引入编译需要的Framework—>>Build Phase->Link Binary With Libraries
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)遇到的坑
现象:
----(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.原因
b.解决
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];
}