简单三步,通过工作流(ASW)进行音频提取关键字操作

Serverless

本文介绍如何通过工作流 ASW 编排语音识别 AI 服务,将一段离线录音文件进行文字识别后,将输出的识别字段进行关键字提取。

工作原理

  1. 异步调用语音识别 (ASR) 能力进行离线语音文字识别,并采用轮询 check 方式等待语音识别任务执行结束。
  2. 将语音识别的结果传递给关键字提取任务,输出语音中的关键字。

前提条件

  1. 开通 腾讯云语音识别(ASR)服务。
  2. 开通 腾讯云自然语言处理(NLP)服务。
  3. 操作账号拥有【创建角色】和【绑定策略到角色】的权限,或在账号已经有了某个角色可以调用 ASR 和 NLP 服务。更多参考 运行角色

操作步骤

创建状态机

  1. 登录 应用与编排服务流控制台
  2. 在状态机页面,单击【新建】,进入创建工作流页面中,进行状态机编排。
  3. 在【使用代码创建】>【可视化编辑】页面中,单击【公有云算法】,选择【录音文件识别-请求生成】、【录音文件识别-结果查询】、【自然语言-关键词提取】拖拽至可视化窗口中。

  1. 在右侧的弹框中,分别给节点命名为“语音识别请求”、“获取语音识别结果”、“关键字提取”。单击【代码】区域的【刷新】,可以看到【代码】中生成代码如下:
   {
     "Comment": "",
     "StartAt": "语音识别请求",
     "States": {
       "语音识别请求": {
         "Type": "Task",
         "Comment": "https://cloud.tencent.com/document/api/271/35498",
         "Resource": "qrn:qcs:asw:ap-guangzhou:123456789:sdk:json:qcloud:asr:generalASR",
         "Next": "获取语音识别结果"
       },
       "获取语音识别结果": {
         "Type": "Task",
         "Comment": "https://cloud.tencent.com/document/api/271/35498",
         "Resource": "qrn:qcs:asw:ap-guangzhou:1223456789:sdk:json:qcloud:asr:checkASR",
         "Next": "关键字提取"
       },
       "关键字提取": {
         "Type": "Task",
         "Comment": "https://cloud.tencent.com/document/api/271/35498",
         "Resource": "qrn:qcs:asw:ap-guangzhou:123456789:sdk:json:qcloud:nlp:KeywordsExtraction",
         "End": true
       }
     }
   }
说明:Resource 字段格式为qrn:qcs:asw:{服务所在区域}:{Appid}:sdk:json:qcloud:{服务名称}:{组件名称}。更多详情参考 Task 节点
  1. 由于工作流中的三个 Task 节点调用了不同云产品服务能力,这些能力都是相关 API 的封装,因此需要传递一些必要的参数,根据 API 文档参考:

   {
     "Comment": "",
     "StartAt": "语音识别请求",
     "States": {
       "语音识别请求": {
         "Type": "Task",
         "Comment": "发送语音识别请求",
         "Resource": "qrn:qcs:asw:ap-guangzhou:123456789:sdk:json:qcloud:asr:generalASR",
         "Parameters":{
             "EngineModelType":"16k_zh",
             "ChannelNum":1,
             "ResTextFormat":0,
             "SourceType":0,
             "Url.$":"$.Url"
             },
         "OutputPath":"$.Response.Data",
         "Next": "获取语音识别结果"
       },
       "获取语音识别结果": {
         "Type": "Task",
         "Comment": "获取语音识别结果",
         "Resource": "qrn:qcs:asw:ap-guangzhou:123456789:sdk:json:qcloud:asr:checkASR",
         "Parameters":{"TaskId.$":"$.TaskId"},
         "Next": "关键字提取"
       },
       "关键字提取": {
         "Type": "Task",
         "Comment": "关键词提取任务",
         "Parameters":{
             "Text.$":"$.Response.Data.Result",
             "Num":10
         },
         "End": true,
         "Resource": "qrn:qcs:asw:ap-guangzhou:123456789:sdk:json:qcloud:nlp:KeywordsExtraction"
       }
     }
   }
说明:Task 中定义的 Resource 对应为云服务 API 接口的调用封装,Parameters 为调用时的传参。更多详情参考 状态机语言
  1. 单击右上角【下一步】,进入保存界面,输入状态机名称,运行角色选择【使用已有角色】或【新建角色】,类型选择【快速】,单击右上角【完成】,在状态机列表页可以看到创建好的状态机。

说明:使用已有角色需要先创建角色,并给角色授权相关策略,操作详情参考 运行角色

运行状态机

状态机创建完成后,您可以在登录后的主页面查看创建好的状态机。

  1. 单击需要运行的状态机的【名称】,进入状态机。

  2. 您可以在界面中看到状态机的基本信息。单击【工作流执行】下的【开始执行】

  3. 在弹出的“输入”窗口中,以 JSON 格式输入状态机需要的输入内容。例如:
   {
     "Url":"https://chaoshi-123456789cos.ap-guangzhou.myqcloud.com/storage/asr/16k.wav"
   }
说明:Url 中的链接必须公网可以访问
  1. 单击【确定】,完成状态执行后,可以在详情页查看执行结果:

  2. 滑动至页面最下方,在【执行历史记录】条目下,您可以查看子节点的运行情况。

申请试用 ASW

ASW 目前处于公测阶段,公测阶段免费提供服务。欢迎提出产品改进建议,反馈采纳后即可获得腾讯萌新短鹅公仔!

反馈入口

立即申请公测,我们将会在 3 个工作日内完成审批,并通过短信和站内信通知您,感谢您的支持。

One More Thing

立即体验腾讯云 Serverless Demo,领取 Serverless 新用户礼包 👉 serverless/start

欢迎访问:Serverless 中文网
阅读 268

玩转Serverless
我们专注于 Serverless 架构最佳实践,欢迎关注:[链接]

Serverless 中文社区是由一群拥有相同价值观和理念的志愿者们共同发起,于 2019 年 12 月正式成立。

124 声望
13 粉丝
0 条评论
你知道吗?

Serverless 中文社区是由一群拥有相同价值观和理念的志愿者们共同发起,于 2019 年 12 月正式成立。

124 声望
13 粉丝
宣传栏