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

简介: 文主要介绍如何基于HaaS100硬件平台搭建“云端钉一体”(阿里云IoT平台 + HaaS100 + 钉钉小程序)的智能语音播放器。包括加载/卸载HaaS100上的声卡模块、TTS (Text to Speech)、智能语音合成功能、开始/停止录音、录音文件路径/data/rec.pcm音乐播功能(例如音量调节/播放/暂停/上一首/下一首/播放列表等)四大小程序,以及音量调节,本地音乐/ 网络音乐播放(.mp3, .m4a等格式)等、 TTS (Text to Speech),智能语音合成功能两大地本地CLI功能。

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。

  • HaasAudioPlayer页面功能有:加载/卸载HaaS100声卡,打开/关闭录音,TTS语音合成入口,当前播放音乐的基础信息(歌曲名、歌手名、专辑图片),播放模式选择,音效选择,音量控制,播放控制(播放、暂停、上一首、下一首)以及播放列表入口。

  • playList页面:自动从./mock/data.json中导入用户与设置好的播放列表信息。

4.2.1、小程序账号信息修改
要成功使用HaaS智能语音播放器小程序,开发者需要正确输入用户的账号信息,包括

  • accessKeyId + accessKeySecret: 钉钉小程序访问用户“阿里云物联网平台”账户的密钥信息。修改代码路径是./pages/app.js。

image.png

图10: 访问阿里云物联网平台的密钥信息

  • DeviceName + ProductKey:指定钉钉小程序需要控制的用户物联网平台中的某个HaaS100设备。修改代码路径是./pages/HaasAudioPlayer/HaasAudioPlayer.js

image.png

图11: 访问阿里云物联网平台某个HaaS设备的密钥信息

4.2.2、修改播放列表
开发者可以自己修改歌曲播放列表,配置文件位于./mock/data.json。每首歌曲信息包含:

  • id: 歌曲在播放列表中的id
  • copyrightId:歌曲版权信息,可忽略
  • picS: 歌曲在播放页面中显示的图片信息
  • songName: 歌曲名
  • singerName: 歌手名
  • url: 歌曲链接,可以是本地文件系统中的歌曲文件,例如fs:/data/6.mp3,也可以是浏览器可以直接播放的网络歌曲链接。

经过以上2个简单步骤,开发者就已经快速开发好一个简单的“HaaS智能语音播放器”了。真机调试方法可以参考文章《30分钟上手HaaS小程序开发》。祝您体验HaaS云端钉一体智能语音播放器方案愉快。

5、开发者技术支持
如需更多技术支持,可加入钉钉开发者群,或者关注微信公众号
20210115164252868.png
更多技术与解决方案介绍,请访问阿里云AIoT首页

相关实践学习
钉钉群中如何接收IoT温控器数据告警通知
本实验主要介绍如何将温控器设备以MQTT协议接入IoT物联网平台,通过云产品流转到函数计算FC,调用钉钉群机器人API,实时推送温湿度消息到钉钉群。
阿里云AIoT物联网开发实战
本课程将由物联网专家带你熟悉阿里云AIoT物联网领域全套云产品,7天轻松搭建基于Arduino的端到端物联网场景应用。 开始学习前,请先开通下方两个云产品,让学习更流畅: IoT物联网平台:https://iot.console.aliyun.com/ LinkWAN物联网络管理平台:https://linkwan.console.aliyun.com/service-open
相关文章
|
机器学习/深度学习 人工智能 自然语言处理
HaaS云端一体智能语音交互方案
智能语音交互作为物联网领域的一个重要生态成员,是一种全新的交互方式,它能够解放双手,随时提供服务,无须借助任何按键。近年来智能家居逐渐走入千家万户,产业市场规模不断增长。智能家居产品种类繁多,很多家庭有着智能门锁、扫地机器人、智能电视、智能洗衣机、智能电冰箱等不同类型的智能家居产品,这些产品需要一个交互性好的控制中心,基于智能语音交互技术的智能音箱脱颖而出。
1221 12
|
4天前
|
机器学习/深度学习 算法 人机交互
智能语音识别技术的最新进展与未来趋势####
【10月更文挑战第21天】 在当今这个信息爆炸的时代,人机交互方式正经历着前所未有的变革。本文深入探讨了智能语音识别技术的前沿动态,从深度学习模型的创新应用到跨语言、跨领域的适应性增强,揭示了该领域如何不断突破技术壁垒,提升用户体验的真实案例与数据支撑。通过对比分析当前主流算法的性能差异,本文旨在为研究者和开发者提供一幅清晰的技术演进蓝图,同时展望了多模态融合、情感识别等新兴方向的广阔前景。 ####
34 7
|
15天前
|
机器学习/深度学习 存储 人工智能
智能语音识别技术的深度剖析与应用前景####
本文深入探讨了智能语音识别技术的技术原理、关键技术突破及广泛应用场景,通过具体实例展现了该技术如何深刻改变我们的日常生活和工作方式。文章还分析了当前面临的挑战与未来发展趋势,为读者提供了一幅全面而深入的智能语音识别技术图景。 ####
|
18天前
|
机器学习/深度学习 搜索推荐 语音技术
智能语音识别技术在智能家居中的应用与挑战####
本文深入探讨了智能语音识别技术的基本原理、关键技术环节,以及其在智能家居领域的广泛应用现状。通过分析当前面临的主要挑战,如环境噪音干扰、方言及口音识别难题等,文章进一步展望了未来发展趋势,包括技术融合创新、个性化服务定制及安全隐私保护的加强。本文旨在为读者提供一个关于智能语音识别技术在智能家居中应用的全面视角,同时激发对该领域未来发展方向的思考。 ####
58 6
|
17天前
|
机器学习/深度学习 人工智能 自然语言处理
智能语音识别技术在多语言环境中的应用与挑战####
随着全球化的不断推进,跨语言交流的需求日益增长,智能语音识别技术成为连接不同语言文化的桥梁。本文旨在探索该技术在多语言环境中的应用现状、面临的挑战及未来发展趋势,通过深入分析技术瓶颈与创新策略,为促进全球无障碍沟通提供新视角。 ####
|
27天前
|
机器学习/深度学习 人工智能 自然语言处理
智能语音识别技术的现状与未来发展趋势####
本文旨在探讨智能语音识别技术的发展历程、当前主要技术特点、面临的挑战以及未来的发展趋势。通过综述该领域的最新研究进展和应用实例,本文为读者提供了一个关于智能语音识别技术的全面概览,并展望了其在未来可能的发展方向。 ####
|
29天前
|
存储 自然语言处理 搜索推荐
智能语音识别技术在医疗健康领域的深度应用与前景####
本文深入探讨了智能语音识别技术在医疗健康领域的多维度应用,从电子病历的高效录入到远程诊疗的无缝对接,再到患者教育与健康管理的个性化服务,展现了该技术如何显著提升医疗服务效率与质量。通过分析典型应用场景、挑战及解决方案,本文揭示了智能语音识别技术在推动医疗行业智能化转型中的关键作用,并展望了其未来发展趋势与广阔前景。 ####
|
1月前
|
机器学习/深度学习 人工智能 自然语言处理
智能语音识别技术在多语言环境下的挑战与优化策略###
随着全球化的加速推进,智能语音识别技术作为人机交互的关键一环,其跨语言适应性成为了研究热点。本文深入探讨了智能语音识别技术在多语言环境下面临的挑战,包括口音差异、词汇多样性、语法结构复杂性等,并提出了相应的优化策略。通过对比分析不同算法和技术路线,本文旨在为提升智能语音识别系统的跨语言性能提供理论依据和实践指导。 ###
|
1月前
|
机器学习/深度学习 算法 语音技术
智能语音识别技术在医疗健康领域的应用与挑战####
本文深入探讨了智能语音识别技术(Intelligent Speech Recognition, ISR)在医疗健康领域的现状、应用实例及面临的主要挑战。通过分析ISR技术的基本原理,结合其在电子病历记录、远程医疗咨询、患者监护及健康管理等方面的实际应用案例,揭示了该技术如何提升医疗服务效率、改善医患沟通并促进个性化医疗的发展。同时,文章也指出了数据隐私保护、方言与口音识别难题、技术准确性及用户接受度等关键挑战,为未来研究和技术优化提供了方向。 ####
|
1月前
|
人工智能 算法 语音技术
智能语音识别技术:原理、应用与挑战####
本文深入浅出地探讨了智能语音识别技术的基本原理,从声学模型到语言模型的构建过程,揭示了其背后的复杂算法。同时,文章详细阐述了该技术在智能家居、客户服务、无障碍技术等领域的广泛应用,并指出了当前面临的主要挑战,包括噪声干扰、方言差异及数据隐私等问题,为读者提供了对这一前沿技术领域的全面了解。 ####
下一篇
DataWorks