当前位置: 首页 > news >正文

micropython 可视化音频 频谱解析(应该是全网首家)(预告,还没研究完成)

本人是音乐爱好者,从小就特别喜欢那个随着音乐跳动的方框效果,就是这个:
在这里插入图片描述
arduino上一大把
对,我忍你很久了,我就想用mpy做,全网没有,行我自己研究。
果然兴趣是最好的老师,我之前有篇博客专门讲音频,有兴趣的可以回顾一下。

提到可视化频谱,必然绕不开fft,大学学过这玩意,当时一心玩,老师讲的一个字都么听进去,网上教程简略扫了一下, 大该就是把时域转频域的工具,我大mpy居然没有fft函数,奶奶的,先放着。
音频信息如何收集?第一种傻瓜式的ADC,模拟转数字,原始粗暴,第二种,I2S库,我之前博客有讲过,数据是PCM编码。
然后又去学PCM编码,一学豁然开朗,舒服,以代码为例:

audio_in = I2S(0,
               sck=bck_pin, ws=ws_pin, sd=sdin_pin,
               mode=I2S.RX,
               bits=16,
               format=I2S.MONO,
               rate=8000,
               ibuf=64000)

这里初始化了一个I2S对象,应用题来了,已知:bits=16 rate=8000 buf=64000 单声道,请问可以录几秒?之前的博客实践告诉我,4秒,为啥是4秒呢?能懂这个PCM编码已经懂了一大半了,基本原理还是得自己啃,我不直接喂你,我尽量人话解释一下,bits=16:16位采样,也就是有65536中大小的数据,存一个数据需要2bytes,rate=8000hz,一秒存8000个数据,单声道,不用双声道,简化了,然后就算吧,2bytes80004=64000bytes,芜湖,刚好对上,这不就很明了了么,就是逐个bytes存的呀,至于具体咋编的码,我还要看下。

micropython的I2S有几种模式的,阻塞,非阻塞,即时,翻文档:

在这里插入图片描述
这一看阻塞就没戏,试试剩下的两个喽。

研究中,研究好了再更新,立贴证明我的决心。

相关文章:

  • 网课答案接口平台 系统独立后台
  • stp基本介绍
  • 公众号如何接入查题功能
  • IDC_ISP网络之IDC机房内网络架构及配置
  • ROS1云课→17化繁为简stdr和f1tenth
  • R-CNN(Regions with CNN features)
  • LeetCode 387---First Unique Character in a String
  • 《OpenDRIVE1.6规格文档》1
  • 城市区号查询易语言代码
  • Codeforces Round #818 (Div. 2)(A-E)
  • 【刷题笔记7】LeetCode 54. 螺旋矩阵(数组模拟)
  • 设计模式:代理模式
  • gitlab搭建2(linux搭建,外部windows访问,centos7)
  • 大衣哥新儿媳赚大了,刚刚拍摄完婚纱照,就成为了家喻户晓的网红
  • 隐入尘烟影评
  • (十五)java多线程之并发集合ArrayBlockingQueue
  • Android开发 - 掌握ConstraintLayout(四)创建基本约束
  • canvas 绘制双线技巧
  • Debian下无root权限使用Python访问Oracle
  • Selenium实战教程系列(二)---元素定位
  • 百度贴吧爬虫node+vue baidu_tieba_crawler
  • 从@property说起(二)当我们写下@property (nonatomic, weak) id obj时,我们究竟写了什么...
  • 解析带emoji和链接的聊天系统消息
  • 如何学习JavaEE,项目又该如何做?
  • LIGO、Virgo第三轮探测告捷,同时探测到一对黑洞合并产生的引力波事件 ...
  • 容器镜像
  • 昨天1024程序员节,我故意写了个死循环~
  • ​​​​​​​sokit v1.3抓手机应用socket数据包: Socket是传输控制层协议,WebSocket是应用层协议。
  • ​Linux Ubuntu环境下使用docker构建spark运行环境(超级详细)
  • ​软考-高级-系统架构设计师教程(清华第2版)【第1章-绪论-思维导图】​
  • ​学习一下,什么是预包装食品?​
  • # .NET Framework中使用命名管道进行进程间通信
  • (9)目标检测_SSD的原理
  • (超简单)构建高可用网络应用:使用Nginx进行负载均衡与健康检查
  • (附源码)计算机毕业设计SSM教师教学质量评价系统
  • (四)c52学习之旅-流水LED灯
  • (转)人的集合论——移山之道
  • .[backups@airmail.cc].faust勒索病毒的最新威胁:如何恢复您的数据?
  • .htaccess配置常用技巧
  • .NET 中使用 Mutex 进行跨越进程边界的同步
  • .NET 中使用 TaskCompletionSource 作为线程同步互斥或异步操作的事件
  • @manytomany 保存后数据被删除_[Windows] 数据恢复软件RStudio v8.14.179675 便携特别版...
  • [<事务专题>]
  • [Android开源]EasySharedPreferences:优雅的进行SharedPreferences数据存储操作
  • [Angularjs]asp.net mvc+angularjs+web api单页应用
  • [C++][基础]1_变量、常量和基本类型
  • [CC2642r1] ble5 stacks 蓝牙协议栈 介绍和理解
  • [DNS网络] 网页无法打开、显示不全、加载卡顿缓慢 | 解决方案
  • [echarts] y轴不显示0
  • [Flex][问题笔记]TextArea滚动条问题
  • [HTML]Web前端开发技术12(HTML5、CSS3、JavaScript )——喵喵画网页
  • [Java基础]—JDBC
  • [LeetCode周赛复盘] 第 310 场周赛20220911
  • [MT8766][Android12] 取消WIFI热点超过10分钟没有连接自动关闭设定
  • [NOSQL] Redis介绍