IOS百度语音实现过程
先配置我们需要的文件,如图:
需要到导入的控件将整个SDK包先复制到工程,然后再add file的方式加入工程 create group
将主题删除引用,再重新加入,create folder references (记住删除SDK包中的demo)
也需要我们加入JSONKit (记住关闭ARC)
百度语音目前最新版的1.6.2少了CoreTelephony.framework类库、会报5个错,加上就好.
之引入BDVRClient的头文件后就是我们需要实现的代码 可以直接复制.(注意括号已经方法名称)
首先将BDVRClient提供的头文件拷贝到工程目录下,在XCode中添加此文件,引入BDVRClient提供的头文件。
如果使用识别UI,请添加如下头文件:
#import "BDRecognizerViewController.h"
#import "BDRecognizerViewDelegate.h"
如果只使用识别接口,添加如下头文件:
#import "BDVoiceRecognitionClient.h"
如果要对音频数据或音频文件直接进行识别,请分别添加如下头文件:
#import "BDVRRawDataRecognizer.h"
#import "BDVRFileRecognizer.h"
初始化
@interface ViewController () <BDRecognizerViewDelegate>//遵守一个代理
{ //语音界面
BDRecognizerViewController *bdrv;
NSMutableData *allData;
//参数设置
BDRecognizerViewParamsObject *bdvp;
}
- (void)viewDidLoad
{
[super viewDidLoad];
//主题设置
BDTheme *me = [BDTheme lightBlueTheme];
bdrv = [[BDRecognizerViewController alloc]initWithOrigin:CGPointMake( 20, 180) withTheme:me];
//全屏模式
bdrv.enableFullScreenMode = YES;
bdrv.delegate = self;
bdvp = [[BDRecognizerViewParamsObject alloc]init];
bdvp.apiKey = @"RiYYprli930gKNAt9MgWt4wG";
bdvp.secretKey = @"e861c0b1c67b75c1e23ce55b2c5e3732";
Lab = [[UILabel alloc]initWithFrame:CGRectMake(100, 500, 200, 39)];
[self.view addSubview:Lab];
}
一个按钮点击方法
- (IBAction)ShiBie:(id)sender
{
allData = [[NSMutableData alloc] init];
[bdrv startWithParams:bdvp];
}
//录音返回
- (void)onRecordDataArrived:(NSData *)recordData sampleRate:(int)sampleRate
{
[allData appendData:recordData];
}
这个方法是 返回我们使我们语音是识别出的内容 可以用一个UILabel标签展示一下(不需要的也可以直接忽略这一个方法)
- (void)onEndWithViews:(BDRecognizerViewController *)aBDRecognizerViewController withResults:(NSArray *)aResults
{
Lab.text =[[[[aResults lastObject]lastObject] allKeys] lastObject];
}