2796|3

154

帖子

2

TA的资源

一粒金砂(中级)

楼主
 

【安信可ESP32语音开发板专题②】ESP32-Audio-Kit 开发板适配百度dueros例程实现在... [复制链接]

 

【安信可ESP32语音开发板专题②】ESP32-Audio-Kit 开发板适配百度dueros例程实现在线语音功能,与开发板对话聊天。

文章目录

    前言
    一、准备工作
        1.硬件准备
        2.软件准备
    二、验证ESP-ADF是否正常
        1. 代码简单修改
        2.播放MP3测试
    三、dueros 例程适配
        1.替换连接文件
        2.内存卡准备
        3. 代码修改
            (1)屏蔽触摸按键
            (2)修改唤醒提示音
        4. 修改 lyrat_v4_3中的board.c 代码
        5.连接成功截图
    四、常见问题
        1.函数未声明错误
        2. 串口监控有唤醒提示但没有提示音
        3.I2C Bus WriteReg Error
    五、相关连接

前言

       针对ESP32-A1S的音频开发板ESP32-Audio-Kit,之前就写了一篇如何实现离线语音控制LED灯的博文,但是之前的博文中所用到的模组中的音频编解码芯片是AC101,需要我们自己写驱动程序。为了适配乐鑫的SDK,模组中的编解码芯片也换成了ES8388,乐鑫已经写好了驱动程序,我们二次开发不需要重新写编解码程序,这让我们的移植变得更加简单。
       DuerOS是百度度秘事业部在2017年1月CES展推出的对话式人工智能操作系统,它赋予硬件设备与人沟通的能力,真正的将语音对话这种新的交互方式融入到了人们的生活之中。
       本文将通过对乐鑫ESP-ADF-SDK中的dueros 例程进行移植,在安信可ESP32-Audio-Kit开发板上实现在线语音对话功能。
       本文较长,耐心阅读您会有所收获。


一、准备工作
1.硬件准备

       硬件毫无疑问就是安信可ESP32-Audio-Kit_V2.2开发板,带内存卡,最好接有扬声器,没有扬声器可以接3.5mm音频口的耳机作为代替。


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等接口只是适配了芯片原厂乐鑫的开发板。因为我们使用的是安信可的ESP32-Audio-Kit,就需要改一下代码,令I2C和I2S接口匹配我们的板子,ESP32-Audio-Kit的接口如下:


修改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-Audio-Kit开发板中并没有触摸按键,所以要屏蔽掉,而且触摸按键的循环查询占用了大量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原理图
源码连接:https://github.com/SeaHi-Mo/esp-adf

最新回复

nmg
似乎捉到一枚玩过的网友,来论坛分享一下安信可esp32音频开发经验哇?   详情 回复 发表于 2021-11-11 15:11
点赞 关注(1)
 
 

回复
举报

6845

帖子

0

TA的资源

五彩晶圆(高级)

沙发
 

玩这个板子还需要注册一个DuerOS开放平台的账户

 
 
 

回复

18

帖子

1

TA的资源

一粒金砂(中级)

板凳
 
安信可ESP32语音开发板挺好用的,资源丰富,资料质量也高。

点评

nmg
似乎捉到一枚玩过的网友,来论坛分享一下安信可esp32音频开发经验哇?  详情 回复 发表于 2021-11-11 15:11
 
 
 

回复

5263

帖子

236

TA的资源

管理员

4
 
yulei2633 发表于 2021-11-11 09:15 安信可ESP32语音开发板挺好用的,资源丰富,资料质量也高。

似乎捉到一枚玩过的网友,来论坛分享一下安信可esp32音频开发经验哇?

加EE小助手好友,
入技术交流群
EE服务号
精彩活动e手掌握
EE订阅号
热门资讯e网打尽
聚焦汽车电子软硬件开发
认真关注技术本身
 
 
 

回复
您需要登录后才可以回帖 登录 | 注册

随便看看
查找数据手册?

EEWorld Datasheet 技术支持

相关文章 更多>>
关闭
站长推荐上一条 1/7 下一条

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

About Us 关于我们 客户服务 联系方式 器件索引 网站地图 最新更新 手机版

站点相关: 国产芯 安防电子 汽车电子 手机便携 工业控制 家用电子 医疗电子 测试测量 网络通信 物联网

北京市海淀区中关村大街18号B座15层1530室 电话:(010)82350740 邮编:100190

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2025 EEWORLD.com.cn, Inc. All rights reserved
快速回复 返回顶部 返回列表