1.http://yuyin.baidu.com百度語音開發(fā)者平臺注冊帳號
2.創(chuàng)建應(yīng)用,如下圖:
3.下載SDK
SDK下載——>01選擇應(yīng)用 02選擇可用的SDK及資源
4.參考文檔配置工程
文檔中心——>產(chǎn)品文檔(語音識別—>離在線語音識別IOS SDK)
開始配置
4.1.引入編譯需要的Framework—>>Build Phase->Link Binary With Libraries
4.2.引入靜態(tài)庫文件——>>libBDVoiceRecognitionClient.a
4.3.添加第三方開源庫(2和3已經(jīng)放在一個文件夾)
(ps:避免直接拖文件夾到工程中窜骄,有可能文件并沒有在工程的資源文件夾內(nèi)剩膘。先在fider中創(chuàng)建并添加再從工程中add)
4.4.引入庫所需的資源文件(百度內(nèi)置的UI卒茬,這里不需要)
4.5.引入授權(quán)文件和數(shù)據(jù)文件(離線需要蘸泻,這里不需要)
4.6.引入頭文件(這里只使用識別接口食铐,所以只導(dǎo)入以下頭文件)
#import “BDVoiceRecognitionClient.h”
#import"CATRadarView.h"
4.7引入靜態(tài)庫文件(libBDVoiceRecognitionClient.a)遇到的坑
現(xiàn)象:
----(null) -----Error Domain=WKErrorDomain Code=4 "發(fā)生 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狰腌、網(wǎng)頁搜索報錯(js報錯原因及解決)
http://www.reibang.com/p/e9e70cd2da22
a.原因
b.解決
3、網(wǎng)頁搜索集成的坑(干貨)—>>引起js報錯的原因
libBDVoiceRecognitionClient.a中會封裝自己的json.kit,這個框架的json格式與自己公司開發(fā)中和H5協(xié)定的格式不一致牧氮,導(dǎo)致導(dǎo)入后原有的與H5交互的數(shù)據(jù)都無法返回甚至報錯
4.8具體接口調(diào)用參考百度demo
a.頭文件
#import "BDVoiceRecognitionClient.h"
b.配置 BDVoiceRecognitionClient
// 使用自己申請的應(yīng)用的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.實現(xiàn)MVoiceRecognitionClientDelegate協(xié)議中代理方法
- (void)VoiceRecognitionClientWorkStatus:(int) aStatus obj:(id)aObj{
switch (aStatus) {
case EVoiceRecognitionClientWorkStatusStartWorkIng:
NSLog(@"開始錄音");
break;
case EVoiceRecognitionClientWorkStatusStart:
NSLog(@"檢測到用戶開始說話");
break;
case EVoiceRecognitionClientWorkStatusEnd:
NSLog(@"結(jié)束錄音");
break;
case EVoiceRecognitionClientWorkStatusFinish:
{
// 此處返回識別結(jié)果
NSLog(@"語音識別功能完成琼腔,服務(wù)器返回正確結(jié)果");
NSString * string = [aObj JSONString];
NSLog(@"識別結(jié)果: %@",string);
break;
}
default:
break;
}
}
d.退出時釋放BDVoiceRecognitionClient對象,不釋放有可能會崩潰踱葛。
#pragma mark------>>退出頁面釋放
-(void)dealloc {
[BDVoiceRecognitionClientreleaseInstance];
}