美文网首页
百度语音SDK(离在线语音识别1(仅采用识别接口))

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

作者: An_Jun | 来源:发表于2017-06-19 17:01 被阅读1026次

    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];

    }

    相关文章

      网友评论

          本文标题:百度语音SDK(离在线语音识别1(仅采用识别接口))

          本文链接:https://www.haomeiwen.com/subject/xvmgqxtx.html