首页 > 技术文章 > 如何快速搭建一个 AI 识别处理的流水线?

serverlesscloud 2021-07-01 11:16 原文

本文为您介绍如何使用 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 工作流是一个用来协调分布式任务执行的编排产品,根据腾讯云状态语言定义来编排分布式任务和服务,工作流会按照设定好的顺序可靠地协调执行,将云函数与多个腾讯云服务按步骤进行调度,通过低代码配置,就可以完成开发和运行业务流程所需要的任务协调、状态管理以及错误处理等繁琐工作。

识别下方

推荐阅读