图灵机器人有三个基本功能:
(1)语音识别:将语音识别成相应的文本。
(2)语义理解:将文本识别成领域相关的语义结果。
(3)语音合成 : 将文本转化成语音读出。
要集成图灵机器人,首先要进行图灵官网的注册,这里就一笔带过,按照步骤进行注册即可。
然后创建自己的机器人,
注意这里我们选择的是自定义机器人,(qq,微信等机器人我只实现了一下qq机器人,很简单,可以自己下载文档根据步骤走就ok)
填好上面的信息,在这里下载iOS SDK和集成文档。走到这里我们的机器人就建立完成。
因为图;图灵机器人的的语音识别等使用的是百度语音,所以我们还需要去百度平台进行新建项目获取权限拿到百度的AppID、APIKey、Secret Key。具体请 参考http://yuyin.baidu.com/
然后进行新建项目集成。
一、首先要导入依赖的Framework:
1. SystemConfiguration.framework 2. Foundation.framework
3. AVFoundation.framework
4. GLKit.framework
5. OpenGLES.framework 6. libz.1.dylib
7. Security.framework
8. CFNetwork.framework 9. CoreLocation.framework
二、第三方库
IOS SDK 依赖以下第三方库(SDK 包中已提供,请集成到应用工程中)
1. OpenUDID
2. JSONKit
3. TTTAttributedLabel
4. Core AudioUtility(苹果 Audio 库)
对于采用 ARC 内存管理方式的工程,需要利用 Non-ARC 方式表姨 OpenUDID 和 JSONKit(对相应文件添加 Compiler Flags 为-fno-objc-arc)
三、其他事项。
因为 SDK 包中采用 Objective C++实现,因此需要保证工程中引用静态库头文件的实现 文件的扩展名必须为.mm。
四、iOS9的适配问题
1、首先是http的访问。
在plist文件中添加:
2、BITCODE 问题
由于底层的百度 SDK 编译时采用 ENABLE_BITCODE 模式,因此基于图灵 SDK 的应用程序也不能采用 ENABLE_BITCODE 模式。如下图,将bitcode设置为NO。
五、其他的一些配置
1、在Build Setting -> Build Active Architecture Only 设置为No
2、Build Setting -> Build Options -> Debug Information Format 设置为DWARF with DSYM File
3、Build Setting -> Build Options -> Enable Testability 设置为NO
4、Build Setting ->Linking -> Other Linker Flags 添加 -all_load
注:以上配置是我在集成的时候报错而总结的一些配置。
六、导入SDK
将下载的sdk包打开找到SDK Package这个文件夹。此文件夹包含三个文件夹,一个是头文件,一个是.a 文件包,一个是上面第二条所说的依赖的第三方库。
这里三个.a文件只需要导入最后一个即可。
下面进行撸代码:
////ViewController.m//Robot1////CreatedbyXFon16/8/11.//Copyright©2016年xf.Allrightsreserved.//#import"ViewController.h"#import"TRRVo
iceRecognitionManager.h"#import"UserDefine.h"#import"GlobalNetWorking.h"#import"TRRTuringAPIConfig.h"#import"TRRTuringRequestManager.h"#import"TR
RSpeechSythesizer.h"@interfaceViewController()
@property(strong,nonatomic)TRRVoiceRecognitionManager*sharedInstance;@property(nonatomic,strong)TRRSpeechSythesizer*sythesizer;@end@implementationViewController-(void)viewDidLoad{ [superviewDidLoad]; [selfsetUILayout]; } -(void)viewWillAppear:(BOOL)animated{ [superviewWillAppear:animated]; _sharedInstance=[TRRVoiceRecognitionManagersharedInstance]; [_sharedInstancesetApiKey:BaiduAPIKeysecretKey:BaiduSecretKey]; _sharedInstance.delegate=self;NSArray*array=@[@(20000)]; _sharedInstance.recognitionPropertyList=array;self.sythesizer=[[TRRSpeechSythesizeralloc]initWithAPIKey:BaiduAPIKeysecretKey:BaiduSecretKey]; }#pragmamark-****************进行UI布局-(void)setUILayout{UIButton*button=[UIButtonbuttonWithType:UIButtonTypeCustom]; button.frame=CGRectMake(0,0,120,40); button.center=self.view.center; [buttonsetTitle:@"点击说话"forState:UIControlStateNormal]; [buttonsetTitle:@"正在说话"forState:UIControlStateHighlighted]; [buttonsetTitleColor:[UIColorredColor]forState:UIControlStateNormal]; [buttonsetTitleColor:[UIColorbrownColor]forState:UIControlStateHighlighted]; UILongPressGestureRecognizer*longpress=[[UILongPressGestureRecognizeralloc]initWithTarget:selfaction:@selector(longTouchWith:)]; [buttonaddGestureRecognizer:longpress]; button.layer.cornerRadius=3; button.layer.borderWidth=1; button.layer.borderColor=[UIColorblueColor].CGColor; [self.viewaddSubview:button]; }#pragmamark-****************长按手势-(void)longTouchWith:(UILongPressGestureRecognizer*)longPress{if(longPress.state==UIGestureRecognizerStateBegan){ [_sharedInstancestartVoiceRecognition]; }elseif(longPress.state==UIGestureRecognizerStateEnded){ [_sharedInstancestopRecognize]; } }#pragmamark-****************语音识别结果-(void)onRecognitionResult:(NSString*)result{NSLog(@"result=%@",result);NSMutableDictionary*dic=[NSMutableDictionarydictionary]; [dicsetObject:RobotAPIKeyforKey:@"key"]; [dicsetObject:resultforKey:@"info"]; [dicsetObject:@"123456"forKey:@"userid"]; [selfnetWorkingWith:dic]; }#pragmamark----语音识别错误-(void)onRecognitionError:(NSString*)errStr{NSLog(@"Error=%@",errStr); } -(void)onStartRecognize{NSLog(@"开始说话"); } -(void)onSpeechStart{NSLog(@"检测到已说话"); } -(void)onSpeechEnd{NSLog(@"检测到已停止说话"); }#pragmamark-****************网络请求-(void)netWorkingWith:(NSDictionary*)dic{ [GlobalNetWorkingnetworkWithUrl:@"http://www.tuling123.com/openapi/api"andParametersDic:dicandSuccess:^(idrootObject,iddatasObject,boolisSuccess){//这里获取到机器人反馈的回答 NSString*text=rootObject[@"text"];NSLog(@"%@",text);//进行语音合成 [self.sythesizerstart:text]; }andFailure:^(NSError*error){ [self.sythesizerstart:@"网络请求出错!"]; }]; } -(void)didReceiveMemoryWarning{ [superdidReceiveMemoryWarning];//Disposeofanyresourcesthatcanberecreated.}@end
demo 下载地址:http://download.csdn.net/detail/qq_34195670/9602252
github地址:https://github.com/goingmyway1/TuLingRobot
评论