• 本系列博客学习由非官方人员 半颗心脏 潜心所力所写,仅仅做个人技术交流分享,不做任何商业用途。如有不对之处,请留言,本人及时更改。

1、 爬坑学习新旅程,虚拟机搭建esp32开发环境,打印 “Hellow World”。
2、 巧用eclipes编辑器,官方教程在在Windows下搭建esp32开发环境,打印 “Hellow World”。
3、 认识基本esp32的GPIO接口,开始点亮您的第一盏 LED和中断回调实现按键功能 。
4、体会esp32的强大的定时器功能, 实现定时2s闪烁一盏LED灯。
5、接触实践esp32的pwm宽度脉冲功能, 实现呼吸效果闪烁一盏LED灯。
6、smartConfig和微信airKiss在esp32的实现,一键配网轻松快捷连接路由器。
7、利用GPIO中断做一个按键的短按和长按的回调事件,再也无须担心触发源。
8、esp32上实现本地 UDP 客户端和服务端角色,在局域网内实现通讯。
9、esp32上实现本地 TCP 客户端和服务端角色,可断线重连原路返回数据。
10、乐鑫esp32 SDK编程利用rmt驱动ws2812七彩灯,实现彩虹渐变效果。
11、入门 乐鑫esp-adf 音频框架开发,esp32造一个蓝牙耳机,实现切换歌曲,获取歌曲信息等功能。
12、开源一个微信公众号airkiss配网esp32以及局域网发现功能的工程,分享一个airkiss配网小工具。
13、esp32 内置 dns 服务器,无需外网访问域名返回指定网页。
14、esp32 sdk编程实现门户强制认证,连接esp32热点之后,自动强制弹出指定的登录界面。
15、认识本地离线语音唤醒识别框架 esp-skainet ,实现较低成本的硬件语音本地识别控制。
16、学习本地语音唤醒离线识别框架 esp-skainet ,如何修改唤醒词? 如何自定义命令词?如何做意图动作?
17、全网首发,乐鑫esp32 sdk直连京东微联·小京鱼 · IoT开放平台,实现叮咚音响语音智能控制。
18、入门京东微联·小京鱼的控制面板H5开发,读懂vue语法,做自己的控制页面。
19、重磅开源,如何在微信小程序上ble蓝牙配网esp32,blufi的那些事!
20、一篇好文,开发过程中编译esp32固件太大,无法正常启动?教你如何自定义分区表partitions.csv。
21、 esp32蓝牙配网blufi的高度封装,集成简单、使用简单、容易上手,提高开发效率!
22、讨论下程序员 “青春饭” 那些事,分享在esp32实现多种加密算法md5 |AES CBC-ECB| Sha1 | Sha256 等!
23、安信可 esp32-a1s 音频开发板移植最新 esp-adf 音频框架,小试牛刀如何实现在线文字转语音播放。

文章目录

  • 一、前言
  • 二、安信可 esp32-a1s 模块
  • 三、移植乐鑫最新 esp-adf 框架进去安信可音频开发板
    • 3.1 如何移植?
  • 四、在线语音合成
  • 另外,不要把我的博客作为学习标准,我的只是笔记,难有疏忽之处,如果有,请指出来,也欢迎留言哈!

一、前言

时光如梭,我已经在CSDN驻扎了4年了,不忘初心,我依然是每次学习新的东西,就立刻写博文总结出来,养成 “好记性不如烂笔头” 的习惯,往后回头看,那是值得回忆的里程碑。

与往常过年一样,依旧带着一包一电脑,还拎着几个开发板回家,今年疫情严重,不走亲戚,只好慢慢敲代码;

这2个月,在武汉发现的新型病毒感染肺炎事件中,我看到了一代中国人的团结凝聚的力量,也看到了背后的一幕。从几个人感染到目前全国1.7w的感染确诊,一场无硝烟的战争,有人发国难财,有的抬高口罩价格,有的卖假货,有的虚报荒情,人心叵测。这里愿各位朋友,务必注意个人卫生健康习惯,不仅是为了自己,也为了家里人,更是体现一个国家的优良传统。


二、安信可 esp32-a1s 模块

本篇文章 为什么要先从安信可 esp32-a1s 模块说起,并不是打广告,我们都知道:乐鑫esp32可以实现很多语音的功能,包括在线离线语音识别,在线合成等。乐鑫的开发板都是一个 esp32模组 + 一个音频芯片分别焊在板子里面,而安信可 esp32-a1s 模块恰恰结合了这点,把 esp32芯片最小系统和音频芯片做成了一个模组,也就是一个模组里面 有 esp32芯片和音频解码芯片。

与乐鑫官方模块有何优点?最大的好处就是内置音频芯片,做音频相关时候不用关心如何连接音频芯片,后面为大家介绍如何做一个最简单的 “阉割版esp32播放器”。

下面把安信可 esp32-a1s 模块统称为 模块!

下面整理了模块的常见问题:

  1. 模块内含一个 esp32芯片和音频模组?具体点?
  • 答: 采用具有双核处理器的ESP32作为主控,模块内部配置有4M的PSRAM和CodeC音频处理芯片,音频芯片为 AC101。

  1. 到手之后,这模块为何比平常大了那么大?
  • 答: 主要是因为里面多了个音频芯片 ac101!为了验证与上述是否一致?我把开发板里面的模块外壳拆开,给大家看看。专业拆货,请勿模仿!保护罩设计有很多讲究,主要的防尘功能,以及是否对信号有干扰,平常不要拆开它!


  1. 这模块内部连线怎么样的?可用的io有哪些?


三、移植乐鑫最新 esp-adf 框架进去安信可音频开发板

据了解,安信可音频开发板已经售卖上架有2年多了,但是一直不温不热,很大原因在于推广不够,或技术支持不到位,于是乎,我决定根据现有的代码,统一移植乐鑫最新 esp-adf 框架进去,实现以下功能:

  • 音乐播放器或录音机支持音频格式,例如MP3,AAC,FLAC,WAV,OGG,OPUS,AMR,TS,EQ,Downmixer,Sonic,ALC,G.711 …
  • 从以下来源播放音乐:HTTP,HLS(HTTP实时流),SPIFFS,SDCARD,A2DP来源,A2DP接收器,HFP …
  • 集成媒体服务,例如:DLNA,VoIP …
  • 网络广播
  • 语音识别以及与Alexa,DuerOS等在线服务的集成…

3.1 如何移植?

这里先贴出我已经移植好的框架地址:

  • GitHub:https://github.com/Ai-Thinker-Open/ESP32-A1S-AudioKit.git
  • 码云:https://gitee.com/xuhongv/AiThinker-esp32-A1s-AudioKit

首先,我们知道在玩其乐鑫框架时候,会有通过面板对board 板子的选项,我就从这里入手,于是乎认真查找,分别找到了components下的audio_board 和 audio_hal 的2个文件夹。

文件夹《audio_board》 顾名思义,就是对板子的定义,首先,我们新建一个开发板选项,同时新建文件夹放我们板子的io口定义等。

然后,我们编辑 component.mk文件,增加条件编译语句,看得出来,当选定为安信可板子时候,指定的文件夹编译:

ifdef CONFIG_ESP_AI_THINKER_V2_2_BOARD
COMPONENT_ADD_INCLUDEDIRS += ./ai_thinker_audio_kit_v2_2
COMPONENT_SRCDIRS += ./ai_thinker_audio_kit_v2_2
endif

其次,照葫芦画瓢,我们在《ai_thinker_audio_kit_v2_2》文件夹新建几个源文件,一一实现方法,过程是非常讲究的,这里我直接拿前辈的代码不断适配,期间花了整整一天,总结如下:

  1. esp32芯片对音频芯片i2s的驱动初始化等io初始化的管脚初始化。
  2. esp32芯片驱动 SD 卡的 io 口定义;
  3. esp32音频设置的回调函数定义,包括声音设置,调大调小等;
  4. 开发板的按键初始化工作实现。
  5. 还有一些零碎的可用的 led 的管脚定义。

最后,就是重点的如何驱动音频芯片AC101的具体细节源码实现,那么在文件夹《audio_hal》里面增加源码 ac101.c 和 ac101.h 文件。别忘了还要在component.mk文件增加条件编译:

COMPONENT_ADD_INCLUDEDIRS += ./driver/ac101
COMPONENT_SRCDIRS += ./driver/ac101

四、在线语音合成

首先,需要在 百度AI开放平台 创建一个语音合成的应用。选择语音识别或者语音合成。


创建一个应用:

      创建应用是为了得到一些接入参数,就是 api keysecret key


跑起官方例程 /examples/cloud_services/pipeline_baidu_speech_mp3,然后通过面板设置家庭路由器ssid和密码,还有上面的2个参数!


然后插上耳机或喇叭听吧!

有任何疑问联系本人下方邮箱或加qq群或文章留言,不要私信我,我已经屏蔽私信!多多支持!


另外,不要把我的博客作为学习标准,我的只是笔记,难有疏忽之处,如果有,请指出来,也欢迎留言哈!

  • 玩转esp8266带你飞、加群QQ群,不喜的朋友勿喷勿加:434878850
  • 个人邮箱:xuhongv@yeah.net 24小时在线,有回必回复!
  • esp8266源代码学习汇总(持续更新,欢迎star):https://github.com/xuhongv/StudyInEsp8266
  • esp32源代码学习汇总(持续更新,欢迎star):https://github.com/xuhongv/StudyInEsp32
  • 关注下面微信公众号二维码,干货多多,第一时间推送!

乐鑫Esp32学习之旅 23 安信可 esp32-a1s 音频开发板移植最新 esp-adf 音频框架,小试牛刀如何实现在线文字转语音播放。相关推荐

  1. 乐鑫Esp32学习之旅28 安信可 ESP32-Cam 摄像头开发板二次开发 C SDK编程,实现MQTT远程拍照传输到私有服务器。(附带源码)

    本系列博客学习由非官方人员 半颗心脏 潜心所力所写,仅仅做个人技术交流分享,不做任何商业用途.如有不对之处,请留言,本人及时更改. 1. 爬坑学习新旅程,虚拟机搭建esp32开发环境,打印 " ...

  2. 乐鑫Esp32学习之旅29 安信可 ESP32-Cam 摄像头开发板二次开发 C SDK编程,实现本地视频流监控。(附带源码)

    本系列博客学习由非官方人员 半颗心脏 潜心所力所写,仅仅做个人技术交流分享,不做任何商业用途.如有不对之处,请留言,本人及时更改. 1. 爬坑学习新旅程,虚拟机搭建esp32开发环境,打印 " ...

  3. 乐鑫Esp32-S2学习之旅① 入门 ESP32-S2 环境搭建 ,分享如何直连苹果智能家居 HomeKit 平台,轻松语音 Siri 控制!

    本系列博客学习由非乐鑫官方人员 半颗心脏 潜心所力所写,不做开发板.仅仅做个人技术交流分享,不做任何商业用途.如有不对之处,请留言,本人及时更改. 基于乐鑫ESP32 芯片模组 C SDK二次开发的技 ...

  4. 乐鑫Esp32-S2学习之旅② ESP32-S2 控制 ws2812b 实现五彩斑斓的效果,代码开源!

    本系列博客学习由非乐鑫官方人员 半颗心脏 潜心所力所写,不做开发板.仅仅做个人技术交流分享,不做任何商业用途.如有不对之处,请留言,本人及时更改. 基于乐鑫ESP32 芯片模组 C SDK二次开发的技 ...

  5. 安信可 ESP8266机智云开发板:编译与烧录

    安信可 ESP8266机智云开发板:编译与烧录 编译:1.SDK 开发环境搭建见 安信可ESP系列一体化开发环境搭建                        下载地址:http://pan.ba ...

  6. 【BW16 应用篇】安信可BW16模组/开发板AT指令实现MQTT通讯

    文章目录 前言 1 固件烧录 2 EMQ服务器搭建 2.1 软件获取 2.2 启动EMQ服务 3 设备端联网配置 3.1 AT指令配置 3.2 信息交互 联系我们 前言 本文主要介绍安信可BW16模组 ...

  7. 乐鑫Esp32学习之旅 安信可 ESP32-Cam 摄像头开发板二次开发 C SDK编程,拍照图片通过有线串口传到上位机PC端。(附带设备端+PC端源码)

    本系列博客学习由非官方人员 半颗心脏 潜心所力所写,仅仅做个人技术交流分享,不做任何商业用途.如有不对之处,请留言,本人及时更改. 系列一:ESP32系列模组基础学习系列笔记 1. 爬坑学习新旅程,虚 ...

  8. 乐鑫Esp32学习之旅② 巧用eclipes编辑器,官方教程在Windows下搭建esp32开发环境,打印 “Hello World”。

    本系列博客学习由非官方人员 半颗心脏 潜心所力所写,仅仅做个人技术交流分享,不做任何商业用途.如有不对之处,请留言,本人及时更改. 1. 爬坑学习新旅程,虚拟机搭建esp32开发环境,打印 " ...

  9. 乐鑫Esp32学习之旅11 入门 乐鑫esp-adf 音频框架开发,造一个蓝牙耳机,实现切换歌曲,获取歌曲信息等功能。(附带Demo)

    本系列博客学习由非官方人员 半颗心脏 潜心所力所写,仅仅做个人技术交流分享,不做任何商业用途.如有不对之处,请留言,本人及时更改. 1. 爬坑学习新旅程,虚拟机搭建esp32开发环境,打印 " ...

最新文章

  1. 虚拟dom_通过编写简易虚拟DOM,来学习虚拟DOM 的原理
  2. C++中的c_str()函数用法
  3. php验证码切换不刷新页面,Yii2解决验证码点击、刷新页面不刷新问题
  4. map与weakmap,ES6 Map和WeakMap有什么区别?
  5. 特斯拉不顾疫情开工,马斯克放话:若要逮捕,冲我一个人来!
  6. java string范围_java,String
  7. springboot获取客户端发来的数据
  8. Nginx 重写规则指南
  9. 新年新起点-荣获2011年度Silverlight方向Microsoft® MVP奖
  10. 关于树叶的活动设计_悦趣课堂、教学相长 ——济南市天桥区金色悦城幼儿园公开课活动纪实...
  11. CANape a2l文件的编辑教程
  12. 微信商户平台(商户号)申请流程(仅供参考)
  13. js笔记,自封装篇(二)之对象克隆
  14. 软件测试工程师笔试题带答案(一)
  15. 浅谈ERP数据的重要性
  16. 最新电脑cpu性能排行服务器,服务器cpu性能排行,详细教您服务器cpu性能排行
  17. 3.17 inappropriateintimacy (狎昵关系)
  18. 浙江大学计算机保研条件_2020年计算机系保研推免记录(浙江大学软件学院)...
  19. 【Unity 框架】QFramework v1.0 使用指南 工具篇:06. UIKit 界面管理快速开发解决方案 | Unity 游戏框架 | Unity 游戏开发 | Unity 独立游戏
  20. 快速回复信息神器哪些支持一键复制粘贴回复

热门文章

  1. 1055: 兔子繁殖问题
  2. 银行的总行,营业部,支行,分理处有什么样的关系
  3. Lambda与Stream流
  4. 使用特定分隔符分割字符串
  5. STM32进入Standby模式并唤醒
  6. 有一个棋盘,有64个方格,在第一个方格里面放1粒芝麻重量是0.00001kg,第二个里面放2粒,第三个里面放4,第四个8 ,棋盘上放的所有芝麻的重量(后一个是前一个两倍)。循环练习题。
  7. 【读书笔记】用户画像方法论与工程化解决方案
  8. redis切换查询数据库 db0到db3
  9. huffman树【严蔚敏】
  10. 春招进行时:简历信息安全危机