关键词:
文章目录
前言
针对ESP32-A1S的开发板,之前就写了一边如何实现离线语音控制LED灯的博文,但是之前的博文中所用到的模组中的音频编解码芯片是AC101,需要我们自己写驱动程序。为了适配乐鑫得SDK,模组中得编解码芯片也换成了ES8388,乐鑫已经写好了驱动程序,我们二次开发只要不需要重新写编解码程序。也让我们的移植变得更加简单。
DuerOS是百度度秘事业部在2017年1月CES展推出的对话式人工智能操作系统,它赋予硬件设备与人沟通的能力,真正的将语音对话这种新的交互方式融入到了人们的生活之中。
本文将通过对乐鑫ESP-ADF-SDK中的dueros 例程进行移植,在安信可SEP32-A1S-Audio-Kit开发板上实现在线语音对话功能,本文很长,但是没有闲话。
一、准备工作
1.硬件准备
硬件毫无疑问就是安信可ESP32-A1S-Audio-Kit_V2.2开发板,带内存卡,最好接有扬声器,没有扬声器可以接3.5mm音频口的耳机也成。
可惜:目前这个开发板已经在安信可某宝旗舰店下架了,但是ESP-A1S模组还在,绘画PCB的同学可以画一个自己的小板子,上方的开发板的原理图也提供给大家,见本文结尾连接:
2.软件准备
本次的二次开发是在Linux 环境下进行的,软件是乐鑫的esp-adf工程,在一个自己喜欢的文件夹中clone项目源码,这个克隆的时间比较长,请耐心等待:
git clone --recursive https://github.com/espressif/esp-adf.git
//如果觉得慢,也可以使用博主的仓库
git clone https://gitee.com/seahi007/esp-adf.git
ESP-ADF具体的安装步骤请参考:espressif esp-adf 音频开发框架
最后不要忘了拉取子模块:
cd esp-adf
git submodule update --init --recursive
在等待的过程,可以去注册一个百度账号或者做一下开发者验证。注册账号后进行通过开发者验证(验证时间1~2天)。DuerOS开放平台连接:https://dueros.baidu.com/open,
验证通过之后,进入这个连接:小度智能开放平台:https://dueros.baidu.com/didp/main/index,千万不要直接点击控制台进去,不然永远都找不到这个界面,也就无法获取profile文件。
详细的profile文件获取方式请参考: http://www.dianzixuexi.com/HTML/zixun/64787.html
二、验证ESP-ADF是否正常
1. 代码简单修改
ESP-ADF里的examples 都是需要开发板的,因为它的I2C,I2S等接口只是适配了乐鑫出品的开发板。要用我们自己的板子的话,就需要改一下代码,令I2C和I2S接口匹配我们的板子,ESP32-A1S的开发板接口如下:
修改board_pins_config.c,路径:esp-adf/components/audio_board/lyrat_v4_3
cd /home/saehi/Desktop/ESP/ESP32-A1S/esp-adf_test/esp-adf/components/audio_board/lyrat_v4_3
vi board_pins_config.c
2.播放MP3测试
播放MP3这个例程是不要 microSD(内存卡)的,可以直接编译下载就能播放。
配置 Audio HAL—>ESP32-Lyrat V4.3:
idf.py menuconfig
配置完成后,即可编译—>下载—>验证:
idf.py build flash montior
这时候,你应该就能听到一段很魔幻的声音,中就证明ESP-ADF已经准备就绪,可以开始做在线语音功能了。
三、dueros 例程适配
适配过程有点繁杂,请仔细阅读:
1.替换连接文件
dueros的连接需要用到profile 文件,里面包含了client_id、client_secret等验证信息。
重中之重: 我们需要把profile.zip 中的任意一个文件重命名为:duer_profile,然后替换该路径下的duer_profile:esp-adf_test/esp-adf/components/dueros_service/duer_profile。
2.内存卡准备
准备一张内存卡,最好是空的内存卡,然后把DingDing.wav 文件复制到内存卡根目录,DingDing.wav文件路径为:esp-adf_test/esp-adf/examples/dueros/tone。完成之后把内存卡插入开发板的卡槽当中。
3. 代码修改
代码修改主要在dueros例程的main文件中的dueros_app.c:
(1)屏蔽触摸按键
安信可ESP32-A1S开发板中并没有触摸按键,所以要屏蔽掉,而且触摸按键的循环查询占用了大量CPU的资源,会导致I2C与ES8388的通信受阻,dueros_app.c的294行到342行全部屏蔽掉:
(2)修改唤醒提示音
源码中的唤醒提示音的文件名是错误的,不修改的话,提示音的播放不了的,虽然不影响使用,但是降低体验感受。
定位到:94行:
4. 修改 lyrat_v4_3中的board.c 代码
打开board.c:
vi esp-adf_test/esp-adf/components/audio_board/lyrat_v4_3/board.c
定位到93行,把93行到99行的内容屏蔽掉,如下:
5.连接成功截图
连接成功之后,就可以对着开发板的麦克风说"Hi,乐鑫",”今天天气怎么样“,正常情况下是可以播报天气情况。
四、常见问题
1.函数未声明错误
问题截图:
原因: dueros_esp_flash.c 没有被添加到工程当中;
修改方法: 在路径:"esp-adf_test/esp-adf/components/dueros_service/ " 中打开CMakeLists.txt,修改如下即可编译通过:
2. 串口监控有唤醒提示但没有提示音
原因1: 内存卡中没有DingDing.wav 音乐文件;
解决办法: 把esp-adf_test/esp-adf/examples/dueros/tone/DingDing.wav 文件复制到内存卡。
原因2: 播放文件没修改:
解决办法:
如果以上办法都没有解决,请先运行播放MP3的例程,看看是否正常。
3.I2C Bus WriteReg Error
问题截图:
原因: 没有屏蔽TOUCH的初始化代码,导致TOUCH初始化出错。
解决办法: 详见: 4. 修改 lyrat_v4_3中的board.c 代码
五、相关连接
开发板原理图:ESP32-A1S-Audui-Kit-V2.0原理图;
模组购买连接: 安信可ESP32-A1S某宝购买连接;
欢迎关注安信可官方博客:欢迎关注安信可科技;
源码地址:https://github.com/SeaHi-Mo/esp-adf
安信可esp-12f(esp8266)介绍与使用(代码片段)
介绍安信可常见模块对比ESP-12F参数ESP-12F引脚ESP-12F推荐电路ESP-12F内部原理图可以看到板载的LED被连到了GPIO2内部晶振频率是26MHzSPIFLASH型号是W25Q32,4MB,支持4线SPI。复位引脚RST内部有12K电阻的上拉。软件开发esp8266的开发... 查看详情
求一个安信可esp8266模块调试工具
求一个可ESP8266模块调试工具,硬件和烧录软件都准备好了,就差安信可ESP8266模块调试工具了,求了!参考技术A你百度一下:SDK二次开发[安信可科技]就可以找到。 查看详情
二次开发应用安信可esp32/esp8266模组入网阿里生活物联网平台(代码片段)
目录前言一、准备工作1.1、硬件准备1.2、软件准备二、工程搭建平台设置ESP-12S开发板部分软件操作ESP32-S开发板部分软件操作三、效果演示3.1、天猫精灵找队友测试3.2、APP配网测试更多资料前言之前我们推送过如何通过AT指令入... 查看详情
如何安装安信可一体化开发环境
本文转载自:http://wiki.ai-thinker.com/ai_ide_install安信可ESP系列一体化开发环境是安信可科技为方便广大用户而推出的基于Windows+Cygwin+Eclipse+GCC的综合IDE环境简介安信可一体化开发环境有以下特点:支持ESP8266NONOS和FreeRTOS环境开发支持... 查看详情
乐鑫esp32学习之旅安信可esp32-cam摄像头开发板二次开发csdk编程,拍照图片通过有线串口传到上位机pc端。(附带设备端+pc端源码)(代码片段)
本系列博客学习由非官方人员半颗心脏潜心所力所写,仅仅做个人技术交流分享,不做任何商业用途。如有不对之处,请留言,本人及时更改。系列一:ESP32系列模组基础学习系列笔记1、爬坑学习新旅程,... 查看详情
微信小程序控制硬件16安信可esp32-s开发板实现移植腾讯物联开发平台蓝牙llsync协议,实现一键蓝牙快速配网+远程控制。(附带源码)(代码片段)
文章目录一、前言二、源码目录说明三、编译指导四、常见问题五、开源微信物联网控制一览表另外,不要把我的博客作为学习标准,我的只是笔记,难有疏忽之处,如果有,请指出来,也欢迎留言哈... 查看详情
esp32开发硬件
硬件由安信可ESP32S模组、WM****音频芯片、USB串口芯片、电源管理芯片、SD卡、显示屏使用安信可ESP32S模组:(目前该模块已升级,官网找不到资料,但是模块引脚共用) 查看详情
安信可esp32-cam摄像头开发demo--局域网拍照实时视频人脸识别(代码片段)
...频流4.2人脸检测、人脸识别目录一、前言 ESP32-CAM是安信可发布小尺寸的摄像头模组。该模块可以作为最小系统独立工作,尺寸 查看详情
微信小程序控制硬件16安信可esp32-s开发板实现移植腾讯物联开发平台蓝牙llsync协议,实现一键蓝牙快速配网+远程控制。(附带源码)(代码片段)
文章目录一、前言二、源码目录说明三、编译指导四、常见问题五、开源微信物联网控制一览表另外,不要把我的博客作为学习标准,我的只是笔记,难有疏忽之处,如果有,请指出来,也欢迎留言哈... 查看详情
捷配&安信可——暑期创作营:教你用esp-12f接入阿里云iot生活平台,做一款专属智能灯!
...:865828650,参与活动~一、活动内容1.活动主题《安信可ESP-12F接入阿里物联网生活平台,实现远程控制七彩灯》2.目标用户热爱IoT,热爱ESP8266,认可安信可品牌的开发者~3.活动时间2021年8月26日19:00,观看由... 查看详情
安信可esp8266怎么烧写固件库
参考技术A1、进入命令模式2、AT+CWMODE设置AP模式3、AT+CWSAP设置此时用手机连接步骤3设置的wifi信号4、下载一个手机网络调试助手,查看模块的ip和port,连接之后就可以发数 查看详情
安信可esp8266怎么烧写固件库
参考技术A进入第一个个连接进入之后我们就可以选择红色方框buidfirmware。之后我们就可以下载相应的固件了,但是这个固件是比较早的就是了,是2015年的固件,所以我们接下来要做的就是来自己编译一个固件。 查看详情
esp32插上面包板不识别
参考技术AESP32不是上传模式。安信可推出一款WIFI,蓝牙模块ESP32,它可以说是ESP8266的增强版。esp32插上面包板不识别是因为不是上传模式,ESP32是集成2.4GHzWi-Fi和蓝牙双模的单芯方案,采用台积电(TSMC)超低功耗的40纳米工艺,具有... 查看详情
安信可内测离线语音模块vb-01与esp-c3-12f通信(代码片段)
... 上个月给大家展示了使用ESP-C3-12F来控制WS2812RGB灯条(安信可ESP32-C3模组阿里云远程控制WS2812RGB灯条(基于ESP-IDF的SDK 查看详情
安信可esp-c3-12f模组应用之物联网时钟(代码片段)
...取4.效果展示更多资料1.项目功能简介物联网时钟应用以安信可ESP-C3-12F模组为主控模块,外接MAX7219八位数码管、DS1302RTC时钟模块、5个功能按键以及两个只是灯组成。设备访问NTP服务器获取本地时间 查看详情
esp8266wifi模块开发入门1开发环境搭建(代码片段)
...发入门1开发环境搭建一、开发板环境二、安装开发环境1.安信可一体化开发环境下载链接:2.双击安装:AiThinkerIDE_V1.5.2.exe三、配置带OS的开发环境1.克隆仓库2.在IDE导入工程3.添加示例工程4.设置环境变量5.设置编译目标3.... 查看详情
linkgui™aire32开发板介绍
概述LinkGUI™AirE32让开发者可以在ESP32芯片上实现完美的图形交互体验。本开发平台是基于ESP32WROVER芯片组,将GUI系统无缝嵌入到乐鑫开源的ESP-IDF开发环境,实现让开发者既可开发出优秀的UI接互,又可使用ESP-IDF丰富的... 查看详情
littlevglesp32学习笔记①移植最新的lvgl版本到安信可esp32c3模组,显示一个二维码。(附带源码)(代码片段)
本系列博客学习由非官方人员半颗心脏潜心所力所写,仅仅做个人技术交流分享,不做任何商业用途。如有不对之处,请留言,本人及时更改。系列一:ESP32系列模组基础学习系列笔记1、爬坑学习新旅程,... 查看详情