5

如何快速搭建一个 AI 识别处理的流水线?

 2 years ago
source link: https://serverlesscloud.cn/best-practice/2021-06-18-aws-ai
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.

如何快速搭建一个 AI 识别处理的流水线?

发布于: 2021-6-18
归档于:

标签:Serverless云函数

本文为您介绍如何使用 ASW 编排云函数与 AI 产品服务,快速搭建一个 AI 智能识别的处理流水线。通过 ASW 编排调用腾讯云 AI 能力,完成 活体检测、语音识别、关键字采样、自动审核 等一系列自动化识别认证流程,提供开箱即用、灵活便捷、高弹性高可用的 AI 智能识别处理场景。

尤其适合社区人脸识别,金融交易人脸支付,智能线上开户等 AI 人工智能场景。

01. ASW 工作流 - 「AI 识别」系统架构

在「智能线上开户」的场景中,用户在应用客户端登录,客户端将用户视频采集后上传到 COS,通过 COS 触发函数调起 ASW 工作流执行智能识别处理流程。ASW 调用 AI 活体人脸,完成活体人脸识别,通过后由云函数向应用服务端推送语音播报(例如播报某个验证问题)。

推送成功后通过与服务端连接,调起客户端录音能力对用户进行录音,将录音结果进行 AI 语音识别处理,处理后生成对应文字,通过关键字判断用户问题作答的正确情况,通知服务端处理判断结果,完成整个智能线上开户场景。

de54c60dc197af236c154dab2fbd93a5.png

02. ASW 方案 VS 传统方案

336fa14746399ced40a39cb18b97211e.png

通过以上对比,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. 登录 应用与编排服务流控制台,在工作流页面,单击「新建」,进入创建工作流页面。
  2. 控制台地址:https://console.cloud.tencent.com/asw
  3. 选择 「代码创建」,定义工作流,代码示例 见下方。
  4. 点击「下一步」,在「配置基本信息」页面填写相关基本信息,点击「完成」,即可成功创建工作流。
  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 工作流是一个用来协调分布式任务执行的编排产品,根据腾讯云状态语言定义来编排分布式任务和服务,工作流会按照设定好的顺序可靠地协调执行,将云函数与多个腾讯云服务按步骤进行调度,通过低代码配置,就可以完成开发和运行业务流程所需要的任务协调、状态管理以及错误处理等繁琐工作。

e1b0b1b13b3bd02afa03a81d77b73ac2.jpg

识别下方 👇 二维码,即可加入腾讯云 ASW 交流群。

22821ff9d923fd60056f2313db287a79.png

传送门:

欢迎访问:Serverless 中文网,您可以在 最佳实践 里体验更多关于 Serverless 应用的开发!


About Joyk


Aggregate valuable and interesting links.
Joyk means Joy of geeK