mic声音怎么才不容易卡顿 : 环形队列缓存要足够大

#define AUDIO_CODEC_DMA_DESC_NUM 8//6

#define AUDIO_CODEC_DMA_FRAME_NUM 340//240

===================================================================================

环形队列缓存要足够大:

buf_handle从(read_pre_back_ + 10)加大到(read_pre_back_ + 60),更多缓存,mic不容易卡顿:

buf_handle = xRingbufferCreate(RECV2_BUF_SIZE * (read_pre_back_ + 60), RINGBUF_TYPE_NOSPLIT);

===================================================================================

vTaskDelay(1)延时去掉,更实时:

void process_baidu_Asr(void *args){

while (1) {

//vTaskDelay(1); //

if(buf_handle!=nullptr){

size_t item_SIZE;

char * retbytes=(char * )xRingbufferReceive(buf_handle,&item_SIZE , pdMS_TO_TICKS(2000)); //xRingbufferReceiveUpTo

if (retbytes != NULL ) { //加了 && item_SIZE>10 会导致死锁??,导致一直不处理队列,发送那边直接死住,超时

if (client!=nullptr&& esp_websocket_client_is_connected(client) ){

xSemaphoreTake(ws_mutex, pdMS_TO_TICKS(max_send_wait_time_ms));

//esp_err_t err = esp_websocket_client_send_bin_partial(client, (const char *)retbytes,(int)(item_SIZE), portMAX_DELAY);

//为了防止返回PONG帧异常,esp_websocket_client_send_bin_partial改为esp_websocket_client_send_bin???:

esp_err_t err = esp_websocket_client_send_bin(client, (const char *)retbytes,(int)(item_SIZE), portMAX_DELAY);

if (err <0 ) {

ESP_LOGE(TAG, "Send bin failed1: %s , item_SIZE=%d ", esp_err_to_name(err),item_SIZE);

}

// err =esp_websocket_client_send_fin(client, portMAX_DELAY);

// if (err != ESP_OK)

// {

// ESP_LOGE(TAG, "Send bin failed2: %s", esp_err_to_name(err));

// }

xSemaphoreGive(ws_mutex);

}

vRingbufferReturnItem(buf_handle, (void *)retbytes);

}

}else{

vTaskDelay(3);

}

}

vTaskDelete(NULL);

}

相关推荐
智码看视界5 天前
Edge AI 与 IoT 全栈:云端时序数据库 + Grafana 看板,把数据变成洞察
物联网·mqtt·esp32·时序数据库·influxdb·tdengine
天空'之城7 天前
009基于物联网的智能厨房安全监测系统
毕业设计·esp32·电磁阀·厨房安全·燃气检测
天空'之城12 天前
004基于语音识别的智能家居本地控制系统
毕业设计·esp32·智能家居·语音识别·离线控制
weixin_4043806317 天前
MQTT 上云验收:ESP32-S3 从局域网控灯到远程网页控制
物联网·mqtt·esp32
探鸽小钛18 天前
4G 终端 ES8311 - 挂断一次,下次说话就没声了之解决办法
物联网·音视频·嵌入式·esp32·webrtc
光子物联单片机19 天前
ESP32传感器模块编程实践(一)DIY智能WIFI视频控制小车
嵌入式硬件·esp32·智能硬件·硬件
编码追梦人19 天前
基于 ESP32-S3 的便携式多参数环境监护仪设计:从硬件选型到 FreeRTOS 多任务落地
数据库·单片机·嵌入式硬件·mongodb·esp32·freertos·低功耗设计
_YouziTech_20 天前
【STM32+MAX98357】MP3转PCM存入Flash并控制音频输出
stm32·单片机·音视频·内存·pcm·i2s·wav
Keith Guo20 天前
ESP32-S31 分区表的访问流程图
流程图·esp32
Keith Guo23 天前
Event Task Matrix(ETM)工作机制
驱动开发·esp32·etm