Micropython学习交流群 学习QQ群:786510434 提供多种固件下载和学习交流。

Micropython-扇贝物联 QQ群:31324057 扇贝物联是一个让你与智能设备沟通更方便的物联网云平台

Micropython学习交流群 学习QQ群:468985481 学习交流ESP8266、ESP32、ESP8285、wifi模块开发交流、物联网。

Micropython老哥俩的IT农场分享QQ群:929132891 为喜欢科创制作的小白们分享一些自制的计算机软硬件免费公益课程,由两位多年从事IT研发的中年大叔发起。

Micropython ESP频道

micropython i2s 录音 使用详解


micropython i2s 录音 使用详解

心血来潮想搞一下语音识别,然后发现i2s这个专门针对音频的通信格式。
1.17的话,固件已经带了,导入即可。
官方有文档,抄就完了,这里直接贴上。

from machine import Pin
from machine import I2S

bck_pin = Pin(23)
ws_pin = Pin(5)
sdin_pin = Pin(22)
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)

ibuf=bytearray(64000)
wav = open('speech.pcm','wb')

print('Starting')

num_read = audio_in.readinto(ibuf)
wav.write(ibuf)
wav.close()
audio_in.deinit()
print('Done')

网上相关的资料真是很少,arduino idf的一大堆一大堆的,最主要问题是上面ibuf存的是啥玩意,概念没有理解,后来一顿查,懂了。
ibuf存的是原始音频数据,也就是PCM音频文件,这个文件一般的播放软件是打不开的,得用专门的软件播放,而且必须如实填写音频信息,否则必然播放不正常,也就是bits选16,rate选8000,这样算下来一个4秒的渣渣音质的录音得64K,mpy内存不足真是不适合玩图片音频哈,当然有psram的话随便霍霍。
还查到一个事儿,PCM转WAV非常方便,大致就是加个头文件规范一下格式即可,网上有现成的代码。

最后想说,搞语音识别用MPY还是有点费劲的,不如直接上离线语音模块,10块钱,啥都集成好了,省事儿,推荐一个,SU-03T,有兴趣的去搜一下吧。


来源:https://blog.csdn.net/jd3096/article/details/122721597


推荐分享
图文皆来源于网络,内容仅做公益性分享,版权归原作者所有,如有侵权请告知删除!
 

Copyright © 2014 ESP56.com All Rights Reserved

执行时间: 0.011405944824219 seconds