const int32_t CHANNEL_COUNT = 2;
const int32_t SAMPLERATE_16000 = 16000;
const uint32_t AI_VOICE_BUFFER_SIZE = 0x800; // 2KB buffer for AI voice
-const uint32_t AI_VOICE_QUEUE_SIZE = 128; // 队列大小
+const uint32_t AI_VOICE_QUEUE_SIZE = 64; // 队列大小
// OGG封装相关常量
const uint32_t MILLSECOND_TO_SECOND = 1000;
usleep(50*size);
if (ret != 0) {
retry_count++;
- MEDIA_ERR_LOG("Failed to write audio data to output stream, ret=%d, retry %d/%d", ret, retry_count, MAX_RETRY_COUNT);
- usleep(1000*500);
+ // MEDIA_ERR_LOG("Failed to write audio data to output stream, ret=%d, retry %d/%d", ret, retry_count, MAX_RETRY_COUNT);
+ usleep(1000*600);
goto AI_WRITE;
}
MEDIA_ERR_LOG("Invalid audio data parameters");
return -1;
}
- uint32_t queueSize, queueCapacity;
+ uint32_t queueSize=0, queueCapacity=0;
AI_GetQueueStatus(&queueSize, &queueCapacity);
// 检查是否有文件缓存数据需要优先处理
bool hasFileCacheData = AI_HasFileCacheData();
{
errcode_t ret;
+ tts_is_ready == TTS_READY_NOT_SENT;
// 设置全局AI类型
g_chat_ai_type = chat_ai_type;
uapi_start_asr_StartTranscription(g_asr_server->client);
g_tts_server->interrupt_flag=1;
g_chat_server->interrupt_flag=1;
+ tts_is_ready = TTS_READY_NOT_SENT;
+ asr_is_ready=0;
AI_ForceInterrupt();
}
printf("WebSocket client creation failed, retrying... (%d/%d)\n",
handle->config.max_retry_count - client_count + 1, handle->config.max_retry_count);
client_count--;
+ if(handle->is_running==false||handle->need_stop)
+ {
+ break;
+ }
+
msleep(2000);
}