“支付宝到账xx元” 使用 ESP32 + Python 打造播报音箱

   随着移动支付的普及,日常生活中很多时候我们都是采用扫码进行支付,当商家收到付款信息以后,会通过播报音箱将收款信息播放出来,从而快速的完成收款信息确认。

   “千里传音”服务,是阿里云IoT针对带有语音播报能力的AIoT设备,提供的一个云端一体的解决方案。为播报提醒类设备应用提供从播报语料合成,语料管理,语料推送到设备,播报设备管理等完善功能,配合集成了端侧播报能力的HaaS设备,帮助用户高效完成播报类设备应的开发和长期运行。

   本案例就是通过使用阿里云的千里传音和Python轻应用,快速的打造一个自己的播报音箱产品。

   完成本案例的学习只需要M5StackCore2开发板一套即可。

物联网平台开发

开通千里传音服务

   登录阿里云物联网平台控制台页面。

   如下图所示,依此点击“增值服务”->“选购增值服务”->“语音智能”,找到“千里传音语音播报服务”,点击“开通服务”。

创建项目

  1. 开通了千里传音服务以后,再点击“增值服务”,页面就会有千里传音服务的管理界面,点击“前往服务”。

  1. 在左侧栏选项中选择“项目管理”功能,后点击“创建项目”创建一个新项目。

  1. 在项目创建过程中,需要输入项目名称,并对项目进行简单描述,以便后期维护。

  1. 在完成项目创建后,系统将帮助用户创建一个与项目名相同的产品,以便后续加入设备。同时,如果用户希望为设备增加千里传音以外的能力,也可以直接到物联网平台的设备管理界面中,为设备添加物模型能力。

新增语料

  1. 在项目列表中,点击需要配置的项目后面的“配置”按钮,可以对项目内容进行配置管理。

   在项目配置界面,有分别是服务配置和设备管理等选项,其中服务配置是用来配置千里传音服务的,主要是语料管理;设备配置是用来管理项目中设备列表的。

  1. 如下图所示,在项目配置中,默认选中的就是“语料配置”

   在“语料配置”中的点击“新增语料”,新增自定义语料界面如下:

   其中语料标识和语料内容非常重要,语料标识必须是项目级别唯一标识符,它是作为语料组合调用时候的唯一标签,同时也作为设备端保存语料的文件名。语料内容指的就是我们要播报的文本。

   除此之外,我们还需要选择此语料的“语音场景”,包括方言场景,童声场景,客服场景以及通用场景(选择不同的语音场景后,生成的语料特色也各不相同);自定义语料的播放速度;自定义语料的播报音量等。

   选择不同的“语音场景”、“播报速度”及“播报音量”后点击“试听”直到得到自己满意的播报语料(是不是很有趣?)。

创建设备

  1. 在完成语料构建和管理后,需要在项目中创建设备,以便最终用户的播报应用可以将命令发送到设备端,完成整个播报链路。在“项目管理”界面,点击“设备管理”标签,将进入设备管理界面。

   在设备管理界面,有多个标签页可选,默认选中的是“设备列表”标签。

  1. 设备创建可以有“创建单个设备”和“批量创建设备”两种方式,点击“创建设备”会打开创建单个设备弹窗,并要求用户输入设备相关信息。

  • DeviceName:英文字符组成的设备名称,设备名称在一个项目中不可重复。
  • 备注名称:为了便于用户区分设备,给设备赋予的的信息,比如设备所部署的位置等信息。

2’. 如果需要创建多个设备可以点击“批量添加”按钮,此时会打开批量创建设备弹窗。

  • 自动生成:指系统将为用户自动生成DeviceName
  • 批量上传:需要用户通过.csv文件上传自定义的DeviceName
  • 设备数量:需要批量添加的设备个数

语料推送

  1. 在创建完成设备以后,回到“设备管理”标签页,可以显示设备列表,点击要操作的设备后面的“鉴权信息”按钮,可以查看设备的三元组信息。

  1. 在创建完成设备以后,我们就可以回到“语料配置”界面,将新增的语料推送到相应的设备上面进行测试了。

   如下图所示,点击需要推送的语料,操作栏中的推送到设备按钮(下图中我们推送的语料id是yuan)

  1. 进入语料推送界面,如下图所示,默认支持“单个设备”,“分组推送”和“全部设备”三种形式的推送。

   “单个设备”和“分组推送”模式,需要选择自己的设备名或者分组名,选中以后点击确定即可完成推送(需要等到设备端开发步骤完成后语料才能成功的推送到设备上)。

设备端开发

开发环境准备

   在进行下一步之前请确保M5StackCore2开发板已经烧录HaaSPython固件并且开发环境已经搭建完毕。详情请参考M5StackCore2快速开始的说明。

创建解决方案

工程创建

   如下图所示,打开VS Code之后在新建一个python工程,设定好工程名称(“broadcast_speaker”)及工作区路径。

  • 硬件类型:选择m5stackcore2
  • 解决方案:选择broadcast_speaker

   点击"立即创建",创建一个Python轻应用的解决方案。这个步骤完成后,HaaS-Studio会自动从云端拉取broadcast_speaker模板的代码到本地。

代码修改

   本地工程创建完成后,只需要如下2步,就可以完成设备端的开发。

  1. 修改路由器名称及密码

   修改broadcast_speaker工程里main.py中wifiSsid和wifiPassword的值为读者实际要连接的路由器的名称及密码(请注意名称和密码都需要放在""符号中间)。

# Wi-Fi SSID和Password设置
wifi_ssid = "请填写您的路由器名称"
wifi_password = "请填写您的路由器密码"

   修改完成之后get_wifi_status函数中的代码就会连接读者自己设定的路由器。

  1. 修改设备端三元组

   修改broadcast_speaker工程里main.py中productKey、deviceName和deviceSecret的值为读者创建的物联网设备的三元组信息(三元组信息获取可以参考“语料推送”的鉴权信息图),如下所示:

# 三元组信息
productKey = "产品密钥"
deviceName = "设备名称"
deviceSecret = "设备密钥"

Python脚本的详细说明请参考脚本内嵌的文字版注释。

运行结果

   推送脚本到m5stackcore2上并运行,脚本运行后输出如下日志。其中:

  • “remote speaker demo version - 1.0.3” 是程序启动成功后打印的版本信息
  • ”wifi_connected: False“ 代表循环等待wifi连接成功
  • “物联网平台连接成功” 代表成功连接到物联网平台
==== python file check /data/pyamp/main.py ====
==== python execute from /data/pyamp/main.py ====
remote speaker demo version - 1.0.3
wifi_connected: False
wifi_connected: False
wifi_connected: False
('192.168.3.113', '255.255.255.0', '192.168.3.1', '192.168.3.1')
set on_connect and on_service callback, start connect
sleep for 1 s
establish tcp connection with server(host='xxx.iot-as-mqtt.cn-shanghai.aliyuncs.com', port=[443])
success to establish tcp, fd=54
物联网平台连接成功

   在出现“物联网平台连接成功”之后就可以查看“语料推送”小节中的说明从云端推送语料到设备端。

语料播报控制

   我们已经将常用的音频文件放在了“broadcast_speaker”工程的resource目录下,在推送工程到设备的时候推送到了设备上,因此我们不需要再去重新创建语料,可以直接通过云端进行播报调试。

  1. 打开OpenAPI调试页面并登录阿里云账号。
  2. 如下如所示,选中SpeechByCombination,选择右侧服务器华东(上海),设置我们需要发送的语音序列信息依次为"zfbGet","{10000}","yuan",{xxx}里边的xxx代表实际要播报的数字,最后设置需要调试的设备DeviceName、ProductKey和千里传音的服务IotInstanceId。

   其中IotInstanceId在企业物联网平台的控制台主页可以看到,如下图:

点击"发起调试",设备端就可以听到支付宝到账10000元的播报提示。此时可以看到设备突出如下日志,其中: on service:代表收到云端的播报发送的服务请求,后面跟的是云端请求播报的语料的标识符。 ['xxx', 'yyy', 'zzz']:设备将接收到的云端标识符和本地语料路径进行组合获得的音频文件列表。

****** on service ********
zfbGet
{$10000}
yuan
['/data/pyamp/resource/zfbGet.wav', '/data/pyamp/resource/SYS_TONE_1.wav', '/data/pyamp/resource/SYS_TONE_MEASURE_WORD_wan.wav', '/data/pyamp/resource/yuan.wav']

来这里探索更多有趣案例
HaaS开发框架HaaS积木方案,赋能生态开发者,让您快速找到自己需要的解决方案,硬件主板与外设,以及各种应用组件。https://haas.iot.aliyun.com/solution

  • 1
    点赞
  • 16
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值