圖靈機器人有三個基本功能:
(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
評論