【求助】T5 tuya_os_sdk3.13.3播放提示音或停止时卡死

Wi-Fi 设备、蜂窝设备、WuKongAI、开发板、TuyaOS 移植等


Gzz_lin
Posts: 31

1.png
2.png

Tags:
User avatar
一线长天
Posts: 111

Re: 【求助】T5 tuya_os_sdk3.13.3播放提示音或停止时卡死

有完整的日志么?上电开始的。目前代码如何使用player的完整逻辑看不到,无法判断是否触发了未知场景。
wukong player是单线程的,因此如果有多线程访问,可能触发未测试到的问题。

Gzz_lin
Posts: 31

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; }
Gzz_lin
Posts: 31

Re: 【求助】T5 tuya_os_sdk3.13.3播放提示音或停止时卡死

包括之前的stop死循环事件,都说明了处理队列消息的线程就是会卡死,不然不会死循环的。

User avatar
一线长天
Posts: 111

Re: 【求助】T5 tuya_os_sdk3.13.3播放提示音或停止时卡死

可以按照这个先处理再挂机看看。

  1. 给 tkl_ao_put_frame 的重试加上累计超时——例如 ret==0 连续重试超过 X ms(比如 200500ms)就 return OPRT_TIMEOUT 并丢帧,绝不 goto 死循环。(同时增加超时的日志)
  2. 兜底(应用/播放器层):
    • 把播放消息队列深度从 2 调大(比如10),减少瞬时 -26369;
    • tuya_ai_player_stop/start 的 tal_queue_post 给个小超时而非 0;
    • 配合方案1(播放线程内不忙等),避免重入。
User avatar
一线长天
Posts: 111

Re: 【求助】T5 tuya_os_sdk3.13.3播放提示音或停止时卡死

附件是完整的分析报告,可以参考(包括代码重构)

Attachments
tuyaos-audio-deadlock-bundle.zip
(46.85 KiB) Downloaded 59 times
Gzz_lin
Posts: 31

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退出了?

User avatar
一线长天
Posts: 111

Re: 【求助】T5 tuya_os_sdk3.13.3播放提示音或停止时卡死

这个信息很重要,说明的确是tkl接口卡住了。正在分析中,会及时同步进展。

Post Reply