1.demo自帶的document文件(詳細(xì)的參數(shù)設(shè)置及api講解)

2.重要參數(shù)講解(doc中)
2.1設(shè)置語(yǔ)音識(shí)別模式TBDV oiceRecognitionProperty(18種不同的識(shí)別垂類)
BOOL res= [[BDVoiceRecognitionClientsharedInstance]setPropertyList: @[]];
用處:如果貴公司搜索業(yè)務(wù)是屬于18種類型中的某一種,可以采用,否則慎用。
原理:若設(shè)置了某一類(如地圖),百度會(huì)現(xiàn)在你設(shè)置的地圖類詞庫(kù)中優(yōu)先搜索,若搜索到就匹配轉(zhuǎn)義,若沒(méi)有,繼續(xù)去大詞庫(kù)做循環(huán)查找。
結(jié)果:若公司的搜索業(yè)務(wù)只是一般的關(guān)鍵詞,或者不在18中垂直類型里,建議不設(shè)置(可以不設(shè)置默認(rèn)就是輸入EVoiceRecognitionPropertyInput),否則會(huì)導(dǎo)致識(shí)別時(shí)間稍長(zhǎng)和準(zhǔn)確率偏低(已踩坑)。
2.2當(dāng)前支持3種不同的識(shí)別語(yǔ)言:普通話、粵語(yǔ)和美式英文,(可以不設(shè)置默認(rèn))為普通話,取值參見(jiàn)BDVoiceRecognitionClient.h中的枚舉類型。
[[BDVoiceRecognitionClientsharedInstance]setLanguage:];
2.3錄音開(kāi)始提示音和結(jié)束提示音(在開(kāi)始語(yǔ)音識(shí)別前,配置 示音的開(kāi)關(guān))
具體見(jiàn)doc圖片文件
a.引入提示音 文件
b.打開(kāi)播放 提示音的開(kāi)關(guān)
2.4其他設(shè)置
禁用標(biāo)點(diǎn)符號(hào),(可以不設(shè)置)默認(rèn)為不禁用。
[[BDVoiceRecognitionClientsharedInstance]disablePuncs:YES];
設(shè)置是否對(duì)語(yǔ)音進(jìn)行端點(diǎn)檢測(cè),(可以不設(shè)置)默認(rèn)開(kāi)啟。如進(jìn)行端點(diǎn)檢測(cè),SDK會(huì)自動(dòng)判斷說(shuō)話是否結(jié)束,從而停止錄音;否則,需要調(diào)用speakFinish顯式結(jié)束識(shí)別錄音。
[[BDVoiceRecognitionClientsharedInstance]setNeedVadFlag:YES];
設(shè)置是否對(duì)上傳的語(yǔ)音進(jìn)行壓縮,(可以不設(shè)置)默認(rèn)開(kāi)啟。壓縮語(yǔ)音會(huì)節(jié)約手機(jī)流量,但是會(huì)消耗CPU資源。
[[BDVoiceRecognitionClientsharedInstance]setNeedCompressFlag:YES];
設(shè)置在線識(shí)別的響應(yīng)等待時(shí)間,如果超時(shí),觸發(fā)同步離線識(shí)別。
[[BDVoiceRecognitionClientsharedInstance]setOnlineWaitTime:5];
3.重要API講解(doc中)
3.1開(kāi)始語(yǔ)音識(shí)別需要配置參數(shù),具體配置可參考開(kāi)發(fā)包頭文件中的說(shuō)明。開(kāi)發(fā)者信息ApiKey
和SecretKey為必須配置項(xiàng),其余可選。設(shè)置方式如下:
[[BDVoiceRecognitionClientsharedInstance]setApiKey:@"apiKey "withSecretKey:@”se
cretKey”];
3.2開(kāi)始語(yǔ)音API(設(shè)置自己為代理,也就可以任意耍了 轉(zhuǎn)義 錯(cuò)誤 網(wǎng)絡(luò)情況)
[BDVoiceRecognitionClientsharedInstance]startVoiceRecognition:self];
3.3啟動(dòng)語(yǔ)音識(shí)別:此操作將會(huì)啟動(dòng)錄音,預(yù)處理和網(wǎng)絡(luò)通訊三個(gè)模塊的工作(3個(gè)都是可選協(xié)議方法)。
a.啟動(dòng)語(yǔ)音(接收語(yǔ)音識(shí)別的結(jié)果):這里建議采用demo中的方式
//開(kāi)始語(yǔ)音識(shí)別功能,之前必須實(shí)現(xiàn)MVoiceRecognitionClientDelegate協(xié)議中的-(void)VoiceRecognitionClientWorkStatus:(int)aStatus obj:(id)aObj方法
感興趣的同學(xué)可以打斷點(diǎn)調(diào)試每個(gè)方法的執(zhí)行順序,一方面加深代理方法的調(diào)用順序,另一方面可以在某個(gè)具體的枚舉方法中實(shí)現(xiàn)自己需要的某些效果。
ps:
intstartStatus = -1;
startStatus = [[BDVoiceRecognitionClientsharedInstance]startVoiceRecognition:self];
if(startStatus !=EVoiceRecognitionStartWorking)//創(chuàng)建失敗則報(bào)告錯(cuò)誤
{
NSString*statusString = [NSStringstringWithFormat:@"%d",startStatus];
[selfperformSelector:@selector(firstStartError:)withObject:statusStringafterDelay:0.3];//延遲0.3秒,以便能在出錯(cuò)時(shí)正常刪除view
return;
}
…

b.如果應(yīng)用程序需要監(jiān)聽(tīng)BDVRClient識(shí)別過(guò)程中的網(wǎng)絡(luò)狀態(tài),需要實(shí)現(xiàn)如下方法,代碼如下:
- (void)VoiceRecognitionClientNetWorkStatus:(int) aStatus{
switch (aStatus){
case EVoiceRecognitionClientNetWorkStatusStart:{
// 底層網(wǎng)絡(luò)通訊模塊通訊開(kāi)始,用戶可以在狀態(tài)條中顯示菊花轉(zhuǎn)等等, 示用戶
break;}
case EVoiceRecognitionClientNetWorkStatusEnd:{
//底層網(wǎng)絡(luò)通訊模塊通訊完成,同樣此狀態(tài)可以在UI上給用戶 示break;
}}
}
c.BDVRClient識(shí)別中發(fā)生錯(cuò)誤后,如果應(yīng)用程序需要得到更加詳細(xì)的錯(cuò)誤信息,需要實(shí)現(xiàn)如下方法,具體的錯(cuò)誤類型說(shuō)明參考表4(doc文檔)。
- (void)VoiceRecognitionClientErrorStatus:(int) aStatus subStatus:(int)aSubStatus{
switch (aStatus){
case EVoiceRecognitionClientErrorStatusClassVDP:{
//語(yǔ)音數(shù)據(jù)處理出錯(cuò)switch (aSubStatus){
case EVoiceRecognitionClientErrorStatusNoSpeech:{
//用戶未說(shuō)話
break;}
//其他case}
break;}
case EVoiceRecognitionClientErrorStatusClassRecord:{
//錄音出錯(cuò)
break;}
case EVoiceRecognitionClientErrorStatusClassLocalNet:{
//網(wǎng)絡(luò)出錯(cuò)break;
}
case EVoiceRecognitionClientErrorStatusClassServerNet:{
//服務(wù)器返回錯(cuò)誤
break;}