该功能通过拉起小艺Agent,触发语音交互,匹配用户输入的关联词,根据匹配的关键词,触发指定命令。
通过把设计师提供的能力列表skills发送给小艺智能体,其再结合用户在小艺的语音输出,经过大模型处理后,匹配出用户需要的能力,小艺智能体通过全局变量matchSkill_value传递给主题引擎处理对应的逻辑。
创意场景
1.通过语音驱动,让锁屏卡通形象跳舞 。
起始规范版本:HarmonyOS 7.0
是否平台特性:否
锁屏(Lockscreen) | 桌面(Wallpaper) | 一镜到底(LongTake) | 百变卡片(Widget) | 充电动效(ChargingSkin) | |
|---|---|---|---|---|---|
是否支持 | √ | x | x | x | x |
直板机 | 折叠屏 | 平板 | |
|---|---|---|---|
是否支持 | √ | √ | √ |
参数 | 类型 | 选项 | 注释 |
skills | 字符串 | 必填 | 该能力下所能支持的技能列表。 用竖线作为分隔符。关键词内不建议包含空格、逗号等其他符号,避免影响AI识别。“未匹配”可用做在其他关键词未匹配时,触发默认指令,没有默认指令则不添加。 |
chipsExp | 字符串 | 必填 | 快捷指令,与技能列表对应,个数不超过5个,文本最大长度为10,超过10无效不显示。用竖线|作为分隔符。不支持转义字符。建议不超过3个,每个字数控制在5个以内,首尾无空格。 支持字符串表达式。单个条件结果要加单引号。 |
condition | 表达式 | 选填 | 条件判断,支持表达式。当condition里的条件判断为非0或者为true时,该命令执行,为false或者0则不执行。默认:true |
1. 设计触发识别入口时,建议只在Button->trigger内使用。
2. 需要使用统一的小艺图标(小艺入口图标.zip),作为启用小艺的入口。
3. 一个根标签下,仅支持一个AI语音命令。
4. 建议制作首次使用引导说明,同时需要在预览图和简介中增加功能使用说明。
示例一:用于简单指令
<?xml version="1.0" encoding="utf-8"?> <Lockscreen version="1" frameRate="30" screenWidth="1440"> <Var name="voice1" expression="#strIndexOf(#matchSkill_value,'唱歌')" type="string"> <Button x="0" y="0" w="100" h="100"> <Trigger action="down"> <VoiceCommand skills="唱歌|隐藏|播放|停止|改变"/> </Trigger> </Button> <Image x="24" y="1189" src=""xiong/sing.png" visibility="eq(#voice1,0)"/> </Lockscreen>
<?xml version="1.0" encoding="utf-8"?>
<Lockscreen version="1" frameRate="30" screenWidth="1440">
<Var name="voice1" expression="strIndexOf(#matchSkill_value,'显示')" type="string">
<Var name="voice2" expression="strIndexOf(#matchSkill_value,'隐藏')" type="string">
<Var name="voice3" expression="strIndexOf(#matchSkill_value,'播放')" type="string">
<Var name="voice4" expression="strIndexOf(#matchSkill_value,'停止')" type="string">
<Var name="voice5" expression="strIndexOf(#matchSkill_value,'改变')" type="string">
<Button x="61" y="1650" w="985" h="346">
<Trigger action="down">
<VoiceCommand skills="显示|隐藏|播放|停止|改变">
<Command condition="eq(#voice1,0)" target="image1.visibility" value="true">
<Command condition="eq(#voice2,0)" target="image1.visibility" value="false">
<VideoCommand condition="eq(#voice3,0)" name="sp1" play="true">
<VideoCommand condition="eq(#voice4,0)" name="sp1" play="false">
<VariableCommand condition="eq(#voice5,0)" name="textContext" expression="#textContext+1">
</VoiceCommand>
</Trigger>
</Button>
</Lockscreen>