修改vad参数加速vad判断时间 3338/1 3338/head 3340/target/1 3341/target/1 3345/target/1
authorhcj <1224667075@qq.com>
Thu, 9 Apr 2026 10:12:02 +0000 (18:12 +0800)
committerhcj <1224667075@qq.com>
Thu, 9 Apr 2026 10:12:02 +0000 (18:12 +0800)
code/sdk/zhihui/imsl/src/vad_server.c
code/sdk/zhihui/leiniao/imsl_ln/ln_api_websocket.c

index 2b69383..862f094 100644 (file)
@@ -425,7 +425,7 @@ errcode_t vad_server_init(vad_status_callback_t callback)
         .min_speech_length = 240,             /* 最短语音长度 (ms) */
         .silence_detect_length = 300,         /* 静音检测长度 (ms) */
         .rule1_min_tailing_silence = 480,     /* 规则1静音时间 (ms) */
-        .rule2_min_tailing_silence = 960,     /* 规则2静音时间 (ms) */
+        .rule2_min_tailing_silence = 600,     /* 规则2静音时间 (ms) */
         .rule3_min_tailing_silence = 960      /* 规则3静音时间 (ms) */
     };
     
index 7a1c360..2025db3 100644 (file)
 
 #endif
 #include "Ln_Bluetooth_apiC.h"
+#define VAD_TEST_ENABLED 0
+
+#if VAD_TEST_ENABLED
+/* 16 kHz 单声道、由 MIDI 音高序列(C4–E4–G4–C5,120 BPM)合成的 PCM 经 LAME CBR64 编码后的 MP3 裸帧流(无 ID3 / Xing) */
+#include "ln_midi_like_16k_mp3_frames.h"
+#endif
 
 // 功能开关宏定义
 #define ENABLE_BINARY_DATA_INTERRUPT_CHECK 1  // 启用二进制数据间隔检查
-#define ENABLE_AUDIO_FILE_WRITE 0  // 启用音频文件写入功能(根据chat_id生成文件)
+#define ENABLE_AUDIO_FILE_WRITE 1  // 启用音频文件写入功能(根据chat_id生成文件)
 
 // 主线程循环间隔时长(毫秒)
 #define LN_WS_MAIN_THREAD_INTERVAL_MS 500
@@ -55,7 +61,7 @@ typedef enum {
 } ln_ws_log_level_t;
 
 // 当前日志等级(可通过配置修改)
-static ln_ws_log_level_t g_log_level =  LN_WS_LOG_WARN;
+static ln_ws_log_level_t g_log_level =  LN_WS_LOG_DEBUG;
 
 void ln_ws_set_log_level(uint8_t level)
 {
@@ -80,6 +86,10 @@ static const char *g_log_level_str[] = {
 #define LN_WS_INFO(fmt, ...)  LN_WS_LOG(LN_WS_LOG_INFO, __LINE__, fmt, ##__VA_ARGS__)
 #define LN_WS_DEBUG(fmt, ...) LN_WS_LOG(LN_WS_LOG_DEBUG, __LINE__, fmt, ##__VA_ARGS__)
 
+
+
+
+
 /*
  * - g_ws_client_fd    当前 WebSocket 客户端fd
  * - g_ws_connected    连接状态:0=未连接,1=连接中,2=连接成功
@@ -779,7 +789,11 @@ int ln_ws_send_audio_data(const uint8_t *audio_data, uint32_t audio_size, bool f
     }
     
     // 发送JSON字符串
+    #if VAD_TEST_ENABLED
+    int ret = 0;
+    #else
     int ret = uapi_ws_send_text(json_string);
+    #endif
     
     LN_WS_DEBUG("Sent audio data: chatId=%s, messageId=%s, size=%u, finished=%s\n", 
            g_audio_chat_ctx.chat_id, message_id, audio_size, finished ? "true" : "false");
@@ -1131,7 +1145,7 @@ static void AIVoiceDataCallback_ln(const uint8_t* data, uint32_t size, void* use
             ln_ws_add_to_audio_cache(data, size);
         }
     }
-    LOS_Msleep(10);
+    LOS_Msleep(5);
 }
 
 // "audioBase64":
@@ -1433,6 +1447,20 @@ void vad_status_callback_ln_ws(int status)
                 ln_ws_start_vad_cooldown();
             }
             g_vad_recognition_enabled = false;
+
+#if VAD_TEST_ENABLED
+            for(int i=0; i<LN_MIDI_LIKE_16K_MP3_FRAMES_LEN/1024; i++)
+            {
+                if(i==LN_MIDI_LIKE_16K_MP3_FRAMES_LEN/1024-1)
+                {
+                    AI_SendAudioDataToQueue(ln_midi_like_16k_mp3_frames + i*1024, LN_MIDI_LIKE_16K_MP3_FRAMES_LEN%1024);
+                }
+                else
+                {
+                    AI_SendAudioDataToQueue(ln_midi_like_16k_mp3_frames + i*1024, 1024);
+                }
+            }
+#endif
             LN_WS_INFO("VAD recognition disabled after recording end (status=2)\n");
         }
         else