查看原文
其他

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

susu 腾讯云云函数 2022-05-10
本文为您介绍如何使用 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://console.cloud.tencent.com/asw

2. 选择 「代码创建」,定义工作流,代码示例 见下方。
3. 点击「下一步」,在「配置基本信息」页面填写相关基本信息,点击「完成」,即可成功创建工作流。


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

欢迎进入千人 QQ 群 (871445853) 交流 Serverless!
  • GitHub: github.com/serverless
  • 官网: cloud.tencent.com/product/serverless-catalog
点击「阅读原文」,深入了解「腾讯云 ASW 工作流」产品服务。

您可能也对以下帖子感兴趣

文章有问题?点此查看未经处理的缓存