如何快速搭建一個 AI 識別處理的流水線?

本文爲您介紹如何使用 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 能力

  • COS 對象存儲:用於存儲中間錄製的音視頻。

  • ASW 工作流:AI 處理分析的工作流,其中每個節點將編排對應功能的雲函數或 AI 服務。

  • 運行角色:用於運行 AI 處理分析工作流。

1. 創建工作流

1. 創建工作流

  1. 登錄 應用與編排服務流控制檯,在工作流頁面,單擊「新建」,進入創建工作流頁面。
  1. 選擇 「代碼創建」,定義工作流,代碼示例 見下方。

  2. 點擊「下一步」,在「配置基本信息」頁面填寫相關基本信息,點擊「完成」,即可成功創建工作流。

  1. 以下代碼僅作爲示例告知所涉及資源,工作流節點涉及調用的資源,需按業務需求進行創建和改造;

  2. 工作流定義涉及的語法請參考:https://cloud.tencent.com/document/product/1272/51544;

  3. 在使用創建過程中,如需更多支持幫助,請加入下方「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 中文網

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章