教程 框架 组件 接口 其他

语音开发

语音能力

快应用增加了语音接口,支持可见即可说和NLP(自然语言处理)两种能力:

  • 可见即可说:在快应用的页面上,只要用户的语音匹配到了页面元素的语音标签,就可以触发页面元素的操作;
  • NLP:当用户的语音被识别为一种意图时,会交给快应用处理。快应用可以根据意图名称和参数,返回合适的响应。

快应用可以灵活使用上述的一种或两种能力,为应用增加语音交互体验。

可见即可说

可见即可说是低成本实现语音交互的方式。只要初始化语音接口(service.vui),并在需要响应语音指令的页面元素上增加vtags和vindex标签,就可以实现很好的体验。

使用可见即可说的步骤如下:

1.在app.ux文件中初始化vui接口

import vui from '@service.vui'

onCreate() {
  vui.initialize({
    success: function(){
      console.log(`初始化成功`)
    },
    fail: function(err, code){
      console.log(`初始化失败, err = ${err}, code = ${code}`)
    }
  })
}

2.在需要响应语音指令的页面元素上增加vtags和vindex属性

<text onclick="showDetail()" vtags="详情,查看详情,打开详情" vindex="1">详情</text>

无论用户说的是“详情”、“查看详情”、“打开详情”还是“第一个”,都可以触发text组件的click操作,执行showDetail函数。

NLP

NLP是语音交互的高级形式,在用户使用语音表达需求后,语音引擎通过自然语言处理,识别出语音中的意图和关键信息,交给快应用处理并返回合适的响应。

由于技术的限制,NLP目前只能解决部分领域的问题。快应用目前支持的NLP领域见意图列表

使用NLP的步骤如下:

1.在app.ux文件中初始化vui接口

import vui from '@service.vui'

onCreate() {
  vui.initialize({
    success: function(){
      console.log(`初始化成功`)
    },
    fail: function(err, code){
      console.log(`初始化失败, err = ${err}, code = ${code}`)
    }
  })
}

2.增加onNlpResult回调,在回调中对支持的每个意图做响应。如果意图已经处理,回调必须返回true,否则返回false。返回false后,快应用引擎会使用默认逻辑来进行响应。

vui.onNlpResult = function (response) {
  const { instructions } = response
  console.log('onNlpResult', instructions)

  instructions.forEach(instructionItem => {
    // 一般不用处理ELEMENT类型,框架会自动触发UI操作
    if (instructionItem.type === vui.INSTRUCTION_TYPE.ELEMENT) {
      // 识别结果为:UI事件操作
      // 触发UI事件操作,如:某个页面中某个元素的点击事件
      vui.dispatchEvent(instructionItem)   
      // 响应语音指令后,如果不需要快应用引擎继续处理,需要返回true
      return true
    } else if (instructionItem.type === vui.INSTRUCTION_TYPE.INTENT) {
      // 识别结果为:意图识别结果
      // 开发者根据识别出来的意图结果,完成对应的业务响应;如播放音乐
      const { name } = instructionItem
      if (name == "intent.music.play") {
        playMusic()
        // 响应语音指令后,如果不需要快应用引擎继续处理,需要返回true
        return true
      }
    }
    // 如果需要快应用引擎继续处理语音指令,需要返回false
    return false
  }
}

为了减少开发工作量,快应用框架对部分意图做了默认响应,开发者可以不用处理,详情参见意图列表

完整的语音示例,参考Github项目地址

条匹配 "" 的结果

    没有搜索到与 "" 相关的内容