如何快速搭建一个 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 能力:
-
- 活体人脸检测,用于验证用户的身份信息: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 中文网!