ESP32+INMP441+DHT11+OLED+网页+Arduino——“智能”语音天气站(4):百度语音识别API(2)(片外RAM的使用)

本文讲述了在ESP32上实现智能语音天气站时遇到的SPIFFS读写速度问题,转而使用片外RAM存储录音数据,并通过百度语音识别API进行识别的过程。在调试中,作者详细描述了如何分配和调试片外RAM,以及解决写入数据错误的方法。最后指出,虽然识别率问题尚存,但后续会继续改进并整合前端模块。
摘要由CSDN通过智能技术生成

上回书说到,我们将录音保存成wav文件,上传到SPIFFS,再用HTTPClient,用RAW方式上传文件数据到百度语音是被API进行识别。然而,问题发生了,这个识别率很低。上一章中我列举出了我猜想的几个原因,在测试过其他原因无果之后,就只剩下一个——SPIFFS的读写速度问题。这次我们弃用SPIFFS,将录音数据存入buffer中,再传到服务端。此过程中,由于使用的buffer过大,不能将buffer放在内存当中,所幸查了官方资料,有片外RAM的存在,所以顺带也学习了一下片外RAM的调用和调试。

片外RAM的调用

官方文件里的调用函数贴在下方:
在这里插入图片描述
在这里插入图片描述在这里插入图片描述
根据官方的指示,可以得到如下调用代码:

byte* i2s_read_buff = (byte*) heap_caps_malloc(i2s_read_len, MALLOC_CAP_8BIT);
    // 是否分配成功
    if(i2s_read_buff == NULL)
      Serial.println("read buffer allocate error!");
    else
      Serial.println("read buffer allocate success.");
byte* sound_buff = (byte*) heap_caps_malloc
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值