| 概述Hi,您好,歡迎使用百度智能呼叫中心實時語音識別云服務。本文檔主要面向呼叫中心開發(fā)者,介紹產(chǎn)品合作流程以及使用C++ SDK快速接入服務的。 智能呼叫中心提供的ASR模型為呼叫中心定制版,較通用電話場景下的ASR模型識別效果更佳。服務以云服務方式提供,企業(yè)通過集成的MrcpServer,向百度實時輸入語音流,百度將實時識別文本推送回企業(yè)的業(yè)務系統(tǒng),企業(yè)可在此基礎上實現(xiàn)金牌銷售、機器人、質(zhì)檢等產(chǎn)品。 如果您對合作方式及文檔內(nèi)容有任何疑問,或者您需要深度定制服務,請通過文檔下方“聯(lián)系我們”找到我們。 
 合作流程
 流程說明
免費服務申請 
頁面右上方“控制臺”點擊進入,登錄百度賬號,進入百度云管理后臺頁面。左側(cè)導航欄上方,依次選擇 產(chǎn)品服務->人工智能->智能呼叫中心,進入應用“概覽”頁面。服務申請。點擊“創(chuàng)建應用”,“接口選擇”已默認勾選完成,如無其他需求,無需勾選,完成其他資料后,點擊最下方“立即創(chuàng)建”按鈕。應用成功則頁面顯示“創(chuàng)建完畢”,點擊”返回應用列表”, 查看新創(chuàng)建應用詳情,記錄AppID,API Key,Secret Key。從呼叫中心設備或開發(fā)語言角度出發(fā),選擇較低集成成本的接入方式(Java SDK、Linux C++ SDK、 MrcpServer)快速接入并試用服務。
付費開通 參考“免費賬號和服務申請”流程,進入應用“概覽”頁面,查看服務列表,在所選服務最右側(cè)點擊「立即購買」。
商務合作提交 進入AI開放平臺,選擇 產(chǎn)品服務 -> 智能呼叫中心 -> 呼叫中心語音識別 ,選擇 “商務合作”,填寫您的聯(lián)系方式及呼叫中心需求,我們將在2~3個工作日聯(lián)系您。
商務談判 我們將為您提供產(chǎn)品方案咨詢、技術(shù)方案咨詢、價格咨詢等服務,為您定制語音識別模型以提升特定場景的識別準確率; 確定商務合作后,就合同、具體定制費用等相關問題細則進行商務溝通,百度可根據(jù)您的調(diào)用量提供一定的折扣; 確定費用后,雙方簽訂合同及支付,即可直接調(diào)用。在此過程中,百度可提供POC服務、聯(lián)調(diào)服務等。 服務內(nèi)容
特訓呼叫中心語音識別模型 百度針對呼叫中心設備特征,特訓大量電話數(shù)據(jù),形成呼叫中心領域?qū)倌P?,為企業(yè)呼叫中心各類智能化產(chǎn)品提供精準的語音轉(zhuǎn)文字服務。
高時效,低價格,實時語音識別 您可以使用本服務,將您業(yè)務通話過程中的實時音頻流以分軌或單軌的形式發(fā)送至百度,百度將在為您開辟的專屬通路中實時為您返回識別后的文本,為您提供百毫秒級的返回時效,并保障高穩(wěn)定性、安全性。
免費試用,快速驗證效果 您可以通過「立即使用」入口,進入呼叫中心語音識別的控制臺頁面,根據(jù)您的業(yè)務需要創(chuàng)建App,獲得API Key、Secret Key后,即可免費試用本服務;免費試用無時限,但專屬識別通路數(shù)量有限制。
線上直接調(diào)用服務 您可以通過「立即使用」入口,進入呼叫中心語音識別的控制臺頁面,在控制臺頁面下方找到本服務,右側(cè)有「立即購買」入口,您可以付費開通更加穩(wěn)定且并發(fā)通路更多的服務。我們將在您提交付費后為你準備專屬的服務器,保障服務效率及您的數(shù)據(jù)安全。
線下商務合作 您也可以通過「商務合作」,進入表單提交頁面,填寫您的業(yè)務需求并提交。我們會在線下與您取得聯(lián)系,確認購買量后,您可以獲得商務合作優(yōu)惠價。我們還可以為您訓練打造專屬的行業(yè)場景模型,提升特定場景的語音識別準確率,滿足您的業(yè)務需求。
單雙軌支持 本服務需要按照并發(fā)通路購買。為達到更好的識別效果,我們建議您拆分通話雙側(cè)音頻流為兩通路,可同時發(fā)送通話雙方的音頻流,按兩通路來并行識別;如果您的業(yè)務僅需要識別一側(cè)語音,也可只發(fā)送單側(cè)音頻流,按一通路識別;如果您的通話無法將兩側(cè)拆分為雙軌,可將電話混音發(fā)送音頻流,按一通路識別。 
 快速開始Release Notes
| 版本 | 日期 | 說明 |  
| 0.1.0 | 2018.02.22 | 第一版! |  
| 0.1.2 | 2018.03.19 | 壓縮性能優(yōu)化 |  
| 0.1.3 | 2018.03.29 | 新增切句配置 |  
| 0.1.4 | 2018.07.09 | 增加擴展信息,語音識別文本流攜帶毫秒級時間戳,完整句攜帶語速 |  接入準備
參考“流程說明”—>“免費服務申請”完成權(quán)限申請;
點擊智能電銷及實時語音識別-MrcpServer完成MrcpServer下載;
開發(fā)環(huán)境依賴: 
Linux 64位 centos 6u3gcc: 482 以上libc,CXX11,百度提供gcc4.8.2壓縮包,存放于libs目錄下,解壓后執(zhí)行bootstrap.sh完成默認配置curl : 7.33ssl : 1.0.1idaemontools 守護進程須有root賬戶權(quán)限運行,curl、ssl服務器未安裝或版本不夠,請自行安裝或升級。
開發(fā)機對conf/recogplugin.json配置中“app.serverAddress”(服務訪問)、“app.authAddress”(鑒權(quán))地址開放公網(wǎng)訪問權(quán)限;
詳見下文“測試mrcpserver”,運行自帶paasclient,熟悉mrcpserver的運行情況 并發(fā)限制受內(nèi)存,核數(shù)限制,4核8G內(nèi)存,并發(fā)數(shù)為20。 語音流改造
| 要求項 | 取值要求 |  
| 音頻格式 | PCM |  
| 采樣率 | 8KHz |  
| 采樣精度 | 16bits |  
| 聲道 | 單聲道 |  
| 實時語音流發(fā)送間隔 | 20ms~160ms內(nèi)任意10的倍數(shù),建議最佳發(fā)送間隔160ms |  
| 壓縮選項 | 壓縮為原始大小的1/8,節(jié)省帶寬,但是音頻質(zhì)量會有損失 |  
| 分軌 | 為保證識別效果,進行話者分離,拆分通話雙側(cè)音頻流為兩通路 |  輸出
| key | 值說明 |  
| 格式 | 詳見下文 識別結(jié)果說明 |  
| 語音識別 | 實時逐字識別文字,由靜音檢測識別出的完整句,文字對應開始&結(jié)束時間,完整句對應語速 |  
| 語義識別 | utf8編碼,意圖、槽位 |  
| 輸出方式 | 回調(diào),實時返回 |  
語速 = 完整句字數(shù) / 秒。其中,單個單詞整體算作1個字,不會按實際字母數(shù)統(tǒng)計。 
 目錄結(jié)構(gòu)${SERVER_ROOT}
|--- bin    // 服務可執(zhí)行程序
	|--- control // 啟動腳本
	|--- bootstrap.sh // 初始化環(huán)境
|--- conf // 配置文件
	|--- recogplugin.json // 識別插件配置文件
|--- data  // 數(shù)據(jù)資源
|--- include // 頭文件
|--- lib     // 依賴庫
|--- libs    // 依賴庫
|--- log // 日志目錄
|--- plugin // 插件及依賴
 參數(shù)配置識別相關配置文件目錄 ${SERVER_ROOT}/conf/recogplugin.json,參考“流程說明”—>“免費賬號和服務申請”流程,進入應用“概覽”頁面,點擊左側(cè)導航“應用列表”,查詢“API Key”和“Secret Key”。必須修改 "app.appKey": "API Key",  
"app.appSecret": "Secret Key", 
"app.scope": "brain_bicc", 
 其他參數(shù),無特殊需求,無需修改,保持現(xiàn)狀。 配置項說明 
| key | 類型 | 必選 | 說明 | 默認值 |  
| app.appKey | string | Y | app key | - |  
| app.appSecret | string | Y | app secret | - |  
| app.compress | bool | Y | 是否開啟壓縮。為解決帶寬,默認壓縮 | true |  
| app.machineName | string | N | 器唯一標識。 建議填寫mac地址(移除冒號,如14-10-9f-df-45-4f)或有唯一性含義的hostname
 |  |  
| app.serverAddress | string | Y | 服務器地址(若使用https必須libcurl支持) | - |  
| app.authAddress | string | Y | 驗證服務地址(若使用https必須libcurl支持) | - |  
| app.upload.threads | number | N | 上傳線程數(shù)(根據(jù)并發(fā)數(shù)和實際網(wǎng)絡狀況與我們溝通后修改) | 4 |  
| app.upload.duration | number | N | 上傳線程超時時間(秒,根據(jù)實際網(wǎng)絡狀況與我們溝通后修改) | 900 |  
| log.toStandardOutput | 0/1 | Y | 日志是否輸出至標準輸出 | 1 |  
| log.toFile | 0/1 | Y | 日志是否輸出至文件 | 0 |  
| log.filename | string | Y | SDK日志輸出文件名 |  |  
| log.plugin.filename | string | Y | 插件日志輸出文件名 |  |  
| log.maxLogFileSize | number | N | 日志文件最大限制 | 10 * 1024 * 1024 |  
| log.enableDebug | 0/1 | Y | 開啟Debug日志 | - |  
| log.enableInfo | 0/1 | Y | 開啟Info日志 | - |  
| log.enableWarning | 0/1 | Y | 開啟Warning日志 | - |  
| log.immediateFlush | 0/1 | Y | 日志是否實時flush | - |  
| userparams | string | N | 用戶定制化參數(shù) |  |  
| app.scope | string | Y | 使用的服務。 brain_bicc: 實時識別。
 |  |  關于 userparams 參數(shù) 目前支持的參數(shù)包括: "sentenceHandler": {
	"client": "STANDARD_COMPLETED",
	"agent": "STANDARD_COMPLETED"
}
 client 和 agent表示對應用戶與坐席的返回類型設置,支持的結(jié)果返回模式包括 
| 值 | 含義 | 備注 |  
| STANDARD_COMPLETED | 完整句切句 | 屏蔽掉所有過程句子,只下發(fā)完整句。 |  
| NONE | 實時翻譯結(jié)果 | 默認值,逐字識別結(jié)果及完整句 |  識別結(jié)果識別結(jié)果通過回調(diào),返回的字段說明如下: 
| key | 說明 | 必選 | 內(nèi)容 |  
| appId | 標識所屬app | 否 |  |  
| callId | 知識所屬call | 是 |  |  
| roleCategory | 知識所屬于角色 | 否 | AGENT,座席;CLIENT,客戶 |  
| category | 知識類型 | 是 | TXT,文本; INTENT,意圖;
 KNOWLEDGE,知識;
 SPEECH,合成語音(url地址);
 EVENT,事件
 |  
| content | 知識內(nèi)容 | 是 | 返回的知識的內(nèi)容 |  
| triggerTxt | 觸發(fā)知識的文本 | 否 | string |  
| triggerTime | 觸發(fā)知識的時間 | 否 | timestamp |  
| extJson | 擴展字段 | 否 | 擴展字段 |  
| logId | 本次返回標識 | 是 | String |  extJson字段說明 
| key | 說明 | 必選 | 內(nèi)容 |  
| completed | 識別文本狀態(tài) | 是 | 取值1和3。1,過程中逐字識別結(jié)果;3,vad切分產(chǎn)生的完整句 |  
| snStartTime | 文本開始時間 | 是 | 毫秒級,樣例:00:00.100 |  
| snStopTime | 文本結(jié)束時間 | 是 | 毫秒級,樣例:00:01.100 |  
| speed | 完整句語速 | 否 | 完整句字數(shù) / 秒。其中,單個單詞整體算作1個字,不會按實際字母數(shù)統(tǒng)計。 |  返回示例: <result>
	<interpretation grammar="" confidence="1.0">
		<instance>
			<callId>20913-35009.1520997556725710129-423467</callId>
			<logId>02bbdf02-c00a-45eb-ae9d-6a7a6d1f74b9_8</logId>
			<rolecategory>AGENT</rolecategory>
			<categotyId>TXT</categotyId>
			<extJson>
                <snStartTime>00:01.600</snStartTime>
                <snStopTime>00:09.759</snStopTime>
                <speed>5.39</speed>
            </extJson>
		</instance>
		<input mode="speech">醫(yī)學考試時間</input>
	</interpretation>
</result>
 
 使用mrcpserver
每次替換MrcpServer安裝包,都需要在${SERVER_ROOT}/目錄,root權(quán)限下執(zhí)行sh bootstrap.sh,主要功能:完成百度自帶gcc4.8.2的環(huán)境配置。啟動: 在${SERVER_ROOT}/bin目錄執(zhí)行./control start停止: 在${SERVER_ROOT}/bin目錄執(zhí)行./control stop重啟: 在${SERVER_ROOT}/bin目錄執(zhí)行./control restart**查看服務狀態(tài):**在${SERVER_ROOT}/bin目錄執(zhí)行./control status 服務啟動中遇到的問題: 
若執(zhí)行control start失敗,請按照以下步驟排查服務 1、在${SERVER_ROOT}/bin目錄執(zhí)行 [root@xxx bin]$ ./unimrcpserver 
bash: ./unimrcpserver: /opt/compiler/gcc-4.8.2/lib64/ld-linux-x86-64.so.2: bad ELF interpreter: No such file or directory,
 說明bootstrap.sh執(zhí)行失敗,請移步壓縮包自帶README文件,手動完成gcc4.8.2的配置。 2、若單獨啟動unimrcpserver正常,命令行直接輸入“supervise”,若supervise非系統(tǒng)命令,說明守護進程安裝失敗,請檢查守護進程。 
| 錯誤信息 | 解決 |  
| err_code":210 | recogplugin.json中填寫app.appKey,app.appSecret |  
| Config 'app.scope' empty | recogplugin.json中填寫app.scope |  
| err_code":321 | 鑒權(quán)失敗, 檢查本機是否可以訪問recogplugin.json中app.authAddress對應地址
 |  
| "err_code":322 | 百度云端服務訪問失敗, 檢查本機是否可以訪問recogplugin.json中app.serverAddress對應地址
 |  
| 408 ACK Timeout | conf/unimrcpserver.xml 同時配置內(nèi)網(wǎng)、外網(wǎng)IP,SIP三次握手建立連接, client請求server地址為內(nèi)網(wǎng)地址,
 但server返回status 200包給client使用的是client的外網(wǎng)地址,client未接收到。
 可對server抓包,確認返回ip是否符合預期
 |  
| Quota limit reached: Concurrency exceeded | 訪問量超過可用額度, 一次SIP連接創(chuàng)建,配額+1,
 請注意,需client向server發(fā)送SIP斷開,釋放配額,
 若不主動斷開,百度側(cè)將在15分鐘之后自動釋放配額
 |  測試mrcpserver運行測試client: 請至${SERVER_ROOT}/bin目錄,運行./paasclient, 輸入run recog默認ip為:本機內(nèi)網(wǎng)地址
 默認sip端口為:8060
 默認rtp端口為:5000-6000
 配置外網(wǎng)ip、更改端口配置詳見
 壓縮包自帶README文件 
當前paasclient代碼邏輯為支持一次識別結(jié)果返回,與MrcpServer能力無關,MrcpServer可支持連續(xù)識別結(jié)果返回。 客戶端要求保持一通電話單側(cè)(坐席|客戶)使用同一個SIP連接。SIP頭部擴展參數(shù)P-UserData(可選字段),攜帶callid及roleid,格式說明及事例如下:
 
| 字段 | 含義 | 值類型 | 默認值 | 備注 |  
| callid | 一通電話唯一標識 | String |  | 格式需要滿足 ^[0-9a-zA-Z_\.-]{16,128}$正則要求 |  
| roleid | 角色標識 | int | 1 | 可選。0-坐席,1-客戶 |  示例 c sip:39.107.25.82:5060 SIP/2.0   
Via: SIP/2.0/UDP 114.215.196.183:5092;rport;branch=z9hG4bKHXm44FX131NFF   
Max-Forwards: 70 
From: <sip:114.215.196.183:5092>;tag=BcjjUe581cFUj 
To: <sip:39.107.25.82:5060> 
CSeq: 118054628 INVITE 
User-Agent: CCP 
P-UserData:callid=aaa79db9-7b80-1236-08a2-00163e02342e,roleid=1
Allow: INVITE, ACK, BYE, CANCEL, OPTIONS, PRACK, MESSAGE, SUBSCRIBE, NOTIFY, REFER, UPDATE
Supported: timer, 100rel 
Content-Type: application/sdp 
Content-Disposition: session
Content-Length: 334
 重要提示,P-UserData為非必須擴展字段。 返回結(jié)果 MRCP/2.0 709 RECOGNITION-COMPLETE 2 COMPLETE
Channel-Identifier: b6c5e7958133499c@speechrecog
Completion-Cause: 000 success
Content-Type: application/nlsml+xml
Content-Length: 522
<?xml version="1.0" encoding="utf-8"?>
<result>
	<interpretation grammar="" confidence="1.0">
		<instance>
			<callId>20913-35009.1520997556725710129-423467</callId>
			<logId>02bbdf02-c00a-45eb-ae9d-6a7a6d1f74b9_8</logId>
			<rolecategory>AGENT</rolecategory>
			<categotyId>TXT</categotyId>
			<extJson>
                <snStartTime>00:01.600</snStartTime>
                <snStopTime>00:09.759</snStopTime>
                <speed>5.39</speed>
            </extJson>
		</instance>
		<input mode="speech">醫(yī)學考試時間</input>
	</interpretation>
</result>
 |