圖靈機(jī)器人有三個(gè)基本功能:
(1)語音識(shí)別:將語音識(shí)別成相應(yīng)的文本。
(2)語義理解:將文本識(shí)別成領(lǐng)域相關(guān)的語義結(jié)果。
(3)語音合成 : 將文本轉(zhuǎn)化成語音讀出。
要集成圖靈機(jī)器人,首先要進(jìn)行圖靈官網(wǎng)的注冊(cè),這里就一筆帶過,按照步驟進(jìn)行注冊(cè)即可。
然后創(chuàng)建自己的機(jī)器人,
注意這里我們選擇的是自定義機(jī)器人,(qq,微信等機(jī)器人我只實(shí)現(xiàn)了一下qq機(jī)器人,很簡(jiǎn)單,可以自己下載文檔根據(jù)步驟走就ok)
填好上面的信息,在這里下載iOS SDK和集成文檔。走到這里我們的機(jī)器人就建立完成。
因?yàn)閳D;圖靈機(jī)器人的的語音識(shí)別等使用的是百度語音,所以我們還需要去百度平臺(tái)進(jìn)行新建項(xiàng)目獲取權(quán)限拿到百度的AppID、APIKey、Secret Key。具體請(qǐng) 參考http://yuyin.baidu.com/
然后進(jìn)行新建項(xiàng)目集成。
一、首先要導(dǎo)入依賴的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 包中已提供,請(qǐng)集成到應(yīng)用工程中)
1. OpenUDID
2. JSONKit
3. TTTAttributedLabel
4. Core AudioUtility(蘋果 Audio 庫)
對(duì)于采用 ARC 內(nèi)存管理方式的工程,需要利用 Non-ARC 方式表姨 OpenUDID 和 JSONKit(對(duì)相應(yīng)文件添加 Compiler Flags 為-fno-objc-arc)
三、其他事項(xiàng)。
因?yàn)?SDK 包中采用 Objective C++實(shí)現(xiàn),因此需要保證工程中引用靜態(tài)庫頭文件的實(shí)現(xiàn) 文件的擴(kuò)展名必須為.mm。
四、iOS9的適配問題
1、首先是http的訪問。
在plist文件中添加:
2、BITCODE 問題
由于底層的百度 SDK 編譯時(shí)采用 ENABLE_BITCODE 模式,因此基于圖靈 SDK 的應(yīng)用程序也不能采用 ENABLE_BITCODE 模式。如下圖,將bitcode設(shè)置為NO。
五、其他的一些配置
1、在Build Setting -> Build Active Architecture Only 設(shè)置為No
2、Build Setting -> Build Options -> Debug Information Format 設(shè)置為DWARF with DSYM File
3、Build Setting -> Build Options -> Enable Testability 設(shè)置為NO
4、Build Setting ->Linking -> Other Linker Flags 添加 -all_load
注:以上配置是我在集成的時(shí)候報(bào)錯(cuò)而總結(jié)的一些配置。
六、導(dǎo)入SDK
將下載的sdk包打開找到SDK Package這個(gè)文件夾。此文件夾包含三個(gè)文件夾,一個(gè)是頭文件,一個(gè)是.a 文件包,一個(gè)是上面第二條所說的依賴的第三方庫。
這里三個(gè).a文件只需要導(dǎo)入最后一個(gè)即可。
下面進(jìn)行擼代碼:
////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-****************進(jìn)行UI布局-(void)setUILayout{UIButton*button=[UIButtonbuttonWithType:UIButtonTypeCustom]; button.frame=CGRectMake(0,0,120,40); button.center=self.view.center; [buttonsetTitle:@"點(diǎn)擊說話"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-****************長按手勢(shì)-(void)longTouchWith:(UILongPressGestureRecognizer*)longPress{if(longPress.state==UIGestureRecognizerStateBegan){ [_sharedInstancestartVoiceRecognition]; }elseif(longPress.state==UIGestureRecognizerStateEnded){ [_sharedInstancestopRecognize]; } }#pragmamark-****************語音識(shí)別結(jié)果-(void)onRecognitionResult:(NSString*)result{NSLog(@"result=%@",result);NSMutableDictionary*dic=[NSMutableDictionarydictionary]; [dicsetObject:RobotAPIKeyforKey:@"key"]; [dicsetObject:resultforKey:@"info"]; [dicsetObject:@"123456"forKey:@"userid"]; [selfnetWorkingWith:dic]; }#pragmamark----語音識(shí)別錯(cuò)誤-(void)onRecognitionError:(NSString*)errStr{NSLog(@"Error=%@",errStr); } -(void)onStartRecognize{NSLog(@"開始說話"); } -(void)onSpeechStart{NSLog(@"檢測(cè)到已說話"); } -(void)onSpeechEnd{NSLog(@"檢測(cè)到已停止說話"); }#pragmamark-****************網(wǎng)絡(luò)請(qǐng)求-(void)netWorkingWith:(NSDictionary*)dic{ [GlobalNetWorkingnetworkWithUrl:@"http://www.tuling123.com/openapi/api"andParametersDic:dicandSuccess:^(idrootObject,iddatasObject,boolisSuccess){//這里獲取到機(jī)器人反饋的回答 NSString*text=rootObject[@"text"];NSLog(@"%@",text);//進(jìn)行語音合成 [self.sythesizerstart:text]; }andFailure:^(NSError*error){ [self.sythesizerstart:@"網(wǎng)絡(luò)請(qǐng)求出錯(cuò)!"]; }]; } -(void)didReceiveMemoryWarning{ [superdidReceiveMemoryWarning];//Disposeofanyresourcesthatcanberecreated.}@end
demo 下載地址:http://download.csdn.net/detail/qq_34195670/9602252
github地址:https://github.com/goingmyway1/TuLingRobot
評(píng)論