首页
学习
活动
专区
圈层
工具
发布
社区首页 >专栏 >5 分钟上手 HarmonyOS Skill:快速集成语音与意图交互能力

5 分钟上手 HarmonyOS Skill:快速集成语音与意图交互能力

原创
作者头像
用户7462196
发布2026-01-27 18:03:53
发布2026-01-27 18:03:53
1150
举报

5 分钟上手 HarmonyOS Skill:快速集成语音与意图交互能力

在鸿蒙生态(HarmonyOS)中,Skill 是实现智能语音助手、意图识别和跨设备服务调用的核心机制之一。通过 Skill,你的应用可以被小艺(Celia)语音唤醒、响应用户自然语言指令,甚至与其他设备上的服务无缝协作。

本文将用 5 分钟时间,带你快速理解 Skill 的基本概念,并演示如何在 HarmonyOS 应用中注册并使用一个简单的自定义 Skill。


一、什么是 HarmonyOS Skill?

Skill 是 HarmonyOS 提供的一种服务能力单元,用于描述“我能做什么”。它基于 意图(Intent) 模型,将用户语音或文本指令映射到具体的功能逻辑。

例如:

  • 用户说:“打开天气应用查看北京天气”
  • 系统识别出意图 VIEW_WEATHER,并携带参数 {city: "北京"}
  • 你的应用通过注册对应 Skill 响应该意图,启动页面并展示数据

💡 Skill 类似于 Android 的 App Actions 或 iOS 的 Siri Shortcuts,但深度集成于鸿蒙分布式架构。


二、5 分钟实战:创建一个“打招呼”Skill

我们将创建一个简单 Skill:当用户对小艺说“让 MyApp 打个招呼”,应用弹出“Hello, HarmonyOS!”。

步骤 1:配置 config.json

module.json5(或旧版 config.json)中注册 Skill:

代码语言:javascript
复制
{
  "module": {
    "skills": [
      {
        "name": "com.example.myapp.GreetSkill",
        "type": "voice",
        "description": "响应打招呼指令",
        "actions": [
          {
            "name": "greet_user",
            "entities": []
          }
        ]
      }
    ],
    "abilities": [
      {
        "name": "MainAbility",
        "srcEntry": "./ets/entryability/EntryAbility.ets",
        "skills": [
          {
            "actions": ["greet_user"]
          }
        ]
      }
    ]
  }
}

✅ 注意:skills 定义能力,abilities 中的 skills 字段将其绑定到具体 Ability。


步骤 2:在 Ability 中处理 Skill 调用

EntryAbility.ets 中重写 onNewWant 方法(用于接收外部拉起):

代码语言:javascript
复制
import UIAbility from '@ohos.app.ability.UIAbility';

export default class EntryAbility extends UIAbility {
  onNewWant(want) {
    // 检查是否由 Skill 触发
    if (want.action === 'greet_user') {
      // 可在此启动特定页面或执行逻辑
      console.log('收到打招呼指令!');
      
      // 示例:弹出提示(需在 UI 线程)
      // 此处简化,实际应在页面中通过 ArkTS 显示
    }
  }
}

🔔 提示:若需跳转到具体页面,可在 onNewWant 中调用 this.context.startAbility() 启动目标页面,并传递参数。


步骤 3:(可选)配置语音触发语料

为了让小艺识别“让 MyApp 打个招呼”,需在 华为开发者联盟后台 提交语音模板(目前部分能力需审核):

  • 意图名称:greet_user
  • 示例语句:
    • “让 MyApp 打个招呼”
    • “叫 MyApp 问好”

🌐 注:本地调试可使用 DevEco Studio 的模拟器 + Intent 模拟工具 测试,无需真实语音。


三、调试技巧

  1. 使用 DevEco Studio 的“Intent 模拟器” 在运行配置中选择 “Edit Configurations” → 添加 “Intent” 启动方式,填入 action: greet_user 即可模拟 Skill 调用。
  2. 查看日志 通过 hdc shell 或 DevEco Log 工具观察 onNewWant 是否被触发。
  3. 权限声明 若涉及敏感操作,需在 module.json5 中声明相应权限(如 ohos.permission.INTERNET)。

四、进阶方向

  • 使用 Entity 传递参数(如城市名、时间等)
  • 实现 Service Ability 响应后台 Skill 请求
  • 结合 元服务(Meta Service) 实现免安装卡片式交互
  • 接入 小艺开放平台,支持更多自然语言表达

结语

Skill 是 HarmonyOS 构建智能、主动、跨端服务的关键入口。虽然本文仅展示了最基础的用法,但已为你打开了通往“语音驱动应用”的大门。只需 5 分钟配置,你的应用就能听懂用户说话!

🚀 下一步建议:尝试为你的应用添加一个“查询今日待办”Skill,结合数据库返回结果——让小艺真正成为你的效率助手!

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
作者已关闭评论
0 条评论
热度
最新
推荐阅读
目录
  • 一、什么是 HarmonyOS Skill?
  • 二、5 分钟实战:创建一个“打招呼”Skill
    • 步骤 1:配置 config.json
    • 步骤 2:在 Ability 中处理 Skill 调用
    • 步骤 3:(可选)配置语音触发语料
  • 三、调试技巧
  • 四、进阶方向
  • 结语
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档