程序员

HaaS100 云端钉一体智能语音播放器设计

作者:admin 2021-04-06 我要评论

1、端测:硬件平台搭建 图1: HaaS100智能语音播放器系统框架 基于HaaS100开发“云端钉一体”的智能语音播放器,需要的硬件模块包括: HaaS100开发版(电源/ WIFI...

在说正事之前,我要推荐一个福利:你还在原价购买阿里云、腾讯云、华为云服务器吗?那太亏啦!来这里,新购、升级、续费都打折,能够为您省60%的钱呢!2核4G企业级云服务器低至69元/年,点击进去看看吧>>>)
1、端测:硬件平台搭建

image.png

图1: HaaS100智能语音播放器系统框架

基于HaaS100开发“云端钉一体”的智能语音播放器,需要的硬件模块包括:
HaaS100开发版(电源/ WIFI天线): 购买HaaS100硬件套装时已经提供。
microUSB数据线。
模拟MIC:硅麦一般有正负两级,HaaS100和硅麦的正/负极之间分别需要“1uF电容 + 2K电阻”上/下拉滤波,确保HaaS100可以采集到干净清晰的录音信号。具体连接方式参考上图。
喇叭:分为3线(VCC + GND + DIN)和4线(VCC + GND + DIN_P + DIN_N)两种经典的喇叭连接方式。上图中我们采用的是3线制喇叭,和HaaS100的连接参考上图。

2、端测:软件开发

2.1、AliOS Things开发环境准备

AliOS Things基础工具:aos-cube, git工具安装。 VS code IDE:《使用VS code IDE开发》 HaaS100代码获取、编译、烧录:《HaaS100快速开始》

2.2、代码修改
2.2.1、源码介绍
image.png

图2: 云端钉一体智能语音播放器软件框架

云端钉一体智能语音播放器软件模块包括:

audio_demo:主要打通HaaS100和阿里云物联网平台连接、通信,物模型解析,播放器功能逻辑的实现。 uVoice组件:是AliOS Things上智能语音解决方案的核心组件,提供了本地音频,URL音频,TTS合成等基础功能,音频格式支持mp3, m4a, wav, opus等主流格式。 A2SA组件:是AliOS Things上音频服务框架,兼容ALSA应用接口访问,支持音频硬件驱动抽象,多音频驱动加载/卸载,VFS接口支持等功能。多播放焦点管理,混音,softvol,重采样等功能设计中。 麦克风/喇叭硬件:HaaS100上已经集成了模拟麦和Speaker的硬件驱动。

2.2.2、application/example/audio_demo
在文件audio_demo/linkkit_example_solo.c中包含了HaaS100设备和阿里云物联网平台链接的关键密钥信息(四元组)。image.png

图3: HaaS100开源SDK中修改audio_demo四元组信息

每位用户应该根据自己在"阿里云物联网平台"中创建的产品信息中可以获取到一下四元组信息。只有在audio_demo/linkkit_example_solo.c中填写了正确的四元组信息,HaaS100语音播放器才能正确连接用户自己账号的阿里云物联网平台。

"ProductKey":用户创建的产品类型的Key(唯一ID) "ProductSecret":用户创建的产品类型的密钥(和ProductKey一一对应) "DeviceName": 该产品类型下的某个具体设备名字(某个产品类型下可以有很多量产设备) "DeviceSecret": 该产品类型下的名字为DeviceName设备的密钥(和DeviceName一一对应)

image.png

图4: 阿里云物联网平台获取四元组信息页面

2.2.3、components/service/uvoice

在我们的uvoice组件中集成了阿里巴巴的“智能语音交互”的部分功能,例如免费试用版的“语音合成”功能,需要商用的用户可以付费开通商用版。
用户需要登陆“智能语音交互”主页,并根据引导创建一个包含“语音合成”功能的项目。项目创建完成后,项目主页中会生成该项目的“Appkey”, 总览主页中可以获取到“AccessToken”两个重要信息。
image.png

图5: 创建智能语音交互项目和获取AppKey
image.png

图6: 获取智能语音交互AccessToken

在HaaS100 SDK的components/service/uvoice/test/test_tts.c中,我们需要填写正确的AppKey和AccessToken信息才可以使用阿里巴巴“智能语音交互 - 语音合成”功能。值得注意的是,AccessToken是动态刷新的,周期是每个用户账户可配置的,默认是2天变化一次。因此在功能开发阶段,需要周期性的更新固件中的AccessToken,否则可能出现语音合成功能访问失败的问题。如果是产品量产阶段,可以基于阿里云端一体的安全通道周期更新设备端AccessToken。
阿里云智能语音合成功能提供了Java/ C++/ Restful等多种SDK,开发者也可以自己下载SDK适配。
image.png

图7: uvoice组件中修改AppKey和AccessToken代码位置

2.3、代码编译、下载
编译audio_demo的命令如下,编译成功之后参考《HaaS100快速开始》文章将固件更新到HaaS100板子上。最新的版本支持Windows, Mac下刷机。

aos make clean aos make distclean
aos make audio_demo@haas100 -c config
aos make

固件烧写成功后,可以通过以下方法快速验证HaaS100的喇叭和麦克风之间的硬件连接是否正常。

串口终端:insmod_audio_drv
串口终端:loopback 0 start

敲完以上两个命令之后,HaaS100进入录音/播放的loopback测试模式,用户靠近麦克风说话,喇叭正常有声音输出。

2.4、配网、连接物联网平台
HaaS100 WIFI配网方法如下。如果配网信息和四元组信息都正确的情况下,HaaS100和物联网平台连接成功后有如下HardwareError ping-pong日志打印。

netmgr -t wifi -c {ssid} {password}
例如: netmgr -t wifi -c EthanIPhone 12345678

image.png

图8: 连接物联网平台成功后的ping-pong日志打印

如果,有些开发者发现自己的HaaS100板子WIFI连接路由器困难,那么可以尝试以下方法排查。

更新github上的最新固件 串口终端: aos_mac WIFI,获取WIFI MAC地址,如果是全0,那么需要更新MAC地址
HaaS VIP钉群中咨询@谷饮,获取唯一的WIFI MAC地址。 串口终端: aos_mac WIFI XX:XX:XX:XX:XX:XX,更新WIFI MAC地址。 3、阿里云IoT平台

阿里云物联网平台创建产品、设备的过程可以参考文章《阿里云物联网平台快速入门实践》。其中“云端钉一体的智能语音播放器”物模型设计可以参考:“智能语音播放器物模型”。
在开发者创建自己产品时,可以选择导入我们提供的“智能语音播放器物模型”来生成一个临时产品,从而快速的验证云端钉一体的智能语音播放器方案,请参考下图步骤。

image.png

图9: 创建产品时快速导入物模型

4、钉钉小程序

4.1、快速开始
参考文章《30分钟上手HaaS小程序开发》, 文中介绍了小程序开发工具IDE、HaaS钉钉小程序示例代码获取、钉钉小程序申请、小程序真机调试等基础内容。开发者可以根据这篇文章快速上手一个自己的小程序应用开发。

4.2、小程序:HaaS语音播放器
下载的“HaaS钉钉小程序示例代码”中包含了“HaaS智能语音播放器”示例源码。HaaS语音播放器中创建了2个page,分别是HaasAudioPlayer和playList。


本文转自网络,原文链接:https://developer.aliyun.com/article/781639

版权声明:本文转载自网络,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。本站转载出于传播更多优秀技术知识之目的,如有侵权请联系QQ/微信:153890879删除

相关文章
  • Vue SPA 首屏优化方案

    Vue SPA 首屏优化方案

  • vue 动态添加的路由页面刷新时失效的原

    vue 动态添加的路由页面刷新时失效的原

  • vue项目配置 webpack-obfuscator 进行

    vue项目配置 webpack-obfuscator 进行

  • JavaScript 中的执行上下文和执行栈实

    JavaScript 中的执行上下文和执行栈实

腾讯云代理商
海外云服务器