首页 最新 热门 推荐

  • 首页
  • 最新
  • 热门
  • 推荐

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

  • 23-11-14 06:42
  • 4640
  • 7452
blog.csdn.net

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

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
  • 1
  • 2
  • 3
  • 4

      其次,照葫芦画瓢,我们在《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
  • 1
  • 2

四、在线语音合成

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

在这里插入图片描述


      创建一个应用:
在这里插入图片描述
      创建应用是为了得到一些接入参数,就是 api key 和 secret key。

在这里插入图片描述


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


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

在这里插入图片描述

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


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

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

在这里插入图片描述

注:本文转载自blog.csdn.net的半颗心脏的文章"https://blog.csdn.net/xh870189248/article/details/104160104"。版权归原作者所有,此博客不拥有其著作权,亦不承担相应法律责任。如有侵权,请联系我们删除。
复制链接
复制链接
相关推荐
发表评论
登录后才能发表评论和回复 注册

/ 登录

评论记录:

未查询到任何数据!
回复评论:

分类栏目

后端 (14832) 前端 (14280) 移动开发 (3760) 编程语言 (3851) Java (3904) Python (3298) 人工智能 (10119) AIGC (2810) 大数据 (3499) 数据库 (3945) 数据结构与算法 (3757) 音视频 (2669) 云原生 (3145) 云平台 (2965) 前沿技术 (2993) 开源 (2160) 小程序 (2860) 运维 (2533) 服务器 (2698) 操作系统 (2325) 硬件开发 (2492) 嵌入式 (2955) 微软技术 (2769) 软件工程 (2056) 测试 (2865) 网络空间安全 (2948) 网络与通信 (2797) 用户体验设计 (2592) 学习和成长 (2593) 搜索 (2744) 开发工具 (7108) 游戏 (2829) HarmonyOS (2935) 区块链 (2782) 数学 (3112) 3C硬件 (2759) 资讯 (2909) Android (4709) iOS (1850) 代码人生 (3043) 阅读 (2841)

热门文章

101
推荐
关于我们 隐私政策 免责声明 联系我们
Copyright © 2020-2024 蚁人论坛 (iYenn.com) All Rights Reserved.
Scroll to Top