【求助】TUYAOS3.13.8 结束对话卡死

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


Post Reply
Gzz_lin
Posts: 33

当网络环境较差时,调用wukong_ai_agent_chat_break阻塞非常严重。
以下是进入待机模式的代码,需要wukong_ai_agent_chat_break让云端不再返回消息,每一步都做了日志。

Code: Select all

STATIC VOID _hly_ai_idel()
{
    TAL_PR_DEBUG("===idel 01");
    wukong_ai_agent_output_stop(TRUE);
    TAL_PR_DEBUG("===idel 02");
    wukong_audio_player_stop(AI_PLAYER_ALL);
    TAL_PR_DEBUG("===idel 03");
    wukong_audio_input_reset();
    TAL_PR_DEBUG("===idel 04");
    TAL_PR_DEBUG("===idel break:%d",wukong_ai_agent_chat_break(NULL));
    TAL_PR_DEBUG("===idel 05");
    wukong_audio_input_wakeup_set(FALSE);
    TAL_PR_DEBUG("===idel 06");
    _hly_ai_idel_timer_stop();
    _flag_wakeup=0;
}

以下是完整日志

Code: Select all

[09-15 14:43:54 ty D][fde1][hly_fl.c:994] state tiemr in.
error_cnt 0, ret 0, tmp_rssi -60, link_status->state 3
error_cnt 0, ret 0, tmp_rssi -60, link_status->state 3
error_cnt 0, ret 0, tmp_rssi -60, link_status->state 3
error_cnt 0, ret 0, tmp_rssi -60, link_status->state 3
error_cnt 0, ret 0, tmp_rssi -60, link_status->state 3
[09-15 14:43:55 ty D][f483][tuya_wifi_link.c:899] Get Rssi:-60
[09-15 14:43:55 ty D][f483][tuya_devos_utils.c:700] Get Rssi:-60
[09-15 14:43:55 ty D][fde1][hly_fl.c:994] state tiemr in.
[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: 0(Bytes), 0KB/s 
[09-15 14:43:56 ty D][fde1][hly_fl.c:994] state tiemr in.
[09-15 14:43:57 ty D][520][wukong_audio_aec_vad.c:120] ################ [vad start] ################ 

[09-15 14:43:57 ty D][520][wukong_kws.c:316] wukong kws vad on
[09-15 14:43:57 ty D][fde1][hly_fl.c:994] state tiemr in.
[09-15 14:43:57 ty D][fa37][hly_page_emoji.c:46] emoji max:23
[09-15 14:43:57 ty D][520][wukong_audio_aec_vad.c:111] speexdsp process time: aec->5(ms), count = 30501

[09-15 14:43:57 ty D][520][wukong_audio_aec_vad.c:131] rnn_date_version: 25082101 

[09-15 14:43:57 ty D][520][wukong_audio_aec_vad.c:132] rnn vad process time: rnn vad->3(ms), flag=1, count = 30501

[09-15 14:43:58 ty D][520][wukong_audio_aec_vad.c:123] ################ [vad stop] ################ 

[09-15 14:43:58 ty D][520][wukong_kws.c:318] wukong kws vad end
[09-15 14:43:58 ty D][fde1][hly_fl.c:994] state tiemr in.
[09-15 14:43:59 ty D][fde1][hly_fl.c:994] state tiemr in.
[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: 0(Bytes), 0KB/s 
error_cnt 0, ret 0, tmp_rssi -59, link_status->state 3
error_cnt 0, ret 0, tmp_rssi -59, link_status->state 3
error_cnt 0, ret 0, tmp_rssi -59, link_status->state 3
error_cnt 0, ret 0, tmp_rssi -59, link_status->state 3
error_cnt 0, ret 0, tmp_rssi -59, link_status->state 3
[09-15 14:44:00 ty D][f483][tuya_wifi_link.c:899] Get Rssi:-59
[09-15 14:44:00 ty D][f483][tuya_devos_utils.c:700] Get Rssi:-59
[09-15 14:44:00 ty D][fde1][hly_fl.c:994] state tiemr in.
[09-15 14:44:01 ty D][520][wukong_audio_aec_vad.c:120] ################ [vad start] ################ 

[09-15 14:44:01 ty D][520][wukong_kws.c:316] wukong kws vad on
[09-15 14:44:01 ty D][fde1][hly_fl.c:994] state tiemr in.
[09-15 14:44:01 ty D][fd99][tuya_devos_health.c:71] feed watchdog
score:2091 thr:-8 keyword=0
[09-15 14:44:01 ty D][ebfe][tutuclear.c:70] TUTUClear_WakeWord -> 浣犲ソ娑傞甫

[09-15 14:44:01 ty D][fdab][hly_ai.c:160] =====_hly_ai_kws_cb:1=====
WAKEUP_info:nihaotuya-xiaozhitongxue-heytuya-hituya--200KB--20250804--MAT--RAW--FOR--TUYA--FROM--EASE--ON--T5-E1--info_end
[09-15 14:44:01 ty D][fdab][hly_ai.c:65] ===linsten 01
[09-15 14:44:01 ty D][fdab][tuya_ai_output.c:302] [output] stop. force:1 status:0
[09-15 14:44:01 ty D][fdab][hly_ai.c:67] ===linsten 02
[09-15 14:44:01 ty D][fdab][wukong_audio_player.c:307] wukong audio player -> stop 2 player
[09-15 14:44:01 ty D][fdab][svc_ai_playlist.c:336] clear playlist playing 0
[09-15 14:44:01 ty E][fdab][svc_ai_player.c:821] player already stopped: 0
[09-15 14:44:01 ty D][fdab][svc_ai_playlist.c:336] clear playlist playing 0
[09-15 14:44:01 ty E][fdab][svc_ai_player.c:821] player already stopped: 0
[09-15 14:44:01 ty D][fdab][hly_ai.c:69] ===linsten 03
[09-15 14:44:01 ty D][fdab][tuya_ai_event.c:57] send event rt:0, type:4
[09-15 14:44:01 ty D][fdab][hly_ai.c:70] ===linsten break:0
[09-15 14:44:01 ty D][fdab][hly_ai.c:71] ===linsten 04
[09-15 14:44:01 ty N][fdab][wukong_audio_input_board.c:336] wukong audio input -> reset ringbuf!
[09-15 14:44:01 ty N][fdab][wukong_audio_input_board.c:343] wukong audio input -> vad stop!
[09-15 14:44:01 ty N][fdab][wukong_audio_input_board.c:346] wukong audio input -> vad start!
[09-15 14:44:01 ty D][fdab][hly_ai.c:73] ===linsten 05
[09-15 14:44:01 ty N][fdab][wukong_audio_input_board.c:214] wukong audio input -> start! mode is 1, task is 0x60ee4ff0
[09-15 14:44:01 ty D][fdab][wukong_audio_input_board.c:218] need hunman voice detect, start __record_task
[09-15 14:44:01 ty D][fdab][hly_ai.c:75] ===linsten 06
[09-15 14:44:01 ty N][fdab][wukong_audio_input_board.c:360] wukong audio input -> mode is 1, wakeup set to 1, vad flag is 2!
[09-15 14:44:01 ty D][fdab][hly_ai.c:77] ===linsten 07
[09-15 14:44:01 ty D][fdab][hly_fl.c:862] =====_hly_fl_ai_state_cb:2=====
[09-15 14:44:01 ty E][fdab][svc_ai_player.c:821] player already stopped: 0
[09-15 14:44:01 ty D][fdab][wukong_audio_player.c:247] wukong audio player -> player tts mem data len 3537
[09-15 14:44:01 ty D][fdab][svc_ai_player.c:757] start player 0 0
[09-15 14:44:01 ty D][f201][svc_ai_player.c:505] ai player FG cmd START
[09-15 14:44:01 ty D][f201][svc_ai_player.c:90] start player FG value=null
[09-15 14:44:01 ty D][520][wukong_kws.c:318] wukong kws vad end
[09-15 14:44:01 ty D][f201][wukong_audio_player.c:61] wukong audio player -> player tts event: 1
[09-15 14:44:01 ty D][f201][wukong_audio_player.c:82] wukong audio player -> playing start event
[09-15 14:44:01 ty D][fdab][hly_ai.c:702] ========play alart:0
[09-15 14:44:01 ty D][f201][decoder_mp3.c:43] ID3 tag_size = 35
[09-15 14:44:01 ty D][fa37][hly_page_emoji.c:46] emoji max:23
[09-15 14:44:02 ty D][fde1][hly_fl.c:994] state tiemr in.
[09-15 14:44:02 ty N][f201][svc_ai_player.c:256] ai player FG eof
[09-15 14:44:02 ty D][f201][svc_ai_player.c:117] stop player FG
[09-15 14:44:02 ty D][f201][svc_ai_playlist.c:54] playlist player state 0 index 0 count 0 loop 0 single 0
[09-15 14:44:02 ty D][f201][wukong_audio_player.c:61] wukong audio player -> player tts event: 0
[09-15 14:44:02 ty D][f201][wukong_audio_player.c:68] wukong audio player -> stop event
[09-15 14:44:03 ty D][fde1][hly_fl.c:994] state tiemr in.
[ONBOARD_MIC] data_size: 256000(Bytes), 62KB/s 
[RAW_READ] data_size: 128000(Bytes), 31KB/s 
[RAW_WRITE] data_size: 27648(Bytes), 6KB/s 
[ONBOARD_SPK] data_size: 27520(Bytes), 6KB/s 
[WIFI_TX] data_size: 128000(Bytes), 31KB/s 
[WIFI_RX] data_size: 71552(Bytes), 17KB/s 
[09-15 14:44:04 ty D][520][wukong_audio_aec_vad.c:120] ################ [vad start] ################ 

[09-15 14:44:04 ty D][edaa][wukong_audio_input_board.c:165] wukong audio input -> wakup flag is 1, auto vad set from 2 to 1!
[09-15 14:44:04 ty D][520][wukong_kws.c:316] wukong kws vad on
[09-15 14:44:04 ty D][edaa][wukong_audio_input_board.c:124] wukong audio input -> vad stat change to flag 1
[09-15 14:44:04 ty D][edaa][tuya_ai_input.c:379] ai input start, state:1
[09-15 14:44:04 ty N][edaa][hly_ai.c:423] recv wukong mic data: 2560
[09-15 14:44:04 ty N][edaa][hly_ai.c:423] recv wukong mic data: 2560
[09-15 14:44:04 ty N][edaa][hly_ai.c:423] recv wukong mic data: 2560
[09-15 14:44:04 ty N][edaa][hly_ai.c:423] recv wukong mic data: 2560
[09-15 14:44:04 ty N][edaa][hly_ai.c:423] recv wukong mic data: 2560
[09-15 14:44:04 ty N][edaa][hly_ai.c:423] recv wukong mic data: 2560
[09-15 14:44:04 ty N][edaa][hly_ai.c:423] recv wukong mic data: 2560
[09-15 14:44:04 ty N][edaa][hly_ai.c:423] recv wukong mic data: 2560
[09-15 14:44:04 ty N][edaa][hly_ai.c:423] recv wukong mic data: 2560
[09-15 14:44:04 ty N][edaa][hly_ai.c:423] recv wukong mic data: 2560
[09-15 14:44:04 ty N][edaa][hly_ai.c:423] recv wukong mic data: 2560
[09-15 14:44:04 ty D][f340][tuya_ai_input.c:459] recv queue state 1, scode 
[09-15 14:44:04 ty D][f340][tuya_ai_agent.c:776] use session 67eecb6c-dc16-4799-a3de-594d-fe919ed2
[09-15 14:44:04 ty D][f340][tuya_ai_event.c:57] send event rt:0, type:0
[09-15 14:44:04 ty N][f340][tuya_ai_event.c:85] event id is ea6d90fc-84df-4f0c-8fd1
[09-15 14:44:04 ty D][f340][tuya_ai_input.c:496] start lazy queue sync
[09-15 14:44:04 ty D][f340][tuya_ai_agent.c:1486] [ptype 31 upload stream] len:5120 flag 1, total_len:5120, id:1
[09-15 14:44:04 ty D][f340][tuya_ai_agent.c:1486] [ptype 31 upload stream] len:5120 flag 2, total_len:5120, id:1
[09-15 14:44:04 ty N][edaa][hly_ai.c:423] recv wukong mic data: 2560
[09-15 14:44:04 ty D][f340][tuya_ai_agent.c:1486] [ptype 31 upload stream] len:5120 flag 2, total_len:5120, id:1
[09-15 14:44:04 ty D][f3fa][tuya_ai_agent.c:153] [====ai event cb====] type:0, sid:67eecb6c-dc16-4799-a3de-594d-fe919ed2, eid:ea6d90fc-84df-4f0c-8fd1
[09-15 14:44:04 ty D][f340][tuya_ai_agent.c:1486] [ptype 31 upload stream] len:5120 flag 2, total_len:5120, id:1
[09-15 14:44:04 ty N][edaa][hly_ai.c:423] recv wukong mic data: 2560
[09-15 14:44:04 ty D][f340][tuya_ai_agent.c:1486] [ptype 31 upload stream] len:5120 flag 2, total_len:5120, id:1
[09-15 14:44:04 ty N][edaa][hly_ai.c:423] recv wukong mic data: 2560
[09-15 14:44:04 ty N][edaa][hly_ai.c:423] recv wukong mic data: 2560
[09-15 14:44:04 ty D][fde1][hly_fl.c:994] state tiemr in.
[09-15 14:44:04 ty N][edaa][hly_ai.c:423] recv wukong mic data: 2560
[09-15 14:44:04 ty N][edaa][hly_ai.c:423] recv wukong mic data: 2560
[09-15 14:44:04 ty N][edaa][hly_ai.c:423] recv wukong mic data: 2560
[09-15 14:44:04 ty D][f340][tuya_ai_agent.c:1486] [ptype 31 upload stream] len:5120 flag 2, total_len:5120, id:1
[09-15 14:44:04 ty N][edaa][hly_ai.c:423] recv wukong mic data: 2560
[09-15 14:44:04 ty N][edaa][hly_ai.c:423] recv wukong mic data: 2560
[09-15 14:44:04 ty N][edaa][hly_ai.c:423] recv wukong mic data: 2560
[09-15 14:44:05 ty N][edaa][hly_ai.c:423] recv wukong mic data: 2560
[09-15 14:44:05 ty D][520][wukong_audio_aec_vad.c:123] ################ [vad stop] ################ 

[09-15 14:44:05 ty D][520][wukong_kws.c:318] wukong kws vad end
[09-15 14:44:05 ty D][edaa][wukong_audio_input_board.c:165] wukong audio input -> wakup flag is 1, auto vad set from 1 to 2!
[09-15 14:44:05 ty D][edaa][wukong_audio_input_board.c:124] wukong audio input -> vad stat change to flag 2
[09-15 14:44:05 ty D][edaa][hly_ai.c:228] ========vad stop
[09-15 14:44:05 ty D][edaa][tuya_ai_input.c:405] ai input stop, state:4
error_cnt 0, ret 0, tmp_rssi -56, link_status->state 3
error_cnt 0, ret 0, tmp_rssi -56, link_status->state 3
error_cnt 0, ret 0, tmp_rssi -56, link_status->state 3
error_cnt 0, ret 0, tmp_rssi -56, link_status->state 3
error_cnt 0, ret 0, tmp_rssi -56, link_status->state 3
[09-15 14:44:05 ty D][f483][tuya_wifi_link.c:899] Get Rssi:-56
[09-15 14:44:05 ty D][f483][tuya_devos_utils.c:700] Get Rssi:-56
[09-15 14:44:05 ty D][fde1][hly_fl.c:994] state tiemr in.
[09-15 14:44:05 ty E][edaa][tuya_ai_input.c:409] ai input stop timeout, cnt:6
[09-15 14:44:06 ty D][fde1][hly_fl.c:994] state tiemr in.
[09-15 14:44:07 ty D][f340][tuya_ai_input.c:459] recv queue state 4, scode 
[09-15 14:44:07 ty D][f340][tuya_ai_agent.c:1486] [ptype 31 upload stream] len:5120 flag 2, total_len:5120, id:1
[09-15 14:44:07 ty D][fde1][hly_fl.c:994] state tiemr in.
[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: 0(Bytes), 0KB/s 
[09-15 14:44:07 ty D][f340][tuya_ai_agent.c:1486] [ptype 31 upload stream] len:5120 flag 2, total_len:5120, id:1
[09-15 14:44:07 ty D][520][wukong_audio_aec_vad.c:111] speexdsp process time: aec->4(ms), count = 31001

[09-15 14:44:07 ty D][520][wukong_audio_aec_vad.c:131] rnn_date_version: 25082101 

[09-15 14:44:07 ty D][520][wukong_audio_aec_vad.c:132] rnn vad process time: rnn vad->2(ms), flag=2, count = 31001

[09-15 14:44:08 ty D][fde1][hly_fl.c:994] state tiemr in.
[09-15 14:44:09 ty D][f340][tuya_ai_agent.c:1486] [ptype 31 upload stream] len:5120 flag 2, total_len:5120, id:1
[09-15 14:44:09 ty D][fde1][hly_fl.c:994] state tiemr in.
[09-15 14:44:09 ty D][f3fa][tuya_ai_agent.c:153] [====ai event cb====] type:4, sid:67eecb6c-dc16-4799-a3de-594d-fe919ed2, eid:trigger_fyazchom9ssg
[09-15 14:44:09 ty D][f3fa][tuya_ai_agent.c:115] __parse_attr_time 44 <0x60ee5099>
7b 22 62 72 65 61 6b 41 74 74 72 69 62 75 74 65 73 22 3a 7b 22 74 69 6d 65 22 3a 22 31 37 38 39 34 35 34 36 35 30 30 37 31 22 7d 7d 

[09-15 14:44:10 ty D][f3fa][wukong_provider_tuya.c:52] tuya provider -> recv event type: 4
[09-15 14:44:10 ty D][f3fa][tuya_ai_output.c:302] [output] stop. force:1 status:0
[09-15 14:44:10 ty D][f3fa][wukong_audio_player.c:307] wukong audio player -> stop 0 player
[09-15 14:44:10 ty D][f3fa][svc_ai_playlist.c:336] clear playlist playing 0
[09-15 14:44:10 ty E][f3fa][svc_ai_player.c:821] player already stopped: 0
[09-15 14:44:10 ty D][fd85][mqc_app.c:409] Rev MQTT:{"data":{"bizType":"EVENT","data":{"data":{"eventId":"trigger_fyazchom9ssg","time":"1789454650071"},"type":"asrInterrupt"},"bizId":"ea6d90fc-84df-4f0c-8fd1"},"protocol":9000,"s":2039809,"t":1789454650}
[09-15 14:44:10 ty D][fd85][tuya_ai_agent.c:153] [====ai event cb====] type:4, sid:, eid:trigger_fyazchom9ssg
[09-15 14:44:10 ty D][fd85][tuya_ai_agent.c:115] __parse_attr_time 44 <0x60ee5078>
7b 22 62 72 65 61 6b 41 74 74 72 69 62 75 74 65 73 22 3a 7b 22 74 69 6d 65 22 3a 22 31 37 38 39 34 35 34 36 35 30 30 37 31 22 7d 7d 

[09-15 14:44:10 ty D][fd85][tuya_ai_agent.c:161] Interrupt event ignored, last:1789454650071, cur:1789454650071
error_cnt 0, ret 0, tmp_rssi -56, link_status->state 3
error_cnt 0, ret 0, tmp_rssi -56, link_status->state 3
error_cnt 0, ret 0, tmp_rssi -56, link_status->state 3
error_cnt 0, ret 0, tmp_rssi -56, link_status->state 3
error_cnt 0, ret 0, tmp_rssi -56, link_status->state 3
[09-15 14:44:10 ty D][f483][tuya_wifi_link.c:899] Get Rssi:-56
[09-15 14:44:10 ty D][f483][tuya_devos_utils.c:700] Get Rssi:-56
[09-15 14:44:10 ty D][fde1][hly_fl.c:994] state tiemr in.
[09-15 14:44:11 ty D][fde1][hly_fl.c:994] state tiemr in.
[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: 0(Bytes), 0KB/s 
[09-15 14:44:11 ty D][fd99][tuya_devos_health.c:71] feed watchdog
[09-15 14:44:12 ty D][fde1][hly_fl.c:994] state tiemr in.
[09-15 14:44:13 ty D][fde1][hly_fl.c:994] state tiemr in.
[09-15 14:44:14 ty D][fde1][hly_fl.c:994] state tiemr in.
error_cnt 0, ret 0, tmp_rssi -56, link_status->state 3
error_cnt 0, ret 0, tmp_rssi -56, link_status->state 3
error_cnt 0, ret 0, tmp_rssi -56, link_status->state 3
error_cnt 0, ret 0, tmp_rssi -56, link_status->state 3
error_cnt 0, ret 0, tmp_rssi -56, link_status->state 3
[09-15 14:44:15 ty D][f483][tuya_wifi_link.c:899] Get Rssi:-56
[09-15 14:44:15 ty D][f483][tuya_devos_utils.c:700] Get Rssi:-56
[09-15 14:44:15 ty D][fde1][hly_fl.c:994] state tiemr in.
[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: 0(Bytes), 0KB/s 
[09-15 14:44:16 ty D][fde1][hly_fl.c:994] state tiemr in.
[09-15 14:44:17 ty D][fde1][hly_fl.c:994] state tiemr in.
[09-15 14:44:17 ty D][fde1][tuya_devos_utils.c:288] set time by rtc
[09-15 14:44:17 ty D][520][wukong_audio_aec_vad.c:111] speexdsp process time: aec->5(ms), count = 31501

[09-15 14:44:17 ty D][520][wukong_audio_aec_vad.c:131] rnn_date_version: 25082101 

[09-15 14:44:17 ty D][520][wukong_audio_aec_vad.c:132] rnn vad process time: rnn vad->2(ms), flag=2, count = 31501

[09-15 14:44:18 ty D][fde1][hly_fl.c:994] state tiemr in.
[09-15 14:44:19 ty D][fde1][hly_fl.c:994] state tiemr in.
[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: 0(Bytes), 0KB/s 
error_cnt 0, ret 0, tmp_rssi -58, link_status->state 3
error_cnt 0, ret 0, tmp_rssi -58, link_status->state 3
error_cnt 0, ret 0, tmp_rssi -58, link_status->state 3
error_cnt 0, ret 0, tmp_rssi -58, link_status->state 3
error_cnt 0, ret 0, tmp_rssi -58, link_status->state 3
[09-15 14:44:20 ty D][f483][tuya_wifi_link.c:899] Get Rssi:-58
[09-15 14:44:20 ty D][f483][tuya_devos_utils.c:700] Get Rssi:-58
[09-15 14:44:20 ty D][fde1][hly_fl.c:994] state tiemr in.
[09-15 14:44:20 ty D][f3fa][tuya_ai_agent.c:506] ASR text: 
[09-15 14:44:20 ty D][f3fa][wukong_provider_tuya.c:146] ignored alert: 7
[09-15 14:44:20 ty E][f3fa][tuya_ai_agent.c:717] invalid text data 0x60ebd4d5 0
[09-15 14:44:20 ty D][f3fa][tuya_ai_agent.c:153] [====ai event cb====] type:2, sid:67eecb6c-dc16-4799-a3de-594d-fe919ed2, eid:ea6d90fc-84df-4f0c-8fd1
[09-15 14:44:21 ty D][f340][tuya_ai_agent.c:1486] [ptype 31 upload stream] len:5120 flag 2, total_len:5120, id:1
[09-15 14:44:21 ty D][fde1][hly_fl.c:994] state tiemr in.
[09-15 14:44:21 ty D][f340][tuya_ai_agent.c:1486] [ptype 31 upload stream] len:5120 flag 2, total_len:5120, id:1
[09-15 14:44:21 ty D][fd99][tuya_devos_health.c:71] feed watchdog
[09-15 14:44:21 ty D][fde1][hly_ai.c:48] ===idel 01
[09-15 14:44:21 ty D][fde1][tuya_ai_output.c:302] [output] stop. force:1 status:0
[09-15 14:44:21 ty D][fde1][hly_ai.c:50] ===idel 02
[09-15 14:44:21 ty D][fde1][wukong_audio_player.c:307] wukong audio player -> stop 2 player
[09-15 14:44:21 ty D][fde1][svc_ai_playlist.c:336] clear playlist playing 0
[09-15 14:44:21 ty E][fde1][svc_ai_player.c:821] player already stopped: 0
[09-15 14:44:21 ty D][fde1][svc_ai_playlist.c:336] clear playlist playing 0
[09-15 14:44:21 ty E][fde1][svc_ai_player.c:821] player already stopped: 0
[09-15 14:44:21 ty D][fde1][hly_ai.c:52] ===idel 03
[09-15 14:44:21 ty N][fde1][wukong_audio_input_board.c:336] wukong audio input -> reset ringbuf!
[09-15 14:44:21 ty N][fde1][wukong_audio_input_board.c:343] wukong audio input -> vad stop!
[09-15 14:44:21 ty N][fde1][wukong_audio_input_board.c:346] wukong audio input -> vad start!
[09-15 14:44:21 ty D][fde1][hly_ai.c:54] ===idel 04
[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: 0(Bytes), 0KB/s 
error_cnt 0, ret 0, tmp_rssi -58, link_status->state 3
error_cnt 0, ret 0, tmp_rssi -58, link_status->state 3
error_cnt 0, ret 0, tmp_rssi -58, link_status->state 3
error_cnt 0, ret 0, tmp_rssi -58, link_status->state 3
error_cnt 0, ret 0, tmp_rssi -58, link_status->state 3
[09-15 14:44:25 ty D][f483][tuya_wifi_link.c:899] Get Rssi:-58
[09-15 14:44:25 ty D][f483][tuya_devos_utils.c:700] Get Rssi:-58
[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: 0(Bytes), 0KB/s 
[09-15 14:44:27 ty D][520][wukong_audio_aec_vad.c:111] speexdsp process time: aec->4(ms), count = 32001

[09-15 14:44:27 ty D][520][wukong_audio_aec_vad.c:131] rnn_date_version: 25082101 

[09-15 14:44:27 ty D][520][wukong_audio_aec_vad.c:132] rnn vad process time: rnn vad->2(ms), flag=2, count = 32001

error_cnt 0, ret 0, tmp_rssi -56, link_status->state 3
error_cnt 0, ret 0, tmp_rssi -56, link_status->state 3
error_cnt 0, ret 0, tmp_rssi -56, link_status->state 3
error_cnt 0, ret 0, tmp_rssi -56, link_status->state 3
error_cnt 0, ret 0, tmp_rssi -56, link_status->state 3
[09-15 14:44:30 ty D][f483][tuya_wifi_link.c:899] Get Rssi:-56
[09-15 14:44:30 ty D][f483][tuya_devos_utils.c:700] Get Rssi:-56
[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: 0(Bytes), 0KB/s 
[09-15 14:44:31 ty D][fd99][tuya_devos_health.c:71] feed watchdog
[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: 0(Bytes), 0KB/s 
error_cnt 0, ret 0, tmp_rssi -56, link_status->state 3
error_cnt 0, ret 0, tmp_rssi -56, link_status->state 3
error_cnt 0, ret 0, tmp_rssi -56, link_status->state 3
error_cnt 0, ret 0, tmp_rssi -56, link_status->state 3
error_cnt 0, ret 0, tmp_rssi -56, link_status->state 3
[09-15 14:44:35 ty D][f483][tuya_wifi_link.c:899] Get Rssi:-56
[09-15 14:44:35 ty D][f483][tuya_devos_utils.c:700] Get Rssi:-56
[09-15 14:44:37 ty D][520][wukong_audio_aec_vad.c:111] speexdsp process time: aec->5(ms), count = 32501

[09-15 14:44:37 ty D][520][wukong_audio_aec_vad.c:131] rnn_date_version: 25082101 

[09-15 14:44:37 ty D][520][wukong_audio_aec_vad.c:132] rnn vad process time: rnn vad->2(ms), flag=2, count = 32501

[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: 0(Bytes), 0KB/s 
error_cnt 0, ret 0, tmp_rssi -57, link_status->state 3
error_cnt 0, ret 0, tmp_rssi -57, link_status->state 3
error_cnt 0, ret 0, tmp_rssi -57, link_status->state 3
error_cnt 0, ret 0, tmp_rssi -57, link_status->state 3
error_cnt 0, ret 0, tmp_rssi -57, link_status->state 3
[09-15 14:44:40 ty D][f483][tuya_wifi_link.c:899] Get Rssi:-57
[09-15 14:44:40 ty D][f483][tuya_devos_utils.c:700] Get Rssi:-57
[09-15 14:44:41 ty D][fd99][tuya_devos_health.c:71] feed watchdog
[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: 0(Bytes), 0KB/s 
error_cnt 0, ret 0, tmp_rssi -57, link_status->state 3
error_cnt 0, ret 0, tmp_rssi -57, link_status->state 3
error_cnt 0, ret 0, tmp_rssi -57, link_status->state 3
error_cnt 0, ret 0, tmp_rssi -57, link_status->state 3
error_cnt 0, ret 0, tmp_rssi -57, link_status->state 3
[09-15 14:44:45 ty D][f483][tuya_wifi_link.c:899] Get Rssi:-57
[09-15 14:44:45 ty D][f483][tuya_devos_utils.c:700] Get Rssi:-57
[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: 0(Bytes), 0KB/s 
[09-15 14:44:47 ty D][520][wukong_audio_aec_vad.c:111] speexdsp process time: aec->4(ms), count = 33001

[09-15 14:44:47 ty D][520][wukong_audio_aec_vad.c:131] rnn_date_version: 25082101 

[09-15 14:44:47 ty D][520][wukong_audio_aec_vad.c:132] rnn vad process time: rnn vad->2(ms), flag=2, count = 33001

error_cnt 0, ret 0, tmp_rssi -57, link_status->state 3
error_cnt 0, ret 0, tmp_rssi -57, link_status->state 3
error_cnt 0, ret 0, tmp_rssi -57, link_status->state 3
error_cnt 0, ret 0, tmp_rssi -57, link_status->state 3
error_cnt 0, ret 0, tmp_rssi -57, link_status->state 3
[09-15 14:44:50 ty D][f483][tuya_wifi_link.c:899] Get Rssi:-57
[09-15 14:44:50 ty D][f483][tuya_devos_utils.c:700] Get Rssi:-57
[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: 0(Bytes), 0KB/s 
[09-15 14:44:51 ty D][fd99][tuya_devos_health.c:71] feed watchdog
[09-15 14:44:52 ty E][f340][tuya_ai_protocol.c:2692] send to cloud failed, rt:-1, len:5134, err:-4
[09-15 14:44:52 ty E][f340][tuya_ai_protocol.c:1012] write packet failed, rt:-1
[09-15 14:44:52 ty E][f340][tuya_ai_biz.c:443] send biz data failed, rt:-1
[09-15 14:44:52 ty D][f340][tuya_ai_agent.c:1486] [ptype 31 upload stream] len:0 flag 3, total_len:0, id:1
[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: 0(Bytes), 0KB/s 
error_cnt 0, ret 0, tmp_rssi -57, link_status->state 3
error_cnt 0, ret 0, tmp_rssi -57, link_status->state 3
error_cnt 0, ret 0, tmp_rssi -57, link_status->state 3
error_cnt 0, ret 0, tmp_rssi -57, link_status->state 3
error_cnt 0, ret 0, tmp_rssi -57, link_status->state 3
[09-15 14:44:56 ty D][f483][tuya_wifi_link.c:899] Get Rssi:-57
[09-15 14:44:56 ty D][f483][tuya_devos_utils.c:700] Get Rssi:-57
[09-15 14:44:57 ty D][520][wukong_audio_aec_vad.c:111] speexdsp process time: aec->5(ms), count = 33501

[09-15 14:44:57 ty D][520][wukong_audio_aec_vad.c:131] rnn_date_version: 25082101 

[09-15 14:44:57 ty D][520][wukong_audio_aec_vad.c:132] rnn vad process time: rnn vad->3(ms), flag=2, count = 33501

[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: 0(Bytes), 0KB/s 
error_cnt 0, ret 0, tmp_rssi -57, link_status->state 3
error_cnt 0, ret 0, tmp_rssi -57, link_status->state 3
error_cnt 0, ret 0, tmp_rssi -57, link_status->state 3
error_cnt 0, ret 0, tmp_rssi -57, link_status->state 3
error_cnt 0, ret 0, tmp_rssi -57, link_status->state 3
[09-15 14:45:01 ty D][f483][tuya_wifi_link.c:899] Get Rssi:-57
[09-15 14:45:01 ty D][f483][tuya_devos_utils.c:700] Get Rssi:-57
[09-15 14:45:01 ty D][fd99][tuya_devos_health.c:71] feed watchdog
[09-15 14:45:02 ty D][fde1][tuya_ai_event.c:57] send event rt:0, type:4
[09-15 14:45:02 ty D][fde1][hly_ai.c:55] ===idel break:0
[09-15 14:45:02 ty D][fde1][hly_ai.c:56] ===idel 05
[09-15 14:45:02 ty N][fde1][wukong_audio_input_board.c:360] wukong audio input -> mode is 1, wakeup set to 0, vad flag is 2!
[09-15 14:45:02 ty D][fde1][hly_ai.c:58] ===idel 06
[09-15 14:45:02 ty D][fde1][hly_fl.c:862] =====_hly_fl_ai_state_cb:1=====
[09-15 14:45:02 ty E][fde1][svc_ai_player.c:821] player already stopped: 0
[09-15 14:45:02 ty D][fde1][wukong_audio_player.c:247] wukong audio player -> player tts mem data len 4140
[09-15 14:45:02 ty D][fde1][svc_ai_player.c:757] start player 0 0
[09-15 14:45:02 ty D][f340][tuya_ai_event.c:57] send event rt:0, type:2
[09-15 14:45:02 ty D][f201][svc_ai_player.c:505] ai player FG cmd START
[09-15 14:45:02 ty D][f201][svc_ai_player.c:90] start player FG value=null
[09-15 14:45:02 ty D][f201][wukong_audio_player.c:61] wukong audio player -> player tts event: 1
[09-15 14:45:02 ty D][f201][wukong_audio_player.c:82] wukong audio player -> playing start event
[09-15 14:45:02 ty D][fde1][hly_ai.c:702] ========play alart:0
[09-15 14:45:02 ty D][fde1][hly_fl.c:994] state tiemr in.
[09-15 14:45:02 ty D][fde1][tuya_devos_utils.c:288] set time by rtc
[09-15 14:45:02 ty D][f201][decoder_mp3.c:47] ID3 tag_size n/a
[09-15 14:45:02 ty D][fa37][hly_page_emoji.c:46] emoji max:23
[09-15 14:45:03 ty N][f201][svc_ai_player.c:256] ai player FG eof
[09-15 14:45:03 ty D][f201][svc_ai_player.c:117] stop player FG
[09-15 14:45:03 ty D][f201][svc_ai_playlist.c:54] playlist player state 0 index 0 count 0 loop 0 single 0
[09-15 14:45:03 ty D][f201][wukong_audio_player.c:61] wukong audio player -> player tts event: 0
[09-15 14:45:03 ty D][f201][wukong_audio_player.c:68] wukong audio player -> stop event
[09-15 14:45:03 ty D][f3fa][tuya_ai_agent.c:153] [====ai event cb====] type:0, sid:67eecb6c-dc16-4799-a3de-594d-fe919ed2, eid:ea6d90fc-84df-4f0c-8fd1_1789454703373
[ONBOARD_MIC] data_size: 256000(Bytes), 62KB/s 
[RAW_READ] data_size: 128000(Bytes), 31KB/s 
[RAW_WRITE] data_size: 13824(Bytes), 3KB/s 
[ONBOARD_SPK] data_size: 13440(Bytes), 3KB/s 
[WIFI_TX] data_size: 128000(Bytes), 31KB/s 
[WIFI_RX] data_size: 29440(Bytes), 7KB/s 
[09-15 14:45:03 ty D][fde1][hly_fl.c:994] state tiemr in.
[09-15 14:45:04 ty D][fde1][hly_fl.c:994] state tiemr in.
[09-15 14:45:05 ty D][fde1][hly_fl.c:994] state tiemr in.
error_cnt 0, ret 0, tmp_rssi -57, link_status->state 3
error_cnt 0, ret 0, tmp_rssi -57, link_status->state 3
error_cnt 0, ret 0, tmp_rssi -57, link_status->state 3
error_cnt 0, ret 0, tmp_rssi -57, link_status->state 3
error_cnt 0, ret 0, tmp_rssi -57, link_status->state 3
[09-15 14:45:06 ty D][f483][tuya_wifi_link.c:899] Get Rssi:-57
[09-15 14:45:06 ty D][f483][tuya_devos_utils.c:700] Get Rssi:-57

可以看到日志中两条关键信息

[09-15 14:44:21 ty D][fde1][hly_ai.c:54] ===idel 04
[09-15 14:45:02 ty D][fde1][hly_ai.c:55] ===idel break:0

这两条日志间隔了40多秒,阻塞非常严重,实际测试中偶发死机现象。
虽然可以从应用层规避掉死机现象,但是这个阻塞是永远存在的,只是移到别的地方去卡着了而已。
请检查底层为何网络差的时候超时、丢包、断联等机制没有起作用。

fangweng
Posts: 26

Re: 【求助】TUYAOS3.13.8 结束对话卡死

知识层资料已经足够回答(svc_ai_agent 设计文档里有完整的收尾链路阻塞点说明),下面直接给结论。

结论:这大概率不是死锁,而是「弱网下同步收尾链路被拖住」——chat_break 底层的收尾有几处文档化的阻塞点,弱网时每一处都会被放大;待机流程不应该同步等它返回。

components/svc_ai_agent/README_CN.md(5.4 / 9.2 节)梳理结束对话链路:

步骤阻塞点弱网上限
入口握手tuya_ai_input_is_started_s 轮询 queue_sync,50ms×100 次最长 5s
STOPPING 收尾input 线程把 ringbuf 残留 30 帧继续 upload_stream,每帧一次同步网络写随 RTT 成倍放大
事件上行AI_EVENT_CHAT_BREAK 报文走基座通道同步发送,还要排在未完成的音频上行之后取决于通道拥塞
  • chat_break(force 打断)底层不止发一条消息:发 CHAT_BREAK 报文 + 强停 output + 重新走 start。弱网时上行通道被上传流占住,事件报文只能排队,表现就是「阻塞非常严重」。
  • 关键点:wukong_ai_agent_output_stop(TRUE) 已经把本地 TTS 停了(force 直接切 IDLE),本地待机并不依赖 chat_break 的返回值。chat_break 的作用只是「通知云端别再推」,把它丢到 workq 或独立线程异步发即可,主流程(停输入、停定时器、清唤醒标志)先走完,卡死感就没了。
  • 语义上也别混淆:chat_break 是「打断当前播报」,正式结束会话应走 AI_EVENT_END(README 12.10:业务侧自行 tuya_ai_agent_event_s(scode, AI_EVENT_END, 0) 收尾)。待机场景用 END 才是对云端「不再返回消息」的准确表达。

排查建议:

  • 你贴的日志里没出现任何 ===idel 行——请补全卡住时刻的日志(尤其 ===idel 04===idel break: 之间隔了多久),才能区分是等 queue_sync 还是等通道发送。
  • 卡住时段重点看三类日志:audio input failed(ringbuf 满重试,最长 10s)、[output] play timeout(下行 10s 看门狗)、Interrupt event ignored,对照 README 9.2 可直接定性。
  • 版本方面:当前发布基线是 TuyaOS AI 3.14.0(T5 SDK ID 338002),3.13.8 上定性后建议在新基线复测一遍再决定是否走 Bug 流程。

以上内容由 AI 自动分析生成,如有疑问请回复补充。

Gzz_lin
Posts: 33

Re: 【求助】TUYAOS3.13.8 结束对话卡死

如果在应用层不依赖chat_break来结束对话,是可以消除“卡死”感,但是如何解决以下问题:
1、用户再次尝试对话怎么办?chat_break的阻塞堆积在某个任务里面?
2、云端依旧有可能在不确定的时间段继续返回TTS,开始回复已经结束的对话。经测试有时候阻塞非常之久。

本次AI回复与我所分析的不同,因为实际阻塞时间不固定,测试中最长的时候四五分钟都有,不得不重启产品,所以怀疑底层是有无限等待的阻塞存在,麻烦分析一下chat_break完整的调用链路,确保有超时、报错返回。

这边已经使用过DeepSeek分析
以下是AI分析出来的完成调用链路:

Code: Select all

_hly_ai_idel() / _hly_ai_listen()          ← 持有 _mutex_state
  └─ wukong_ai_agent_chat_break(NULL)       非阻塞:空指针检查 + 函数指针分发
       └─ __tuya_abort()                    非阻塞:直接透传
            └─ tuya_ai_agent_event(CHAT_BREAK, 0)
                 └─ tuya_ai_agent_event_s()         非阻塞:etype=4 分支直接跳转
                      └─ tuya_ai_event_chat_break()  非阻塞:strncpy + 构造事件头
                           └─ __ai_event()           非阻塞:psram_malloc + memcpy
                                └─ tuya_ai_basic_event()   非阻塞:构造协议属性
                                     └─ tuya_ai_basic_pkt_send()  ⚠️ 持锁同步发送
                                          └─ __ai_packet_write()
                                               └─ blx r3(发送回调)
                                                    └─ tuya_transporter_write
                                                         └─ websocket_transporter_write
                                                              └─ websocket_client_send_bin
                                                                   └─ websocket_protocol_layer_write
                                                                        └─ websocket_transport_layer_write
                                                                             └─ tuya_tls_write(同步循环写)
                                                                                  └─ mbedtls_ssl_write
                                                                                       └─ tal_net_send → tkl_net_send → lwip_send(阻塞)

这边项目正在开发中,不便升级新版本。

希望chat_break报文能优具有较高优先级,chat_break一旦触发,未上传的成功的音频数据全部取消,直接发送chat_break报文。

fangweng
Posts: 26

Re: 【求助】TUYAOS3.13.8 结束对话卡死

知识层资料够了 —— svc_ai_basic/README_CN.md 里正好有发送链路的超时与线程模型说明,直接给结论。

结论:这条链路不是无限等待,而是「单次有超时、总体被串行放大」——单次 socket 写有 6s 超时兜底,但 chat_break 报文和残留音频帧共用同一把发送锁,弱网下逐帧排队 × 每帧最长 6s,叠出分钟级阻塞,与你实测 45 分钟的量级吻合。

components/svc_ai_basic/README_CN.md 核对超时(DeepSeek 链路方向基本正确):

  • 事件/业务包发送是同步的,直接阻塞调用方栈直到写完或报错(3.4 节「业务调用线程」)——所以卡的确实是你自己的线程
  • 底层 socket 在 setup 阶段配了 sendTimeoutMs = AI_SEND_PKT_TIMEOUT×1000,默认 6s、可配 110s;写超时向上抛 OPRT_TIMEOUT(6.1 / 9.3 节)
  • 爆表的两个乘数:收尾时 ringbuf 残留音频要逐帧同步写;且业务路径发送失败不会自动断连(9.2 节补充,需上层自行判断)——残留帧数 × 每帧最长 6s,就是分钟级

回答两个追问:

  • 用户再对话:不会无限堆积。事件没有独立队列,卡在发送锁上排队;input 指令队列只有 3 槽,起不来时 is_started_s 最多 5s 返回 RESOURCE_NOT_READY。真正致命的是你在持 _mutex_state 的线程里同步等它,把自己的状态机一起拖死
  • 迟到 TTS:同一根因——break 报文排在音频帧后面没送达,云端不知道已打断,自然继续推。发送侧恢复后最多延迟秒级;兜底用 output 自带的 10s 静默看门狗 + idle 态收到 TTS 起播事件就再 output_stop

建议收尾框架:

Code: Select all

// 收尾丢独立线程,主流程不持 _mutex_state 干等
ret = wukong_ai_agent_chat_break(NULL);   // 单次写有 6s 超时
if (ret != OPRT_OK) {
    // 主动断开 AI 连接:阻塞的写立刻报错返回,
    // 状态机按退避表(5s→640s封顶)自动重连,无需重启
}

建议顺手在 3.14.0(T5 SDK ID 338002)复测。


以上内容由 AI 自动分析生成,如有疑问请回复补充。

Post Reply