版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、本手冊(cè)內(nèi)容若有變動(dòng),恕不另行通知。本手冊(cè)例子中所用的公司、人名和數(shù)據(jù)若非特別,均屬虛構(gòu)。未得到訊飛明確的,不得為任何目的、以或(電子的或機(jī)械的)或手冊(cè)的。本文檔可能涉及訊飛的專(zhuān)利(或正在申請(qǐng)的專(zhuān)利)、商標(biāo)、或其他知識(shí)產(chǎn)權(quán),除非得到訊飛信息的明確協(xié)議,本文檔不授予使用這些專(zhuān)利(或正在申請(qǐng)的專(zhuān)利)、商標(biāo)、或其他知識(shí)的任何協(xié)議。本手冊(cè)提及的其它產(chǎn)品和公司名稱(chēng)均可能是各自所有者的商標(biāo)。本產(chǎn)品受最終用戶協(xié)議(EULA)中所述條款和條件的約束,該協(xié)議位于產(chǎn)品安裝向?qū)С绦蛑?,使用本產(chǎn)品,表明您已閱讀并接受了 EULA 的條款。訊飛Copyrights iFLYTEK CO.,.1 概述語(yǔ)音 SDK 旨在使第
2、應(yīng)用便利的集成和使用訊飛的人臉,聲紋,融合認(rèn)證服務(wù)。1.1 目的本文檔對(duì)人臉檢測(cè)、人臉,人臉識(shí)別,聲紋識(shí)別的接口進(jìn)行定義。文檔讀者為使用語(yǔ)音 SDK 進(jìn)行開(kāi)發(fā)的產(chǎn)品設(shè)計(jì)師、工程師。1.2 范圍本文檔定義人臉檢測(cè)、人臉,人臉識(shí)別,聲紋識(shí)別的使用說(shuō)明、體系結(jié)構(gòu)、API 接口。不包含引擎的性能定義,也不包含其它配套或附贈(zèng)產(chǎn)品的使用說(shuō)明。2C+開(kāi)發(fā)包2.1 人臉聲紋融合認(rèn)證相關(guān)開(kāi)發(fā)接2.1.1 接簡(jiǎn)介名詞和縮略語(yǔ)這一節(jié)列出了本開(kāi)mt_scylla檔中出現(xiàn)的一些名詞和縮略語(yǔ)。訊飛生物認(rèn)證接口動(dòng)態(tài)庫(kù)名稱(chēng)。下文提到的 mt_scylla 如果沒(méi)有特別說(shuō)明均指該客戶端。文檔說(shuō)明本文介紹了怎樣使用訊飛公司提供的
3、私有云開(kāi)發(fā)接口(SCY Recognize API)編寫(xiě)使用訊飛生物認(rèn)證引擎(SCY)的應(yīng)用程序,并給出了完整的例程。本文是針對(duì)具有一些 Win32 編程經(jīng)驗(yàn)的 C/C+程序員而寫(xiě)的。以下是文檔中的一些約定符號(hào):開(kāi)發(fā)包組件Windows下的開(kāi)發(fā)2.1.2 接口函數(shù)列表在生物認(rèn)證接口中提供如下函數(shù)調(diào)用:函數(shù)名稱(chēng)功能簡(jiǎn)介SCYBIOMTInitialize初始化客戶端SCYBIOMTUninitialize逆初始化客戶端SCYBIOfaceoperation生物認(rèn)證人臉接口開(kāi)發(fā)組件組件組成說(shuō)明頭文件bio_scylla.h、scylla_errors.h接口函數(shù)的動(dòng)態(tài)引入庫(kù)mt_scylla.li
4、b包含接口函數(shù)的引入運(yùn)行時(shí)刻庫(kù)mt_scylla.dll接口函數(shù)的具體實(shí)現(xiàn)符號(hào)含義in表明該參數(shù)是調(diào)用時(shí)賦值的參數(shù)輸入?yún)?shù)out該參數(shù)在函數(shù)返回時(shí)被賦值輸出參數(shù)in/out該參數(shù)在函數(shù)調(diào)用時(shí)作為輸入、函數(shù)返回時(shí)作為輸出參數(shù)口口2.1.3 函數(shù)調(diào)用2.1.3.1 SCYBIOMTInitialize函數(shù)原型SCYAPI SCYBIOMTInitialize (const char* server_addr, const char* ap功能初始化生物認(rèn)證客戶端,初始化全局信息。參數(shù)server_addr in私有云 src服務(wù)接口地址,具體形式為:,timeout);apin私有云系統(tǒng)分配的應(yīng)用
5、 IDtimeout in超時(shí)時(shí)間設(shè)置返回值如果函數(shù)調(diào)用成功返回 0,否則返回錯(cuò)誤代號(hào);錯(cuò)誤代碼請(qǐng)參考 scylla_errors.h,常見(jiàn)值如下:說(shuō)明這個(gè)函數(shù)必須在調(diào)用其他函數(shù)之前調(diào)用,一個(gè)進(jìn)程僅能調(diào)用一次。不支持多線程。示例參見(jiàn)SCYBIOMTInitialize ()2.1.3.2 SCYBIOMTUninitialize函數(shù)原型SCYAPI SCYBIOMTUninitialize (void);const char* ap= “12345678”; const char* server_addr =ret = SCYBIOMTInitialize (server_addr, ap,1
6、0) if ( ret != SCY_SUCS )pr f(“SCYMTInitialize failed, ret = %d.n”, ret);返回值意義SCY_SUCS函數(shù)執(zhí)行成功。SCY_ERROR_ALREADY_EXIST引擎已經(jīng)被初始化了SCY_ERROR_OUT_OF_MEMORY分配內(nèi)存失敗SCYBIOvoiceopr生物認(rèn)證聲紋初始化接口SCYBIOvoiceoprsecond生物認(rèn)證聲紋接口SCYBIOfuopr生物認(rèn)證融合初始化接口SCYBIOfuoprsecond生物認(rèn)證融合接口功能關(guān)閉客戶端,參數(shù)無(wú)。返回值全局資源。如果函數(shù)調(diào)用成功返回 0,否則返回錯(cuò)誤代號(hào);錯(cuò)誤代碼
7、請(qǐng)參考 scylla_errors.h,常見(jiàn)值如下:說(shuō)明這個(gè)函數(shù)是識(shí)別接口中最后一個(gè)調(diào)用的函數(shù),必須保證一個(gè)進(jìn)程僅調(diào)用一次。示例參見(jiàn)SCYBIOMTUninitialize ()2.1.3.3SCYBIOfaceoperation函數(shù)原型SCYAPI SCYBIOfaceoperation(char *param, char *file_path,file_len, char*respon_msg,功能len)完成人臉,鑒別,注銷(xiāo),認(rèn)證,更新等功能。參數(shù)paramin參數(shù)標(biāo)識(shí)符數(shù)據(jù)項(xiàng)名稱(chēng)類(lèi)型content-typ e長(zhǎng)度必填項(xiàng)備注uid用戶名Stringtext/plain, UTF-830Y
8、包含字母,數(shù)字SID號(hào)碼Stringtext/plain, UTF-830N建議傳值,便于后續(xù)效果優(yōu)化apapp 對(duì)應(yīng)idStringtext/plain, UTF-88Y從申請(qǐng)得到的 applatform接入Stringtext/plain, UTF-88N接入 Android IOS取其一,此參數(shù)影響后期統(tǒng)計(jì)數(shù)據(jù),請(qǐng)務(wù)必傳正確參數(shù)osM輔助信息Stringtext/plain, UTF-8N比如,型號(hào):5S多個(gè)參數(shù)之間使ret = SCYBIOMTUninitialize (); if ( ret != SCY_SUCS )pr f(“SCYMTUninitialize failed, r
9、et = %d.n”, ret);返回值意義SCY_SUCS函數(shù)執(zhí)行成功。SCY_ERROR_NOT_INIT系統(tǒng)未初始化注意:人臉普通鑒別的時(shí)候人臉參數(shù)。是 jpg, operationType 為 identify,需要加和 grou多人臉鑒別的時(shí)候,傳入的人臉是 NV21 格式,operationType 為 multi_identify,需要加和 grou,人臉的寬高,人臉框坐標(biāo)參數(shù)。注意:coordinate 以json 字符串形式傳入,如: coordinate: id : 1 , id : 2, id : 3 ,ition:x y w h,ition:x y w h,ition:
10、x y w hfile_pathinbuf人臉路徑或者人臉file_lenin傳人臉路徑的時(shí)候?yàn)?1, 傳人臉respon_msgout返回的信息buf,為 buf 大小標(biāo)識(shí)符數(shù)據(jù)項(xiàng)名稱(chēng)類(lèi)型content-typ e長(zhǎng)度必填項(xiàng)備注grou組 IDStringtext/plain, UTF-8=10YoperationType操作類(lèi)型Stringtext/plain, UTF-8Ymulti_identify取前 1 位Stringtext/plain, UTF-8Y數(shù)字 1-10 內(nèi)coordinate人臉坐標(biāo)Stringtext/plain, UTF-8YheightNV21 格式高度Str
11、ingtext/plain, UTF-8YwidthNV21 格式寬度Stringtext/plain, UTF-8Y標(biāo)識(shí)符數(shù)據(jù)項(xiàng)名稱(chēng)類(lèi)型content-typ e長(zhǎng)度必填項(xiàng)備注grou組 IDStringtext/plain, UTF-8=10YoperationType操作類(lèi)型Stringtext/plain, UTF-8Yidentify取前幾位Stringtext/plain, UTF-8Y數(shù)字 1-10 內(nèi)用“-”分割aue壓縮格式Stringtext/plain, UTF-8Y圖像壓縮格式,目前取值為 rawfeatureType生物特征類(lèi)型Stringtext/plain, UT
12、F-8YfaceoperationType操作類(lèi)型Stringtext/plain, UTF-8Yverify/logout/reg/identify/ updatelenin返回信息 buf 的長(zhǎng)度返回值示例如果函數(shù)調(diào)用成功返回 0,否則返回-1,respon_msg 里面有詳細(xì)的錯(cuò)誤信息。注意:人臉鑒別的時(shí)候,res_msg的buf要足夠大,一般要1024。其他的人臉相關(guān)功能,res_msg的buf 128就可以了。2.1.3.4SCYBIOvoiceopr函數(shù)原型SCYAPI SCYBIOvoiceopr功能(char *param, char *respon_msg,len)聲紋/更新
13、/認(rèn)證/鑒別初始化參數(shù)paramin請(qǐng)求參數(shù):標(biāo)識(shí)符數(shù)據(jù)項(xiàng)名稱(chēng)類(lèi)型content-typ e長(zhǎng)度必填項(xiàng)備注uid用戶名Stringtext/plain, UTF-830Y包含字母,數(shù)字SID號(hào)碼Stringtext/plain, UTF-830N建議傳值,便于后續(xù)效果優(yōu)化sexStringtext/plain, UTF-81NM:男 F:女a(chǎn)papp 對(duì)應(yīng)idStringtext/plain, UTF-88Y從申請(qǐng)得到的 applatform接入Stringtext/plain, UTF-88N接入Android/ 啟動(dòng)人臉相關(guān)的功能string ap= pc20onli;string ser
14、ver_addr= ;char res_msg100 = 0;/*if (argc != 2)pr f(param error!nTheparam is file path.n); return -1;*/ret = init(server_addr, ap); if(0 != ret)pr f(init failedn); return ret;stringparam= uid=44444444444,ap=pc20onli,platform=Android,aue=raw,operationType=logout,featureType=face;char *path=12.jpg;ret
15、 = SCYBIOfaceoperation_(char *)param.c_str(), path,-1, res_msg, 100);注意:聲紋鑒別的時(shí)候需要額外傳入, 和grou參數(shù)。respon_msgout標(biāo)識(shí)符數(shù)據(jù)項(xiàng)名稱(chēng)類(lèi)型content-typ e長(zhǎng)度必填項(xiàng)備注grou組 IDStringtext/plain, UTF-8=10Y取前幾位Stringtext/plain, UTF-8Y數(shù)字 1-10 內(nèi)IOS取其一,此參數(shù)影響后期統(tǒng)計(jì)數(shù)據(jù),請(qǐng)務(wù)必傳正確參數(shù)osM輔助信息Stringtext/plain, UTF-8N比如,型號(hào):5S多個(gè)參數(shù)之間使用“-”分割featureType
16、生物特征類(lèi)型Stringtext/plain, UTF-8YvoiceoperationType操作類(lèi)型Stringtext/plain, UTF-8YregInit:初始化 updateInit:更新初始化 identifyInit:鑒別初始化 verifyInit:認(rèn)證初始化sub服務(wù)標(biāo)識(shí)Stringtext/plain, UTF-8Y默認(rèn):ivp(聲紋)work_mode工作模式Stringtext/plain, UTF-8Y默認(rèn): digit_mode(數(shù)字)ssm立即返回結(jié)果Stringtext/plain, UTF-81Y默認(rèn):00:不立即返回結(jié)果 1:立即返回結(jié)果rgn上傳音頻次
17、數(shù)text/plain, UTF-8Y默認(rèn):5aue音頻壓縮格式Stringtext/plain, UTF-8Y默認(rèn):raw raw speex-wbauf音頻格式Stringtext/plain, UTF-8Y默認(rèn):audio/L16;rate=16000即 16k16bit返回的信息,如果沒(méi)有發(fā)生錯(cuò)誤,會(huì)返回一個(gè) seslenin返回信息 buf 的長(zhǎng)度_id, 在聲紋相關(guān)接口的第二步要使用。返回值如果函數(shù)調(diào)用成功返回 0,否則返回-1,更詳細(xì)的錯(cuò)誤信息是在 respon_msg里面會(huì)說(shuō)明。該函數(shù)用于聲紋相關(guān)功能的初始化。示例SCYBIOvoiceoprsecond函數(shù)原型SCYAPI S
18、CYBIOvoiceoprsecond(char *param, char *file,功能聲紋/更新/認(rèn)證/鑒別音頻寫(xiě)入?yún)?shù)paraminfile_len, char *respon_msg,len)標(biāo)識(shí)符數(shù)據(jù)項(xiàng)名稱(chēng)類(lèi)型content-ty pe長(zhǎng)度必填項(xiàng)備注sesId會(huì)話 IDStringtext/plain, UTF-830Y初始化獲得uid用戶名Stringtext/plain, UTF-830Y包含字母,數(shù)字apapp 對(duì)應(yīng)idStringtext/plain, UTF-88Y從申請(qǐng)得到的 applatform接入Stringtext/plain, UTF-88N接入 Android
19、 IOS取其一,此參數(shù)影響后期統(tǒng)計(jì)數(shù) 據(jù),請(qǐng)務(wù)必傳正確參數(shù)featureTyp e生物特征類(lèi)型Stringtext/plain, UTF-8Yvoice/ 聲紋初始化stringparam= uid=test5555,ap=pc20onli,platform=Android,aue=raw,operationType=identifyInit,featureType=voice,rgn=5,auf=audio/L16;rate=16000,sub=ivp,ssm=0,work_mode=digit_mode,ptxt=27534908,=2,grou=103 ;ret = SCYBIOvoic
20、eopr_(char *)param.c_str(), res_msg, 1024);file in音頻路徑或者 音頻 buffile_lenin傳音頻路徑的時(shí)候?yàn)?1, 傳音頻 buf,為 buf 大小respon_msg out返回的信息len in返回信息 buf 的長(zhǎng)度返回值接口參數(shù)中 ret respon_msg說(shuō)明0 ,否則返回-1, 更詳細(xì)的信息在表示返回值。如果函數(shù)調(diào)用成功返回。示例/string ses_id = rootsesId.asString();stringparam1= uid=test5555,ap=pc20onli,platform=Android,aue=r
21、aw,operationType=identify,featureType=voice,rgn=5, auf=audio/L16;rate=16000,sub=ivp,ssm=0,work_mode=digit_mode,sesId= + ses_id;for (i = 1; i = 1; i+)開(kāi)啟聲紋/更新初始化后,上傳準(zhǔn)備的音頻文件注意:每傳一次音頻,調(diào)用一次此接口,最后一次音頻上傳時(shí),需要加入 sus 參數(shù),不管初始化時(shí) rgn(次數(shù))是幾次,這里都是傳入 4.從初始化到最后一次音頻傳入,總共時(shí)間必須在 60s 內(nèi),此時(shí)間在配置文件中,可通過(guò)修改引擎參數(shù)調(diào)整。開(kāi)啟聲紋認(rèn)證后,上傳準(zhǔn)備認(rèn)
22、證的音頻文件。注意:從初始化到音頻傳入,總共時(shí)間必須在 20s 內(nèi),此時(shí)間在配置文件中,可通過(guò)修改引擎參數(shù)調(diào)整。開(kāi)啟聲紋鑒別后,上傳準(zhǔn)備的音頻文件。注意:從初始化到音頻傳入,總共時(shí)間必須在 20s 內(nèi),此時(shí)間在配置文件中,可通過(guò)修改引擎參數(shù)調(diào)整。operationT ype操作類(lèi)型Stringtext/plain, UTF-8Y:reg 更新: update 認(rèn)證: verify 鑒別: identifysus音頻狀態(tài)text/plain, UTF-8Y默認(rèn):4注意:此參數(shù)只在最后一次音頻上傳時(shí)加入memset(file_, 0, sizeof(file_); spr f(file_, ./r
23、eg/%d.pcm, i); string file_name = file_;string body; body.clear();fill_body(body, file_name); filelen = body.length();memset(res_msg, 0, 1024); if (i = 5) param1 = param1 + ,audio_sus=4;SCYBIOvoiceoprsecond_(char *)param1.c_str(), (char *)body.c_str(), filelen, res_msg, 1024); pr f(* %sn, res_msg);注
24、意:聲紋鑒別的時(shí)候,res_msg的buf要足夠大,一般要1024。其他的聲紋相關(guān)功能,res_msg的buf 128就可以了。2.1.3.6 SCYBIOfuopr函數(shù)原型SCYAPI SCYBIOfu功能融合認(rèn)證初始化參數(shù)param inopr(char *param, char *respon_msg,len)標(biāo)識(shí)符數(shù)據(jù)項(xiàng)名稱(chēng)類(lèi)型content-typ e長(zhǎng)度必填項(xiàng)備注uid用戶名Stringtext/plain, UTF-830Y包含字母,數(shù)字SID號(hào)碼Stringtext/plain, UTF-830N建議傳值,便于后續(xù)效果優(yōu)化apapp 對(duì)應(yīng)idStringtext/plain,
25、UTF-88Y從申請(qǐng)得到的 applatform接入Stringtext/plain, UTF-88N接入 Android IOS取其一,此參數(shù)影響后期統(tǒng)計(jì)數(shù)據(jù),請(qǐng)務(wù)必傳正確參數(shù)osM輔助信息Stringtext/plain, UTF-8N比如,型號(hào):5S多個(gè)參數(shù)之間使用“-”分割featureType生物特征類(lèi)型Stringtext/plain, UTF-8YfuoperationType操作類(lèi)型Stringtext/plain,YverifyInitrespon_msgout返回的信息,返回的信息如下:返回參數(shù):lenin返回信息 buf 的長(zhǎng)度返回值如果函數(shù)調(diào)用成功返回 0,否則返回錯(cuò)誤
26、-1,更詳細(xì)的信息說(shuō)明在 respon_msg 中。使用融合認(rèn)證時(shí),必須先調(diào)用一次初始化,獲取 ses示例Id 和認(rèn)證的 8 位數(shù)字/ret = init(server_addr, ap); if(0 != ret)pr f(init failedn); return ret;stringparam= uid=test,ap=pc20onli,platform=Android,aue=raw,operationType=verifyInit,featureType=fu,auf=audio/L16;rate=16000,sub=ivp,ssm=0,work_mode=digit_mode,pt
27、xt=27534908;標(biāo)識(shí)符數(shù)據(jù)項(xiàng)名稱(chēng)類(lèi)型長(zhǎng)度必填項(xiàng)備注responseCode響應(yīng)碼String4Y詳見(jiàn) responseCode 代碼表ptxt數(shù)字StringY用戶認(rèn)證時(shí)需要讀的數(shù)字串sesId會(huì)話唯一 idString此 id 在后面人臉和聲紋數(shù)據(jù)發(fā)送時(shí)需帶入U(xiǎn)TF-8sub服務(wù)標(biāo)識(shí)Stringtext/plain, UTF-8Y默認(rèn):ivp(聲紋)work_mode工作模式Stringtext/plain, UTF-8Y默認(rèn): digit_mode(數(shù)字)ssm返回狀態(tài)Stringtext/plain, UTF-8Y0:等待后續(xù)輸入1:立即返回aue音頻壓縮格式Stringtext
28、/plain, UTF-8Y默認(rèn):raw(對(duì)應(yīng) PCM 格式), speex-wbauf音頻格式Stringtext/plain, UTF-8Y目前只支持audio/L16;rate=16000 即16k16bit2.1.3.7 SCYBIOfu函數(shù)原型SCYAPI SCYBIOfuoprsecondoprsecond(char *param, char *face_path, char *voice_path,face_len,voice_len,功能rstid, char *respon_msg,len)融合認(rèn)證人臉、音頻同時(shí)寫(xiě)入?yún)?shù)paramin鍵值對(duì)形式,逗號(hào)分隔:如uid=44444
29、444444,ap=pc20onli,platform=Android,aue=raw,operationType=logout,featureType=face;face_pathin人臉路徑或者人臉bufvoice_pathin標(biāo)識(shí)符數(shù)據(jù)項(xiàng)名稱(chēng)類(lèi)型content-typ e長(zhǎng)度必填項(xiàng)備注sesId唯一會(huì)話 idStringtext/plain, UTF-8Y初始化后獲得的結(jié)果中uid用戶名Stringtext/plain, UTF-830Y包含字母,數(shù)字SID號(hào)碼Stringtext/plain, UTF-830N建議傳值,便于后續(xù)效果優(yōu)化apapp 對(duì)應(yīng)idStringtext/plai
30、n, UTF-88Y從申請(qǐng)得到的 applatform接入Stringtext/plain, UTF-88N接入 Android IOS取其一,此參數(shù)影響后期統(tǒng)計(jì)數(shù)據(jù),請(qǐng)務(wù)必傳正確參數(shù)osM輔助信息Stringtext/plain, UTF-8N比如,型號(hào):5S多個(gè)參數(shù)之間使用“-”分割featureType生物特征類(lèi)型Stringtext/plain, UTF-8YfuoperationType操作類(lèi)型Stringtext/plain, UTF-8Yverifyaue壓縮格式Stringtext/plain, UTF-8Y圖像壓縮格式,目前取值為 rawrstid認(rèn)證順序Stringtext
31、/plain, UTF-8Y0ret = SCYBIOfuopr_(char *)param.c_str(), res_msg, 1024);聲紋音頻路徑或者音頻 bufface_lenin傳人臉路徑的時(shí)候?yàn)?1, 傳人臉buf,為 buf 大小rstidin融合認(rèn)證方式,傳入 0 是人臉、聲紋同時(shí)認(rèn)證此時(shí)需要同時(shí)傳入人臉和音頻。該值為 1 表示傳入人臉該值為 2.建議該值傳入 0。voice_lenin,此時(shí)音頻不傳入,后面在調(diào)用該接口進(jìn)行音頻傳入,音頻傳入的時(shí)候傳音頻路徑的時(shí)候?yàn)?1, 傳音頻 buf,為 buf 大小respon_msgout返回的信息,返回的內(nèi)容如下:lenin返回信息
32、 buf 的長(zhǎng)度返回值如果函數(shù)調(diào)用成功返回 0,否則返回錯(cuò)誤-1,更詳細(xì)的信息見(jiàn)說(shuō)明respon_msg。示例/string ses_id = rootsesId.asString();stringparam1= uid=test,ap =pc20onli,platform=Android,aue=raw,operationType=verify,featureType=fu ,auf=audio/L1 6;rate=16000,sub=ivp,ssm=0,rstid=0,work_mode=digit_mode,ses Id= + ses _id;memset(file_, 0, sizeo
33、f(file_); spr f(file_, ./verify/%d.pcm, 1); string file_name = file_;string face_body; string voice_body; voice_body.clear();fill_body(voice_body, file_name); voice_len = voice_body.length();memset(file_, 0, sizeof(file_);標(biāo)識(shí)符數(shù)據(jù)項(xiàng)名稱(chēng)類(lèi)型長(zhǎng)度必填項(xiàng)備注responseCode響應(yīng)碼String4Y詳見(jiàn) responseCode代碼表result認(rèn)證結(jié)果String1Y-1
34、:認(rèn)證中,流程未結(jié)束(只傳人臉,還未傳聲紋或只傳聲紋還未傳人臉) 0:認(rèn)證通過(guò)1:認(rèn)證不通過(guò)score得分StringY2.1.4 開(kāi)發(fā)指南2.1.4.1 搭建開(kāi)發(fā)環(huán)境在使用開(kāi)發(fā)接口進(jìn)行應(yīng)用開(kāi)發(fā)之前,用戶必須搭建編程支持環(huán)境。首先,需要在服務(wù)器端主機(jī)上安裝訊飛私有云服務(wù)。安裝完畢后,可以使用 MT_SCYApp.exe進(jìn)行驗(yàn)證。然后,需要在客戶端主機(jī)上部署開(kāi)發(fā)必須的支持環(huán)境,拷貝 C+ bin 目錄下的動(dòng)態(tài)庫(kù)到應(yīng)用程序運(yùn)行目錄。安裝目錄下包含使用接口所必須的頭文件、動(dòng)態(tài)引入庫(kù)、客戶端動(dòng)態(tài)給出開(kāi)發(fā)中需要的頭文件和庫(kù)文件列表:庫(kù)和示例程序,下面注意:這些庫(kù)文件可能依賴(lài)其它一些庫(kù),例如 VC 運(yùn)行時(shí)
35、刻庫(kù)等,用戶需要同時(shí)把依賴(lài)的庫(kù)部署至應(yīng)用環(huán)境中。2.1.4.2 使用 SCYLLA API 開(kāi)發(fā)搭建好開(kāi)發(fā)環(huán)境后就可以開(kāi)始的開(kāi)發(fā)工作,以下將介紹 SCYLLA 接口的常規(guī)開(kāi)發(fā)步驟。應(yīng)用程序的開(kāi)發(fā)請(qǐng)按照以下步驟進(jìn)行:1) 初始化在應(yīng)用程序初始化函數(shù)中調(diào)用 SCYMTInitialize 函數(shù),完成客戶端的初始化,這是使用 SDK 的第一步工作。/ 初始化const char* ap= “12345678”; const char* server_addr =ret = SCYMTInitialize(server_addr, ap);if ( ret = SCY_SUCS )開(kāi)發(fā)組件列表說(shuō)明頭文
36、件bio_scylla.h包含了所有識(shí)別開(kāi)發(fā)接口和語(yǔ)法接口的函數(shù)。scylla_types.h包含了類(lèi)型和結(jié)構(gòu)體定義。scylla_errors.h包含了識(shí)別系統(tǒng)所有可能返回的錯(cuò)誤代碼。動(dòng)態(tài)引入庫(kù)mt_scylla.lib隱式使用 syclla.dll 的動(dòng)態(tài)引入庫(kù)文件。動(dòng)態(tài)庫(kù)mt_scylla.dll實(shí)現(xiàn)動(dòng)態(tài)庫(kù)。例程MT_SCYApp.cpp使用開(kāi)發(fā)接口的例程。spr f(file_, ./verify/%d.jpg, 12); file_name = file_; face_body.clear(); fill_body(face_body, file_name);face_len = f
37、ace_body.length();memset(res_msg, 0, 1024);SCYBIOfuoprsecond_(char *)param1.c_str(), (char *)face_body.c_str(), (char *)voice_body.c_str(), face_len, voice_len, 0, res_msg, 1024);pr f(* %sn, res_msg);2) 人臉識(shí)別在應(yīng)用程序初始化函數(shù)中調(diào)用 SCYMTSesBegin 函數(shù),完成一路識(shí)別的初始化3) 逆初始化當(dāng)應(yīng)用程序退出時(shí),用戶必須調(diào)用 SCYUninitialize 函數(shù),斷開(kāi)所有的連接,并全
38、局資源,否則會(huì)造成系統(tǒng)資源泄漏。所有分配的2.1.5 開(kāi)發(fā)包例程2.1.5.1 簡(jiǎn)介在安裝包中提供了開(kāi)發(fā)實(shí)例程序 MT_SCYApp,這個(gè)例程演示了各個(gè)函數(shù)的用法。MT_SCYApp 是基于命令行的 Win32 應(yīng)用程序,這個(gè)例程使用 MS Visual studio 2010 開(kāi)發(fā)。2.1.5.2 開(kāi)發(fā)示例所有與 SCY API 接口相關(guān)的函數(shù)調(diào)用都位于 MT_SCYApp.cpp 文件中,下面列出了這個(gè)工程的源文件列表:3Android 開(kāi)發(fā)包3.1 人臉檢測(cè)和人臉開(kāi)發(fā)接3.1.1 n_init名稱(chēng):n_init口類(lèi)型名稱(chēng)說(shuō)明例程文件MT_SCYApp.cpp包含了 SCY API 的所有
39、調(diào)用。/ 逆初始化運(yùn)行庫(kù)ret = SCYBIOMTUninitialize (); if ( ret != SCY_SUCS )pr f(“SCYMTUninitialize failed, ret = %d.n”, ret);/ 啟動(dòng)人臉識(shí)別相關(guān)功能stringparam= uid=44444444444,ap=pc20onli,platform=Android,aue=raw,operationType=logout,featureType=face;char *path=12.jpg;ret = SCYBIOfaceoperation_(char *)param.c_str(), pa
40、th,-1, res_msg, 100);pr f(SCYMTInitialize OK.n);elsepr f(SCYMTInitialize FAILED, error code = %d.n, ret);功能:初始化引擎函數(shù)n_init(string path,reserve):參數(shù):inpath:人臉檢測(cè)引擎的模型路徑,不能為 null。 inreserve:備用字段,目前是日志打開(kāi)關(guān)閉的開(kāi)關(guān)返回值:成功返回 0,失敗返回其他錯(cuò)誤碼3.1.2 n_uninit名稱(chēng):n_uninit功能:逆初始化引擎函數(shù):參數(shù):n_uninit()返回值:成功返回 0,失敗返回其他錯(cuò)誤碼3.1.3 n_
41、create_detect名稱(chēng):n_create_detect功能:創(chuàng)建人臉檢測(cè)實(shí)例,可設(shè)置最小的人臉檢測(cè)框,不支持多線程調(diào)用,每個(gè)線程需要單獨(dú)創(chuàng)建實(shí)例:longn_create_detect(stringparams,參數(shù):size)in params:人臉檢測(cè)實(shí)例的參數(shù),目前可為空insize:最小的人臉檢測(cè)框,引擎默認(rèn)是 32,可根據(jù)實(shí)際調(diào)節(jié)返回值:成功返回檢測(cè)實(shí)例句柄,失敗返回其他錯(cuò)誤碼(負(fù)數(shù)返回)3.1.4 n_ detect名稱(chēng):n_detect功能:人臉檢測(cè)接口,檢測(cè)輸入的人臉位置和數(shù)量n_detect(long handle, byte data,: 參數(shù):inhandle:
42、人臉檢測(cè)句柄fmt,width,height,stride);in data:灰度圖像的數(shù)據(jù)部分,data 不能為 null. infmt: 圖像格式,目前是支持灰度(1) inwidth:圖像的寬度inheight:圖像的高度instride:圖像的步長(zhǎng)返回值:成功檢測(cè)的人臉,每個(gè)人臉包含 49,其中矩形框位置 4 個(gè),得分 1 個(gè)id,21關(guān)鍵點(diǎn) ,每個(gè)關(guān)鍵點(diǎn) 2 個(gè), 1 個(gè)表示關(guān)鍵點(diǎn)數(shù)目, 1 個(gè)表示3.1.5 n_ detect_quality名稱(chēng):n_detect_quality功能:人臉價(jià)floatn_detect_quality(long handle, byte data,
43、face_rect);:參數(shù):inhandle: 人臉檢測(cè)句柄fmt,width,height,stride,in data:灰度圖像的數(shù)據(jù)部分, data 不能為 null. infmt: 圖像格式,目前是支持灰度(1) inwidth:圖像的寬度inheight:圖像的高度 instride:圖像的步長(zhǎng)in face_rect:帶檢測(cè)的人臉框返回值:返回識(shí)別得分,該函數(shù)用于連續(xù)識(shí)別,無(wú)法固定絕對(duì)閾值3.1.6 n_destrory_detect名稱(chēng):n_destroy_detect 功能:銷(xiāo)毀人臉檢測(cè)實(shí)例n_destroy_detect(longhandle);: 參數(shù):inhandle:
44、 人臉檢測(cè)句柄返回值:成功返回 0,失敗返回其他錯(cuò)誤碼3.1.7 n_create_track名稱(chēng):n_create_track功能:創(chuàng)建人臉實(shí)例,不支持多線程調(diào)用,每個(gè)線程需要單獨(dú)創(chuàng)建實(shí)例:n_create_track (stringparams)參數(shù):in params:人臉實(shí)例的參數(shù),目前可為空返回值:成功返回返回人臉檢測(cè)實(shí)例句柄,失敗返回其他錯(cuò)誤碼(負(fù)數(shù))3.1.8 n_destrory_track名稱(chēng):n_destroy_track功能:銷(xiāo)毀人臉實(shí)例n_destroy_track (long handle);:參數(shù):inhandle: 人臉句柄返回值:成功返回 0,失敗返回其他錯(cuò)誤碼
45、3.1.9 n_ select_track名稱(chēng):n_select_track功能:選擇的目標(biāo)n_select_track(long handle, byte data,: 參數(shù):fmt,width,height,stride, face);inhandle: 人臉句柄in data:灰度圖像的數(shù)據(jù)部分,data 不能為 null. infmt: 圖像格式,目前是支持灰度(1) inwidth:圖像的寬度inheight:圖像的高度instride:圖像的步長(zhǎng)inface:需的人臉框返回值:成功返回 0,失敗返回其他錯(cuò)誤碼3.1.10 n_ track名稱(chēng):n_track功能:人臉接口,人臉目標(biāo)
46、n_track(long handle, byte data,: 參數(shù):fmt,width,height,stride);inhandle: 人臉句柄in data:灰度圖像的數(shù)據(jù)部分,data 不能為 null. infmt: 圖像格式,目前是支持灰度(1) inwidth:圖像的寬度inheight:圖像的高度 instride:圖像的步長(zhǎng)in face:輸入檢測(cè)的人臉框,用來(lái)判定是否丟失返回值:成功檢測(cè)的人臉,每個(gè)人臉包含 49,其中矩形框位置 4 個(gè),得分 1 個(gè)id,21關(guān)鍵點(diǎn) ,每個(gè)關(guān)鍵點(diǎn) 2 個(gè), 1 個(gè)表示關(guān)鍵點(diǎn)數(shù)目, 1 個(gè)表示3.1.11 n_update_track名稱(chēng):
47、n_update_track功能:目標(biāo)的特征更新接口,應(yīng)用根據(jù)人臉檢測(cè)的輔助判斷是當(dāng)前目標(biāo),可更新特征,效果。提高n_update_track(long handle, byte data,fmt,width,height,stride, face);參數(shù):inhandle: 人臉句柄in data:灰度圖像的數(shù)據(jù)部分,data 不能為 null. infmt: 圖像格式,目前是支持灰度(1) inwidth:圖像的寬度inheight:圖像的高度instride:圖像的步長(zhǎng)in face:的人臉框返回值:成功返回 0,失敗返回其他錯(cuò)誤碼3.2 s 人臉聲紋融合認(rèn)證開(kāi)發(fā)接3.2.1 接簡(jiǎn)介名詞
48、和縮略語(yǔ)這一節(jié)列出了本開(kāi)mt_scylla檔中出現(xiàn)的一些名詞和縮略語(yǔ)。訊飛生物認(rèn)證接口動(dòng)態(tài)庫(kù)名稱(chēng)。下文提到的 mt_scylla 如果沒(méi)有特別說(shuō)明均指該客戶端。文檔說(shuō)明本文介紹了怎樣使用訊飛公司提供的私有云開(kāi)發(fā)接口(SCY Recognize API)編寫(xiě)使用訊飛生物認(rèn)證引擎(SCY)的應(yīng)用程序,并給出了完整的例程。本文是針對(duì)具有一些 Win32 編程經(jīng)驗(yàn)的 C/C+程序員而寫(xiě)的。以下是文檔中的一些約定符號(hào):開(kāi)發(fā)包組件Windows下的開(kāi)發(fā)開(kāi)發(fā)組件組件組成說(shuō)明頭文件bio_scylla.h、scylla_errors.h接口函數(shù)的動(dòng)態(tài)引入庫(kù)bio_scylla.lib包含接口函數(shù)的引入運(yùn)行時(shí)刻
49、庫(kù)bio_scylla.dll接口函數(shù)的具體實(shí)現(xiàn)符號(hào)含義in表明該參數(shù)是調(diào)用時(shí)賦值的參數(shù)輸入?yún)?shù)out該參數(shù)在函數(shù)返回時(shí)被賦值輸出參數(shù)in/out該參數(shù)在函數(shù)調(diào)用時(shí)作為輸入、函數(shù)返回時(shí)作為輸出參數(shù)口口3.2.2 接口函數(shù)列表在生物認(rèn)證接口中提供如下函數(shù)調(diào)用:3.2.3 函數(shù)調(diào)用3.2.3.1 SCYBIOMTInitialize函數(shù)原型SCYAPI SCYBIOMTInitialize (String server_addr, String ap功能初始化生物認(rèn)證客戶端,初始化全局信息。參數(shù)server_addr in私有云 src服務(wù)接口地址,具體形式為:,timeout);apin私有云系
50、統(tǒng)分配的應(yīng)用 IDtimeout in超時(shí)時(shí)間設(shè)置返回值如果函數(shù)調(diào)用成功返回 0,否則返回錯(cuò)誤代號(hào);錯(cuò)誤代碼請(qǐng)參考 scylla_errors.h,常見(jiàn)值如下:說(shuō)明這個(gè)函數(shù)必須在調(diào)用其他函數(shù)之前調(diào)用,一個(gè)進(jìn)程僅能調(diào)用一次。不支持多線程。示例String ap= “12345678”; String server_addr =mt_scylla miat = new mt_scylla();ret= miat.SCYMTInitialize (server_addr, ap,10);返回值意義SCY_SUCS函數(shù)執(zhí)行成功。SCY_ERROR_ALREADY_EXIST引擎已經(jīng)被初始化了SCY_E
51、RROR_OUT_OF_MEMORY分配內(nèi)存失敗函數(shù)名稱(chēng)功能簡(jiǎn)介SCYBIOMTInitialize初始化客戶端SCYBIOMTUninitialize逆初始化客戶端SCYBIOfaceoperation生物認(rèn)證人臉接口SCYBIOvoiceopr生物認(rèn)證聲紋初始化接口SCYBIOvoiceoprsecond生物認(rèn)證聲紋接口SCYBIOfuopr生物認(rèn)證融合初始化接口SCYBIOfuoprsecond生物認(rèn)證融合接口參見(jiàn)SCYBIOMTInitialize ()3.2.3.2 SCYBIOMTUninitialize函數(shù)原型SCYAPI SCYBIOMTUninitialize (void);
52、功能關(guān)閉客戶端,參數(shù)無(wú)。返回值全局資源。如果函數(shù)調(diào)用成功返回 0,否則返回錯(cuò)誤代號(hào);錯(cuò)誤代碼請(qǐng)參考 scylla_errors.h,常見(jiàn)值如下:說(shuō)明這個(gè)函數(shù)是識(shí)別接口中最后一個(gè)調(diào)用的函數(shù),必須保證一個(gè)進(jìn)程僅調(diào)用一次。示例參見(jiàn)SCYBIOMTUninitialize ()SCYBIOfaceoperation函數(shù)原型SCYAPI SCYBIOfaceoperation(String param, byte file_path, respon_msg,len)功能完成人臉,鑒別,注銷(xiāo),認(rèn)證,更新等功能。參數(shù)paramin參數(shù)file_len, byte標(biāo)識(shí)符數(shù)據(jù)項(xiàng)名稱(chēng)類(lèi)型content-typ e
53、長(zhǎng)度必填項(xiàng)備注uid用戶名Stringtext/plain, UTF-830Y包含字母,數(shù)字SID號(hào)碼Stringtext/plain, UTF-830N建議傳值,便于后續(xù)效果優(yōu)化apapp 對(duì)應(yīng)idStringtext/plain, UTF-88Y從申請(qǐng)得到的 applatform接入Stringtext/plain, UTF-88N接入 Android IOSret = SCYBIOMTUninitialize (); if ( ret != SCY_SUCS )pr f(“SCYMTUninitialize failed, ret = %d.n”, ret);返回值意義SCY_SUCS函
54、數(shù)執(zhí)行成功。SCY_ERROR_NOT_INIT系統(tǒng)未初始化注意:人臉普通鑒別的時(shí)候人臉參數(shù)。是 jpg, operationType 為 identify,需要加和 grou多人臉鑒別的時(shí)候,傳入的人臉是 NV21 格式,operationType 為 multi_identify,需要加和 grou,人臉的寬高,人臉框坐標(biāo)參數(shù)。注意:coordinate 以json 字符串形式傳入,如: coordinate: id : 1 , id : 2, id : 3 ,ition:x y w h,ition:x y w h,ition:x y w h標(biāo)識(shí)符數(shù)據(jù)項(xiàng)名稱(chēng)類(lèi)型content-typ e長(zhǎng)
55、度必填項(xiàng)備注grou組 IDStringtext/plain, UTF-8=10YoperationType操作類(lèi)型Stringtext/plain, UTF-8Ymulti_identify取前 1 位Stringtext/plain, UTF-8Y數(shù)字 1-10 內(nèi)coordinate人臉坐標(biāo)Stringtext/plain, UTF-8YheightNV21 格式高度Stringtext/plain, UTF-8YwidthNV21 格式寬度Stringtext/plain, UTF-8Y標(biāo)識(shí)符數(shù)據(jù)項(xiàng)名稱(chēng)類(lèi)型content-typ e長(zhǎng)度必填項(xiàng)備注grou組 IDStringtext/p
56、lain, UTF-8=10YoperationType操作類(lèi)型Stringtext/plain, UTF-8Yidentify取前幾位Stringtext/plain, UTF-8Y數(shù)字 1-10 內(nèi)取其一,此參數(shù)影響后期統(tǒng)計(jì)數(shù)據(jù),請(qǐng)務(wù)必傳正確參數(shù)osM輔助信息Stringtext/plain, UTF-8N比如,型號(hào):5S多個(gè)參數(shù)之間使用“-”分割aue壓縮格式Stringtext/plain, UTF-8Y圖像壓縮格式,目前取值為 rawfeatureType生物特征類(lèi)型Stringtext/plain, UTF-8YfaceoperationType操作類(lèi)型Stringtext/pla
57、in, UTF-8Yverify/logout/reg/identify/ updatefile_pathin路徑或者人臉buf人臉file_lenin傳人臉路徑的時(shí)候?yàn)?1, 傳人臉respon_msgout返回的信息buf,為 buf 大小lenin返回信息 buf 的長(zhǎng)度返回值示例如果函數(shù)調(diào)用成功返回 0,否則返回-1,respon_msg 里面有詳細(xì)的錯(cuò)誤信息。3.2.3.4函數(shù)原型SCYAPI SCYBIOvoiceopr功能SCYBIOvoiceopr(String param, byte respon_msg,len)聲紋/更新/認(rèn)證/鑒別初始化參數(shù)paramin請(qǐng)求參數(shù):標(biāo)識(shí)符
58、數(shù)據(jù)項(xiàng)名稱(chēng)類(lèi)型content-typ e長(zhǎng)度必填項(xiàng)備注uid用戶名Stringtext/plain, UTF-830Y包含字母,數(shù)字SID號(hào)碼Stringtext/plain,30N建議傳值,便于/ 啟動(dòng)人臉相關(guān)的功能string ap= pc20onli;string server_addr= ;char res_msg100 = 0;/*if (argc != 2)pr f(param error!nTheparam is file path.n); return -1;*/ret = init(server_addr, ap); if(0 != ret)pr f(init failedn
59、); return ret;stringparam= uid=44444444444,ap=pc20onli,platform=Android,aue=raw,operationType=logout,featureType=face;char *path=12.jpg;ret = SCYBIOfaceoperation_(char *)param.c_str(), path,-1, res_msg, 100);注意:聲紋鑒別的時(shí)候需要額外傳入, 和grou參數(shù)。content-typ e標(biāo)識(shí)符數(shù)據(jù)項(xiàng)名稱(chēng)類(lèi)型長(zhǎng)度必填項(xiàng)備注UTF-8后續(xù)效果優(yōu)化sexStringtext/plain, UTF-
60、81NM:男 F:女a(chǎn)papp 對(duì)應(yīng)idStringtext/plain, UTF-88Y從申請(qǐng)得到的 applatform接入Stringtext/plain, UTF-88N接入 Android IOS取其一,此參數(shù)影響后期統(tǒng)計(jì)數(shù)據(jù),請(qǐng)務(wù)必傳正確參數(shù)osM輔助信息Stringtext/plain, UTF-8N比如,型號(hào):5S多個(gè)參數(shù)之間使用“-”分割featureType生物特征類(lèi)型Stringtext/plain, UTF-8YvoiceoperationType操作類(lèi)型Stringtext/plain, UTF-8YregInit:初始化 updateInit:更新初始化 ident
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 二零二五年度木制玩具設(shè)計(jì)與制造木工分包合同范本4篇
- 2025年度內(nèi)墻膩?zhàn)邮┕ぜ夹g(shù)培訓(xùn)與推廣合同2篇
- 二零二五年度全國(guó)連鎖培訓(xùn)學(xué)校股權(quán)合作框架合同
- 課題申報(bào)參考:岷江流域西南官話語(yǔ)法內(nèi)部差異及歷史演變研究
- 2025版二零二五年度教育信息化項(xiàng)目實(shí)施合同范本3篇
- 二零二五年度工業(yè)用地面積調(diào)整補(bǔ)充合同4篇
- 二零二五年度農(nóng)民工就業(yè)創(chuàng)業(yè)扶持政策合作協(xié)議2篇
- 2025年度國(guó)產(chǎn)嬰幼兒奶粉品牌全國(guó)分銷(xiāo)合同4篇
- 基于大數(shù)據(jù)分析的2025年度農(nóng)產(chǎn)品市場(chǎng)需求預(yù)測(cè)合同2篇
- 二零二五年度住宅室內(nèi)軟裝搭配合同4篇
- 《社區(qū)康復(fù)》課件-第三章 社區(qū)康復(fù)的實(shí)施
- 胰島素注射的護(hù)理
- 云南省普通高中學(xué)生綜合素質(zhì)評(píng)價(jià)-基本素質(zhì)評(píng)價(jià)表
- 2024年消防產(chǎn)品項(xiàng)目營(yíng)銷(xiāo)策劃方案
- 聞道課件播放器
- 03軸流式壓氣機(jī)b特性
- 五星級(jí)酒店收入測(cè)算f
- 大數(shù)據(jù)與人工智能ppt
- 人教版八年級(jí)下冊(cè)第一單元英語(yǔ)Unit1 單元設(shè)計(jì)
- GB/T 9109.5-2017石油和液體石油產(chǎn)品動(dòng)態(tài)計(jì)量第5部分:油量計(jì)算
- 邀請(qǐng)函模板完整
評(píng)論
0/150
提交評(píng)論