11

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

 3 years ago
source link: https://serverlesscloud.cn/best-practice/2021-01-25-audio-extraction-keywords
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.

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

发布于: 2021-1-25
归档于:

标签:Serverless工作流 ASW

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

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

703dc73703175114a3cbd9cae424425e.svg

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

创建状态机

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

e335401243e058a5c396d1f1a1694890.png

  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. 单击右上角【下一步】,进入保存界面,输入状态机名称,运行角色选择【使用已有角色】或【新建角色】,类型选择【快速】,单击右上角【完成】,在状态机列表页可以看到创建好的状态机。

6b753509fdb6655d3f31e5ac243321d3.png

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

运行状态机

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

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

    6bc8f9a979069bdc3c091a0ae503d99d.png

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

    1e2f88c18af26ae3a8236e361c0a691f.png

  3. 在弹出的“输入”窗口中,以 JSON 格式输入状态机需要的输入内容。例如:
   {
     "Url":"https://chaoshi-123456789cos.ap-guangzhou.myqcloud.com/storage/asr/16k.wav"
   }

说明:Url 中的链接必须公网可以访问

  1. 单击【确定】,完成状态执行后,可以在详情页查看执行结果:

    2b1f5a13b4f77cf80041e28597238f58.png

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

    3632b6da514e9e4baf1396eb1ed9c6b2.png

申请试用 ASW

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

7453713b86498abeed1cf9c0e47a5c9d.jpg

反馈入口

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


传送门:

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


About Joyk


Aggregate valuable and interesting links.
Joyk means Joy of geeK