本文爲您介紹如何使用 ASW 編排雲函數與 AI 產品服務,快速搭建一個 AI 智能識別的處理流水線。通過 ASW 編排調用騰訊雲 AI 能力,完成 活體檢測、語音識別、關鍵字採樣、自動審覈 等一系列自動化識別認證流程,提供開箱即用、靈活便捷、高彈性高可用的 AI 智能識別處理場景。
尤其適合社區人臉識別,金融交易人臉支付,智能線上開戶等 AI 人工智能場景。
01. ASW 工作流 - 「AI 識別」系統架構
在「智能線上開戶」的場景中,用戶在應用客戶端登錄,客戶端將用戶視頻採集後上傳到 COS,通過 COS 觸發函數調起 ASW 工作流執行智能識別處理流程。ASW 調用 AI 活體人臉,完成活體人臉識別,通過後由雲函數嚮應用服務端推送語音播報(例如播報某個驗證問題)。
推送成功後通過與服務端連接,調起客戶端錄音能力對用戶進行錄音,將錄音結果進行 AI 語音識別處理,處理後生成對應文字,通過關鍵字判斷用戶問題作答的正確情況,通知服務端處理判斷結果,完成整個智能線上開戶場景。
02. ASW 方案 VS 傳統方案
通過以上對比,ASW 編排的優勢如下:
- ASW 工作流使用 TCSL 定義編排,語法簡單,降低學習和使用成本,極大程度上縮短了項目週期,加快開發部署。
- ASW 工作流可以實現高度自定義的工作流流程,能適應快速變化的業務訴求,編排更新無需運維維護,爲業務的持續更新提供了快速迭代的能力。
- ASW 工作流提供了友好的界面交互視圖,在運行調試的過程中,能快速定位問題。
- ASW 工作流目前仍爲免費階段,無需承擔服務器/集羣相關費用。
03. 如何創建「AI 識別」工作流編排 - 方案示例
接下來將爲大家介紹一個「智能在線開戶」的 ASW 工作流編排流程。
用戶登錄客戶端後,進入開戶流程。根據開戶流程的提示,採集用戶視頻及語音,然後將採集的音視頻進行 AI 處理分析,最後輸出開戶成功或失敗的結果。
這個過程中涉及資源如下:
-
Serverless 雲函數:
-
- push-video 用於給應用服務端推送某個音視頻問題。
- record-request 用於嚮應用服務端發起錄製任務請求。
- check-result 用於分析語音識別的結果。
-
騰訊雲 AI 能力:
-
- 活體人臉檢測,用於驗證用戶的身份信息:https://cloud.tencent.com/document/product/1007/31818
- 語音識別,用於將用戶的回答識別成文字:https://cloud.tencent.com/document/product/1093/37823
-
COS 對象存儲:用於存儲中間錄製的音視頻。
-
ASW 工作流:AI 處理分析的工作流,其中每個節點將編排對應功能的雲函數或 AI 服務。
-
運行角色:用於運行 AI 處理分析工作流。
1. 創建工作流
1. 創建工作流
- 登錄 應用與編排服務流控制檯,在工作流頁面,單擊「新建」,進入創建工作流頁面。
-
選擇 「代碼創建」,定義工作流,代碼示例 見下方。
-
點擊「下一步」,在「配置基本信息」頁面填寫相關基本信息,點擊「完成」,即可成功創建工作流。
以下代碼僅作爲示例告知所涉及資源,工作流節點涉及調用的資源,需按業務需求進行創建和改造;
工作流定義涉及的語法請參考:https://cloud.tencent.com/document/product/1272/51544;
在使用創建過程中,如需更多支持幫助,請加入下方「ASW 用戶交流羣」,與我們聯繫。
代碼示例如下:
{
"Comment": "AI處理流水線",
"StartAt": "Recognition",
"TimeoutSeconds": 1000,
"States": {
"Recognition": {
"Type": "Task",
"Comment": "活體人臉",
"Parameters": {
"Idcard": "11204416541220243X",
"Name": "韋小寶",
"VideoBase64": "<VideoBase64>",
"LivenessType": "SILENT"
},
"Resource": "qrn:qcs:asw:ap-guangzhou:123456789:sdk:json:qcloud:faceid:LivenessRecognition",
"Next": "CheckRecognition"
},
"CheckRecognition": {
"Type": "choice",
"Comment": "校驗活體人臉是否成功",
"Choices": [{
"Variable": "$.Result",
"StringEquals": "Success",
"Next": "PushVideo"
}],
"Default": "Fail"
},
"PushVideo": {
"Type": "Task",
"Comment": "語音播報",
"Resource": "qrn:qcs:asw:ap-guangzhou:123456789:sdk:json:qcloud:scf:Invoke/push-video",
"Next": "RecordRequest"
},
"RecordRequest": {
"Type": "Task",
"Comment": "錄製請求",
"Resource": "qrn:qcs:asw:ap-guangzhou:123456789:sdk:json:qcloud:scf:Invoke/record-request",
"Next": "Asr"
},
"Asr": {
"Type": "Task",
"Comment": "語音識別",
"Resource": "qrn:qcs:asw:ap-guangzhou:1253970226:sdk:json:qcloud:asr:CreateRecTask",
"Parameters": {
"EngineModelType": "16k_zh",
"ChannelNum": 1,
"ResTextFormat": 0,
"SourceType": 0,
"Url.$": "$[0].value[0]"
},
"OutputPath": "$.Response.Data",
"Next": "CheckAsr"
},
"CheckAsr": {
"Type": "Task",
"Comment": "獲取語音識別結果",
"Resource": "qrn:qcs:asw:ap-guangzhou:1253970226:sdk:json:qcloud:asr:checkASR",
"Parameters": {
"TaskId.$": "$.TaskId"
},
"Next": "VerifyTask"
},
"VerifyTask": {
"Type": "Task",
"Comment": "函數判斷執行的語音結果是否正確",
"Resource": "qrn:qcs:asw:ap-guangzhou:123456789:sdk:json:qcloud:scf:Invoke/verify-result",
"End": true
},
"Fail": {
"Type": "Task",
"Comment": "錯誤處理",
"Resource": "qrn:qcs:asw:ap-guangzhou:123456789:sdk:json:qcloud:scf:Invoke/task-fail",
"End": true
}
}
}
2. 運行工作流
「運行工作流」操作流程請參考 《使用 ASW 工作流編排函數》中 03.3 的講解。
ASW 工作流是一個用來協調分佈式任務執行的編排產品,根據騰訊雲狀態語言定義來編排分佈式任務和服務,工作流會按照設定好的順序可靠地協調執行,將雲函數與多個騰訊雲服務按步驟進行調度,通過低代碼配置,就可以完成開發和運行業務流程所需要的任務協調、狀態管理以及錯誤處理等繁瑣工作。
識別下方 👇 二維碼,即可加入騰訊雲 ASW 交流羣。
One More Thing
立即體驗騰訊雲 Serverless Demo,領取 Serverless 新用戶禮包 👉 騰訊雲 Serverless 新手體驗
歡迎訪問:Serverless 中文網!