【求助】T5 tuya_os_sdk3.13.3播放提示音或停止时卡死
Re: 【求助】T5 tuya_os_sdk3.13.3播放提示音或停止时卡死
有完整的日志么?上电开始的。目前代码如何使用player的完整逻辑看不到,无法判断是否触发了未知场景。
wukong player是单线程的,因此如果有多线程访问,可能触发未测试到的问题。
Re: 【求助】T5 tuya_os_sdk3.13.3播放提示音或停止时卡死
测试比较久才能复现问题,基本都是需要挂机一晚上,第二天唤醒就会出bug,我们是10pcs样品一起测试,出问题可能就一两台,日志没有办法记录那么多。
产品确实是多线程在操作player,但是都有加锁,除非是在一些wokong的代码里面又异步操作了player。
而且现在明显队列满了,处理消息的线程卡死了,这个才是根本原因,处理消息的线程跟我们变更player的状态没有关系,为什么会卡死,我深挖底层代码,在tkl_audio.c里面发现了一段可能的死循环:
Code: Select all
OPERATE_RET tkl_ao_put_frame(INT32_T card, TKL_AO_CHN_E chn, VOID *handle,
TKL_AUDIO_FRAME_INFO_T *pframe)
{
OPERATE_RET ret;
if (pframe == NULL) {
return OPRT_INVALID_PARM;
}
if (!s_audio_init.audio_init || !s_audio_init.audio_start) {
return OPRT_RESOURCE_NOT_READY;
}
int offset = 0; // 偏移量
int remaining_size = pframe->used_size; // 剩余数据大小
int chunk_size = 0;
if (remaining_size < 0) {
return -1;
}
int spk_ringbuf_size = FRAME_SIZE_PER_20MS(s_audio_mic.samp_rate) * DRIVER_SPEAK_FIFO_FRAME_NUM;
//
// bk_printf("rate: %d, spk_ringbuf_size: %d, output size:%d\r\n",
// s_audio_mic.samp_rate, spk_ringbuf_size, remaining_size);
// 分段调用 bk_aud_intf_write_spk_data
while (remaining_size > 0) {
// 计算当前要写入的数据大小
chunk_size = (remaining_size > spk_ringbuf_size) ? spk_ringbuf_size : remaining_size;
write_spk_retry:
ret = bk_voice_write_frame_data(g_voice_write_handle, (char *)(pframe->pbuf + offset), chunk_size);
// ret = bk_voice_write_spk_data(g_voice_handle, (char *)(pframe->pbuf + offset), chunk_size);
if (ret == 0) {
tkl_system_sleep(20);
goto write_spk_retry;
}
if (ret < 0) {
os_printf("audio intf spk semaphore wait fail, ret:%d \r\n", ret);
return ret;
}
// 更新偏移量和剩余大小
offset += chunk_size;
remaining_size -= chunk_size;
}
return OPRT_OK;
}
这里有个goto write_spk_retry;是否有风险?
以下是产品当前使用player的完整代码。
Code: Select all
#include "hly_ai.h"
#include "wukong_ai_agent.h"
#include "tal_memory.h"
#include "tal_log.h"
#include "wukong_kws.h"
#include "tal_sw_timer.h"
#include "wukong_audio_player.h"
#include "wukong_audio_input.h"
#include "wukong_audio_aec_vad.h"
#include "skill_emotion.h"
#include <string.h>
#include "ty_cJSON.h"
#include "hly_fs.h"
#include "tal_mutex.h"
#include "base_event.h"
#include "base_event_info.h"
#include "tal_semaphore.h"
#include "tal_queue.h"
#define AI_AGENT_SCODE_DEFAULT ""
#define AI_AUDIO_SLICE_TIME 50
#define AI_TTS_TIME 10
typedef struct
{
const char* name;
HLY_AI_EMOJI_E emoji;
}_HLY_AI_EMOJI_T;
STATIC hly_ai_config_t* _hly_ai_config;//ai配置
STATIC hly_ai_stat_e _ai_stat=AI_STAT_INIT;//ai状态
STATIC BOOL_T ai_start=FALSE;
STATIC TIMER_ID _re_idel_timer;
STATIC BOOL_T wake_up_flag=false;
STATIC BOOL_T paly_alart=false;
STATIC BOOL_T free_chat=true;
STATIC MUTEX_HANDLE _ai_mutex;
STATIC MUTEX_HANDLE _timer_mutex;
STATIC MUTEX_HANDLE _alert_mutex;
STATIC THREAD_HANDLE _hly_ai_sem_task;
STATIC SEM_HANDLE _hly_ai_sem;
STATIC THREAD_HANDLE _hly_ai_stat_task;
STATIC QUEUE_HANDLE _hly_ai_stat_queue;
STATIC THREAD_HANDLE _hly_ai_debug_task;
STATIC uint16_t debug_step_a=0;
STATIC uint16_t debug_step_b=0;
STATIC uint16_t debug_step_c=0;
STATIC uint16_t debug_step_d=0;
STATIC uint16_t debug_step_e=0;
STATIC _HLY_AI_EMOJI_T _ai_emoji_list[]={
{"NEUTRAL",HLY_AI_EMOJI_NEUTRAL},
{"HAPPY",HLY_AI_EMOJI_HAPPY},
{"LAUGHING",HLY_AI_EMOJI_LAUGHING},
{"FUNNY",HLY_AI_EMOJI_FUNNY},
{"SAD",HLY_AI_EMOJI_SAD},
{"ANGRY",HLY_AI_EMOJI_ANGRY},
{"CRYING",HLY_AI_EMOJI_CRYING},
{"LOVING",HLY_AI_EMOJI_LOVING},
{"EMBARRASSED",HLY_AI_EMOJI_EMBARRASSED},
{"SURPRISE",HLY_AI_EMOJI_SURPRISE},
{"SHOCKED",HLY_AI_EMOJI_SHOCKED},
{"THINKING",HLY_AI_EMOJI_THINKING},
{"WINKING",HLY_AI_EMOJI_WINKING},
{"COOL",HLY_AI_EMOJI_COOL},
{"RELAXED",HLY_AI_EMOJI_RELAXED},
{"DELICIOUS",HLY_AI_EMOJI_DELICIOUS},
{"KISSY",HLY_AI_EMOJI_KISSY},
{"CONFIDENT",HLY_AI_EMOJI_CONFIDENT},
{"SLEEPY",HLY_AI_EMOJI_SLEEPY},
{"SILLY",HLY_AI_EMOJI_SILLY},
{"CONFUSED",HLY_AI_EMOJI_CONFUSED},
};
/** 停止恢复待机定时器*/
STATIC VOID _hly_ai_re_idel_stop()
{
if(tal_sw_timer_is_running(_re_idel_timer))
{
tal_sw_timer_stop(_re_idel_timer);
}
}
/** 启动恢复待机定时器*/
STATIC VOID _hly_ai_re_idel_start(uint16_t time_s)
{
tal_mutex_lock(_timer_mutex);
TAL_PR_DEBUG("======ai re idel time:%d======",time_s);
_hly_ai_re_idel_stop();
if(time_s==0)
{
tal_mutex_unlock(_timer_mutex);
return;
}
tal_sw_timer_start(_re_idel_timer,time_s*1000,TAL_TIMER_ONCE);
tal_mutex_unlock(_timer_mutex);
}
STATIC VOID _hly_ai_stat_task_cb(PVOID_T args)
{
hly_ai_stat_e stat;
while(1)
{
debug_step_a=1;
tal_queue_fetch(_hly_ai_stat_queue, &stat, SEM_WAIT_FOREVER);
debug_step_a=2;
tal_mutex_lock(_ai_mutex);
debug_step_a=3;
if (_ai_stat != stat)
{
TAL_PR_DEBUG("=============ai stat:%d=============", stat);
_ai_stat = stat;
debug_step_a=4;
ty_publish_event(AI_STAT_EVENT, &_ai_stat);
}
debug_step_a=5;
if (_ai_stat == AI_STAT_IDEL)
{
debug_step_a=6;
_hly_ai_re_idel_start(0);
wukong_vad_set_threshold(WUKONG_AUDIO_VAD_LOW);
wake_up_flag = false;
wukong_audio_input_wakeup_set(FALSE);
debug_step_a=7;
}
else
{
debug_step_a=8;
wukong_audio_input_wakeup_set(true);
debug_step_a=9;
}
debug_step_a=10;
if (_ai_stat == AI_STAT_LISTEN)
{
debug_step_a=11;
_hly_ai_re_idel_start(_hly_ai_config->wake_time);
wukong_vad_set_threshold(WUKONG_AUDIO_VAD_LOW);
debug_step_a=12;
}
else if(_ai_stat==AI_STAT_THINK)
{
debug_step_a=13;
_hly_ai_re_idel_start(_hly_ai_config->wake_time);
debug_step_a=14;
}
else if (_ai_stat == AI_STAT_SPEAK)
{
debug_step_a=15;
_hly_ai_re_idel_start(AI_TTS_TIME);
wukong_vad_set_threshold(WUKONG_AUDIO_VAD_HIGH);
debug_step_a=16;
}
debug_step_a=17;
tal_mutex_unlock(_ai_mutex);
debug_step_a=18;
}
}
STATIC VOID _hly_ai_set_stat(hly_ai_stat_e stat)
{
hly_ai_stat_e msg;
msg = stat;
tal_queue_post(_hly_ai_stat_queue, &msg, 10);
}
/**ai表情 */
// STATIC VOID _hly_ai_skill_emoji(void* data)
// {
// WUKONG_AI_EMO_T *emo = (WUKONG_AI_EMO_T *)data;
// TAL_PR_NOTICE("======ai emoji:%s,%s", emo->name,emo->emoji);
// int count = sizeof(_ai_emoji_list)/sizeof(_HLY_AI_EMOJI_T);
// for(int i = 0;i<count;i++)
// {
// if(strcasecmp(emo->name,_ai_emoji_list[i].name)==0)
// {
// _hly_ai_config->hly_ai_emoji_cb(_ai_emoji_list[i].emoji);
// return;
// }
// _hly_ai_config->hly_ai_emoji_cb(HLY_AI_EMOJI_UNKNOWN);
// }
// }
/**ai技能 */
STATIC int _hly_ai_skill(ty_cJSON* data)
{
// ty_cJSON *node = NULL;
// CHAR_T *code = NULL;
// ty_cJSON *skillContent = NULL;
// ty_cJSON *emotions = NULL;
// ty_cJSON *emo = NULL;
// node = ty_cJSON_GetObjectItem(data, "code");
// code = ty_cJSON_GetStringValue(node);
// if(code!=NULL && strcmp(code,"emo")==0)
// {
// TAL_PR_DEBUG("=====emo=======");
// skillContent=ty_cJSON_GetObjectItem(data,"skillContent");
// if(skillContent!=NULL)
// {
// TAL_PR_DEBUG("skillContent:%s",ty_cJSON_Print(skillContent));
// emotions=ty_cJSON_GetObjectItem(skillContent,"emotion");
// if(emotions!=NULL)
// {
// TAL_PR_DEBUG("emotions:%s",ty_cJSON_Print(emotions));
// emo=ty_cJSON_GetArrayItem(emotions,0);
// if(emo!=NULL)
// {
// TAL_PR_DEBUG("emo:%s",ty_cJSON_Print(emo));
// code = ty_cJSON_GetStringValue(emo);
// if(code!=NULL)
// {
// TAL_PR_DEBUG("emo str:%s",code);
// }
// }
// }
// }
// }
// char* str=ty_cJSON_PrintUnformatted(data);
// if(strstr(str,"101"))
// {
// wake_up_flag=FALSE;
// return 0;
// }
return 0;
}
/**ai事件 */
STATIC VOID _hly_ai_event(WUKONG_AI_EVENT_T *event)
{
// wukong_ai_handle_event(event, 0);
TUYA_CHECK_NULL_RETURN(event, OPRT_INVALID_PARM);
TAL_PR_DEBUG("======wukong ai event type: %d", event->type);
switch (event->type)
{
case WUKONG_AI_EVENT_ASR_EMPTY:
case WUKONG_AI_EVENT_ASR_ERROR:
{
tal_mutex_lock(_ai_mutex);
debug_step_d=9;
if (_ai_stat == AI_STAT_THINK)
{
_hly_ai_set_stat(AI_STAT_LISTEN);
}
tal_mutex_unlock(_ai_mutex);
debug_step_d=10;
}
break;
case WUKONG_AI_EVENT_ASR_OK:
{
}
break;
case WUKONG_AI_EVENT_TTS_PRE:
{
_hly_ai_set_stat(AI_STAT_SPEAK);
}
break;
case WUKONG_AI_EVENT_TTS_START:
case WUKONG_AI_EVENT_TTS_DATA:
{
_hly_ai_re_idel_start(AI_TTS_TIME);
}
break;
case WUKONG_AI_EVENT_TTS_STOP:
case WUKONG_AI_EVENT_TTS_ABORT:
case WUKONG_AI_EVENT_TTS_ERROR:
{
_hly_ai_re_idel_start(AI_TTS_TIME);
}
break;
case WUKONG_AI_EVENT_VAD_TIMEOUT:
{
}
break;
case WUKONG_AI_EVENT_TEXT_STREAM_START:
case WUKONG_AI_EVENT_TEXT_STREAM_DATA:
case WUKONG_AI_EVENT_TEXT_STREAM_STOP:
case WUKONG_AI_EVENT_TEXT_STREAM_ABORT:
{
// __ai_wakeup_text_stream(event->type, event->data);
}
break;
case WUKONG_AI_EVENT_EMOTION:
case WUKONG_AI_EVENT_LLM_EMOTION:
{
// _hly_ai_skill_emoji(event->data);
// __ai_wakeup_emition(event->type, event->data);
}
break;
case WUKONG_AI_EVENT_SKILL:
{
_hly_ai_skill(event->data);
}
break;
case WUKONG_AI_EVENT_CHAT_BREAK:
case WUKONG_AI_EVENT_SERVER_VAD:
{
}
break;
case WUKONG_AI_EVENT_EXIT:
_hly_ai_set_stat(AI_STAT_IDEL);
break;
case WUKONG_AI_EVENT_PLAY_CTL_PLAY:
case WUKONG_AI_EVENT_PLAY_CTL_RESUME:
{
wukong_audio_player_set_resume(TRUE);
}
break;
case WUKONG_AI_EVENT_PLAY_CTL_PAUSE:
{
wukong_audio_player_stop(AI_PLAYER_BG);
}
break;
case WUKONG_AI_EVENT_PLAY_CTL_REPLAY:
{
wukong_audio_player_set_replay(TRUE);
}
break;
case WUKONG_AI_EVENT_PLAY_CTL_END:
case WUKONG_AI_EVENT_PLAY_END:
{
tal_mutex_lock(_ai_mutex);
debug_step_d=11;
if(paly_alart)
{
paly_alart=FALSE;
}
if(wake_up_flag)
{
_hly_ai_set_stat(AI_STAT_LISTEN);
}
else
{
_hly_ai_set_stat(AI_STAT_IDEL);
}
tal_mutex_unlock(_ai_mutex);
debug_step_d=12;
}
break;
case WUKONG_AI_EVENT_PLAY_ALERT:
{
//wukong_audio_player_alert((TY_AI_TOY_ALERT_TYPE_E)event->data, TRUE);
}
break;
case WUKONG_AI_EVENT_PLAY_CTL_PREV:
case WUKONG_AI_EVENT_PLAY_CTL_NEXT:
case WUKONG_AI_EVENT_PLAY_CTL_SEQUENTIAL:
case WUKONG_AI_EVENT_PLAY_CTL_SEQUENTIAL_LOOP:
case WUKONG_AI_EVENT_PLAY_CTL_SINGLE_LOOP:
{
}
break;
default:
break;
}
return OPRT_OK;
}
/** 麦克风输入*/
STATIC INT_T _hly_ai_mic_data(UINT8_T *data, UINT16_T datalen)
{
OPERATE_RET rt = OPRT_OK;
UINT64_T pts = 0;
UINT64_T timestamp = 0;
TAL_PR_NOTICE("hly ai -> recv wukong mic data: %d", datalen);
tal_mutex_lock(_ai_mutex);
if (!tuya_ai_agent_is_ready()) {
TAL_PR_DEBUG("ai agent is not ready, ignore audio input");
tal_mutex_unlock(_ai_mutex);
return OPRT_OK;
}
if((_ai_stat == AI_STAT_SPEAK) && (!free_chat))
{
TAL_PR_DEBUG("========off free speak!!========");
tal_mutex_unlock(_ai_mutex);
return OPRT_OK;
}
tal_mutex_unlock(_ai_mutex);
timestamp = pts = tal_system_get_millisecond();
TUYA_CALL_ERR_LOG(tuya_ai_audio_input(timestamp, pts, (UINT8_T *)data, datalen, datalen));
return rt;
}
STATIC OPERATE_RET _hly_ai_agent_init()
{
OPERATE_RET rt = OPRT_OK;
/* Register downlink event callback and init player. */
TUYA_CALL_ERR_LOG(wukong_ai_agent_init(_hly_ai_event));
TUYA_CALL_ERR_LOG(wukong_audio_player_init());
/* Audio input: board (16k, mono, 80 ms slice, VAD by trigger mode) or UART. */
WUKONG_AUDIO_INPUT_CFG_T audio_cfg = {0};
// #if defined(USING_BOARD_AUDIO_INPUT) && (USING_BOARD_AUDIO_INPUT == 1)
audio_cfg.type = WUKONG_AUDIO_USING_BOARD;
audio_cfg.board.sample_rate = TKL_AUDIO_SAMPLE_16K;
audio_cfg.board.sample_bits = TKL_AUDIO_DATABITS_16;
audio_cfg.board.channel = TKL_AUDIO_CHANNEL_MONO;
audio_cfg.board.slice_ms = AI_AUDIO_SLICE_TIME;
/* HOLD trigger -> manual VAD; otherwise auto VAD (e.g. one-shot, free talk). */
audio_cfg.board.vad_mode = WUKONG_AUDIO_VAD_MANIAL;//WUKONG_AUDIO_VAD_AUTO;//是否由按键触发vad
audio_cfg.board.vad_off_ms = 1000;
audio_cfg.board.vad_active_ms = 200;
audio_cfg.board.spk_io = _hly_ai_config->spk_en_pin;
audio_cfg.board.spk_io_level = TUYA_GPIO_LEVEL_LOW;
audio_cfg.board.output_cb = _hly_ai_mic_data;
// #elif defined(USING_UART_AUDIO_INPUT) && (USING_UART_AUDIO_INPUT == 1)
// audio_cfg.type = WUKONG_AUDIO_USING_UART;
// audio_cfg.uart.mic_upload = __on_ai_toy_mic_data;
// #endif
TUYA_CALL_ERR_LOG(wukong_audio_input_init(&audio_cfg));
hly_ai_set_vol(_hly_ai_config->volume);
TUYA_CALL_ERR_LOG(wukong_kws_default_init());
wukong_audio_input_wakeup_mode_set(WUKONG_AUDIO_VAD_AUTO);
// wukong_kws_enable();
return rt;
}
//ai客户端运行事件
STATIC OPERATE_RET _hly_ai_client_run_cb(VOID_T *data)
{
TAL_PR_NOTICE("hly ai -> connected to server");
// wukong_ai_handle_client(NULL, 0);
return OPRT_OK;
}
/** ai唤醒词事件. */
STATIC OPERATE_RET _hly_ai_audio_kws_cb(VOID_T *data)
{
OPERATE_RET rt = OPRT_OK;
tal_mutex_lock(_ai_mutex);
if(_ai_stat != AI_STAT_IDEL)
{
tal_mutex_unlock(_ai_mutex);
return rt;
}
tal_mutex_unlock(_ai_mutex);
if (data) {
INT_T idx = (INT_T)data;
TAL_PR_DEBUG("==========hly wakeup : %d===========", idx);
if (idx)
{
hly_ai_wakeup();
}
}
return rt;
// return wukong_ai_handle_wakeup(NULL, 0);
}
/** VAD 人声检测*/
STATIC OPERATE_RET _hly_ai_vad_change(VOID *data)
{
TUYA_CHECK_NULL_RETURN(data, OPRT_INVALID_PARM);
// wukong_ai_handle_vad(data, 0);
tal_mutex_lock(_ai_mutex);
if (_ai_stat == AI_STAT_IDEL || _ai_stat==AI_STAT_INIT || !ai_start || !wake_up_flag)
{
tal_mutex_unlock(_ai_mutex);
return OPRT_OK;
}
_hly_ai_re_idel_start(_hly_ai_config->wake_time);
WUKONG_AUDIO_VAD_FLAG_E vad_flag = (WUKONG_AUDIO_VAD_FLAG_E)data;
TAL_PR_DEBUG("[====ai_wakeup] vad: [%d]", vad_flag);
if (WUKONG_AUDIO_VAD_START == vad_flag)
{
if (!tuya_ai_agent_is_ready()) {
TAL_PR_DEBUG("ai agent is not ready, ignore audio input");
tal_mutex_unlock(_ai_mutex);
return OPRT_RESOURCE_NOT_READY;
}
tuya_ai_agent_set_scode(AI_AGENT_SCODE_DEFAULT);
tuya_ai_input_start(FALSE);
}
else
{
tuya_ai_input_stop();
if(_ai_stat!=AI_STAT_SPEAK)
{
_hly_ai_set_stat(AI_STAT_THINK);
}
}
tal_mutex_unlock(_ai_mutex);
return OPRT_OK;
}
//恢复待机定时器
STATIC VOID_T _hly_ai_re_idel_timer_cb (TIMER_ID timer_id, VOID_T *arg)
{
TAL_PR_DEBUG("===hly ai time out===");
hly_ai_shutup();
}
STATIC VOID _hly_ai_sem_task_cb(PVOID_T args)
{
while (true)
{
debug_step_c=1;
tal_semaphore_wait(_hly_ai_sem, SEM_WAIT_FOREVER);
debug_step_c=2;
tal_mutex_lock(_ai_mutex);
debug_step_c=3;
wukong_audio_player_stop(AI_PLAYER_FG);
debug_step_c=5;
tuya_ai_agent_event(AI_EVENT_CHAT_BREAK, 0);
debug_step_c=6;
paly_alart=TRUE;
_hly_ai_set_stat(AI_STAT_IDEL);
debug_step_c=7;
tal_mutex_unlock(_ai_mutex);
hly_ai_play_alert(HLY_AI_ALERT_EXIT);
debug_step_c=8;
}
}
STATIC VOID _hly_ai_debug_task_cb(PVOID_T args)
{
while(1)
{
TAL_PR_DEBUG("====*******ai debug A:%d B:%d C:%d D:%d E:%d********====",debug_step_a,debug_step_b,debug_step_c,debug_step_d,debug_step_e);
tal_system_sleep(1000);
}
}
OPERATE_RET hly_ai_init(hly_ai_config_t* config)
{
OPERATE_RET rt = OPRT_OK;
tal_sw_timer_create(_hly_ai_re_idel_timer_cb,NULL,&_re_idel_timer);
TAL_PR_DEBUG("=======_hli_ai_re_idel_timer_cb timer id:%08X========",_re_idel_timer);
tal_mutex_create_init(&_ai_mutex);
tal_mutex_create_init(&_timer_mutex);
tal_mutex_create_init(&_alert_mutex);
_hly_ai_config = tal_psram_malloc(sizeof(hly_ai_config_t));
if(_hly_ai_config==NULL)
{
TAL_PR_ERR("hly ai init malloc fail.");
return OPRT_MALLOC_FAILED;
}
memset(_hly_ai_config,0,sizeof(hly_ai_config_t));
memcpy(_hly_ai_config,config,sizeof(hly_ai_config_t));
ty_subscribe_event(EVENT_AI_CLIENT_RUN, "hly_ai", _hly_ai_client_run_cb, SUBSCRIBE_TYPE_NORMAL);
ty_subscribe_event(EVENT_WUKONG_KWS_WAKEUP, "hly_ai", _hly_ai_audio_kws_cb, SUBSCRIBE_TYPE_NORMAL);
ty_subscribe_event(EVENT_AUDIO_VAD, "hly_ai", _hly_ai_vad_change, SUBSCRIBE_TYPE_NORMAL);
ty_subscribe_event(AI_STAT_EVENT, "hly_ai", _hly_ai_config->hly_ai_stat_cb, SUBSCRIBE_TYPE_NORMAL);
TUYA_CALL_ERR_GOTO( _hly_ai_agent_init(), __error);
tal_queue_create_init(&_hly_ai_stat_queue,sizeof(hly_ai_stat_e),10);
THREAD_CFG_T stat_task_cfg={
.priority=0,
.stackDepth=4096,
.thrdname="hly_ai_stat_task",
.psram_mode=1
};
tal_thread_create_and_start(&_hly_ai_stat_task,NULL,NULL,_hly_ai_stat_task_cb,NULL,&stat_task_cfg);
tal_semaphore_create_init(&_hly_ai_sem,0,1);
THREAD_CFG_T cfg={
.priority=0,
.stackDepth=2048,
.thrdname="hly_ai_sem_task",
.psram_mode=1
};
tal_thread_create_and_start(&_hly_ai_sem_task,NULL,NULL,_hly_ai_sem_task_cb,NULL,&cfg);
THREAD_CFG_T debug_cfg={
.priority=0,
.stackDepth=2048,
.thrdname="hly_ai_debug_task",
.psram_mode=1
};
tal_thread_create_and_start(&_hly_ai_debug_task,NULL,NULL,_hly_ai_debug_task_cb,NULL,&debug_cfg);
return rt;
__error:
return rt;
}
// OPERATE_RET hly_ai_deinit();//取消初始化
OPERATE_RET hly_ai_start(void)
{
TAL_PR_DEBUG("================ai start============");
tal_mutex_lock(_ai_mutex);
debug_step_d=7;
ai_start=TRUE;
_hly_ai_set_stat(AI_STAT_IDEL);
tal_mutex_unlock(_ai_mutex);
debug_step_d=8;
}
//停止运行ai
OPERATE_RET hly_ai_stop(void)
{
tal_mutex_lock(_ai_mutex);
debug_step_d=5;
ai_start=FALSE;
hly_ai_shutup();
tal_mutex_unlock(_ai_mutex);
debug_step_d=6;
}
// OPERATE_RET hly_ai_nw_stat_change(GW_WIFI_NW_STAT_E stat);//设置网络状态变化
//唤醒进入聆听模式
OPERATE_RET hly_ai_wakeup(void)
{
debug_step_b=1;
tal_mutex_lock(_ai_mutex);
if(!ai_start)
{
tal_mutex_unlock(_ai_mutex);
debug_step_b=2;
return 0;
}
debug_step_b = 3;
wukong_audio_player_stop(AI_PLAYER_ALL);
debug_step_b = 4;
wukong_audio_input_reset();
debug_step_b = 5;
tuya_ai_agent_event(AI_EVENT_CHAT_BREAK, 0);
debug_step_b = 6;
wake_up_flag = TRUE;
paly_alart = TRUE;
// wukong_audio_player_alert(AI_TOY_ALERT_TYPE_WAKEUP, FALSE);
_hly_ai_set_stat(AI_STAT_LISTEN);
debug_step_b=7;
tal_mutex_unlock(_ai_mutex);
tal_mutex_lock(_alert_mutex);
wukong_audio_player_alert(AI_TOY_ALERT_TYPE_WAKEUP, FALSE);
tal_mutex_unlock(_alert_mutex);
debug_step_b=8;
return 0;
}
//立刻停止说话
OPERATE_RET hly_ai_shutup(void)
{
TAL_PR_DEBUG("==============hly_ai_shutup publish==============");
tal_semaphore_post(_hly_ai_sem);
}
//结束对话
OPERATE_RET hly_ai_chat_over(void)
{
tal_mutex_lock(_ai_mutex);
debug_step_d=3;
wake_up_flag = FALSE;
paly_alart=TRUE;
tal_mutex_unlock(_ai_mutex);
debug_step_d=4;
hly_ai_play_alert(HLY_AI_ALERT_EXIT);
return 0;
}
//自由对话
OPERATE_RET hly_ai_free_chat(BOOL_T value)
{
tal_mutex_lock(_ai_mutex);
debug_step_d=1;
free_chat=value;
tal_mutex_unlock(_ai_mutex);
debug_step_d=2;
return 0;
}
OPERATE_RET hly_ai_set_vol(uint8_t vol)
{
float f;
f=vol/100.0f;
f=f*70;
return wukong_audio_player_set_vol((int)f);
// return wukong_audio_player_set_vol(vol);
}
OPERATE_RET hly_ai_set_asr(BOOL_T enable)
{
if(enable)
{
wukong_kws_enable();
}
else
{
wukong_kws_disable();
}
return 0;
}
OPERATE_RET hly_ai_play_alert(HLY_AI_ALERT_E alert)
{
static HLY_AI_ALERT_E curr_alert=HLY_AI_ALERT_MAX;
static uint8_t* data=NULL;
static uint32_t len;
uint8_t str[32]={0};
tal_mutex_lock(_alert_mutex);
debug_step_e=1;
// wukong_audio_player_stop(AI_PLAYER_ALL);
debug_step_e=2;
TAL_PR_DEBUG("=====hly ai play alert:%d", alert);
if (curr_alert != alert)
{
curr_alert = alert;
if (data != NULL)
{
hly_free_psram(data);
}
switch (curr_alert)
{
case HLY_AI_ALERT_ALARM:
sprintf(&str, "/mp3/%s.mp3", "alarm");
break;
case HLY_AI_ALERT_CLOCK:
sprintf(&str, "/mp3/%s.mp3", "clock");
break;
case HLY_AI_ALERT_ERROR:
sprintf(&str, "/mp3/%s.mp3", "error");
break;
case HLY_AI_ALERT_EXIT:
sprintf(&str, "/mp3/%s.mp3", "exit");
break;
case HLY_AI_ALERT_START:
sprintf(&str, "/mp3/%s.mp3", "start");
break;
case HLY_AI_ALERT_STOP:
sprintf(&str, "/mp3/%s.mp3", "stop");
break;
case HLY_AI_ALERT_WAKEUP:
sprintf(&str, "/mp3/%s.mp3", "wakeup");
break;
default:
tal_mutex_unlock(_alert_mutex);
debug_step_e=8;
return -1;
break;
}
TAL_PR_DEBUG("=====hly ai load alert:%s", &str);
if (hly_fs_load_psram(&str, &data, &len) != 0)
{
tal_mutex_unlock(_alert_mutex);
debug_step_e=7;
return -3;
}
}
if (data == NULL)
{
debug_step_e=6;
tal_mutex_unlock(_alert_mutex);
return -1;
}
debug_step_e=3;
int rt = wukong_audio_play_data(AI_AUDIO_CODEC_MP3, data, len);
debug_step_e=4;
tal_mutex_unlock(_alert_mutex);
debug_step_e=5;
return rt;
}
OPERATE_RET hly_ai_set_weke_time(uint8_t wake_time)
{
_hly_ai_config->wake_time=wake_time;
return 0;
}
Re: 【求助】T5 tuya_os_sdk3.13.3播放提示音或停止时卡死
包括之前的stop死循环事件,都说明了处理队列消息的线程就是会卡死,不然不会死循环的。
Re: 【求助】T5 tuya_os_sdk3.13.3播放提示音或停止时卡死
可以按照这个先处理再挂机看看。
- 给 tkl_ao_put_frame 的重试加上累计超时——例如 ret==0 连续重试超过 X ms(比如 200500ms)就 return OPRT_TIMEOUT 并丢帧,绝不 goto 死循环。(同时增加超时的日志)
- 兜底(应用/播放器层):
- 把播放消息队列深度从 2 调大(比如10),减少瞬时 -26369;
- tuya_ai_player_stop/start 的 tal_queue_post 给个小超时而非 0;
- 配合方案1(播放线程内不忙等),避免重入。
Re: 【求助】T5 tuya_os_sdk3.13.3播放提示音或停止时卡死
附件是完整的分析报告,可以参考(包括代码重构)
- Attachments
-
- tuyaos-audio-deadlock-bundle.zip
- (46.85 KiB) Downloaded 59 times
Re: 【求助】T5 tuya_os_sdk3.13.3播放提示音或停止时卡死
您好,在tkl_ao_put_frame函数加入超时代码后,第二天依旧有出现无声的现象。
tkl_ao_put_frame函数代码如下:
Code: Select all
OPERATE_RET tkl_ao_put_frame(INT32_T card, TKL_AO_CHN_E chn, VOID *handle,
TKL_AUDIO_FRAME_INFO_T *pframe)
{
OPERATE_RET ret;
if (pframe == NULL) {
return OPRT_INVALID_PARM;
}
if (!s_audio_init.audio_init || !s_audio_init.audio_start) {
return OPRT_RESOURCE_NOT_READY;
}
int offset = 0; // 偏移量
int remaining_size = pframe->used_size; // 剩余数据大小
int chunk_size = 0;
if (remaining_size < 0) {
return -1;
}
int spk_ringbuf_size = FRAME_SIZE_PER_20MS(s_audio_mic.samp_rate) * DRIVER_SPEAK_FIFO_FRAME_NUM;
//
// bk_printf("rate: %d, spk_ringbuf_size: %d, output size:%d\r\n",
// s_audio_mic.samp_rate, spk_ringbuf_size, remaining_size);
// 分段调用 bk_aud_intf_write_spk_data
while (remaining_size > 0) {
// 计算当前要写入的数据大小
chunk_size = (remaining_size > spk_ringbuf_size) ? spk_ringbuf_size : remaining_size;
uint16_t time_out=0;
write_spk_retry:
ret = bk_voice_write_frame_data(g_voice_write_handle, (char *)(pframe->pbuf + offset), chunk_size);
// ret = bk_voice_write_spk_data(g_voice_handle, (char *)(pframe->pbuf + offset), chunk_size);
if (ret == 0) {
tkl_system_sleep(20);
time_out++;
if(time_out>100)
{
os_printf("tkl_audio.c tkl_ao_put_frame time out!!");
return OPRT_TIMEOUT;
}
else
{
goto write_spk_retry;
}
}
if (ret < 0) {
os_printf("audio intf spk semaphore wait fail, ret:%d \r\n", ret);
return ret;
}
// 更新偏移量和剩余大小
offset += chunk_size;
remaining_size -= chunk_size;
}
return OPRT_OK;
}
出现无声后开始抓取日志如下:
Code: Select all
D][0x60cb2fd8][hly_mc1081.c:273] ==========[8]mc1801:9.93465 param:9.96051
[07-01 09:09:16:831 ty D][0x60cb2fd8][hly_mc1081.c:273] ==========[9]mc1801:9.93762 param:9.95992
[07-01 09:09:16:831 ty D][0x60c0fa18][hly_cht8320.c:41] cht8320 task is running...
[07-01 09:09:16:833 ty D][0x60c0e998][hly_opt3001.c:32] opt3001 task is running...
[07-01 09:09:16:834 ty D][0x60c0d828][hly_pcf8563.c:97] pcf8563 task is running...
[07-01 09:09:16:866 ty D][0x60f5f7dc][hly_display.c:285] ====================queue fetch:0 type:9
[07-01 09:09:16:934 ty D][0x60cb2fd8][hly_mc1081.c:352] mc1081 task is running...
[07-01 09:09:17:17 ty D][0x60c2b934][hly_ai.c:512] ====*******ai debug A:1 B:8 C:1 D:12 E:5********====
[07-01 09:09:17:72 ty D][0x60f5f7dc][hly_display.c:285] ====================queue fetch:0 type:1
[07-01 09:09:17:116 ty D][0x60c14790][hly_power.c:100] power task is running...
[07-01 09:09:17:187 ty D][0x60c14ee4][hly_weather.c:61] weather task is running...
[ONBOARD_MIC] data_size: 248320(Bytes), 60KB/s
[RAW_READ] data_size: 124160(Bytes), 30KB/s
[RAW_WRITE] data_size: 0(Bytes), 0KB/s
[ONBOARD_SPK] data_size: 0(Bytes), 0KB/s
[WIFI_TX] data_size: 124160(Bytes), 30KB/s
[WIFI_RX] data_size: 253440(Bytes), 61KB/s
[07-01 09:09:17:379 ty D][0x60cb2fd8][hly_mc1081.c:352] mc1081 task is running...
[07-01 09:09:17:824 ty D][0x60cb2fd8][hly_mc1081.c:352] mc1081 task is running...
[07-01 09:09:18:19 ty D][0x60c2b934][hly_ai.c:512] ====*******ai debug A:1 B:8 C:1 D:12 E:5********====
[07-01 09:09:18:117 ty D][0x60c14790][hly_power.c:100] power task is running...
[07-01 09:09:18:169 ty D][0x60c0fa18][hly_cht8320.c:41] cht8320 task is running...
[07-01 09:09:18:171 ty D][0x60c0d828][hly_pcf8563.c:97] pcf8563 task is running...
[07-01 09:09:18:187 ty D][0x60c14ee4][hly_weather.c:61] weather task is running...
[07-01 09:09:18:207 ty D][0x60f5f7dc][hly_display.c:285] ====================queue fetch:0 type:9
[07-01 09:09:18:271 ty D][0x60cb2fd8][hly_mc1081.c:352] mc1081 task is running...
tkl_audio.c tkl_ao_put_frame time out!!
[07-01 09:09:18:717 ty D][0x60cb2fd8][hly_mc1081.c:352] mc1081 task is running...
[07-01 09:09:19:9 ty D][0x60c092b0][hly_ai_fl.c:131] =====tp key type:1
[07-01 09:09:19:9 ty D][0x60c092b0][wukong_audio_player.c:281] wukong audio player -> stop 2 player
[07-01 09:09:19:19 ty D][0x60c2b934][hly_ai.c:512] ====*******ai debug A:1 B:3 C:1 D:12 E:5********====
[07-01 09:09:19:62 ty D][0x60c0e998][hly_opt3001.c:32] opt3001 task is running...
[07-01 09:09:19:118 ty D][0x60c14790][hly_power.c:100] power task is running...
[07-01 09:09:19:162 ty D][0x60cb2fd8][hly_mc1081.c:352] mc1081 task is running...
[07-01 09:09:19:187 ty D][0x60c14ee4][hly_weather.c:61] weather task is running...
[07-01 09:09:19:506 ty D][0x60c0fa18][hly_cht8320.c:41] cht8320 task is running...
[07-01 09:09:19:509 ty D][0x60c0d828][hly_pcf8563.c:97] pcf8563 task is running...
[07-01 09:09:19:555 ty D][0x60f5f7dc][hly_display.c:285] ====================queue fetch:0 type:9
[07-01 09:09:19:606 ty D][0x60cb2fd8][hly_mc1081.c:352] mc1081 task is running...
[07-01 09:09:20:19 ty D][0x60c2b934][hly_ai.c:512] ====*******ai debug A:1 B:3 C:1 D:12 E:5********====
[07-01 09:09:20:29 ty E][0x60c092b0][wukong_audio_player.c:294] ret:-20
[07-01 09:09:20:29 ty N][0x60c092b0][wukong_audio_input_board.c:313] wukong audio input -> reset ringbuf!
[07-01 09:09:20:30 ty N][0x60c092b0][wukong_audio_input_board.c:320] wukong audio input -> vad stop!
[07-01 09:09:20:30 ty N][0x60c092b0][wukong_audio_input_board.c:323] wukong audio input -> vad start!
[07-01 09:09:20:30 ty D][0x60c092b0][tuya_ai_agent.c:1405] [upload event] type:4
[07-01 09:09:20:30 ty E][0x60c092b0][tuya_ai_event.c:38] event or session id was null
[07-01 09:09:20:31 ty D][0x60c092b0][hly_ai.c:704] =====hly ai play alert:7
[07-01 09:09:20:31 ty N][0x60c092b0][wukong_audio_player.c:307] wukong audio player -> play alert type=12
[07-01 09:09:20:32 ty D][0x60c2caac][hly_ai.c:121] =============ai stat:2=============
[07-01 09:09:20:35 ty N][0x60c2caac][wukong_audio_input_board.c:337] wukong audio input -> mode is 1, wakeup set to 1, vad flag is 2!
[07-01 09:09:20:35 ty D][0x60c2caac][hly_ai.c:94] ======ai re idel time:20======
[07-01 09:09:20:49 ty D][0x60f5f7dc][hly_display.c:285] ====================queue fetch:0 type:0
[07-01 09:09:20:50 ty D][0x60f5f7dc][hly_display.c:285] ====================queue fetch:0 type:1
[07-01 09:09:20:53 ty D][0x60cb2fd8][hly_mc1081.c:352] mc1081 task is running...
[07-01 09:09:20:118 ty D][0x60c14790][hly_power.c:100] power task is running...
[07-01 09:09:20:187 ty D][0x60c14ee4][hly_weather.c:61] weather task is running...
[07-01 09:09:20:499 ty D][0x60cb2fd8][hly_mc1081.c:352] mc1081 task is running...
tkl_audio.c tkl_ao_put_frame time out!![07-01 09:09:20:517 ty D][0x60c7d438][svc_ai_player.c:519] ai player FG cmd STOP
[07-01 09:09:20:517 ty D][0x60c7d438][svc_ai_player.c:131] stop player FG
[07-01 09:09:20:517 ty D][0x60c7d438][svc_ai_playlist.c:54] playlist player state 0 index 0 count 0 loop 0 single 0
[07-01 09:09:20:521 ty D][0x60c092b0][wukong_audio_player.c:222] wukong audio player -> player tts mem data len 3537
[07-01 09:09:20:521 ty D][0x60c7d438][wukong_audio_player.c:61] wukong audio player -> player tts event: 0
[07-01 09:09:20:521 ty D][0x60c7d438][wukong_audio_player.c:68] wukong audio player -> stop event
[07-01 09:09:20:521 ty D][0x60c7d438][hly_ai.c:189] ======wukong ai event type: 30
[07-01 09:09:20:522 ty D][0x60c7d438][svc_ai_player.c:519] ai player FG cmd STOP
[07-01 09:09:20:522 ty D][0x60c7d438][svc_ai_player.c:131] stop player FG
[07-01 09:09:20:522 ty D][0x60c7d438][svc_ai_playlist.c:54] playlist player state 0 index 0 count 0 loop 0 single 0
[07-01 09:09:20:522 ty D][0x60c7d438][wukong_audio_player.c:61] wukong audio player -> player tts event: 0
[07-01 09:09:20:522 ty D][0x60c7d438][wukong_audio_player.c:68] wukong audio player -> stop event
[07-01 09:09:20:522 ty D][0x60c7d438][hly_ai.c:189] ======wukong ai event type: 30
[07-01 09:09:20:522 ty D][0x60c7d438][svc_ai_player.c:519] ai player FG cmd START
[07-01 09:09:20:523 ty D][0x60c7d438][svc_ai_player.c:104] start player FG value=null
[07-01 09:09:20:523 ty D][0x60c7d438][wukong_audio_player.c:61] wukong audio player -> player tts event: 1
[07-01 09:09:20:523 ty D][0x60c7d438][wukong_audio_player.c:82] wukong audio player -> playing start event
[07-01 09:09:20:523 ty D][0x60c7d438][hly_ai.c:189] ======wukong ai event type: 20
voice_write_send_msg, 127, send message: 1 fail, ret: -1
bk_voice_write_start, 571, send message: VOICE_WRITE_START fail
tkl_ao_start, 765, voice read start fail
[07-01 09:09:20:524 ty D][0x60c2caac][hly_ai.c:94] ======ai re idel time:20======
[07-01 09:09:20:525 ty D][0x60c2caac][hly_ai.c:94] ======ai re idel time:20======
[07-01 09:09:20:536 ty D][0x60c7d438][decoder_mp3.c:43] ID3 tag_size = 35
[07-01 09:09:20:843 ty D][0x60c0fa18][hly_cht8320.c:41] cht8320 task is running...
[07-01 09:09:20:845 ty D][0x60c0d828][hly_pcf8563.c:97] pcf8563 task is running...
[07-01 09:09:20:886 ty D][0x60f5f7dc][hly_display.c:285] ====================queue fetch:0 type:9
[07-01 09:09:20:943 ty D][0x60cb2fd8][hly_mc1081.c:352] mc1081 task is running...
[07-01 09:09:21:19 ty D][0x60c2b934][hly_ai.c:512] ====*******ai debug A:1 B:8 C:1 D:12 E:8********====
[07-01 09:09:21:118 ty D][0x60c14790][hly_power.c:100] power task is running...
[07-01 09:09:21:187 ty D][0x60c14ee4][hly_weather.c:61] weather task is running...
[07-01 09:09:21:220 ty D][0x60c14808][hly_soc.c:127] rssi task is running...
error_cnt 0, ret 0, tmp_rssi -35, link_status->state 3
error_cnt 0, ret 0, tmp_rssi -35, link_status->state 3
error_cnt 0, ret 0, tmp_rssi -35, link_status->state 3
error_cnt 0, ret 0, tmp_rssi -35, link_status->state 3
error_cnt 0, ret 0, tmp_rssi -35, link_status->state 3
[07-01 09:09:21:273 ty D][0x60c14808][tuya_wifi_link.c:898] Get Rssi:-35
[07-01 09:09:21:273 ty D][0x60c14808][tuya_devos_utils.c:700] Get Rssi:-35
[07-01 09:09:21:287 ty D][0x60c0e998][hly_opt3001.c:32] opt3001 task is running...
[ONBOARD_MIC] data_size: 256000(Bytes), 62KB/s
[RAW_READ] data_size: 128000(Bytes), 31KB/s
[RAW_WRITE] data_size: 0(Bytes), 0KB/s
[ONBOARD_SPK] data_size: 0(Bytes), 0KB/s
[WIFI_TX] data_size: 128000(Bytes), 31KB/s
[WIFI_RX] data_size: 253440(Bytes), 61KB/s
[07-01 09:09:21:386 ty D][0x60cb2fd8][hly_mc1081.c:352] mc1081 task is running...
[07-01 09:09:21:816 ty D][0x28050960][wukong_audio_aec_vad.c:158] ################ [vad start] ################
[07-01 09:09:21:817 ty D][0x60c4f5f4][wukong_audio_input_board.c:153] wukong audio input -> wakup flag is 1, auto vad set from 2 to 1!
[07-01 09:09:21:817 ty D][0x28050960][wukong_kws.c:233] wukong kws vad on
[07-01 09:09:21:818 ty D][0x60c4f5f4][wukong_audio_input_board.c:112] wukong audio input -> vad stat change to flag 1
[07-01 09:09:21:819 ty D][0x60c4f5f4][hly_ai.c:94] ======ai re idel time:20======
[07-01 09:09:21:820 ty D][0x60c4f5f4][hly_ai.c:447] [====ai_wakeup] vad: [1]
[07-01 09:09:21:820 ty D][0x60c4f5f4][tuya_ai_agent.c:1430] set scode:
[07-01 09:09:21:820 ty D][0x60c4f5f4][tuya_ai_input.c:264] ai input start, state:1
[07-01 09:09:21:822 ty N][0x60c4f5f4][hly_ai.c:345] hly ai -> recv wukong mic data: 1600
[07-01 09:09:21:822 ty N][0x60c4f5f4][hly_ai.c:345] hly ai -> recv wukong mic data: 1600
[07-01 09:09:21:824 ty N][0x60c4f5f4][hly_ai.c:345] hly ai -> recv wukong mic data: 1600
[07-01 09:09:21:824 ty N][0x60c4f5f4][hly_ai.c:345] hly ai -> recv wukong mic data: 1600
[07-01 09:09:21:824 ty N][0x60c4f5f4][hly_ai.c:345] hly ai -> recv wukong mic data: 1600
[07-01 09:09:21:826 ty N][0x60c4f5f4][hly_ai.c:345] hly ai -> recv wukong mic data: 1600
[07-01 09:09:21:826 ty N][0x60c4f5f4][hly_ai.c:345] hly ai -> recv wukong mic data: 1600
[07-01 09:09:21:827 ty N][0x60c4f5f4][hly_ai.c:345] hly ai -> recv wukong mic data: 1600
[07-01 09:09:21:838 ty D][0x60cb2fd8][hly_mc1081.c:352] mc1081 task is running...
[07-01 09:09:21:840 ty D][0x60c92b54][tuya_ai_input.c:344] recv queue state 1
[07-01 09:09:21:840 ty D][0x60c92b54][tuya_ai_agent.c:747] ai session new
[07-01 09:09:21:841 ty D][0x60c92b54][mqc_app.c:874] Send MQTT Msg.P:9000 N:16462 Q:0 Data:{"bizType":"EVENT","bizId":"86acadb5-78d6-4400-b58b-26a9-b49e052e","devId":"6cab64eae7122ec7b07ihs","data":{"type":"thingGetAgentToken","data":{"aiSolutionCode":""}}}
[07-01 09:09:21:846 ty N][0x60c4f5f4][hly_ai.c:345] hly ai -> recv wukong mic data: 1600
[07-01 09:09:21:864 ty N][0x60c4f5f4][hly_ai.c:345] hly ai -> recv wukong mic data: 1600
[07-01 09:09:21:884 ty N][0x60c4f5f4][hly_ai.c:345] hly ai -> recv wukong mic data: 1600
[07-01 09:09:21:922 ty N][0x60c4f5f4][hly_ai.c:345] hly ai -> recv wukong mic data: 1600
[07-01 09:09:21:983 ty N][0x60c4f5f4][hly_ai.c:345] hly ai -> recv wukong mic data: 1600
[07-01 09:09:22:21 ty D][0x60c2b934][hly_ai.c:512] ====*******ai debug A:1 B:8 C:1 D:12 E:8********====
[07-01 09:09:22:24 ty N][0x60c4f5f4][hly_ai.c:345] hly ai -> recv wukong mic data: 1600
[07-01 09:09:22:82 ty N][0x60c4f5f4][hly_ai.c:345] hly ai -> recv wukong mic data: 1600
[07-01 09:09:22:127 ty D][0x60c14790][hly_power.c:100] power task is running...
[07-01 09:09:22:142 ty N][0x60c4f5f4][hly_ai.c:345] hly ai -> recv wukong mic data: 1600
[07-01 09:09:22:188 ty D][0x60c0fa18][hly_cht8320.c:41] cht8320 task is running...
[07-01 09:09:22:200 ty D][0x60c14ee4][hly_weather.c:61] weather task is running...
[07-01 09:09:22:200 ty D][0x60c0d828][hly_pcf8563.c:97] pcf8563 task is running...
[07-01 09:09:22:223 ty N][0x60c4f5f4][hly_ai.c:345] hly ai -> recv wukong mic data: 1600
[07-01 09:09:22:224 ty N][0x60c4f5f4][hly_ai.c:345] hly ai -> recv wukong mic data: 1600
[07-01 09:09:22:256 ty D][0x60fd742c][mqc_app.c:409] Rev MQTT:{"data":{"bizType":"EVENT","data":{"data":{"data":{"agentToken":"6c81ccfd3892ef5d65","bizConfig":{"sendData":["audio","video","text","image","file"],"revData":["text","audio","image","video","file"],"bizCode":65537}},"success":true,"errorCode":"","time":1782868161245},"type":"cloudReturnAgentToken"},"bizId":"86acadb5-78d6-4400-b58b-26a9-b49e052e"},"protocol":9000,"s":1634307,"t":1782868161}
[07-01 09:09:22:261 ty D][0x60c92b54][tuya_ai_agent.c:833] session attrs: {"tts.order.supports":[{"format":"opus","container":"","sampleRate":16000,"bitDepth":16,"channels":1,"bitRate":16000}]}
[07-01 09:09:22:266 ty D][0x60c92b54][tuya_ai_protocol.c:2605] send success, total bytes sent: 345, sequence 4
[07-01 09:09:22:267 ty D][0x60c92b54][tuya_ai_agent.c:901] create session success, 46717cb1-f0bb-4af0-b046-5d03-87401a0c
[07-01 09:09:22:267 ty D][0x60c92b54][tuya_ai_agent.c:1405] [upload event] type:0
[07-01 09:09:22:272 ty D][0x60c92b54][tuya_ai_protocol.c:2605] send success, total bytes sent: 249, sequence 5
[07-01 09:09:22:272 ty D][0x60c92b54][tuya_ai_event.c:57] send event rt:0, type:0
[07-01 09:09:22:272 ty N][0x60c92b54][tuya_ai_event.c:88] event id is 98a19489-ef51-4774-8799
[07-01 09:09:22:273 ty D][0x60c92b54][tuya_ai_input.c:375] start lazy queue sync
[07-01 09:09:22:301 ty D][0x60cb2fd8][hly_mc1081.c:352] mc1081 task is running...
[07-01 09:09:22:305 ty N][0x60c4f5f4][hly_ai.c:345] hly ai -> recv wukong mic data: 1600
[07-01 09:09:22:327 ty N][0x60c4f5f4][hly_ai.c:345] hly ai -> recv wukong mic data: 1600
[07-01 09:09:22:356 ty D][0x60c92b54][tuya_ai_agent.c:1267] [ptype 31 upload stream] len:4800 flag 1, total_len:4800, id:11
[07-01 09:09:22:379 ty D][0x60c92b54][tuya_ai_protocol.c:2605] send success, total bytes sent: 4953, sequence 6
[07-01 09:09:22:403 ty D][0x60f5f7dc][hly_display.c:285] ====================queue fetch:0 type:9
[07-01 09:09:22:406 ty N][0x60c4f5f4][hly_ai.c:345] hly ai -> recv wukong mic data: 1600
[07-01 09:09:22:424 ty N][0x60c4f5f4][hly_ai.c:345] hly ai -> recv wukong mic data: 1600
[07-01 09:09:22:462 ty D][0x60c92b54][tuya_ai_agent.c:1267] [ptype 31 upload stream] len:4800 flag 2, total_len:4800, id:11
[07-01 09:09:22:485 ty D][0x60c92b54][tuya_ai_protocol.c:2605] send success, total bytes sent: 4905, sequence 7
[07-01 09:09:22:491 ty D][0x60cb38c4][tuya_ai_agent.c:127] [====ai event cb====] type:0, sid:46717cb1-f0bb-4af0-b046-5d03-87401a0c, eid:98a19489-ef51-4774-8799
[07-01 09:09:22:526 ty N][0x60c4f5f4][hly_ai.c:345] hly ai -> recv wukong mic data: 1600
[07-01 09:09:22:547 ty N][0x60c4f5f4][hly_ai.c:345] hly ai -> recv wukong mic data: 1600
[07-01 09:09:22:568 ty D][0x60c92b54][tuya_ai_agent.c:1267] [ptype 31 upload stream] len:4800 flag 2, total_len:4800, id:11
tkl_audio.c tkl_ao_put_frame time out!![07-01 09:09:22:584 ty D][0x60c92b54][tuya_ai_protocol.c:2605] send success, total bytes sent: 4905, sequence 8
[07-01 09:09:22:600 ty N][0x60c4f5f4][hly_ai.c:345] hly ai -> recv wukong mic data: 1600
[07-01 09:09:22:616 ty N][0x60c4f5f4][hly_ai.c:345] hly ai -> recv wukong mic data: 1600
[07-01 09:09:22:666 ty D][0x60c92b54][tuya_ai_agent.c:1267] [ptype 31 upload stream] len:4800 flag 2, total_len:4800, id:11
[07-01 09:09:22:685 ty D][0x60c92b54][tuya_ai_protocol.c:2605] send success, total bytes sent: 4905, sequence 9
[07-01 09:09:22:699 ty N][0x60c4f5f4][hly_ai.c:345] hly ai -> recv wukong mic data: 1600
[07-01 09:09:22:718 ty N][0x60c4f5f4][hly_ai.c:345] hly ai -> recv wukong mic data: 1600
[07-01 09:09:22:747 ty D][0x60cb2fd8][hly_mc1081.c:352] mc1081 task is running...
[07-01 09:09:22:769 ty D][0x60c92b54][tuya_ai_agent.c:1267] [ptype 31 upload stream] len:4800 flag 2, total_len:4800, id:11
[07-01 09:09:22:794 ty D][0x60c92b54][tuya_ai_protocol.c:2605] send success, total bytes sent: 4905, sequence 10
[07-01 09:09:22:807 ty N][0x60c4f5f4][hly_ai.c:345] hly ai -> recv wukong mic data: 1600
[07-01 09:09:22:817 ty N][0x60c4f5f4][hly_ai.c:345] hly ai -> recv wukong mic data: 1600
[07-01 09:09:22:877 ty D][0x60c92b54][tuya_ai_agent.c:1267] [ptype 31 upload stream] len:4800 flag 2, total_len:4800, id:11
[07-01 09:09:22:896 ty D][0x60c92b54][tuya_ai_protocol.c:2605] send success, total bytes sent: 4905, sequence 11
[07-01 09:09:22:897 ty N][0x60c4f5f4][hly_ai.c:345] hly ai -> recv wukong mic data: 1600
[07-01 09:09:22:918 ty N][0x60c4f5f4][hly_ai.c:345] hly ai -> recv wukong mic data: 1600
[07-01 09:09:22:978 ty D][0x60c92b54][tuya_ai_agent.c:1267] [ptype 31 upload stream] len:4800 flag 2, total_len:4800, id:11
[07-01 09:09:23:2 ty D][0x60c92b54][tuya_ai_protocol.c:2605] send success, total bytes sent: 4905, sequence 12
[07-01 09:09:23:13 ty N][0x60c4f5f4][hly_ai.c:345] hly ai -> recv wukong mic data: 1600
[07-01 09:09:23:20 ty N][0x60c4f5f4][hly_ai.c:345] hly ai -> recv wukong mic data: 1600
[07-01 09:09:23:23 ty D][0x60c2b934][hly_ai.c:512] ====*******ai debug A:1 B:8 C:1 D:12 E:8********====
[07-01 09:09:23:85 ty D][0x60c92b54][tuya_ai_agent.c:1267] [ptype 31 upload stream] len:4800 flag 2, total_len:4800, id:11
[07-01 09:09:23:100 ty D][0x60c92b54][tuya_ai_protocol.c:2605] send success, total bytes sent: 4905, sequence 13
[07-01 09:09:23:101 ty N][0x60c4f5f4][hly_ai.c:345] hly ai -> recv wukong mic data: 1600
[07-01 09:09:23:117 ty N][0x60c4f5f4][hly_ai.c:345] hly ai -> recv wukong mic data: 1600
[07-01 09:09:23:140 ty D][0x60c14790][hly_power.c:100] power task is running...
[07-01 09:09:23:183 ty D][0x60c92b54][tuya_ai_agent.c:1267] [ptype 31 upload stream] len:4800 flag 2, total_len:4800, id:11
[07-01 09:09:23:189 ty D][0x60c0fa18][hly_cht8320.c:41] cht8320 task is running...
[07-01 09:09:23:199 ty D][0x60c92b54][tuya_ai_protocol.c:2605] send success, total bytes sent: 4905, sequence 14
[07-01 09:09:23:200 ty D][0x60c14ee4][hly_weather.c:61] weather task is running...
[07-01 09:09:23:201 ty D][0x60c0d828][hly_pcf8563.c:97] pcf8563 task is running...
[07-01 09:09:23:202 ty D][0x60cb2fd8][hly_mc1081.c:352] mc1081 task is running...
[07-01 09:09:23:202 ty N][0x60c4f5f4][hly_ai.c:345] hly ai -> recv wukong mic data: 1600
[07-01 09:09:23:216 ty N][0x60c4f5f4][hly_ai.c:345] hly ai -> recv wukong mic data: 1600
[07-01 09:09:23:283 ty D][0x60c92b54][tuya_ai_agent.c:1267] [ptype 31 upload stream] len:4800 flag 2, total_len:4800, id:11
[07-01 09:09:23:303 ty D][0x60c92b54][tuya_ai_protocol.c:2605] send success, total bytes sent: 4905, sequence 15
[07-01 09:09:23:307 ty N][0x60c4f5f4][hly_ai.c:345] hly ai -> recv wukong mic data: 1600
[07-01 09:09:23:317 ty N][0x60c4f5f4][hly_ai.c:345] hly ai -> recv wukong mic data: 1600
[07-01 09:09:23:383 ty N][0x60c4f5f4][hly_ai.c:345] hly ai -> recv wukong mic data: 1600
[07-01 09:09:23:387 ty D][0x60c92b54][tuya_ai_agent.c:1267] [ptype 31 upload stream] len:4800 flag 2, total_len:4800, id:11
[07-01 09:09:23:406 ty D][0x60c92b54][tuya_ai_protocol.c:2605] send success, total bytes sent: 4905, sequence 16
[07-01 09:09:23:417 ty N][0x60c4f5f4][hly_ai.c:345] hly ai -> recv wukong mic data: 1600
[07-01 09:09:23:482 ty N][0x60c4f5f4][hly_ai.c:345] hly ai -> recv wukong mic data: 1600
[07-01 09:09:23:488 ty D][0x60c92b54][tuya_ai_agent.c:1267] [ptype 31 upload stream] len:4800 flag 2, total_len:4800, id:11
[07-01 09:09:23:505 ty D][0x60c92b54][tuya_ai_protocol.c:2605] send success, total bytes sent: 4905, sequence 17
[07-01 09:09:23:518 ty N][0x60c4f5f4][hly_ai.c:345] hly ai -> recv wukong mic data: 1600
[07-01 09:09:23:547 ty D][0x60c0e998][hly_opt3001.c:32] opt3001 task is running...
[07-01 09:09:23:552 ty D][0x60f5f7dc][hly_display.c:285] ====================queue fetch:0 type:9
[07-01 09:09:23:580 ty N][0x60c4f5f4][hly_ai.c:345] hly ai -> recv wukong mic data: 1600
[07-01 09:09:23:587 ty D][0x60c92b54][tuya_ai_agent.c:1267] [ptype 31 upload stream] len:4800 flag 2, total_len:4800, id:11
[07-01 09:09:23:598 ty D][0x60c92b54][tuya_ai_protocol.c:2605] send success, total bytes sent: 4905, sequence 18
[07-01 09:09:23:618 ty N][0x60c4f5f4][hly_ai.c:345] hly ai -> recv wukong mic data: 1600
[07-01 09:09:23:646 ty D][0x60cb2fd8][hly_mc1081.c:352] mc1081 task is running...
[07-01 09:09:23:651 ty D][0x60fd88a4][tuya_devos_health.c:71] feed watchdog
[07-01 09:09:23:682 ty D][0x60c92b54][tuya_ai_agent.c:1267] [ptype 31 upload stream] len:4800 flag 2, total_len:4800, id:11
[07-01 09:09:23:702 ty D][0x60c92b54][tuya_ai_protocol.c:2605] send success, total bytes sent: 4905, sequence 19
[07-01 09:09:23:704 ty N][0x60c4f5f4][hly_ai.c:345] hly ai -> recv wukong mic data: 1600
[07-01 09:09:23:717 ty N][0x60c4f5f4][hly_ai.c:345] hly ai -> recv wukong mic data: 1600
[07-01 09:09:23:787 ty D][0x60c92b54][tuya_ai_agent.c:1267] [ptype 31 upload stream] len:4800 flag 2, total_len:4800, id:11
[07-01 09:09:23:804 ty D][0x60c92b54][tuya_ai_protocol.c:2605] send success, total bytes sent: 4905, sequence 20
[07-01 09:09:23:806 ty N][0x60c4f5f4][hly_ai.c:345] hly ai -> recv wukong mic data: 1600
[07-01 09:09:23:817 ty N][0x60c4f5f4][hly_ai.c:345] hly ai -> recv wukong mic data: 1600
[07-01 09:09:23:881 ty D][0x28050960][wukong_audio_aec_vad.c:161] ################ [vad stop] ################
[07-01 09:09:23:882 ty D][0x28050960][wukong_kws.c:235] wukong kws vad end
[07-01 09:09:23:883 ty D][0x60c4f5f4][wukong_audio_input_board.c:153] wukong audio input -> wakup flag is 1, auto vad set from 1 to 2!
[07-01 09:09:23:885 ty D][0x60c4f5f4][wukong_audio_input_board.c:112] wukong audio input -> vad stat change to flag 2
[07-01 09:09:23:887 ty D][0x60c92b54][tuya_ai_agent.c:1267] [ptype 31 upload stream] len:4800 flag 2, total_len:4800, id:11
[07-01 09:09:23:910 ty D][0x60c92b54][tuya_ai_protocol.c:2605] send success, total bytes sent: 4905, sequence 21
[07-01 09:09:23:912 ty D][0x60c4f5f4][hly_ai.c:94] ======ai re idel time:20======
[07-01 09:09:23:916 ty D][0x60c4f5f4][hly_ai.c:447] [====ai_wakeup] vad: [2]
[07-01 09:09:23:916 ty D][0x60c4f5f4][tuya_ai_input.c:288] ai input stop, state:4
[07-01 09:09:23:991 ty D][0x60c92b54][tuya_ai_input.c:344] recv queue state 4
[07-01 09:09:23:992 ty D][0x60c92b54][tuya_ai_agent.c:1267] [ptype 31 upload stream] len:3200 flag 2, total_len:3200, id:11
[07-01 09:09:23:999 ty D][0x60c92b54][tuya_ai_protocol.c:2605] send success, total bytes sent: 3305, sequence 22
[07-01 09:09:24:23 ty D][0x60c2b934][hly_ai.c:512] ====*******ai debug A:1 B:8 C:1 D:12 E:8********====
[07-01 09:09:24:65 ty D][0x60cb38c4][tuya_ai_agent.c:127] [====ai event cb====] type:5, sid:46717cb1-f0bb-4af0-b046-5d03-87401a0c, eid:98a19489-ef51-4774-8799
[07-01 09:09:24:66 ty D][0x60cb38c4][wukong_ai_agent.c:36] wukong ai agent -> recv event type: 5
[07-01 09:09:24:66 ty D][0x60cb38c4][hly_ai.c:189] ======wukong ai event type: 18
[07-01 09:09:24:92 ty D][0x60c92b54][tuya_ai_agent.c:1267] [ptype 31 upload stream] len:0 flag 3, total_len:0, id:11
[07-01 09:09:24:94 ty D][0x60c92b54][tuya_ai_protocol.c:2605] send success, total bytes sent: 105, sequence 23
[07-01 09:09:24:94 ty D][0x60c92b54][tuya_ai_agent.c:1405] [upload event] type:1
[07-01 09:09:24:96 ty D][0x60c92b54][tuya_ai_protocol.c:2605] send success, total bytes sent: 185, sequence 24
[07-01 09:09:24:97 ty D][0x60c92b54][tuya_ai_event.c:57] send event rt:0, type:1
[07-01 09:09:24:97 ty D][0x60c92b54][tuya_ai_agent.c:1405] [upload event] type:2
[07-01 09:09:24:99 ty D][0x60cb2fd8][hly_mc1081.c:352] mc1081 task is running...
[07-01 09:09:24:100 ty D][0x60c92b54][tuya_ai_protocol.c:2605] send success, total bytes sent: 185, sequence 25
[07-01 09:09:24:101 ty D][0x60c92b54][tuya_ai_event.c:57] send event rt:0, type:2
[07-01 09:09:24:117 ty D][0x60c2caac][hly_ai.c:121] =============ai stat:4=============
[07-01 09:09:24:118 ty D][0x60c2caac][hly_ai.c:94] ======ai re idel time:20======
[07-01 09:09:24:135 ty D][0x60f5f7dc][hly_display.c:285] ====================queue fetch:0 type:1
[07-01 09:09:24:140 ty D][0x60c14790][hly_power.c:100] power task is running...
[07-01 09:09:24:173 ty D][0x60cb38c4][tuya_ai_agent.c:404] ASR text: 鍙互鍚埌鎴戣璇濆悧锛?
[07-01 09:09:24:174 ty N][0x60cb38c4][wukong_ai_skills.c:57] wukong text -> ASR result: 鍙互鍚埌鎴戣璇濆悧锛?
[07-01 09:09:24:175 ty D][0x60cb38c4][hly_ai.c:189] ======wukong ai event type: 1
[07-01 09:09:24:201 ty D][0x60c14ee4][hly_weather.c:61] weather task is running...
[07-01 09:09:24:444 ty D][0x60c0fa18][hly_cht8320.c:41] cht8320 task is running...
[07-01 09:09:24:527 ty N][0x60cb38c4][wukong_ai_skills.c:26] wukong text -> skill code: {"code":"emo","skillContent":{"emotion":["NEUTRAL"],"text":["馃槓"]}}
[07-01 09:09:24:529 ty N][0x60cb38c4][wukong_ai_skills.c:43] skill emo not handled
[07-01 09:09:24:529 ty D][0x60cb38c4][hly_ai.c:189] ======wukong ai event type: 16
[07-01 09:09:24:543 ty D][0x60cb2fd8][hly_mc1081.c:352] mc1081 task is running...
tkl_audio.c tkl_ao_put_frame time out!![07-01 09:09:24:654 ty D][0x28050960][wukong_audio_aec_vad.c:150] speexdsp process time: aec->6(ms), count = 2784501
[07-01 09:09:24:656 ty D][0x28050960][wukong_audio_aec_vad.c:169] rnn_date_version: 25082101
[07-01 09:09:24:657 ty D][0x28050960][wukong_audio_aec_vad.c:170] rnn vad process time: rnn vad->2(ms), flag=2, count = 2784501
[07-01 09:09:24:887 ty D][0x60c0d828][hly_pcf8563.c:97] pcf8563 task is running...
[07-01 09:09:24:934 ty D][0x60f5f7dc][hly_display.c:285] ====================queue fetch:0 type:9
[07-01 09:09:24:987 ty D][0x60cb2fd8][hly_mc1081.c:352] mc1081 task is running...
[07-01 09:09:25:23 ty D][0x60c2b934][hly_ai.c:512] ====*******ai debug A:1 B:8 C:1 D:12 E:8********====
[07-01 09:09:25:140 ty D][0x60c14790][hly_power.c:100] power task is running...
[07-01 09:09:25:201 ty D][0x60c14ee4][hly_weather.c:61] weather task is running...
[07-01 09:09:25:240 ty N][0x60cb38c4][wukong_ai_skills.c:104] json-str {"content":"褰撶劧鍙互鍚埌鍟︼紒","reasoningContent":"","appendMode":"append","timeIndex":333,"finish":false,"tags":[]}
[07-01 09:09:25:241 ty N][0x60cb38c4][wukong_ai_skills.c:117] wukong text -> NLG eof: 0, content: 褰撶劧鍙互鍚埌鍟︼紒, time: 1623928144
[07-01 09:09:25:241 ty D][0x60cb38c4][hly_ai.c:189] ======wukong ai event type: 11
[ONBOARD_MIC] data_size: 256000(Bytes), 62KB/s
[RAW_READ] data_size: 128000(Bytes), 31KB/s
[RAW_WRITE] data_size: 0(Bytes), 0KB/s
[ONBOARD_SPK] data_size: 0(Bytes), 0KB/s
[WIFI_TX] data_size: 128000(Bytes), 31KB/s
[WIFI_RX] data_size: 252160(Bytes), 61KB/s
[07-01 09:09:25:432 ty D][0x60cb2fd8][hly_mc1081.c:352] mc1081 task is running...
[07-01 09:09:25:688 ty D][0x60cb38c4][wukong_ai_agent.c:71] wukong ai agent -> audio codec type: 111
[07-01 09:09:25:688 ty D][0x60cb38c4][tuya_ai_output.c:266] [output] start. status:1
[07-01 09:09:25:688 ty D][0x60cb38c4][tuya_ai_output.c:374] [output] stop. force:1 status:1
[07-01 09:09:25:689 ty D][0x60cb38c4][wukong_ai_agent.c:36] wukong ai agent -> recv event type: 2
[07-01 09:09:25:689 ty D][0x60cb38c4][wukong_audio_player.c:251] wukong audio player -> tts stream stop
[07-01 09:09:25:689 ty D][0x60cb38c4][hly_ai.c:189] ======wukong ai event type: 6
[07-01 09:09:25:690 ty D][0x60cb38c4][hly_ai.c:94] ======ai re idel time:10======
[07-01 09:09:25:691 ty D][0x60cb38c4][wukong_ai_agent.c:36] wukong ai agent -> recv event type: 0
[07-01 09:09:25:691 ty D][0x60cb38c4][wukong_audio_player.c:236] wukong audio player -> tts stream start
[07-01 09:09:25:692 ty D][0x60cb38c4][hly_ai.c:189] ======wukong ai event type: 3
[07-01 09:09:25:692 ty D][0x60cb38c4][svc_ai_player.c:719] _is_player_valid:1 player->state=1
[07-01 09:09:25:692 ty E][0x60cb38c4][wukong_audio_player.c:240] ret:-2
[07-01 09:09:25:693 ty D][0x60cb38c4][hly_ai.c:189] ======wukong ai event type: 4
[07-01 09:09:25:694 ty D][0x60cb38c4][hly_ai.c:94] ======ai re idel time:10======
[07-01 09:09:25:696 ty D][0x60c2caac][hly_ai.c:121] =============ai stat:5=============
[07-01 09:09:25:698 ty D][0x60cae4f0][wukong_audio_player.c:244] wukong audio player -> tts stream data 400
[07-01 09:09:25:699 ty D][0x60cae4f0][hly_ai.c:189] ======wukong ai event type: 5
[07-01 09:09:25:700 ty D][0x60c2caac][hly_ai.c:94] ======ai re idel time:10======
[07-01 09:09:25:700 ty D][0x60f5f7dc][hly_display.c:285] ====================queue fetch:0 type:1
[07-01 09:09:25:700 ty D][0x60cae4f0][hly_ai.c:94] ======ai re idel time:10======
[07-01 09:09:25:757 ty D][0x60cae4f0][wukong_audio_player.c:244] wukong audio player -> tts stream data 480
[07-01 09:09:25:759 ty D][0x60cae4f0][hly_ai.c:189] ======wukong ai event type: 5
[07-01 09:09:25:759 ty D][0x60cae4f0][hly_ai.c:94] ======ai re idel time:10======
[07-01 09:09:25:777 ty D][0x60c0fa18][hly_cht8320.c:41] cht8320 task is running...
[07-01 09:09:25:780 ty D][0x60c0e998][hly_opt3001.c:32] opt3001 task is running...
[07-01 09:09:25:832 ty D][0x60cae4f0][wukong_audio_player.c:244] wukong audio player -> tts stream data 400
[07-01 09:09:25:832 ty D][0x60cae4f0][hly_ai.c:189] ======wukong ai event type: 5
[07-01 09:09:25:832 ty D][0x60cae4f0][hly_ai.c:94] ======ai re idel time:10======
[07-01 09:09:25:877 ty D][0x60cb2fd8][hly_mc1081.c:352] mc1081 task is running...
[07-01 09:09:25:925 ty D][0x60cae4f0][wukong_audio_player.c:244] wukong audio player -> tts stream data 480
[07-01 09:09:25:925 ty D][0x60cae4f0][hly_ai.c:189] ======wukong ai event type: 5
[07-01 09:09:25:925 ty D][0x60cae4f0][hly_ai.c:94] ======ai re idel time:10======
[07-01 09:09:26:24 ty D][0x60c2b934][hly_ai.c:512] ====*******ai debug A:1 B:8 C:1 D:12 E:8********====
[07-01 09:09:26:140 ty D][0x60c14790][hly_power.c:100] power task is running...
[07-01 09:09:26:201 ty D][0x60c14ee4][hly_weather.c:61] weather task is running...
[07-01 09:09:26:222 ty D][0x60c0d828][hly_pcf8563.c:97] pcf8563 task is running...
[07-01 09:09:26:241 ty D][0x60f5f7dc][hly_display.c:285] ====================queue fetch:0 type:9
[07-01 09:09:26:268 ty D][0x60cae4f0][wukong_audio_player.c:244] wukong audio player -> tts stream data 400
[07-01 09:09:26:268 ty D][0x60cae4f0][hly_ai.c:189] ======wukong ai event type: 5
[07-01 09:09:26:269 ty D][0x60cae4f0][hly_ai.c:94] ======ai re idel time:10======
[07-01 09:09:26:274 ty D][0x60c14808][hly_soc.c:127] rssi task is running...
error_cnt 0, ret 0, tmp_rssi -35, link_status->state 3
error_cnt 0, ret 0, tmp_rssi -35, link_status->state 3
[07-01 09:09:26:290 ty D][0x60cae4f0][wukong_audio_player.c:244] wukong audio player -> tts stream data 480
[07-01 09:09:26:292 ty D][0x60cae4f0][hly_ai.c:189] ======wukong ai event type: 5
[07-01 09:09:26:292 ty D][0x60cae4f0][hly_ai.c:94] ======ai re idel time:10======
[07-01 09:09:26:294 ty D][0x60cae4f0][wukong_audio_player.c:244] wukong audio player -> tts stream data 560
[07-01 09:09:26:294 ty D][0x60cae4f0][hly_ai.c:189] ======wukong ai event type: 5
[07-01 09:09:26:294 ty D][0x60cae4f0][hly_ai.c:94] ======ai re idel time:10======
error_cnt 0, ret 0, tmp_rssi -35, link_status->state 3
[07-01 09:09:26:306 ty D][0x60cae4f0][wukong_audio_player.c:244] wukong audio player -> tts stream data 160
[07-01 09:09:26:306 ty D][0x60cae4f0][hly_ai.c:189] ======wukong ai event type: 5
[07-01 09:09:26:306 ty D][0x60cae4f0][hly_ai.c:94] ======ai re idel time:10======
error_cnt 0, ret 0, tmp_rssi -35, link_status->state 3
error_cnt 0, ret 0, tmp_rssi -35, link_status->state 3
[07-01 09:09:26:322 ty D][0x60cb2fd8][hly_mc1081.c:352] mc1081 task is running...
[07-01 09:09:26:330 ty D][0x60c14808][tuya_wifi_link.c:898] Get Rssi:-35
[07-01 09:09:26:330 ty D][0x60c14808][tuya_devos_utils.c:700] Get Rssi:-35
[07-01 09:09:26:337 ty D][0x60cae4f0][wukong_audio_player.c:244] wukong audio player -> tts stream data 80
[07-01 09:09:26:338 ty D][0x60cae4f0][hly_ai.c:189] ======wukong ai event type: 5
[07-01 09:09:26:340 ty D][0x60cae4f0][hly_ai.c:94] ======ai re idel time:10======
[07-01 09:09:26:340 ty N][0x60cb38c4][wukong_ai_skills.c:104] json-str {"content":"鍒氬垰宸茬粡甯綘鎶婃櫤鑳借姳鐩嗙殑闊抽噺鎭㈠鍒?00%浜嗭紝","reasoningContent":"","appendMode":"append","timeIndex":7866,"finish":false,"tags":[]}
[07-01 09:09:26:341 ty N][0x60cb38c4][wukong_ai_skills.c:117] wukong text -> NLG eof: 0, content: 鍒氬垰宸茬粡甯綘鎶婃櫤鑳借姳鐩嗙殑闊抽噺鎭㈠鍒?00%浜嗭紝, time: 1623928144
[07-01 09:09:26:341 ty D][0x60cb38c4][hly_ai.c:189] ======wukong ai event type: 11
[07-01 09:09:26:351 ty D][0x60cae4f0][wukong_audio_player.c:244] wukong audio player -> tts stream data 400
[07-01 09:09:26:351 ty D][0x60cae4f0][hly_ai.c:189] ======wukong ai event type: 5
[07-01 09:09:26:351 ty D][0x60cae4f0][hly_ai.c:94] ======ai re idel time:10======
[07-01 09:09:26:373 ty D][0x60cae4f0][wukong_audio_player.c:244] wukong audio player -> tts stream data 480
[07-01 09:09:26:374 ty D][0x60cae4f0][hly_ai.c:189] ======wukong ai event type: 5
[07-01 09:09:26:375 ty D][0x60cae4f0][hly_ai.c:94] ======ai re idel time:10======
[07-01 09:09:26:388 ty D][0x60cae4f0][wukong_audio_player.c:244] wukong audio player -> tts stream data 400
[07-01 09:09:26:388 ty D][0x60cae4f0][hly_ai.c:189] ======wukong ai event type: 5
[07-01 09:09:26:389 ty D][0x60cae4f0][hly_ai.c:94] ======ai re idel time:10======
[07-01 09:09:26:404 ty D][0x60cae4f0][wukong_audio_player.c:244] wukong audio player -> tts stream data 480
[07-01 09:09:26:405 ty D][0x60cae4f0][hly_ai.c:189] ======wukong ai event type: 5
[07-01 09:09:26:405 ty D][0x60cae4f0][hly_ai.c:94] ======ai re idel time:10======
[07-01 09:09:26:417 ty D][0x60cae4f0][wukong_audio_player.c:244] wukong audio player -> tts stream data 400
[07-01 09:09:26:418 ty D][0x60cae4f0][hly_ai.c:189] ======wukong ai event type: 5
[07-01 09:09:26:419 ty D][0x60cae4f0][hly_ai.c:94] ======ai re idel time:10======
[07-01 09:09:26:451 ty D][0x60cae4f0][wukong_audio_player.c:244] wukong audio player -> tts stream data 880
[07-01 09:09:26:452 ty D][0x60cae4f0][hly_ai.c:189] ======wukong ai event type: 5
[07-01 09:09:26:454 ty D][0x60cae4f0][hly_ai.c:94] ======ai re idel time:10======
[07-01 09:09:26:458 ty D][0x60cae4f0][wukong_audio_player.c:244] wukong audio player -> tts stream data 400
[07-01 09:09:26:458 ty D][0x60cae4f0][hly_ai.c:189] ======wukong ai event type: 5
[07-01 09:09:26:459 ty D][0x60cae4f0][hly_ai.c:94] ======ai re idel time:10======
[07-01 09:09:26:480 ty D][0x60cae4f0][wukong_audio_player.c:244] wukong audio player -> tts stream data 480
[07-01 09:09:26:480 ty D][0x60cae4f0][hly_ai.c:189] ======wukong ai event type: 5
[07-01 09:09:26:480 ty D][0x60cae4f0][hly_ai.c:94] ======ai re idel time:10======
[07-01 09:09:26:542 ty D][0x60cae4f0][wukong_audio_player.c:244] wukong audio player -> tts stream data 400
[07-01 09:09:26:542 ty D][0x60cae4f0][hly_ai.c:189] ======wukong ai event type: 5
[07-01 09:09:26:543 ty D][0x60cae4f0][hly_ai.c:94] ======ai re idel time:10======
[07-01 09:09:26:644 ty D][0x60cae4f0][wukong_audio_player.c:244] wukong audio player -> tts stream data 560
[07-01 09:09:26:644 ty D][0x60cae4f0][hly_ai.c:189] ======wukong ai event type: 5
[07-01 09:09:26:644 ty D][0x60cae4f0][hly_ai.c:94] ======ai re idel time:10======
[07-01 09:09:26:666 ty D][0x60cae4f0][wukong_audio_player.c:244] wukong audio player -> tts stream data 320
[07-01 09:09:26:666 ty D][0x60cae4f0][hly_ai.c:189] ======wukong ai event type: 5
[07-01 09:09:26:666 ty D][0x60cae4f0][hly_ai.c:94] ======ai re idel time:10======
tkl_audio.c tkl_ao_put_frame time out!![07-01 09:09:26:676 ty E][0x60c7d438][decoder_mp3.c:134] MP3Decode failed, ret=-6, offset=868, in_len=2796
[07-01 09:09:26:738 ty D][0x60cae4f0][wukong_audio_player.c:244] wukong audio player -> tts stream data 560
[07-01 09:09:26:738 ty D][0x60cae4f0][hly_ai.c:189] ======wukong ai event type: 5
[07-01 09:09:26:738 ty D][0x60cae4f0][hly_ai.c:94] ======ai re idel time:10======
[07-01 09:09:26:767 ty D][0x60cb2fd8][hly_mc1081.c:352] mc1081 task is running...
[07-01 09:09:26:840 ty D][0x60cae4f0][wukong_audio_player.c:244] wukong audio player -> tts stream data 400
[07-01 09:09:26:840 ty D][0x60cae4f0][hly_ai.c:189] ======wukong ai event type: 5
[07-01 09:09:26:841 ty D][0x60cae4f0][hly_ai.c:94] ======ai re idel time:10======
[07-01 09:09:26:883 ty D][0x60cae4f0][wukong_audio_player.c:244] wukong audio player -> tts stream data 480
[07-01 09:09:26:883 ty D][0x60cae4f0][hly_ai.c:189] ======wukong ai event type: 5
[07-01 09:09:26:883 ty D][0x60cae4f0][hly_ai.c:94] ======ai re idel time:10======
[07-01 09:09:26:955 ty D][0x60cae4f0][wukong_audio_player.c:244] wukong audio player -> tts stream data 400
[07-01 09:09:26:956 ty D][0x60cae4f0][hly_ai.c:189] ======wukong ai event type: 5
[07-01 09:09:26:957 ty D][0x60cae4f0][hly_ai.c:94] ======ai re idel time:10======
[07-01 09:09:27:25 ty D][0x60c2b934][hly_ai.c:512] ====*******ai debug A:1 B:8 C:1 D:12 E:8********====
[07-01 09:09:27:90 ty D][0x60cae4f0][wukong_audio_player.c:244] wukong audio player -> tts stream data 480
[07-01 09:09:27:90 ty D][0x60cae4f0][hly_ai.c:189] ======wukong ai event type: 5
[07-01 09:09:27:90 ty D][0x60cae4f0][hly_ai.c:94] ======ai re idel time:10======
[07-01 09:09:27:111 ty D][0x60c0fa18][hly_cht8320.c:41] cht8320 task is running...
[07-01 09:09:27:113 ty D][0x60cae4f0][wukong_audio_player.c:244] wukong audio player -> tts stream data 400
[07-01 09:09:27:113 ty D][0x60cae4f0][hly_ai.c:189] ======wukong ai event type: 5
[07-01 09:09:27:113 ty D][0x60cae4f0][hly_ai.c:94] ======ai re idel time:10======
[07-01 09:09:27:140 ty D][0x60c14790][hly_power.c:100] power task is running...
[07-01 09:09:27:175 ty D][0x60cae4f0][wukong_audio_player.c:244] wukong audio player -> tts stream data 400
[07-01 09:09:27:175 ty D][0x60cae4f0][hly_ai.c:189] ======wukong ai event type: 5
[07-01 09:09:27:175 ty D][0x60cae4f0][hly_ai.c:94] ======ai re idel time:10======
[07-01 09:09:27:201 ty D][0x60c14ee4][hly_weather.c:61] weather task is running...
[07-01 09:09:27:214 ty D][0x60cb2fd8][hly_mc1081.c:352] mc1081 task is running...
[07-01 09:09:27:278 ty D][0x60cae4f0][wukong_audio_player.c:244] wukong audio player -> tts stream data 480
[07-01 09:09:27:278 ty D][0x60cae4f0][hly_ai.c:189] ======wukong ai event type: 5
[07-01 09:09:27:278 ty D][0x60cae4f0][hly_ai.c:94] ======ai re idel time:10======
[07-01 09:09:27:281 ty D][0x60cae4f0][wukong_audio_player.c:244] wukong audio player -> tts stream data 560
[07-01 09:09:27:281 ty D][0x60cae4f0][hly_ai.c:189] ======wukong ai event type: 5
[07-01 09:09:27:281 ty D][0x60cae4f0][hly_ai.c:94] ======ai re idel time:10======
[07-01 09:09:27:303 ty D][0x60cae4f0][wukong_audio_player.c:244] wukong audio player -> tts stream data 160
[07-01 09:09:27:303 ty D][0x60cae4f0][hly_ai.c:189] ======wukong ai event type: 5
[07-01 09:09:27:303 ty D][0x60cae4f0][hly_ai.c:94] ======ai re idel time:10======
[07-01 09:09:27:465 ty D][0x60cae4f0][wukong_audio_player.c:244] wukong audio player -> tts stream data 80
[07-01 09:09:27:465 ty D][0x60cae4f0][hly_ai.c:189] ======wukong ai event type: 5
[07-01 09:09:27:465 ty D][0x60cae4f0][hly_ai.c:94] ======ai re idel time:10======
[07-01 09:09:27:560 ty D][0x60c0d828][hly_pcf8563.c:97] pcf8563 task is running...
[07-01 09:09:27:615 ty D][0x60f5f7dc][hly_display.c:285] ====================queue fetch:0 type:9
[07-01 09:09:27:659 ty D][0x60cb2fd8][hly_mc1081.c:352] mc1081 task is running...
[07-01 09:09:27:910 ty N][0x60cb38c4][wukong_ai_skills.c:104] json-str {"content":"鐜板湪璇煶鍔熻兘涓€鍒囨甯稿摝~","reasoningContent":"","appendMode":"append","timeIndex":4000,"finish":false,"tags":[]}
[07-01 09:09:27:911 ty N][0x60cb38c4][wukong_ai_skills.c:117] wukong text -> NLG eof: 0, content: 鐜板湪璇煶鍔熻兘涓€鍒囨甯稿摝~, time: 1623928144
[07-01 09:09:27:911 ty D][0x60cb38c4][hly_ai.c:189] ======wukong ai event type: 11
[07-01 09:09:27:927 ty D][0x60cae4f0][wukong_audio_player.c:244] wukong audio player -> tts stream data 400
[07-01 09:09:27:927 ty D][0x60cae4f0][hly_ai.c:189] ======wukong ai event type: 5
[07-01 09:09:27:927 ty D][0x60cae4f0][hly_ai.c:94] ======ai re idel time:10======
[07-01 09:09:27:989 ty D][0x60cae4f0][wukong_audio_player.c:244] wukong audio player -> tts stream data 480
[07-01 09:09:27:989 ty D][0x60cae4f0][hly_ai.c:189] ======wukong ai event type: 5
[07-01 09:09:27:989 ty D][0x60cae4f0][hly_ai.c:94] ======ai re idel time:10======
[07-01 09:09:28:3 ty D][0x60c0e998][hly_opt3001.c:32] opt3001 task is running...
[07-01 09:09:28:25 ty D][0x60c2b934][hly_ai.c:512] ====*******ai debug A:1 B:8 C:1 D:12 E:8********====
[07-01 09:09:28:51 ty D][0x60cae4f0][wukong_audio_player.c:244] wukong audio player -> tts stream data 400
[07-01 09:09:28:51 ty D][0x60cae4f0][hly_ai.c:189] ======wukong ai event type: 5
[07-01 09:09:28:51 ty D][0x60cae4f0][hly_ai.c:94] ======ai re idel time:10======
[07-01 09:09:28:93 ty D][0x60cae4f0][wukong_audio_player.c:244] wukong audio player -> tts stream data 480
[07-01 09:09:28:93 ty D][0x60cae4f0][hly_ai.c:189] ======wukong ai event type: 5
[07-01 09:09:28:93 ty D][0x60cae4f0][hly_ai.c:94] ======ai re idel time:10======
[07-01 09:09:28:103 ty D][0x60cb2fd8][hly_mc1081.c:352] mc1081 task is running...
[07-01 09:09:28:140 ty D][0x60c14790][hly_power.c:100] power task is running...
[07-01 09:09:28:201 ty D][0x60c14ee4][hly_weather.c:61] weather task is running...
[07-01 09:09:28:226 ty D][0x60cae4f0][wukong_audio_player.c:244] wukong audio player -> tts stream data 400
[07-01 09:09:28:226 ty D][0x60cae4f0][hly_ai.c:189] ======wukong ai event type: 5
[07-01 09:09:28:226 ty D][0x60cae4f0][hly_ai.c:94] ======ai re idel time:10======
[07-01 09:09:28:267 ty D][0x60cae4f0][wukong_audio_player.c:244] wukong audio player -> tts stream data 480
[07-01 09:09:28:267 ty D][0x60cae4f0][hly_ai.c:189] ======wukong ai event type: 5
[07-01 09:09:28:267 ty D][0x60cae4f0][hly_ai.c:94] ======ai re idel time:10======
[07-01 09:09:28:339 ty D][0x60cae4f0][wukong_audio_player.c:244] wukong audio player -> tts stream data 400
[07-01 09:09:28:340 ty D][0x60cae4f0][hly_ai.c:189] ======wukong ai event type: 5
[07-01 09:09:28:340 ty D][0x60cae4f0][hly_ai.c:94] ======ai re idel time:10======
[07-01 09:09:28:392 ty D][0x60cae4f0][wukong_audio_player.c:244] wukong audio player -> tts stream data 400
[07-01 09:09:28:392 ty D][0x60cae4f0][hly_ai.c:189] ======wukong ai event type: 5
[07-01 09:09:28:392 ty D][0x60cae4f0][hly_ai.c:94] ======ai re idel time:10======
[07-01 09:09:28:444 ty D][0x60cae4f0][wukong_audio_player.c:244] wukong audio player -> tts stream data 400
[07-01 09:09:28:444 ty D][0x60cae4f0][hly_ai.c:189] ======wukong ai event type: 5
[07-01 09:09:28:444 ty D][0x60cae4f0][hly_ai.c:94] ======ai re idel time:10======
[07-01 09:09:28:450 ty D][0x60c0fa18][hly_cht8320.c:41] cht8320 task is running...
[07-01 09:09:28:455 ty D][0x60cae4f0][wukong_audio_player.c:244] wukong audio player -> tts stream data 80
[07-01 09:09:28:455 ty D][0x60cae4f0][hly_ai.c:189] ======wukong ai event type: 5
[07-01 09:09:28:455 ty D][0x60cae4f0][hly_ai.c:94] ======ai re idel time:10======
[07-01 09:09:28:476 ty D][0x60cae4f0][wukong_audio_player.c:244] wukong audio player -> tts stream data 560
[07-01 09:09:28:476 ty D][0x60cae4f0][hly_ai.c:189] ======wukong ai event type: 5
[07-01 09:09:28:476 ty D][0x60cae4f0][hly_ai.c:94] ======ai re idel time:10======
[07-01 09:09:28:488 ty D][0x60cae4f0][wukong_audio_player.c:244] wukong audio player -> tts stream data 80
[07-01 09:09:28:488 ty D][0x60cae4f0][hly_ai.c:189] ======wukong ai event type: 5
[07-01 09:09:28:488 ty D][0x60cae4f0][hly_ai.c:94] ======ai re idel time:10======
[07-01 09:09:28:552 ty D][0x60cb2fd8][hly_mc1081.c:352] mc1081 task is running...
[07-01 09:09:28:560 ty D][0x60cae4f0][wukong_audio_player.c:244] wukong audio player -> tts stream data 80
[07-01 09:09:28:560 ty D][0x60cae4f0][hly_ai.c:189] ======wukong ai event type: 5
[07-01 09:09:28:560 ty D][0x60cae4f0][hly_ai.c:94] ======ai re idel time:10======
tkl_audio.c tkl_ao_put_frame time out!![07-01 09:09:28:702 ty E][0x60c7d438][svc_ai_player.c:263] ai player FG datasink read error: -2
[07-01 09:09:28:702 ty D][0x60c7d438][svc_ai_player.c:131] stop player FG
[07-01 09:09:28:702 ty D][0x60c7d438][svc_ai_playlist.c:54] playlist player state 0 index 0 count 0 loop 0 single 0
[07-01 09:09:28:703 ty D][0x60c7d438][wukong_audio_player.c:61] wukong audio player -> player tts event: 0
[07-01 09:09:28:703 ty D][0x60c7d438][wukong_audio_player.c:68] wukong audio player -> stop event
[07-01 09:09:28:703 ty D][0x60c7d438][hly_ai.c:189] ======wukong ai event type: 30
[07-01 09:09:28:704 ty D][0x60c2caac][hly_ai.c:121] =============ai stat:2=============
[07-01 09:09:28:706 ty D][0x60c2caac][hly_ai.c:94] ======ai re idel time:20======
[07-01 09:09:28:734 ty D][0x60f5f7dc][hly_display.c:285] ====================queue fetch:0 type:0
[07-01 09:09:28:736 ty D][0x60f5f7dc][hly_display.c:285] ====================queue fetch:0 type:1
[07-01 09:09:28:901 ty D][0x60c0d828][hly_pcf8563.c:97] pcf8563 task is running...
[07-01 09:09:28:919 ty D][0x60f5f7dc][hly_display.c:285] ====================queue fetch:0 type:9
[07-01 09:09:29:1 ty D][0x60cb2fd8][hly_mc1081.c:352] mc1081 task is running...
[07-01 09:09:29:26 ty D][0x60c2b934][hly_ai.c:512] ====*******ai debug A:1 B:8 C:1 D:12 E:8********====
[07-01 09:09:29:140 ty D][0x60c14790][hly_power.c:100] power task is running...
[07-01 09:09:29:201 ty D][0x60c14ee4][hly_weather.c:61] weather task is running...
[ONBOARD_MIC] data_size: 256000(Bytes), 62KB/s
[RAW_READ] data_size: 128000(Bytes), 31KB/s
[RAW_WRITE] data_size: 0(Bytes), 0KB/s
[ONBOARD_SPK] data_size: 0(Bytes), 0KB/s
[WIFI_TX] data_size: 128000(Bytes), 31KB/s
[WIFI_RX] data_size: 215040(Bytes), 52KB/s
[07-01 09:09:29:445 ty D][0x60cb2fd8][hly_mc1081.c:352] mc1081 task is running...
[07-01 09:09:29:610 ty D][0x60c092b0][hly_ai_fl.c:131] =====tp key type:0
[07-01 09:09:29:610 ty D][0x60c092b0][hly_ai.c:640] ==============hly_ai_shutup publish==============
[07-01 09:09:29:612 ty D][0x60c2c1f0][hly_ai.c:486] =============ai sem:2=============
[07-01 09:09:29:612 ty D][0x60c2c1f0][hly_ai.c:489] =============ai sem:3=============
[07-01 09:09:29:615 ty D][0x60c2c1f0][hly_ai.c:492] =============ai sem:4=============
[07-01 09:09:29:618 ty D][0x60c2c1f0][tuya_ai_agent.c:1405] [upload event] type:4
[07-01 09:09:29:621 ty D][0x60c2c1f0][tuya_ai_protocol.c:2605] send success, total bytes sent: 169, sequence 26
[07-01 09:09:29:622 ty D][0x60c2c1f0][tuya_ai_event.c:57] send event rt:0, type:4
[07-01 09:09:29:622 ty D][0x60c2c1f0][hly_ai.c:495] =============ai sem:5=============
[07-01 09:09:29:623 ty D][0x60c2c1f0][hly_ai.c:499] =============ai sem:5=============
[07-01 09:09:29:623 ty D][0x60c2c1f0][hly_ai.c:704] =====hly ai play alert:4
[MEM DBG] MEM_Deallocate MEM_DEBUG_DOG_TAG err 0x60c01fac,size=4148
[MEM DBG] mem 0x60c01fac might be freed yet
[07-01 09:09:29:624 ty D][0x60c2c1f0][hly_ai.c:743] =====hly ai load alert:/mp3/exit.mp3
[07-01 09:09:29:624 ty D][0x60c2caac][hly_ai.c:121] =============ai stat:1=============
[07-01 09:09:29:626 ty D][0x60c2caac][hly_ai.c:94] ======ai re idel time:0======
[07-01 09:09:29:627 ty N][0x60c2caac][wukong_audio_input_board.c:337] wukong audio input -> mode is 1, wakeup set to 0, vad flag is 2!
tkl_fopen file success, path:/mp3/exit.mp3 fd = 1
[07-01 09:09:29:643 ty D][0x60f5f7dc][hly_display.c:285] ====================queue fetch:0 type:1
[07-01 09:09:29:646 ty D][0x60c2c1f0][wukong_audio_player.c:222] wukong audio player -> player tts mem data len 4140
[07-01 09:09:29:647 ty D][0x60c7d438][svc_ai_player.c:519] ai player FG cmd START
[07-01 09:09:29:647 ty D][0x60c7d438][svc_ai_player.c:104] start player FG value=null
[07-01 09:09:29:649 ty D][0x60c7d438][wukong_audio_player.c:61] wukong audio player -> player tts event: 1
[07-01 09:09:29:650 ty D][0x60c7d438][wukong_audio_player.c:82] wukong audio player -> playing start event
[07-01 09:09:29:650 ty D][0x60c7d438][hly_ai.c:189] ======wukong ai event type: 20
voice_write_send_msg, 127, send message: 1 fail, ret: -1
bk_voice_write_start, 571, send message: VOICE_WRITE_START fail
tkl_ao_start, 765, voice read start fail
[07-01 09:09:29:659 ty D][0x60c2c1f0][hly_ai.c:503] =============ai sem:6=============
[07-01 09:09:29:659 ty D][0x60c2c1f0][hly_ai.c:483] =============ai sem:1=============
[07-01 09:09:29:662 ty D][0x60c7d438][decoder_mp3.c:47] ID3 tag_size n/a
[07-01 09:09:29:789 ty D][0x60c0fa18][hly_cht8320.c:41] cht8320 task is running...
[07-01 09:09:29:892 ty D][0x60cb2fd8][hly_mc1081.c:352] mc1081 task is running...
[07-01 09:09:30:26 ty D][0x60c2b934][hly_ai.c:512] ====*******ai debug A:1 B:8 C:1 D:12 E:5********====
[07-01 09:09:30:140 ty D][0x60c14790][hly_power.c:100] power task is running...
[07-01 09:09:30:201 ty D][0x60c14ee4][hly_weather.c:61] weather task is running...
[07-01 09:09:30:239 ty D][0x60c0e998][hly_opt3001.c:32] opt3001 task is running...
[07-01 09:09:30:240 ty D][0x60c0d828][hly_pcf8563.c:97] pcf8563 task is running...
[07-01 09:09:30:247 ty D][0x60f5f7dc][hly_display.c:285] ====================queue fetch:0 type:9
[07-01 09:09:30:338 ty D][0x60cb2fd8][hly_mc1081.c:352] mc1081 task is running...
[07-01 09:09:30:783 ty D][0x60cb2fd8][hly_mc1081.c:352] mc1081 task is running...
[07-01 09:09:31:26 ty D][0x60c2b934][hly_ai.c:512] ====*******ai debug A:1 B:8 C:1 D:12 E:5********====
[07-01 09:09:31:126 ty D][0x60c0fa18][hly_cht8320.c:41] cht8320 task is running...
[07-01 09:09:31:140 ty D][0x60c14790][hly_power.c:100] power task is running...
[07-01 09:09:31:201 ty D][0x60c14ee4][hly_weather.c:61] weather task is running...
[07-01 09:09:31:226 ty D][0x60cb2fd8][hly_mc1081.c:352] mc1081 task is running...
[07-01 09:09:31:330 ty D][0x60c14808][hly_soc.c:127] rssi task is running...
error_cnt 0, ret 0, tmp_rssi -35, link_status->state 3
error_cnt 0, ret 0, tmp_rssi -35, link_status->state 3
error_cnt 0, ret 0, tmp_rssi -35, link_status->state 3
error_cnt 0, ret 0, tmp_rssi -35, link_status->state 3
error_cnt 0, ret 0, tmp_rssi -35, link_status->state 3
[07-01 09:09:31:386 ty D][0x60c14808][tuya_wifi_link.c:898] Get Rssi:-35
[07-01 09:09:31:386 ty D][0x60c14808][tuya_devos_utils.c:700] Get Rssi:-35
[07-01 09:09:31:571 ty D][0x60c0d828][hly_pcf8563.c:97] pcf8563 task is running...
[07-01 09:09:31:602 ty D][0x60f5f7dc][hly_display.c:285] ====================queue fetch:0 type:9
[07-01 09:09:31:671 ty D][0x60cb2fd8][hly_mc1081.c:352] mc1081 task is running...
tkl_audio.c tkl_ao_put_frame time out!!
[07-01 09:09:32:26 ty D][0x60c2b934][hly_ai.c:512] ====*******ai debug A:1 B:8 C:1 D:12 E:5********====
[07-01 09:09:32:117 ty D][0x60cb2fd8][hly_mc1081.c:352] mc1081 task is running...
[07-01 09:09:32:140 ty D][0x60c14790][hly_power.c:100] power task is running...
[07-01 09:09:32:201 ty D][0x60c14ee4][hly_weather.c:61] weather task is running...
[07-01 09:09:32:462 ty D][0x60c0fa18][hly_cht8320.c:41] cht8320 task is running...
[07-01 09:09:32:464 ty D][0x60c0e998][hly_opt3001.c:32] opt3001 task is running...
[07-01 09:09:32:562 ty D][0x60cb2fd8][hly_mc1081.c:352] mc1081 task is running...
[07-01 09:09:32:907 ty D][0x60c0d828][hly_pcf8563.c:97] pcf8563 task is running...
[07-01 09:09:32:910 ty D][0x60f5f7dc][hly_display.c:285] ====================queue fetch:0 type:9
[07-01 09:09:33:6 ty D][0x60cb2fd8][hly_mc1081.c:352] mc1081 task is running...
[07-01 09:09:33:26 ty D][0x60c2b934][hly_ai.c:512] ====*******ai debug A:1 B:8 C:1 D:12 E:5********====
[07-01 09:09:33:140 ty D][0x60c14790][hly_power.c:100] power task is running...
[07-01 09:09:33:201 ty D][0x60c14ee4][hly_weather.c:61] weather task is running...
[ONBOARD_MIC] data_size: 256000(Bytes), 62KB/s
[RAW_READ] data_size: 128000(Bytes), 31KB/s
[RAW_WRITE] data_size: 0(Bytes), 0KB/s
[ONBOARD_SPK] data_size: 0(Bytes), 0KB/s
[WIFI_TX] data_size: 128000(Bytes), 31KB/s
[WIFI_RX] data_size: 232960(Bytes), 56KB/s
[07-01 09:09:33:452 ty D][0x60cb2fd8][hly_mc1081.c:352] mc1081 task is running...
[07-01 09:09:33:651 ty D][0x60fd88a4][tuya_devos_health.c:71] feed watchdog
tkl_audio.c tkl_ao_put_frame time out!!
[07-01 09:09:33:798 ty D][0x60c0fa18][hly_cht8320.c:41] cht8320 task is running...
[07-01 09:09:33:898 ty D][0x60cb2fd8][hly_mc1081.c:352] mc1081 task is running...
[07-01 09:09:34:26 ty D][0x60c2b934][hly_ai.c:512] ====*******ai debug A:1 B:8 C:1 D:12 E:5********====
[07-01 09:09:34:140 ty D][0x60c14790][hly_power.c:100] power task is running...
[07-01 09:09:34:201 ty D][0x60c14ee4][hly_weather.c:61] weather task is running...
[07-01 09:09:34:244 ty D][0x60c0d828][hly_pcf8563.c:97] pcf8563 task is running...
[07-01 09:09:34:267 ty D][0x60f5f7dc][hly_display.c:285] ====================queue fetch:0 type:9
[07-01 09:09:34:343 ty D][0x60cb2fd8][hly_mc1081.c:352] mc1081 task is running...
日志中可以看到tkl_ao_put_frame已经超时输出:tkl_audio.c tkl_ao_put_frame time out!!
后续播放mp3的时候tkl_ao_start函数也开始出现报错日志:tkl_ao_start, 765, voice read start fail
详细:
Code: Select all
[07-01 09:09:29:624 ty D][0x60c2c1f0][hly_ai.c:743] =====hly ai load alert:/mp3/exit.mp3
[07-01 09:09:29:624 ty D][0x60c2caac][hly_ai.c:121] =============ai stat:1=============
[07-01 09:09:29:626 ty D][0x60c2caac][hly_ai.c:94] ======ai re idel time:0======
[07-01 09:09:29:627 ty N][0x60c2caac][wukong_audio_input_board.c:337] wukong audio input -> mode is 1, wakeup set to 0, vad flag is 2!
tkl_fopen file success, path:/mp3/exit.mp3 fd = 1
[07-01 09:09:29:643 ty D][0x60f5f7dc][hly_display.c:285] ====================queue fetch:0 type:1
[07-01 09:09:29:646 ty D][0x60c2c1f0][wukong_audio_player.c:222] wukong audio player -> player tts mem data len 4140
[07-01 09:09:29:647 ty D][0x60c7d438][svc_ai_player.c:519] ai player FG cmd START
[07-01 09:09:29:647 ty D][0x60c7d438][svc_ai_player.c:104] start player FG value=null
[07-01 09:09:29:649 ty D][0x60c7d438][wukong_audio_player.c:61] wukong audio player -> player tts event: 1
[07-01 09:09:29:650 ty D][0x60c7d438][wukong_audio_player.c:82] wukong audio player -> playing start event
[07-01 09:09:29:650 ty D][0x60c7d438][hly_ai.c:189] ======wukong ai event type: 20
voice_write_send_msg, 127, send message: 1 fail, ret: -1
bk_voice_write_start, 571, send message: VOICE_WRITE_START fail
tkl_ao_start, 765, voice read start fail
到底底层发生了什么导致声音输出全部失效了呢?
顺着tkl_ao_start往下查就是software/TuyaOS/vendor/T5/t5_os/ap/components/bk_voice_service/src/bk_voice_write_service.c
里面的voice_write_task_main退出了?
Re: 【求助】T5 tuya_os_sdk3.13.3播放提示音或停止时卡死
这个信息很重要,说明的确是tkl接口卡住了。正在分析中,会及时同步进展。