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);

}

相关推荐
HKElec5 天前
PaperFocus:基于 ESP32-S3 与墨水屏的开源专注助手
物联网·esp32
虎王物联6 天前
物联网协议网关设计:多协议融合与数据转换的工程实战
物联网·嵌入式·esp32
洞察物理世界9 天前
【测试方案_I2S】快速掌握I2S信号总线测试方案
i2s·测试方案
汤姆yu11 天前
基于ESP32的玫瑰大棚智能系统
物联网·esp32·arduino·大棚温湿度
printf_0113 天前
ESP32------开发环境配置(VS Code + ESP-IDF )
esp32
HC张鱼哥17 天前
I2S总线简介
iis·i2s·低速接口总线
sanzk19 天前
arduino+esp32
esp32
jianqiang.xue20 天前
系统服务层设计:沉淀通用能力,让业务层只专注业务
stm32·单片机·嵌入式硬件·mcu·物联网·esp32
零涂毕业设计1 个月前
毕业设计模块开发-OLED显示屏(IIC协议0.96寸)STM32 ESP32 FPGA Linux驱动免费分享
linux·stm32·单片机·嵌入式·esp32·fpga·oled
乐鑫科技 Espressif1 个月前
用 AI 开发 Zephyr-IoT 应用
人工智能·物联网·esp32·乐鑫科技·zephyr