精灵小程序是在支付宝小程序的基础上,增加了语音能力。
小程序的开发者,请直接在蚂蚁开放平台上入驻: https://openhome.alipay.com/mini/dev/list
创建小程序,https://openhome.alipay.com/mini/dev/create
进入小程序设置页面:
开通“天猫精灵小程序”业务:
下载语音小程序开发编辑器:点此进入下载页
创建天猫精灵CC小程序,并使用 支付宝小程序开发者账号 登录IDE
小程序的开发,请参考支付宝小程序的官方文档: https://docs.alipay.com/mini/developer/getting-started
此时输入天猫精灵设备上播报的验证码,点击确认即可完成调试设备的添加。
如果输入验证码后,没有成功绑定设备,可尝试先上传一个小程序的版本,再重试一次。
选中调试设备后,即可通过真机预览的方式,将小程序推送到设备上运行。
在普通小程序的基础上,增加json的配置,即可增加语音操作能力。
在app.json同级的目录下,增加skill.json 文件。
skill.json 用于描述语料和command的映射关系,如下图所示:
数据格式:
{ "skill": [ { "command": "cmd1", "voice": ["语料1", "语料2", "语料3"], "tips": ["操作引导1", "操作引导2"] }, { "command": "cmd2", "voice": ["语料1", "语料2"] } ] }
字段说明 :
- voice: 语音操作的语料:
语料中可以有参数,如@{index:Number} 表示参数名是index,类型为数字。
目前参数类型支持:String, Number, Date, Time等
- command:
将voice中的语音,转换为command
- tips:
预留的可选字段:语音操作提示信息,给用户的操作引导。
后续的容器版本,将会自动提取该字段内容,以轮播的方式展示操作引导。
在app.json同级的目录下,增加mini.project.json 文件, 文件内容如下:
{ "include":[ "skill.json", "app.json" ] }
mini.project.json 文件的作用为:将skill.json,app.json文件打进小程序包内。
在需要响应语音操作页面的xxx.json 中,增加command 和 js函数之间的映射关系,如下图的index.json所示:
数据格式:
{ "skill":[ { "commands" : ["cmd1", "cmd2"], "onVoice" : "jsFun(param1, param2)" } ] }
字段说明:
- commands:
语音指令名列表,需在skill.json中有配置。
- onVoice:
语音command对应的js响应函数。onVoice中的参数名,需与skill.json中对应的语料参数名相同。
假设前台页面是在小程序的首页(index页)。此时用户说:“我要看梁朝伟的无间道”,将会自动调用index.js中的searchVideo方法,其中参数artist=梁朝伟,video=无间道。
联动效果如下图所示:
如果当前的语音操作,没有命中skill.json的配置,且没有触发页面跳转(如:今天天气,我要听歌等),则会调用page内的onVoiceEvent方法:
Page({ onVoiceEvent(event){ my.alert({content: "onVoiceEvent = " + JSON.stringify(event)}); }, });
功能:播报TTS
入参:
content: //tts播报的内容, string类型 openMic: //是否在播报结束后开麦,boolean类型
使用示例:
my.tg.playTTS({ content: '下一页', openMic: true });
功能:模拟语音请求
入参:
text: //模拟语音请求的内容,String类型
使用示例:
my.tg.nlpRequest({text: "今天天气"});